| /kernel/linux/linux-5.10/drivers/i2c/busses/ |
| D | Makefile | 3 # Makefile for the i2c bus drivers. 7 obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o 10 obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o 11 obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o 12 obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o 13 obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o 14 obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o 15 obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o 16 obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o 17 obj-$(CONFIG_I2C_I801) += i2c-i801.o [all …]
|
| D | i2c-pxa.c | 5 * I2C adapter for the PXA I2C bus access. 24 #include <linux/i2c.h> 34 #include <linux/platform_data/i2c-pxa.h> 37 /* I2C register field definitions */ 111 * 8 ITEIE 1 (Enables the I2C unit to interrupt when transmit buffer empty) 112 * 7 GCD 1 (Disables i2c unit response to general call messages as a slave) 114 * 5 SCLE 1 (Enables the i2c clock output for master mode (drives SCL) 123 /* I2C status register init values 154 /* I2C register layout definitions */ 206 { .compatible = "mrvl,pxa-i2c", .data = (void *)REGS_PXA2XX }, [all …]
|
| D | i2c-digicolor.c | 3 * I2C bus driver for Conexant Digicolor SoCs 13 #include <linux/i2c.h> 71 static void dc_i2c_cmd(struct dc_i2c *i2c, u8 cmd) in dc_i2c_cmd() argument 73 writeb_relaxed(cmd | II_COMMAND_GO, i2c->regs + II_COMMAND); in dc_i2c_cmd() 86 static void dc_i2c_data(struct dc_i2c *i2c, u8 data) in dc_i2c_data() argument 88 writeb_relaxed(data, i2c->regs + II_DATA); in dc_i2c_data() 91 static void dc_i2c_write_byte(struct dc_i2c *i2c, u8 byte) in dc_i2c_write_byte() argument 93 dc_i2c_data(i2c, byte); in dc_i2c_write_byte() 94 dc_i2c_cmd(i2c, II_CMD_SEND_ACK); in dc_i2c_write_byte() 97 static void dc_i2c_write_buf(struct dc_i2c *i2c) in dc_i2c_write_buf() argument [all …]
|
| D | i2c-ocores.c | 3 * i2c-ocores.c: I2C bus driver for OpenCores I2C controller 4 * (https://opencores.org/project/i2c/overview) 19 #include <linux/i2c.h> 22 #include <linux/platform_data/i2c-ocores.h> 49 void (*setreg)(struct ocores_i2c *i2c, int reg, u8 value); 50 u8 (*getreg)(struct ocores_i2c *i2c, int reg); 90 static void oc_setreg_8(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_8() argument 92 iowrite8(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_8() 95 static void oc_setreg_16(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_16() argument 97 iowrite16(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_16() [all …]
|
| D | i2c-zx2967.c | 10 #include <linux/i2c.h> 53 #define DEV(i2c) ((i2c)->adap.dev.parent) argument 69 static void zx2967_i2c_writel(struct zx2967_i2c *i2c, in zx2967_i2c_writel() argument 72 writel_relaxed(val, i2c->reg_base + reg); in zx2967_i2c_writel() 75 static u32 zx2967_i2c_readl(struct zx2967_i2c *i2c, unsigned long reg) in zx2967_i2c_readl() argument 77 return readl_relaxed(i2c->reg_base + reg); in zx2967_i2c_readl() 80 static void zx2967_i2c_writesb(struct zx2967_i2c *i2c, in zx2967_i2c_writesb() argument 83 writesb(i2c->reg_base + reg, data, len); in zx2967_i2c_writesb() 86 static void zx2967_i2c_readsb(struct zx2967_i2c *i2c, in zx2967_i2c_readsb() argument 89 readsb(i2c->reg_base + reg, data, len); in zx2967_i2c_readsb() [all …]
|
| D | i2c-jz4780.c | 3 * Ingenic JZ4780 I2C bus driver 15 #include <linux/i2c.h> 171 static inline unsigned short jz4780_i2c_readw(struct jz4780_i2c *i2c, in jz4780_i2c_readw() argument 174 return readw(i2c->iomem + offset); in jz4780_i2c_readw() 177 static inline void jz4780_i2c_writew(struct jz4780_i2c *i2c, in jz4780_i2c_writew() argument 180 writew(val, i2c->iomem + offset); in jz4780_i2c_writew() 183 static int jz4780_i2c_disable(struct jz4780_i2c *i2c) in jz4780_i2c_disable() argument 188 jz4780_i2c_writew(i2c, JZ4780_I2C_ENB, 0); in jz4780_i2c_disable() 191 regval = jz4780_i2c_readw(i2c, JZ4780_I2C_ENSTA); in jz4780_i2c_disable() 198 dev_err(&i2c->adap.dev, "disable failed: ENSTA=0x%04x\n", regval); in jz4780_i2c_disable() [all …]
|
| D | i2c-s3c2410.c | 2 /* linux/drivers/i2c/busses/i2c-s3c2410.c 7 * S3C2410 I2C Controller 13 #include <linux/i2c.h> 34 #include <linux/platform_data/i2c-s3c2410.h> 86 /* i2c controller state */ 127 .name = "s3c2410-i2c", 130 .name = "s3c2440-i2c", 133 .name = "s3c2440-hdmiphy-i2c", 139 static int i2c_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat); 143 { .compatible = "samsung,s3c2410-i2c", .data = (void *)0 }, [all …]
|
| D | i2c-xiic.c | 3 * i2c-xiic.c 24 #include <linux/i2c.h> 27 #include <linux/platform_data/i2c-xiic.h> 34 #define DRIVER_NAME "xiic-i2c" 48 * struct xiic_i2c - Internal representation of the XIIC I2C bus 170 #define xiic_tx_space(i2c) ((i2c)->tx_msg->len - (i2c)->tx_pos) argument 171 #define xiic_rx_space(i2c) ((i2c)->rx_msg->len - (i2c)->rx_pos) argument 173 static int xiic_start_xfer(struct xiic_i2c *i2c); 174 static void __xiic_start_xfer(struct xiic_i2c *i2c); 184 static inline void xiic_setreg8(struct xiic_i2c *i2c, int reg, u8 value) in xiic_setreg8() argument [all …]
|
| D | i2c-meson.c | 3 * I2C bus driver for Amlogic Meson SoCs 11 #include <linux/i2c.h> 22 /* Meson I2C register map */ 70 * struct meson_i2c - Meson I2C device private data 72 * @adap: I2C adapter instance 76 * @msg: Pointer to the current I2C message 109 static void meson_i2c_set_mask(struct meson_i2c *i2c, int reg, u32 mask, in meson_i2c_set_mask() argument 114 data = readl(i2c->regs + reg); in meson_i2c_set_mask() 117 writel(data, i2c->regs + reg); in meson_i2c_set_mask() 120 static void meson_i2c_reset_tokens(struct meson_i2c *i2c) in meson_i2c_reset_tokens() argument [all …]
|
| D | i2c-lpc2k.c | 5 * Code portions referenced from the i2x-pxa and i2c-pnx drivers 17 #include <linux/i2c.h> 47 /* I2C SCL clock has different duty cycle depending on mode */ 53 * 26 possible I2C status codes, but codes applicable only 84 static void i2c_lpc2k_reset(struct lpc2k_i2c *i2c) in i2c_lpc2k_reset() argument 87 writel(LPC24XX_CLEAR_ALL, i2c->base + LPC24XX_I2CONCLR); in i2c_lpc2k_reset() 88 writel(0, i2c->base + LPC24XX_I2ADDR); in i2c_lpc2k_reset() 89 writel(LPC24XX_I2EN, i2c->base + LPC24XX_I2CONSET); in i2c_lpc2k_reset() 92 static int i2c_lpc2k_clear_arb(struct lpc2k_i2c *i2c) in i2c_lpc2k_clear_arb() argument 100 writel(LPC24XX_STO, i2c->base + LPC24XX_I2CONSET); in i2c_lpc2k_clear_arb() [all …]
|
| D | i2c-img-scb.c | 3 * I2C adapter for the IMG Serial Control Bus (SCB) IP block. 7 * There are three ways that this I2C controller can be driven: 15 * - Atomic commands. A low level I2C symbol (such as generate 20 * This mode of operation is used by MODE_ATOMIC, which uses an I2C 21 * state machine in the interrupt handler to compose/react to I2C 26 * in suboptimal use of the bus, with gaps between the I2C symbols while 30 * specified, and the hardware takes care of the I2C state machine, 31 * using a FIFO to send/receive bytes of data to an I2C slave. The 36 * with control of repeated start bits between I2C messages. 40 * no wasted time between I2C symbols or I2C messages. [all …]
|
| D | i2c-synquacer.c | 12 #include <linux/i2c.h> 25 /* I2C register address definitions */ 35 /* I2C register bit definitions */ 113 /* min I2C clock frequency 14M */ 115 /* max I2C clock frequency 200M */ 117 /* I2C clock frequency 18M */ 149 static inline int is_lastmsg(struct synquacer_i2c *i2c) in is_lastmsg() argument 151 return i2c->msg_idx >= (i2c->msg_num - 1); in is_lastmsg() 154 static inline int is_msglast(struct synquacer_i2c *i2c) in is_msglast() argument 156 return i2c->msg_ptr == (i2c->msg->len - 1); in is_msglast() [all …]
|
| /kernel/linux/linux-4.19/drivers/i2c/busses/ |
| D | Makefile | 3 # Makefile for the i2c bus drivers. 7 obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o 10 obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o 11 obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o 12 obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o 13 obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o 14 obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o 15 obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o 16 obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o 17 obj-$(CONFIG_I2C_I801) += i2c-i801.o [all …]
|
| D | i2c-pxa.c | 4 * I2C adapter for the PXA I2C bus access. 24 #include <linux/i2c.h> 31 #include <linux/i2c-pxa.h> 39 #include <linux/platform_data/i2c-pxa.h> 67 * I2C registers definitions 112 { "pxa2xx-i2c", REGS_PXA2XX }, 114 { "ce4100-i2c", REGS_CE4100 }, 115 { "pxa910-i2c", REGS_PXA910 }, 116 { "armada-3700-i2c", REGS_A3700 }, 122 * I2C bit definitions [all …]
|
| D | i2c-ocores.c | 2 * i2c-ocores.c: I2C bus driver for OpenCores I2C controller 3 * (https://opencores.org/project/i2c/overview) 21 #include <linux/i2c.h> 24 #include <linux/platform_data/i2c-ocores.h> 42 void (*setreg)(struct ocores_i2c *i2c, int reg, u8 value); 43 u8 (*getreg)(struct ocores_i2c *i2c, int reg); 80 static void oc_setreg_8(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_8() argument 82 iowrite8(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_8() 85 static void oc_setreg_16(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_16() argument 87 iowrite16(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_16() [all …]
|
| D | i2c-digicolor.c | 2 * I2C bus driver for Conexant Digicolor SoCs 16 #include <linux/i2c.h> 75 static void dc_i2c_cmd(struct dc_i2c *i2c, u8 cmd) in dc_i2c_cmd() argument 77 writeb_relaxed(cmd | II_COMMAND_GO, i2c->regs + II_COMMAND); in dc_i2c_cmd() 90 static void dc_i2c_data(struct dc_i2c *i2c, u8 data) in dc_i2c_data() argument 92 writeb_relaxed(data, i2c->regs + II_DATA); in dc_i2c_data() 95 static void dc_i2c_write_byte(struct dc_i2c *i2c, u8 byte) in dc_i2c_write_byte() argument 97 dc_i2c_data(i2c, byte); in dc_i2c_write_byte() 98 dc_i2c_cmd(i2c, II_CMD_SEND_ACK); in dc_i2c_write_byte() 101 static void dc_i2c_write_buf(struct dc_i2c *i2c) in dc_i2c_write_buf() argument [all …]
|
| D | i2c-zx2967.c | 13 #include <linux/i2c.h> 56 #define DEV(i2c) ((i2c)->adap.dev.parent) argument 73 static void zx2967_i2c_writel(struct zx2967_i2c *i2c, in zx2967_i2c_writel() argument 76 writel_relaxed(val, i2c->reg_base + reg); in zx2967_i2c_writel() 79 static u32 zx2967_i2c_readl(struct zx2967_i2c *i2c, unsigned long reg) in zx2967_i2c_readl() argument 81 return readl_relaxed(i2c->reg_base + reg); in zx2967_i2c_readl() 84 static void zx2967_i2c_writesb(struct zx2967_i2c *i2c, in zx2967_i2c_writesb() argument 87 writesb(i2c->reg_base + reg, data, len); in zx2967_i2c_writesb() 90 static void zx2967_i2c_readsb(struct zx2967_i2c *i2c, in zx2967_i2c_readsb() argument 93 readsb(i2c->reg_base + reg, data, len); in zx2967_i2c_readsb() [all …]
|
| D | i2c-jz4780.c | 2 * Ingenic JZ4780 I2C bus driver 23 #include <linux/i2c.h> 160 static inline unsigned short jz4780_i2c_readw(struct jz4780_i2c *i2c, in jz4780_i2c_readw() argument 163 return readw(i2c->iomem + offset); in jz4780_i2c_readw() 166 static inline void jz4780_i2c_writew(struct jz4780_i2c *i2c, in jz4780_i2c_writew() argument 169 writew(val, i2c->iomem + offset); in jz4780_i2c_writew() 172 static int jz4780_i2c_disable(struct jz4780_i2c *i2c) in jz4780_i2c_disable() argument 177 jz4780_i2c_writew(i2c, JZ4780_I2C_ENB, 0); in jz4780_i2c_disable() 180 regval = jz4780_i2c_readw(i2c, JZ4780_I2C_ENSTA); in jz4780_i2c_disable() 187 dev_err(&i2c->adap.dev, "disable failed: ENSTA=0x%04x\n", regval); in jz4780_i2c_disable() [all …]
|
| D | i2c-xiic.c | 2 * i2c-xiic.c 33 #include <linux/i2c.h> 36 #include <linux/platform_data/i2c-xiic.h> 43 #define DRIVER_NAME "xiic-i2c" 57 * struct xiic_i2c - Internal representation of the XIIC I2C bus 173 #define xiic_tx_space(i2c) ((i2c)->tx_msg->len - (i2c)->tx_pos) argument 174 #define xiic_rx_space(i2c) ((i2c)->rx_msg->len - (i2c)->rx_pos) argument 176 static void xiic_start_xfer(struct xiic_i2c *i2c); 177 static void __xiic_start_xfer(struct xiic_i2c *i2c); 187 static inline void xiic_setreg8(struct xiic_i2c *i2c, int reg, u8 value) in xiic_setreg8() argument [all …]
|
| D | i2c-meson.c | 2 * I2C bus driver for Amlogic Meson SoCs 14 #include <linux/i2c.h> 24 /* Meson I2C register map */ 72 * struct meson_i2c - Meson I2C device private data 74 * @adap: I2C adapter instance 78 * @msg: Pointer to the current I2C message 111 static void meson_i2c_set_mask(struct meson_i2c *i2c, int reg, u32 mask, in meson_i2c_set_mask() argument 116 data = readl(i2c->regs + reg); in meson_i2c_set_mask() 119 writel(data, i2c->regs + reg); in meson_i2c_set_mask() 122 static void meson_i2c_reset_tokens(struct meson_i2c *i2c) in meson_i2c_reset_tokens() argument [all …]
|
| D | i2c-s3c2410.c | 1 /* linux/drivers/i2c/busses/i2c-s3c2410.c 6 * S3C2410 I2C Controller 22 #include <linux/i2c.h> 43 #include <linux/platform_data/i2c-s3c2410.h> 95 /* i2c controller state */ 137 .name = "s3c2410-i2c", 140 .name = "s3c2440-i2c", 143 .name = "s3c2440-hdmiphy-i2c", 149 static int i2c_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat); 153 { .compatible = "samsung,s3c2410-i2c", .data = (void *)0 }, [all …]
|
| D | i2c-lpc2k.c | 4 * Code portions referenced from the i2x-pxa and i2c-pnx drivers 22 #include <linux/i2c.h> 52 /* I2C SCL clock has different duty cycle depending on mode */ 58 * 26 possible I2C status codes, but codes applicable only 89 static void i2c_lpc2k_reset(struct lpc2k_i2c *i2c) in i2c_lpc2k_reset() argument 92 writel(LPC24XX_CLEAR_ALL, i2c->base + LPC24XX_I2CONCLR); in i2c_lpc2k_reset() 93 writel(0, i2c->base + LPC24XX_I2ADDR); in i2c_lpc2k_reset() 94 writel(LPC24XX_I2EN, i2c->base + LPC24XX_I2CONSET); in i2c_lpc2k_reset() 97 static int i2c_lpc2k_clear_arb(struct lpc2k_i2c *i2c) in i2c_lpc2k_clear_arb() argument 105 writel(LPC24XX_STO, i2c->base + LPC24XX_I2CONSET); in i2c_lpc2k_clear_arb() [all …]
|
| D | i2c-synquacer.c | 12 #include <linux/i2c.h> 25 /* I2C register address definitions */ 35 /* I2C register bit definitions */ 113 /* min I2C clock frequency 14M */ 115 /* max I2C clock frequency 200M */ 117 /* I2C clock frequency 18M */ 151 static inline int is_lastmsg(struct synquacer_i2c *i2c) in is_lastmsg() argument 153 return i2c->msg_idx >= (i2c->msg_num - 1); in is_lastmsg() 156 static inline int is_msglast(struct synquacer_i2c *i2c) in is_msglast() argument 158 return i2c->msg_ptr == (i2c->msg->len - 1); in is_msglast() [all …]
|
| D | i2c-mt65xx.c | 22 #include <linux/i2c.h> 81 #define I2C_DRV_NAME "i2c-mt65xx" 146 struct i2c_adapter adap; /* i2c host adapter */ 150 /* set in i2c probe */ 151 void __iomem *base; /* i2c base addr */ 153 struct clk *clk_main; /* main clock for i2c bus */ 154 struct clk *clk_dma; /* DMA clock for i2c via DMA */ 155 struct clk *clk_pmic; /* PMIC clock for i2c from PMIC */ 156 bool have_pmic; /* can use i2c pins from PMIC */ 232 { .compatible = "mediatek,mt2712-i2c", .data = &mt2712_compat }, [all …]
|
| /kernel/linux/linux-4.19/sound/soc/codecs/ |
| D | Kconfig | 1 # Helper to resolve issues with configs that have SPI enabled but I2C 2 # modular, meaning we can't build the codec driver in with I2C support. 7 default m if I2C=m 8 default y if I2C=y 22 select SND_SOC_AD193X_I2C if I2C 25 select SND_SOC_ADAU1373 if I2C 26 select SND_SOC_ADAU1761_I2C if I2C 28 select SND_SOC_ADAU1781_I2C if I2C 31 select SND_SOC_ADAV803 if I2C 33 select SND_SOC_ADAU1977_I2C if I2C [all …]
|