Home
last modified time | relevance | path

Searched full:i2c (Results 1 – 25 of 6155) sorted by relevance

12345678910>>...247

/kernel/linux/linux-5.10/drivers/i2c/busses/
DMakefile3 # 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 …]
Di2c-pxa.c5 * 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 …]
Di2c-digicolor.c3 * 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 …]
Di2c-ocores.c3 * 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 …]
Di2c-zx2967.c10 #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 …]
Di2c-jz4780.c3 * 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 …]
Di2c-s3c2410.c2 /* 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 …]
Di2c-xiic.c3 * 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 …]
Di2c-meson.c3 * 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 …]
Di2c-lpc2k.c5 * 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 …]
Di2c-img-scb.c3 * 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 …]
Di2c-synquacer.c12 #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/
DMakefile3 # 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 …]
Di2c-pxa.c4 * 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 …]
Di2c-ocores.c2 * 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 …]
Di2c-digicolor.c2 * 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 …]
Di2c-zx2967.c13 #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 …]
Di2c-jz4780.c2 * 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 …]
Di2c-xiic.c2 * 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 …]
Di2c-meson.c2 * 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 …]
Di2c-s3c2410.c1 /* 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 …]
Di2c-lpc2k.c4 * 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 …]
Di2c-synquacer.c12 #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 …]
Di2c-mt65xx.c22 #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/
DKconfig1 # 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 …]

12345678910>>...247