/linux-6.12.1/drivers/mfd/ |
D | stmpe.c | 3 * ST Microelectronics MFD: stmpe's driver 23 #include "stmpe.h" 26 * struct stmpe_platform_data - STMPE platform data 30 * @autosleep: bool to enable/disable stmpe autosleep 41 static int __stmpe_enable(struct stmpe *stmpe, unsigned int blocks) in __stmpe_enable() argument 43 return stmpe->variant->enable(stmpe, blocks, true); in __stmpe_enable() 46 static int __stmpe_disable(struct stmpe *stmpe, unsigned int blocks) in __stmpe_disable() argument 48 return stmpe->variant->enable(stmpe, blocks, false); in __stmpe_disable() 51 static int __stmpe_reg_read(struct stmpe *stmpe, u8 reg) in __stmpe_reg_read() argument 55 ret = stmpe->ci->read_byte(stmpe, reg); in __stmpe_reg_read() [all …]
|
D | stmpe-spi.c | 3 * ST Microelectronics MFD: stmpe's spi client specific driver 16 #include "stmpe.h" 20 static int spi_reg_read(struct stmpe *stmpe, u8 reg) in spi_reg_read() argument 22 struct spi_device *spi = stmpe->client; in spi_reg_read() 28 static int spi_reg_write(struct stmpe *stmpe, u8 reg, u8 val) in spi_reg_write() argument 30 struct spi_device *spi = stmpe->client; in spi_reg_write() 36 static int spi_block_read(struct stmpe *stmpe, u8 reg, u8 length, u8 *values) in spi_block_read() argument 41 ret = spi_reg_read(stmpe, reg + i); in spi_block_read() 50 static int spi_block_write(struct stmpe *stmpe, u8 reg, u8 length, in spi_block_write() argument 56 ret = spi_reg_write(stmpe, reg, *(values + i - 1)); in spi_block_write() [all …]
|
D | stmpe-i2c.c | 3 * ST Microelectronics MFD: stmpe's i2c client specific driver 18 #include "stmpe.h" 20 static int i2c_reg_read(struct stmpe *stmpe, u8 reg) in i2c_reg_read() argument 22 struct i2c_client *i2c = stmpe->client; in i2c_reg_read() 27 static int i2c_reg_write(struct stmpe *stmpe, u8 reg, u8 val) in i2c_reg_write() argument 29 struct i2c_client *i2c = stmpe->client; in i2c_reg_write() 34 static int i2c_block_read(struct stmpe *stmpe, u8 reg, u8 length, u8 *values) in i2c_block_read() argument 36 struct i2c_client *i2c = stmpe->client; in i2c_block_read() 41 static int i2c_block_write(struct stmpe *stmpe, u8 reg, u8 length, in i2c_block_write() argument 44 struct i2c_client *i2c = stmpe->client; in i2c_block_write() [all …]
|
D | stmpe.h | 13 #include <linux/mfd/stmpe.h> 73 int (*enable)(struct stmpe *stmpe, unsigned int blocks, bool enable); 74 int (*get_altfunc)(struct stmpe *stmpe, enum stmpe_block block); 75 int (*enable_autosleep)(struct stmpe *stmpe, int autosleep_timeout); 92 int (*read_byte)(struct stmpe *stmpe, u8 reg); 93 int (*write_byte)(struct stmpe *stmpe, u8 reg, u8 val); 94 int (*read_block)(struct stmpe *stmpe, u8 reg, u8 len, u8 *values); 95 int (*write_block)(struct stmpe *stmpe, u8 reg, u8 len, 97 void (*init)(struct stmpe *stmpe); 101 void stmpe_remove(struct stmpe *stmpe);
|
D | Kconfig | 1444 bool "STMicroelectronics STMPE" 1449 Support for the STMPE family of I/O Expanders from 1464 GPIO: stmpe-gpio 1465 Keypad: stmpe-keypad 1466 Touchscreen: stmpe-ts 1467 ADC: stmpe-adc 1469 menu "STMicroelectronics STMPE Interface Drivers" 1473 bool "STMicroelectronics STMPE I2C Interface" 1477 This is used to enable I2C interface of STMPE 1480 bool "STMicroelectronics STMPE SPI Interface" [all …]
|
D | Makefile | 29 obj-$(CONFIG_MFD_STMPE) += stmpe.o 30 obj-$(CONFIG_STMPE_I2C) += stmpe-i2c.o 31 obj-$(CONFIG_STMPE_SPI) += stmpe-spi.o
|
/linux-6.12.1/drivers/gpio/ |
D | gpio-stmpe.c | 13 #include <linux/mfd/stmpe.h> 33 struct stmpe *stmpe; member 44 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_get() local 45 u8 reg = stmpe->regs[STMPE_IDX_GPMR_LSB + (offset / 8)]; in stmpe_gpio_get() 49 ret = stmpe_reg_read(stmpe, reg); in stmpe_gpio_get() 59 struct stmpe *stmpe = stmpe_gpio->stmpe; in stmpe_gpio_set() local 61 u8 reg = stmpe->regs[which + (offset / 8)]; in stmpe_gpio_set() 68 if (stmpe->regs[STMPE_IDX_GPSR_LSB] == stmpe->regs[STMPE_IDX_GPCR_LSB]) in stmpe_gpio_set() 69 stmpe_set_bits(stmpe, reg, mask, val ? mask : 0); in stmpe_gpio_set() 71 stmpe_reg_write(stmpe, reg, mask); in stmpe_gpio_set() [all …]
|
/linux-6.12.1/include/linux/mfd/ |
D | stmpe.h | 53 * obtained by indexing stmpe->regs with one of the following. 103 * struct stmpe - STMPE MFD structure 113 * @variant: the detected STMPE model number 116 * @irq: irq number for stmpe 122 struct stmpe { struct 148 extern int stmpe_reg_write(struct stmpe *stmpe, u8 reg, u8 data); argument 149 extern int stmpe_reg_read(struct stmpe *stmpe, u8 reg); 150 extern int stmpe_block_read(struct stmpe *stmpe, u8 reg, u8 length, 152 extern int stmpe_block_write(struct stmpe *stmpe, u8 reg, u8 length, 154 extern int stmpe_set_bits(struct stmpe *stmpe, u8 reg, u8 mask, u8 val); [all …]
|
/linux-6.12.1/drivers/input/touchscreen/ |
D | stmpe-ts.c | 23 #include <linux/mfd/stmpe.h> 46 #define STMPE_TS_NAME "stmpe-ts" 51 * @stmpe: pointer back to STMPE MFD container 73 struct stmpe *stmpe; member 85 static int __stmpe_reset_fifo(struct stmpe *stmpe) in __stmpe_reset_fifo() argument 89 ret = stmpe_set_bits(stmpe, STMPE_REG_FIFO_STA, in __stmpe_reset_fifo() 94 return stmpe_set_bits(stmpe, STMPE_REG_FIFO_STA, in __stmpe_reset_fifo() 106 int_sta = stmpe_reg_read(ts->stmpe, STMPE_REG_INT_STA); in stmpe_work() 117 int_sta = stmpe_reg_read(ts->stmpe, STMPE_REG_INT_STA); in stmpe_work() 122 __stmpe_reset_fifo(ts->stmpe); in stmpe_work() [all …]
|
/linux-6.12.1/drivers/input/keyboard/ |
D | stmpe-keypad.c | 15 #include <linux/mfd/stmpe.h> 17 /* These are at the same addresses in all STMPE variants */ 116 * struct stmpe_keypad - STMPE keypad state container 117 * @stmpe: pointer to parent STMPE device 119 * @variant: STMPE variant 130 struct stmpe *stmpe; member 144 struct stmpe *stmpe = keypad->stmpe; in stmpe_keypad_read_data() local 149 return stmpe_block_read(stmpe, STMPE_KPC_DATA_BYTE0, in stmpe_keypad_read_data() 153 ret = stmpe_reg_read(stmpe, STMPE_KPC_DATA_BYTE0 + i); in stmpe_keypad_read_data() 200 struct stmpe *stmpe = keypad->stmpe; in stmpe_keypad_altfunc_init() local [all …]
|
/linux-6.12.1/drivers/iio/adc/ |
D | stmpe-adc.c | 15 #include <linux/mfd/stmpe.h> 47 struct stmpe *stmpe; member 77 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT, in stmpe_read_voltage() 83 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA, in stmpe_read_voltage() 112 stmpe_reg_write(info->stmpe, STMPE_REG_TEMP_CTRL, in stmpe_read_temp() 165 *val2 = info->stmpe->mod_12b ? 12 : 10; in stmpe_read_raw() 183 int_sta = stmpe_reg_read(info->stmpe, STMPE_REG_ADC_INT_STA); in stmpe_adc_isr() 190 stmpe_block_read(info->stmpe, in stmpe_adc_isr() 193 stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_STA, int_sta); in stmpe_adc_isr() 196 stmpe_block_read(info->stmpe, STMPE_REG_TEMP_DATA, 2, in stmpe_adc_isr() [all …]
|
/linux-6.12.1/drivers/pwm/ |
D | pwm-stmpe.c | 11 #include <linux/mfd/stmpe.h> 29 struct stmpe *stmpe; member 44 ret = stmpe_reg_read(stmpe_pwm->stmpe, STMPE24XX_PWMCS); in stmpe_24xx_pwm_enable() 53 ret = stmpe_reg_write(stmpe_pwm->stmpe, STMPE24XX_PWMCS, value); in stmpe_24xx_pwm_enable() 70 ret = stmpe_reg_read(stmpe_pwm->stmpe, STMPE24XX_PWMCS); in stmpe_24xx_pwm_disable() 79 ret = stmpe_reg_write(stmpe_pwm->stmpe, STMPE24XX_PWMCS, value); in stmpe_24xx_pwm_disable() 86 /* STMPE 24xx PWM instructions */ 120 if (stmpe_pwm->stmpe->partnum == STMPE2401 || in stmpe_24xx_pwm_config() 121 stmpe_pwm->stmpe->partnum == STMPE2403) in stmpe_24xx_pwm_config() 124 ret = stmpe_set_altfunc(stmpe_pwm->stmpe, BIT(pin), in stmpe_24xx_pwm_config() [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/iio/adc/ |
D | st,stmpe-adc.yaml | 4 $id: http://devicetree.org/schemas/iio/adc/st,stmpe-adc.yaml# 7 title: ADC on an STMPE multifunction device. 13 This ADC forms part of an ST microelectronics STMPE multifunction device . 14 The ADC is shared with the STMPE touchscreen. As a result some ADC related 16 The node should be a child node of the stmpe node to which it belongs. 20 const: st,stmpe-adc 39 compatible = "st,stmpe-adc";
|
/linux-6.12.1/Documentation/devicetree/bindings/mfd/ |
D | st,stmpe.yaml | 4 $id: http://devicetree.org/schemas/mfd/st,stmpe.yaml# 7 title: STMicroelectonics Port Expander (STMPE) 9 description: STMicroelectronics Port Expander (STMPE) is a series of slow 85 $ref: /schemas/iio/adc/st,stmpe-adc.yaml# 89 $ref: /schemas/gpio/st,stmpe-gpio.yaml# 99 const: st,stmpe-keypad 125 const: st,stmpe-pwm 138 const: st,stmpe-ts 223 compatible = "st,stmpe-gpio"; 232 compatible = "st,stmpe-keypad"; [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/pwm/ |
D | st,stmpe-pwm.txt | 1 == ST STMPE PWM controller == 3 This is a PWM block embedded in the ST Microelectronics STMPE 5 subdevices of the STMPE MFD device. 9 - "st,stmpe-pwm" 16 compatible = "st,stmpe-pwm";
|
/linux-6.12.1/Documentation/devicetree/bindings/gpio/ |
D | st,stmpe-gpio.yaml | 4 $id: http://devicetree.org/schemas/gpio/st,stmpe-gpio.yaml# 7 title: STMicroelectonics Port Expander (STMPE) GPIO Block 10 STMicroelectronics Port Expander (STMPE) is a series of slow 21 const: st,stmpe-gpio
|
/linux-6.12.1/arch/arm/boot/dts/st/ |
D | ste-nomadik-nhk15.dts | 22 stmpe-i2c0 = &stmpe0; 23 stmpe-i2c1 = &stmpe1; 112 compatible = "st,stmpe-gpio"; 121 compatible = "st,stmpe-keypad"; 143 compatible = "st,stmpe-pwm"; 157 compatible = "st,stmpe-gpio";
|
D | spear320-hmi.dts | 243 stmpegpio: stmpe-gpio { 244 compatible = "st,stmpe-gpio"; 252 compatible = "stmpe,ts";
|
D | ste-href-stuib.dtsi | 47 compatible = "st,stmpe-keypad"; 131 stmpe {
|
D | stm32f429-disco.dts | 132 compatible = "st,stmpe-ts"; 149 compatible = "st,stmpe-adc";
|
/linux-6.12.1/arch/arm/boot/dts/intel/socfpga/ |
D | socfpga_cyclone5_mcvevk.dts | 14 stmpe-i2c0 = &stmpe1; 61 compatible = "st,stmpe-ts";
|
/linux-6.12.1/arch/arm/boot/dts/nxp/imx/ |
D | imx6q-dmo-edmqmx6.dts | 22 stmpe-i2c0 = &stmpe1; 23 stmpe-i2c1 = &stmpe2; 241 compatible = "st,stmpe-gpio"; 255 compatible = "st,stmpe-gpio";
|
D | imx6ul-phytec-segin-peb-av-02.dtsi | 54 stmpe: touchscreen@44 { label 65 compatible = "st,stmpe-ts";
|
D | imx6ul-isiot.dtsi | 135 stmpe: touchscreen { label 136 compatible = "st,stmpe-ts";
|
/linux-6.12.1/arch/arm/boot/dts/ti/omap/ |
D | am5729-beagleboneai.dts | 426 compatible = "st,stmpe-adc"; 438 compatible = "st,stmpe-ts"; 455 compatible = "st,stmpe-gpio"; 459 compatible = "st,stmpe-pwm";
|