Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  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};