reg = <0x31>;
status = "okay";
reset_pin = <&gpio_ao GPIOAO_9 0>;
- enable_pin = <&gpio GPIOC_4 0>;
no_mclk;
};
*/
samesource_sel = <3>;
+ /*enable default mclk(12.288M), before extern codec start*/
+ start_clk_enable = <1>;
+
+ /*tdm clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout>;/* bob remove &spdifin*/
+ /*spdif clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
spdifb: spdif@1 {
reg = <0x31>;
status = "okay";
reset_pin = <&gpio_ao GPIOAO_9 0>;
- enable_pin = <&gpio GPIOC_4 0>;
no_mclk;
};
*/
samesource_sel = <3>;
+ /*enable default mclk(12.288M), before extern codec start*/
+ start_clk_enable = <1>;
+
+ /*tdm clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout>;/* bob remove &spdifin*/
+ /*spdif clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
spdifb: spdif@1 {
reg = <0x31>;
status = "okay";
reset_pin = <&gpio_ao GPIOAO_9 0>;
- enable_pin = <&gpio GPIOC_4 0>;
no_mclk;
};
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout>;/* bob remove &spdifin*/
+ /*spdif clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
spdifb: spdif@1 {
reg = <0x31>;
status = "okay";
reset_pin = <&gpio_ao GPIOAO_9 0>;
- enable_pin = <&gpio GPIOC_4 0>;
no_mclk;
};
*/
samesource_sel = <3>;
+ /*enable default mclk(12.288M), before extern codec start*/
+ start_clk_enable = <1>;
+
+ /*tdm clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
pinctrl-names = "spdif_pins";
pinctrl-0 = <&spdifout>;/* bob remove &spdifin*/
+ /*spdif clk tuning enable*/
+ clk_tuning_enable = <1>;
+
status = "okay";
};
spdifb: spdif@1 {
unsigned char Ch2_vol;
unsigned char master_vol;
unsigned char mute_val;
- unsigned int inited;
+
#ifdef CONFIG_HAS_EARLYSUSPEND
struct early_suspend early_suspend;
#endif
return 0;
}
-static int ad82584f_init(struct snd_soc_codec *codec);
static int ad82584f_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
/*unmute,default power-on is mute.*/
snd_soc_write(codec, 0x02, 0x00);
-#else
- struct snd_soc_codec *codec = dai->codec;
- struct ad82584f_priv *ad82584f = snd_soc_codec_get_drvdata(codec);
-
- if (ad82584f->inited == 0) {
- ad82584f_init(codec);
- ad82584f->inited = 1;
- }
#endif
return 0;
struct ad82584f_priv *ad82584f = snd_soc_codec_get_drvdata(codec);
struct ad82584f_platform_data *pdata = ad82584f->pdata;
int ret = 0;
+
if (pdata->reset_pin < 0)
return 0;
return -ENOMEM;
}
ad82584f->pdata = pdata;
- ad82584f->inited = 0;
+
ad82584f_parse_dt(ad82584f, i2c->dev.of_node);
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_ad82584f,