Lines Matching +full:2013 +full:- +full:2023

1 // SPDX-License-Identifier: GPL-2.0
3 * Power-source driver for Bay Trail Crystal Cove PMIC
5 * Copyright (c) 2023 Hans de Goede <[email protected]>
8 * Copyright (C) 2013 Intel Corporation
86 struct crc_pwrsrc_data *data = seq->private; in pwrsrc_show()
90 ret = regmap_read(data->regmap, CRYSTALCOVE_SPWRSRC_REG, &reg_val); in pwrsrc_show()
100 struct crc_pwrsrc_data *data = seq->private; in resetsrc_show()
102 crc_pwrsrc_log(seq, "Last shutdown caused", pwrsrc_resetsrc0_info, data->resetsrc0); in resetsrc_show()
103 crc_pwrsrc_log(seq, "Last shutdown caused", pwrsrc_resetsrc1_info, data->resetsrc1); in resetsrc_show()
109 struct crc_pwrsrc_data *data = seq->private; in wakesrc_show()
111 crc_pwrsrc_log(seq, "Last wake caused", pwrsrc_wakesrc_info, data->wakesrc); in wakesrc_show()
124 ret = regmap_read(data->regmap, reg, val); in crc_pwrsrc_read_and_clear()
128 return regmap_write(data->regmap, reg, *val); in crc_pwrsrc_read_and_clear()
136 if (regmap_read(data->regmap, CRYSTALCOVE_PWRSRC_IRQ, &irq_mask)) in crc_pwrsrc_irq_handler()
139 regmap_write(data->regmap, CRYSTALCOVE_PWRSRC_IRQ, irq_mask); in crc_pwrsrc_irq_handler()
141 power_supply_changed(data->psy); in crc_pwrsrc_irq_handler()
154 return -EINVAL; in crc_pwrsrc_psy_get_property()
156 ret = regmap_read(data->regmap, CRYSTALCOVE_SPWRSRC_REG, &pwrsrc); in crc_pwrsrc_psy_get_property()
160 val->intval = !!(pwrsrc & (CRYSTALCOVE_SPWRSRC_USB | in crc_pwrsrc_psy_get_property()
179 struct intel_soc_pmic *pmic = dev_get_drvdata(pdev->dev.parent); in crc_pwrsrc_probe()
180 struct device *dev = &pdev->dev; in crc_pwrsrc_probe()
186 return -ENOMEM; in crc_pwrsrc_probe()
188 data->regmap = pmic->regmap; in crc_pwrsrc_probe()
197 ret = crc_pwrsrc_read_and_clear(data, CRYSTALCOVE_RESETSRC0_REG, &data->resetsrc0); in crc_pwrsrc_probe()
201 ret = crc_pwrsrc_read_and_clear(data, CRYSTALCOVE_RESETSRC1_REG, &data->resetsrc1); in crc_pwrsrc_probe()
205 ret = crc_pwrsrc_read_and_clear(data, CRYSTALCOVE_WAKESRC_REG, &data->wakesrc); in crc_pwrsrc_probe()
209 if (device_property_read_bool(dev->parent, "linux,register-pwrsrc-power_supply")) { in crc_pwrsrc_probe()
216 data->psy = devm_power_supply_register(dev, &crc_pwrsrc_psy_desc, &psy_cfg); in crc_pwrsrc_probe()
217 if (IS_ERR(data->psy)) in crc_pwrsrc_probe()
218 return dev_err_probe(dev, PTR_ERR(data->psy), "registering power-supply\n"); in crc_pwrsrc_probe()
227 data->debug_dentry = debugfs_create_dir(KBUILD_MODNAME, NULL); in crc_pwrsrc_probe()
228 debugfs_create_file("pwrsrc", 0444, data->debug_dentry, data, &pwrsrc_fops); in crc_pwrsrc_probe()
229 debugfs_create_file("resetsrc", 0444, data->debug_dentry, data, &resetsrc_fops); in crc_pwrsrc_probe()
230 debugfs_create_file("wakesrc", 0444, data->debug_dentry, data, &wakesrc_fops); in crc_pwrsrc_probe()
240 debugfs_remove_recursive(data->debug_dentry); in crc_pwrsrc_remove()
254 MODULE_DESCRIPTION("Power-source driver for Bay Trail Crystal Cove PMIC");