| /linux/drivers/i2c/busses/ |
| H A D | i2c-xiic.c | 245 #define xiic_tx_space(i2c) ((i2c)->tx_msg->len - (i2c)->tx_pos) argument 246 #define xiic_rx_space(i2c) ((i2c)->rx_msg->len - (i2c)->rx_pos) argument 248 static int xiic_start_xfer(struct xiic_i2c *i2c, struct i2c_msg *msgs, int num); 249 static void __xiic_start_xfer(struct xiic_i2c *i2c); 253 struct xiic_i2c *i2c = dev_get_drvdata(dev); in xiic_i2c_runtime_suspend() local 255 clk_disable(i2c->clk); in xiic_i2c_runtime_suspend() 262 struct xiic_i2c *i2c = dev_get_drvdata(dev); in xiic_i2c_runtime_resume() local 265 ret = clk_enable(i2c->clk); in xiic_i2c_runtime_resume() 282 static inline void xiic_setreg8(struct xiic_i2c *i2c, int reg, u8 value) in xiic_setreg8() argument 284 if (i2c->endianness == LITTLE) in xiic_setreg8() [all …]
|
| H A D | i2c-pxa.c | 274 #define _IBMR(i2c) ((i2c)->reg_ibmr) argument 275 #define _IDBR(i2c) ((i2c)->reg_idbr) argument 276 #define _ICR(i2c) ((i2c)->reg_icr) argument 277 #define _ISR(i2c) ((i2c)->reg_isr) argument 278 #define _ISAR(i2c) ((i2c)->reg_isar) argument 279 #define _ILCR(i2c) ((i2c)->reg_ilcr) argument 280 #define _IWCR(i2c) ((i2c)->reg_iwcr) argument 355 static void i2c_pxa_show_state(struct pxa_i2c *i2c, int lno, const char *fname) in i2c_pxa_show_state() argument 357 dev_dbg(&i2c->adap.dev, "state:%s:%d: ISR=%08x, ICR=%08x, IBMR=%02x\n", fname, lno, in i2c_pxa_show_state() 358 readl(_ISR(i2c)), readl(_ICR(i2c)), readl(_IBMR(i2c))); in i2c_pxa_show_state() [all …]
|
| H A D | i2c-s3c2410.c | 137 static void i2c_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat); 166 static inline void s3c24xx_i2c_master_complete(struct s3c24xx_i2c *i2c, int ret) in s3c24xx_i2c_master_complete() argument 168 dev_dbg(i2c->dev, "master_complete %d\n", ret); in s3c24xx_i2c_master_complete() 170 i2c->msg_ptr = 0; in s3c24xx_i2c_master_complete() 171 i2c->msg = NULL; in s3c24xx_i2c_master_complete() 172 i2c->msg_idx++; in s3c24xx_i2c_master_complete() 173 i2c->msg_num = 0; in s3c24xx_i2c_master_complete() 175 i2c->msg_idx = ret; in s3c24xx_i2c_master_complete() 177 if (!(i2c->quirks & (QUIRK_POLL | QUIRK_ATOMIC))) in s3c24xx_i2c_master_complete() 178 wake_up(&i2c->wait); in s3c24xx_i2c_master_complete() [all …]
|
| H A D | Makefile | 3 # Makefile for the i2c bus drivers. 7 obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o 10 obj-$(CONFIG_I2C_CCGX_UCSI) += i2c-ccgx-ucsi.o 13 obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o 14 obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o 15 obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o 16 obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o 17 obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o 18 obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o 19 obj-$(CONFIG_I2C_I801) += i2c [all...] |
| H A D | i2c-img-scb.c | 414 static void img_i2c_writel(struct img_i2c *i2c, u32 offset, u32 value) in img_i2c_writel() argument 416 writel(value, i2c->base + offset); in img_i2c_writel() 419 static u32 img_i2c_readl(struct img_i2c *i2c, u32 offset) in img_i2c_readl() argument 421 return readl(i2c->base + offset); in img_i2c_readl() 436 static void img_i2c_wr_rd_fence(struct img_i2c *i2c) in img_i2c_wr_rd_fence() argument 438 if (i2c->need_wr_rd_fence) { in img_i2c_wr_rd_fence() 439 img_i2c_writel(i2c, SCB_CORE_REV_REG, 0); in img_i2c_wr_rd_fence() 440 img_i2c_writel(i2c, SCB_CORE_REV_REG, 0); in img_i2c_wr_rd_fence() 444 static void img_i2c_switch_mode(struct img_i2c *i2c, enum img_i2c_mode mode) in img_i2c_switch_mode() argument 446 i2c->mode = mode; in img_i2c_switch_mode() [all …]
|
| H A D | i2c-jz4780.c | 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() 202 static int jz4780_i2c_enable(struct jz4780_i2c *i2c) in jz4780_i2c_enable() argument 207 jz4780_i2c_writew(i2c, JZ4780_I2C_ENB, 1); in jz4780_i2c_enable() [all …]
|
| H A D | i2c-digicolor.c | 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 99 dc_i2c_write_byte(i2c, i2c->msg->buf[i2c->msgbuf_ptr++]); in dc_i2c_write_buf() 102 static void dc_i2c_next_read(struct dc_i2c *i2c) in dc_i2c_next_read() argument [all …]
|
| H A D | i2c-synquacer.c | 12 #include <linux/i2c.h> 149 static inline int is_lastmsg(struct synquacer_i2c *i2c) in is_lastmsg() 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() 156 return i2c->msg_ptr == (i2c->msg->len - 1); in is_msglast() 159 static inline int is_msgend(struct synquacer_i2c *i2c) in is_msgend() 161 return i2c->msg_ptr >= i2c in is_msgend() 148 is_lastmsg(struct synquacer_i2c * i2c) is_lastmsg() argument 153 is_msglast(struct synquacer_i2c * i2c) is_msglast() argument 158 is_msgend(struct synquacer_i2c * i2c) is_msgend() argument 163 calc_timeout_ms(struct synquacer_i2c * i2c,struct i2c_msg * msgs,int num) calc_timeout_ms() argument 176 synquacer_i2c_stop(struct synquacer_i2c * i2c,int ret) synquacer_i2c_stop() argument 197 synquacer_i2c_hw_init(struct synquacer_i2c * i2c) synquacer_i2c_hw_init() argument 248 synquacer_i2c_hw_reset(struct synquacer_i2c * i2c) synquacer_i2c_hw_reset() argument 257 synquacer_i2c_master_start(struct synquacer_i2c * i2c,struct i2c_msg * pmsg) synquacer_i2c_master_start() argument 309 synquacer_i2c_doxfer(struct synquacer_i2c * i2c,struct i2c_msg * msgs,int num) synquacer_i2c_doxfer() argument 358 struct synquacer_i2c *i2c = dev_id; synquacer_i2c_isr() local 496 struct synquacer_i2c *i2c; synquacer_i2c_xfer() local 536 struct synquacer_i2c *i2c; synquacer_i2c_probe() local 611 struct synquacer_i2c *i2c = platform_get_drvdata(pdev); synquacer_i2c_remove() local [all...] |
| H A D | i2c-k1.c | 133 static void spacemit_i2c_enable(struct spacemit_i2c_dev *i2c) in spacemit_i2c_enable() argument 137 val = readl(i2c->base + SPACEMIT_ICR); in spacemit_i2c_enable() 139 writel(val, i2c->base + SPACEMIT_ICR); in spacemit_i2c_enable() 142 static void spacemit_i2c_disable(struct spacemit_i2c_dev *i2c) in spacemit_i2c_disable() argument 146 val = readl(i2c->base + SPACEMIT_ICR); in spacemit_i2c_disable() 148 writel(val, i2c->base + SPACEMIT_ICR); in spacemit_i2c_disable() 151 static void spacemit_i2c_reset(struct spacemit_i2c_dev *i2c) in spacemit_i2c_reset() argument 153 writel(SPACEMIT_CR_UR, i2c->base + SPACEMIT_ICR); in spacemit_i2c_reset() 155 writel(0, i2c->base + SPACEMIT_ICR); in spacemit_i2c_reset() 158 static int spacemit_i2c_handle_err(struct spacemit_i2c_dev *i2c) in spacemit_i2c_handle_err() argument [all …]
|
| H A D | i2c-octeon-core.c | 31 struct octeon_i2c *i2c = dev_id; in octeon_i2c_isr() local 33 i2c->int_disable(i2c); in octeon_i2c_isr() 34 wake_up(&i2c->queue); in octeon_i2c_isr() 39 static bool octeon_i2c_test_iflg(struct octeon_i2c *i2c) in octeon_i2c_test_iflg() argument 41 return (octeon_i2c_ctl_read(i2c) & TWSI_CTL_IFLG); in octeon_i2c_test_iflg() 50 static int octeon_i2c_wait(struct octeon_i2c *i2c) in octeon_i2c_wait() argument 58 if (i2c->broken_irq_mode) { in octeon_i2c_wait() 59 u64 end = get_jiffies_64() + i2c->adap.timeout; in octeon_i2c_wait() 61 while (!octeon_i2c_test_iflg(i2c) && in octeon_i2c_wait() 65 return octeon_i2c_test_iflg(i2c) ? 0 : -ETIMEDOUT; in octeon_i2c_wait() [all …]
|
| H A D | i2c-ocores.c | 48 void (*setreg)(struct ocores_i2c *i2c, int reg, u8 value); 49 u8 (*getreg)(struct ocores_i2c *i2c, int reg); 88 static void oc_setreg_8(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_8() argument 90 iowrite8(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_8() 93 static void oc_setreg_16(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_16() argument 95 iowrite16(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_16() 98 static void oc_setreg_32(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_32() argument 100 iowrite32(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_32() 103 static void oc_setreg_16be(struct ocores_i2c *i2c, int reg, u8 value) in oc_setreg_16be() argument 105 iowrite16be(value, i2c->base + (reg << i2c->reg_shift)); in oc_setreg_16be() [all …]
|
| H A D | i2c-exynos5.c | 272 static void exynos5_i2c_clr_pend_irq(struct exynos5_i2c *i2c) in exynos5_i2c_clr_pend_irq() argument 274 writel(readl(i2c->regs + HSI2C_INT_STATUS), in exynos5_i2c_clr_pend_irq() 275 i2c->regs + HSI2C_INT_STATUS); in exynos5_i2c_clr_pend_irq() 288 static int exynos5_i2c_set_timing(struct exynos5_i2c *i2c, bool hs_timings) in exynos5_i2c_set_timing() argument 300 unsigned int clkin = clk_get_rate(i2c->clk); in exynos5_i2c_set_timing() 301 unsigned int op_clk = hs_timings ? i2c->op_clock : in exynos5_i2c_set_timing() 302 (i2c->op_clock >= I2C_MAX_FAST_MODE_PLUS_FREQ) ? I2C_MAX_STANDARD_MODE_FREQ : in exynos5_i2c_set_timing() 303 i2c->op_clock; in exynos5_i2c_set_timing() 320 if (i2c->variant->hw == I2C_TYPE_EXYNOSAUTOV9) { in exynos5_i2c_set_timing() 321 div = ((clkin / (16 * i2c->op_clock)) - 1); in exynos5_i2c_set_timing() [all …]
|
| H A D | i2c-mpc.c | 109 void (*setup)(struct device_node *node, struct mpc_i2c *i2c, u32 clock); 112 static inline void writeccr(struct mpc_i2c *i2c, u32 x) in writeccr() argument 114 writeb(x, i2c->base + MPC_I2C_CR); in writeccr() 122 static void mpc_i2c_fixup(struct mpc_i2c *i2c) in mpc_i2c_fixup() argument 128 writeccr(i2c, 0); in mpc_i2c_fixup() 129 writeb(0, i2c->base + MPC_I2C_SR); /* clear any status bits */ in mpc_i2c_fixup() 130 writeccr(i2c, CCR_MEN | CCR_MSTA); /* START */ in mpc_i2c_fixup() 131 readb(i2c->base + MPC_I2C_DR); /* init xfer */ in mpc_i2c_fixup() 134 writeccr(i2c, CCR_MEN | CCR_MSTA | CCR_RSTA); /* delay SDA */ in mpc_i2c_fixup() 135 readb(i2c->base + MPC_I2C_DR); in mpc_i2c_fixup() [all …]
|
| H A D | i2c-lpc2k.c | 83 static void i2c_lpc2k_reset(struct lpc2k_i2c *i2c) in i2c_lpc2k_reset() argument 86 writel(LPC24XX_CLEAR_ALL, i2c->base + LPC24XX_I2CONCLR); in i2c_lpc2k_reset() 87 writel(0, i2c->base + LPC24XX_I2ADDR); in i2c_lpc2k_reset() 88 writel(LPC24XX_I2EN, i2c->base + LPC24XX_I2CONSET); in i2c_lpc2k_reset() 91 static int i2c_lpc2k_clear_arb(struct lpc2k_i2c *i2c) in i2c_lpc2k_clear_arb() argument 99 writel(LPC24XX_STO, i2c->base + LPC24XX_I2CONSET); in i2c_lpc2k_clear_arb() 102 while (readl(i2c->base + LPC24XX_I2STAT) != M_I2C_IDLE) { in i2c_lpc2k_clear_arb() 105 i2c_lpc2k_reset(i2c); in i2c_lpc2k_clear_arb() 115 static void i2c_lpc2k_pump_msg(struct lpc2k_i2c *i2c) in i2c_lpc2k_pump_msg() argument 124 status = readl(i2c->base + LPC24XX_I2STAT); in i2c_lpc2k_pump_msg() [all …]
|
| H A D | i2c-mt65xx.c | 14 #include <linux/i2c.h> 86 #define I2C_DRV_NAME "i2c-mt65xx" 91 * @I2C_MT65XX_CLK_MAIN: main clock for i2c bus 92 * @I2C_MT65XX_CLK_DMA: DMA clock for i2c via DMA 93 * @I2C_MT65XX_CLK_PMIC: PMIC clock for i2c from PMIC 94 * @I2C_MT65XX_CLK_ARB: Arbitrator clock for i2c 288 struct i2c_adapter adap; /* i2c host adapter */ 293 /* set in i2c probe */ 294 void __iomem *base; /* i2c base addr */ 296 struct clk_bulk_data clocks[I2C_MT65XX_CLK_MAX]; /* clocks for i2c */ 541 mtk_i2c_readw(struct mtk_i2c * i2c,enum I2C_REGS_OFFSET reg) mtk_i2c_readw() argument 546 mtk_i2c_writew(struct mtk_i2c * i2c,u16 val,enum I2C_REGS_OFFSET reg) mtk_i2c_writew() argument 552 mtk_i2c_init_hw(struct mtk_i2c * i2c) mtk_i2c_init_hw() argument 659 mtk_i2c_get_clk_div_restri(struct mtk_i2c * i2c,unsigned int sample_cnt) mtk_i2c_get_clk_div_restri() argument 696 mtk_i2c_check_ac_timing(struct mtk_i2c * i2c,unsigned int clk_src,unsigned int check_speed,unsigned int step_cnt,unsigned int sample_cnt) mtk_i2c_check_ac_timing() argument 798 mtk_i2c_calculate_speed(struct mtk_i2c * i2c,unsigned int clk_src,unsigned int target_speed,unsigned int * timing_step_cnt,unsigned int * timing_sample_cnt) mtk_i2c_calculate_speed() argument 871 mtk_i2c_set_speed(struct mtk_i2c * i2c,unsigned int parent_clk) mtk_i2c_set_speed() argument 943 i2c_dump_register(struct mtk_i2c * i2c) i2c_dump_register() argument 994 mtk_i2c_do_transfer(struct mtk_i2c * i2c,struct i2c_msg * msgs,int num,int left_num) mtk_i2c_do_transfer() argument 1244 struct mtk_i2c *i2c = i2c_get_adapdata(adap); mtk_i2c_transfer() local 1308 struct mtk_i2c *i2c = dev_id; mtk_i2c_irq() local 1349 mtk_i2c_parse_dt(struct device_node * np,struct mtk_i2c * i2c) mtk_i2c_parse_dt() argument 1376 struct mtk_i2c *i2c; mtk_i2c_probe() local 1505 struct mtk_i2c *i2c = platform_get_drvdata(pdev); mtk_i2c_remove() local 1514 struct mtk_i2c *i2c = dev_get_drvdata(dev); mtk_i2c_suspend_noirq() local 1525 struct mtk_i2c *i2c = dev_get_drvdata(dev); mtk_i2c_resume_noirq() local [all...] |
| H A D | i2c-meson.c | 108 void (*set_clk_div)(struct meson_i2c *i2c, unsigned int freq); 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 124 i2c->tokens[0] = 0; in meson_i2c_reset_tokens() 125 i2c->tokens[1] = 0; in meson_i2c_reset_tokens() 126 i2c->num_tokens = 0; in meson_i2c_reset_tokens() 129 static void meson_i2c_add_token(struct meson_i2c *i2c, int token) in meson_i2c_add_token() argument 131 if (i2c->num_tokens < 8) in meson_i2c_add_token() [all …]
|
| H A D | i2c-mxs.c | 69 #define MXS_I2C_DATA(i2c) ((i2c->dev_type == MXS_I2C_V1) ? 0x60 : 0xa0) argument 71 #define MXS_I2C_DEBUG0_CLR(i2c) ((i2c->dev_type == MXS_I2C_V1) ? 0x78 : 0xb8) argument 132 static int mxs_i2c_reset(struct mxs_i2c_dev *i2c) in mxs_i2c_reset() argument 134 int ret = stmp_reset_block(i2c->regs); in mxs_i2c_reset() 145 writel(i2c->timing0, i2c->regs + MXS_I2C_TIMING0); in mxs_i2c_reset() 146 writel(i2c->timing1, i2c->regs + MXS_I2C_TIMING1); in mxs_i2c_reset() 147 writel(i2c->timing2, i2c->regs + MXS_I2C_TIMING2); in mxs_i2c_reset() 149 writel(MXS_I2C_IRQ_MASK << 8, i2c->regs + MXS_I2C_CTRL1_SET); in mxs_i2c_reset() 154 static void mxs_i2c_dma_finish(struct mxs_i2c_dev *i2c) in mxs_i2c_dma_finish() argument 156 if (i2c->dma_read) { in mxs_i2c_dma_finish() [all …]
|
| H A D | i2c-rk3x.c | 11 #include <linux/i2c.h> 164 * @grf_offset: offset inside the grf regmap for setting the i2c type 165 * @calc_timings: Callback function for i2c timing information calculated 181 * @clk_rate_nb: i2c clk rate change notify 184 * @lock: spinlock for the i2c bus 185 * @wait: the waitqueue to wait for i2c transfer 187 * @msg: current i2c message 188 * @addr: addr of i2c target device 189 * @mode: mode of i2c transfer 191 * @state: state of i2c transfe 226 i2c_writel(struct rk3x_i2c * i2c,u32 value,unsigned int offset) i2c_writel() argument 232 i2c_readl(struct rk3x_i2c * i2c,unsigned int offset) i2c_readl() argument 238 rk3x_i2c_clean_ipd(struct rk3x_i2c * i2c) rk3x_i2c_clean_ipd() argument 247 rk3x_i2c_start(struct rk3x_i2c * i2c) rk3x_i2c_start() argument 268 rk3x_i2c_stop(struct rk3x_i2c * i2c,int error) rk3x_i2c_stop() argument 307 rk3x_i2c_prepare_read(struct rk3x_i2c * i2c) rk3x_i2c_prepare_read() argument 339 rk3x_i2c_fill_transmit_buf(struct rk3x_i2c * i2c) rk3x_i2c_fill_transmit_buf() argument 373 rk3x_i2c_handle_start(struct rk3x_i2c * i2c,unsigned int ipd) rk3x_i2c_handle_start() argument 401 rk3x_i2c_handle_write(struct rk3x_i2c * i2c,unsigned int ipd) rk3x_i2c_handle_write() argument 420 rk3x_i2c_handle_read(struct rk3x_i2c * i2c,unsigned int ipd) rk3x_i2c_handle_read() argument 454 rk3x_i2c_handle_stop(struct rk3x_i2c * i2c,unsigned int ipd) rk3x_i2c_handle_stop() argument 482 struct rk3x_i2c *i2c = dev_id; rk3x_i2c_irq() local 874 rk3x_i2c_adapt_div(struct rk3x_i2c * i2c,unsigned long clk_rate) rk3x_i2c_adapt_div() argument 930 struct rk3x_i2c *i2c = container_of(nb, struct rk3x_i2c, clk_rate_nb); rk3x_i2c_clk_notifier_cb() local 974 rk3x_i2c_setup(struct rk3x_i2c * i2c,struct i2c_msg * msgs,int num) rk3x_i2c_setup() argument 1046 rk3x_i2c_wait_xfer_poll(struct rk3x_i2c * i2c) rk3x_i2c_wait_xfer_poll() argument 1062 struct rk3x_i2c *i2c = (struct rk3x_i2c *)adap->algo_data; rk3x_i2c_xfer_common() local 1150 struct rk3x_i2c *i2c = dev_get_drvdata(dev); rk3x_i2c_resume() local 1240 struct rk3x_i2c *i2c; rk3x_i2c_probe() local 1388 struct rk3x_i2c *i2c = platform_get_drvdata(pdev); rk3x_i2c_remove() local [all...] |
| H A D | i2c-thunderx-pcidrv.c | 41 static void thunder_i2c_int_enable(struct octeon_i2c *i2c) in thunder_i2c_int_enable() argument 44 i2c->twsi_base + TWSI_INT_ENA_W1S); in thunder_i2c_int_enable() 50 static void thunder_i2c_int_disable(struct octeon_i2c *i2c) in thunder_i2c_int_disable() argument 53 i2c->twsi_base + TWSI_INT_ENA_W1C); in thunder_i2c_int_disable() 56 static void thunder_i2c_hlc_int_enable(struct octeon_i2c *i2c) in thunder_i2c_hlc_int_enable() argument 59 i2c->twsi_base + TWSI_INT_ENA_W1S); in thunder_i2c_hlc_int_enable() 62 static void thunder_i2c_hlc_int_disable(struct octeon_i2c *i2c) in thunder_i2c_hlc_int_disable() argument 65 i2c->twsi_base + TWSI_INT_ENA_W1C); in thunder_i2c_hlc_int_disable() 85 static void thunder_i2c_clock_enable(struct device *dev, struct octeon_i2c *i2c) in thunder_i2c_clock_enable() argument 91 i2c->clk = clk_get(dev, NULL); in thunder_i2c_clock_enable() [all …]
|
| H A D | i2c-octeon-platdrv.c | 38 static void octeon_i2c_int_enable(struct octeon_i2c *i2c) in octeon_i2c_int_enable() argument 40 octeon_i2c_write_int(i2c, TWSI_INT_CORE_EN); in octeon_i2c_int_enable() 44 static void octeon_i2c_int_disable(struct octeon_i2c *i2c) in octeon_i2c_int_disable() argument 47 octeon_i2c_write_int(i2c, 0); in octeon_i2c_int_disable() 57 static void octeon_i2c_int_enable78(struct octeon_i2c *i2c) in octeon_i2c_int_enable78() argument 59 atomic_inc_return(&i2c->int_enable_cnt); in octeon_i2c_int_enable78() 60 enable_irq(i2c->irq); in octeon_i2c_int_enable78() 78 static void octeon_i2c_int_disable78(struct octeon_i2c *i2c) in octeon_i2c_int_disable78() argument 80 __octeon_i2c_irq_disable(&i2c->int_enable_cnt, i2c->irq); in octeon_i2c_int_disable78() 90 static void octeon_i2c_hlc_int_enable78(struct octeon_i2c *i2c) in octeon_i2c_hlc_int_enable78() argument [all …]
|
| H A D | i2c-pca-platform.c | 41 struct i2c_pca_pf_data *i2c = pd; in i2c_pca_pf_readbyte8() local 42 return ioread8(i2c->reg_base + reg); in i2c_pca_pf_readbyte8() 47 struct i2c_pca_pf_data *i2c = pd; in i2c_pca_pf_readbyte16() local 48 return ioread8(i2c->reg_base + reg * 2); in i2c_pca_pf_readbyte16() 53 struct i2c_pca_pf_data *i2c = pd; in i2c_pca_pf_readbyte32() local 54 return ioread8(i2c->reg_base + reg * 4); in i2c_pca_pf_readbyte32() 59 struct i2c_pca_pf_data *i2c = pd; in i2c_pca_pf_writebyte8() local 60 iowrite8(val, i2c->reg_base + reg); in i2c_pca_pf_writebyte8() 65 struct i2c_pca_pf_data *i2c = pd; in i2c_pca_pf_writebyte16() local 66 iowrite8(val, i2c->reg_base + reg * 2); in i2c_pca_pf_writebyte16() [all …]
|
| H A D | i2c-viai2c-common.c | 5 int viai2c_wait_bus_not_busy(struct viai2c *i2c) in viai2c_wait_bus_not_busy() argument 10 while (!(readw(i2c->base + VIAI2C_REG_CSR) & VIAI2C_CSR_READY_MASK)) { in viai2c_wait_bus_not_busy() 12 dev_warn(i2c->dev, "timeout waiting for bus ready\n"); in viai2c_wait_bus_not_busy() 22 static int viai2c_write(struct viai2c *i2c, struct i2c_msg *pmsg, int last) in viai2c_write() argument 24 u16 val, tcr_val = i2c->tcr; in viai2c_write() 26 i2c->last = last; in viai2c_write() 33 i2c->xfered_len = -1; in viai2c_write() 34 writew(0, i2c->base + VIAI2C_REG_CDR); in viai2c_write() 36 writew(pmsg->buf[0] & 0xFF, i2c->base + VIAI2C_REG_CDR); in viai2c_write() 39 if (i2c->platform == VIAI2C_PLAT_WMT && !(pmsg->flags & I2C_M_NOSTART)) { in viai2c_write() [all …]
|
| H A D | i2c-mchp-pci1xxxx.c | 334 static int set_sys_lock(struct pci1xxxx_i2c *i2c) in set_sys_lock() argument 336 void __iomem *p = i2c->i2c_base + SMB_GPR_LOCK_REG; in set_sys_lock() 347 static int release_sys_lock(struct pci1xxxx_i2c *i2c) in release_sys_lock() argument 349 void __iomem *p = i2c->i2c_base + SMB_GPR_LOCK_REG; in release_sys_lock() 364 static void pci1xxxx_ack_high_level_intr(struct pci1xxxx_i2c *i2c, u16 intr_msk) in pci1xxxx_ack_high_level_intr() argument 366 writew(intr_msk, i2c->i2c_base + SMBUS_GEN_INT_STAT_REG_OFF); in pci1xxxx_ack_high_level_intr() 369 static void pci1xxxx_i2c_configure_smbalert_pin(struct pci1xxxx_i2c *i2c, in pci1xxxx_i2c_configure_smbalert_pin() argument 372 void __iomem *p = i2c->i2c_base + SMBALERT_MST_PAD_CTRL_REG_OFF; in pci1xxxx_i2c_configure_smbalert_pin() 385 static void pci1xxxx_i2c_send_start_stop(struct pci1xxxx_i2c *i2c, bool start) in pci1xxxx_i2c_send_start_stop() argument 387 void __iomem *p = i2c->i2c_base + SMB_CORE_CMD_REG_OFF1; in pci1xxxx_i2c_send_start_stop() [all …]
|
| H A D | i2c-mt7621.c | 70 static int mtk_i2c_wait_idle(struct mtk_i2c *i2c) in mtk_i2c_wait_idle() argument 75 ret = readl_relaxed_poll_timeout(i2c->base + REG_SM0CTL1_REG, in mtk_i2c_wait_idle() 79 dev_dbg(i2c->dev, "idle err(%d)\n", ret); in mtk_i2c_wait_idle() 84 static void mtk_i2c_reset(struct mtk_i2c *i2c) in mtk_i2c_reset() argument 88 ret = device_reset(i2c->adap.dev.parent); in mtk_i2c_reset() 90 dev_err(i2c->dev, "I2C reset failed!\n"); in mtk_i2c_reset() 96 iowrite32(((i2c->clk_div << 16) & SM0CTL0_CLK_DIV_MASK) | SM0CTL0_EN | in mtk_i2c_reset() 97 SM0CTL0_SCL_STRETCH, i2c->base + REG_SM0CTL0_REG); in mtk_i2c_reset() 98 iowrite32(0, i2c->base + REG_SM0CFG2_REG); in mtk_i2c_reset() 101 static void mtk_i2c_dump_reg(struct mtk_i2c *i2c) in mtk_i2c_dump_reg() argument [all …]
|
| /linux/drivers/media/pci/netup_unidvb/ |
| H A D | netup_unidvb_i2c.c | 65 irqreturn_t netup_i2c_interrupt(struct netup_i2c *i2c) in netup_i2c_interrupt() argument 71 spin_lock_irqsave(&i2c->lock, flags); in netup_i2c_interrupt() 72 reg = readw(&i2c->regs->twi_ctrl0_stat); in netup_i2c_interrupt() 73 writew(reg & ~TWI_IRQEN, &i2c->regs->twi_ctrl0_stat); in netup_i2c_interrupt() 74 dev_dbg(i2c->adap.dev.parent, in netup_i2c_interrupt() 77 dev_dbg(i2c->adap.dev.parent, in netup_i2c_interrupt() 79 i2c->state = STATE_DONE; in netup_i2c_interrupt() 83 dev_dbg(i2c->adap.dev.parent, in netup_i2c_interrupt() 85 i2c->state = STATE_ERROR; in netup_i2c_interrupt() 89 dev_dbg(i2c->adap.dev.parent, in netup_i2c_interrupt() [all …]
|