/* tc300k.h -- Linux driver for coreriver chip as touchkey * * Copyright (C) 2013 Samsung Electronics Co.Ltd * Author: Junkyeong Kim * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * */ #ifndef __LINUX_TC300K_H #define __LINUX_TC300K_H #ifdef CONFIG_SEC_DEBUG_TSP_LOG #define SEC_DEBUG_TK_LOG #endif #define TC300K_NAME "sec_touchkey_driver" #ifdef SEC_DEBUG_TK_LOG #include #endif #ifdef SEC_DEBUG_TK_LOG #define tk_debug_dbg(mode, dev, fmt, ...) \ ({ \ if (mode) { \ dev_dbg(dev, fmt, ## __VA_ARGS__); \ sec_debug_tsp_log(fmt, ## __VA_ARGS__); \ } \ else \ dev_dbg(dev, fmt, ## __VA_ARGS__); \ }) #define tk_debug_info(mode, dev, fmt, ...) \ ({ \ if (mode) { \ dev_info(dev, fmt, ## __VA_ARGS__); \ sec_debug_tsp_log(fmt, ## __VA_ARGS__); \ } \ else \ dev_info(dev, fmt, ## __VA_ARGS__); \ }) #define tk_debug_err(mode, dev, fmt, ...) \ ({ \ if (mode) { \ dev_err(dev, fmt, ## __VA_ARGS__); \ sec_debug_tsp_log(fmt, ## __VA_ARGS__); \ } \ else \ dev_err(dev, fmt, ## __VA_ARGS__); \ }) #else #define tk_debug_dbg(mode, dev, fmt, ...) dev_dbg(dev, fmt, ## __VA_ARGS__) #define tk_debug_info(mode, dev, fmt, ...) dev_info(dev, fmt, ## __VA_ARGS__) #define tk_debug_err(mode, dev, fmt, ...) dev_err(dev, fmt, ## __VA_ARGS__) #endif struct tc300k_platform_data { int gpio_int; int gpio_sda; int gpio_scl; int gpio_pwr; int gpio_sub_det; int i2c_gpio; int (*power) (bool on); int (*power_isp) (bool on); int (*keyled) (bool on); u32 irq_gpio_flags; u32 sda_gpio_flags; u32 scl_gpio_flags; const char *regulator_ic; const char *regulator_led; bool boot_on_ldo; int *keycode; int key_num; const char *fw_name; u32 sensing_ch_num; u32 use_bitmap; u32 tsk_ic_num; bool touchkey_led; }; #endif /* __LINUX_TC300K_H */