Lines Matching +full:- +full:p
4 * SPDX-License-Identifier: GPL-2.0+
9 #include <asm/arch/imx-regs.h>
12 #include <asm/mach-imx/mxc_i2c.h>
20 struct i2c_pads_info *p = (struct i2c_pads_info *)priv; in force_idle_bus() local
23 gpio_direction_input(p->sda.gp); in force_idle_bus()
24 gpio_direction_input(p->scl.gp); in force_idle_bus()
26 imx_iomux_v3_setup_pad(p->sda.gpio_mode); in force_idle_bus()
27 imx_iomux_v3_setup_pad(p->scl.gpio_mode); in force_idle_bus()
29 sda = gpio_get_value(p->sda.gp); in force_idle_bus()
30 scl = gpio_get_value(p->scl.gp); in force_idle_bus()
35 sda, scl, p->sda.gp, p->scl.gp); in force_idle_bus()
38 gpio_direction_output(p->scl.gp, 0); in force_idle_bus()
40 gpio_direction_input(p->scl.gp); in force_idle_bus()
45 sda = gpio_get_value(p->sda.gp); in force_idle_bus()
46 scl = gpio_get_value(p->scl.gp); in force_idle_bus()
52 ret = -EBUSY; in force_idle_bus()
59 imx_iomux_v3_setup_pad(p->sda.i2c_mode); in force_idle_bus()
60 imx_iomux_v3_setup_pad(p->scl.i2c_mode); in force_idle_bus()
75 /* i2c_index can be from 0 - 3 */
77 struct i2c_pads_info *p) in setup_i2c() argument
83 return -EINVAL; in setup_i2c()
86 ret = gpio_request(p->sda.gp, name); in setup_i2c()
91 ret = gpio_request(p->scl.gp, name); in setup_i2c()
101 ret = force_idle_bus(p); in setup_i2c()
106 bus_i2c_init(i2c_index, speed, slave_addr, force_idle_bus, p); in setup_i2c()
113 gpio_free(p->scl.gp); in setup_i2c()
115 gpio_free(p->sda.gp); in setup_i2c()