xref: /freebsd-src/sys/contrib/device-tree/src/arm64/renesas/rzg3s-smarc.dtsi (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
184943d6fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
284943d6fSEmmanuel Vadot/*
384943d6fSEmmanuel Vadot * Device Tree Source for the RZ SMARC Carrier-II Board.
484943d6fSEmmanuel Vadot *
584943d6fSEmmanuel Vadot * Copyright (C) 2023 Renesas Electronics Corp.
684943d6fSEmmanuel Vadot */
784943d6fSEmmanuel Vadot
884943d6fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
901950c46SEmmanuel Vadot#include <dt-bindings/input/input.h>
1084943d6fSEmmanuel Vadot#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
1184943d6fSEmmanuel Vadot
1284943d6fSEmmanuel Vadot/ {
1384943d6fSEmmanuel Vadot	aliases {
14*b2d2a78aSEmmanuel Vadot		i2c0 = &i2c0;
1584943d6fSEmmanuel Vadot		serial0 = &scif0;
168d13bc63SEmmanuel Vadot		mmc1 = &sdhi1;
178d13bc63SEmmanuel Vadot	};
188d13bc63SEmmanuel Vadot
1901950c46SEmmanuel Vadot	keys {
2001950c46SEmmanuel Vadot		compatible = "gpio-keys";
2101950c46SEmmanuel Vadot
2201950c46SEmmanuel Vadot		key-1 {
2301950c46SEmmanuel Vadot			interrupts = <RZG2L_GPIO(18, 0) IRQ_TYPE_EDGE_FALLING>;
2401950c46SEmmanuel Vadot			interrupt-parent = <&pinctrl>;
2501950c46SEmmanuel Vadot			linux,code = <KEY_1>;
2601950c46SEmmanuel Vadot			label = "USER_SW1";
2701950c46SEmmanuel Vadot			wakeup-source;
2801950c46SEmmanuel Vadot			debounce-interval = <20>;
2901950c46SEmmanuel Vadot		};
3001950c46SEmmanuel Vadot
3101950c46SEmmanuel Vadot		key-2 {
3201950c46SEmmanuel Vadot			interrupts = <RZG2L_GPIO(0, 1) IRQ_TYPE_EDGE_FALLING>;
3301950c46SEmmanuel Vadot			interrupt-parent = <&pinctrl>;
3401950c46SEmmanuel Vadot			linux,code = <KEY_2>;
3501950c46SEmmanuel Vadot			label = "USER_SW2";
3601950c46SEmmanuel Vadot			wakeup-source;
3701950c46SEmmanuel Vadot			debounce-interval = <20>;
3801950c46SEmmanuel Vadot		};
3901950c46SEmmanuel Vadot
4001950c46SEmmanuel Vadot		key-3 {
4101950c46SEmmanuel Vadot			interrupts = <RZG2L_GPIO(0, 3) IRQ_TYPE_EDGE_FALLING>;
4201950c46SEmmanuel Vadot			interrupt-parent = <&pinctrl>;
4301950c46SEmmanuel Vadot			linux,code = <KEY_3>;
4401950c46SEmmanuel Vadot			label = "USER_SW3";
4501950c46SEmmanuel Vadot			wakeup-source;
4601950c46SEmmanuel Vadot			debounce-interval = <20>;
4701950c46SEmmanuel Vadot		};
4801950c46SEmmanuel Vadot	};
4901950c46SEmmanuel Vadot
508d13bc63SEmmanuel Vadot	vcc_sdhi1: regulator-vcc-sdhi1 {
518d13bc63SEmmanuel Vadot		compatible = "regulator-fixed";
528d13bc63SEmmanuel Vadot		regulator-name = "SDHI1 Vcc";
538d13bc63SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
548d13bc63SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
558d13bc63SEmmanuel Vadot		gpios = <&pinctrl RZG2L_GPIO(2, 3) GPIO_ACTIVE_HIGH>;
568d13bc63SEmmanuel Vadot		enable-active-high;
578d13bc63SEmmanuel Vadot	};
588d13bc63SEmmanuel Vadot
598d13bc63SEmmanuel Vadot	vccq_sdhi1: regulator-vccq-sdhi1 {
608d13bc63SEmmanuel Vadot		compatible = "regulator-gpio";
618d13bc63SEmmanuel Vadot		regulator-name = "SDHI1 VccQ";
628d13bc63SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
638d13bc63SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
648d13bc63SEmmanuel Vadot		gpios = <&pinctrl RZG2L_GPIO(4, 2) GPIO_ACTIVE_HIGH>;
658d13bc63SEmmanuel Vadot		gpios-states = <1>;
668d13bc63SEmmanuel Vadot		states = <3300000 1>, <1800000 0>;
6784943d6fSEmmanuel Vadot	};
6884943d6fSEmmanuel Vadot};
6984943d6fSEmmanuel Vadot
70*b2d2a78aSEmmanuel Vadot&i2c0 {
71*b2d2a78aSEmmanuel Vadot	status = "okay";
72*b2d2a78aSEmmanuel Vadot
73*b2d2a78aSEmmanuel Vadot	clock-frequency = <1000000>;
74*b2d2a78aSEmmanuel Vadot};
75*b2d2a78aSEmmanuel Vadot
7684943d6fSEmmanuel Vadot&pinctrl {
7701950c46SEmmanuel Vadot	key-1-gpio-hog {
7801950c46SEmmanuel Vadot		gpio-hog;
7901950c46SEmmanuel Vadot		gpios = <RZG2L_GPIO(18, 0) GPIO_ACTIVE_LOW>;
8001950c46SEmmanuel Vadot		input;
8101950c46SEmmanuel Vadot		line-name = "key-1-gpio-irq";
8201950c46SEmmanuel Vadot	};
8301950c46SEmmanuel Vadot
8401950c46SEmmanuel Vadot	key-2-gpio-hog {
8501950c46SEmmanuel Vadot		gpio-hog;
8601950c46SEmmanuel Vadot		gpios = <RZG2L_GPIO(0, 1) GPIO_ACTIVE_LOW>;
8701950c46SEmmanuel Vadot		input;
8801950c46SEmmanuel Vadot		line-name = "key-2-gpio-irq";
8901950c46SEmmanuel Vadot	};
9001950c46SEmmanuel Vadot
9101950c46SEmmanuel Vadot	key-3-gpio-hog {
9201950c46SEmmanuel Vadot		gpio-hog;
9301950c46SEmmanuel Vadot		gpios = <RZG2L_GPIO(0, 3) GPIO_ACTIVE_LOW>;
9401950c46SEmmanuel Vadot		input;
9501950c46SEmmanuel Vadot		line-name = "key-3-gpio-irq";
9601950c46SEmmanuel Vadot	};
9701950c46SEmmanuel Vadot
9884943d6fSEmmanuel Vadot	scif0_pins: scif0 {
9984943d6fSEmmanuel Vadot		pinmux = <RZG2L_PORT_PINMUX(6, 3, 1)>, /* RXD */
10084943d6fSEmmanuel Vadot			 <RZG2L_PORT_PINMUX(6, 4, 1)>; /* TXD */
10184943d6fSEmmanuel Vadot	};
1028d13bc63SEmmanuel Vadot
1038d13bc63SEmmanuel Vadot	sdhi1_pins: sd1 {
1048d13bc63SEmmanuel Vadot		data {
1058d13bc63SEmmanuel Vadot			pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
1068d13bc63SEmmanuel Vadot			power-source = <3300>;
1078d13bc63SEmmanuel Vadot		};
1088d13bc63SEmmanuel Vadot
1098d13bc63SEmmanuel Vadot		ctrl {
1108d13bc63SEmmanuel Vadot			pins = "SD1_CLK", "SD1_CMD";
1118d13bc63SEmmanuel Vadot			power-source = <3300>;
1128d13bc63SEmmanuel Vadot		};
1138d13bc63SEmmanuel Vadot
1148d13bc63SEmmanuel Vadot		cd {
1158d13bc63SEmmanuel Vadot			pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
1168d13bc63SEmmanuel Vadot		};
1178d13bc63SEmmanuel Vadot	};
1188d13bc63SEmmanuel Vadot
1198d13bc63SEmmanuel Vadot	sdhi1_pins_uhs: sd1-uhs {
1208d13bc63SEmmanuel Vadot		data {
1218d13bc63SEmmanuel Vadot			pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
1228d13bc63SEmmanuel Vadot			power-source = <1800>;
1238d13bc63SEmmanuel Vadot		};
1248d13bc63SEmmanuel Vadot
1258d13bc63SEmmanuel Vadot		ctrl {
1268d13bc63SEmmanuel Vadot			pins = "SD1_CLK", "SD1_CMD";
1278d13bc63SEmmanuel Vadot			power-source = <1800>;
1288d13bc63SEmmanuel Vadot		};
1298d13bc63SEmmanuel Vadot
1308d13bc63SEmmanuel Vadot		cd {
1318d13bc63SEmmanuel Vadot			pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
1328d13bc63SEmmanuel Vadot		};
1338d13bc63SEmmanuel Vadot	};
13484943d6fSEmmanuel Vadot};
13584943d6fSEmmanuel Vadot
13684943d6fSEmmanuel Vadot&scif0 {
13784943d6fSEmmanuel Vadot	pinctrl-names = "default";
13884943d6fSEmmanuel Vadot	pinctrl-0 = <&scif0_pins>;
13984943d6fSEmmanuel Vadot	status = "okay";
14084943d6fSEmmanuel Vadot};
1418d13bc63SEmmanuel Vadot
1428d13bc63SEmmanuel Vadot&sdhi1 {
1438d13bc63SEmmanuel Vadot	pinctrl-0 = <&sdhi1_pins>;
1448d13bc63SEmmanuel Vadot	pinctrl-1 = <&sdhi1_pins_uhs>;
1458d13bc63SEmmanuel Vadot	pinctrl-names = "default", "state_uhs";
1468d13bc63SEmmanuel Vadot	vmmc-supply = <&vcc_sdhi1>;
1478d13bc63SEmmanuel Vadot	vqmmc-supply = <&vccq_sdhi1>;
1488d13bc63SEmmanuel Vadot	bus-width = <4>;
1498d13bc63SEmmanuel Vadot	sd-uhs-sdr50;
1508d13bc63SEmmanuel Vadot	sd-uhs-sdr104;
1518d13bc63SEmmanuel Vadot	max-frequency = <125000000>;
1528d13bc63SEmmanuel Vadot	status = "okay";
1538d13bc63SEmmanuel Vadot};
154