通过regmap_add_irq_chip()将struct regmap_irq_chip加入到Regmap,返回strcut regmap_irq_chip_data,其中包括struct irq_domain。 intregmap_add_irq_chip(structregmap *map,intirq,intirq_flags,intirq_base,conststructregmap_irq_chip *chip,structregmap_irq_chip_data **data);voidregmap_del_irq_chip(int...
regmap_init_ac97(structsnd_ac97 *ac97, strcut regmap_config *config); regmap_add_irq_chip(structregmap *map,intirq,intirq_flags,intirq_base,structregmap_irq_chip *chip,structregmap_irq_chip_data **data); 注:regmap_add_irq_chip:关联后的regmap上注册 irq 使用regmap 配置和注册regmap实例后,我...
2. regmap_init_spi(struct spi_device *spi, strcut regmap_config *config); 3. regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags, int irq_base, struct regmap_irq_chip *chip, struct regmap_irq_chip_data **data); 1. 2. 3. 前两个是用来关联i2c或者spi设备和regmap_config...
ret = regmap_read(map, chip->status_base + offset, &data->status_buf[offset]); if (ret) break; } } return ret; }static irqreturn_t regmap_irq_thread(int irq, void *d) { struct regmap_irq_chip_data *data = d; @@ -349,11 +377,65 @@ static irqreturn_t regmap_irq_thread(...
* regmap_add_irq_chip() - Use standard regmap IRQ controller handling * * map: The regmap for the device. * irq: The IRQ the device uses to signal interrupts * irq_flags: The IRQF_ flags to use for the primary interrupt. * chip: Configuration for the interrupt controller. * data: ...
内核3.1引入了一套新的API机制:regmap,主要为I2C,SPI,IRQ等操作提供统一接口,提高代码可重用性,减少重复逻辑。 以I2C为例: 要让设备跟I2C通信,以前的办法是调用i2c_transfer接口,其实regmap最终还是调用到i2c_transfer,只不过中间加了一层缓冲,这样统一了接口,减少了底层I/O的操作次数。
(unsigned int **buf, unsigned int type, const struct regmap_irq *irq_data, int idx, void *irq_drv_data); unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *data, unsigned int base, int index); void *irq_drv_data; }; unsigned int regmap_irq_get_irq_reg_linear(struct ...
/* Disable chip interrupts before requesting irq */err = regmap_raw_write(chip->data.regmap, TCPC_ALERT_MASK, &val,sizeof(u16)); new logs are: [ 4.775545][ T8] i2c i2c-4: SCL is stuck low, exit recovery[ 5.283545][ T8] i2c i2c-4: SCL is stuck low, ...
/ include / linux / regmap.h v6 v5 v4 v4.20 v4.19 v4.18 v4.17 v4.16 v4.15 v4.14 v4.13 v4.12 v4.11 v4.10 v4.9 v4.9.337 v4.9.336 v4.9.335 v4.9.334 v4.9.333 v4.9.332 v4.9.331 v4.9.330 v4.9.329 v4.9.328 v4.9.327 v4.9.326 v4.9.325 v4.9...
regmap_add_irq_chip(struct regmap *map,int irq,int irq_flags,int irq_base,struct regmap_irq_chip *chip,struct regmap_irq_chip_data **data); 前两个是用来关联i2c或者spi设备和regmap_config的,第三个用来在关联后的regmap上注册 irq 2 使用regmap ...