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
34dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb34dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
35dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb35dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
36dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb36dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
37dtb-$(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