Lines Matching refs:pmic
17 #include <linux/mfd/hi655x-pmic.h>
36 .name = "hi655x-pmic",
95 struct hi655x_pmic *pmic;
100 pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL);
101 if (!pmic)
103 pmic->dev = dev;
105 pmic->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
106 base = devm_ioremap_resource(dev, pmic->res);
110 pmic->regmap = devm_regmap_init_mmio_clk(dev, NULL, base,
112 if (IS_ERR(pmic->regmap))
113 return PTR_ERR(pmic->regmap);
115 regmap_read(pmic->regmap, HI655X_BUS_ADDR(HI655X_VER_REG), &pmic->ver);
116 if ((pmic->ver < PMU_VER_START) || (pmic->ver > PMU_VER_END)) {
117 dev_warn(dev, "PMU version %d unsupported\n", pmic->ver);
121 hi655x_local_irq_clear(pmic->regmap);
123 pmic->gpio = of_get_named_gpio(np, "pmic-gpios", 0);
124 if (!gpio_is_valid(pmic->gpio)) {
125 dev_err(dev, "Failed to get the pmic-gpios\n");
129 ret = devm_gpio_request_one(dev, pmic->gpio, GPIOF_IN,
133 pmic->gpio, ret);
137 ret = regmap_add_irq_chip(pmic->regmap, gpio_to_irq(pmic->gpio),
139 &hi655x_irq_chip, &pmic->irq_data);
145 platform_set_drvdata(pdev, pmic);
149 regmap_irq_get_domain(pmic->irq_data));
152 regmap_del_irq_chip(gpio_to_irq(pmic->gpio), pmic->irq_data);
161 struct hi655x_pmic *pmic = platform_get_drvdata(pdev);
163 regmap_del_irq_chip(gpio_to_irq(pmic->gpio), pmic->irq_data);
169 { .compatible = "hisilicon,hi655x-pmic", },
176 .name = "hi655x-pmic",