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