Lines Matching refs:pfuze_chip

71 struct pfuze_chip {  struct
128 struct pfuze_chip *pfuze100 = rdev_get_drvdata(rdev); in pfuze100_set_ramp_delay()
518 static int pfuze_parse_regulators_dt(struct pfuze_chip *chip) in pfuze_parse_regulators_dt()
584 static int pfuze_parse_regulators_dt(struct pfuze_chip *chip) in pfuze_parse_regulators_dt()
600 static struct pfuze_chip *syspm_pfuze_chip;
640 static int pfuze_power_off_prepare_init(struct pfuze_chip *pfuze_chip) in pfuze_power_off_prepare_init() argument
642 if (pfuze_chip->chip_id != PFUZE100) { in pfuze_power_off_prepare_init()
643 dev_warn(pfuze_chip->dev, "Requested pm_power_off_prepare handler for not supported chip\n"); in pfuze_power_off_prepare_init()
648 dev_warn(pfuze_chip->dev, "pm_power_off_prepare is already registered.\n"); in pfuze_power_off_prepare_init()
653 dev_warn(pfuze_chip->dev, "syspm_pfuze_chip is already set.\n"); in pfuze_power_off_prepare_init()
657 syspm_pfuze_chip = pfuze_chip; in pfuze_power_off_prepare_init()
663 static int pfuze_identify(struct pfuze_chip *pfuze_chip) in pfuze_identify() argument
668 ret = regmap_read(pfuze_chip->regmap, PFUZE100_DEVICEID, &value); in pfuze_identify()
672 if (((value & 0x0f) == 0x8) && (pfuze_chip->chip_id == PFUZE100)) { in pfuze_identify()
677 dev_info(pfuze_chip->dev, "Assuming misprogrammed ID=0x8"); in pfuze_identify()
678 } else if ((value & 0x0f) != pfuze_chip->chip_id && in pfuze_identify()
679 (value & 0xf0) >> 4 != pfuze_chip->chip_id && in pfuze_identify()
680 (value != pfuze_chip->chip_id)) { in pfuze_identify()
682 dev_warn(pfuze_chip->dev, "Illegal ID: %x\n", value); in pfuze_identify()
686 ret = regmap_read(pfuze_chip->regmap, PFUZE100_REVID, &value); in pfuze_identify()
689 dev_info(pfuze_chip->dev, in pfuze_identify()
693 ret = regmap_read(pfuze_chip->regmap, PFUZE100_FABID, &value); in pfuze_identify()
696 dev_info(pfuze_chip->dev, "FAB: %x, FIN: %x\n", in pfuze_identify()
712 struct pfuze_chip *pfuze_chip; in pfuze100_regulator_probe() local
721 pfuze_chip = devm_kzalloc(&client->dev, sizeof(*pfuze_chip), in pfuze100_regulator_probe()
723 if (!pfuze_chip) in pfuze100_regulator_probe()
733 pfuze_chip->chip_id = (int)(long)match->data; in pfuze100_regulator_probe()
735 pfuze_chip->chip_id = id->driver_data; in pfuze100_regulator_probe()
741 i2c_set_clientdata(client, pfuze_chip); in pfuze100_regulator_probe()
742 pfuze_chip->dev = &client->dev; in pfuze100_regulator_probe()
744 pfuze_chip->regmap = devm_regmap_init_i2c(client, &pfuze_regmap_config); in pfuze100_regulator_probe()
745 if (IS_ERR(pfuze_chip->regmap)) { in pfuze100_regulator_probe()
746 ret = PTR_ERR(pfuze_chip->regmap); in pfuze100_regulator_probe()
752 ret = pfuze_identify(pfuze_chip); in pfuze100_regulator_probe()
759 switch (pfuze_chip->chip_id) { in pfuze100_regulator_probe()
761 pfuze_chip->pfuze_regulators = pfuze3001_regulators; in pfuze100_regulator_probe()
768 pfuze_chip->pfuze_regulators = pfuze3000_regulators; in pfuze100_regulator_probe()
775 pfuze_chip->pfuze_regulators = pfuze200_regulators; in pfuze100_regulator_probe()
782 pfuze_chip->pfuze_regulators = pfuze100_regulators; in pfuze100_regulator_probe()
789 (pfuze_chip->chip_id == PFUZE100) ? "100" : in pfuze100_regulator_probe()
790 (((pfuze_chip->chip_id == PFUZE200) ? "200" : in pfuze100_regulator_probe()
791 ((pfuze_chip->chip_id == PFUZE3000) ? "3000" : "3001")))); in pfuze100_regulator_probe()
793 memcpy(pfuze_chip->regulator_descs, pfuze_chip->pfuze_regulators, in pfuze100_regulator_probe()
796 ret = pfuze_parse_regulators_dt(pfuze_chip); in pfuze100_regulator_probe()
805 desc = &pfuze_chip->regulator_descs[i].desc; in pfuze100_regulator_probe()
814 ret = regmap_read(pfuze_chip->regmap, in pfuze100_regulator_probe()
822 if (pfuze_chip->chip_id == PFUZE3000 || in pfuze100_regulator_probe()
823 pfuze_chip->chip_id == PFUZE3001) { in pfuze100_regulator_probe()
840 if (pfuze_chip->flags & PFUZE_FLAG_DISABLE_SW) { in pfuze100_regulator_probe()
841 if (pfuze_chip->chip_id == PFUZE100 || in pfuze100_regulator_probe()
842 pfuze_chip->chip_id == PFUZE200) { in pfuze100_regulator_probe()
843 if (pfuze_chip->regulator_descs[i].sw_reg) { in pfuze100_regulator_probe()
854 config.driver_data = pfuze_chip; in pfuze100_regulator_probe()
857 pfuze_chip->regulators[i] = in pfuze100_regulator_probe()
859 if (IS_ERR(pfuze_chip->regulators[i])) { in pfuze100_regulator_probe()
861 pfuze_chip->pfuze_regulators[i].desc.name); in pfuze100_regulator_probe()
862 return PTR_ERR(pfuze_chip->regulators[i]); in pfuze100_regulator_probe()
868 return pfuze_power_off_prepare_init(pfuze_chip); in pfuze100_regulator_probe()