Linux Audio

Check our new training course

Linux kernel drivers training

Mar 31-Apr 9, 2025, special US time zones
Register
Loading...
v6.2
  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 = <&reg_dldo4>;
 75	phy-supply = <&reg_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 = <&reg_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 = <&reg_dcdc1>;
123	vqmmc-supply = <&reg_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 = <&reg_dcdc1>;
131	vqmmc-supply = <&reg_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&reg_dc1sw {
146	regulator-min-microvolt = <3300000>;
147	regulator-max-microvolt = <3300000>;
148	regulator-name = "vcc-lcd";
149};
150
151&reg_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 = <&reg_vcc5v0>;
201	usb2_vbus-supply = <&reg_vcc5v0>;
202	status = "okay";
203};
v5.14.15
  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 = <&reg_dldo4>;
 75	phy-supply = <&reg_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 = <&reg_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 = <&reg_dcdc1>;
123	vqmmc-supply = <&reg_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 = <&reg_dcdc1>;
131	vqmmc-supply = <&reg_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&reg_dc1sw {
146	regulator-min-microvolt = <3300000>;
147	regulator-max-microvolt = <3300000>;
148	regulator-name = "vcc-lcd";
149};
150
151&reg_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 = <&reg_vcc5v0>;
201	usb2_vbus-supply = <&reg_vcc5v0>;
202	status = "okay";
203};