Lines Matching +full:pga +full:- +full:gain
1 // SPDX-License-Identifier: GPL-2.0-only
17 #include <sound/tpa6130a2-plat.h>
45 ret = regulator_enable(data->supply); in tpa6130a2_power()
47 dev_err(data->dev, in tpa6130a2_power()
52 if (data->power_gpio >= 0) in tpa6130a2_power()
53 gpio_set_value(data->power_gpio, 1); in tpa6130a2_power()
56 regcache_cache_only(data->regmap, false); in tpa6130a2_power()
57 ret = regcache_sync(data->regmap); in tpa6130a2_power()
59 dev_err(data->dev, in tpa6130a2_power()
61 regcache_cache_only(data->regmap, true); in tpa6130a2_power()
62 if (data->power_gpio >= 0) in tpa6130a2_power()
63 gpio_set_value(data->power_gpio, 0); in tpa6130a2_power()
64 ret2 = regulator_disable(data->supply); in tpa6130a2_power()
66 dev_err(data->dev, in tpa6130a2_power()
75 regcache_mark_dirty(data->regmap); in tpa6130a2_power()
76 regcache_cache_only(data->regmap, true); in tpa6130a2_power()
79 if (data->power_gpio >= 0) in tpa6130a2_power()
80 gpio_set_value(data->power_gpio, 0); in tpa6130a2_power()
82 ret = regulator_disable(data->supply); in tpa6130a2_power()
84 dev_err(data->dev, in tpa6130a2_power()
96 struct snd_soc_component *c = snd_soc_dapm_to_component(w->dapm); in tpa6130a2_power_event()
109 * TPA6130 volume. From -59.5 to 4 dB with increasing step size when going
110 * down in gain.
113 0, 1, TLV_DB_SCALE_ITEM(-5950, 600, 0),
114 2, 3, TLV_DB_SCALE_ITEM(-5000, 250, 0),
115 4, 5, TLV_DB_SCALE_ITEM(-4550, 160, 0),
116 6, 7, TLV_DB_SCALE_ITEM(-4140, 190, 0),
117 8, 9, TLV_DB_SCALE_ITEM(-3650, 120, 0),
118 10, 11, TLV_DB_SCALE_ITEM(-3330, 160, 0),
119 12, 13, TLV_DB_SCALE_ITEM(-3040, 180, 0),
120 14, 20, TLV_DB_SCALE_ITEM(-2710, 110, 0),
121 21, 37, TLV_DB_SCALE_ITEM(-1960, 74, 0),
122 38, 63, TLV_DB_SCALE_ITEM(-720, 45, 0)
132 0, 8, TLV_DB_SCALE_ITEM(-5900, 400, 0),
133 9, 16, TLV_DB_SCALE_ITEM(-2500, 200, 0),
134 17, 31, TLV_DB_SCALE_ITEM(-1000, 100, 0)
147 if (data->id == TPA6140A2) in tpa6130a2_component_probe()
165 SND_SOC_DAPM_PGA("Left PGA", TPA6130A2_REG_CONTROL,
167 SND_SOC_DAPM_PGA("Right PGA", TPA6130A2_REG_CONTROL,
176 { "Left PGA", NULL, "LEFTIN" },
177 { "Right PGA", NULL, "RIGHTIN" },
179 { "Left Mute", NULL, "Left PGA" },
180 { "Right Mute", NULL, "Right PGA" },
185 { "Left PGA", NULL, "Power" },
186 { "Right PGA", NULL, "Power" },
223 struct tpa6130a2_platform_data *pdata = client->dev.platform_data; in tpa6130a2_probe()
224 struct device_node *np = client->dev.of_node; in tpa6130a2_probe()
230 dev = &client->dev; in tpa6130a2_probe()
232 data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); in tpa6130a2_probe()
234 return -ENOMEM; in tpa6130a2_probe()
236 data->dev = dev; in tpa6130a2_probe()
238 data->regmap = devm_regmap_init_i2c(client, &tpa6130a2_regmap_config); in tpa6130a2_probe()
239 if (IS_ERR(data->regmap)) in tpa6130a2_probe()
240 return PTR_ERR(data->regmap); in tpa6130a2_probe()
243 data->power_gpio = pdata->power_gpio; in tpa6130a2_probe()
245 data->power_gpio = of_get_named_gpio(np, "power-gpio", 0); in tpa6130a2_probe()
249 return -ENODEV; in tpa6130a2_probe()
255 data->id = id->driver_data; in tpa6130a2_probe()
257 if (data->power_gpio >= 0) { in tpa6130a2_probe()
258 ret = devm_gpio_request(dev, data->power_gpio, in tpa6130a2_probe()
262 data->power_gpio); in tpa6130a2_probe()
265 gpio_direction_output(data->power_gpio, 0); in tpa6130a2_probe()
268 switch (data->id) { in tpa6130a2_probe()
271 data->id); in tpa6130a2_probe()
281 data->supply = devm_regulator_get(dev, regulator); in tpa6130a2_probe()
282 if (IS_ERR(data->supply)) { in tpa6130a2_probe()
283 ret = PTR_ERR(data->supply); in tpa6130a2_probe()
294 regmap_read(data->regmap, TPA6130A2_REG_VERSION, &version); in tpa6130a2_probe()
304 return devm_snd_soc_register_component(&client->dev, in tpa6130a2_probe()