Skip to content

Commit 6038f30

Browse files
committed
Merge tag 'amlogic-arm64-dt-for-v6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
Amlogic ARM64 DT Changes for v6.19: - Fix the PCIe DBI memory region name - Add ISP nodes for Amlogic C3 - Add power controller nodes for Amlogic S6/S7/S7D - Add Pinctrl node for Amlogic A4 - Add AO Secure node for Amlogic S6/S7/S7D - Add GPIO Interrupt node for Amlogic S6/S7/S7D - Fix S922X cache layout - New Boards: - Tanix TX9 Pro * tag 'amlogic-arm64-dt-for-v6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux: arm64: dts: amlogic: meson-g12b: Fix L2 cache reference for S922X CPUs arm64: dts: Add gpio_intc node for Amlogic S7D SoCs arm64: dts: Add gpio_intc node for Amlogic S7 SoCs arm64: dts: Add gpio_intc node for Amlogic S6 SoCs arm64: dts: amlogic: s7d: add ao secure node arm64: dts: amlogic: s7: add ao secure node arm64: dts: amlogic: s6: add ao secure node arm64: dts: amlogic: Fix the register name of the 'DBI' region dts: arm64: amlogic: add a5 pinctrl node arm64: dts: amlogic: s7d: add power domain controller node arm64: dts: amlogic: s7: add power domain controller node arm64: dts: amlogic: s6: add power domain controller node dts: arm64: amlogic: Add ISP related nodes for C3 arm64: dts: meson: add initial device-tree for Tanix TX9 Pro dt-bindings: arm: amlogic: add support for Tanix TX9 Pro Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2 parents feae664 + a7ab6f9 commit 6038f30

12 files changed

Lines changed: 443 additions & 5 deletions

File tree

Documentation/devicetree/bindings/arm/amlogic.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ properties:
134134
- libretech,aml-s912-pc
135135
- minix,neo-u9h
136136
- nexbox,a1
137+
- oranth,tx9-pro
137138
- tronsmart,vega-s96
138139
- ugoos,am3
139140
- videostrong,gxm-kiii-pro

arch/arm64/boot/dts/amlogic/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb
8080
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
8181
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
8282
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
83+
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-tx9-pro.dtb
8384
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-ugoos-am3.dtb
8485
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
8586
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb

arch/arm64/boot/dts/amlogic/amlogic-a5.dtsi

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "amlogic-a4-common.dtsi"
77
#include "amlogic-a5-reset.h"
8+
#include <dt-bindings/pinctrl/amlogic,pinctrl.h>
89
#include <dt-bindings/power/amlogic,a5-pwrc.h>
910
/ {
1011
cpus {
@@ -58,6 +59,95 @@
5859
#reset-cells = <1>;
5960
};
6061

62+
periphs_pinctrl: pinctrl@4000 {
63+
compatible = "amlogic,pinctrl-a5",
64+
"amlogic,pinctrl-a4";
65+
#address-cells = <2>;
66+
#size-cells = <2>;
67+
ranges = <0x0 0x0 0x0 0x4000 0x0 0x300>;
68+
69+
gpioz: gpio@c0 {
70+
reg = <0x0 0xc0 0x0 0x40>,
71+
<0x0 0x18 0x0 0x8>;
72+
reg-names = "gpio", "mux";
73+
gpio-controller;
74+
#gpio-cells = <2>;
75+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_Z<<8) 16>;
76+
};
77+
78+
gpiox: gpio@100 {
79+
reg = <0x0 0x100 0x0 0x40>,
80+
<0x0 0xc 0x0 0xc>;
81+
reg-names = "gpio", "mux";
82+
gpio-controller;
83+
#gpio-cells = <2>;
84+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_X<<8) 20>;
85+
};
86+
87+
gpiot: gpio@140 {
88+
reg = <0x0 0x140 0x0 0x40>,
89+
<0x0 0x2c 0x0 0x8>;
90+
reg-names = "gpio", "mux";
91+
gpio-controller;
92+
#gpio-cells = <2>;
93+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_T<<8) 14>;
94+
};
95+
96+
gpiod: gpio@180 {
97+
reg = <0x0 0x180 0x0 0x40>,
98+
<0x0 0x40 0x0 0x8>;
99+
reg-names = "gpio", "mux";
100+
gpio-controller;
101+
#gpio-cells = <2>;
102+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_D<<8) 16>;
103+
};
104+
105+
gpioe: gpio@1c0 {
106+
reg = <0x0 0x1c0 0x0 0x40>,
107+
<0x0 0x48 0x0 0x4>;
108+
reg-names = "gpio", "mux";
109+
gpio-controller;
110+
#gpio-cells = <2>;
111+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_E<<8) 2>;
112+
};
113+
114+
gpioc: gpio@200 {
115+
reg = <0x0 0x200 0x0 0x40>,
116+
<0x0 0x24 0x0 0x8>;
117+
reg-names = "gpio", "mux";
118+
gpio-controller;
119+
#gpio-cells = <2>;
120+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_C<<8) 11>;
121+
};
122+
123+
gpiob: gpio@240 {
124+
reg = <0x0 0x240 0x0 0x40>,
125+
<0x0 0x0 0x0 0x8>;
126+
reg-names = "gpio", "mux";
127+
gpio-controller;
128+
#gpio-cells = <2>;
129+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_B<<8) 14>;
130+
};
131+
132+
gpioh: gpio@280 {
133+
reg = <0x0 0x280 0x0 0x40>,
134+
<0x0 0x4c 0x0 0x4>;
135+
reg-names = "gpio", "mux";
136+
gpio-controller;
137+
#gpio-cells = <2>;
138+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_H<<8) 5>;
139+
};
140+
141+
gpio_test_n: gpio@2c0 {
142+
reg = <0x0 0x2c0 0x0 0x40>,
143+
<0x0 0x3c 0x0 0x4>;
144+
reg-names = "gpio", "mux";
145+
gpio-controller;
146+
#gpio-cells = <2>;
147+
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_TEST_N<<8) 1>;
148+
};
149+
};
150+
61151
gpio_intc: interrupt-controller@4080 {
62152
compatible = "amlogic,a5-gpio-intc",
63153
"amlogic,meson-gpio-intc";

arch/arm64/boot/dts/amlogic/amlogic-c3-c308l-aw419.dts

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
aliases {
1818
serial0 = &uart_b;
1919
spi0 = &spifc;
20+
i2c2 = &i2c2;
2021
};
2122

2223
memory@0 {
@@ -146,6 +147,36 @@
146147
regulator-boot-on;
147148
regulator-always-on;
148149
};
150+
151+
camera_vdddo_1v8: regulator-camera-1v8 {
152+
compatible = "regulator-fixed";
153+
regulator-name = "CAMERA_VDDDO";
154+
regulator-min-microvolt = <1800000>;
155+
regulator-max-microvolt = <1800000>;
156+
vin-supply = <&vcc_3v3>;
157+
regulator-boot-on;
158+
regulator-always-on;
159+
};
160+
161+
camera_vdda_2v9: regulator-camera-2v9 {
162+
compatible = "regulator-fixed";
163+
regulator-name = "CAMERA_VDDA";
164+
regulator-min-microvolt = <2900000>;
165+
regulator-max-microvolt = <2900000>;
166+
vin-supply = <&vcc_5v>;
167+
regulator-boot-on;
168+
regulator-always-on;
169+
};
170+
171+
camera_vddd_1v2: regulator-camera-1v2 {
172+
compatible = "regulator-fixed";
173+
regulator-name = "CAMERA_VDDD";
174+
regulator-min-microvolt = <1200000>;
175+
regulator-max-microvolt = <1200000>;
176+
vin-supply = <&vcc_3v3>;
177+
regulator-boot-on;
178+
regulator-always-on;
179+
};
149180
};
150181

151182
&uart_b {
@@ -258,3 +289,56 @@
258289
vmmc-supply = <&sdcard>;
259290
vqmmc-supply = <&sdcard>;
260291
};
292+
293+
&i2c2 {
294+
status = "okay";
295+
pinctrl-names = "default";
296+
pinctrl-0 = <&i2c2_pins1>;
297+
clock-frequency = <100000>; /* default 100k */
298+
299+
imx290: sensor0@1a {
300+
compatible = "sony,imx290";
301+
reg = <0x1a>;
302+
clocks = <&clkc_pll CLKID_MCLK0>;
303+
clock-names = "xclk";
304+
clock-frequency = <37125000>;
305+
assigned-clocks = <&clkc_pll CLKID_MCLK_PLL>,
306+
<&clkc_pll CLKID_MCLK0>;
307+
assigned-clock-rates = <74250000>, <37125000>;
308+
309+
vdddo-supply = <&camera_vdddo_1v8>;
310+
vdda-supply = <&camera_vdda_2v9>;
311+
vddd-supply = <&camera_vddd_1v2>;
312+
313+
reset-gpios = <&gpio GPIOE_4 GPIO_ACTIVE_LOW>;
314+
315+
port {
316+
imx290_out: endpoint {
317+
data-lanes = <1 2 3 4>;
318+
link-frequencies = /bits/ 64 <222750000 148500000>;
319+
remote-endpoint = <&c3_mipi_csi_in>;
320+
};
321+
};
322+
};
323+
};
324+
325+
&csi2 {
326+
status = "okay";
327+
328+
ports {
329+
port@0 {
330+
c3_mipi_csi_in: endpoint {
331+
remote-endpoint = <&imx290_out>;
332+
data-lanes = <1 2 3 4>;
333+
};
334+
};
335+
};
336+
};
337+
338+
&adap {
339+
status = "okay";
340+
};
341+
342+
&isp {
343+
status = "okay";
344+
};

arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,5 +1031,93 @@
10311031
#size-cells = <0>;
10321032
};
10331033
};
1034+
1035+
csi2: csi2@ff018000 {
1036+
compatible = "amlogic,c3-mipi-csi2";
1037+
reg = <0x0 0xff018000 0x0 0x100>,
1038+
<0x0 0xff019000 0x0 0x300>,
1039+
<0x0 0xff01a000 0x0 0x100>;
1040+
reg-names = "aphy", "dphy", "host";
1041+
power-domains = <&pwrc PWRC_C3_MIPI_ISP_WRAP_ID>;
1042+
clocks = <&clkc_periphs CLKID_VAPB>,
1043+
<&clkc_periphs CLKID_CSI_PHY0>;
1044+
clock-names = "vapb", "phy0";
1045+
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
1046+
<&clkc_periphs CLKID_CSI_PHY0>;
1047+
assigned-clock-rates = <0>, <200000000>;
1048+
status = "disabled";
1049+
1050+
ports {
1051+
#address-cells = <1>;
1052+
#size-cells = <0>;
1053+
1054+
port@0 {
1055+
reg = <0>;
1056+
};
1057+
1058+
port@1 {
1059+
reg = <1>;
1060+
c3_mipi_csi_out: endpoint {
1061+
remote-endpoint = <&c3_adap_in>;
1062+
};
1063+
};
1064+
};
1065+
};
1066+
1067+
adap: adap@ff010000 {
1068+
compatible = "amlogic,c3-mipi-adapter";
1069+
reg = <0x0 0xff010000 0x0 0x100>,
1070+
<0x0 0xff01b000 0x0 0x100>,
1071+
<0x0 0xff01d000 0x0 0x200>;
1072+
reg-names = "top", "fd", "rd";
1073+
power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
1074+
clocks = <&clkc_periphs CLKID_VAPB>,
1075+
<&clkc_periphs CLKID_ISP0>;
1076+
clock-names = "vapb", "isp0";
1077+
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
1078+
<&clkc_periphs CLKID_ISP0>;
1079+
assigned-clock-rates = <0>, <400000000>;
1080+
status = "disabled";
1081+
1082+
ports {
1083+
#address-cells = <1>;
1084+
#size-cells = <0>;
1085+
1086+
port@0 {
1087+
reg = <0>;
1088+
c3_adap_in: endpoint {
1089+
remote-endpoint = <&c3_mipi_csi_out>;
1090+
};
1091+
};
1092+
1093+
port@1 {
1094+
reg = <1>;
1095+
c3_adap_out: endpoint {
1096+
remote-endpoint = <&c3_isp_in>;
1097+
};
1098+
};
1099+
};
1100+
};
1101+
1102+
isp: isp@ff000000 {
1103+
compatible = "amlogic,c3-isp";
1104+
reg = <0x0 0xff000000 0x0 0xf000>;
1105+
reg-names = "isp";
1106+
power-domains = <&pwrc PWRC_C3_ISP_TOP_ID>;
1107+
clocks = <&clkc_periphs CLKID_VAPB>,
1108+
<&clkc_periphs CLKID_ISP0>;
1109+
clock-names = "vapb", "isp0";
1110+
assigned-clocks = <&clkc_periphs CLKID_VAPB>,
1111+
<&clkc_periphs CLKID_ISP0>;
1112+
assigned-clock-rates = <0>, <400000000>;
1113+
interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>;
1114+
status = "disabled";
1115+
1116+
port {
1117+
c3_isp_in: endpoint {
1118+
remote-endpoint = <&c3_adap_out>;
1119+
};
1120+
};
1121+
};
10341122
};
10351123
};

arch/arm64/boot/dts/amlogic/amlogic-s6.dtsi

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <dt-bindings/interrupt-controller/arm-gic.h>
88
#include <dt-bindings/gpio/gpio.h>
99
#include <dt-bindings/pinctrl/amlogic,pinctrl.h>
10+
#include <dt-bindings/power/amlogic,s6-pwrc.h>
1011
/ {
1112
cpus {
1213
#address-cells = <2>;
@@ -41,6 +42,15 @@
4142
};
4243
};
4344

45+
sm: secure-monitor {
46+
compatible = "amlogic,meson-gxbb-sm";
47+
48+
pwrc: power-controller {
49+
compatible = "amlogic,s6-pwrc";
50+
#power-domain-cells = <1>;
51+
};
52+
};
53+
4454
timer {
4555
compatible = "arm,armv8-timer";
4656
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -189,6 +199,24 @@
189199
gpio-ranges = <&periphs_pinctrl 0 (AMLOGIC_GPIO_CC<<8) 2>;
190200
};
191201
};
202+
203+
gpio_intc: interrupt-controller@4080 {
204+
compatible = "amlogic,s6-gpio-intc",
205+
"amlogic,meson-gpio-intc";
206+
reg = <0x0 0x4080 0x0 0x20>;
207+
interrupt-controller;
208+
#interrupt-cells = <2>;
209+
amlogic,channel-interrupts =
210+
<10 11 12 13 14 15 16 17 18 19 20 21>;
211+
};
212+
213+
ao-secure@10220 {
214+
compatible = "amlogic,s6-ao-secure",
215+
"amlogic,meson-gx-ao-secure",
216+
"syscon";
217+
reg = <0x0 0x10220 0x0 0x140>;
218+
amlogic,has-chip-id;
219+
};
192220
};
193221
};
194222
};

0 commit comments

Comments
 (0)