Lines Matching refs:pca9450
19 #include <linux/regulator/pca9450.h>
33 struct pca9450 {
660 struct pca9450 *pca9450 = data;
661 struct regmap *regmap = pca9450->regmap;
667 dev_err(pca9450->dev,
673 dev_warn(pca9450->dev, "PWRON interrupt.\n");
676 dev_warn(pca9450->dev, "WDOGB interrupt.\n");
679 dev_warn(pca9450->dev, "VRFLT1 interrupt.\n");
682 dev_warn(pca9450->dev, "VRFLT2 interrupt.\n");
685 dev_warn(pca9450->dev, "LOWVSYS interrupt.\n");
688 dev_warn(pca9450->dev, "IRQ_THERM_105 interrupt.\n");
691 dev_warn(pca9450->dev, "IRQ_THERM_125 interrupt.\n");
703 struct pca9450 *pca9450;
712 pca9450 = devm_kzalloc(&i2c->dev, sizeof(struct pca9450), GFP_KERNEL);
713 if (!pca9450)
719 pca9450->rcnt = ARRAY_SIZE(pca9450a_regulators);
723 pca9450->rcnt = ARRAY_SIZE(pca9450bc_regulators);
730 pca9450->irq = i2c->irq;
731 pca9450->type = type;
732 pca9450->dev = &i2c->dev;
734 dev_set_drvdata(&i2c->dev, pca9450);
736 pca9450->regmap = devm_regmap_init_i2c(i2c,
738 if (IS_ERR(pca9450->regmap)) {
740 return PTR_ERR(pca9450->regmap);
743 ret = regmap_read(pca9450->regmap, PCA9450_REG_DEV_ID, &device_id);
757 for (i = 0; i < pca9450->rcnt; i++) {
765 config.regmap = pca9450->regmap;
766 config.dev = pca9450->dev;
768 rdev = devm_regulator_register(pca9450->dev, desc, &config);
771 dev_err(pca9450->dev,
778 ret = devm_request_threaded_irq(pca9450->dev, pca9450->irq, NULL,
781 "pca9450-irq", pca9450);
783 dev_err(pca9450->dev, "Failed to request IRQ: %d\n",
784 pca9450->irq);
788 ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_INT1_MSK,
798 ret = regmap_clear_bits(pca9450->regmap, PCA9450_REG_BUCK123_DVS,
806 ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_RESET_CTRL,
818 pca9450->sd_vsel_gpio = gpiod_get_optional(pca9450->dev, "sd-vsel", GPIOD_OUT_HIGH);
820 if (IS_ERR(pca9450->sd_vsel_gpio)) {
850 .name = "nxp-pca9450",