xref: /linux/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright 2021 Collabora Ltd.
4 * Copyright 2021 BSH Hausgeraete GmbH
5 */
6
7/dts-v1/;
8
9#include "imx8mn-bsh-smm-s2-common.dtsi"
10#include <dt-bindings/sound/tlv320aic31xx.h>
11
12/ {
13	model = "BSH SMM S2 PRO";
14	compatible = "bsh,imx8mn-bsh-smm-s2pro", "fsl,imx8mn";
15
16	memory@40000000 {
17		device_type = "memory";
18		reg = <0x0 0x40000000 0x0 0x20000000>;
19	};
20
21	sound-tlv320aic31xx {
22		compatible = "fsl,imx-audio-tlv320aic31xx";
23		model = "tlv320aic31xx-hifi";
24		audio-cpu = <&sai3>;
25		audio-codec = <&tlv320dac3101>;
26		audio-asrc = <&easrc>;
27		audio-routing =
28			"Ext Spk", "SPL",
29			"Ext Spk", "SPR";
30		mclk-id = <PLL_CLKIN_BCLK>;
31	};
32
33	vdd_input: vdd_input {
34		compatible = "regulator-fixed";
35		regulator-name = "vdd_input";
36		regulator-min-microvolt = <5000000>;
37		regulator-max-microvolt = <5000000>;
38	};
39};
40
41&easrc {
42	fsl,asrc-rate = <48000>;
43	fsl,asrc-format = <10>;
44	status = "okay";
45};
46
47&i2c2 {
48	clock-frequency = <400000>;
49	pinctrl-names = "default";
50	pinctrl-0 = <&pinctrl_i2c2>;
51	status = "okay";
52
53	tlv320dac3101: audio-codec@18 {
54		compatible = "ti,tlv320dac3101";
55		pinctrl-names = "default";
56		pinctrl-0 = <&pinctrl_dac_rst>;
57		reg = <0x18>;
58		#sound-dai-cells = <0>;
59		HPVDD-supply = <&buck4_reg>;
60		SPRVDD-supply = <&vdd_input>;
61		SPLVDD-supply = <&vdd_input>;
62		AVDD-supply = <&buck4_reg>;
63		IOVDD-supply = <&buck4_reg>;
64		DVDD-supply = <&buck5_reg>;
65		reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
66		ai31xx-micbias-vg = <MICBIAS_AVDDV>;
67	};
68};
69
70&sai3 {
71	pinctrl-names = "default";
72	pinctrl-0 = <&pinctrl_sai3>;
73	assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
74	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
75	assigned-clock-rates = <24576000>;
76	fsl,sai-mclk-direction-output;
77	status = "okay";
78};
79
80/* eMMC */
81&usdhc1 {
82	pinctrl-names = "default", "state_100mhz", "state_200mhz";
83	pinctrl-0 = <&pinctrl_usdhc1>;
84	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
85	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
86	bus-width = <8>;
87	non-removable;
88	status = "okay";
89};
90
91&iomuxc {
92	pinctrl_dac_rst: dacrstgrp {
93		fsl,pins = <
94			MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6		0x19 /* DAC_RST */
95		>;
96	};
97
98	pinctrl_espi2: espi2grp {
99		fsl,pins = <
100			MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK		0x082
101			MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI		0x082
102			MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO		0x082
103			MX8MN_IOMUXC_ECSPI2_SS0_ECSPI2_SS0		0x040
104		>;
105	};
106
107	pinctrl_i2c2: i2c2grp {
108		fsl,pins = <
109			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL			0x400000c3
110			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA			0x400000c3
111		>;
112	};
113
114	pinctrl_sai3: sai3grp {
115		fsl,pins = <
116			MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC		0xd6
117			MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK		0xd6
118			MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0		0xd6
119		>;
120	};
121
122	pinctrl_usdhc1: usdhc1grp {
123		fsl,pins = <
124			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK			0x40000090
125			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD			0x0d0
126			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x0d0
127			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x0d0
128			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x0d0
129			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x0d0
130			MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x0d0
131			MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x0d0
132			MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x0d0
133			MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x0d0
134			MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x090
135		>;
136	};
137
138	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
139		fsl,pins = <
140			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK			0x40000094
141			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD			0x0d4
142			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x0d4
143			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x0d4
144			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x0d4
145			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x0d4
146			MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x0d4
147			MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x0d4
148			MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x0d4
149			MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x0d4
150			MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x094
151		>;
152	};
153
154	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
155		fsl,pins = <
156			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK			0x40000096
157			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD			0x0d6
158			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x0d6
159			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x0d6
160			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x0d6
161			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x0d6
162			MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x0d6
163			MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x0d6
164			MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x0d6
165			MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x0d6
166			MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x096
167		>;
168	};
169};
170