/*
 * Copyright 2017 Sean Wang <sean.wang@mediatek.com>
 *
 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 */

/dts-v1/;
#include <dt-bindings/input/input.h>
#include "mt7623.dtsi"
#include "mt6323.dtsi"

/ {
	model = "Bananapi BPI-R2";
	compatible = "bananapi,bpi-r2", "mediatek,mt7623";

	aliases {
		serial2 = &uart2;
	};

	chosen {
		stdout-path = "serial2:115200n8";
	};

	cpus {
		cpu@0 {
			proc-supply = <&mt6323_vproc_reg>;
		};

		cpu@1 {
			proc-supply = <&mt6323_vproc_reg>;
		};

		cpu@2 {
			proc-supply = <&mt6323_vproc_reg>;
		};

		cpu@3 {
			proc-supply = <&mt6323_vproc_reg>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&key_pins_a>;

		factory {
			label = "factory";
			linux,code = <BTN_0>;
			gpios = <&pio 256 GPIO_ACTIVE_LOW>;
		};

		wps {
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&pio 257 GPIO_ACTIVE_HIGH>;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&led_pins_a>;

		blue {
			label = "bpi-r2:pio:blue";
			gpios = <&pio 241 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		green {
			label = "bpi-r2:pio:green";
			gpios = <&pio 240 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		red {
			label = "bpi-r2:pio:red";
			gpios = <&pio 239 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};

	memory@80000000 {
		reg = <0 0x80000000 0 0x40000000>;
	};
};

&cir {
	pinctrl-names = "default";
	pinctrl-0 = <&cir_pins_a>;
	status = "okay";
};

&crypto {
	status = "okay";
};

&eth {
	status = "okay";

	gmac0: mac@0 {
		compatible = "mediatek,eth-mac";
		reg = <0>;
		phy-mode = "trgmii";

		fixed-link {
			speed = <1000>;
			full-duplex;
			pause;
		};
	};

	mdio: mdio-bus {
		#address-cells = <1>;
		#size-cells = <0>;

		switch@0 {
			compatible = "mediatek,mt7530";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
			pinctrl-names = "default";
			reset-gpios = <&pio 33 0>;
			core-supply = <&mt6323_vpa_reg>;
			io-supply = <&mt6323_vemc3v3_reg>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0>;

				port@0 {
					reg = <0>;
					label = "wan";
				};

				port@1 {
					reg = <1>;
					label = "lan0";
				};

				port@2 {
					reg = <2>;
					label = "lan1";
				};

				port@3 {
					reg = <3>;
					label = "lan2";
				};

				port@4 {
					reg = <4>;
					label = "lan3";
				};

				port@6 {
					reg = <6>;
					label = "cpu";
					ethernet = <&gmac0>;
					phy-mode = "trgmii";

					fixed-link {
						speed = <1000>;
						full-duplex;
					};
				};
			};
		};
	};
};

&i2c0 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c0_pins_a>;
	status = "okay";
};

&i2c1 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c1_pins_a>;
	status = "okay";
};

&mmc0 {
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc0_pins_default>;
	pinctrl-1 = <&mmc0_pins_uhs>;
	status = "okay";
	bus-width = <8>;
	max-frequency = <50000000>;
	cap-mmc-highspeed;
	vmmc-supply = <&mt6323_vemc3v3_reg>;
	vqmmc-supply = <&mt6323_vio18_reg>;
	non-removable;
};

&mmc1 {
	pinctrl-names = "default", "state_uhs";
	pinctrl-0 = <&mmc1_pins_default>;
	pinctrl-1 = <&mmc1_pins_uhs>;
	status = "okay";
	bus-width = <4>;
	max-frequency = <50000000>;
	cap-sd-highspeed;
	cd-gpios = <&pio 261 0>;
	vmmc-supply = <&mt6323_vmch_reg>;
	vqmmc-supply = <&mt6323_vio18_reg>;
};

&pio {
	cir_pins_a:cir@0 {
		pins_cir {
			pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
			bias-disable;
		};
	};

	i2c0_pins_a: i2c@0 {
		pins_i2c0 {
			pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
				 <MT7623_PIN_76_SCL0_FUNC_SCL0>;
			bias-disable;
		};
	};

	i2c1_pins_a: i2c@1 {
		pin_i2c1 {
			pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
				 <MT7623_PIN_58_SCL1_FUNC_SCL1>;
			bias-disable;
		};
	};

	i2s0_pins_a: i2s@0 {
		pin_i2s0 {
			pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
				 <MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
				 <MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
				 <MT7623_PIN_74_I2S0_BCK_FUNC_I2S0_BCK>,
				 <MT7623_PIN_126_I2S0_MCLK_FUNC_I2S0_MCLK>;
			drive-strength = <MTK_DRIVE_12mA>;
			bias-pull-down;
		};
	};

	i2s1_pins_a: i2s@1 {
		pin_i2s1 {
			pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
				 <MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
				 <MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
				 <MT7623_PIN_36_I2S1_LRCK_FUNC_I2S1_LRCK>,
				 <MT7623_PIN_37_I2S1_MCLK_FUNC_I2S1_MCLK>;
			drive-strength = <MTK_DRIVE_12mA>;
			bias-pull-down;
		};
	};

	key_pins_a: keys@0 {
		pins_keys {
			pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
				 <MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
			input-enable;
		};
	};

	led_pins_a: leds@0 {
		pins_leds {
			pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
				 <MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
				 <MT7623_PIN_241_EXT_SCK_FUNC_GPIO241>;
		};
	};

	mmc0_pins_default: mmc0default {
		pins_cmd_dat {
			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
				 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
			input-enable;
			bias-pull-up;
		};

		pins_clk {
			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
			bias-pull-down;
		};

		pins_rst {
			pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
			bias-pull-up;
		};
	};

	mmc0_pins_uhs: mmc0 {
		pins_cmd_dat {
			pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
				 <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
				 <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
				 <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
				 <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
				 <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
				 <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
				 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
				 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_2mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_clk {
			pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
			drive-strength = <MTK_DRIVE_2mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
		};

		pins_rst {
			pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
			bias-pull-up;
		};
	};

	mmc1_pins_default: mmc1default {
		pins_cmd_dat {
			pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
				 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
				 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
				 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
				 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_4mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_clk {
			pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
			bias-pull-down;
			drive-strength = <MTK_DRIVE_4mA>;
		};

		pins_wp {
			pinmux = <MT7623_PIN_29_EINT7_FUNC_MSDC1_WP>;
			input-enable;
			bias-pull-up;
		};

		pins_insert {
			pinmux = <MT7623_PIN_261_MSDC1_INS_FUNC_GPIO261>;
			bias-pull-up;
		};
	};

	mmc1_pins_uhs: mmc1 {
		pins_cmd_dat {
			pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
				 <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
				 <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
				 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
				 <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
			input-enable;
			drive-strength = <MTK_DRIVE_4mA>;
			bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
		};

		pins_clk {
			pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
			drive-strength = <MTK_DRIVE_4mA>;
			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
		};
	};

	pwm_pins_a: pwm@0 {
		pins_pwm {
			pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
				 <MT7623_PIN_204_PWM1_FUNC_PWM1>,
				 <MT7623_PIN_205_PWM2_FUNC_PWM2>,
				 <MT7623_PIN_206_PWM3_FUNC_PWM3>,
				 <MT7623_PIN_207_PWM4_FUNC_PWM4>;
		};
	};

	spi0_pins_a: spi@0 {
		pins_spi {
			pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
				<MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
				<MT7623_PIN_55_SPI0_MI_FUNC_SPI0_MI>,
				<MT7623_PIN_56_SPI0_MO_FUNC_SPI0_MO>;
			bias-disable;
		};
	};

	uart0_pins_a: uart@0 {
		pins_dat {
			pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
				 <MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
		};
	};

	uart1_pins_a: uart@1 {
		pins_dat {
			pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
				 <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
		};
	};
};

&pwm {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_pins_a>;
	status = "okay";
};

&pwrap {
	mt6323 {
		mt6323led: led {
			compatible = "mediatek,mt6323-led";
			#address-cells = <1>;
			#size-cells = <0>;

			led@0 {
				reg = <0>;
				label = "bpi-r2:isink:green";
				default-state = "off";
			};

			led@1 {
				reg = <1>;
				label = "bpi-r2:isink:red";
				default-state = "off";
			};

			led@2 {
				reg = <2>;
				label = "bpi-r2:isink:blue";
				default-state = "off";
			};
		};
	};
};

&spi0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0_pins_a>;
	status = "okay";
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_pins_a>;
	status = "disabled";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart1_pins_a>;
	status = "disabled";
};

&uart2 {
	status = "okay";
};

&usb1 {
	vusb33-supply = <&mt6323_vusb_reg>;
	status = "okay";
};

&usb2 {
	vusb33-supply = <&mt6323_vusb_reg>;
	status = "okay";
};

&u3phy1 {
	status = "okay";
};

&u3phy2 {
	status = "okay";
};

