Lines Matching refs:arizona

3  * arizona.c - Wolfson Arizona class device shared support
19 #include <linux/mfd/arizona/core.h>
20 #include <linux/mfd/arizona/registers.h>
22 #include "arizona.h"
67 dev_err(_fll->arizona->dev, "FLL%d: " fmt, _fll->id, ##__VA_ARGS__)
69 dev_warn(_fll->arizona->dev, "FLL%d: " fmt, _fll->id, ##__VA_ARGS__)
71 dev_dbg(_fll->arizona->dev, "FLL%d: " fmt, _fll->id, ##__VA_ARGS__)
85 struct arizona *arizona = dev_get_drvdata(component->dev->parent);
93 dev_crit(arizona->dev,
98 regmap_update_bits_async(arizona->regmap,
103 regmap_update_bits_async(arizona->regmap,
116 struct arizona *arizona = data;
120 ret = regmap_read(arizona->regmap, ARIZONA_INTERRUPT_RAW_STATUS_3,
123 dev_err(arizona->dev, "Failed to read thermal status: %d\n",
126 dev_crit(arizona->dev, "Thermal warning\n");
134 struct arizona *arizona = data;
138 ret = regmap_read(arizona->regmap, ARIZONA_INTERRUPT_RAW_STATUS_3,
141 dev_err(arizona->dev, "Failed to read thermal status: %d\n",
144 dev_crit(arizona->dev, "Thermal shutdown\n");
145 ret = regmap_update_bits(arizona->regmap,
150 dev_crit(arizona->dev,
174 struct arizona *arizona = priv->arizona;
181 switch (arizona->type) {
197 int arizona_init_spk_irqs(struct arizona *arizona)
201 ret = arizona_request_irq(arizona, ARIZONA_IRQ_SPK_OVERHEAT_WARN,
203 arizona);
205 dev_err(arizona->dev,
209 ret = arizona_request_irq(arizona, ARIZONA_IRQ_SPK_OVERHEAT,
211 arizona);
213 dev_err(arizona->dev,
221 int arizona_free_spk_irqs(struct arizona *arizona)
223 arizona_free_irq(arizona, ARIZONA_IRQ_SPK_OVERHEAT_WARN, arizona);
224 arizona_free_irq(arizona, ARIZONA_IRQ_SPK_OVERHEAT, arizona);
243 struct arizona *arizona = priv->arizona;
247 if (arizona->pdata.out_mono[i])
259 struct arizona *arizona = priv->arizona;
262 switch (arizona->type) {
274 for (i = 0; i < ARRAY_SIZE(arizona->pdata.gpio_defaults); i++) {
275 switch (arizona->pdata.gpio_defaults[i] & ARIZONA_GPN_FN_MASK) {
293 int arizona_init_common(struct arizona *arizona)
295 struct arizona_pdata *pdata = &arizona->pdata;
299 BLOCKING_INIT_NOTIFIER_HEAD(&arizona->notifier);
308 regmap_update_bits(arizona->regmap,
315 regmap_update_bits(arizona->regmap,
322 regmap_update_bits(arizona->regmap,
334 switch (arizona->type) {
337 regmap_update_bits(arizona->regmap,
343 regmap_update_bits(arizona->regmap,
362 regmap_update_bits(arizona->regmap,
371 int arizona_init_vol_limit(struct arizona *arizona)
375 for (i = 0; i < ARRAY_SIZE(arizona->pdata.out_vol_limit); ++i) {
376 if (arizona->pdata.out_vol_limit[i])
377 regmap_update_bits(arizona->regmap,
380 arizona->pdata.out_vol_limit[i]);
958 struct arizona *arizona = priv->arizona;
975 switch (arizona->type) {
1025 switch (arizona->type) {
1077 struct arizona *arizona = priv->arizona;
1096 priv->arizona->hp_ena &= ~mask;
1097 priv->arizona->hp_ena |= val;
1100 if (priv->arizona->hpdet_clamp)
1103 regmap_update_bits_async(arizona->regmap, ARIZONA_OUTPUT_ENABLES_1,
1113 struct arizona *arizona = priv->arizona;
1116 ret = regulator_set_voltage(arizona->dcvdd, 1800000, 1800000);
1122 ret = regmap_update_bits(arizona->regmap,
1128 regulator_set_voltage(arizona->dcvdd, 1200000, 1800000);
1138 struct arizona *arizona = priv->arizona;
1141 ret = regmap_update_bits(arizona->regmap,
1149 ret = regulator_set_voltage(arizona->dcvdd, 1200000, 1800000);
1329 struct arizona *arizona = dev_get_drvdata(component->dev->parent);
1334 ret = regmap_read(arizona->regmap, w->reg, &val);
1355 return clk_prepare_enable(arizona->mclk[clk_idx]);
1357 clk_disable_unprepare(arizona->mclk[clk_idx]);
1369 struct arizona *arizona = priv->arizona;
1424 dev_dbg(arizona->dev, "%s cleared\n", name);
1436 dev_dbg(arizona->dev, "%s set to %uHz", name, freq);
1438 return regmap_update_bits(arizona->regmap, reg, mask, val);
1446 struct arizona *arizona = priv->arizona;
1519 regmap_update_bits_async(arizona->regmap, base + ARIZONA_AIF_BCLK_CTRL,
1523 regmap_update_bits_async(arizona->regmap, base + ARIZONA_AIF_TX_PIN_CTRL,
1526 regmap_update_bits_async(arizona->regmap,
1530 regmap_update_bits(arizona->regmap, base + ARIZONA_AIF_FORMAT,
1654 struct arizona *arizona = priv->arizona;
1662 mutex_lock(&arizona->dac_comp_lock);
1664 dac_comp[1].def = arizona->dac_comp_coeff;
1666 dac_comp[2].def = arizona->dac_comp_enabled;
1668 mutex_unlock(&arizona->dac_comp_lock);
1670 regmap_multi_reg_write(arizona->regmap,
1699 switch (priv->arizona->type) {
1718 switch (priv->arizona->type) {
1781 struct arizona *arizona = priv->arizona;
1786 int chan_limit = arizona->pdata.max_channels_clocked[dai->id - 1];
1787 int tdm_width = arizona->tdm_width[dai->id - 1];
1788 int tdm_slots = arizona->tdm_slots[dai->id - 1];
1854 regmap_update_bits_async(arizona->regmap,
1857 regmap_update_bits(arizona->regmap,
1866 regmap_update_bits_async(arizona->regmap,
1869 regmap_update_bits_async(arizona->regmap,
1872 regmap_update_bits_async(arizona->regmap,
1875 regmap_update_bits_async(arizona->regmap,
1879 regmap_update_bits(arizona->regmap,
1888 regmap_update_bits_async(arizona->regmap,
1891 regmap_update_bits(arizona->regmap,
1978 struct arizona *arizona = priv->arizona;
1986 regmap_write(arizona->regmap, base + i, slot);
2000 struct arizona *arizona = priv->arizona;
2019 arizona->tdm_width[dai->id - 1] = slot_width;
2020 arizona->tdm_slots[dai->id - 1] = slots;
2178 switch (fll->arizona->type) {
2184 if (fll->arizona->rev < 3 || sync)
2329 static void arizona_apply_fll(struct arizona *arizona, unsigned int base,
2333 regmap_update_bits_async(arizona->regmap, base + 3,
2335 regmap_update_bits_async(arizona->regmap, base + 4,
2337 regmap_update_bits_async(arizona->regmap, base + 5,
2340 regmap_update_bits_async(arizona->regmap, base + 6,
2347 regmap_update_bits(arizona->regmap, base + 0x7,
2351 regmap_update_bits(arizona->regmap, base + 0x5,
2354 regmap_update_bits(arizona->regmap, base + 0x9,
2359 regmap_update_bits_async(arizona->regmap, base + 2,
2366 struct arizona *arizona = fll->arizona;
2370 ret = regmap_read(arizona->regmap, base + 1, &reg);
2382 struct arizona *arizona = fll->arizona;
2387 ret = regmap_read(arizona->regmap, base + 6, &val);
2399 clk = arizona->mclk[ARIZONA_MCLK1];
2402 clk = arizona->mclk[ARIZONA_MCLK2];
2418 struct arizona *arizona = fll->arizona;
2433 regmap_update_bits(fll->arizona->regmap, fll->base + 1,
2436 regmap_update_bits_async(fll->arizona->regmap, fll->base + 0x9,
2456 arizona_apply_fll(arizona, fll->base, &cfg, fll->ref_src,
2461 arizona_apply_fll(arizona, fll->base + 0x10, &cfg,
2468 arizona_apply_fll(arizona, fll->base, &cfg,
2471 regmap_update_bits_async(arizona->regmap, fll->base + 0x11,
2486 regmap_update_bits_async(arizona->regmap, fll->base + 0x17,
2489 regmap_update_bits_async(arizona->regmap, fll->base + 0x17,
2494 pm_runtime_get_sync(arizona->dev);
2498 regmap_update_bits_async(arizona->regmap, fll->base + 0x11,
2503 regmap_update_bits_async(arizona->regmap, fll->base + 1,
2507 regmap_update_bits_async(arizona->regmap, fll->base + 1,
2518 regmap_read(arizona->regmap,
2534 struct arizona *arizona = fll->arizona;
2537 regmap_update_bits_async(arizona->regmap, fll->base + 1,
2539 regmap_update_bits_check(arizona->regmap, fll->base + 1,
2541 regmap_update_bits_check(arizona->regmap, fll->base + 0x11,
2543 regmap_update_bits_async(arizona->regmap, fll->base + 1,
2551 pm_runtime_put_autosuspend(arizona->dev);
2613 int arizona_init_fll(struct arizona *arizona, int id, int base, int lock_irq,
2620 fll->arizona = arizona;
2624 regmap_read(arizona->regmap, ARIZONA_CLOCK_32K_1, &val);
2639 regmap_update_bits(arizona->regmap, fll->base + 1,
2728 struct arizona *arizona = dev_get_drvdata(component->dev->parent);
2735 len = params->num_regs * regmap_get_val_bytes(arizona->regmap);
2748 dev_err(arizona->dev, "Rejecting unstable EQ coefficients\n");
2753 ret = regmap_read(arizona->regmap, params->base, &val);
2760 ret = regmap_raw_write(arizona->regmap, params->base, data, len);
2772 struct arizona *arizona = dev_get_drvdata(component->dev->parent);
2777 dev_err(arizona->dev, "Rejecting unstable LHPF coefficients\n");
2785 int arizona_of_get_audio_pdata(struct arizona *arizona)
2787 struct arizona_pdata *pdata = &arizona->pdata;
2788 struct device_node *np = arizona->dev->of_node;