Lines Matching +full:qcom +full:- +full:pm8008

1 // SPDX-License-Identifier: GPL-2.0-only
18 #include <dt-bindings/mfd/qcom-pm8008.h>
55 #define PM8008_PERIPH_OFFSET(paddr) (paddr - PM8008_PERIPH_0_BASE)
121 return -EINVAL; in pm8008_set_type_virt()
158 * Set TEMP_ALARM peripheral's TYPE so that the regmap-irq framework in pm8008_init()
163 rc = regmap_write(chip->regmap, in pm8008_init()
170 rc = regmap_write(chip->regmap, in pm8008_init()
175 rc = regmap_write(chip->regmap, in pm8008_init()
190 dev_err(chip->dev, "Init failed: %d\n", rc); in pm8008_probe_irq_peripherals()
197 type->type_reg_offset = pm8008_irqs[i].reg_offset; in pm8008_probe_irq_peripherals()
198 type->type_rising_val = pm8008_irqs[i].mask; in pm8008_probe_irq_peripherals()
199 type->type_falling_val = pm8008_irqs[i].mask; in pm8008_probe_irq_peripherals()
200 type->type_level_high_val = 0; in pm8008_probe_irq_peripherals()
201 type->type_level_low_val = 0; in pm8008_probe_irq_peripherals()
203 if (type->type_reg_offset == PM8008_MISC) in pm8008_probe_irq_peripherals()
204 type->types_supported = IRQ_TYPE_EDGE_RISING; in pm8008_probe_irq_peripherals()
206 type->types_supported = (IRQ_TYPE_EDGE_BOTH | in pm8008_probe_irq_peripherals()
210 rc = devm_regmap_add_irq_chip(chip->dev, chip->regmap, client_irq, in pm8008_probe_irq_peripherals()
213 dev_err(chip->dev, "Failed to add IRQ chip: %d\n", rc); in pm8008_probe_irq_peripherals()
225 chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); in pm8008_probe()
227 return -ENOMEM; in pm8008_probe()
229 chip->dev = &client->dev; in pm8008_probe()
230 chip->regmap = devm_regmap_init_i2c(client, &qcom_mfd_regmap_cfg); in pm8008_probe()
231 if (!chip->regmap) in pm8008_probe()
232 return -ENODEV; in pm8008_probe()
236 if (of_property_read_bool(chip->dev->of_node, "interrupt-controller")) { in pm8008_probe()
237 rc = pm8008_probe_irq_peripherals(chip, client->irq); in pm8008_probe()
239 dev_err(chip->dev, "Failed to probe irq periphs: %d\n", rc); in pm8008_probe()
242 return devm_of_platform_populate(chip->dev); in pm8008_probe()
246 { .compatible = "qcom,pm8008", },
252 .name = "pm8008",
260 MODULE_ALIAS("i2c:qcom-pm8008");