Lines Matching refs:i2c_imx

272 static inline int is_imx1_i2c(struct imx_i2c_struct *i2c_imx)  in is_imx1_i2c()  argument
274 return i2c_imx->hwdata->devtype == IMX1_I2C; in is_imx1_i2c()
278 struct imx_i2c_struct *i2c_imx, unsigned int reg) in imx_i2c_write_reg() argument
280 writeb(val, i2c_imx->base + (reg << i2c_imx->hwdata->regshift)); in imx_i2c_write_reg()
283 static inline unsigned char imx_i2c_read_reg(struct imx_i2c_struct *i2c_imx, in imx_i2c_read_reg() argument
286 return readb(i2c_imx->base + (reg << i2c_imx->hwdata->regshift)); in imx_i2c_read_reg()
290 static void i2c_imx_dma_request(struct imx_i2c_struct *i2c_imx, in i2c_imx_dma_request() argument
295 struct device *dev = &i2c_imx->adapter.dev; in i2c_imx_dma_request()
309 (IMX_I2C_I2DR << i2c_imx->hwdata->regshift); in i2c_imx_dma_request()
326 (IMX_I2C_I2DR << i2c_imx->hwdata->regshift); in i2c_imx_dma_request()
336 i2c_imx->dma = dma; in i2c_imx_dma_request()
354 struct imx_i2c_struct *i2c_imx = (struct imx_i2c_struct *)arg; in i2c_imx_dma_callback() local
355 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_callback()
362 static int i2c_imx_dma_xfer(struct imx_i2c_struct *i2c_imx, in i2c_imx_dma_xfer() argument
365 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_xfer()
367 struct device *dev = &i2c_imx->adapter.dev; in i2c_imx_dma_xfer()
386 txdesc->callback_param = i2c_imx; in i2c_imx_dma_xfer()
403 static void i2c_imx_dma_free(struct imx_i2c_struct *i2c_imx) in i2c_imx_dma_free() argument
405 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_free()
422 static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy) in i2c_imx_bus_busy() argument
427 dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); in i2c_imx_bus_busy()
430 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR); in i2c_imx_bus_busy()
435 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR); in i2c_imx_bus_busy()
444 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_bus_busy()
454 static int i2c_imx_trx_complete(struct imx_i2c_struct *i2c_imx) in i2c_imx_trx_complete() argument
456 wait_event_timeout(i2c_imx->queue, i2c_imx->i2csr & I2SR_IIF, HZ / 10); in i2c_imx_trx_complete()
458 if (unlikely(!(i2c_imx->i2csr & I2SR_IIF))) { in i2c_imx_trx_complete()
459 dev_dbg(&i2c_imx->adapter.dev, "<%s> Timeout\n", __func__); in i2c_imx_trx_complete()
462 dev_dbg(&i2c_imx->adapter.dev, "<%s> TRX complete\n", __func__); in i2c_imx_trx_complete()
463 i2c_imx->i2csr = 0; in i2c_imx_trx_complete()
467 static int i2c_imx_acked(struct imx_i2c_struct *i2c_imx) in i2c_imx_acked() argument
469 if (imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR) & I2SR_RXAK) { in i2c_imx_acked()
470 dev_dbg(&i2c_imx->adapter.dev, "<%s> No ACK\n", __func__); in i2c_imx_acked()
474 dev_dbg(&i2c_imx->adapter.dev, "<%s> ACK received\n", __func__); in i2c_imx_acked()
478 static void i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx) in i2c_imx_set_clk() argument
480 struct imx_i2c_clk_pair *i2c_clk_div = i2c_imx->hwdata->clk_div; in i2c_imx_set_clk()
486 i2c_clk_rate = clk_get_rate(i2c_imx->clk); in i2c_imx_set_clk()
487 if (i2c_imx->cur_clk == i2c_clk_rate) in i2c_imx_set_clk()
490 i2c_imx->cur_clk = i2c_clk_rate; in i2c_imx_set_clk()
492 div = (i2c_clk_rate + i2c_imx->bitrate - 1) / i2c_imx->bitrate; in i2c_imx_set_clk()
495 else if (div > i2c_clk_div[i2c_imx->hwdata->ndivs - 1].div) in i2c_imx_set_clk()
496 i = i2c_imx->hwdata->ndivs - 1; in i2c_imx_set_clk()
502 i2c_imx->ifdr = i2c_clk_div[i].val; in i2c_imx_set_clk()
510 i2c_imx->disable_delay = (500000U * i2c_clk_div[i].div in i2c_imx_set_clk()
514 dev_dbg(&i2c_imx->adapter.dev, "I2C_CLK=%d, REQ DIV=%d\n", in i2c_imx_set_clk()
516 dev_dbg(&i2c_imx->adapter.dev, "IFDR[IC]=0x%x, REAL DIV=%d\n", in i2c_imx_set_clk()
521 static int i2c_imx_start(struct imx_i2c_struct *i2c_imx) in i2c_imx_start() argument
526 dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); in i2c_imx_start()
528 i2c_imx_set_clk(i2c_imx); in i2c_imx_start()
530 result = clk_prepare_enable(i2c_imx->clk); in i2c_imx_start()
533 imx_i2c_write_reg(i2c_imx->ifdr, i2c_imx, IMX_I2C_IFDR); in i2c_imx_start()
535 imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); in i2c_imx_start()
536 imx_i2c_write_reg(i2c_imx->hwdata->i2cr_ien_opcode, i2c_imx, IMX_I2C_I2CR); in i2c_imx_start()
542 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_start()
544 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_start()
545 result = i2c_imx_bus_busy(i2c_imx, 1); in i2c_imx_start()
548 i2c_imx->stopped = 0; in i2c_imx_start()
552 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_start()
556 static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx) in i2c_imx_stop() argument
560 if (!i2c_imx->stopped) { in i2c_imx_stop()
562 dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); in i2c_imx_stop()
563 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_stop()
565 if (i2c_imx->dma) in i2c_imx_stop()
567 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_stop()
569 if (is_imx1_i2c(i2c_imx)) { in i2c_imx_stop()
574 udelay(i2c_imx->disable_delay); in i2c_imx_stop()
577 if (!i2c_imx->stopped) { in i2c_imx_stop()
578 i2c_imx_bus_busy(i2c_imx, 0); in i2c_imx_stop()
579 i2c_imx->stopped = 1; in i2c_imx_stop()
583 temp = i2c_imx->hwdata->i2cr_ien_opcode ^ I2CR_IEN, in i2c_imx_stop()
584 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_stop()
585 clk_disable_unprepare(i2c_imx->clk); in i2c_imx_stop()
590 struct imx_i2c_struct *i2c_imx = dev_id; in i2c_imx_isr() local
593 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR); in i2c_imx_isr()
596 i2c_imx->i2csr = temp; in i2c_imx_isr()
598 temp |= (i2c_imx->hwdata->i2sr_clr_opcode & I2SR_IIF); in i2c_imx_isr()
599 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2SR); in i2c_imx_isr()
600 wake_up(&i2c_imx->queue); in i2c_imx_isr()
607 static int i2c_imx_dma_write(struct imx_i2c_struct *i2c_imx, in i2c_imx_dma_write() argument
614 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_write()
615 struct device *dev = &i2c_imx->adapter.dev; in i2c_imx_dma_write()
621 result = i2c_imx_dma_xfer(i2c_imx, msgs); in i2c_imx_dma_write()
625 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_write()
627 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_write()
633 imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_write()
634 reinit_completion(&i2c_imx->dma->cmd_complete); in i2c_imx_dma_write()
636 &i2c_imx->dma->cmd_complete, in i2c_imx_dma_write()
645 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR); in i2c_imx_dma_write()
656 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_write()
658 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_write()
662 i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_write()
663 result = i2c_imx_trx_complete(i2c_imx); in i2c_imx_dma_write()
667 return i2c_imx_acked(i2c_imx); in i2c_imx_dma_write()
670 static int i2c_imx_dma_read(struct imx_i2c_struct *i2c_imx, in i2c_imx_dma_read() argument
677 struct imx_i2c_dma *dma = i2c_imx->dma; in i2c_imx_dma_read()
678 struct device *dev = &i2c_imx->adapter.dev; in i2c_imx_dma_read()
680 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
682 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
689 result = i2c_imx_dma_xfer(i2c_imx, msgs); in i2c_imx_dma_read()
693 reinit_completion(&i2c_imx->dma->cmd_complete); in i2c_imx_dma_read()
695 &i2c_imx->dma->cmd_complete, in i2c_imx_dma_read()
704 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR); in i2c_imx_dma_read()
715 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
717 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
720 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
722 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
724 msgs->buf[msgs->len-2] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_read()
726 result = i2c_imx_trx_complete(i2c_imx); in i2c_imx_dma_read()
736 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
738 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_dma_read()
739 i2c_imx_bus_busy(i2c_imx, 0); in i2c_imx_dma_read()
740 i2c_imx->stopped = 1; in i2c_imx_dma_read()
749 temp = readb(i2c_imx->base + IMX_I2C_I2CR); in i2c_imx_dma_read()
751 writeb(temp, i2c_imx->base + IMX_I2C_I2CR); in i2c_imx_dma_read()
753 msgs->buf[msgs->len-1] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_read()
758 static int i2c_imx_write(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs) in i2c_imx_write() argument
762 dev_dbg(&i2c_imx->adapter.dev, "<%s> write slave address: addr=0x%x\n", in i2c_imx_write()
766 imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR); in i2c_imx_write()
767 result = i2c_imx_trx_complete(i2c_imx); in i2c_imx_write()
770 result = i2c_imx_acked(i2c_imx); in i2c_imx_write()
773 dev_dbg(&i2c_imx->adapter.dev, "<%s> write data\n", __func__); in i2c_imx_write()
777 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_write()
780 imx_i2c_write_reg(msgs->buf[i], i2c_imx, IMX_I2C_I2DR); in i2c_imx_write()
781 result = i2c_imx_trx_complete(i2c_imx); in i2c_imx_write()
784 result = i2c_imx_acked(i2c_imx); in i2c_imx_write()
791 static int i2c_imx_read(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs, bool is_lastmsg) in i2c_imx_read() argument
797 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_read()
802 imx_i2c_write_reg((msgs->addr << 1) | 0x01, i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
803 result = i2c_imx_trx_complete(i2c_imx); in i2c_imx_read()
806 result = i2c_imx_acked(i2c_imx); in i2c_imx_read()
810 dev_dbg(&i2c_imx->adapter.dev, "<%s> setup bus\n", __func__); in i2c_imx_read()
813 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_read()
822 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_read()
823 imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); /* dummy read */ in i2c_imx_read()
825 dev_dbg(&i2c_imx->adapter.dev, "<%s> read data\n", __func__); in i2c_imx_read()
827 if (i2c_imx->dma && msgs->len >= DMA_THRESHOLD && !block_data) in i2c_imx_read()
828 return i2c_imx_dma_read(i2c_imx, msgs, is_lastmsg); in i2c_imx_read()
834 result = i2c_imx_trx_complete(i2c_imx); in i2c_imx_read()
843 len = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
846 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_read()
857 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_read()
859 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_read()
861 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_read()
862 i2c_imx_bus_busy(i2c_imx, 0); in i2c_imx_read()
863 i2c_imx->stopped = 1; in i2c_imx_read()
872 temp = readb(i2c_imx->base + IMX_I2C_I2CR); in i2c_imx_read()
874 writeb(temp, i2c_imx->base + IMX_I2C_I2CR); in i2c_imx_read()
877 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_read()
879 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_read()
881 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_read()
886 msgs->buf[i] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
887 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_read()
900 struct imx_i2c_struct *i2c_imx = i2c_get_adapdata(adapter); in i2c_imx_xfer() local
902 dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); in i2c_imx_xfer()
905 result = i2c_imx_start(i2c_imx); in i2c_imx_xfer()
907 if (i2c_imx->adapter.bus_recovery_info) { in i2c_imx_xfer()
908 i2c_recover_bus(&i2c_imx->adapter); in i2c_imx_xfer()
909 result = i2c_imx_start(i2c_imx); in i2c_imx_xfer()
922 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_xfer()
924 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_xfer()
926 imx_i2c_write_reg(temp, i2c_imx, IMX_I2C_I2CR); in i2c_imx_xfer()
927 result = i2c_imx_bus_busy(i2c_imx, 1); in i2c_imx_xfer()
931 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_xfer()
935 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2CR); in i2c_imx_xfer()
936 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_xfer()
942 temp = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2SR); in i2c_imx_xfer()
943 dev_dbg(&i2c_imx->adapter.dev, in i2c_imx_xfer()
952 result = i2c_imx_read(i2c_imx, &msgs[i], is_lastmsg); in i2c_imx_xfer()
954 if (i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD) in i2c_imx_xfer()
955 result = i2c_imx_dma_write(i2c_imx, &msgs[i]); in i2c_imx_xfer()
957 result = i2c_imx_write(i2c_imx, &msgs[i]); in i2c_imx_xfer()
965 i2c_imx_stop(i2c_imx); in i2c_imx_xfer()
967 dev_dbg(&i2c_imx->adapter.dev, "<%s> exit with: %s: %d\n", __func__, in i2c_imx_xfer()
975 struct imx_i2c_struct *i2c_imx; in i2c_imx_prepare_recovery() local
977 i2c_imx = container_of(adap, struct imx_i2c_struct, adapter); in i2c_imx_prepare_recovery()
979 pinctrl_select_state(i2c_imx->pinctrl, i2c_imx->pinctrl_pins_gpio); in i2c_imx_prepare_recovery()
984 struct imx_i2c_struct *i2c_imx; in i2c_imx_unprepare_recovery() local
986 i2c_imx = container_of(adap, struct imx_i2c_struct, adapter); in i2c_imx_unprepare_recovery()
988 pinctrl_select_state(i2c_imx->pinctrl, i2c_imx->pinctrl_pins_default); in i2c_imx_unprepare_recovery()
991 static void i2c_imx_init_recovery_info(struct imx_i2c_struct *i2c_imx, in i2c_imx_init_recovery_info() argument
994 struct i2c_bus_recovery_info *rinfo = &i2c_imx->rinfo; in i2c_imx_init_recovery_info()
996 i2c_imx->pinctrl_pins_default = pinctrl_lookup_state(i2c_imx->pinctrl, in i2c_imx_init_recovery_info()
998 i2c_imx->pinctrl_pins_gpio = pinctrl_lookup_state(i2c_imx->pinctrl, in i2c_imx_init_recovery_info()
1007 IS_ERR(i2c_imx->pinctrl_pins_default) || in i2c_imx_init_recovery_info()
1008 IS_ERR(i2c_imx->pinctrl_pins_gpio)) { in i2c_imx_init_recovery_info()
1019 i2c_imx->adapter.bus_recovery_info = rinfo; in i2c_imx_init_recovery_info()
1037 struct imx_i2c_struct *i2c_imx; in i2c_imx_probe() local
1058 i2c_imx = devm_kzalloc(&pdev->dev, sizeof(*i2c_imx), GFP_KERNEL); in i2c_imx_probe()
1059 if (!i2c_imx) in i2c_imx_probe()
1063 i2c_imx->hwdata = of_id->data; in i2c_imx_probe()
1065 i2c_imx->hwdata = (struct imx_i2c_hwdata *) in i2c_imx_probe()
1069 strlcpy(i2c_imx->adapter.name, pdev->name, sizeof(i2c_imx->adapter.name)); in i2c_imx_probe()
1070 i2c_imx->adapter.owner = THIS_MODULE; in i2c_imx_probe()
1071 i2c_imx->adapter.algo = &i2c_imx_algo; in i2c_imx_probe()
1072 i2c_imx->adapter.dev.parent = &pdev->dev; in i2c_imx_probe()
1073 i2c_imx->adapter.nr = pdev->id; in i2c_imx_probe()
1074 i2c_imx->adapter.dev.of_node = pdev->dev.of_node; in i2c_imx_probe()
1075 i2c_imx->base = base; in i2c_imx_probe()
1078 i2c_imx->clk = devm_clk_get(&pdev->dev, NULL); in i2c_imx_probe()
1079 if (IS_ERR(i2c_imx->clk)) { in i2c_imx_probe()
1081 return PTR_ERR(i2c_imx->clk); in i2c_imx_probe()
1084 ret = clk_prepare_enable(i2c_imx->clk); in i2c_imx_probe()
1090 i2c_imx->pinctrl = devm_pinctrl_get(&pdev->dev); in i2c_imx_probe()
1091 if (IS_ERR(i2c_imx->pinctrl)) { in i2c_imx_probe()
1092 ret = PTR_ERR(i2c_imx->pinctrl); in i2c_imx_probe()
1098 pdev->name, i2c_imx); in i2c_imx_probe()
1105 init_waitqueue_head(&i2c_imx->queue); in i2c_imx_probe()
1108 i2c_set_adapdata(&i2c_imx->adapter, i2c_imx); in i2c_imx_probe()
1111 i2c_imx->bitrate = IMX_I2C_BIT_RATE; in i2c_imx_probe()
1113 "clock-frequency", &i2c_imx->bitrate); in i2c_imx_probe()
1115 i2c_imx->bitrate = pdata->bitrate; in i2c_imx_probe()
1118 imx_i2c_write_reg(i2c_imx->hwdata->i2cr_ien_opcode ^ I2CR_IEN, in i2c_imx_probe()
1119 i2c_imx, IMX_I2C_I2CR); in i2c_imx_probe()
1120 imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR); in i2c_imx_probe()
1122 i2c_imx_init_recovery_info(i2c_imx, pdev); in i2c_imx_probe()
1125 ret = i2c_add_numbered_adapter(&i2c_imx->adapter); in i2c_imx_probe()
1132 platform_set_drvdata(pdev, i2c_imx); in i2c_imx_probe()
1133 clk_disable_unprepare(i2c_imx->clk); in i2c_imx_probe()
1135 dev_dbg(&i2c_imx->adapter.dev, "claimed irq %d\n", irq); in i2c_imx_probe()
1136 dev_dbg(&i2c_imx->adapter.dev, "device resources: %pR\n", res); in i2c_imx_probe()
1137 dev_dbg(&i2c_imx->adapter.dev, "adapter name: \"%s\"\n", in i2c_imx_probe()
1138 i2c_imx->adapter.name); in i2c_imx_probe()
1139 dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n"); in i2c_imx_probe()
1142 i2c_imx_dma_request(i2c_imx, phy_addr); in i2c_imx_probe()
1147 clk_disable_unprepare(i2c_imx->clk); in i2c_imx_probe()
1153 struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev); in i2c_imx_remove() local
1156 dev_dbg(&i2c_imx->adapter.dev, "adapter removed\n"); in i2c_imx_remove()
1157 i2c_del_adapter(&i2c_imx->adapter); in i2c_imx_remove()
1159 if (i2c_imx->dma) in i2c_imx_remove()
1160 i2c_imx_dma_free(i2c_imx); in i2c_imx_remove()
1163 imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IADR); in i2c_imx_remove()
1164 imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IFDR); in i2c_imx_remove()
1165 imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2CR); in i2c_imx_remove()
1166 imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR); in i2c_imx_remove()