History

arm64: dts: add support for SM1 based SEI Robotics SEI610

Add support for the Amlogic SM1 Based SEI610 board. The SM1 SoC is a derivative of the G12A SoC Family with : - Cortex-A55 core instead of A53 - more power domains, including USB & PCIe - a neural network co-processor (NNA) - a CSI input and image processor - some changes in the audio complex, thus not yet enabled The SEI610 board is a derivative of the SEI510 board with : - removed ADC based touch button, replaced with 3x GPIO buttons - physical switch disabling on-board MICs - USB-C port for USB 2.0 OTG - On-board FTDI USB2SERIAL port for Linux console Audio, Display and USB support will be added later when support of the corresponding power domains will be added, for now they are kept disabled.

Neil Armstrong committed 7 years ago

Commit e9a12e11 parent effdd8a3 files · +369 −0Browse files

Unified · Split

3 files
  1. arch/arm64/boot/dts/amlogic/Makefile +1 −0
  2. arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts +300 −0
  3. arch/arm64/boot/dts/amlogic/meson-sm1.dtsi +68 −0
arch/arm64/boot/dts/amlogic/Makefile+1−0
@@ -34,3 +34,4 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb · 33 unmodified lines
3434 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
3535 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
3636 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
37+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts+300−0
@@ -0,0 +1,300 @@
1+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+/*
3+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
4+ */
5+
6+/dts-v1/;
7+
8+#include "meson-sm1.dtsi"
9+#include <dt-bindings/gpio/gpio.h>
10+#include <dt-bindings/input/input.h>
11+#include <dt-bindings/gpio/meson-g12a-gpio.h>
12+
13+/ {
14+ compatible = "seirobotics,sei610", "amlogic,sm1";
15+ model = "SEI Robotics SEI610";
16+
17+ aliases {
18+ serial0 = &uart_AO;
19+ ethernet0 = &ethmac;
20+ };
21+
22+ chosen {
23+ stdout-path = "serial0:115200n8";
24+ };
25+
26+ emmc_pwrseq: emmc-pwrseq {
27+ compatible = "mmc-pwrseq-emmc";
28+ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
29+ };
30+
31+ gpio-keys {
32+ compatible = "gpio-keys-polled";
33+ poll-interval = <100>;
34+
35+ key1 {
36+ label = "A";
37+ linux,code = <BTN_0>;
38+ gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>;
39+ };
40+
41+ key2 {
42+ label = "B";
43+ linux,code = <BTN_1>;
44+ gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
45+ };
46+
47+ key3 {
48+ label = "C";
49+ linux,code = <BTN_2>;
50+ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
51+ };
52+ };
53+
54+ leds {
55+ compatible = "gpio-leds";
56+
57+ bluetooth {
58+ label = "sei610:blue:bt";
59+ gpios = <&gpio GPIOC_7 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
60+ default-state = "off";
61+ };
62+ };
63+
64+ pwmleds {
65+ compatible = "pwm-leds";
66+
67+ power {
68+ label = "sei610:red:power";
69+ pwms = <&pwm_AO_ab 0 30518 0>;
70+ max-brightness = <255>;
71+ linux,default-trigger = "default-on";
72+ active-low;
73+ };
74+ };
75+
76+ memory@0 {
77+ device_type = "memory";
78+ reg = <0x0 0x0 0x0 0x40000000>;
79+ };
80+
81+ ao_5v: regulator-ao_5v {
82+ compatible = "regulator-fixed";
83+ regulator-name = "AO_5V";
84+ regulator-min-microvolt = <5000000>;
85+ regulator-max-microvolt = <5000000>;
86+ vin-supply = <&dc_in>;
87+ regulator-always-on;
88+ };
89+
90+ dc_in: regulator-dc_in {
91+ compatible = "regulator-fixed";
92+ regulator-name = "DC_IN";
93+ regulator-min-microvolt = <5000000>;
94+ regulator-max-microvolt = <5000000>;
95+ regulator-always-on;
96+ };
97+
98+ emmc_1v8: regulator-emmc_1v8 {
99+ compatible = "regulator-fixed";
100+ regulator-name = "EMMC_1V8";
101+ regulator-min-microvolt = <1800000>;
102+ regulator-max-microvolt = <1800000>;
103+ vin-supply = <&vddao_3v3>;
104+ regulator-always-on;
105+ };
106+
107+ vddao_3v3: regulator-vddao_3v3 {
108+ compatible = "regulator-fixed";
109+ regulator-name = "VDDAO_3V3";
110+ regulator-min-microvolt = <3300000>;
111+ regulator-max-microvolt = <3300000>;
112+ vin-supply = <&dc_in>;
113+ regulator-always-on;
114+ };
115+
116+ /* Used by Tuner, RGB Led & IR Emitter LED array */
117+ vddao_3v3_t: regulator-vddao_3v3_t {
118+ compatible = "regulator-fixed";
119+ regulator-name = "VDDAO_3V3_T";
120+ regulator-min-microvolt = <3300000>;
121+ regulator-max-microvolt = <3300000>;
122+ vin-supply = <&vddao_3v3>;
123+ gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
124+ enable-active-low;
125+ regulator-always-on;
126+ };
127+
128+ vddio_ao1v8: regulator-vddio_ao1v8 {
129+ compatible = "regulator-fixed";
130+ regulator-name = "VDDIO_AO1V8";
131+ regulator-min-microvolt = <1800000>;
132+ regulator-max-microvolt = <1800000>;
133+ vin-supply = <&vddao_3v3>;
134+ regulator-always-on;
135+ };
136+
137+ reserved-memory {
138+ /* TEE Reserved Memory */
139+ bl32_reserved: bl32@5000000 {
140+ reg = <0x0 0x05300000 0x0 0x2000000>;
141+ no-map;
142+ };
143+ };
144+
145+ sdio_pwrseq: sdio-pwrseq {
146+ compatible = "mmc-pwrseq-simple";
147+ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
148+ clocks = <&wifi32k>;
149+ clock-names = "ext_clock";
150+ };
151+
152+ wifi32k: wifi32k {
153+ compatible = "pwm-clock";
154+ #clock-cells = <0>;
155+ clock-frequency = <32768>;
156+ pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
157+ };
158+};
159+
160+&cec_AO {
161+ pinctrl-0 = <&cec_ao_a_h_pins>;
162+ pinctrl-names = "default";
163+ status = "disabled";
164+ hdmi-phandle = <&hdmi_tx>;
165+};
166+
167+&cecb_AO {
168+ pinctrl-0 = <&cec_ao_b_h_pins>;
169+ pinctrl-names = "default";
170+ status = "okay";
171+ hdmi-phandle = <&hdmi_tx>;
172+};
173+
174+&ethmac {
175+ status = "okay";
176+ phy-handle = <&internal_ephy>;
177+ phy-mode = "rmii";
178+};
179+
180+&i2c3 {
181+ status = "okay";
182+ pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
183+ pinctrl-names = "default";
184+};
185+
186+&ir {
187+ status = "okay";
188+ pinctrl-0 = <&remote_input_ao_pins>;
189+ pinctrl-names = "default";
190+};
191+
192+&pwm_AO_ab {
193+ status = "okay";
194+ pinctrl-0 = <&pwm_ao_a_pins>;
195+ pinctrl-names = "default";
196+ clocks = <&xtal>;
197+ clock-names = "clkin0";
198+};
199+
200+&pwm_ef {
201+ status = "okay";
202+ pinctrl-0 = <&pwm_e_pins>;
203+ pinctrl-names = "default";
204+ clocks = <&xtal>;
205+ clock-names = "clkin0";
206+};
207+
208+&saradc {
209+ status = "okay";
210+ vref-supply = <&vddio_ao1v8>;
211+};
212+
213+/* SDIO */
214+&sd_emmc_a {
215+ status = "okay";
216+ pinctrl-0 = <&sdio_pins>;
217+ pinctrl-1 = <&sdio_clk_gate_pins>;
218+ pinctrl-names = "default", "clk-gate";
219+ #address-cells = <1>;
220+ #size-cells = <0>;
221+
222+ bus-width = <4>;
223+ cap-sd-highspeed;
224+ sd-uhs-sdr50;
225+ max-frequency = <100000000>;
226+
227+ non-removable;
228+ disable-wp;
229+
230+ mmc-pwrseq = <&sdio_pwrseq>;
231+
232+ vmmc-supply = <&vddao_3v3>;
233+ vqmmc-supply = <&vddio_ao1v8>;
234+
235+ brcmf: wifi@1 {
236+ reg = <1>;
237+ compatible = "brcm,bcm4329-fmac";
238+ };
239+};
240+
241+/* SD card */
242+&sd_emmc_b {
243+ status = "okay";
244+ pinctrl-0 = <&sdcard_c_pins>;
245+ pinctrl-1 = <&sdcard_clk_gate_c_pins>;
246+ pinctrl-names = "default", "clk-gate";
247+
248+ bus-width = <4>;
249+ cap-sd-highspeed;
250+ max-frequency = <50000000>;
251+ disable-wp;
252+
253+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
254+ vmmc-supply = <&vddao_3v3>;
255+ vqmmc-supply = <&vddao_3v3>;
256+};
257+
258+/* eMMC */
259+&sd_emmc_c {
260+ status = "okay";
261+ pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
262+ pinctrl-1 = <&emmc_clk_gate_pins>;
263+ pinctrl-names = "default", "clk-gate";
264+
265+ bus-width = <8>;
266+ cap-mmc-highspeed;
267+ mmc-ddr-1_8v;
268+ mmc-hs200-1_8v;
269+ max-frequency = <200000000>;
270+ non-removable;
271+ disable-wp;
272+
273+ mmc-pwrseq = <&emmc_pwrseq>;
274+ vmmc-supply = <&vddao_3v3>;
275+ vqmmc-supply = <&emmc_1v8>;
276+};
277+
278+&uart_A {
279+ status = "okay";
280+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
281+ pinctrl-names = "default";
282+ uart-has-rtscts;
283+
284+ bluetooth {
285+ compatible = "brcm,bcm43438-bt";
286+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
287+ max-speed = <2000000>;
288+ clocks = <&wifi32k>;
289+ clock-names = "lpo";
290+ vbat-supply = <&vddao_3v3>;
291+ vddio-supply = <&vddio_ao1v8>;
292+ };
293+};
294+
295+/* Exposed via the on-board USB to Serial FT232RL IC */
296+&uart_AO {
297+ status = "okay";
298+ pinctrl-0 = <&uart_ao_a_pins>;
299+ pinctrl-names = "default";
300+};
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi+68−0
@@ -0,0 +1,68 @@
1+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+/*
3+ * Copyright (c) 2019 BayLibre, SAS
4+ * Author: Neil Armstrong <narmstrong@baylibre.com>
5+ */
6+
7+#include "meson-g12-common.dtsi"
8+
9+/ {
10+ compatible = "amlogic,sm1";
11+
12+ cpus {
13+ #address-cells = <0x2>;
14+ #size-cells = <0x0>;
15+
16+ cpu0: cpu@0 {
17+ device_type = "cpu";
18+ compatible = "arm,cortex-a55";
19+ reg = <0x0 0x0>;
20+ enable-method = "psci";
21+ next-level-cache = <&l2>;
22+ };
23+
24+ cpu1: cpu@1 {
25+ device_type = "cpu";
26+ compatible = "arm,cortex-a55";
27+ reg = <0x0 0x1>;
28+ enable-method = "psci";
29+ next-level-cache = <&l2>;
30+ };
31+
32+ cpu2: cpu@2 {
33+ device_type = "cpu";
34+ compatible = "arm,cortex-a55";
35+ reg = <0x0 0x2>;
36+ enable-method = "psci";
37+ next-level-cache = <&l2>;
38+ };
39+
40+ cpu3: cpu@3 {
41+ device_type = "cpu";
42+ compatible = "arm,cortex-a55";
43+ reg = <0x0 0x3>;
44+ enable-method = "psci";
45+ next-level-cache = <&l2>;
46+ };
47+
48+ l2: l2-cache0 {
49+ compatible = "cache";
50+ };
51+ };
52+};
53+
54+&cecb_AO {
55+ compatible = "amlogic,meson-sm1-ao-cec";
56+};
57+
58+&clk_msr {
59+ compatible = "amlogic,meson-sm1-clk-measure";
60+};
61+
62+&pwrc_vpu {
63+ status = "disabled";
64+};
65+
66+&vpu {
67+ status = "disabled";
68+};

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t