lt3651_charger
lt3651_charger = devm_kzalloc(&pdev->dev, sizeof(*lt3651_charger),
if (!lt3651_charger)
lt3651_charger->acpr_gpio = devm_gpiod_get(&pdev->dev,
if (IS_ERR(lt3651_charger->acpr_gpio)) {
ret = PTR_ERR(lt3651_charger->acpr_gpio);
lt3651_charger->fault_gpio = devm_gpiod_get_optional(&pdev->dev,
if (IS_ERR(lt3651_charger->fault_gpio)) {
ret = PTR_ERR(lt3651_charger->fault_gpio);
lt3651_charger->chrg_gpio = devm_gpiod_get_optional(&pdev->dev,
if (IS_ERR(lt3651_charger->chrg_gpio)) {
ret = PTR_ERR(lt3651_charger->chrg_gpio);
charger_desc = <3651_charger->charger_desc;
psy_cfg.drv_data = lt3651_charger;
lt3651_charger->charger = devm_power_supply_register(&pdev->dev,
if (IS_ERR(lt3651_charger->charger)) {
ret = PTR_ERR(lt3651_charger->charger);
if (lt3651_charger->acpr_gpio) {
ret = gpiod_to_irq(lt3651_charger->acpr_gpio);
dev_name(&pdev->dev), lt3651_charger->charger);
if (lt3651_charger->fault_gpio) {
ret = gpiod_to_irq(lt3651_charger->fault_gpio);
dev_name(&pdev->dev), lt3651_charger->charger);
if (lt3651_charger->chrg_gpio) {
ret = gpiod_to_irq(lt3651_charger->chrg_gpio);
dev_name(&pdev->dev), lt3651_charger->charger);
platform_set_drvdata(pdev, lt3651_charger);
static inline struct lt3651_charger *psy_to_lt3651_charger(
struct lt3651_charger *lt3651_charger = psy_to_lt3651_charger(psy);
if (!lt3651_charger->chrg_gpio) {
if (gpiod_get_value(lt3651_charger->chrg_gpio))
val->intval = gpiod_get_value(lt3651_charger->acpr_gpio);
if (!lt3651_charger->fault_gpio) {
if (!gpiod_get_value(lt3651_charger->fault_gpio)) {
if (!lt3651_charger->chrg_gpio) {
val->intval = gpiod_get_value(lt3651_charger->chrg_gpio) ?
struct lt3651_charger *lt3651_charger;