xref: /openbmc/linux/arch/arm/boot/dts/nxp/imx/imx6ull-dhcom-som-cfg-sdcard.dtsi (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (C) 2023 DH electronics GmbH
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring/*
7*724ba675SRob Herring * Special SoM configuration: SD card
8*724ba675SRob Herring *
9*724ba675SRob Herring * Enabled:  Micro SD card on module or
10*724ba675SRob Herring *           external SD card via DHCOM depends on hardware variant
11*724ba675SRob Herring *           GPIO H and GPIO I will be available
12*724ba675SRob Herring *           DHCOM UART2 will be available
13*724ba675SRob Herring * Disabled: WiFi and BT
14*724ba675SRob Herring */
15*724ba675SRob Herring
16*724ba675SRob Herring/*
17*724ba675SRob Herring * To use usdhc1 as SD card, the WiFi node must be deleted.
18*724ba675SRob Herring * BT is also not available, so remove BT from the UART node.
19*724ba675SRob Herring */
20*724ba675SRob Herring/delete-node/ &brcmf;
21*724ba675SRob Herring/delete-node/ &bluetooth;
22*724ba675SRob Herring
23*724ba675SRob Herring/ {
24*724ba675SRob Herring	aliases {
25*724ba675SRob Herring		mmc1 = &usdhc1;
26*724ba675SRob Herring		serial0 = &uart1;
27*724ba675SRob Herring		serial1 = &uart2;
28*724ba675SRob Herring		serial2 = &uart3;
29*724ba675SRob Herring		serial3 = &uart4;
30*724ba675SRob Herring		serial4 = &uart5;
31*724ba675SRob Herring		serial5 = &uart6;
32*724ba675SRob Herring	};
33*724ba675SRob Herring
34*724ba675SRob Herring	reg_sd1_vmmc: regulator-sd1-vmmc {
35*724ba675SRob Herring		compatible = "regulator-fixed";
36*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
37*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
38*724ba675SRob Herring		regulator-name = "VSD_3V3";
39*724ba675SRob Herring	};
40*724ba675SRob Herring};
41*724ba675SRob Herring
42*724ba675SRob Herring/* Micro SD card on module or external SD card via DHCOM */
43*724ba675SRob Herring&usdhc1 {
44*724ba675SRob Herring	/delete-property/ #address-cells;
45*724ba675SRob Herring	/delete-property/ #size-cells;
46*724ba675SRob Herring	/delete-property/ keep-power-in-suspend;
47*724ba675SRob Herring	/delete-property/ mmc-pwrseq;
48*724ba675SRob Herring	/delete-property/ non-removable;
49*724ba675SRob Herring	/delete-property/ wakeup-source;
50*724ba675SRob Herring	cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
51*724ba675SRob Herring	no-1-8-v;
52*724ba675SRob Herring	pinctrl-0 = <&pinctrl_usdhc1>;
53*724ba675SRob Herring	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
54*724ba675SRob Herring	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
55*724ba675SRob Herring	pinctrl-names = "default", "state_100mhz", "state_200mhz";
56*724ba675SRob Herring	vmmc-supply = <&reg_sd1_vmmc>;
57*724ba675SRob Herring	status = "okay";
58*724ba675SRob Herring};
59*724ba675SRob Herring
60*724ba675SRob Herring&iomuxc {
61*724ba675SRob Herring	pinctrl_usdhc1: usdhc1-grp {
62*724ba675SRob Herring		fsl,pins = <
63*724ba675SRob Herring			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x17059
64*724ba675SRob Herring			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x10059
65*724ba675SRob Herring			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x17059
66*724ba675SRob Herring			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x17059
67*724ba675SRob Herring			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x17059
68*724ba675SRob Herring			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x17059
69*724ba675SRob Herring			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x120b0 /* SD1 CD */
70*724ba675SRob Herring		>;
71*724ba675SRob Herring	};
72*724ba675SRob Herring
73*724ba675SRob Herring	pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
74*724ba675SRob Herring		fsl,pins = <
75*724ba675SRob Herring			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x170b9
76*724ba675SRob Herring			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x100b9
77*724ba675SRob Herring			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x170b9
78*724ba675SRob Herring			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x170b9
79*724ba675SRob Herring			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x170b9
80*724ba675SRob Herring			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x170b9
81*724ba675SRob Herring			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x120b0 /* SD1 CD */
82*724ba675SRob Herring
83*724ba675SRob Herring		>;
84*724ba675SRob Herring	};
85*724ba675SRob Herring
86*724ba675SRob Herring	pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
87*724ba675SRob Herring		fsl,pins = <
88*724ba675SRob Herring			MX6UL_PAD_SD1_CMD__USDHC1_CMD		0x170f9
89*724ba675SRob Herring			MX6UL_PAD_SD1_CLK__USDHC1_CLK		0x100f9
90*724ba675SRob Herring			MX6UL_PAD_SD1_DATA0__USDHC1_DATA0	0x170f9
91*724ba675SRob Herring			MX6UL_PAD_SD1_DATA1__USDHC1_DATA1	0x170f9
92*724ba675SRob Herring			MX6UL_PAD_SD1_DATA2__USDHC1_DATA2	0x170f9
93*724ba675SRob Herring			MX6UL_PAD_SD1_DATA3__USDHC1_DATA3	0x170f9
94*724ba675SRob Herring			MX6UL_PAD_UART1_RTS_B__GPIO1_IO19	0x120b0 /* SD1 CD */
95*724ba675SRob Herring		>;
96*724ba675SRob Herring	};
97*724ba675SRob Herring};
98