1// SPDX-License-Identifier: GPL-2.0
2
3#include <dt-bindings/clock/maxim,max9485.h>
4
5/ {
6	xo_27mhz: oscillator-27mhz {
7		compatible = "fixed-clock";
8		#clock-cells = <0>;
9		clock-frequency = <27000000>;
10		clock-accuracy = <100>;
11	};
12
13	sound {
14		compatible = "simple-audio-card";
15		simple-audio-card,name = "Raumfeld Speaker";
16		#address-cells = <1>;
17		#size-cells = <0>;
18
19		simple-audio-card,dai-link@0 {
20			reg = <0>;
21			format = "i2s";
22			bitclock-master = <&dailink_master_analog>;
23			frame-master = <&dailink_master_analog>;
24			mclk-fs = <256>;
25
26			dailink_master_analog: cpu {
27				sound-dai = <&ssp_dai0>;
28			};
29
30			codec {
31				sound-dai = <&cs4270>;
32			};
33		};
34	};
35};
36
37&ssp_dai0 {
38	clocks = <&max9485 MAX9485_CLKOUT1>;
39};
40
41&ssp_dai1 {
42	clocks = <&max9485 MAX9485_CLKOUT1>;
43};
44
45&pxai2c1 {
46	cs4270: codec@48 {
47		compatible = "cirrus,cs4270";
48		pinctrl-names = "default";
49		pinctrl-0 = <&cs4270_pins>;
50		reg = <0x48>;
51		va-supply = <&reg_va_5v0>;
52		vd-supply = <&reg_3v3>;
53		vlc-supply = <&reg_3v3>;
54		reset-gpios = <&gpio 120 GPIO_ACTIVE_HIGH>;
55		#sound-dai-cells = <0>;
56	};
57
58	max9485: clock-generator@63 {
59		compatible = "maxim,max9485";
60		pinctrl-names = "default";
61		pinctrl-0 = <&max9485_pins>;
62		reg = <0x63>;
63		vdd-supply = <&reg_3v3>;
64		clock-names = "xclk";
65		clocks = <&xo_27mhz>;
66		reset-gpios = <&gpio 111 GPIO_ACTIVE_HIGH>;
67		#clock-cells = <1>;
68	};
69};
70
71&pinctrl {
72	cs4270_pins: cs4270-pins {
73		pinctrl-single,pins = <
74			MFP_PIN_PXA300(120) MFP_AF0	/* RESET */
75		>;
76		pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_PULL_LOW);
77	};
78
79	max9485_pins: max9485-pins {
80		pinctrl-single,pins = <
81			MFP_PIN_PXA300(111) MFP_AF0	/* RESET */
82		>;
83		pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_PULL_LOW);
84	};
85};
86