Lines Matching refs:sec_pmic
82 static void sec_pmic_dump_rev(struct sec_pmic_dev *sec_pmic) in sec_pmic_dump_rev() argument
87 if (sec_pmic->device_type == S2MPG10) in sec_pmic_dump_rev()
91 if (!regmap_read(sec_pmic->regmap_pmic, S2MPS11_REG_ID, &val)) in sec_pmic_dump_rev()
92 dev_dbg(sec_pmic->dev, "Revision: 0x%x\n", val); in sec_pmic_dump_rev()
95 static void sec_pmic_configure(struct sec_pmic_dev *sec_pmic) in sec_pmic_configure() argument
99 if (sec_pmic->device_type != S2MPS13X) in sec_pmic_configure()
102 if (sec_pmic->pdata->disable_wrstbi) { in sec_pmic_configure()
108 err = regmap_update_bits(sec_pmic->regmap_pmic, in sec_pmic_configure()
112 dev_warn(sec_pmic->dev, in sec_pmic_configure()
148 struct sec_pmic_dev *sec_pmic; in sec_pmic_probe() local
151 sec_pmic = devm_kzalloc(dev, sizeof(*sec_pmic), GFP_KERNEL); in sec_pmic_probe()
152 if (!sec_pmic) in sec_pmic_probe()
155 dev_set_drvdata(dev, sec_pmic); in sec_pmic_probe()
156 sec_pmic->dev = dev; in sec_pmic_probe()
157 sec_pmic->device_type = device_type; in sec_pmic_probe()
158 sec_pmic->i2c = client; in sec_pmic_probe()
159 sec_pmic->irq = irq; in sec_pmic_probe()
160 sec_pmic->regmap_pmic = regmap; in sec_pmic_probe()
162 pdata = sec_pmic_parse_dt_pdata(sec_pmic->dev); in sec_pmic_probe()
168 sec_pmic->pdata = pdata; in sec_pmic_probe()
170 ret = sec_irq_init(sec_pmic); in sec_pmic_probe()
174 pm_runtime_set_active(sec_pmic->dev); in sec_pmic_probe()
176 switch (sec_pmic->device_type) { in sec_pmic_probe()
218 return dev_err_probe(sec_pmic->dev, -EINVAL, in sec_pmic_probe()
220 sec_pmic->device_type); in sec_pmic_probe()
222 ret = devm_mfd_add_devices(sec_pmic->dev, -1, sec_devs, num_sec_devs, in sec_pmic_probe()
227 sec_pmic_configure(sec_pmic); in sec_pmic_probe()
228 sec_pmic_dump_rev(sec_pmic); in sec_pmic_probe()
236 struct sec_pmic_dev *sec_pmic = dev_get_drvdata(dev); in sec_pmic_shutdown() local
239 if (!sec_pmic->pdata->manual_poweroff) in sec_pmic_shutdown()
242 switch (sec_pmic->device_type) { in sec_pmic_shutdown()
252 dev_warn(sec_pmic->dev, in sec_pmic_shutdown()
254 sec_pmic->device_type); in sec_pmic_shutdown()
258 regmap_update_bits(sec_pmic->regmap_pmic, reg, mask, 0); in sec_pmic_shutdown()
264 struct sec_pmic_dev *sec_pmic = dev_get_drvdata(dev); in sec_pmic_suspend() local
267 enable_irq_wake(sec_pmic->irq); in sec_pmic_suspend()
277 disable_irq(sec_pmic->irq); in sec_pmic_suspend()
284 struct sec_pmic_dev *sec_pmic = dev_get_drvdata(dev); in sec_pmic_resume() local
287 disable_irq_wake(sec_pmic->irq); in sec_pmic_resume()
288 enable_irq(sec_pmic->irq); in sec_pmic_resume()