// SPDX-License-Identifier: (GPL-2.0+ OR MIT) // Copyright (c) 2017 Icenowy Zheng // Based on sun50i-a64-pine64.dts, which is: // Copyright (c) 2016 ARM Ltd. /dts-v1/; #include "sun50i-a64-sopine.dtsi" #include / { model = "SoPine with baseboard"; compatible = "pine64,sopine-baseboard", "pine64,sopine", "allwinner,sun50i-a64"; aliases { ethernet0 = &emac; serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; serial4 = &uart4; }; chosen { stdout-path = "serial0:115200n8"; }; hdmi-connector { compatible = "hdmi-connector"; type = "a"; port { hdmi_con_in: endpoint { remote-endpoint = <&hdmi_out_con>; }; }; }; reg_vcc1v8: vcc1v8 { compatible = "regulator-fixed"; regulator-name = "vcc1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; wifi_pwrseq: wifi_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ }; backlight: backlight { compatible = "pwm-backlight"; pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; default-brightness-level = <8>; enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* LCD-BL-EN: PH10 */ }; pps { compatible = "pps-gpio"; gpios = <&pio 2 8 IRQ_TYPE_EDGE_RISING>; /* PC8 */ }; onewire { compatible = "w1-gpio"; gpios = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */ }; }; &ac_power_supply { status = "okay"; }; &battery_power_supply { status = "okay"; }; &codec { status = "okay"; }; &codec_analog { status = "okay"; }; &dai { status = "okay"; }; &de { status = "okay"; }; &dphy { status = "okay"; }; &dsi { vcc-dsi-supply = <®_dldo1>; /* VCC3V3-DSI */ #address-cells = <1>; #size-cells = <0>; status = "okay"; panel@0 { compatible = "feiyang,fy07024di26a30d"; reg = <0>; avdd-supply = <®_dc1sw>; /* VCC-LCD */ dvdd-supply = <®_dldo2>; /* VCC-MIPI */ reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* LCD-RST: PD24 */ backlight = <&backlight>; }; }; ®_dc1sw { regulator-always-on; regulator-name = "dc1sw"; }; ®_dldo2 { regulator-always-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-mipi-io"; }; &r_pwm { pinctrl-names = "default"; pinctrl-0 = <&r_pwm_pin>; status = "okay"; }; &ehci0 { status = "okay"; }; &ehci1 { status = "okay"; }; &emac { pinctrl-names = "default"; pinctrl-0 = <&rgmii_pins>; phy-mode = "rgmii"; phy-handle = <&ext_rgmii_phy>; phy-supply = <®_dc1sw>; status = "okay"; }; &hdmi { hvcc-supply = <®_dldo1>; status = "okay"; }; &hdmi_out { hdmi_out_con: endpoint { remote-endpoint = <&hdmi_con_in>; }; }; &spi0 { status = "okay"; cs-gpios = <0>, <&pio 2 4 0>, <&pio 7 7 0>; /* PC4 and PH7 */ num-cs = <3>; lsm9ds1-imu { compatible = "st,lsm9ds1-imu"; reg = <1>; spi-max-frequency = <10000000>; spi-cpol; spi-cpha; interrupt-parent = <&pio>; interrupts = <7 9 IRQ_TYPE_EDGE_RISING>; /* PH9 */ }; lsm9ds1-magn { compatible = "st,lsm9ds1-magn"; reg = <2>; spi-max-frequency = <10000000>; spi-cpol; spi-cpha; interrupt-parent = <&pio>; interrupts = <2 7 IRQ_TYPE_EDGE_RISING>; /* PC7 */ }; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; gt911@5d { compatible = "goodix,gt911"; reg = <0x5d>; interrupt-parent = <&pio>; interrupts = <7 4 IRQ_TYPE_EDGE_RISING>; /* PH4 */ reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ AVDD28-supply = <®_ldo_io0>; /* VCC-CTP: GPIO0-LDO */ }; }; &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; status = "okay"; lsm9ds1-imu@6b { compatible = "st,lsm9ds1-imu"; reg = <0x6b>; interrupt-parent = <&pio>; interrupts = <7 9 IRQ_TYPE_EDGE_RISING>; /* PH9 */ }; lsm9ds1-magn@1e { compatible = "st,lsm9ds1-magn"; reg = <0x1e>; interrupt-parent = <&pio>; interrupts = <2 7 IRQ_TYPE_EDGE_RISING>; /* PC7 */ }; mlx90614@5a { compatible = "melexis,mlx90614"; reg = <0x5a>; wakeup-gpios = <&pio 7 3 GPIO_ACTIVE_HIGH>; /* PH3 */ }; }; ®_ldo_io0 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-ctp"; status = "okay"; }; &i2s2 { status = "okay"; }; &mdio { ext_rgmii_phy: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; }; }; &mmc1 { pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; vmmc-supply = <®_dldo4>; vqmmc-supply = <®_eldo1>; mmc-pwrseq = <&wifi_pwrseq>; non-removable; bus-width = <4>; status = "okay"; }; &mmc2 { pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; vmmc-supply = <®_dcdc1>; vqmmc-supply = <®_vcc1v8>; bus-width = <8>; non-removable; cap-mmc-hw-reset; status = "okay"; }; &ohci0 { status = "okay"; }; &ohci1 { status = "okay"; }; ®_dc1sw { /* * Ethernet PHY needs 30ms to properly power up and some more * to initialize. 100ms should be plenty of time to finish * whole process. */ regulator-enable-ramp-delay = <100000>; regulator-name = "vcc-phy"; }; ®_dldo1 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-hdmi"; }; ®_dldo2 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-mipi"; }; ®_dldo4 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc-wifi"; }; &simplefb_hdmi { vcc-hdmi-supply = <®_dldo1>; }; &sound { simple-audio-card,aux-devs = <&codec_analog>; simple-audio-card,widgets = "Microphone", "Microphone Jack", "Headphone", "Headphone Jack"; simple-audio-card,routing = "Left DAC", "AIF1 Slot 0 Left", "Right DAC", "AIF1 Slot 0 Right", "Headphone Jack", "HP", "AIF1 Slot 0 Left ADC", "Left ADC", "AIF1 Slot 0 Right ADC", "Right ADC", "MIC2", "Microphone Jack"; status = "okay"; }; &sound_hdmi { status = "okay"; }; &ths { status = "okay"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; status = "okay"; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; uart-has-rtscts = <1>; status = "okay"; bluetooth { compatible = "realtek,rtl8723bs-bt"; device-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */ host-wake-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */ }; }; /* On Pi-2 connector */ &uart2 { pinctrl-names = "default"; pinctrl-0 = <&uart2_pins>; status = "okay"; }; /* On Euler connector */ &uart3 { pinctrl-names = "default"; pinctrl-0 = <&uart3_pins>; status = "okay"; }; /* On Euler connector, RTS/CTS optional */ &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; status = "disabled"; }; &usb_otg { dr_mode = "host"; status = "okay"; }; &usbphy { status = "okay"; };