blob: a199de8f8b025109e5e50b5fe2db0f60130669de [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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};