/linux/drivers/input/keyboard/ |
H A D | matrix_keypad.c | 55 static void __activate_col(struct matrix_keypad *keypad, int col, bool on) in __activate_col() argument 58 gpiod_direction_output(keypad->col_gpios[col], 1); in __activate_col() 60 gpiod_set_value_cansleep(keypad->col_gpios[col], 0); in __activate_col() 61 if (!keypad->drive_inactive_cols) in __activate_col() 62 gpiod_direction_input(keypad->col_gpios[col]); in __activate_col() 66 static void activate_col(struct matrix_keypad *keypad, int col, bool on) in activate_col() argument 68 __activate_col(keypad, col, on); in activate_col() 70 if (on && keypad->col_scan_delay_us) in activate_col() 71 udelay(keypad->col_scan_delay_us); in activate_col() 74 static void activate_all_cols(struct matrix_keypad *keypad, bool on) in activate_all_cols() argument [all …]
|
H A D | samsung-keypad.c | 3 * Samsung keypad driver 23 #include <linux/input/samsung-keypad.h> 79 static void samsung_keypad_scan(struct samsung_keypad *keypad, in samsung_keypad_scan() argument 85 for (col = 0; col < keypad->cols; col++) { in samsung_keypad_scan() 86 if (keypad->type == KEYPAD_TYPE_S5PV210) { in samsung_keypad_scan() 94 writel(val, keypad->base + SAMSUNG_KEYIFCOL); in samsung_keypad_scan() 97 val = readl(keypad->base + SAMSUNG_KEYIFROW); in samsung_keypad_scan() 98 row_state[col] = ~val & ((1 << keypad->rows) - 1); in samsung_keypad_scan() 102 writel(0, keypad->base + SAMSUNG_KEYIFCOL); in samsung_keypad_scan() 105 static bool samsung_keypad_report(struct samsung_keypad *keypad, in samsung_keypad_report() argument [all …]
|
H A D | ep93xx_keypad.c | 3 * Driver for the Cirrus EP93xx matrix keypad controller. 7 * Based on the pxa27x matrix keypad controller by Rodolfo Giometti. 26 * Keypad Interface Register offsets 81 struct ep93xx_keypad *keypad = dev_id; in ep93xx_keypad_irq_handler() local 82 struct input_dev *input_dev = keypad->input_dev; in ep93xx_keypad_irq_handler() 86 status = __raw_readl(keypad->mmio_base + KEY_REG); in ep93xx_keypad_irq_handler() 89 key1 = keypad->keycodes[keycode]; in ep93xx_keypad_irq_handler() 92 key2 = keypad->keycodes[keycode]; in ep93xx_keypad_irq_handler() 95 if (keypad->key1 && key1 != keypad->key1 && key2 != keypad->key1) in ep93xx_keypad_irq_handler() 96 input_report_key(input_dev, keypad->key1, 0); in ep93xx_keypad_irq_handler() [all …]
|
H A D | imx_keypad.c | 3 // Driver for the IMX keypad port. 23 * Keypad Controller registers (halfword) 25 #define KPCR 0x00 /* Keypad Control Register */ 27 #define KPSR 0x02 /* Keypad Status Register */ 34 #define KBD_STAT_KPPEN (0x1 << 10) /* Keypad Clock Enable */ 36 #define KDDR 0x04 /* Keypad Data Direction Register */ 37 #define KPDR 0x06 /* Keypad Data Register */ 79 static void imx_keypad_scan_matrix(struct imx_keypad *keypad, in imx_keypad_scan_matrix() argument 86 if ((keypad->cols_en_mask & (1 << col)) == 0) in imx_keypad_scan_matrix() 89 * Discharge keypad capacitance: in imx_keypad_scan_matrix() [all …]
|
H A D | pxa27x_keypad.c | 29 #include <linux/platform_data/keypad-pxa27x.h> 31 * Keypad Controller registers 33 #define KPC 0x0000 /* Keypad Control register */ 34 #define KPDK 0x0008 /* Keypad Direct Key register */ 35 #define KPREC 0x0010 /* Keypad Rotary Encoder register */ 36 #define KPMK 0x0018 /* Keypad Matrix Key register */ 37 #define KPAS 0x0020 /* Keypad Automatic Scan register */ 39 /* Keypad Automatic Scan Multiple Key Presser register 0-3 */ 59 #define KPC_ME (0x1 << 12) /* Matrix Keypad Enable */ 61 #define KPC_DK_DEB_SEL (0x1 << 9) /* Direct Keypad Debounce Select */ [all …]
|
H A D | nspire-keypad.c | 52 struct nspire_keypad *keypad = dev_id; in nspire_keypad_irq() local 53 struct input_dev *input = keypad->input; in nspire_keypad_irq() 61 int_sts = readl(keypad->reg_base + KEYPAD_INT) & keypad->int_mask; in nspire_keypad_irq() 65 memcpy_fromio(state, keypad->reg_base + KEYPAD_DATA, sizeof(state)); in nspire_keypad_irq() 69 if (keypad->active_low) in nspire_keypad_irq() 72 changed = bits ^ keypad->state[row]; in nspire_keypad_irq() 76 keypad->state[row] = bits; in nspire_keypad_irq() 82 code = MATRIX_SCAN_CODE(row, col, keypad->row_shift); in nspire_keypad_irq() 91 writel(0x3, keypad->reg_base + KEYPAD_INT); in nspire_keypad_irq() 98 struct nspire_keypad *keypad = input_get_drvdata(input); in nspire_keypad_open() local [all …]
|
H A D | mt6779-keypad.c | 16 #define MTK_KPD_NAME "mt6779-keypad" 50 struct mt6779_keypad *keypad = dev_id; in mt6779_keypad_irq_handler() local 51 const unsigned short *keycode = keypad->input_dev->keycode; in mt6779_keypad_irq_handler() 57 unsigned int row_shift = get_count_order(keypad->n_cols); in mt6779_keypad_irq_handler() 60 regmap_bulk_read(keypad->regmap, MTK_KPD_MEM, in mt6779_keypad_irq_handler() 63 bitmap_xor(change, new_state, keypad->keymap_state, MTK_KPD_NUM_BITS); in mt6779_keypad_irq_handler() 74 keypad->calc_row_col(key, &row, &col); in mt6779_keypad_irq_handler() 79 dev_dbg(&keypad->input_dev->dev, "%s", in mt6779_keypad_irq_handler() 82 input_event(keypad->input_dev, EV_MSC, MSC_SCAN, scancode); in mt6779_keypad_irq_handler() 83 input_report_key(keypad->input_dev, keycode[scancode], pressed); in mt6779_keypad_irq_handler() [all …]
|
H A D | tc3589x-keypad.c | 8 * TC35893 MFD Keypad Controller driver 21 /* Maximum supported keypad matrix row/columns size */ 25 /* keypad related Constants */ 73 * struct tc3589x_keypad_platform_data - platform specific keypad data 80 * @enable_wakeup: specifies if keypad event can wake up system from sleep 95 * struct tc_keypad - data structure used by keypad driver 98 * @board: keypad platform device 102 * @keypad_stopped: holds keypad status 114 static int tc3589x_keypad_init_key_hardware(struct tc_keypad *keypad) in tc3589x_keypad_init_key_hardware() argument 117 struct tc3589x *tc3589x = keypad->tc3589x; in tc3589x_keypad_init_key_hardware() [all …]
|
H A D | stmpe-keypad.c | 116 * struct stmpe_keypad - STMPE keypad state container 141 static int stmpe_keypad_read_data(struct stmpe_keypad *keypad, u8 *data) in stmpe_keypad_read_data() argument 143 const struct stmpe_keypad_variant *variant = keypad->variant; in stmpe_keypad_read_data() 144 struct stmpe *stmpe = keypad->stmpe; in stmpe_keypad_read_data() 165 struct stmpe_keypad *keypad = dev; in stmpe_keypad_irq() local 166 struct input_dev *input = keypad->input; in stmpe_keypad_irq() 167 const struct stmpe_keypad_variant *variant = keypad->variant; in stmpe_keypad_irq() 172 ret = stmpe_keypad_read_data(keypad, fifo); in stmpe_keypad_irq() 188 input_report_key(input, keypad->keymap[code], !up); in stmpe_keypad_irq() 195 static int stmpe_keypad_altfunc_init(struct stmpe_keypad *keypad) in stmpe_keypad_altfunc_init() argument [all …]
|
H A D | st-keyscan.c | 43 struct st_keyscan *keypad = dev_id; in keyscan_isr() local 44 unsigned short *keycode = keypad->input_dev->keycode; in keyscan_isr() 48 state = readl(keypad->base + KEYSCAN_MATRIX_STATE_OFF) & 0xffff; in keyscan_isr() 49 change = keypad->last_state ^ state; in keyscan_isr() 50 keypad->last_state = state; in keyscan_isr() 53 input_report_key(keypad->input_dev, in keyscan_isr() 56 input_sync(keypad->input_dev); in keyscan_isr() 61 static int keyscan_start(struct st_keyscan *keypad) in keyscan_start() argument 65 error = clk_enable(keypad->clk); in keyscan_start() 69 writel(keypad->debounce_us * (clk_get_rate(keypad->clk) / 1000000), in keyscan_start() [all …]
|
H A D | Kconfig | 31 tristate "Keypad Support for ADP5520 PMIC" 34 This option enables support for the keypad scan matrix 41 tristate "ADP5588/87 I2C QWERTY Keypad and IO Expander" 54 tristate "ADP5585/ADP5589 I2C QWERTY Keypad and IO Expander" 191 tristate "CLPS711X Keypad support" 195 Say Y here to enable the matrix keypad on the Cirrus Logic 199 module will be called clps711x-keypad. 225 tristate "EP93xx Matrix Keypad support" 229 Say Y here to enable the matrix keypad on the Cirrus EP93XX. 265 tristate "TCA6416/TCA6408A Keypad Support" [all …]
|
H A D | max7359_keypad.c | 87 struct max7359_keypad *keypad = dev_id; in max7359_interrupt() local 88 struct input_dev *input_dev = keypad->input_dev; in max7359_interrupt() 91 val = max7359_read_reg(keypad->client, MAX7359_REG_KEYFIFO); in max7359_interrupt() 98 dev_dbg(&keypad->client->dev, in max7359_interrupt() 102 input_report_key(input_dev, keypad->keycodes[code], !release); in max7359_interrupt() 129 struct max7359_keypad *keypad = input_get_drvdata(dev); in max7359_open() local 131 max7359_take_catnap(keypad->client); in max7359_open() 138 struct max7359_keypad *keypad = input_get_drvdata(dev); in max7359_close() local 140 max7359_fall_deepsleep(keypad->client); in max7359_close() 162 struct max7359_keypad *keypad; in max7359_probe() local [all …]
|
/linux/Documentation/devicetree/bindings/input/ |
H A D | samsung,s3c6410-keypad.yaml | 4 $id: http://devicetree.org/schemas/input/samsung,s3c6410-keypad.yaml# 7 title: Samsung SoC series Keypad Controller 10 Samsung SoC Keypad controller is used to interface a SoC with a matrix-type 11 keypad device. The keypad controller supports multiple row and column lines. 13 The keypad controller can sense a key-press and key-release and report the 22 - samsung,s3c6410-keypad 23 - samsung,s5pv210-keypad 33 - const: keypad 49 samsung,keypad-num-columns: 52 Number of column lines connected to the keypad controller. [all …]
|
H A D | omap-keypad.txt | 1 * TI's Keypad Controller device tree bindings 3 TI's Keypad controller is used to interface a SoC with a matrix-type 4 keypad device. The keypad controller supports multiple row and column lines. 6 The keypad controller can sense a key-press and key-release and report the 12 keypad,num-rows and keypad,num-columns are required. 16 - "ti,omap4-keypad": For controllers compatible with omap4 keypad 20 - linux,keypad-no-autorepeat: do no enable autorepeat feature. 23 keypad@4ae1c000{ 24 compatible = "ti,omap4-keypad"; 25 keypad,num-rows = <2>; [all …]
|
H A D | twl4030-keypad.txt | 1 * TWL4030's Keypad Controller device tree bindings 3 TWL4030's Keypad controller is used to interface a SoC with a matrix-type 4 keypad device. The keypad controller supports multiple row and column lines. 6 The keypad controller can sense a key-press and key-release and report the 12 * keypad,num-rows and keypad,num-columns are required. 16 - "ti,twl4030-keypad": For controllers compatible with twl4030 keypad 19 - <1>: For controllers compatible with twl4030 keypad controller. 22 twl_keypad: keypad { 23 compatible = "ti,twl4030-keypad"; 25 keypad,num-rows = <8>; [all …]
|
H A D | adi,adp5588.yaml | 7 title: Analog Devices ADP5588 Keypad Controller 13 Analog Devices Mobile I/O Expander and QWERTY Keypad Controller 43 This property applies if either keypad,num-rows lower than 8 or 44 keypad,num-columns lower than 10. 51 This property applies if either keypad,num-rows lower than 8 or 52 keypad,num-columns lower than 10. This property is optional if 53 keypad,num-rows or keypad,num-columns are not specified as the 62 Specifies a maximum of 2 keys that can be used to unlock the keypad. 65 needed to unlock the keypad. The value of this property cannot be bigger 66 or equal than keypad,num-rows * keypad,num-columns. [all …]
|
H A D | brcm,bcm-keypad.txt | 1 * Broadcom Keypad Controller device tree bindings 3 Broadcom Keypad controller is used to interface a SoC with a matrix-type 4 keypad device. The keypad controller supports multiple row and column lines. 6 The keypad controller can sense a key-press and key-release and report the 12 keypad,num-rows and keypad,num-columns are required. 15 - compatible: should be "brcm,bcm-keypad" 23 - keypad,num-rows: Number of row lines connected to the keypad 26 - keypad,num-columns: Number of column lines connected to the 27 keypad controller. 55 - pull-up-enabled: An optional property indicating the Keypad scan mode. [all …]
|
H A D | mediatek,mt6779-keypad.yaml | 4 $id: http://devicetree.org/schemas/input/mediatek,mt6779-keypad.yaml# 7 title: Mediatek's Keypad Controller 16 Mediatek's Keypad controller is used to interface a SoC with a matrix-type 17 keypad device. The keypad controller supports multiple row and column lines. 19 The keypad controller can sense a key-press and key-release and report the 25 - const: mediatek,mt6779-keypad 28 - mediatek,mt6873-keypad 29 - const: mediatek,mt6779-keypad 45 description: use any event on keypad as wakeup event 77 compatible = "mediatek,mt6779-keypad";
|
H A D | cirrus,ep9307-keypad.yaml | 4 $id: http://devicetree.org/schemas/input/cirrus,ep9307-keypad.yaml# 7 title: Cirrus ep93xx keypad 16 The KPP is designed to interface with a keypad matrix with 2-point contact 18 of scanning a keypad matrix. The KPP is capable of detecting, debouncing, 19 and decoding one or multiple keys pressed simultaneously on a keypad. 24 - const: cirrus,ep9307-keypad 27 - cirrus,ep9312-keypad 28 - cirrus,ep9315-keypad 29 - const: cirrus,ep9307-keypad 63 keypad@800f0000 { [all …]
|
H A D | gpio-matrix-keypad.txt | 1 * GPIO driven matrix keypad device tree bindings 3 GPIO driven matrix keypad is used to interface a SoC with a matrix keypad. 4 The matrix keypad supports multiple row and column lines, a key can be 6 keypad can sense a key-press and key-release by means of GPIO lines and 10 - compatible: Should be "gpio-matrix-keypad" 22 - wakeup-source: use any event on keypad as wakeup event. 26 before we can scan keypad after activating column gpio 31 matrix-keypad { 32 compatible = "gpio-matrix-keypad";
|
/linux/arch/arm/boot/dts/samsung/ |
H A D | exynos4412-smdk4412.dts | 69 &keypad { 70 samsung,keypad-num-rows = <3>; 71 samsung,keypad-num-columns = <8>; 79 keypad,row = <1>; 80 keypad,column = <3>; 85 keypad,row = <1>; 86 keypad,column = <4>; 91 keypad,row = <1>; 92 keypad,column = <5>; 97 keypad,row = <1>; [all …]
|
H A D | exynos4210-smdkv310.dts | 88 &keypad { 89 samsung,keypad-num-rows = <2>; 90 samsung,keypad-num-columns = <8>; 98 keypad,row = <0>; 99 keypad,column = <3>; 104 keypad,row = <0>; 105 keypad,column = <4>; 110 keypad,row = <0>; 111 keypad,column = <5>; 116 keypad,row = <0>; [all …]
|
H A D | s5pv210-smdkv210.dts | 73 &keypad { 76 samsung,keypad-num-rows = <8>; 77 samsung,keypad-num-columns = <8>; 88 keypad,row = <0>; 89 keypad,column = <3>; 94 keypad,row = <0>; 95 keypad,column = <4>; 100 keypad,row = <0>; 101 keypad,column = <5>; 106 keypad,row = <0>; [all …]
|
/linux/drivers/accessibility/speakup/ |
H A D | DefaultKeyAssignments | 6 We have remapped the insert or zero key on the keypad to act as a 9 hit the keypad period. 11 KeyPad-8 Say current Line 13 KeyPad-7 Say Previous Line (UP one line) 14 KeyPad-9 Say Next Line (down one line) 15 KeyPad-5 Say Current Word 17 KeyPad-4 Say Previous Word (left one word) 19 KeyPad-6 Say Next Word (right one word) 21 KeyPad-2 Say Current Letter 23 KeyPad-1 Say Previous Character (left one letter) [all …]
|
/linux/drivers/auxdisplay/ |
H A D | ht16k33.c | 93 struct ht16k33_keypad keypad; member 325 * This gets the keys from keypad and reports it to input subsystem. 328 static bool ht16k33_keypad_scan(struct ht16k33_keypad *keypad) in ht16k33_keypad_scan() argument 330 const unsigned short *keycodes = keypad->dev->keycode; in ht16k33_keypad_scan() 338 rc = i2c_smbus_read_i2c_block_data(keypad->client, 0x40, in ht16k33_keypad_scan() 341 dev_err(&keypad->client->dev, in ht16k33_keypad_scan() 346 for (col = 0; col < keypad->cols; col++) { in ht16k33_keypad_scan() 350 bits_changed = keypad->last_key_state[col] ^ new_state[col]; in ht16k33_keypad_scan() 353 code = MATRIX_SCAN_CODE(row, col, keypad->row_shift); in ht16k33_keypad_scan() 354 input_event(keypad->dev, EV_MSC, MSC_SCAN, code); in ht16k33_keypad_scan() [all …]
|