Lines Matching refs:bri
178 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_generic_bus_free() local
181 if (bri->get_bus_free) in i2c_generic_bus_free()
182 ret = bri->get_bus_free(adap); in i2c_generic_bus_free()
183 else if (bri->get_sda) in i2c_generic_bus_free()
184 ret = bri->get_sda(adap); in i2c_generic_bus_free()
202 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_generic_scl_recovery() local
205 if (bri->prepare_recovery) in i2c_generic_scl_recovery()
206 bri->prepare_recovery(adap); in i2c_generic_scl_recovery()
207 if (bri->pinctrl) in i2c_generic_scl_recovery()
208 pinctrl_select_state(bri->pinctrl, bri->pins_gpio); in i2c_generic_scl_recovery()
217 bri->set_scl(adap, scl); in i2c_generic_scl_recovery()
219 if (bri->set_sda) in i2c_generic_scl_recovery()
220 bri->set_sda(adap, scl); in i2c_generic_scl_recovery()
229 if (!bri->get_scl(adap)) { in i2c_generic_scl_recovery()
238 bri->set_scl(adap, scl); in i2c_generic_scl_recovery()
247 if (bri->set_sda) in i2c_generic_scl_recovery()
248 bri->set_sda(adap, scl); in i2c_generic_scl_recovery()
262 if (bri->unprepare_recovery) in i2c_generic_scl_recovery()
263 bri->unprepare_recovery(adap); in i2c_generic_scl_recovery()
264 if (bri->pinctrl) in i2c_generic_scl_recovery()
265 pinctrl_select_state(bri->pinctrl, bri->pins_default); in i2c_generic_scl_recovery()
283 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_gpio_init_pinctrl_recovery() local
285 struct pinctrl *p = bri->pinctrl; in i2c_gpio_init_pinctrl_recovery()
292 bri->pins_default = NULL; in i2c_gpio_init_pinctrl_recovery()
293 bri->pins_gpio = NULL; in i2c_gpio_init_pinctrl_recovery()
297 if (!bri->pins_default) { in i2c_gpio_init_pinctrl_recovery()
298 bri->pins_default = pinctrl_lookup_state(p, in i2c_gpio_init_pinctrl_recovery()
300 if (IS_ERR(bri->pins_default)) { in i2c_gpio_init_pinctrl_recovery()
302 bri->pins_default = NULL; in i2c_gpio_init_pinctrl_recovery()
305 if (!bri->pins_gpio) { in i2c_gpio_init_pinctrl_recovery()
306 bri->pins_gpio = pinctrl_lookup_state(p, "gpio"); in i2c_gpio_init_pinctrl_recovery()
307 if (IS_ERR(bri->pins_gpio)) in i2c_gpio_init_pinctrl_recovery()
308 bri->pins_gpio = pinctrl_lookup_state(p, "recovery"); in i2c_gpio_init_pinctrl_recovery()
310 if (IS_ERR(bri->pins_gpio)) { in i2c_gpio_init_pinctrl_recovery()
312 bri->pins_gpio = NULL; in i2c_gpio_init_pinctrl_recovery()
317 if (bri->pins_default && bri->pins_gpio) { in i2c_gpio_init_pinctrl_recovery()
320 bri->pinctrl = NULL; in i2c_gpio_init_pinctrl_recovery()
321 bri->pins_default = NULL; in i2c_gpio_init_pinctrl_recovery()
322 bri->pins_gpio = NULL; in i2c_gpio_init_pinctrl_recovery()
328 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_gpio_init_generic_recovery() local
337 if (bri->recover_bus && bri->recover_bus != i2c_generic_scl_recovery) in i2c_gpio_init_generic_recovery()
344 if (bri->pinctrl) in i2c_gpio_init_generic_recovery()
345 pinctrl_select_state(bri->pinctrl, bri->pins_gpio); in i2c_gpio_init_generic_recovery()
351 if (!bri->scl_gpiod) { in i2c_gpio_init_generic_recovery()
358 bri->scl_gpiod = gpiod; in i2c_gpio_init_generic_recovery()
359 bri->recover_bus = i2c_generic_scl_recovery; in i2c_gpio_init_generic_recovery()
365 if (!bri->sda_gpiod) { in i2c_gpio_init_generic_recovery()
370 gpiod_direction_output(bri->scl_gpiod, 0); in i2c_gpio_init_generic_recovery()
376 gpiod_direction_output(bri->scl_gpiod, 1); in i2c_gpio_init_generic_recovery()
383 bri->sda_gpiod = gpiod; in i2c_gpio_init_generic_recovery()
388 if (bri->pinctrl) in i2c_gpio_init_generic_recovery()
389 pinctrl_select_state(bri->pinctrl, bri->pins_default); in i2c_gpio_init_generic_recovery()
402 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_init_recovery() local
406 if (!bri) in i2c_init_recovery()
412 if (!bri->recover_bus) { in i2c_init_recovery()
418 if (bri->scl_gpiod && bri->recover_bus == i2c_generic_scl_recovery) { in i2c_init_recovery()
419 bri->get_scl = get_scl_gpio_value; in i2c_init_recovery()
420 bri->set_scl = set_scl_gpio_value; in i2c_init_recovery()
421 if (bri->sda_gpiod) { in i2c_init_recovery()
422 bri->get_sda = get_sda_gpio_value; in i2c_init_recovery()
424 if (gpiod_get_direction(bri->sda_gpiod) == 0) in i2c_init_recovery()
425 bri->set_sda = set_sda_gpio_value; in i2c_init_recovery()
427 } else if (bri->recover_bus == i2c_generic_scl_recovery) { in i2c_init_recovery()
429 if (!bri->set_scl || !bri->get_scl) { in i2c_init_recovery()
433 if (!bri->set_sda && !bri->get_sda) { in i2c_init_recovery()