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