Loading Documentation/devicetree/bindings/sound/ts3a227e.txt +5 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,11 @@ Required properties: - interrupt-parent: The parent interrupt controller - interrupts: Interrupt number for /INT pin from the 227e Optional properies: - ti,micbias: Intended MICBIAS voltage (datasheet section 9.6.7). Select 0/1/2/3/4/5/6/7 to specify MACBIAS voltage 2.1V/2.2V/2.3V/2.4V/2.5V/2.6V/2.7V/2.8V Default value is "1" (2.2V). Examples: Loading sound/soc/codecs/ts3a227e.c +32 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ #include <sound/jack.h> #include <sound/soc.h> #include "ts3a227e.h" struct ts3a227e { struct regmap *regmap; struct snd_soc_jack *jack; Loading Loading @@ -79,6 +81,10 @@ static const int ts3a227e_buttons[] = { /* TS3A227E_REG_SETTING_2 0x05 */ #define KP_ENABLE 0x04 /* TS3A227E_REG_SETTING_3 0x06 */ #define MICBIAS_SETTING_SFT (3) #define MICBIAS_SETTING_MASK (0x7 << MICBIAS_SETTING_SFT) /* TS3A227E_REG_ACCESSORY_STATUS 0x0b */ #define TYPE_3_POLE 0x01 #define TYPE_4_POLE_OMTP 0x02 Loading Loading @@ -221,9 +227,9 @@ int ts3a227e_enable_jack_detect(struct snd_soc_component *component, struct ts3a227e *ts3a227e = snd_soc_component_get_drvdata(component); snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_MEDIA); snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); ts3a227e->jack = jack; ts3a227e_jack_report(ts3a227e); Loading @@ -248,6 +254,21 @@ static const struct regmap_config ts3a227e_regmap_config = { .num_reg_defaults = ARRAY_SIZE(ts3a227e_reg_defaults), }; static int ts3a227e_parse_dt(struct ts3a227e *ts3a227e, struct device_node *np) { u32 micbias; int err; err = of_property_read_u32(np, "ti,micbias", &micbias); if (!err) { regmap_update_bits(ts3a227e->regmap, TS3A227E_REG_SETTING_3, MICBIAS_SETTING_MASK, (micbias & 0x07) << MICBIAS_SETTING_SFT); } return 0; } static int ts3a227e_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) { Loading @@ -266,6 +287,14 @@ static int ts3a227e_i2c_probe(struct i2c_client *i2c, if (IS_ERR(ts3a227e->regmap)) return PTR_ERR(ts3a227e->regmap); if (dev->of_node) { ret = ts3a227e_parse_dt(ts3a227e, dev->of_node); if (ret) { dev_err(dev, "Failed to parse device tree: %d\n", ret); return ret; } } ret = devm_request_threaded_irq(dev, i2c->irq, NULL, ts3a227e_interrupt, IRQF_TRIGGER_LOW | IRQF_ONESHOT, "TS3A227E", ts3a227e); Loading sound/soc/txx9/txx9aclc.c +0 −6 Original line number Diff line number Diff line Loading @@ -282,11 +282,6 @@ static struct snd_pcm_ops txx9aclc_pcm_ops = { .pointer = txx9aclc_pcm_pointer, }; static void txx9aclc_pcm_free_dma_buffers(struct snd_pcm *pcm) { snd_pcm_lib_preallocate_free_for_all(pcm); } static int txx9aclc_pcm_new(struct snd_soc_pcm_runtime *rtd) { struct snd_card *card = rtd->card->snd_card; Loading Loading @@ -412,7 +407,6 @@ static struct snd_soc_platform_driver txx9aclc_soc_platform = { .remove = txx9aclc_pcm_remove, .ops = &txx9aclc_pcm_ops, .pcm_new = txx9aclc_pcm_new, .pcm_free = txx9aclc_pcm_free_dma_buffers, }; static int txx9aclc_soc_platform_probe(struct platform_device *pdev) Loading Loading
Documentation/devicetree/bindings/sound/ts3a227e.txt +5 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,11 @@ Required properties: - interrupt-parent: The parent interrupt controller - interrupts: Interrupt number for /INT pin from the 227e Optional properies: - ti,micbias: Intended MICBIAS voltage (datasheet section 9.6.7). Select 0/1/2/3/4/5/6/7 to specify MACBIAS voltage 2.1V/2.2V/2.3V/2.4V/2.5V/2.6V/2.7V/2.8V Default value is "1" (2.2V). Examples: Loading
sound/soc/codecs/ts3a227e.c +32 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ #include <sound/jack.h> #include <sound/soc.h> #include "ts3a227e.h" struct ts3a227e { struct regmap *regmap; struct snd_soc_jack *jack; Loading Loading @@ -79,6 +81,10 @@ static const int ts3a227e_buttons[] = { /* TS3A227E_REG_SETTING_2 0x05 */ #define KP_ENABLE 0x04 /* TS3A227E_REG_SETTING_3 0x06 */ #define MICBIAS_SETTING_SFT (3) #define MICBIAS_SETTING_MASK (0x7 << MICBIAS_SETTING_SFT) /* TS3A227E_REG_ACCESSORY_STATUS 0x0b */ #define TYPE_3_POLE 0x01 #define TYPE_4_POLE_OMTP 0x02 Loading Loading @@ -221,9 +227,9 @@ int ts3a227e_enable_jack_detect(struct snd_soc_component *component, struct ts3a227e *ts3a227e = snd_soc_component_get_drvdata(component); snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_MEDIA); snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); ts3a227e->jack = jack; ts3a227e_jack_report(ts3a227e); Loading @@ -248,6 +254,21 @@ static const struct regmap_config ts3a227e_regmap_config = { .num_reg_defaults = ARRAY_SIZE(ts3a227e_reg_defaults), }; static int ts3a227e_parse_dt(struct ts3a227e *ts3a227e, struct device_node *np) { u32 micbias; int err; err = of_property_read_u32(np, "ti,micbias", &micbias); if (!err) { regmap_update_bits(ts3a227e->regmap, TS3A227E_REG_SETTING_3, MICBIAS_SETTING_MASK, (micbias & 0x07) << MICBIAS_SETTING_SFT); } return 0; } static int ts3a227e_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) { Loading @@ -266,6 +287,14 @@ static int ts3a227e_i2c_probe(struct i2c_client *i2c, if (IS_ERR(ts3a227e->regmap)) return PTR_ERR(ts3a227e->regmap); if (dev->of_node) { ret = ts3a227e_parse_dt(ts3a227e, dev->of_node); if (ret) { dev_err(dev, "Failed to parse device tree: %d\n", ret); return ret; } } ret = devm_request_threaded_irq(dev, i2c->irq, NULL, ts3a227e_interrupt, IRQF_TRIGGER_LOW | IRQF_ONESHOT, "TS3A227E", ts3a227e); Loading
sound/soc/txx9/txx9aclc.c +0 −6 Original line number Diff line number Diff line Loading @@ -282,11 +282,6 @@ static struct snd_pcm_ops txx9aclc_pcm_ops = { .pointer = txx9aclc_pcm_pointer, }; static void txx9aclc_pcm_free_dma_buffers(struct snd_pcm *pcm) { snd_pcm_lib_preallocate_free_for_all(pcm); } static int txx9aclc_pcm_new(struct snd_soc_pcm_runtime *rtd) { struct snd_card *card = rtd->card->snd_card; Loading Loading @@ -412,7 +407,6 @@ static struct snd_soc_platform_driver txx9aclc_soc_platform = { .remove = txx9aclc_pcm_remove, .ops = &txx9aclc_pcm_ops, .pcm_new = txx9aclc_pcm_new, .pcm_free = txx9aclc_pcm_free_dma_buffers, }; static int txx9aclc_soc_platform_probe(struct platform_device *pdev) Loading