arm64: dts: uniphier: add sound node
authorKatsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Tue, 13 Feb 2018 13:01:54 +0000 (22:01 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 15 Mar 2018 14:17:39 +0000 (23:17 +0900)
This patch adds audio controller, codec and simple card node of
UniPhier AIO sound system for LD11/20 SoCs.

Signed-off-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi

index 2452b2243f42465476b65891d6a0df6bc5ffda37..264aae10734b90c6b314555b74eac5fb28d87078 100644 (file)
                device_type = "memory";
                reg = <0 0x80000000 0 0x40000000>;
        };
+
+       sound {
+               compatible = "audio-graph-card";
+               label = "UniPhier LD11";
+               widgets = "Headphone", "Headphone Jack";
+               dais = <&i2s_port2
+                       &i2s_port4
+                       &spdif_port0>;
+       };
+
+       spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+
+               port@0 {
+                       spdif_tx: endpoint {
+                               remote-endpoint = <&spdif_hiecout1>;
+                       };
+               };
+       };
 };
 
 &serial0 {
        status = "okay";
 };
 
+&spdif_hiecout1 {
+       remote-endpoint = <&spdif_tx>;
+};
+
 &i2c0 {
        status = "okay";
 
index cd7c2d0a1f64b366c3afdcd4c850453cb389dca8..7e568f5b5a80fec742ff642f535f9a5a80fd3aba 100644 (file)
                                                     <21 217 3>;
                };
 
+               audio@56000000 {
+                       compatible = "socionext,uniphier-ld11-aio";
+                       reg = <0x56000000 0x80000>;
+                       interrupts = <0 144 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_aout1>,
+                                   <&pinctrl_aoutiec1>;
+                       clock-names = "aio";
+                       clocks = <&sys_clk 40>;
+                       reset-names = "aio";
+                       resets = <&sys_rst 40>;
+                       #sound-dai-cells = <1>;
+
+                       i2s_port0: port@0 {
+                               i2s_hdmi: endpoint {
+                               };
+                       };
+
+                       i2s_port1: port@1 {
+                               i2s_pcmin2: endpoint {
+                               };
+                       };
+
+                       i2s_port2: port@2 {
+                               i2s_line: endpoint {
+                                       dai-format = "i2s";
+                                       remote-endpoint = <&evea_line>;
+                               };
+                       };
+
+                       i2s_port3: port@3 {
+                               i2s_hpcmout1: endpoint {
+                               };
+                       };
+
+                       i2s_port4: port@4 {
+                               i2s_hp: endpoint {
+                                       dai-format = "i2s";
+                                       remote-endpoint = <&evea_hp>;
+                               };
+                       };
+
+                       spdif_port0: port@5 {
+                               spdif_hiecout1: endpoint {
+                               };
+                       };
+
+                       src_port0: port@6 {
+                               i2s_epcmout2: endpoint {
+                               };
+                       };
+
+                       src_port1: port@7 {
+                               i2s_epcmout3: endpoint {
+                               };
+                       };
+
+                       comp_spdif_port0: port@8 {
+                               comp_spdif_hiecout1: endpoint {
+                               };
+                       };
+               };
+
+               codec@57900000 {
+                       compatible = "socionext,uniphier-evea";
+                       reg = <0x57900000 0x1000>;
+                       clock-names = "evea", "exiv";
+                       clocks = <&sys_clk 41>, <&sys_clk 42>;
+                       reset-names = "evea", "exiv", "adamv";
+                       resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
+                       #sound-dai-cells = <1>;
+
+                       port@0 {
+                               evea_line: endpoint {
+                                       remote-endpoint = <&i2s_line>;
+                               };
+                       };
+
+                       port@1 {
+                               evea_hp: endpoint {
+                                       remote-endpoint = <&i2s_hp>;
+                               };
+                       };
+               };
+
                adamv@57920000 {
                        compatible = "socionext,uniphier-ld11-adamv",
                                     "simple-mfd", "syscon";
 };
 
 #include "uniphier-pinctrl.dtsi"
+
+&pinctrl_aoutiec1 {
+       drive-strength = <4>;   /* default: 4mA */
+
+       ao1arc {
+               pins = "AO1ARC";
+               drive-strength = <8>;   /* 8mA */
+       };
+};
index fc2bc9d75d35e6f410a6f012b461cdcac03d6282..93ae4c9097833693b8629f0f0f911570969fafa8 100644 (file)
                device_type = "memory";
                reg = <0 0x80000000 0 0xc0000000>;
        };
+
+       sound {
+               compatible = "audio-graph-card";
+               label = "UniPhier LD20";
+               widgets = "Headphone", "Headphone Jack";
+               dais = <&i2s_port2
+                       &i2s_port4
+                       &spdif_port0>;
+       };
+
+       spdif-out {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+
+               port@0 {
+                       spdif_tx: endpoint {
+                               remote-endpoint = <&spdif_hiecout1>;
+                       };
+               };
+       };
 };
 
 &serial0 {
        status = "okay";
 };
 
+&spdif_hiecout1 {
+       remote-endpoint = <&spdif_tx>;
+};
+
 &i2c0 {
        status = "okay";
 };
index 8a3276ba2da1addb36a1362734ce198c3b4d6daf..b17f2ec2e001ff44d13cfac50e6fa277d409079d 100644 (file)
                                                     <21 217 3>;
                };
 
+               audio@56000000 {
+                       compatible = "socionext,uniphier-ld20-aio";
+                       reg = <0x56000000 0x80000>;
+                       interrupts = <0 144 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_aout1>,
+                                   <&pinctrl_aoutiec1>;
+                       clock-names = "aio";
+                       clocks = <&sys_clk 40>;
+                       reset-names = "aio";
+                       resets = <&sys_rst 40>;
+                       #sound-dai-cells = <1>;
+
+                       i2s_port0: port@0 {
+                               i2s_hdmi: endpoint {
+                               };
+                       };
+
+                       i2s_port1: port@1 {
+                               i2s_pcmin2: endpoint {
+                               };
+                       };
+
+                       i2s_port2: port@2 {
+                               i2s_line: endpoint {
+                                       dai-format = "i2s";
+                                       remote-endpoint = <&evea_line>;
+                               };
+                       };
+
+                       i2s_port3: port@3 {
+                               i2s_hpcmout1: endpoint {
+                               };
+                       };
+
+                       i2s_port4: port@4 {
+                               i2s_hp: endpoint {
+                                       dai-format = "i2s";
+                                       remote-endpoint = <&evea_hp>;
+                               };
+                       };
+
+                       spdif_port0: port@5 {
+                               spdif_hiecout1: endpoint {
+                               };
+                       };
+
+                       src_port0: port@6 {
+                               i2s_epcmout2: endpoint {
+                               };
+                       };
+
+                       src_port1: port@7 {
+                               i2s_epcmout3: endpoint {
+                               };
+                       };
+
+                       comp_spdif_port0: port@8 {
+                               comp_spdif_hiecout1: endpoint {
+                               };
+                       };
+               };
+
+               codec@57900000 {
+                       compatible = "socionext,uniphier-evea";
+                       reg = <0x57900000 0x1000>;
+                       clock-names = "evea", "exiv";
+                       clocks = <&sys_clk 41>, <&sys_clk 42>;
+                       reset-names = "evea", "exiv", "adamv";
+                       resets = <&sys_rst 41>, <&sys_rst 42>, <&adamv_rst 0>;
+                       #sound-dai-cells = <1>;
+
+                       port@0 {
+                               evea_line: endpoint {
+                                       remote-endpoint = <&i2s_line>;
+                               };
+                       };
+
+                       port@1 {
+                               evea_hp: endpoint {
+                                       remote-endpoint = <&i2s_hp>;
+                               };
+                       };
+               };
+
                adamv@57920000 {
                        compatible = "socionext,uniphier-ld20-adamv",
                                     "simple-mfd", "syscon";
 };
 
 #include "uniphier-pinctrl.dtsi"
+
+&pinctrl_aout1 {
+       drive-strength = <4>;   /* default: 3.5mA */
+
+       ao1dacck {
+               pins = "AO1DACCK";
+               drive-strength = <5>;   /* 5mA */
+       };
+};
+
+&pinctrl_aoutiec1 {
+       drive-strength = <4>;   /* default: 3.5mA */
+
+       ao1arc {
+               pins = "AO1ARC";
+               drive-strength = <11>;  /* 11mA */
+       };
+};