| /* | 
|  * Copyright 2017-2018 Sean Wang <sean.wang@mediatek.com> | 
|  * | 
|  * SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
|  */ | 
|   | 
| /dts-v1/; | 
| #include <dt-bindings/input/input.h> | 
| #include "mt7623n.dtsi" | 
| #include "mt6323.dtsi" | 
|   | 
| / { | 
|     model = "Bananapi BPI-R2"; | 
|     compatible = "bananapi,bpi-r2", "mediatek,mt7623"; | 
|   | 
|     aliases { | 
|         serial2 = &uart2; | 
|     }; | 
|   | 
|     chosen { | 
|         stdout-path = "serial2:115200n8"; | 
|     }; | 
|   | 
|     connector { | 
|         compatible = "hdmi-connector"; | 
|         label = "hdmi"; | 
|         type = "d"; | 
|         ddc-i2c-bus = <&hdmiddc0>; | 
|   | 
|         port { | 
|             hdmi_connector_in: endpoint { | 
|                 remote-endpoint = <&hdmi0_out>; | 
|             }; | 
|         }; | 
|     }; | 
|   | 
|     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>; | 
|         }; | 
|     }; | 
|   | 
|     reg_1p8v: regulator-1p8v { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "fixed-1.8V"; | 
|         regulator-min-microvolt = <1800000>; | 
|         regulator-max-microvolt = <1800000>; | 
|         regulator-boot-on; | 
|         regulator-always-on; | 
|     }; | 
|   | 
|     reg_3p3v: regulator-3p3v { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "fixed-3.3V"; | 
|         regulator-min-microvolt = <3300000>; | 
|         regulator-max-microvolt = <3300000>; | 
|         regulator-boot-on; | 
|         regulator-always-on; | 
|     }; | 
|   | 
|     reg_5v: regulator-5v { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "fixed-5V"; | 
|         regulator-min-microvolt = <5000000>; | 
|         regulator-max-microvolt = <5000000>; | 
|         regulator-boot-on; | 
|         regulator-always-on; | 
|     }; | 
|   | 
|     reg_vgpu: fixedregulator@0 { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "vdd_fixed_vgpu"; | 
|         regulator-min-microvolt = <1150000>; | 
|         regulator-max-microvolt = <1150000>; | 
|     }; | 
|   | 
|     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 240 GPIO_ACTIVE_LOW>; | 
|             default-state = "off"; | 
|         }; | 
|   | 
|         green { | 
|             label = "bpi-r2:pio:green"; | 
|             gpios = <&pio 241 GPIO_ACTIVE_LOW>; | 
|             default-state = "off"; | 
|         }; | 
|   | 
|         red { | 
|             label = "bpi-r2:pio:red"; | 
|             gpios = <&pio 239 GPIO_ACTIVE_LOW>; | 
|             default-state = "off"; | 
|         }; | 
|     }; | 
|   | 
|     memory@80000000 { | 
|         device_type = "memory"; | 
|         reg = <0 0x80000000 0 0x80000000>; | 
|     }; | 
| }; | 
|   | 
| &bls { | 
|     status = "okay"; | 
| }; | 
|   | 
| &btif { | 
|     status = "okay"; | 
| }; | 
|   | 
| &cec { | 
|     status = "okay"; | 
| }; | 
|   | 
| &cir { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&cir_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &crypto { | 
|     status = "okay"; | 
| }; | 
|   | 
| &dpi0 { | 
|     status = "okay"; | 
|   | 
|     ports { | 
|         #address-cells = <1>; | 
|         #size-cells = <0>; | 
|         port@0 { | 
|             reg = <0>; | 
|             dpi0_out: endpoint { | 
|                 remote-endpoint = <&hdmi0_in>; | 
|             }; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| ð { | 
|     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"; | 
|             reg = <0>; | 
|             reset-gpios = <&pio 33 0>; | 
|             core-supply = <&mt6323_vpa_reg>; | 
|             io-supply = <&mt6323_vemc3v3_reg>; | 
|   | 
|             ports { | 
|                 #address-cells = <1>; | 
|                 #size-cells = <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; | 
|                         pause; | 
|                     }; | 
|                 }; | 
|             }; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &hdmi0 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&hdmi_pins_a>; | 
|     status = "okay"; | 
|   | 
|     ports { | 
|         #address-cells = <1>; | 
|         #size-cells = <0>; | 
|         port@0 { | 
|             reg = <0>; | 
|             hdmi0_in: endpoint { | 
|                 remote-endpoint = <&dpi0_out>; | 
|             }; | 
|         }; | 
|   | 
|         port@1 { | 
|             reg = <1>; | 
|             hdmi0_out: endpoint { | 
|                 remote-endpoint = <&hdmi_connector_in>; | 
|             }; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &hdmiddc0 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&hdmi_ddc_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &hdmi_phy { | 
|     mediatek,ibias = <0xa>; | 
|     mediatek,ibias_up = <0x1c>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &i2c0 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&i2c0_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &i2c1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&i2c1_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &mali { | 
|     mali-supply = <®_vgpu>; | 
|     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 = <®_3p3v>; | 
|     vqmmc-supply = <®_1p8v>; | 
|     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 GPIO_ACTIVE_LOW>; | 
|     vmmc-supply = <®_3p3v>; | 
|     vqmmc-supply = <®_3p3v>; | 
| }; | 
|   | 
| &mt6323_leds { | 
|     status = "okay"; | 
|   | 
|     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"; | 
|     }; | 
| }; | 
|   | 
| &pcie { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pcie_default>; | 
|     status = "okay"; | 
|   | 
|     pcie@0,0 { | 
|         status = "okay"; | 
|     }; | 
|   | 
|     pcie@1,0 { | 
|         status = "okay"; | 
|     }; | 
| }; | 
|   | 
| &pcie0_phy { | 
|     status = "okay"; | 
| }; | 
|   | 
| &pcie1_phy { | 
|     status = "okay"; | 
| }; | 
|   | 
| &pwm { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pwm_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &spi0 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&spi0_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &uart0 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&uart0_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &uart1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&uart1_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &uart2 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&uart2_pins_a>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &usb1 { | 
|     vusb33-supply = <®_3p3v>; | 
|     vbus-supply = <®_5v>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &usb2 { | 
|     vusb33-supply = <®_3p3v>; | 
|     vbus-supply = <®_5v>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &u3phy1 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &u3phy2 { | 
|     status = "okay"; | 
| }; |