xref: /linux/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
1c4d87fe3SBiju Das// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c4d87fe3SBiju Das/*
3c4d87fe3SBiju Das * Device Tree Source for the RZ/G3E SMARC EVK board
4c4d87fe3SBiju Das *
5c4d87fe3SBiju Das * Copyright (C) 2024 Renesas Electronics Corp.
6c4d87fe3SBiju Das */
7c4d87fe3SBiju Das
8c4d87fe3SBiju Das/dts-v1/;
9c4d87fe3SBiju Das
104c85281bSBiju Das/* Switch selection settings */
11*99256644SBiju Das#define SW_GPIO8_CAN0_STB	0
12*99256644SBiju Das#define SW_GPIO9_CAN1_STB	0
13f2858ea2SBiju Das#define SW_LCD_EN		0
14f2858ea2SBiju Das#define SW_PDM_EN		0
154c85281bSBiju Das#define SW_SD0_DEV_SEL		0
16ae9edcbcSBiju Das#define SW_SDIO_M2E		0
174c85281bSBiju Das
18ae9edcbcSBiju Das#include <dt-bindings/gpio/gpio.h>
199e269561SBiju Das#include <dt-bindings/pinctrl/renesas,r9a09g047-pinctrl.h>
20c4d87fe3SBiju Das#include "r9a09g047e57.dtsi"
21c4d87fe3SBiju Das#include "rzg3e-smarc-som.dtsi"
22c4d87fe3SBiju Das#include "renesas-smarc2.dtsi"
23c4d87fe3SBiju Das
24c4d87fe3SBiju Das/ {
25c4d87fe3SBiju Das	model = "Renesas SMARC EVK version 2 based on r9a09g047e57";
26c4d87fe3SBiju Das	compatible = "renesas,smarc2-evk", "renesas,rzg3e-smarcm",
27c4d87fe3SBiju Das		     "renesas,r9a09g047e57", "renesas,r9a09g047";
28ae9edcbcSBiju Das
29ae9edcbcSBiju Das	vqmmc_sd1_pvdd: regulator-vqmmc-sd1-pvdd {
30ae9edcbcSBiju Das		compatible = "regulator-gpio";
31ae9edcbcSBiju Das		regulator-name = "SD1_PVDD";
32ae9edcbcSBiju Das		regulator-min-microvolt = <1800000>;
33ae9edcbcSBiju Das		regulator-max-microvolt = <3300000>;
34ae9edcbcSBiju Das		gpios = <&pinctrl RZG3E_GPIO(1, 5) GPIO_ACTIVE_HIGH>;
35ae9edcbcSBiju Das		gpios-states = <0>;
36ae9edcbcSBiju Das		states = <3300000 0>, <1800000 1>;
37ae9edcbcSBiju Das	};
38c4d87fe3SBiju Das};
399e269561SBiju Das
40f2858ea2SBiju Das&canfd {
41f2858ea2SBiju Das	pinctrl-0 = <&canfd_pins>;
42f2858ea2SBiju Das	pinctrl-names = "default";
43f2858ea2SBiju Das
44f2858ea2SBiju Das#if (!SW_PDM_EN)
45f2858ea2SBiju Das	channel1 {
46f2858ea2SBiju Das		status = "okay";
47*99256644SBiju Das#if (!SW_LCD_EN) && (SW_GPIO9_CAN1_STB)
48*99256644SBiju Das		phys = <&can_transceiver1>;
49*99256644SBiju Das#endif
50f2858ea2SBiju Das	};
51f2858ea2SBiju Das#endif
52f2858ea2SBiju Das
53f2858ea2SBiju Das#if (!SW_LCD_EN)
54f2858ea2SBiju Das	channel4 {
55f2858ea2SBiju Das		status = "okay";
56*99256644SBiju Das#if (SW_GPIO8_CAN0_STB)
57*99256644SBiju Das		phys = <&can_transceiver0>;
58*99256644SBiju Das#endif
59f2858ea2SBiju Das	};
60f2858ea2SBiju Das#endif
61f2858ea2SBiju Das};
62f2858ea2SBiju Das
63*99256644SBiju Das#if (!SW_LCD_EN) && (SW_GPIO8_CAN0_STB)
64*99256644SBiju Das&can_transceiver0 {
65*99256644SBiju Das	standby-gpios = <&pinctrl RZG3E_GPIO(5, 4) GPIO_ACTIVE_HIGH>;
66*99256644SBiju Das	status = "okay";
67*99256644SBiju Das};
68*99256644SBiju Das#endif
69*99256644SBiju Das
70*99256644SBiju Das#if (!SW_LCD_EN) && (SW_GPIO9_CAN1_STB)
71*99256644SBiju Das&can_transceiver1 {
72*99256644SBiju Das	standby-gpios = <&pinctrl RZG3E_GPIO(5, 5) GPIO_ACTIVE_HIGH>;
73*99256644SBiju Das	status = "okay";
74*99256644SBiju Das};
75*99256644SBiju Das#endif
76*99256644SBiju Das
779e269561SBiju Das&pinctrl {
78f2858ea2SBiju Das	canfd_pins: canfd {
79f2858ea2SBiju Das		can1_pins: can1 {
80f2858ea2SBiju Das			pinmux = <RZG3E_PORT_PINMUX(L, 2, 3)>, /* RX */
81f2858ea2SBiju Das				 <RZG3E_PORT_PINMUX(L, 3, 3)>; /* TX */
82f2858ea2SBiju Das		};
83f2858ea2SBiju Das
84f2858ea2SBiju Das		can4_pins: can4 {
85f2858ea2SBiju Das			pinmux = <RZG3E_PORT_PINMUX(5, 2, 3)>, /* RX */
86f2858ea2SBiju Das				 <RZG3E_PORT_PINMUX(5, 3, 3)>; /* TX */
87f2858ea2SBiju Das		};
88f2858ea2SBiju Das	};
89f2858ea2SBiju Das
909e269561SBiju Das	scif_pins: scif {
919e269561SBiju Das		pins = "SCIF_TXD", "SCIF_RXD";
929e269561SBiju Das		renesas,output-impedance = <1>;
939e269561SBiju Das	};
94ae9edcbcSBiju Das
95ae9edcbcSBiju Das	sd1-pwr-en-hog {
96ae9edcbcSBiju Das		gpio-hog;
97ae9edcbcSBiju Das		gpios = <RZG3E_GPIO(1, 6) GPIO_ACTIVE_HIGH>;
98ae9edcbcSBiju Das		output-high;
99ae9edcbcSBiju Das		line-name = "sd1_pwr_en";
100ae9edcbcSBiju Das	};
101ae9edcbcSBiju Das
102ae9edcbcSBiju Das	sdhi1_pins: sd1 {
103ae9edcbcSBiju Das		sd1-cd {
104ae9edcbcSBiju Das			pinmux = <RZG3E_PORT_PINMUX(1, 4, 8)>; /* SD1CD */
105ae9edcbcSBiju Das		};
106ae9edcbcSBiju Das
107ae9edcbcSBiju Das		sd1-ctrl {
108ae9edcbcSBiju Das			pinmux = <RZG3E_PORT_PINMUX(G, 0, 1)>, /* SD1CLK */
109ae9edcbcSBiju Das				 <RZG3E_PORT_PINMUX(G, 1, 1)>; /* SD1CMD */
110ae9edcbcSBiju Das		};
111ae9edcbcSBiju Das
112ae9edcbcSBiju Das		sd1-data {
113ae9edcbcSBiju Das			pinmux = <RZG3E_PORT_PINMUX(G, 2, 1)>, /* SD1DAT0 */
114ae9edcbcSBiju Das				 <RZG3E_PORT_PINMUX(G, 3, 1)>, /* SD1DAT1 */
115ae9edcbcSBiju Das				 <RZG3E_PORT_PINMUX(G, 4, 1)>, /* SD1DAT2 */
116ae9edcbcSBiju Das				 <RZG3E_PORT_PINMUX(G, 5, 1)>; /* SD1DAT3 */
117ae9edcbcSBiju Das		};
118ae9edcbcSBiju Das	};
1199e269561SBiju Das};
1209e269561SBiju Das
1219e269561SBiju Das&scif0 {
1229e269561SBiju Das	pinctrl-0 = <&scif_pins>;
1239e269561SBiju Das	pinctrl-names = "default";
1249e269561SBiju Das};
125ae9edcbcSBiju Das
126ae9edcbcSBiju Das&sdhi1 {
127ae9edcbcSBiju Das	pinctrl-0 = <&sdhi1_pins>;
128ae9edcbcSBiju Das	pinctrl-1 = <&sdhi1_pins>;
129ae9edcbcSBiju Das	pinctrl-names = "default", "state_uhs";
130ae9edcbcSBiju Das
131ae9edcbcSBiju Das	vmmc-supply = <&reg_3p3v>;
132ae9edcbcSBiju Das	vqmmc-supply = <&vqmmc_sd1_pvdd>;
133ae9edcbcSBiju Das};
134