/* Delay about 1ms after HW enable pin control */
usleep_range(1000, 1500);
/* LM3631 has additional power up sequence - enable LCD_EN bit. */ if (id == LM3631) { return regmap_update_bits(lmu->regmap, LM3631_REG_DEVCTRL,
LM3631_LCD_EN_MASK,
LM3631_LCD_EN_MASK);
}
/* * Get device specific data from of_match table. * This data is defined by using TI_LMU_DATA() macro.
*/
data = of_device_get_match_data(dev); if (!data) return -ENODEV;
lmu = devm_kzalloc(dev, sizeof(*lmu), GFP_KERNEL); if (!lmu) return -ENOMEM;
lmu->regmap = devm_regmap_init_i2c(cl, ®map_cfg); if (IS_ERR(lmu->regmap)) return PTR_ERR(lmu->regmap);
/* HW enable pin control and additional power up sequence if required */
lmu->en_gpio = devm_gpiod_get_optional(dev, "enable", GPIOD_OUT_HIGH); if (IS_ERR(lmu->en_gpio)) {
ret = PTR_ERR(lmu->en_gpio);
dev_err(dev, "Can not request enable GPIO: %d\n", ret); return ret;
}
ret = ti_lmu_enable_hw(lmu, id->driver_data); if (ret) return ret;
ret = devm_add_action_or_reset(dev, ti_lmu_disable_hw, lmu); if (ret) return ret;
/* * Fault circuit(open/short) can be detected by ti-lmu-fault-monitor. * After fault detection is done, some devices should re-initialize * configuration. The notifier enables such kind of handling.
*/
BLOCKING_INIT_NOTIFIER_HEAD(&lmu->notifier);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.