// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
/*
 * Device Tree Source for the RZ/G2UL SMARC pincontrol parts
 *
 * Copyright (C) 2022 Renesas Electronics Corp.
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>

&pinctrl {
	pinctrl-0 = <&sound_clk_pins>;
	pinctrl-names = "default";

	can0_pins: can0 {
		pinmux = <RZG2L_PORT_PINMUX(1, 1, 3)>, /* TX */
			 <RZG2L_PORT_PINMUX(1, 2, 3)>; /* RX */
	};

#if (SW_ET0_EN_N)
	can0-stb-hog {
		gpio-hog;
		gpios = <RZG2L_GPIO(2, 2) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "can0_stb";
	};
#endif

	can1_pins: can1 {
		pinmux = <RZG2L_PORT_PINMUX(2, 0, 3)>, /* TX */
			 <RZG2L_PORT_PINMUX(2, 1, 3)>; /* RX */
	};

#if (SW_ET0_EN_N)
	can1-stb-hog {
		gpio-hog;
		gpios = <RZG2L_GPIO(2, 3) GPIO_ACTIVE_HIGH>;
		output-low;
		line-name = "can1_stb";
	};
#endif

	i2c0_pins: i2c0 {
		pins = "RIIC0_SDA", "RIIC0_SCL";
		input-enable;
	};

	i2c1_pins: i2c1 {
		pins = "RIIC1_SDA", "RIIC1_SCL";
		input-enable;
	};

	mtu3_pins: mtu3 {
		mtu2-pwm {
			pinmux = <RZG2L_PORT_PINMUX(4, 0, 4)>; /* MTIOC2A */
		};
	};

	scif0_pins: scif0 {
		pinmux = <RZG2L_PORT_PINMUX(6, 4, 6)>, /* TxD */
			 <RZG2L_PORT_PINMUX(6, 3, 6)>; /* RxD */
	};

	sd1-pwr-en-hog {
		gpio-hog;
		gpios = <RZG2L_GPIO(0, 3) GPIO_ACTIVE_HIGH>;
		output-high;
		line-name = "sd1_pwr_en";
	};

	sdhi1_pins: sd1 {
		sd1_data {
			pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
			power-source = <3300>;
		};

		sd1_ctrl {
			pins = "SD1_CLK", "SD1_CMD";
			power-source = <3300>;
		};

		sd1_mux {
			pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
		};
	};

	sdhi1_pins_uhs: sd1_uhs {
		sd1_data_uhs {
			pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
			power-source = <1800>;
		};

		sd1_ctrl_uhs {
			pins = "SD1_CLK", "SD1_CMD";
			power-source = <1800>;
		};

		sd1_mux_uhs {
			pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
		};
	};

	sound_clk_pins: sound_clk {
		pins = "AUDIO_CLK1", "AUDIO_CLK2";
		input-enable;
	};

	spi1_pins: spi1 {
		pinmux = <RZG2L_PORT_PINMUX(4, 0, 2)>, /* CK */
			 <RZG2L_PORT_PINMUX(4, 1, 2)>, /* MOSI */
			 <RZG2L_PORT_PINMUX(4, 2, 2)>, /* MISO */
			 <RZG2L_PORT_PINMUX(4, 3, 2)>; /* SSL */
	};

	ssi1_pins: ssi1 {
		pinmux = <RZG2L_PORT_PINMUX(3, 0, 2)>, /* BCK */
			 <RZG2L_PORT_PINMUX(3, 1, 2)>, /* RCK */
			 <RZG2L_PORT_PINMUX(3, 2, 2)>, /* TXD */
			 <RZG2L_PORT_PINMUX(3, 3, 2)>; /* RXD */
	};

	usb0_pins: usb0 {
		pinmux = <RZG2L_PORT_PINMUX(5, 0, 1)>, /* VBUS */
			 <RZG2L_PORT_PINMUX(5, 2, 1)>, /* OVC */
			 <RZG2L_PORT_PINMUX(5, 3, 1)>; /* OTG_ID */
	};

	usb1_pins: usb1 {
		pinmux = <RZG2L_PORT_PINMUX(5, 4, 5)>, /* OVC */
			 <RZG2L_PORT_PINMUX(6, 0, 1)>; /* VBUS */
	};
};