0001 // SPDX-License-Identifier: GPL-2.0
0002
0003 /dts-v1/;
0004
0005 #include "pxa300-raumfeld-common.dtsi"
0006
0007 / {
0008 model = "Raumfeld Speaker One (PXA3xx)";
0009 compatible = "raumfeld,raumfeld-speaker-one-pxa303", "marvell,pxa300";
0010
0011 wm8782: wm8782 {
0012 compatible = "wm8782";
0013 #sound-dai-cells = <0>;
0014 Vdd-supply = <®_3v3>;
0015 Vdda-supply = <®_va_5v0>;
0016 };
0017
0018 xo_11mhz: oscillator-11mhz {
0019 compatible = "fixed-clock";
0020 #clock-cells = <0>;
0021 clock-frequency = <11289600>;
0022 clock-accuracy = <100>;
0023 };
0024
0025 xo_audio: clock-gate {
0026 compatible = "gpio-gate-clock";
0027 pinctrlnames = "default";
0028 pinctrl-0 = <&xo_audio_pins>;
0029 clocks = <&xo_11mhz>;
0030 #clock-cells = <0>;
0031 enable-gpios = <&gpio 111 GPIO_ACTIVE_HIGH>;
0032 };
0033
0034 reg_va_30v0: regulator-va-30v0 {
0035 compatible = "regulator-fixed";
0036 regulator-name = "va-30v0-fixed-supply";
0037 regulator-min-microvolt = <30000000>;
0038 regulator-max-microvolt = <30000000>;
0039 };
0040
0041 sound {
0042 compatible = "simple-audio-card";
0043 simple-audio-card,name = "Raumfeld Speaker";
0044 #address-cells = <1>;
0045 #size-cells = <0>;
0046
0047 simple-audio-card,dai-link@0 {
0048 reg = <0>;
0049 format = "i2s";
0050 bitclock-master = <&dailink_master_analog_out>;
0051 frame-master = <&dailink_master_analog_out>;
0052 mclk-fs = <256>;
0053
0054 dailink_master_analog_out: cpu {
0055 sound-dai = <&ssp_dai0>;
0056 };
0057
0058 codec {
0059 sound-dai = <&sta320>;
0060 };
0061 };
0062
0063 simple-audio-card,dai-link@1 {
0064 reg = <1>;
0065 format = "i2s";
0066 bitclock-master = <&dailink_master_analog_in>;
0067 frame-master = <&dailink_master_analog_in>;
0068 mclk-fs = <256>;
0069
0070 dailink_master_analog_in: cpu {
0071 sound-dai = <&ssp_dai0>;
0072 };
0073
0074 codec {
0075 sound-dai = <&wm8782>;
0076 };
0077 };
0078 };
0079 };
0080
0081 &ssp_dai0 {
0082 clocks = <&xo_audio>;
0083 };
0084
0085 &spi {
0086 dac@2 {
0087 compatible = "ti,dac7512";
0088 reg = <2>;
0089 spi-max-frequency = <1000000>;
0090 vcc-supply = <®_3v3>;
0091 };
0092 };
0093
0094 &rotary {
0095 status = "okay";
0096 };
0097
0098 &pxai2c1 {
0099 sta320: codec@1a {
0100 compatible = "st,sta32x";
0101 reg = <0x1a>;
0102 pinctrl-names = "default";
0103 pinctrl-0 = <&sta320_pins>;
0104 clocks = <&xo_audio>;
0105 clock-names = "xti";
0106 reset-gpios = <&gpio 120 GPIO_ACTIVE_HIGH>;
0107 Vdda-supply = <®_3v3>;
0108 Vdd3-supply = <®_3v3>;
0109 Vcc-supply = <®_va_30v0>;
0110 #sound-dai-cells = <0>;
0111 st,thermal-warning-adjustment;
0112 st,thermal-warning-recovery;
0113 st,fault-detect-recovery;
0114 st,drop-compensation-ns = <80>;
0115 st,max-power-use-mpcc;
0116 st,invalid-input-detect-mute;
0117 /* 2 (half-bridge) and 1 (full-bridge) on-board power */
0118 st,output-conf = /bits/ 8 <0x1>;
0119 st,ch1-output-mapping = /bits/ 8 <0>;
0120 st,ch2-output-mapping = /bits/ 8 <1>;
0121 st,ch3-output-mapping = /bits/ 8 <2>;
0122 st,needs_esd_watchdog;
0123 };
0124 };
0125
0126 &pinctrl {
0127 xo_audio_pins: xo-audio-pins {
0128 pinctrl-single,pins = <
0129 MFP_PIN_PXA300(111) MFP_AF0 /* ENABLE */
0130 >;
0131 pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_PULL_LOW);
0132 };
0133
0134 sta320_pins: sta320-pins {
0135 pinctrl-single,pins = <
0136 MFP_PIN_PXA300(120) MFP_AF0 /* CODEC_RESET */
0137 >;
0138 pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_FLOAT);
0139 };
0140 };