Lines Matching refs:sec_pmic

108 static void sec_pmic_dump_rev(struct sec_pmic_dev *sec_pmic)  in sec_pmic_dump_rev()  argument
113 switch (sec_pmic->device_type) { in sec_pmic_dump_rev()
122 if (!regmap_read(sec_pmic->regmap_pmic, S2MPS11_REG_ID, &val)) in sec_pmic_dump_rev()
123 dev_dbg(sec_pmic->dev, "Revision: 0x%x\n", val); in sec_pmic_dump_rev()
126 static void sec_pmic_configure(struct sec_pmic_dev *sec_pmic) in sec_pmic_configure() argument
130 if (sec_pmic->device_type != S2MPS13X) in sec_pmic_configure()
133 if (sec_pmic->pdata->disable_wrstbi) { in sec_pmic_configure()
139 err = regmap_update_bits(sec_pmic->regmap_pmic, in sec_pmic_configure()
143 dev_warn(sec_pmic->dev, in sec_pmic_configure()
180 struct sec_pmic_dev *sec_pmic; in sec_pmic_probe() local
183 sec_pmic = devm_kzalloc(dev, sizeof(*sec_pmic), GFP_KERNEL); in sec_pmic_probe()
184 if (!sec_pmic) in sec_pmic_probe()
187 dev_set_drvdata(dev, sec_pmic); in sec_pmic_probe()
188 sec_pmic->dev = dev; in sec_pmic_probe()
189 sec_pmic->device_type = device_type; in sec_pmic_probe()
190 sec_pmic->i2c = client; in sec_pmic_probe()
191 sec_pmic->irq = irq; in sec_pmic_probe()
192 sec_pmic->regmap_pmic = regmap; in sec_pmic_probe()
194 pdata = sec_pmic_parse_dt_pdata(sec_pmic->dev); in sec_pmic_probe()
200 sec_pmic->pdata = pdata; in sec_pmic_probe()
202 irq_data = sec_irq_init(sec_pmic); in sec_pmic_probe()
206 pm_runtime_set_active(sec_pmic->dev); in sec_pmic_probe()
208 switch (sec_pmic->device_type) { in sec_pmic_probe()
254 return dev_err_probe(sec_pmic->dev, -EINVAL, in sec_pmic_probe()
256 sec_pmic->device_type); in sec_pmic_probe()
258 ret = devm_mfd_add_devices(sec_pmic->dev, -1, sec_devs, num_sec_devs, in sec_pmic_probe()
263 sec_pmic_configure(sec_pmic); in sec_pmic_probe()
264 sec_pmic_dump_rev(sec_pmic); in sec_pmic_probe()
272 struct sec_pmic_dev *sec_pmic = dev_get_drvdata(dev); in sec_pmic_shutdown() local
275 if (!sec_pmic->pdata->manual_poweroff) in sec_pmic_shutdown()
278 switch (sec_pmic->device_type) { in sec_pmic_shutdown()
288 dev_warn(sec_pmic->dev, in sec_pmic_shutdown()
290 sec_pmic->device_type); in sec_pmic_shutdown()
294 regmap_update_bits(sec_pmic->regmap_pmic, reg, mask, 0); in sec_pmic_shutdown()
300 struct sec_pmic_dev *sec_pmic = dev_get_drvdata(dev); in sec_pmic_suspend() local
303 enable_irq_wake(sec_pmic->irq); in sec_pmic_suspend()
313 disable_irq(sec_pmic->irq); in sec_pmic_suspend()
320 struct sec_pmic_dev *sec_pmic = dev_get_drvdata(dev); in sec_pmic_resume() local
323 disable_irq_wake(sec_pmic->irq); in sec_pmic_resume()
324 enable_irq(sec_pmic->irq); in sec_pmic_resume()