Commit e5f89dbd authored by Enric Balletbo i Serra's avatar Enric Balletbo i Serra Committed by Tony Lindgren

ARM: dts: am335x-sl50: use audio-graph-card for sound

audio-graph-card is recommended for audio bindings. Let's change to it and
improve the support by adding the Amplifier configuration and the clock
enable control.
Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 9843532d
...@@ -108,11 +108,20 @@ clocks { ...@@ -108,11 +108,20 @@ clocks {
#size-cells = <0>; #size-cells = <0>;
/* audio external oscillator */ /* audio external oscillator */
tlv320aic3x_mclk: oscillator@0 { audio_mclk_fixed: oscillator@0 {
compatible = "fixed-clock"; compatible = "fixed-clock";
#clock-cells = <0>; #clock-cells = <0>;
clock-frequency = <24576000>; /* 24.576MHz */ clock-frequency = <24576000>; /* 24.576MHz */
}; };
audio_mclk: audio_mclk_gate@0 {
compatible = "gpio-gate-clock";
#clock-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&audio_mclk_pins>;
clocks = <&audio_mclk_fixed>;
enable-gpios = <&gpio1 27 0>;
};
}; };
panel: lcd_panel { panel: lcd_panel {
...@@ -155,19 +164,29 @@ timing0: 960x128 { ...@@ -155,19 +164,29 @@ timing0: 960x128 {
}; };
sound { sound {
compatible = "ti,da830-evm-audio"; compatible = "audio-graph-card";
ti,model = "AM335x-SL50"; label = "sound-card";
ti,audio-codec = <&audio_codec>; pinctrl-names = "default";
ti,mcasp-controller = <&mcasp0>; pinctrl-0 = <&audio_pa_pins>;
clocks = <&tlv320aic3x_mclk>; widgets = "Headphone", "Headphone Jack",
clock-names = "mclk"; "Speaker", "Speaker External",
"Line", "Line In",
"Microphone", "Microphone Jack";
ti,audio-routing = routing = "Headphone Jack", "HPLOUT",
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT", "Headphone Jack", "HPROUT",
"Amplifier", "MONO_LOUT",
"Speaker External", "Amplifier",
"LINE1R", "Line In", "LINE1R", "Line In",
"LINE1L", "Line In"; "LINE1L", "Line In",
"MIC3L", "Microphone Jack",
"MIC3R", "Microphone Jack",
"Microphone Jack", "Mic Bias";
dais = <&cpu_port>;
pa-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
}; };
emmc_pwrseq: pwrseq@0 { emmc_pwrseq: pwrseq@0 {
...@@ -197,6 +216,28 @@ &am33xx_pinmux { ...@@ -197,6 +216,28 @@ &am33xx_pinmux {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&lwb_pins>; pinctrl-0 = <&lwb_pins>;
audio_pins: pinmux_audio_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */
AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2 */
>;
};
audio_pa_pins: pinmux_audio_pa_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* SoundPA_en - mcasp0_aclkr.gpio3_18 */
>;
};
audio_mclk_pins: pinmux_audio_mclk_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */
>;
};
backlight0_pins: pinmux_backlight0_pins { backlight0_pins: pinmux_backlight0_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE7) /* gpmc_wen.gpio2_4 */ AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE7) /* gpmc_wen.gpio2_4 */
...@@ -361,16 +402,6 @@ AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ ...@@ -361,16 +402,6 @@ AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
>; >;
}; };
audio_pins: pinmux_audio_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */
AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2 */
>;
};
ehrpwm1_pins: pinmux_ehrpwm1a_pins { ehrpwm1_pins: pinmux_ehrpwm1a_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE6) /* gpmc_a2.ehrpwm1a */ AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE6) /* gpmc_a2.ehrpwm1a */
...@@ -396,7 +427,6 @@ AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_CS1 (FPGA_FLASH_NCS) - ...@@ -396,7 +427,6 @@ AM33XX_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_CS1 (FPGA_FLASH_NCS) -
lwb_pins: pinmux_lwb_pins { lwb_pins: pinmux_lwb_pins {
pinctrl-single,pins = < pinctrl-single,pins = <
AM33XX_IOPAD(0x9a4, PIN_OUTPUT | MUX_MODE7) /* SoundPA_en - mcasp0_fsr.gpio3_19 */
AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE7) /* nKbdInt - gpmc_ad12.gpio1_12 */ AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE7) /* nKbdInt - gpmc_ad12.gpio1_12 */
AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE7) /* nKbdReset - gpmc_ad13.gpio1_13 */ AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE7) /* nKbdReset - gpmc_ad13.gpio1_13 */
AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* USB1_enPower - gpmc_a1.gpio1_17 */ AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* USB1_enPower - gpmc_a1.gpio1_17 */
...@@ -451,12 +481,21 @@ &i2c2 { ...@@ -451,12 +481,21 @@ &i2c2 {
audio_codec: tlv320aic3106@1b { audio_codec: tlv320aic3106@1b {
status = "okay"; status = "okay";
compatible = "ti,tlv320aic3106"; compatible = "ti,tlv320aic3106";
#sound-dai-cells = <0>;
reg = <0x1b>; reg = <0x1b>;
ai3x-micbias-vg = <2>; /* 2.5V */
AVDD-supply = <&ldo4_reg>; AVDD-supply = <&ldo4_reg>;
IOVDD-supply = <&ldo4_reg>; IOVDD-supply = <&ldo4_reg>;
DRVDD-supply = <&ldo4_reg>; DRVDD-supply = <&ldo4_reg>;
DVDD-supply = <&ldo3_reg>; DVDD-supply = <&ldo3_reg>;
codec_port: port {
codec_endpoint: endpoint {
remote-endpoint = <&cpu_endpoint>;
clocks = <&audio_mclk>;
};
};
}; };
/* Ambient Light Sensor */ /* Ambient Light Sensor */
...@@ -522,17 +561,27 @@ &mcasp0 { ...@@ -522,17 +561,27 @@ &mcasp0 {
status = "okay"; status = "okay";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&audio_pins>; pinctrl-0 = <&audio_pins>;
#sound-dai-cells = <0>;
op-mode = <0>; /* MCASP_ISS_MODE */ op-mode = <0>; /* MCASP_ISS_MODE */
tdm-slots = <2>; tdm-slots = <2>;
serial-dir = < /* 4 serializers */
2 0 1 0 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0 0 0 0 0 0 1 2
0 0 0 0
0 0 0 0
>; >;
tx-num-evt = <1>; tx-num-evt = <32>;
rx-num-evt = <1>; rx-num-evt = <32>;
cpu_port: port {
cpu_endpoint: endpoint {
remote-endpoint = <&codec_endpoint>;
dai-format = "dsp_b";
bitclock-master = <&codec_port>;
frame-master = <&codec_port>;
bitclock-inversion;
clocks = <&audio_mclk>;
};
};
}; };
&uart0 { &uart0 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment