/* * 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"; }; ð { 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"; };