Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / renesas / rzg3s-smarc-som.dtsi
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 /*
3  * Device Tree Source for the R9A08G045S33 SMARC Carrier-II's SoM board.
4  *
5  * Copyright (C) 2023 Renesas Electronics Corp.
6  */
7
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
10
11 /*
12  * Signals of SW_CONFIG switches:
13  * @SW_SD0_DEV_SEL:
14  *      0 - SD0 is connected to eMMC
15  *      1 - SD0 is connected to uSD0 card
16  */
17 #define SW_SD0_DEV_SEL  1
18
19 / {
20         compatible = "renesas,rzg3s-smarcm", "renesas,r9a08g045s33", "renesas,r9a08g045";
21
22         aliases {
23                 mmc0 = &sdhi0;
24         };
25
26         chosen {
27                 bootargs = "ignore_loglevel";
28                 stdout-path = "serial0:115200n8";
29         };
30
31         memory@48000000 {
32                 device_type = "memory";
33                 /* First 128MB is reserved for secure area. */
34                 reg = <0x0 0x48000000 0x0 0x38000000>;
35         };
36
37         vcc_sdhi0: regulator0 {
38                 compatible = "regulator-fixed";
39                 regulator-name = "SDHI0 Vcc";
40                 regulator-min-microvolt = <3300000>;
41                 regulator-max-microvolt = <3300000>;
42                 gpios = <&pinctrl RZG2L_GPIO(2, 1) GPIO_ACTIVE_HIGH>;
43                 enable-active-high;
44         };
45
46 #if SW_SD0_DEV_SEL
47         vccq_sdhi0: regulator1 {
48                 compatible = "regulator-gpio";
49                 regulator-name = "SDHI0 VccQ";
50                 regulator-min-microvolt = <1800000>;
51                 regulator-max-microvolt = <3300000>;
52                 gpios = <&pinctrl RZG2L_GPIO(2, 2) GPIO_ACTIVE_HIGH>;
53                 gpios-states = <1>;
54                 states = <3300000 1>, <1800000 0>;
55         };
56 #else
57         reg_1p8v: regulator1 {
58                 compatible = "regulator-fixed";
59                 regulator-name = "fixed-1.8V";
60                 regulator-min-microvolt = <1800000>;
61                 regulator-max-microvolt = <1800000>;
62                 regulator-boot-on;
63                 regulator-always-on;
64         };
65 #endif
66 };
67
68 &extal_clk {
69         clock-frequency = <24000000>;
70 };
71
72 #if SW_SD0_DEV_SEL
73 /* SD0 slot */
74 &sdhi0 {
75         pinctrl-0 = <&sdhi0_pins>;
76         pinctrl-1 = <&sdhi0_uhs_pins>;
77         pinctrl-names = "default", "state_uhs";
78         vmmc-supply = <&vcc_sdhi0>;
79         vqmmc-supply = <&vccq_sdhi0>;
80         bus-width = <4>;
81         sd-uhs-sdr50;
82         sd-uhs-sdr104;
83         max-frequency = <125000000>;
84         status = "okay";
85 };
86 #else
87 /* eMMC */
88 &sdhi0 {
89         pinctrl-0 = <&sdhi0_emmc_pins>;
90         pinctrl-1 = <&sdhi0_emmc_pins>;
91         pinctrl-names = "default", "state_uhs";
92         vmmc-supply = <&vcc_sdhi0>;
93         vqmmc-supply = <&reg_1p8v>;
94         bus-width = <8>;
95         mmc-hs200-1_8v;
96         non-removable;
97         fixed-emmc-driver-type = <1>;
98         max-frequency = <125000000>;
99         status = "okay";
100 };
101 #endif
102
103 &pinctrl {
104         sdhi0_pins: sd0 {
105                 data {
106                         pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
107                         power-source = <3300>;
108                 };
109
110                 ctrl {
111                         pins = "SD0_CLK", "SD0_CMD";
112                         power-source = <3300>;
113                 };
114
115                 cd {
116                         pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */
117                 };
118         };
119
120         sdhi0_uhs_pins: sd0-uhs {
121                 data {
122                         pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
123                         power-source = <1800>;
124                 };
125
126                 ctrl {
127                         pins = "SD0_CLK", "SD0_CMD";
128                         power-source = <1800>;
129                 };
130
131                 cd {
132                         pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */
133                 };
134         };
135
136         sdhi0_emmc_pins: sd0-emmc {
137                 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
138                        "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7",
139                        "SD0_CLK", "SD0_CMD", "SD0_RST#";
140                 power-source = <1800>;
141         };
142 };