162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2023 DH electronics GmbH
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/*
762306a36Sopenharmony_ci * Special SoM configuration: SD card
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci * Enabled:  Micro SD card on module or
1062306a36Sopenharmony_ci *           external SD card via DHCOM depends on hardware variant
1162306a36Sopenharmony_ci *           GPIO H and GPIO I will be available
1262306a36Sopenharmony_ci *           DHCOM UART2 will be available
1362306a36Sopenharmony_ci * Disabled: WiFi and BT
1462306a36Sopenharmony_ci */
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci/*
1762306a36Sopenharmony_ci * To use usdhc1 as SD card, the WiFi node must be deleted.
1862306a36Sopenharmony_ci * BT is also not available, so remove BT from the UART node.
1962306a36Sopenharmony_ci */
2062306a36Sopenharmony_ci/delete-node/ &brcmf;
2162306a36Sopenharmony_ci/delete-node/ &bluetooth;
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci/ {
2462306a36Sopenharmony_ci	aliases {
2562306a36Sopenharmony_ci		mmc1 = &usdhc1;
2662306a36Sopenharmony_ci		serial0 = &uart1;
2762306a36Sopenharmony_ci		serial1 = &uart2;
2862306a36Sopenharmony_ci		serial2 = &uart3;
2962306a36Sopenharmony_ci		serial3 = &uart4;
3062306a36Sopenharmony_ci		serial4 = &uart5;
3162306a36Sopenharmony_ci		serial5 = &uart6;
3262306a36Sopenharmony_ci	};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	reg_sd1_vmmc: regulator-sd1-vmmc {
3562306a36Sopenharmony_ci		compatible = "regulator-fixed";
3662306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
3762306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
3862306a36Sopenharmony_ci		regulator-name = "VSD_3V3";
3962306a36Sopenharmony_ci	};
4062306a36Sopenharmony_ci};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci/* Micro SD card on module or external SD card via DHCOM */
4362306a36Sopenharmony_ci&usdhc1 {
4462306a36Sopenharmony_ci	/delete-property/ #address-cells;
4562306a36Sopenharmony_ci	/delete-property/ #size-cells;
4662306a36Sopenharmony_ci	/delete-property/ keep-power-in-suspend;
4762306a36Sopenharmony_ci	/delete-property/ mmc-pwrseq;
4862306a36Sopenharmony_ci	/delete-property/ non-removable;
4962306a36Sopenharmony_ci	/delete-property/ wakeup-source;
5062306a36Sopenharmony_ci	cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
5162306a36Sopenharmony_ci	no-1-8-v;
5262306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_usdhc1>;
5362306a36Sopenharmony_ci	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
5462306a36Sopenharmony_ci	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
5562306a36Sopenharmony_ci	pinctrl-names = "default", "state_100mhz", "state_200mhz";
5662306a36Sopenharmony_ci	vmmc-supply = <&reg_sd1_vmmc>;
5762306a36Sopenharmony_ci	status = "okay";
5862306a36Sopenharmony_ci};
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci&iomuxc {
6162306a36Sopenharmony_ci	pinctrl_usdhc1: usdhc1-grp {
6262306a36Sopenharmony_ci		fsl,pins = <
6362306a36Sopenharmony_ci			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x17059
6462306a36Sopenharmony_ci			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x10059
6562306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x17059
6662306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x17059
6762306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x17059
6862306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x17059
6962306a36Sopenharmony_ci			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x120b0 /* SD1 CD */
7062306a36Sopenharmony_ci		>;
7162306a36Sopenharmony_ci	};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
7462306a36Sopenharmony_ci		fsl,pins = <
7562306a36Sopenharmony_ci			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x170b9
7662306a36Sopenharmony_ci			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x100b9
7762306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x170b9
7862306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x170b9
7962306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x170b9
8062306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x170b9
8162306a36Sopenharmony_ci			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x120b0 /* SD1 CD */
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci		>;
8462306a36Sopenharmony_ci	};
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
8762306a36Sopenharmony_ci		fsl,pins = <
8862306a36Sopenharmony_ci			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x170f9
8962306a36Sopenharmony_ci			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x100f9
9062306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x170f9
9162306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x170f9
9262306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x170f9
9362306a36Sopenharmony_ci			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x170f9
9462306a36Sopenharmony_ci			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x120b0 /* SD1 CD */
9562306a36Sopenharmony_ci		>;
9662306a36Sopenharmony_ci	};
9762306a36Sopenharmony_ci};
98