• Home
  • Raw
  • Download

Lines Matching +full:sc2731 +full:- +full:adc

55 		.name = "sc27xx-wdt",
56 .of_compatible = "sprd,sc27xx-wdt",
58 .name = "sc27xx-rtc",
59 .of_compatible = "sprd,sc27xx-rtc",
61 .name = "sc27xx-charger",
62 .of_compatible = "sprd,sc27xx-charger",
64 .name = "sc27xx-chg-timer",
65 .of_compatible = "sprd,sc27xx-chg-timer",
67 .name = "sc27xx-fast-chg",
68 .of_compatible = "sprd,sc27xx-fast-chg",
70 .name = "sc27xx-chg-wdt",
71 .of_compatible = "sprd,sc27xx-chg-wdt",
73 .name = "sc27xx-typec",
74 .of_compatible = "sprd,sc27xx-typec",
76 .name = "sc27xx-flash",
77 .of_compatible = "sprd,sc27xx-flash",
79 .name = "sc27xx-eic",
80 .of_compatible = "sprd,sc27xx-eic",
82 .name = "sc27xx-efuse",
83 .of_compatible = "sprd,sc27xx-efuse",
85 .name = "sc27xx-thermal",
86 .of_compatible = "sprd,sc27xx-thermal",
88 .name = "sc27xx-adc",
89 .of_compatible = "sprd,sc27xx-adc",
91 .name = "sc27xx-audio-codec",
92 .of_compatible = "sprd,sc27xx-audio-codec",
94 .name = "sc27xx-regulator",
95 .of_compatible = "sprd,sc27xx-regulator",
97 .name = "sc27xx-vibrator",
98 .of_compatible = "sprd,sc27xx-vibrator",
100 .name = "sc27xx-keypad-led",
101 .of_compatible = "sprd,sc27xx-keypad-led",
103 .name = "sc27xx-bltc",
104 .of_compatible = "sprd,sc27xx-bltc",
106 .name = "sc27xx-fgu",
107 .of_compatible = "sprd,sc27xx-fgu",
109 .name = "sc27xx-7sreset",
110 .of_compatible = "sprd,sc27xx-7sreset",
112 .name = "sc27xx-poweroff",
113 .of_compatible = "sprd,sc27xx-poweroff",
115 .name = "sc27xx-syscon",
116 .of_compatible = "sprd,sc27xx-syscon",
139 return -EINVAL; in sprd_pmic_spi_read()
171 pdata = of_device_get_match_data(&spi->dev); in sprd_pmic_probe()
173 dev_err(&spi->dev, "No matching driver data found\n"); in sprd_pmic_probe()
174 return -EINVAL; in sprd_pmic_probe()
177 ddata = devm_kzalloc(&spi->dev, sizeof(*ddata), GFP_KERNEL); in sprd_pmic_probe()
179 return -ENOMEM; in sprd_pmic_probe()
181 ddata->regmap = devm_regmap_init(&spi->dev, &sprd_pmic_regmap, in sprd_pmic_probe()
182 &spi->dev, &sprd_pmic_config); in sprd_pmic_probe()
183 if (IS_ERR(ddata->regmap)) { in sprd_pmic_probe()
184 ret = PTR_ERR(ddata->regmap); in sprd_pmic_probe()
185 dev_err(&spi->dev, "Failed to allocate register map %d\n", ret); in sprd_pmic_probe()
190 ddata->dev = &spi->dev; in sprd_pmic_probe()
191 ddata->irq = spi->irq; in sprd_pmic_probe()
193 ddata->irq_chip.name = dev_name(&spi->dev); in sprd_pmic_probe()
194 ddata->irq_chip.status_base = in sprd_pmic_probe()
195 pdata->irq_base + SPRD_PMIC_INT_MASK_STATUS; in sprd_pmic_probe()
196 ddata->irq_chip.mask_base = pdata->irq_base + SPRD_PMIC_INT_EN; in sprd_pmic_probe()
197 ddata->irq_chip.ack_base = 0; in sprd_pmic_probe()
198 ddata->irq_chip.num_regs = 1; in sprd_pmic_probe()
199 ddata->irq_chip.num_irqs = pdata->num_irqs; in sprd_pmic_probe()
200 ddata->irq_chip.mask_invert = true; in sprd_pmic_probe()
202 ddata->irqs = devm_kcalloc(&spi->dev, in sprd_pmic_probe()
203 pdata->num_irqs, sizeof(struct regmap_irq), in sprd_pmic_probe()
205 if (!ddata->irqs) in sprd_pmic_probe()
206 return -ENOMEM; in sprd_pmic_probe()
208 ddata->irq_chip.irqs = ddata->irqs; in sprd_pmic_probe()
209 for (i = 0; i < pdata->num_irqs; i++) { in sprd_pmic_probe()
210 ddata->irqs[i].reg_offset = i / pdata->num_irqs; in sprd_pmic_probe()
211 ddata->irqs[i].mask = BIT(i % pdata->num_irqs); in sprd_pmic_probe()
214 ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq, in sprd_pmic_probe()
216 &ddata->irq_chip, &ddata->irq_data); in sprd_pmic_probe()
218 dev_err(&spi->dev, "Failed to add PMIC irq chip %d\n", ret); in sprd_pmic_probe()
222 ret = devm_mfd_add_devices(&spi->dev, PLATFORM_DEVID_AUTO, in sprd_pmic_probe()
225 regmap_irq_get_domain(ddata->irq_data)); in sprd_pmic_probe()
227 dev_err(&spi->dev, "Failed to register device %d\n", ret); in sprd_pmic_probe()
235 { .compatible = "sprd,sc2731", .data = &sc2731_data },
242 .name = "sc27xx-pmic",