Merge tag 'riscv/for-v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / pxa300-raumfeld-speaker-one.dts
1 // SPDX-License-Identifier: GPL-2.0
2
3 /dts-v1/;
4
5 #include "pxa300-raumfeld-common.dtsi"
6
7 / {
8         model = "Raumfeld Speaker One (PXA3xx)";
9         compatible = "raumfeld,raumfeld-speaker-one-pxa303", "marvell,pxa300";
10
11         wm8782: wm8782 {
12                 compatible = "wm8782";
13                 #sound-dai-cells = <0>;
14                 Vdd-supply = <&reg_3v3>;
15                 Vdda-supply = <&reg_va_5v0>;
16         };
17
18         xo_11mhz: oscillator-11mhz {
19                 compatible = "fixed-clock";
20                 #clock-cells = <0>;
21                 clock-frequency = <11289600>;
22                 clock-accuracy = <100>;
23         };
24
25         xo_audio: clock-gate {
26                 compatible = "gpio-gate-clock";
27                 pinctrlnames = "default";
28                 pinctrl-0 = <&xo_audio_pins>;
29                 clocks = <&xo_11mhz>;
30                 #clock-cells = <0>;
31                 enable-gpios = <&gpio 111 GPIO_ACTIVE_HIGH>;
32         };
33
34         reg_va_30v0: regulator-va-30v0 {
35                 compatible = "regulator-fixed";
36                 regulator-name = "va-30v0-fixed-supply";
37                 regulator-min-microvolt = <30000000>;
38                 regulator-max-microvolt = <30000000>;
39         };
40
41         sound {
42                 compatible = "simple-audio-card";
43                 simple-audio-card,name = "Raumfeld Speaker";
44                 #address-cells = <1>;
45                 #size-cells = <0>;
46
47                 simple-audio-card,dai-link@0 {
48                         reg = <0>;
49                         format = "i2s";
50                         bitclock-master = <&dailink_master_analog_out>;
51                         frame-master = <&dailink_master_analog_out>;
52                         mclk-fs = <256>;
53
54                         dailink_master_analog_out: cpu {
55                                 sound-dai = <&ssp_dai0>;
56                         };
57
58                         codec {
59                                 sound-dai = <&sta320>;
60                         };
61                 };
62
63                 simple-audio-card,dai-link@1 {
64                         reg = <1>;
65                         format = "i2s";
66                         bitclock-master = <&dailink_master_analog_in>;
67                         frame-master = <&dailink_master_analog_in>;
68                         mclk-fs = <256>;
69
70                         dailink_master_analog_in: cpu {
71                                 sound-dai = <&ssp_dai0>;
72                         };
73
74                         codec {
75                                 sound-dai = <&wm8782>;
76                         };
77                 };
78         };
79 };
80
81 &ssp_dai0 {
82         clocks = <&xo_audio>;
83 };
84
85 &spi {
86         dac@2 {
87                 compatible = "ti,dac7512";
88                 reg = <2>;
89                 spi-max-frequency = <1000000>;
90                 vcc-supply = <&reg_3v3>;
91         };
92 };
93
94 &rotary {
95         status = "okay";
96 };
97
98 &pxai2c1 {
99         sta320: codec@1a {
100                 compatible = "st,sta32x";
101                 reg = <0x1a>;
102                 pinctrl-names = "default";
103                 pinctrl-0 = <&sta320_pins>;
104                 clocks = <&xo_audio>;
105                 clock-names = "xti";
106                 reset-gpios = <&gpio 120 GPIO_ACTIVE_HIGH>;
107                 Vdda-supply = <&reg_3v3>;
108                 Vdd3-supply = <&reg_3v3>;
109                 Vcc-supply = <&reg_va_30v0>;
110                 #sound-dai-cells = <0>;
111                 st,thermal-warning-adjustment;
112                 st,thermal-warning-recovery;
113                 st,fault-detect-recovery;
114                 st,drop-compensation-ns = <80>;
115                 st,max-power-use-mpcc;
116                 st,invalid-input-detect-mute;
117                 /* 2 (half-bridge) and 1 (full-bridge) on-board power */
118                 st,output-conf = /bits/ 8 <0x1>;
119                 st,ch1-output-mapping = /bits/ 8 <0>;
120                 st,ch2-output-mapping = /bits/ 8 <1>;
121                 st,ch3-output-mapping = /bits/ 8 <2>;
122                 st,needs_esd_watchdog;
123         };
124 };
125
126 &pinctrl {
127         xo_audio_pins: xo-audio-pins {
128                 pinctrl-single,pins = <
129                         MFP_PIN_PXA300(111) MFP_AF0     /* ENABLE */
130                 >;
131                 pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_PULL_LOW);
132         };
133
134         sta320_pins: sta320-pins {
135                 pinctrl-single,pins = <
136                         MFP_PIN_PXA300(120) MFP_AF0     /* CODEC_RESET  */
137                 >;
138                 pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_FLOAT);
139         };
140 };