Lines Matching defs:li2c

16 static void __lsdc_gpio_i2c_set(struct lsdc_i2c * const li2c, int mask, int state)
18 struct lsdc_device *ldev = to_lsdc(li2c->ddev);
29 val = readb(li2c->dir_reg);
31 writeb(val, li2c->dir_reg);
34 val = readb(li2c->dir_reg);
36 writeb(val, li2c->dir_reg);
39 val = readb(li2c->dat_reg);
41 writeb(val, li2c->dat_reg);
52 static int __lsdc_gpio_i2c_get(struct lsdc_i2c * const li2c, int mask)
54 struct lsdc_device *ldev = to_lsdc(li2c->ddev);
61 val = readb(li2c->dir_reg);
63 writeb(val, li2c->dir_reg);
66 val = readb(li2c->dat_reg);
75 struct lsdc_i2c * const li2c = (struct lsdc_i2c *)i2c;
76 /* set state on the li2c->sda pin */
77 return __lsdc_gpio_i2c_set(li2c, li2c->sda, state);
82 struct lsdc_i2c * const li2c = (struct lsdc_i2c *)i2c;
83 /* set state on the li2c->scl pin */
84 return __lsdc_gpio_i2c_set(li2c, li2c->scl, state);
89 struct lsdc_i2c * const li2c = (struct lsdc_i2c *)i2c;
90 /* read value from the li2c->sda pin */
91 return __lsdc_gpio_i2c_get(li2c, li2c->sda);
96 struct lsdc_i2c * const li2c = (struct lsdc_i2c *)i2c;
97 /* read the value from the li2c->scl pin */
98 return __lsdc_gpio_i2c_get(li2c, li2c->scl);
103 struct lsdc_i2c *li2c = (struct lsdc_i2c *)data;
105 if (li2c) {
106 i2c_del_adapter(&li2c->adapter);
107 kfree(li2c);
123 struct lsdc_i2c *li2c;
126 li2c = kzalloc(sizeof(*li2c), GFP_KERNEL);
127 if (!li2c)
130 dispipe->li2c = li2c;
133 li2c->sda = 0x01; /* pin 0 */
134 li2c->scl = 0x02; /* pin 1 */
136 li2c->sda = 0x04; /* pin 2 */
137 li2c->scl = 0x08; /* pin 3 */
142 li2c->ddev = ddev;
143 li2c->dir_reg = ldev->reg_base + LS7A_DC_GPIO_DIR_REG;
144 li2c->dat_reg = ldev->reg_base + LS7A_DC_GPIO_DAT_REG;
146 li2c->bit.setsda = lsdc_gpio_i2c_set_sda;
147 li2c->bit.setscl = lsdc_gpio_i2c_set_scl;
148 li2c->bit.getsda = lsdc_gpio_i2c_get_sda;
149 li2c->bit.getscl = lsdc_gpio_i2c_get_scl;
150 li2c->bit.udelay = 5;
151 li2c->bit.timeout = usecs_to_jiffies(2200);
152 li2c->bit.data = li2c;
154 adapter = &li2c->adapter;
155 adapter->algo_data = &li2c->bit;
163 i2c_set_adapdata(adapter, li2c);
167 kfree(li2c);
171 ret = drmm_add_action_or_reset(ddev, lsdc_destroy_i2c, li2c);
176 adapter->name, li2c->sda, li2c->scl);