Lines Matching refs:bri
201 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_generic_bus_free() local
204 if (bri->get_bus_free) in i2c_generic_bus_free()
205 ret = bri->get_bus_free(adap); in i2c_generic_bus_free()
206 else if (bri->get_sda) in i2c_generic_bus_free()
207 ret = bri->get_sda(adap); in i2c_generic_bus_free()
225 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_generic_scl_recovery() local
228 if (bri->prepare_recovery) in i2c_generic_scl_recovery()
229 bri->prepare_recovery(adap); in i2c_generic_scl_recovery()
230 if (bri->pinctrl) in i2c_generic_scl_recovery()
231 pinctrl_select_state(bri->pinctrl, bri->pins_gpio); in i2c_generic_scl_recovery()
240 bri->set_scl(adap, scl); in i2c_generic_scl_recovery()
242 if (bri->set_sda) in i2c_generic_scl_recovery()
243 bri->set_sda(adap, scl); in i2c_generic_scl_recovery()
252 if (!bri->get_scl(adap)) { in i2c_generic_scl_recovery()
261 bri->set_scl(adap, scl); in i2c_generic_scl_recovery()
270 if (bri->set_sda) in i2c_generic_scl_recovery()
271 bri->set_sda(adap, scl); in i2c_generic_scl_recovery()
285 if (bri->unprepare_recovery) in i2c_generic_scl_recovery()
286 bri->unprepare_recovery(adap); in i2c_generic_scl_recovery()
287 if (bri->pinctrl) in i2c_generic_scl_recovery()
288 pinctrl_select_state(bri->pinctrl, bri->pins_default); in i2c_generic_scl_recovery()
306 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_gpio_init_pinctrl_recovery() local
308 struct pinctrl *p = bri->pinctrl ?: dev_pinctrl(dev->parent); in i2c_gpio_init_pinctrl_recovery()
310 bri->pinctrl = p; in i2c_gpio_init_pinctrl_recovery()
317 bri->pins_default = NULL; in i2c_gpio_init_pinctrl_recovery()
318 bri->pins_gpio = NULL; in i2c_gpio_init_pinctrl_recovery()
322 if (!bri->pins_default) { in i2c_gpio_init_pinctrl_recovery()
323 bri->pins_default = pinctrl_lookup_state(p, in i2c_gpio_init_pinctrl_recovery()
325 if (IS_ERR(bri->pins_default)) { in i2c_gpio_init_pinctrl_recovery()
327 bri->pins_default = NULL; in i2c_gpio_init_pinctrl_recovery()
330 if (!bri->pins_gpio) { in i2c_gpio_init_pinctrl_recovery()
331 bri->pins_gpio = pinctrl_lookup_state(p, "gpio"); in i2c_gpio_init_pinctrl_recovery()
332 if (IS_ERR(bri->pins_gpio)) in i2c_gpio_init_pinctrl_recovery()
333 bri->pins_gpio = pinctrl_lookup_state(p, "recovery"); in i2c_gpio_init_pinctrl_recovery()
335 if (IS_ERR(bri->pins_gpio)) { in i2c_gpio_init_pinctrl_recovery()
337 bri->pins_gpio = NULL; in i2c_gpio_init_pinctrl_recovery()
342 if (bri->pins_default && bri->pins_gpio) { in i2c_gpio_init_pinctrl_recovery()
345 bri->pinctrl = NULL; in i2c_gpio_init_pinctrl_recovery()
346 bri->pins_default = NULL; in i2c_gpio_init_pinctrl_recovery()
347 bri->pins_gpio = NULL; in i2c_gpio_init_pinctrl_recovery()
353 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_gpio_init_generic_recovery() local
362 if (bri->recover_bus && bri->recover_bus != i2c_generic_scl_recovery) in i2c_gpio_init_generic_recovery()
369 if (bri->pinctrl) in i2c_gpio_init_generic_recovery()
370 pinctrl_select_state(bri->pinctrl, bri->pins_gpio); in i2c_gpio_init_generic_recovery()
376 if (!bri->scl_gpiod) { in i2c_gpio_init_generic_recovery()
383 bri->scl_gpiod = gpiod; in i2c_gpio_init_generic_recovery()
384 bri->recover_bus = i2c_generic_scl_recovery; in i2c_gpio_init_generic_recovery()
390 if (!bri->sda_gpiod) { in i2c_gpio_init_generic_recovery()
395 gpiod_direction_output(bri->scl_gpiod, 0); in i2c_gpio_init_generic_recovery()
401 gpiod_direction_output(bri->scl_gpiod, 1); in i2c_gpio_init_generic_recovery()
408 bri->sda_gpiod = gpiod; in i2c_gpio_init_generic_recovery()
413 if (bri->pinctrl) in i2c_gpio_init_generic_recovery()
414 pinctrl_select_state(bri->pinctrl, bri->pins_default); in i2c_gpio_init_generic_recovery()
427 struct i2c_bus_recovery_info *bri = adap->bus_recovery_info; in i2c_init_recovery() local
431 if (!bri) in i2c_init_recovery()
437 if (!bri->recover_bus) { in i2c_init_recovery()
443 if (bri->scl_gpiod && bri->recover_bus == i2c_generic_scl_recovery) { in i2c_init_recovery()
444 bri->get_scl = get_scl_gpio_value; in i2c_init_recovery()
445 bri->set_scl = set_scl_gpio_value; in i2c_init_recovery()
446 if (bri->sda_gpiod) { in i2c_init_recovery()
447 bri->get_sda = get_sda_gpio_value; in i2c_init_recovery()
449 if (gpiod_get_direction(bri->sda_gpiod) == 0) in i2c_init_recovery()
450 bri->set_sda = set_sda_gpio_value; in i2c_init_recovery()
452 } else if (bri->recover_bus == i2c_generic_scl_recovery) { in i2c_init_recovery()
454 if (!bri->set_scl || !bri->get_scl) { in i2c_init_recovery()
458 if (!bri->set_sda && !bri->get_sda) { in i2c_init_recovery()