1// SPDX-License-Identifier: GPL-2.0+ OR MIT 2// Copyright (C) 2021 Ivan Uvarov <i.uvarov@cognitivepilot.com> 3// Based on the sun8i-r40-bananapi-m2-ultra.dts, which is: 4// Copyright (C) 2017 Chen-Yu Tsai <wens@csie.org> 5// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> 6 7/dts-v1/; 8#include "sun8i-r40-feta40i.dtsi" 9 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/leds/common.h> 12 13/ { 14 model = "Forlinx OKA40i-C"; 15 compatible = "forlinx,oka40i-c", "forlinx,feta40i-c", "allwinner,sun8i-r40"; 16 17 aliases { 18 ethernet0 = &gmac; 19 serial0 = &uart0; 20 serial2 = &uart2; 21 serial3 = &uart3; 22 serial4 = &uart4; 23 serial5 = &uart5; /* RS485 */ 24 serial7 = &uart7; 25 }; 26 27 chosen { 28 stdout-path = "serial0:115200n8"; 29 }; 30 31 connector { 32 compatible = "hdmi-connector"; 33 type = "a"; 34 35 port { 36 hdmi_con_in: endpoint { 37 remote-endpoint = <&hdmi_out_con>; 38 }; 39 }; 40 }; 41 42 leds { 43 compatible = "gpio-leds"; 44 45 led-5 { /* this is how the leds are labeled on the board */ 46 gpios = <&pio 7 26 GPIO_ACTIVE_LOW>; /* PH26 */ 47 color = <LED_COLOR_ID_GREEN>; 48 function = LED_FUNCTION_STATUS; 49 }; 50 51 led-6 { 52 gpios = <&pio 8 15 GPIO_ACTIVE_LOW>; /* PI15 */ 53 color = <LED_COLOR_ID_BLUE>; 54 function = LED_FUNCTION_STATUS; 55 }; 56 }; 57 58 reg_vcc5v0: vcc5v0 { 59 compatible = "regulator-fixed"; 60 regulator-name = "vcc5v0"; 61 regulator-min-microvolt = <5000000>; 62 regulator-max-microvolt = <5000000>; 63 }; 64 65 wifi_pwrseq: wifi_pwrseq { 66 compatible = "mmc-pwrseq-simple"; 67 reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; // PB10 WIFI_EN 68 clocks = <&ccu CLK_OUTA>; 69 clock-names = "ext_clock"; 70 }; 71}; 72 73&ahci { 74 ahci-supply = <®_dldo4>; 75 phy-supply = <®_eldo2>; 76 status = "okay"; 77}; 78 79&de { 80 status = "okay"; 81}; 82 83&ehci1 { 84 status = "okay"; 85}; 86 87&ehci2 { 88 status = "okay"; 89}; 90 91&gmac { 92 pinctrl-names = "default"; 93 pinctrl-0 = <&gmac_rgmii_pins>; 94 phy-handle = <&phy1>; 95 phy-mode = "rgmii-id"; 96 phy-supply = <®_dcdc1>; 97 status = "okay"; 98}; 99 100&gmac_mdio { 101 phy1: ethernet-phy@1 { 102 compatible = "ethernet-phy-ieee802.3-c22"; 103 reg = <1>; 104 }; 105}; 106 107&hdmi { 108 status = "okay"; 109}; 110 111&hdmi_out { 112 hdmi_out_con: endpoint { 113 remote-endpoint = <&hdmi_con_in>; 114 }; 115}; 116 117&i2c2 { 118 status = "okay"; 119}; 120 121&mmc0 { 122 vmmc-supply = <®_dcdc1>; 123 vqmmc-supply = <®_dcdc1>; 124 bus-width = <4>; 125 cd-gpios = <&pio 8 11 GPIO_ACTIVE_LOW>; // PI11 126 status = "okay"; 127}; 128 129&mmc3 { 130 vmmc-supply = <®_dcdc1>; 131 vqmmc-supply = <®_dcdc1>; 132 bus-width = <4>; 133 cd-gpios = <&pio 8 10 GPIO_ACTIVE_LOW>; // PI10 134 status = "okay"; 135}; 136 137&ohci1 { 138 status = "okay"; 139}; 140 141&ohci2 { 142 status = "okay"; 143}; 144 145®_dc1sw { 146 regulator-min-microvolt = <3300000>; 147 regulator-max-microvolt = <3300000>; 148 regulator-name = "vcc-lcd"; 149}; 150 151®_dldo2 { 152 regulator-min-microvolt = <3300000>; 153 regulator-max-microvolt = <3300000>; 154 regulator-name = "vcc-wifi"; 155}; 156 157&tcon_tv0 { 158 status = "okay"; 159}; 160 161&uart0 { 162 pinctrl-names = "default"; 163 pinctrl-0 = <&uart0_pb_pins>; 164 status = "okay"; 165}; 166 167&uart2 { 168 pinctrl-names = "default"; 169 pinctrl-0 = <&uart2_pi_pins>, <&uart2_rts_cts_pi_pins>; 170 uart-has-rtscts; 171 status = "okay"; 172}; 173 174&uart3 { 175 pinctrl-names = "default"; 176 pinctrl-0 = <&uart3_pg_pins>, <&uart3_rts_cts_pg_pins>; 177 uart-has-rtscts; 178 status = "okay"; 179}; 180 181&uart4 { 182 pinctrl-names = "default"; 183 pinctrl-0 = <&uart4_pg_pins>; 184 status = "okay"; 185}; 186 187&uart5 { /* RS485 */ 188 pinctrl-names = "default"; 189 pinctrl-0 = <&uart5_ph_pins>; 190 status = "okay"; 191}; 192 193&uart7 { 194 pinctrl-names = "default"; 195 pinctrl-0 = <&uart7_pi_pins>; 196 status = "okay"; 197}; 198 199&usbphy { 200 usb1_vbus-supply = <®_vcc5v0>; 201 usb2_vbus-supply = <®_vcc5v0>; 202 status = "okay"; 203}; 204