162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2021 Collabora Ltd.
462306a36Sopenharmony_ci * Copyright 2021 BSH Hausgeraete GmbH
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/dts-v1/;
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "imx8mn-bsh-smm-s2-common.dtsi"
1062306a36Sopenharmony_ci#include <dt-bindings/sound/tlv320aic31xx.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/ {
1362306a36Sopenharmony_ci	model = "BSH SMM S2 PRO";
1462306a36Sopenharmony_ci	compatible = "bsh,imx8mn-bsh-smm-s2pro", "fsl,imx8mn";
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	memory@40000000 {
1762306a36Sopenharmony_ci		device_type = "memory";
1862306a36Sopenharmony_ci		reg = <0x0 0x40000000 0x0 0x20000000>;
1962306a36Sopenharmony_ci	};
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	sound-tlv320aic31xx {
2262306a36Sopenharmony_ci		compatible = "fsl,imx-audio-tlv320aic31xx";
2362306a36Sopenharmony_ci		model = "tlv320aic31xx-hifi";
2462306a36Sopenharmony_ci		audio-cpu = <&sai3>;
2562306a36Sopenharmony_ci		audio-codec = <&tlv320dac3101>;
2662306a36Sopenharmony_ci		audio-asrc = <&easrc>;
2762306a36Sopenharmony_ci		audio-routing =
2862306a36Sopenharmony_ci			"Ext Spk", "SPL",
2962306a36Sopenharmony_ci			"Ext Spk", "SPR";
3062306a36Sopenharmony_ci		mclk-id = <PLL_CLKIN_BCLK>;
3162306a36Sopenharmony_ci	};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	vdd_input: vdd_input {
3462306a36Sopenharmony_ci		compatible = "regulator-fixed";
3562306a36Sopenharmony_ci		regulator-name = "vdd_input";
3662306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
3762306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
3862306a36Sopenharmony_ci	};
3962306a36Sopenharmony_ci};
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci&easrc {
4262306a36Sopenharmony_ci	fsl,asrc-rate = <48000>;
4362306a36Sopenharmony_ci	fsl,asrc-format = <10>;
4462306a36Sopenharmony_ci	status = "okay";
4562306a36Sopenharmony_ci};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci&i2c2 {
4862306a36Sopenharmony_ci	clock-frequency = <400000>;
4962306a36Sopenharmony_ci	pinctrl-names = "default";
5062306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_i2c2>;
5162306a36Sopenharmony_ci	status = "okay";
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	tlv320dac3101: audio-codec@18 {
5462306a36Sopenharmony_ci		compatible = "ti,tlv320dac3101";
5562306a36Sopenharmony_ci		pinctrl-names = "default";
5662306a36Sopenharmony_ci		pinctrl-0 = <&pinctrl_dac_rst>;
5762306a36Sopenharmony_ci		reg = <0x18>;
5862306a36Sopenharmony_ci		#sound-dai-cells = <0>;
5962306a36Sopenharmony_ci		HPVDD-supply = <&buck4_reg>;
6062306a36Sopenharmony_ci		SPRVDD-supply = <&vdd_input>;
6162306a36Sopenharmony_ci		SPLVDD-supply = <&vdd_input>;
6262306a36Sopenharmony_ci		AVDD-supply = <&buck4_reg>;
6362306a36Sopenharmony_ci		IOVDD-supply = <&buck4_reg>;
6462306a36Sopenharmony_ci		DVDD-supply = <&buck5_reg>;
6562306a36Sopenharmony_ci		reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
6662306a36Sopenharmony_ci		ai31xx-micbias-vg = <MICBIAS_AVDDV>;
6762306a36Sopenharmony_ci		clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
6862306a36Sopenharmony_ci	};
6962306a36Sopenharmony_ci};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci&sai3 {
7262306a36Sopenharmony_ci	pinctrl-names = "default";
7362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_sai3>;
7462306a36Sopenharmony_ci	assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
7562306a36Sopenharmony_ci	assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
7662306a36Sopenharmony_ci	assigned-clock-rates = <24576000>;
7762306a36Sopenharmony_ci	fsl,sai-mclk-direction-output;
7862306a36Sopenharmony_ci	status = "okay";
7962306a36Sopenharmony_ci};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci/* eMMC */
8262306a36Sopenharmony_ci&usdhc1 {
8362306a36Sopenharmony_ci	pinctrl-names = "default", "state_100mhz", "state_200mhz";
8462306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc1>;
8562306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
8662306a36Sopenharmony_ci	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
8762306a36Sopenharmony_ci	bus-width = <8>;
8862306a36Sopenharmony_ci	non-removable;
8962306a36Sopenharmony_ci	status = "okay";
9062306a36Sopenharmony_ci};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci&iomuxc {
9362306a36Sopenharmony_ci	pinctrl_dac_rst: dacrstgrp {
9462306a36Sopenharmony_ci		fsl,pins = <
9562306a36Sopenharmony_ci			MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6		0x19 /* DAC_RST */
9662306a36Sopenharmony_ci		>;
9762306a36Sopenharmony_ci	};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	pinctrl_espi2: espi2grp {
10062306a36Sopenharmony_ci		fsl,pins = <
10162306a36Sopenharmony_ci			MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK		0x082
10262306a36Sopenharmony_ci			MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI		0x082
10362306a36Sopenharmony_ci			MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO		0x082
10462306a36Sopenharmony_ci			MX8MN_IOMUXC_ECSPI2_SS0_ECSPI2_SS0		0x040
10562306a36Sopenharmony_ci		>;
10662306a36Sopenharmony_ci	};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci	pinctrl_i2c2: i2c2grp {
10962306a36Sopenharmony_ci		fsl,pins = <
11062306a36Sopenharmony_ci			MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL			0x400000c3
11162306a36Sopenharmony_ci			MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA			0x400000c3
11262306a36Sopenharmony_ci		>;
11362306a36Sopenharmony_ci	};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci	pinctrl_sai3: sai3grp {
11662306a36Sopenharmony_ci		fsl,pins = <
11762306a36Sopenharmony_ci			MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC		0xd6
11862306a36Sopenharmony_ci			MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK		0xd6
11962306a36Sopenharmony_ci			MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0		0xd6
12062306a36Sopenharmony_ci		>;
12162306a36Sopenharmony_ci	};
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci	pinctrl_usdhc1: usdhc1grp {
12462306a36Sopenharmony_ci		fsl,pins = <
12562306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK			0x40000090
12662306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD			0x0d0
12762306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x0d0
12862306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x0d0
12962306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x0d0
13062306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x0d0
13162306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x0d0
13262306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x0d0
13362306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x0d0
13462306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x0d0
13562306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x090
13662306a36Sopenharmony_ci		>;
13762306a36Sopenharmony_ci	};
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
14062306a36Sopenharmony_ci		fsl,pins = <
14162306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK			0x40000094
14262306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD			0x0d4
14362306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x0d4
14462306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x0d4
14562306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x0d4
14662306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x0d4
14762306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x0d4
14862306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x0d4
14962306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x0d4
15062306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x0d4
15162306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x094
15262306a36Sopenharmony_ci		>;
15362306a36Sopenharmony_ci	};
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
15662306a36Sopenharmony_ci		fsl,pins = <
15762306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK			0x40000096
15862306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_CMD_USDHC1_CMD			0x0d6
15962306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA0_USDHC1_DATA0		0x0d6
16062306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA1_USDHC1_DATA1		0x0d6
16162306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA2_USDHC1_DATA2		0x0d6
16262306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA3_USDHC1_DATA3		0x0d6
16362306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA4_USDHC1_DATA4		0x0d6
16462306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA5_USDHC1_DATA5		0x0d6
16562306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA6_USDHC1_DATA6		0x0d6
16662306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_DATA7_USDHC1_DATA7		0x0d6
16762306a36Sopenharmony_ci			MX8MN_IOMUXC_SD1_STROBE_USDHC1_STROBE		0x096
16862306a36Sopenharmony_ci		>;
16962306a36Sopenharmony_ci	};
17062306a36Sopenharmony_ci};
171