Lines Matching refs:arizona
38 int arizona_clk32k_enable(struct arizona *arizona) in arizona_clk32k_enable() argument
42 mutex_lock(&arizona->clk_lock); in arizona_clk32k_enable()
44 arizona->clk32k_ref++; in arizona_clk32k_enable()
46 if (arizona->clk32k_ref == 1) { in arizona_clk32k_enable()
47 switch (arizona->pdata.clk32k_src) { in arizona_clk32k_enable()
49 ret = pm_runtime_get_sync(arizona->dev); in arizona_clk32k_enable()
55 ret = regmap_update_bits(arizona->regmap, ARIZONA_CLOCK_32K_1, in arizona_clk32k_enable()
62 arizona->clk32k_ref--; in arizona_clk32k_enable()
64 mutex_unlock(&arizona->clk_lock); in arizona_clk32k_enable()
70 int arizona_clk32k_disable(struct arizona *arizona) in arizona_clk32k_disable() argument
74 mutex_lock(&arizona->clk_lock); in arizona_clk32k_disable()
76 BUG_ON(arizona->clk32k_ref <= 0); in arizona_clk32k_disable()
78 arizona->clk32k_ref--; in arizona_clk32k_disable()
80 if (arizona->clk32k_ref == 0) { in arizona_clk32k_disable()
81 regmap_update_bits(arizona->regmap, ARIZONA_CLOCK_32K_1, in arizona_clk32k_disable()
84 switch (arizona->pdata.clk32k_src) { in arizona_clk32k_disable()
86 pm_runtime_put_sync(arizona->dev); in arizona_clk32k_disable()
91 mutex_unlock(&arizona->clk_lock); in arizona_clk32k_disable()
99 struct arizona *arizona = data; in arizona_clkgen_err() local
101 dev_err(arizona->dev, "CLKGEN error\n"); in arizona_clkgen_err()
108 struct arizona *arizona = data; in arizona_underclocked() local
112 ret = regmap_read(arizona->regmap, ARIZONA_INTERRUPT_RAW_STATUS_8, in arizona_underclocked()
115 dev_err(arizona->dev, "Failed to read underclock status: %d\n", in arizona_underclocked()
121 dev_err(arizona->dev, "AIF3 underclocked\n"); in arizona_underclocked()
123 dev_err(arizona->dev, "AIF2 underclocked\n"); in arizona_underclocked()
125 dev_err(arizona->dev, "AIF1 underclocked\n"); in arizona_underclocked()
127 dev_err(arizona->dev, "ISRC3 underclocked\n"); in arizona_underclocked()
129 dev_err(arizona->dev, "ISRC2 underclocked\n"); in arizona_underclocked()
131 dev_err(arizona->dev, "ISRC1 underclocked\n"); in arizona_underclocked()
133 dev_err(arizona->dev, "FX underclocked\n"); in arizona_underclocked()
135 dev_err(arizona->dev, "ASRC underclocked\n"); in arizona_underclocked()
137 dev_err(arizona->dev, "DAC underclocked\n"); in arizona_underclocked()
139 dev_err(arizona->dev, "ADC underclocked\n"); in arizona_underclocked()
141 dev_err(arizona->dev, "Mixer dropped sample\n"); in arizona_underclocked()
148 struct arizona *arizona = data; in arizona_overclocked() local
152 ret = regmap_bulk_read(arizona->regmap, ARIZONA_INTERRUPT_RAW_STATUS_6, in arizona_overclocked()
155 dev_err(arizona->dev, "Failed to read overclock status: %d\n", in arizona_overclocked()
161 dev_err(arizona->dev, "PWM overclocked\n"); in arizona_overclocked()
163 dev_err(arizona->dev, "FX core overclocked\n"); in arizona_overclocked()
165 dev_err(arizona->dev, "DAC SYS overclocked\n"); in arizona_overclocked()
167 dev_err(arizona->dev, "DAC WARP overclocked\n"); in arizona_overclocked()
169 dev_err(arizona->dev, "ADC overclocked\n"); in arizona_overclocked()
171 dev_err(arizona->dev, "Mixer overclocked\n"); in arizona_overclocked()
173 dev_err(arizona->dev, "AIF3 overclocked\n"); in arizona_overclocked()
175 dev_err(arizona->dev, "AIF2 overclocked\n"); in arizona_overclocked()
177 dev_err(arizona->dev, "AIF1 overclocked\n"); in arizona_overclocked()
179 dev_err(arizona->dev, "Pad control overclocked\n"); in arizona_overclocked()
182 dev_err(arizona->dev, "Slimbus subsystem overclocked\n"); in arizona_overclocked()
184 dev_err(arizona->dev, "Slimbus async overclocked\n"); in arizona_overclocked()
186 dev_err(arizona->dev, "Slimbus sync overclocked\n"); in arizona_overclocked()
188 dev_err(arizona->dev, "ASRC async system overclocked\n"); in arizona_overclocked()
190 dev_err(arizona->dev, "ASRC async WARP overclocked\n"); in arizona_overclocked()
192 dev_err(arizona->dev, "ASRC sync system overclocked\n"); in arizona_overclocked()
194 dev_err(arizona->dev, "ASRC sync WARP overclocked\n"); in arizona_overclocked()
196 dev_err(arizona->dev, "DSP1 overclocked\n"); in arizona_overclocked()
198 dev_err(arizona->dev, "ISRC3 overclocked\n"); in arizona_overclocked()
200 dev_err(arizona->dev, "ISRC2 overclocked\n"); in arizona_overclocked()
202 dev_err(arizona->dev, "ISRC1 overclocked\n"); in arizona_overclocked()
207 static int arizona_poll_reg(struct arizona *arizona, in arizona_poll_reg() argument
215 ret = regmap_read(arizona->regmap, reg, &val); in arizona_poll_reg()
217 dev_err(arizona->dev, "Failed to read reg %u: %d\n", in arizona_poll_reg()
228 dev_err(arizona->dev, "Polling reg %u timed out: %x\n", reg, val); in arizona_poll_reg()
232 static int arizona_wait_for_boot(struct arizona *arizona) in arizona_wait_for_boot() argument
241 ret = arizona_poll_reg(arizona, 5, ARIZONA_INTERRUPT_RAW_STATUS_5, in arizona_wait_for_boot()
245 regmap_write(arizona->regmap, ARIZONA_INTERRUPT_STATUS_5, in arizona_wait_for_boot()
248 pm_runtime_mark_last_busy(arizona->dev); in arizona_wait_for_boot()
253 static int arizona_apply_hardware_patch(struct arizona* arizona) in arizona_apply_hardware_patch() argument
259 ret = regmap_read(arizona->regmap, ARIZONA_FLL1_CONTROL_1, &fll); in arizona_apply_hardware_patch()
261 dev_err(arizona->dev, "Failed to cache FLL settings: %d\n", in arizona_apply_hardware_patch()
265 ret = regmap_read(arizona->regmap, ARIZONA_SYSTEM_CLOCK_1, &sysclk); in arizona_apply_hardware_patch()
267 dev_err(arizona->dev, "Failed to cache SYSCLK settings: %d\n", in arizona_apply_hardware_patch()
273 ret = regmap_write(arizona->regmap, ARIZONA_FLL1_CONTROL_1, in arizona_apply_hardware_patch()
276 dev_err(arizona->dev, in arizona_apply_hardware_patch()
281 ret = arizona_poll_reg(arizona, 25, ARIZONA_INTERRUPT_RAW_STATUS_5, in arizona_apply_hardware_patch()
289 ret = regmap_write(arizona->regmap, ARIZONA_SYSTEM_CLOCK_1, 0x0144); in arizona_apply_hardware_patch()
291 dev_err(arizona->dev, "Failed to start SYSCLK: %d\n", ret); in arizona_apply_hardware_patch()
296 ret = regmap_write(arizona->regmap, ARIZONA_WRITE_SEQUENCER_CTRL_0, in arizona_apply_hardware_patch()
299 dev_err(arizona->dev, "Failed to start write sequencer: %d\n", in arizona_apply_hardware_patch()
303 ret = arizona_poll_reg(arizona, 5, ARIZONA_WRITE_SEQUENCER_CTRL_1, in arizona_apply_hardware_patch()
306 regmap_write(arizona->regmap, ARIZONA_WRITE_SEQUENCER_CTRL_0, in arizona_apply_hardware_patch()
312 err = regmap_write(arizona->regmap, ARIZONA_SYSTEM_CLOCK_1, sysclk); in arizona_apply_hardware_patch()
314 dev_err(arizona->dev, in arizona_apply_hardware_patch()
320 err = regmap_write(arizona->regmap, ARIZONA_FLL1_CONTROL_1, fll); in arizona_apply_hardware_patch()
322 dev_err(arizona->dev, in arizona_apply_hardware_patch()
336 struct arizona *arizona = dev_get_drvdata(dev); in arizona_runtime_resume() local
339 dev_dbg(arizona->dev, "Leaving AoD mode\n"); in arizona_runtime_resume()
341 ret = regulator_enable(arizona->dcvdd); in arizona_runtime_resume()
343 dev_err(arizona->dev, "Failed to enable DCVDD: %d\n", ret); in arizona_runtime_resume()
347 regcache_cache_only(arizona->regmap, false); in arizona_runtime_resume()
349 switch (arizona->type) { in arizona_runtime_resume()
351 if (arizona->external_dcvdd) { in arizona_runtime_resume()
352 ret = regmap_update_bits(arizona->regmap, in arizona_runtime_resume()
356 dev_err(arizona->dev, in arizona_runtime_resume()
362 ret = wm5102_patch(arizona); in arizona_runtime_resume()
364 dev_err(arizona->dev, "Failed to apply patch: %d\n", in arizona_runtime_resume()
369 ret = arizona_apply_hardware_patch(arizona); in arizona_runtime_resume()
371 dev_err(arizona->dev, in arizona_runtime_resume()
378 ret = arizona_wait_for_boot(arizona); in arizona_runtime_resume()
383 if (arizona->external_dcvdd) { in arizona_runtime_resume()
384 ret = regmap_update_bits(arizona->regmap, in arizona_runtime_resume()
388 dev_err(arizona->dev, in arizona_runtime_resume()
396 ret = regcache_sync(arizona->regmap); in arizona_runtime_resume()
398 dev_err(arizona->dev, "Failed to restore register cache\n"); in arizona_runtime_resume()
405 regcache_cache_only(arizona->regmap, true); in arizona_runtime_resume()
406 regulator_disable(arizona->dcvdd); in arizona_runtime_resume()
412 struct arizona *arizona = dev_get_drvdata(dev); in arizona_runtime_suspend() local
415 dev_dbg(arizona->dev, "Entering AoD mode\n"); in arizona_runtime_suspend()
417 if (arizona->external_dcvdd) { in arizona_runtime_suspend()
418 ret = regmap_update_bits(arizona->regmap, in arizona_runtime_suspend()
423 dev_err(arizona->dev, "Failed to isolate DCVDD: %d\n", in arizona_runtime_suspend()
429 regcache_cache_only(arizona->regmap, true); in arizona_runtime_suspend()
430 regcache_mark_dirty(arizona->regmap); in arizona_runtime_suspend()
431 regulator_disable(arizona->dcvdd); in arizona_runtime_suspend()
440 struct arizona *arizona = dev_get_drvdata(dev); in arizona_suspend() local
442 dev_dbg(arizona->dev, "Suspend, disabling IRQ\n"); in arizona_suspend()
443 disable_irq(arizona->irq); in arizona_suspend()
450 struct arizona *arizona = dev_get_drvdata(dev); in arizona_suspend_late() local
452 dev_dbg(arizona->dev, "Late suspend, reenabling IRQ\n"); in arizona_suspend_late()
453 enable_irq(arizona->irq); in arizona_suspend_late()
460 struct arizona *arizona = dev_get_drvdata(dev); in arizona_resume_noirq() local
462 dev_dbg(arizona->dev, "Early resume, disabling IRQ\n"); in arizona_resume_noirq()
463 disable_irq(arizona->irq); in arizona_resume_noirq()
470 struct arizona *arizona = dev_get_drvdata(dev); in arizona_resume() local
472 dev_dbg(arizona->dev, "Late resume, reenabling IRQ\n"); in arizona_resume()
473 enable_irq(arizona->irq); in arizona_resume()
503 int arizona_of_get_named_gpio(struct arizona *arizona, const char *prop, in arizona_of_get_named_gpio() argument
508 gpio = of_get_named_gpio(arizona->dev->of_node, prop, 0); in arizona_of_get_named_gpio()
511 dev_err(arizona->dev, in arizona_of_get_named_gpio()
522 static int arizona_of_get_core_pdata(struct arizona *arizona) in arizona_of_get_core_pdata() argument
524 struct arizona_pdata *pdata = &arizona->pdata; in arizona_of_get_core_pdata()
531 pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true); in arizona_of_get_core_pdata()
533 ret = of_property_read_u32_array(arizona->dev->of_node, in arizona_of_get_core_pdata()
535 arizona->pdata.gpio_defaults, in arizona_of_get_core_pdata()
536 ARRAY_SIZE(arizona->pdata.gpio_defaults)); in arizona_of_get_core_pdata()
544 for (i = 0; i < ARRAY_SIZE(arizona->pdata.gpio_defaults); i++) { in arizona_of_get_core_pdata()
545 if (arizona->pdata.gpio_defaults[i] > 0xffff) in arizona_of_get_core_pdata()
546 arizona->pdata.gpio_defaults[i] = 0; in arizona_of_get_core_pdata()
547 else if (arizona->pdata.gpio_defaults[i] == 0) in arizona_of_get_core_pdata()
548 arizona->pdata.gpio_defaults[i] = 0x10000; in arizona_of_get_core_pdata()
551 dev_err(arizona->dev, "Failed to parse GPIO defaults: %d\n", in arizona_of_get_core_pdata()
555 of_property_for_each_u32(arizona->dev->of_node, "wlf,inmode", prop, in arizona_of_get_core_pdata()
557 if (count == ARRAY_SIZE(arizona->pdata.inmode)) in arizona_of_get_core_pdata()
560 arizona->pdata.inmode[count] = val; in arizona_of_get_core_pdata()
565 of_property_for_each_u32(arizona->dev->of_node, "wlf,dmic-ref", prop, in arizona_of_get_core_pdata()
567 if (count == ARRAY_SIZE(arizona->pdata.dmic_ref)) in arizona_of_get_core_pdata()
570 arizona->pdata.dmic_ref[count] = val; in arizona_of_get_core_pdata()
586 static inline int arizona_of_get_core_pdata(struct arizona *arizona) in arizona_of_get_core_pdata() argument
663 int arizona_dev_init(struct arizona *arizona) in arizona_dev_init() argument
665 struct device *dev = arizona->dev; in arizona_dev_init()
668 int (*apply_patch)(struct arizona *) = NULL; in arizona_dev_init()
671 dev_set_drvdata(arizona->dev, arizona); in arizona_dev_init()
672 mutex_init(&arizona->clk_lock); in arizona_dev_init()
674 if (dev_get_platdata(arizona->dev)) in arizona_dev_init()
675 memcpy(&arizona->pdata, dev_get_platdata(arizona->dev), in arizona_dev_init()
676 sizeof(arizona->pdata)); in arizona_dev_init()
678 arizona_of_get_core_pdata(arizona); in arizona_dev_init()
680 regcache_cache_only(arizona->regmap, true); in arizona_dev_init()
682 switch (arizona->type) { in arizona_dev_init()
688 arizona->core_supplies[i].supply in arizona_dev_init()
690 arizona->num_core_supplies = ARRAY_SIZE(wm5102_core_supplies); in arizona_dev_init()
693 dev_err(arizona->dev, "Unknown device type %d\n", in arizona_dev_init()
694 arizona->type); in arizona_dev_init()
699 arizona->external_dcvdd = true; in arizona_dev_init()
701 ret = mfd_add_devices(arizona->dev, -1, early_devs, in arizona_dev_init()
708 ret = devm_regulator_bulk_get(dev, arizona->num_core_supplies, in arizona_dev_init()
709 arizona->core_supplies); in arizona_dev_init()
722 arizona->dcvdd = regulator_get(arizona->dev, "DCVDD"); in arizona_dev_init()
723 if (IS_ERR(arizona->dcvdd)) { in arizona_dev_init()
724 ret = PTR_ERR(arizona->dcvdd); in arizona_dev_init()
729 if (arizona->pdata.reset) { in arizona_dev_init()
731 ret = gpio_request_one(arizona->pdata.reset, in arizona_dev_init()
740 ret = regulator_bulk_enable(arizona->num_core_supplies, in arizona_dev_init()
741 arizona->core_supplies); in arizona_dev_init()
748 ret = regulator_enable(arizona->dcvdd); in arizona_dev_init()
754 if (arizona->pdata.reset) { in arizona_dev_init()
755 gpio_set_value_cansleep(arizona->pdata.reset, 1); in arizona_dev_init()
759 regcache_cache_only(arizona->regmap, false); in arizona_dev_init()
762 ret = regmap_read(arizona->regmap, ARIZONA_SOFTWARE_RESET, ®); in arizona_dev_init()
774 dev_err(arizona->dev, "Unknown device ID: %x\n", reg); in arizona_dev_init()
779 if (!arizona->pdata.reset) { in arizona_dev_init()
780 regcache_mark_dirty(arizona->regmap); in arizona_dev_init()
782 ret = regmap_write(arizona->regmap, ARIZONA_SOFTWARE_RESET, 0); in arizona_dev_init()
790 ret = regcache_sync(arizona->regmap); in arizona_dev_init()
798 switch (arizona->type) { in arizona_dev_init()
800 ret = regmap_read(arizona->regmap, in arizona_dev_init()
810 ret = arizona_wait_for_boot(arizona); in arizona_dev_init()
812 dev_err(arizona->dev, in arizona_dev_init()
820 ret = regmap_read(arizona->regmap, ARIZONA_SOFTWARE_RESET, ®); in arizona_dev_init()
826 ret = regmap_read(arizona->regmap, ARIZONA_DEVICE_REVISION, in arizona_dev_init()
827 &arizona->rev); in arizona_dev_init()
832 arizona->rev &= ARIZONA_DEVICE_REVISION_MASK; in arizona_dev_init()
838 if (arizona->type != WM5102) { in arizona_dev_init()
839 dev_err(arizona->dev, "WM5102 registered as %d\n", in arizona_dev_init()
840 arizona->type); in arizona_dev_init()
841 arizona->type = WM5102; in arizona_dev_init()
844 arizona->rev &= 0x7; in arizona_dev_init()
849 switch (arizona->type) { in arizona_dev_init()
858 dev_err(arizona->dev, "WM5110 registered as %d\n", in arizona_dev_init()
859 arizona->type); in arizona_dev_init()
860 arizona->type = WM5110; in arizona_dev_init()
869 if (arizona->type != WM8997) { in arizona_dev_init()
870 dev_err(arizona->dev, "WM8997 registered as %d\n", in arizona_dev_init()
871 arizona->type); in arizona_dev_init()
872 arizona->type = WM8997; in arizona_dev_init()
878 dev_err(arizona->dev, "Unknown device ID %x\n", reg); in arizona_dev_init()
882 dev_info(dev, "%s revision %c\n", type_name, arizona->rev + 'A'); in arizona_dev_init()
885 ret = apply_patch(arizona); in arizona_dev_init()
887 dev_err(arizona->dev, "Failed to apply patch: %d\n", in arizona_dev_init()
892 switch (arizona->type) { in arizona_dev_init()
894 ret = arizona_apply_hardware_patch(arizona); in arizona_dev_init()
896 dev_err(arizona->dev, in arizona_dev_init()
907 for (i = 0; i < ARRAY_SIZE(arizona->pdata.gpio_defaults); i++) { in arizona_dev_init()
908 if (!arizona->pdata.gpio_defaults[i]) in arizona_dev_init()
911 regmap_write(arizona->regmap, ARIZONA_GPIO1_CTRL + i, in arizona_dev_init()
912 arizona->pdata.gpio_defaults[i]); in arizona_dev_init()
916 if (!arizona->pdata.clk32k_src) in arizona_dev_init()
917 arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2; in arizona_dev_init()
919 switch (arizona->pdata.clk32k_src) { in arizona_dev_init()
922 regmap_update_bits(arizona->regmap, ARIZONA_CLOCK_32K_1, in arizona_dev_init()
924 arizona->pdata.clk32k_src - 1); in arizona_dev_init()
925 arizona_clk32k_enable(arizona); in arizona_dev_init()
928 regmap_update_bits(arizona->regmap, ARIZONA_CLOCK_32K_1, in arizona_dev_init()
932 dev_err(arizona->dev, "Invalid 32kHz clock source: %d\n", in arizona_dev_init()
933 arizona->pdata.clk32k_src); in arizona_dev_init()
939 if (!arizona->pdata.micbias[i].mV && in arizona_dev_init()
940 !arizona->pdata.micbias[i].bypass) in arizona_dev_init()
944 if (!arizona->pdata.micbias[i].mV) in arizona_dev_init()
945 arizona->pdata.micbias[i].mV = 2800; in arizona_dev_init()
947 val = (arizona->pdata.micbias[i].mV - 1500) / 100; in arizona_dev_init()
951 if (arizona->pdata.micbias[i].ext_cap) in arizona_dev_init()
954 if (arizona->pdata.micbias[i].discharge) in arizona_dev_init()
957 if (arizona->pdata.micbias[i].soft_start) in arizona_dev_init()
960 if (arizona->pdata.micbias[i].bypass) in arizona_dev_init()
963 regmap_update_bits(arizona->regmap, in arizona_dev_init()
974 val = arizona->pdata.dmic_ref[i] in arizona_dev_init()
976 val |= arizona->pdata.inmode[i] << ARIZONA_IN1_MODE_SHIFT; in arizona_dev_init()
978 regmap_update_bits(arizona->regmap, in arizona_dev_init()
986 if (arizona->pdata.out_mono[i]) in arizona_dev_init()
991 regmap_update_bits(arizona->regmap, in arizona_dev_init()
997 if (arizona->pdata.spk_mute[i]) in arizona_dev_init()
998 regmap_update_bits(arizona->regmap, in arizona_dev_init()
1002 arizona->pdata.spk_mute[i]); in arizona_dev_init()
1004 if (arizona->pdata.spk_fmt[i]) in arizona_dev_init()
1005 regmap_update_bits(arizona->regmap, in arizona_dev_init()
1008 arizona->pdata.spk_fmt[i]); in arizona_dev_init()
1011 pm_runtime_set_active(arizona->dev); in arizona_dev_init()
1012 pm_runtime_enable(arizona->dev); in arizona_dev_init()
1015 ret = arizona_irq_init(arizona); in arizona_dev_init()
1019 pm_runtime_set_autosuspend_delay(arizona->dev, 100); in arizona_dev_init()
1020 pm_runtime_use_autosuspend(arizona->dev); in arizona_dev_init()
1022 arizona_request_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, "CLKGEN error", in arizona_dev_init()
1023 arizona_clkgen_err, arizona); in arizona_dev_init()
1024 arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked", in arizona_dev_init()
1025 arizona_overclocked, arizona); in arizona_dev_init()
1026 arizona_request_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, "Underclocked", in arizona_dev_init()
1027 arizona_underclocked, arizona); in arizona_dev_init()
1029 switch (arizona->type) { in arizona_dev_init()
1031 ret = mfd_add_devices(arizona->dev, -1, wm5102_devs, in arizona_dev_init()
1036 ret = mfd_add_devices(arizona->dev, -1, wm5110_devs, in arizona_dev_init()
1040 ret = mfd_add_devices(arizona->dev, -1, wm8997_devs, in arizona_dev_init()
1046 dev_err(arizona->dev, "Failed to add subdevices: %d\n", ret); in arizona_dev_init()
1053 arizona_irq_exit(arizona); in arizona_dev_init()
1055 if (arizona->pdata.reset) { in arizona_dev_init()
1056 gpio_set_value_cansleep(arizona->pdata.reset, 0); in arizona_dev_init()
1057 gpio_free(arizona->pdata.reset); in arizona_dev_init()
1059 regulator_disable(arizona->dcvdd); in arizona_dev_init()
1061 regulator_bulk_disable(arizona->num_core_supplies, in arizona_dev_init()
1062 arizona->core_supplies); in arizona_dev_init()
1064 regulator_put(arizona->dcvdd); in arizona_dev_init()
1071 int arizona_dev_exit(struct arizona *arizona) in arizona_dev_exit() argument
1073 pm_runtime_disable(arizona->dev); in arizona_dev_exit()
1075 regulator_disable(arizona->dcvdd); in arizona_dev_exit()
1076 regulator_put(arizona->dcvdd); in arizona_dev_exit()
1078 mfd_remove_devices(arizona->dev); in arizona_dev_exit()
1079 arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona); in arizona_dev_exit()
1080 arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona); in arizona_dev_exit()
1081 arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona); in arizona_dev_exit()
1082 arizona_irq_exit(arizona); in arizona_dev_exit()
1083 if (arizona->pdata.reset) in arizona_dev_exit()
1084 gpio_set_value_cansleep(arizona->pdata.reset, 0); in arizona_dev_exit()
1086 regulator_bulk_disable(arizona->num_core_supplies, in arizona_dev_exit()
1087 arizona->core_supplies); in arizona_dev_exit()