Merge branches 'topic/dmic' and 'topic/qcom' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-msm8916
This commit is contained in:
commit
702992387b
|
@ -0,0 +1,16 @@
|
|||
Device-Tree bindings for Digital microphone (DMIC) codec
|
||||
|
||||
This device support generic PDM digital microphone.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "dmic-codec".
|
||||
|
||||
Optional properties:
|
||||
- dmicen-gpios: GPIO specifier for dmic to control start and stop
|
||||
|
||||
Example node:
|
||||
|
||||
dmic_codec: dmic@0 {
|
||||
compatible = "dmic-codec";
|
||||
dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
|
@ -0,0 +1,33 @@
|
|||
RT274 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "realtek,rt274".
|
||||
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupts : The CODEC's interrupt output.
|
||||
|
||||
|
||||
Pins on the device (for linking into audio routes) for RT274:
|
||||
|
||||
* DMIC1 Pin
|
||||
* DMIC2 Pin
|
||||
* MIC
|
||||
* LINE1
|
||||
* LINE2
|
||||
* HPO Pin
|
||||
* SPDIF
|
||||
* LINE3
|
||||
|
||||
Example:
|
||||
|
||||
codec: rt274@1c {
|
||||
compatible = "realtek,rt274";
|
||||
reg = <0x1c>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
|
@ -1355,7 +1355,7 @@ static struct regmap *pm860x_get_regmap(struct device *dev)
|
|||
return pm860x->regmap;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_pm860x = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_pm860x = {
|
||||
.probe = pm860x_probe,
|
||||
.remove = pm860x_remove,
|
||||
.set_bias_level = pm860x_set_bias_level,
|
||||
|
|
|
@ -71,7 +71,7 @@ config SND_SOC_ALL_CODECS
|
|||
select SND_SOC_DA732X if I2C
|
||||
select SND_SOC_DA9055 if I2C
|
||||
select SND_SOC_DIO2125
|
||||
select SND_SOC_DMIC
|
||||
select SND_SOC_DMIC if GPIOLIB
|
||||
select SND_SOC_ES8316 if I2C
|
||||
select SND_SOC_ES8328_SPI if SPI_MASTER
|
||||
select SND_SOC_ES8328_I2C if I2C
|
||||
|
@ -114,6 +114,7 @@ config SND_SOC_ALL_CODECS
|
|||
select SND_SOC_PCM5102A
|
||||
select SND_SOC_PCM512x_I2C if I2C
|
||||
select SND_SOC_PCM512x_SPI if SPI_MASTER
|
||||
select SND_SOC_RT274 if I2C
|
||||
select SND_SOC_RT286 if I2C
|
||||
select SND_SOC_RT298 if I2C
|
||||
select SND_SOC_RT5514 if I2C
|
||||
|
@ -716,11 +717,17 @@ config SND_SOC_RL6231
|
|||
|
||||
config SND_SOC_RL6347A
|
||||
tristate
|
||||
default y if SND_SOC_RT274=y
|
||||
default y if SND_SOC_RT286=y
|
||||
default y if SND_SOC_RT298=y
|
||||
default m if SND_SOC_RT274=m
|
||||
default m if SND_SOC_RT286=m
|
||||
default m if SND_SOC_RT298=m
|
||||
|
||||
config SND_SOC_RT274
|
||||
tristate
|
||||
depends on I2C
|
||||
|
||||
config SND_SOC_RT286
|
||||
tristate
|
||||
depends on I2C
|
||||
|
|
|
@ -113,6 +113,7 @@ snd-soc-pcm512x-i2c-objs := pcm512x-i2c.o
|
|||
snd-soc-pcm512x-spi-objs := pcm512x-spi.o
|
||||
snd-soc-rl6231-objs := rl6231.o
|
||||
snd-soc-rl6347a-objs := rl6347a.o
|
||||
snd-soc-rt274-objs := rt274.o
|
||||
snd-soc-rt286-objs := rt286.o
|
||||
snd-soc-rt298-objs := rt298.o
|
||||
snd-soc-rt5514-objs := rt5514.o
|
||||
|
@ -349,6 +350,7 @@ obj-$(CONFIG_SND_SOC_PCM512x_I2C) += snd-soc-pcm512x-i2c.o
|
|||
obj-$(CONFIG_SND_SOC_PCM512x_SPI) += snd-soc-pcm512x-spi.o
|
||||
obj-$(CONFIG_SND_SOC_RL6231) += snd-soc-rl6231.o
|
||||
obj-$(CONFIG_SND_SOC_RL6347A) += snd-soc-rl6347a.o
|
||||
obj-$(CONFIG_SND_SOC_RT274) += snd-soc-rt274.o
|
||||
obj-$(CONFIG_SND_SOC_RT286) += snd-soc-rt286.o
|
||||
obj-$(CONFIG_SND_SOC_RT298) += snd-soc-rt298.o
|
||||
obj-$(CONFIG_SND_SOC_RT5514) += snd-soc-rt5514.o
|
||||
|
|
|
@ -2523,7 +2523,7 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
|
|||
return status;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver ab8500_codec_driver = {
|
||||
static const struct snd_soc_codec_driver ab8500_codec_driver = {
|
||||
.probe = ab8500_codec_probe,
|
||||
.component_driver = {
|
||||
.controls = ab8500_ctrls,
|
||||
|
|
|
@ -112,7 +112,7 @@ static int ac97_soc_resume(struct snd_soc_codec *codec)
|
|||
#define ac97_soc_resume NULL
|
||||
#endif
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ac97 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ac97 = {
|
||||
.probe = ac97_soc_probe,
|
||||
.suspend = ac97_soc_suspend,
|
||||
.resume = ac97_soc_resume,
|
||||
|
|
|
@ -321,7 +321,7 @@ static int ad1836_remove(struct snd_soc_codec *codec)
|
|||
AD1836_ADC_SERFMT_MASK, 0);
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ad1836 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ad1836 = {
|
||||
.probe = ad1836_probe,
|
||||
.remove = ad1836_remove,
|
||||
.suspend = ad1836_suspend,
|
||||
|
|
|
@ -408,7 +408,7 @@ static int ad193x_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ad193x = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ad193x = {
|
||||
.probe = ad193x_codec_probe,
|
||||
.component_driver = {
|
||||
.controls = ad193x_snd_controls,
|
||||
|
|
|
@ -295,7 +295,7 @@ static int ad1980_soc_remove(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ad1980 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ad1980 = {
|
||||
.probe = ad1980_soc_probe,
|
||||
.remove = ad1980_soc_remove,
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ static struct snd_soc_dai_driver ad73311_dai = {
|
|||
.formats = SNDRV_PCM_FMTBIT_S16_LE, },
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ad73311 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ad73311 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = ad73311_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ad73311_dapm_widgets),
|
||||
|
|
|
@ -1458,7 +1458,7 @@ static const struct regmap_config adau1373_regmap_config = {
|
|||
.num_reg_defaults = ARRAY_SIZE(adau1373_reg_defaults),
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver adau1373_codec_driver = {
|
||||
static const struct snd_soc_codec_driver adau1373_codec_driver = {
|
||||
.probe = adau1373_probe,
|
||||
.resume = adau1373_resume,
|
||||
.set_bias_level = adau1373_set_bias_level,
|
||||
|
|
|
@ -757,7 +757,7 @@ static int adau1701_resume(struct snd_soc_codec *codec)
|
|||
#define adau1701_suspend NULL
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
static struct snd_soc_codec_driver adau1701_codec_drv = {
|
||||
static const struct snd_soc_codec_driver adau1701_codec_drv = {
|
||||
.probe = adau1701_probe,
|
||||
.remove = adau1701_remove,
|
||||
.resume = adau1701_resume,
|
||||
|
|
|
@ -867,7 +867,7 @@ static int adau1977_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver adau1977_codec_driver = {
|
||||
static const struct snd_soc_codec_driver adau1977_codec_driver = {
|
||||
.probe = adau1977_codec_probe,
|
||||
.set_bias_level = adau1977_set_bias_level,
|
||||
.set_sysclk = adau1977_set_sysclk,
|
||||
|
|
|
@ -825,7 +825,7 @@ static int adav80x_resume(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver adav80x_codec_driver = {
|
||||
static const struct snd_soc_codec_driver adav80x_codec_driver = {
|
||||
.probe = adav80x_probe,
|
||||
.resume = adav80x_resume,
|
||||
.set_bias_level = adav80x_set_bias_level,
|
||||
|
|
|
@ -58,7 +58,7 @@ static struct snd_soc_dai_driver ads117x_dai = {
|
|||
.formats = ADS117X_FORMATS,},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ads117x = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ads117x = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = ads117x_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ads117x_dapm_widgets),
|
||||
|
|
|
@ -242,7 +242,7 @@ static int ak4104_soc_resume(struct snd_soc_codec *codec)
|
|||
#define ak4104_soc_resume NULL
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_device_ak4104 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_device_ak4104 = {
|
||||
.probe = ak4104_probe,
|
||||
.remove = ak4104_remove,
|
||||
.suspend = ak4104_soc_suspend,
|
||||
|
|
|
@ -390,7 +390,7 @@ static const struct regmap_config ak4535_regmap = {
|
|||
.num_reg_defaults = ARRAY_SIZE(ak4535_reg_defaults),
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ak4535 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ak4535 = {
|
||||
.resume = ak4535_resume,
|
||||
.set_bias_level = ak4535_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
|
|
@ -64,7 +64,7 @@ static struct snd_soc_dai_driver ak4554_dai = {
|
|||
.symmetric_rates = 1,
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ak4554 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ak4554 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = ak4554_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(ak4554_dapm_widgets),
|
||||
|
|
|
@ -522,7 +522,7 @@ static int ak4613_resume(struct snd_soc_codec *codec)
|
|||
return regcache_sync(regmap);
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ak4613 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ak4613 = {
|
||||
.suspend = ak4613_suspend,
|
||||
.resume = ak4613_resume,
|
||||
.set_bias_level = ak4613_set_bias_level,
|
||||
|
|
|
@ -524,7 +524,7 @@ static struct snd_soc_dai_driver ak4641_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ak4641 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ak4641 = {
|
||||
.component_driver = {
|
||||
.controls = ak4641_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(ak4641_snd_controls),
|
||||
|
|
|
@ -550,7 +550,7 @@ static int ak4642_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ak4642 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ak4642 = {
|
||||
.probe = ak4642_probe,
|
||||
.suspend = ak4642_suspend,
|
||||
.resume = ak4642_resume,
|
||||
|
|
|
@ -610,7 +610,7 @@ static struct snd_soc_dai_driver ak4671_dai = {
|
|||
.ops = &ak4671_dai_ops,
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ak4671 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ak4671 = {
|
||||
.set_bias_level = ak4671_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = ak4671_snd_controls,
|
||||
|
|
|
@ -69,7 +69,7 @@ static int ak5386_soc_resume(struct snd_soc_codec *codec)
|
|||
#define ak5386_soc_resume NULL
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_ak5386 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_ak5386 = {
|
||||
.probe = ak5386_soc_probe,
|
||||
.remove = ak5386_soc_remove,
|
||||
.suspend = ak5386_soc_suspend,
|
||||
|
|
|
@ -951,7 +951,7 @@ static int alc5623_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_device_alc5623 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_device_alc5623 = {
|
||||
.probe = alc5623_probe,
|
||||
.suspend = alc5623_suspend,
|
||||
.resume = alc5623_resume,
|
||||
|
|
|
@ -62,7 +62,7 @@ static struct snd_soc_dai_driver bt_sco_dai[] = {
|
|||
}
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_bt_sco = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_bt_sco = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = bt_sco_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(bt_sco_widgets),
|
||||
|
|
|
@ -128,7 +128,7 @@ static struct regmap *cq93vc_get_regmap(struct device *dev)
|
|||
return davinci_vc->regmap;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cq93vc = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cq93vc = {
|
||||
.set_bias_level = cq93vc_set_bias_level,
|
||||
.get_regmap = cq93vc_get_regmap,
|
||||
.component_driver = {
|
||||
|
|
|
@ -831,7 +831,7 @@ static int cs35l33_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cs35l33 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cs35l33 = {
|
||||
.probe = cs35l33_probe,
|
||||
|
||||
.set_bias_level = cs35l33_set_bias_level,
|
||||
|
|
|
@ -779,7 +779,7 @@ static int cs35l34_probe(struct snd_soc_codec *codec)
|
|||
}
|
||||
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cs35l34 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cs35l34 = {
|
||||
.probe = cs35l34_probe,
|
||||
|
||||
.component_driver = {
|
||||
|
|
|
@ -1079,7 +1079,7 @@ static int cs35l35_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cs35l35 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cs35l35 = {
|
||||
.probe = cs35l35_codec_probe,
|
||||
.set_sysclk = cs35l35_codec_set_sysclk,
|
||||
.component_driver = {
|
||||
|
|
|
@ -639,7 +639,7 @@ static int cs4271_codec_remove(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cs4271 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cs4271 = {
|
||||
.probe = cs4271_codec_probe,
|
||||
.remove = cs4271_codec_remove,
|
||||
.suspend = cs4271_soc_suspend,
|
||||
|
|
|
@ -504,7 +504,7 @@ static int cs42l51_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_device_cs42l51 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_device_cs42l51 = {
|
||||
.probe = cs42l51_codec_probe,
|
||||
|
||||
.component_driver = {
|
||||
|
|
|
@ -255,7 +255,7 @@ static struct snd_soc_dai_driver cs4349_dai = {
|
|||
.symmetric_rates = 1,
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cs4349 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cs4349 = {
|
||||
.component_driver = {
|
||||
.controls = cs4349_snd_controls,
|
||||
.num_controls = ARRAY_SIZE(cs4349_snd_controls),
|
||||
|
|
|
@ -1183,7 +1183,7 @@ static struct regmap *cs47l24_get_regmap(struct device *dev)
|
|||
return priv->core.arizona->regmap;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_cs47l24 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_cs47l24 = {
|
||||
.probe = cs47l24_codec_probe,
|
||||
.remove = cs47l24_codec_remove,
|
||||
.get_regmap = cs47l24_get_regmap,
|
||||
|
@ -1213,7 +1213,7 @@ static struct snd_compr_ops cs47l24_compr_ops = {
|
|||
.copy = wm_adsp_compr_copy,
|
||||
};
|
||||
|
||||
static struct snd_soc_platform_driver cs47l24_compr_platform = {
|
||||
static const struct snd_soc_platform_driver cs47l24_compr_platform = {
|
||||
.compr_ops = &cs47l24_compr_ops,
|
||||
};
|
||||
|
||||
|
|
|
@ -892,7 +892,7 @@ static int cs53l30_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver cs53l30_driver = {
|
||||
static const struct snd_soc_codec_driver cs53l30_driver = {
|
||||
.probe = cs53l30_codec_probe,
|
||||
.set_bias_level = cs53l30_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
|
|
|
@ -398,7 +398,7 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
|
|||
|
||||
static const u8 cx20442_reg;
|
||||
|
||||
static struct snd_soc_codec_driver cx20442_codec_dev = {
|
||||
static const struct snd_soc_codec_driver cx20442_codec_dev = {
|
||||
.probe = cx20442_codec_probe,
|
||||
.remove = cx20442_codec_remove,
|
||||
.set_bias_level = cx20442_set_bias_level,
|
||||
|
|
|
@ -1164,7 +1164,7 @@ static int da7210_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_da7210 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_da7210 = {
|
||||
.probe = da7210_probe,
|
||||
|
||||
.component_driver = {
|
||||
|
|
|
@ -1787,7 +1787,7 @@ static int da7213_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_da7213 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_da7213 = {
|
||||
.probe = da7213_probe,
|
||||
.set_bias_level = da7213_set_bias_level,
|
||||
|
||||
|
|
|
@ -3035,7 +3035,7 @@ static int da7218_resume(struct snd_soc_codec *codec)
|
|||
#define da7218_resume NULL
|
||||
#endif
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_da7218 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_da7218 = {
|
||||
.probe = da7218_probe,
|
||||
.remove = da7218_remove,
|
||||
.suspend = da7218_suspend,
|
||||
|
|
|
@ -1891,7 +1891,7 @@ static int da7219_resume(struct snd_soc_codec *codec)
|
|||
#define da7219_resume NULL
|
||||
#endif
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_da7219 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_da7219 = {
|
||||
.probe = da7219_probe,
|
||||
.remove = da7219_remove,
|
||||
.suspend = da7219_suspend,
|
||||
|
|
|
@ -1499,7 +1499,7 @@ static int da732x_set_bias_level(struct snd_soc_codec *codec,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_da732x = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_da732x = {
|
||||
.set_bias_level = da732x_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = da732x_snd_controls,
|
||||
|
|
|
@ -1451,7 +1451,7 @@ static int da9055_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_da9055 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_da9055 = {
|
||||
.probe = da9055_probe,
|
||||
.set_bias_level = da9055_set_bias_level,
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -27,6 +29,34 @@
|
|||
#include <sound/soc.h>
|
||||
#include <sound/soc-dapm.h>
|
||||
|
||||
static int dmic_daiops_trigger(struct snd_pcm_substream *substream,
|
||||
int cmd, struct snd_soc_dai *dai)
|
||||
{
|
||||
struct gpio_desc *dmic_en = snd_soc_dai_get_drvdata(dai);
|
||||
|
||||
if (!dmic_en)
|
||||
return 0;
|
||||
|
||||
switch (cmd) {
|
||||
case SNDRV_PCM_TRIGGER_START:
|
||||
case SNDRV_PCM_TRIGGER_RESUME:
|
||||
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
|
||||
gpiod_set_value(dmic_en, 1);
|
||||
break;
|
||||
case SNDRV_PCM_TRIGGER_STOP:
|
||||
case SNDRV_PCM_TRIGGER_SUSPEND:
|
||||
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
|
||||
gpiod_set_value(dmic_en, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct snd_soc_dai_ops dmic_dai_ops = {
|
||||
.trigger = dmic_daiops_trigger,
|
||||
};
|
||||
|
||||
static struct snd_soc_dai_driver dmic_dai = {
|
||||
.name = "dmic-hifi",
|
||||
.capture = {
|
||||
|
@ -38,8 +68,23 @@ static struct snd_soc_dai_driver dmic_dai = {
|
|||
| SNDRV_PCM_FMTBIT_S24_LE
|
||||
| SNDRV_PCM_FMTBIT_S16_LE,
|
||||
},
|
||||
.ops = &dmic_dai_ops,
|
||||
};
|
||||
|
||||
static int dmic_codec_probe(struct snd_soc_codec *codec)
|
||||
{
|
||||
struct gpio_desc *dmic_en;
|
||||
|
||||
dmic_en = devm_gpiod_get_optional(codec->dev,
|
||||
"dmicen", GPIOD_OUT_LOW);
|
||||
if (IS_ERR(dmic_en))
|
||||
return PTR_ERR(dmic_en);
|
||||
|
||||
snd_soc_codec_set_drvdata(codec, dmic_en);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct snd_soc_dapm_widget dmic_dapm_widgets[] = {
|
||||
SND_SOC_DAPM_AIF_OUT("DMIC AIF", "Capture", 0,
|
||||
SND_SOC_NOPM, 0, 0),
|
||||
|
@ -50,7 +95,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"DMIC AIF", NULL, "DMic"},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_dmic = {
|
||||
static const struct snd_soc_codec_driver soc_dmic = {
|
||||
.probe = dmic_codec_probe,
|
||||
.component_driver = {
|
||||
.dapm_widgets = dmic_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(dmic_dapm_widgets),
|
||||
|
@ -73,9 +119,15 @@ static int dmic_dev_remove(struct platform_device *pdev)
|
|||
|
||||
MODULE_ALIAS("platform:dmic-codec");
|
||||
|
||||
static const struct of_device_id dmic_dev_match[] = {
|
||||
{.compatible = "dmic-codec"},
|
||||
{}
|
||||
};
|
||||
|
||||
static struct platform_driver dmic_driver = {
|
||||
.driver = {
|
||||
.name = "dmic-codec",
|
||||
.of_match_table = dmic_dev_match,
|
||||
},
|
||||
.probe = dmic_dev_probe,
|
||||
.remove = dmic_dev_remove,
|
||||
|
|
|
@ -69,7 +69,7 @@ static const struct snd_soc_dapm_route es7134_dapm_routes[] = {
|
|||
{ "AOUTR", NULL, "DAC" },
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver es7134_codec_driver = {
|
||||
static const struct snd_soc_codec_driver es7134_codec_driver = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = es7134_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(es7134_dapm_widgets),
|
||||
|
|
|
@ -554,7 +554,7 @@ static int es8316_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_es8316 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_es8316 = {
|
||||
.probe = es8316_probe,
|
||||
.idle_bias_off = true,
|
||||
|
||||
|
|
|
@ -830,7 +830,7 @@ const struct regmap_config es8328_regmap_config = {
|
|||
};
|
||||
EXPORT_SYMBOL_GPL(es8328_regmap_config);
|
||||
|
||||
static struct snd_soc_codec_driver es8328_codec_driver = {
|
||||
static const struct snd_soc_codec_driver es8328_codec_driver = {
|
||||
.probe = es8328_codec_probe,
|
||||
.suspend = es8328_suspend,
|
||||
.resume = es8328_resume,
|
||||
|
|
|
@ -1360,7 +1360,7 @@ static void hdac_hdmi_skl_enable_dp12(struct hdac_device *hdac)
|
|||
|
||||
}
|
||||
|
||||
static struct snd_soc_dai_ops hdmi_dai_ops = {
|
||||
static const struct snd_soc_dai_ops hdmi_dai_ops = {
|
||||
.startup = hdac_hdmi_pcm_open,
|
||||
.shutdown = hdac_hdmi_pcm_close,
|
||||
.hw_params = hdac_hdmi_set_hw_params,
|
||||
|
@ -1858,7 +1858,7 @@ static void hdmi_codec_complete(struct device *dev)
|
|||
#define hdmi_codec_complete NULL
|
||||
#endif
|
||||
|
||||
static struct snd_soc_codec_driver hdmi_hda_codec = {
|
||||
static const struct snd_soc_codec_driver hdmi_hda_codec = {
|
||||
.probe = hdmi_codec_probe,
|
||||
.remove = hdmi_codec_remove,
|
||||
.idle_bias_off = true,
|
||||
|
|
|
@ -326,7 +326,7 @@ static int hdmi_eld_ctl_get(struct snd_kcontrol *kcontrol,
|
|||
static unsigned long hdmi_codec_spk_mask_from_alloc(int spk_alloc)
|
||||
{
|
||||
int i;
|
||||
const unsigned long hdmi_codec_eld_spk_alloc_bits[] = {
|
||||
static const unsigned long hdmi_codec_eld_spk_alloc_bits[] = {
|
||||
[0] = FL | FR, [1] = LFE, [2] = FC, [3] = RL | RR,
|
||||
[4] = RC, [5] = FLC | FRC, [6] = RLC | RRC,
|
||||
};
|
||||
|
@ -399,18 +399,6 @@ static int hdmi_codec_chmap_ctl_get(struct snd_kcontrol *kcontrol,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static const struct snd_kcontrol_new hdmi_controls[] = {
|
||||
{
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "ELD",
|
||||
.info = hdmi_eld_ctl_info,
|
||||
.get = hdmi_eld_ctl_get,
|
||||
},
|
||||
};
|
||||
|
||||
static int hdmi_codec_new_stream(struct snd_pcm_substream *substream,
|
||||
struct snd_soc_dai *dai)
|
||||
{
|
||||
|
@ -668,6 +656,16 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
|
|||
{
|
||||
struct snd_soc_dai_driver *drv = dai->driver;
|
||||
struct hdmi_codec_priv *hcp = snd_soc_dai_get_drvdata(dai);
|
||||
struct snd_kcontrol *kctl;
|
||||
struct snd_kcontrol_new hdmi_eld_ctl = {
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READ |
|
||||
SNDRV_CTL_ELEM_ACCESS_VOLATILE,
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_PCM,
|
||||
.name = "ELD",
|
||||
.info = hdmi_eld_ctl_info,
|
||||
.get = hdmi_eld_ctl_get,
|
||||
.device = rtd->pcm->device,
|
||||
};
|
||||
int ret;
|
||||
|
||||
dev_dbg(dai->dev, "%s()\n", __func__);
|
||||
|
@ -686,10 +684,15 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
|
|||
hcp->chmap_info->chmap = hdmi_codec_stereo_chmaps;
|
||||
hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN;
|
||||
|
||||
return 0;
|
||||
/* add ELD ctl with the device number corresponding to the PCM stream */
|
||||
kctl = snd_ctl_new1(&hdmi_eld_ctl, dai->component);
|
||||
if (!kctl)
|
||||
return -ENOMEM;
|
||||
|
||||
return snd_ctl_add(rtd->card->snd_card, kctl);
|
||||
}
|
||||
|
||||
static struct snd_soc_dai_driver hdmi_i2s_dai = {
|
||||
static const struct snd_soc_dai_driver hdmi_i2s_dai = {
|
||||
.name = "i2s-hifi",
|
||||
.id = DAI_ID_I2S,
|
||||
.playback = {
|
||||
|
@ -730,10 +733,8 @@ static int hdmi_of_xlate_dai_id(struct snd_soc_component *component,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver hdmi_codec = {
|
||||
static const struct snd_soc_codec_driver hdmi_codec = {
|
||||
.component_driver = {
|
||||
.controls = hdmi_controls,
|
||||
.num_controls = ARRAY_SIZE(hdmi_controls),
|
||||
.dapm_widgets = hdmi_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(hdmi_widgets),
|
||||
.dapm_routes = hdmi_routes,
|
||||
|
|
|
@ -37,7 +37,7 @@ static struct snd_soc_dai_driver ics43432_dai = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver ics43432_codec_driver = {
|
||||
static const struct snd_soc_codec_driver ics43432_codec_driver = {
|
||||
};
|
||||
|
||||
static int ics43432_probe(struct platform_device *pdev)
|
||||
|
|
|
@ -376,7 +376,7 @@ static int rk3036_codec_set_bias_level(struct snd_soc_codec *codec,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver rk3036_codec_driver = {
|
||||
static const struct snd_soc_codec_driver rk3036_codec_driver = {
|
||||
.probe = rk3036_codec_probe,
|
||||
.remove = rk3036_codec_remove,
|
||||
.set_bias_level = rk3036_codec_set_bias_level,
|
||||
|
|
|
@ -1087,7 +1087,7 @@ static struct snd_soc_dai_driver isabelle_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_isabelle = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_isabelle = {
|
||||
.set_bias_level = isabelle_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = isabelle_snd_controls,
|
||||
|
|
|
@ -293,7 +293,7 @@ static int jz4740_codec_dev_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_jz4740_codec = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_jz4740_codec = {
|
||||
.probe = jz4740_codec_dev_probe,
|
||||
.set_bias_level = jz4740_codec_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
|
|
@ -100,7 +100,7 @@ static const struct snd_soc_dapm_route lm4857_routes[] = {
|
|||
{ "EP", "Earpiece", "Mode" },
|
||||
};
|
||||
|
||||
static struct snd_soc_component_driver lm4857_component_driver = {
|
||||
static const struct snd_soc_component_driver lm4857_component_driver = {
|
||||
.controls = lm4857_controls,
|
||||
.num_controls = ARRAY_SIZE(lm4857_controls),
|
||||
.dapm_widgets = lm4857_dapm_widgets,
|
||||
|
|
|
@ -1389,7 +1389,7 @@ static struct snd_soc_dai_driver lm49453_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_lm49453 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_lm49453 = {
|
||||
.set_bias_level = lm49453_set_bias_level,
|
||||
.component_driver = {
|
||||
.controls = lm49453_snd_controls,
|
||||
|
|
|
@ -151,7 +151,7 @@ static int max9768_probe(struct snd_soc_component *component)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_component_driver max9768_component_driver = {
|
||||
static const struct snd_soc_component_driver max9768_component_driver = {
|
||||
.probe = max9768_probe,
|
||||
.controls = max9768_volume,
|
||||
.num_controls = ARRAY_SIZE(max9768_volume),
|
||||
|
|
|
@ -1698,7 +1698,7 @@ static int max98088_remove(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_max98088 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_max98088 = {
|
||||
.probe = max98088_probe,
|
||||
.remove = max98088_remove,
|
||||
.set_bias_level = max98088_set_bias_level,
|
||||
|
|
|
@ -2499,7 +2499,7 @@ static void max98090_seq_notifier(struct snd_soc_dapm_context *dapm,
|
|||
}
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_max98090 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_max98090 = {
|
||||
.probe = max98090_probe,
|
||||
.remove = max98090_remove,
|
||||
.seq_notifier = max98090_seq_notifier,
|
||||
|
|
|
@ -2102,7 +2102,7 @@ static int max98095_remove(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_max98095 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_max98095 = {
|
||||
.probe = max98095_probe,
|
||||
.remove = max98095_remove,
|
||||
.suspend = max98095_suspend,
|
||||
|
|
|
@ -72,7 +72,7 @@ static int max98357a_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver max98357a_codec_driver = {
|
||||
static const struct snd_soc_codec_driver max98357a_codec_driver = {
|
||||
.probe = max98357a_codec_probe,
|
||||
.component_driver = {
|
||||
.dapm_widgets = max98357a_dapm_widgets,
|
||||
|
|
|
@ -301,7 +301,7 @@ static int max9850_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_max9850 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_max9850 = {
|
||||
.probe = max9850_probe,
|
||||
.set_bias_level = max9850_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
|
|
@ -534,7 +534,7 @@ static int max9860_set_bias_level(struct snd_soc_codec *codec,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver max9860_codec_driver = {
|
||||
static const struct snd_soc_codec_driver max9860_codec_driver = {
|
||||
.set_bias_level = max9860_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
|
||||
|
|
|
@ -413,7 +413,7 @@ static int max9867_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver max9867_codec = {
|
||||
static const struct snd_soc_codec_driver max9867_codec = {
|
||||
.probe = max9867_probe,
|
||||
.component_driver = {
|
||||
.controls = max9867_snd_controls,
|
||||
|
|
|
@ -496,7 +496,7 @@ static int max98926_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_max98926 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_max98926 = {
|
||||
.probe = max98926_probe,
|
||||
.component_driver = {
|
||||
.controls = max98926_snd_controls,
|
||||
|
|
|
@ -733,7 +733,7 @@ static struct regmap *mc13783_get_regmap(struct device *dev)
|
|||
return dev_get_regmap(dev->parent, NULL);
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_mc13783 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_mc13783 = {
|
||||
.probe = mc13783_probe,
|
||||
.remove = mc13783_remove,
|
||||
.get_regmap = mc13783_get_regmap,
|
||||
|
|
|
@ -537,7 +537,7 @@ static int ml26124_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ml26124 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ml26124 = {
|
||||
.probe = ml26124_probe,
|
||||
.set_bias_level = ml26124_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
|
|
@ -767,7 +767,7 @@ static struct snd_soc_dai_driver pm8916_wcd_analog_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver pm8916_wcd_analog = {
|
||||
static const struct snd_soc_codec_driver pm8916_wcd_analog = {
|
||||
.probe = pm8916_wcd_analog_probe,
|
||||
.remove = pm8916_wcd_analog_remove,
|
||||
.get_regmap = pm8916_get_regmap,
|
||||
|
|
|
@ -851,7 +851,7 @@ static struct snd_soc_dai_driver msm8916_wcd_digital_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver msm8916_wcd_digital = {
|
||||
static const struct snd_soc_codec_driver msm8916_wcd_digital = {
|
||||
.probe = msm8916_wcd_digital_codec_probe,
|
||||
.set_sysclk = msm8916_wcd_digital_codec_set_sysclk,
|
||||
.component_driver = {
|
||||
|
|
|
@ -735,7 +735,7 @@ static int __maybe_unused nau8540_resume(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver nau8540_codec_driver = {
|
||||
static const struct snd_soc_codec_driver nau8540_codec_driver = {
|
||||
.set_sysclk = nau8540_set_sysclk,
|
||||
.set_pll = nau8540_set_pll,
|
||||
.suspend = nau8540_suspend,
|
||||
|
|
|
@ -808,7 +808,7 @@ static const struct regmap_config nau8810_regmap_config = {
|
|||
.num_reg_defaults = ARRAY_SIZE(nau8810_reg_defaults),
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver nau8810_codec_driver = {
|
||||
static const struct snd_soc_codec_driver nau8810_codec_driver = {
|
||||
.set_bias_level = nau8810_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
||||
|
|
|
@ -1469,7 +1469,7 @@ static int __maybe_unused nau8824_resume(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver nau8824_codec_driver = {
|
||||
static const struct snd_soc_codec_driver nau8824_codec_driver = {
|
||||
.probe = nau8824_codec_probe,
|
||||
.set_sysclk = nau8824_set_sysclk,
|
||||
.set_pll = nau8824_set_pll,
|
||||
|
|
|
@ -2388,7 +2388,7 @@ static int __maybe_unused nau8825_resume(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver nau8825_codec_driver = {
|
||||
static const struct snd_soc_codec_driver nau8825_codec_driver = {
|
||||
.probe = nau8825_codec_probe,
|
||||
.remove = nau8825_codec_remove,
|
||||
.set_sysclk = nau8825_set_sysclk,
|
||||
|
|
|
@ -288,7 +288,7 @@ static const struct regmap_config pcm1681_regmap = {
|
|||
.readable_reg = pcm1681_accessible_reg,
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_pcm1681 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_pcm1681 = {
|
||||
.component_driver = {
|
||||
.controls = pcm1681_controls,
|
||||
.num_controls = ARRAY_SIZE(pcm1681_controls),
|
||||
|
|
|
@ -205,7 +205,7 @@ const struct regmap_config pcm179x_regmap_config = {
|
|||
};
|
||||
EXPORT_SYMBOL_GPL(pcm179x_regmap_config);
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_pcm179x = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_pcm179x = {
|
||||
.component_driver = {
|
||||
.controls = pcm179x_controls,
|
||||
.num_controls = ARRAY_SIZE(pcm179x_controls),
|
||||
|
|
|
@ -98,7 +98,7 @@ static struct snd_soc_dai_driver pcm3008_dai = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_pcm3008 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_pcm3008 = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = pcm3008_dapm_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(pcm3008_dapm_widgets),
|
||||
|
|
|
@ -1344,7 +1344,7 @@ static struct snd_soc_dai_driver pcm512x_dai = {
|
|||
.ops = &pcm512x_dai_ops,
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver pcm512x_codec_driver = {
|
||||
static const struct snd_soc_codec_driver pcm512x_codec_driver = {
|
||||
.set_bias_level = pcm512x_set_bias_level,
|
||||
.idle_bias_off = true,
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,217 @@
|
|||
/*
|
||||
* rt274.h -- RT274 ALSA SoC audio driver
|
||||
*
|
||||
* Copyright 2016 Realtek Microelectronics
|
||||
* Author: Bard Liao <bardliao@realtek.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __RT274_H__
|
||||
#define __RT274_H__
|
||||
|
||||
#define VERB_CMD(V, N, D) ((N << 20) | (V << 8) | D)
|
||||
|
||||
#define RT274_AUDIO_FUNCTION_GROUP 0x01
|
||||
#define RT274_DAC_OUT0 0x02
|
||||
#define RT274_DAC_OUT1 0x03
|
||||
#define RT274_ADC_IN2 0x08
|
||||
#define RT274_ADC_IN1 0x09
|
||||
#define RT274_DIG_CVT 0x0a
|
||||
#define RT274_DMIC1 0x12
|
||||
#define RT274_DMIC2 0x13
|
||||
#define RT274_MIC 0x19
|
||||
#define RT274_LINE1 0x1a
|
||||
#define RT274_LINE2 0x1b
|
||||
#define RT274_LINE3 0x16
|
||||
#define RT274_SPDIF 0x1e
|
||||
#define RT274_VENDOR_REGISTERS 0x20
|
||||
#define RT274_HP_OUT 0x21
|
||||
#define RT274_MIXER_IN1 0x22
|
||||
#define RT274_MIXER_IN2 0x23
|
||||
#define RT274_INLINE_CMD 0x55
|
||||
|
||||
#define RT274_SET_PIN_SFT 6
|
||||
#define RT274_SET_PIN_ENABLE 0x40
|
||||
#define RT274_SET_PIN_DISABLE 0
|
||||
#define RT274_SET_EAPD_HIGH 0x2
|
||||
#define RT274_SET_EAPD_LOW 0
|
||||
|
||||
#define RT274_MUTE_SFT 7
|
||||
|
||||
/* Verb commands */
|
||||
#define RT274_RESET\
|
||||
VERB_CMD(AC_VERB_SET_CODEC_RESET, RT274_AUDIO_FUNCTION_GROUP, 0)
|
||||
#define RT274_GET_PARAM(NID, PARAM) VERB_CMD(AC_VERB_PARAMETERS, NID, PARAM)
|
||||
#define RT274_SET_POWER(NID) VERB_CMD(AC_VERB_SET_POWER_STATE, NID, 0)
|
||||
#define RT274_SET_AUDIO_POWER RT274_SET_POWER(RT274_AUDIO_FUNCTION_GROUP)
|
||||
#define RT274_SET_HPO_POWER RT274_SET_POWER(RT274_HP_OUT)
|
||||
#define RT274_SET_DMIC1_POWER RT274_SET_POWER(RT274_DMIC1)
|
||||
#define RT274_LOUT_MUX\
|
||||
VERB_CMD(AC_VERB_SET_CONNECT_SEL, RT274_LINE3, 0)
|
||||
#define RT274_HPO_MUX\
|
||||
VERB_CMD(AC_VERB_SET_CONNECT_SEL, RT274_HP_OUT, 0)
|
||||
#define RT274_ADC0_MUX\
|
||||
VERB_CMD(AC_VERB_SET_CONNECT_SEL, RT274_MIXER_IN1, 0)
|
||||
#define RT274_ADC1_MUX\
|
||||
VERB_CMD(AC_VERB_SET_CONNECT_SEL, RT274_MIXER_IN2, 0)
|
||||
#define RT274_SET_MIC\
|
||||
VERB_CMD(AC_VERB_SET_PIN_WIDGET_CONTROL, RT274_MIC, 0)
|
||||
#define RT274_SET_PIN_LOUT3\
|
||||
VERB_CMD(AC_VERB_SET_PIN_WIDGET_CONTROL, RT274_LINE3, 0)
|
||||
#define RT274_SET_PIN_HPO\
|
||||
VERB_CMD(AC_VERB_SET_PIN_WIDGET_CONTROL, RT274_HP_OUT, 0)
|
||||
#define RT274_SET_PIN_DMIC1\
|
||||
VERB_CMD(AC_VERB_SET_PIN_WIDGET_CONTROL, RT274_DMIC1, 0)
|
||||
#define RT274_SET_PIN_SPDIF\
|
||||
VERB_CMD(AC_VERB_SET_PIN_WIDGET_CONTROL, RT274_SPDIF, 0)
|
||||
#define RT274_SET_PIN_DIG_CVT\
|
||||
VERB_CMD(AC_VERB_SET_DIGI_CONVERT_1, RT274_DIG_CVT, 0)
|
||||
#define RT274_SET_AMP_GAIN_HPO\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_HP_OUT, 0)
|
||||
#define RT274_SET_AMP_GAIN_ADC_IN1\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_ADC_IN1, 0)
|
||||
#define RT274_SET_AMP_GAIN_ADC_IN2\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_ADC_IN2, 0)
|
||||
#define RT274_GET_HP_SENSE\
|
||||
VERB_CMD(AC_VERB_GET_PIN_SENSE, RT274_HP_OUT, 0)
|
||||
#define RT274_GET_MIC_SENSE\
|
||||
VERB_CMD(AC_VERB_GET_PIN_SENSE, RT274_MIC, 0)
|
||||
#define RT274_SET_DMIC2_DEFAULT\
|
||||
VERB_CMD(AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, RT274_DMIC2, 0)
|
||||
#define RT274_SET_SPDIF_DEFAULT\
|
||||
VERB_CMD(AC_VERB_SET_CONFIG_DEFAULT_BYTES_3, RT274_SPDIF, 0)
|
||||
#define RT274_DAC0L_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_DAC_OUT0, 0xa000)
|
||||
#define RT274_DAC0R_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_DAC_OUT0, 0x9000)
|
||||
#define RT274_DAC1L_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_DAC_OUT1, 0xa000)
|
||||
#define RT274_DAC1R_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_DAC_OUT1, 0x9000)
|
||||
#define RT274_ADCL_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_ADC_IN1, 0x6000)
|
||||
#define RT274_ADCR_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_ADC_IN1, 0x5000)
|
||||
#define RT274_MIC_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_MIC, 0x7000)
|
||||
#define RT274_LOUTL_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_LINE3, 0xa000)
|
||||
#define RT274_LOUTR_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_LINE3, 0x9000)
|
||||
#define RT274_HPOL_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_HP_OUT, 0xa000)
|
||||
#define RT274_HPOR_GAIN\
|
||||
VERB_CMD(AC_VERB_SET_AMP_GAIN_MUTE, RT274_HP_OUT, 0x9000)
|
||||
#define RT274_DAC_FORMAT\
|
||||
VERB_CMD(AC_VERB_SET_STREAM_FORMAT, RT274_DAC_OUT0, 0)
|
||||
#define RT274_ADC_FORMAT\
|
||||
VERB_CMD(AC_VERB_SET_STREAM_FORMAT, RT274_ADC_IN1, 0)
|
||||
#define RT274_COEF_INDEX\
|
||||
VERB_CMD(AC_VERB_SET_COEF_INDEX, RT274_VENDOR_REGISTERS, 0)
|
||||
#define RT274_PROC_COEF\
|
||||
VERB_CMD(AC_VERB_SET_PROC_COEF, RT274_VENDOR_REGISTERS, 0)
|
||||
#define RT274_UNSOLICITED_INLINE_CMD\
|
||||
VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT274_INLINE_CMD, 0)
|
||||
#define RT274_UNSOLICITED_HP_OUT\
|
||||
VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT274_HP_OUT, 0)
|
||||
#define RT274_UNSOLICITED_MIC\
|
||||
VERB_CMD(AC_VERB_SET_UNSOLICITED_ENABLE, RT274_MIC, 0)
|
||||
#define RT274_COEF58_INDEX\
|
||||
VERB_CMD(AC_VERB_SET_COEF_INDEX, 0x58, 0)
|
||||
#define RT274_COEF58_COEF\
|
||||
VERB_CMD(AC_VERB_SET_PROC_COEF, 0x58, 0)
|
||||
#define RT274_COEF5b_INDEX\
|
||||
VERB_CMD(AC_VERB_SET_COEF_INDEX, 0x5b, 0)
|
||||
#define RT274_COEF5b_COEF\
|
||||
VERB_CMD(AC_VERB_SET_PROC_COEF, 0x5b, 0)
|
||||
#define RT274_SET_STREAMID_DAC0\
|
||||
VERB_CMD(AC_VERB_SET_CHANNEL_STREAMID, RT274_DAC_OUT0, 0)
|
||||
#define RT274_SET_STREAMID_DAC1\
|
||||
VERB_CMD(AC_VERB_SET_CHANNEL_STREAMID, RT274_DAC_OUT1, 0)
|
||||
#define RT274_SET_STREAMID_ADC1\
|
||||
VERB_CMD(AC_VERB_SET_CHANNEL_STREAMID, RT274_ADC_IN1, 0)
|
||||
#define RT274_SET_STREAMID_ADC2\
|
||||
VERB_CMD(AC_VERB_SET_CHANNEL_STREAMID, RT274_ADC_IN2, 0)
|
||||
|
||||
/* Index registers */
|
||||
#define RT274_EAPD_GPIO_IRQ_CTRL 0x10
|
||||
#define RT274_PAD_CTRL12 0x35
|
||||
#define RT274_I2S_CTRL1 0x63
|
||||
#define RT274_I2S_CTRL2 0x64
|
||||
#define RT274_MCLK_CTRL 0x71
|
||||
#define RT274_CLK_CTRL 0x72
|
||||
#define RT274_PLL2_CTRL 0x7b
|
||||
|
||||
|
||||
/* EAPD GPIO IRQ control (Index 0x10) */
|
||||
#define RT274_IRQ_DIS (0x0 << 13)
|
||||
#define RT274_IRQ_EN (0x1 << 13)
|
||||
#define RT274_IRQ_CLR (0x1 << 12)
|
||||
#define RT274_GPI2_SEL_MASK (0x3 << 7)
|
||||
#define RT274_GPI2_SEL_GPIO2 (0x0 << 7)
|
||||
#define RT274_GPI2_SEL_I2S (0x1 << 7)
|
||||
#define RT274_GPI2_SEL_DMIC_CLK (0x2 << 7)
|
||||
#define RT274_GPI2_SEL_CBJ (0x3 << 7)
|
||||
|
||||
/* Front I2S_Interface control 1 (Index 0x63) */
|
||||
#define RT274_I2S_MODE_MASK (0x1 << 11)
|
||||
#define RT274_I2S_MODE_S (0x0 << 11)
|
||||
#define RT274_I2S_MODE_M (0x1 << 11)
|
||||
#define RT274_TDM_DIS (0x0 << 10)
|
||||
#define RT274_TDM_EN (0x1 << 10)
|
||||
#define RT274_TDM_CH_NUM (0x1 << 7)
|
||||
#define RT274_TDM_2CH (0x0 << 7)
|
||||
#define RT274_TDM_4CH (0x1 << 7)
|
||||
#define RT274_I2S_FMT_MASK (0x3 << 8)
|
||||
#define RT274_I2S_FMT_I2S (0x0 << 8)
|
||||
#define RT274_I2S_FMT_LJ (0x1 << 8)
|
||||
#define RT274_I2S_FMT_PCMA (0x2 << 8)
|
||||
#define RT274_I2S_FMT_PCMB (0x3 << 8)
|
||||
|
||||
/* MCLK clock domain control (Index 0x71) */
|
||||
#define RT274_MCLK_MODE_MASK (0x1 << 14)
|
||||
#define RT274_MCLK_MODE_DIS (0x0 << 14)
|
||||
#define RT274_MCLK_MODE_EN (0x1 << 14)
|
||||
|
||||
/* Clock control (Index 0x72) */
|
||||
#define RT274_CLK_SRC_MASK (0x7 << 3)
|
||||
#define RT274_CLK_SRC_MCLK (0x0 << 3)
|
||||
#define RT274_CLK_SRC_PLL2 (0x3 << 3)
|
||||
|
||||
/* PLL2 control (Index 0x7b) */
|
||||
#define RT274_PLL2_SRC_MASK (0x1 << 13)
|
||||
#define RT274_PLL2_SRC_MCLK (0x0 << 13)
|
||||
#define RT274_PLL2_SRC_BCLK (0x1 << 13)
|
||||
|
||||
/* HP-OUT (0x21) */
|
||||
#define RT274_M_HP_MUX_SFT 14
|
||||
#define RT274_HP_SEL_MASK 0x1
|
||||
#define RT274_HP_SEL_SFT 0
|
||||
#define RT274_HP_SEL_F 0
|
||||
#define RT274_HP_SEL_S 1
|
||||
|
||||
/* ADC (0x22) (0x23) */
|
||||
#define RT274_ADC_SEL_MASK 0x7
|
||||
#define RT274_ADC_SEL_SFT 0
|
||||
#define RT274_ADC_SEL_MIC 0
|
||||
#define RT274_ADC_SEL_LINE1 1
|
||||
#define RT274_ADC_SEL_LINE2 2
|
||||
#define RT274_ADC_SEL_DMIC 3
|
||||
|
||||
#define RT274_SCLK_S_MCLK 0
|
||||
#define RT274_SCLK_S_PLL1 1
|
||||
#define RT274_SCLK_S_PLL2 2
|
||||
|
||||
#define RT274_PLL2_S_MCLK 0
|
||||
#define RT274_PLL2_S_BCLK 1
|
||||
|
||||
enum {
|
||||
RT274_AIF1,
|
||||
RT274_AIFS,
|
||||
};
|
||||
|
||||
#endif /* __RT274_H__ */
|
||||
|
|
@ -1046,7 +1046,7 @@ static struct snd_soc_dai_driver rt286_dai[] = {
|
|||
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt286 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt286 = {
|
||||
.probe = rt286_probe,
|
||||
.remove = rt286_remove,
|
||||
.suspend = rt286_suspend,
|
||||
|
|
|
@ -1113,7 +1113,7 @@ static struct snd_soc_dai_driver rt298_dai[] = {
|
|||
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt298 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt298 = {
|
||||
.probe = rt298_probe,
|
||||
.remove = rt298_remove,
|
||||
.suspend = rt298_suspend,
|
||||
|
|
|
@ -260,7 +260,7 @@ static int rt5514_spi_pcm_probe(struct snd_soc_platform *platform)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_platform_driver rt5514_spi_platform = {
|
||||
static const struct snd_soc_platform_driver rt5514_spi_platform = {
|
||||
.probe = rt5514_spi_pcm_probe,
|
||||
.ops = &rt5514_spi_pcm_ops,
|
||||
};
|
||||
|
|
|
@ -1042,7 +1042,7 @@ struct snd_soc_dai_driver rt5514_dai[] = {
|
|||
}
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5514 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5514 = {
|
||||
.probe = rt5514_probe,
|
||||
.idle_bias_off = true,
|
||||
.set_bias_level = rt5514_set_bias_level,
|
||||
|
|
|
@ -1294,7 +1294,7 @@ static struct snd_soc_dai_driver rt5616_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5616 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5616 = {
|
||||
.probe = rt5616_probe,
|
||||
.suspend = rt5616_suspend,
|
||||
.resume = rt5616_resume,
|
||||
|
|
|
@ -1653,7 +1653,7 @@ static struct snd_soc_dai_driver rt5631_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5631 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5631 = {
|
||||
.probe = rt5631_probe,
|
||||
.set_bias_level = rt5631_set_bias_level,
|
||||
.suspend_bias_off = true,
|
||||
|
|
|
@ -2259,7 +2259,7 @@ static struct snd_soc_dai_driver rt5640_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5640 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5640 = {
|
||||
.probe = rt5640_probe,
|
||||
.remove = rt5640_remove,
|
||||
.suspend = rt5640_suspend,
|
||||
|
|
|
@ -3473,7 +3473,7 @@ static struct snd_soc_dai_driver rt5645_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5645 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5645 = {
|
||||
.probe = rt5645_probe,
|
||||
.remove = rt5645_remove,
|
||||
.suspend = rt5645_suspend,
|
||||
|
|
|
@ -1664,7 +1664,7 @@ static struct snd_soc_dai_driver rt5651_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5651 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5651 = {
|
||||
.probe = rt5651_probe,
|
||||
.suspend = rt5651_suspend,
|
||||
.resume = rt5651_resume,
|
||||
|
|
|
@ -3730,7 +3730,7 @@ static struct snd_soc_dai_driver rt5659_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5659 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5659 = {
|
||||
.probe = rt5659_probe,
|
||||
.remove = rt5659_remove,
|
||||
.suspend = rt5659_suspend,
|
||||
|
|
|
@ -1197,7 +1197,7 @@ static struct snd_soc_dai_driver rt5660_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5660 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5660 = {
|
||||
.probe = rt5660_probe,
|
||||
.remove = rt5660_remove,
|
||||
.suspend = rt5660_suspend,
|
||||
|
|
|
@ -2891,7 +2891,7 @@ static struct snd_soc_dai_driver rt5663_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5663 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5663 = {
|
||||
.probe = rt5663_probe,
|
||||
.remove = rt5663_remove,
|
||||
.suspend = rt5663_suspend,
|
||||
|
|
|
@ -4562,7 +4562,7 @@ static struct snd_soc_dai_driver rt5665_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5665 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5665 = {
|
||||
.probe = rt5665_probe,
|
||||
.remove = rt5665_remove,
|
||||
.suspend = rt5665_suspend,
|
||||
|
|
|
@ -2765,7 +2765,7 @@ static struct snd_soc_dai_driver rt5670_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5670 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5670 = {
|
||||
.probe = rt5670_probe,
|
||||
.remove = rt5670_remove,
|
||||
.suspend = rt5670_suspend,
|
||||
|
|
|
@ -4968,7 +4968,7 @@ static struct snd_soc_dai_driver rt5677_dai[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_rt5677 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_rt5677 = {
|
||||
.probe = rt5677_probe,
|
||||
.remove = rt5677_remove,
|
||||
.suspend = rt5677_suspend,
|
||||
|
|
|
@ -1248,7 +1248,7 @@ static int sgtl5000_remove(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver sgtl5000_driver = {
|
||||
static const struct snd_soc_codec_driver sgtl5000_driver = {
|
||||
.probe = sgtl5000_probe,
|
||||
.remove = sgtl5000_remove,
|
||||
.set_bias_level = sgtl5000_set_bias_level,
|
||||
|
|
|
@ -236,7 +236,7 @@ static struct regmap *si476x_get_regmap(struct device *dev)
|
|||
return dev_get_regmap(dev->parent, NULL);
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_si476x = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_si476x = {
|
||||
.get_regmap = si476x_get_regmap,
|
||||
.component_driver = {
|
||||
.dapm_widgets = si476x_dapm_widgets,
|
||||
|
|
|
@ -429,7 +429,7 @@ static int sirf_audio_codec_remove(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_device_sirf_audio_codec = {
|
||||
static const struct snd_soc_codec_driver soc_codec_device_sirf_audio_codec = {
|
||||
.probe = sirf_audio_codec_probe,
|
||||
.remove = sirf_audio_codec_remove,
|
||||
.dapm_widgets = sirf_audio_codec_dapm_widgets,
|
||||
|
|
|
@ -883,7 +883,7 @@ static int sn95031_codec_probe(struct snd_soc_codec *codec)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver sn95031_codec = {
|
||||
static const struct snd_soc_codec_driver sn95031_codec = {
|
||||
.probe = sn95031_codec_probe,
|
||||
.set_bias_level = sn95031_set_vaud_bias,
|
||||
.idle_bias_off = true,
|
||||
|
|
|
@ -37,7 +37,7 @@ static const struct snd_soc_dapm_route dir_routes[] = {
|
|||
SNDRV_PCM_FMTBIT_S24_LE | \
|
||||
SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_spdif_dir = {
|
||||
static const struct snd_soc_codec_driver soc_codec_spdif_dir = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = dir_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(dir_widgets),
|
||||
|
|
|
@ -37,7 +37,7 @@ static const struct snd_soc_dapm_route dit_routes[] = {
|
|||
{ "spdif-out", NULL, "Playback" },
|
||||
};
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_spdif_dit = {
|
||||
static const struct snd_soc_codec_driver soc_codec_spdif_dit = {
|
||||
.component_driver = {
|
||||
.dapm_widgets = dit_widgets,
|
||||
.num_dapm_widgets = ARRAY_SIZE(dit_widgets),
|
||||
|
|
|
@ -710,7 +710,7 @@ static int ssm2518_set_sysclk(struct snd_soc_codec *codec, int clk_id,
|
|||
SSM2518_POWER1_NO_BCLK, val);
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver ssm2518_codec_driver = {
|
||||
static const struct snd_soc_codec_driver ssm2518_codec_driver = {
|
||||
.set_bias_level = ssm2518_set_bias_level,
|
||||
.set_sysclk = ssm2518_set_sysclk,
|
||||
.idle_bias_off = true,
|
||||
|
|
|
@ -591,7 +591,7 @@ static int ssm260x_codec_probe(struct snd_soc_codec *codec)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static struct snd_soc_codec_driver soc_codec_dev_ssm2602 = {
|
||||
static const struct snd_soc_codec_driver soc_codec_dev_ssm2602 = {
|
||||
.probe = ssm260x_codec_probe,
|
||||
.resume = ssm2602_resume,
|
||||
.set_bias_level = ssm2602_set_bias_level,
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue