devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs
@ 2023-08-23 21:36 Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 01/15] arm64: dts: meson: a1: reorder includes to keep them sorted Dmitry Rokosov
                   ` (16 more replies)
  0 siblings, 17 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

This patch series introduces device tree declarations for various
peripheral IPs of the A1 SoC family, including clock controllers, EFUSE,
USB, SPI Flash Controller, SDIO, and UART_AO:
    - CLK: A1 SoC has four types on the board, namely PLL, Peripherals,
      CPU, and Audio, but only Amlogic A1 PLL and Peripherals clock
      controllers are currently supported.
    - EFUSE: consists of a 4k bit One Time Programmable (OTP) memory
      divided into 32 128-bit blocks, and data is accessed using the APB
      bus through software or the Key-ladder integrated with the EFUSE
      block.
    - USB: only one USB 2.0 high-speed port is available in the A1 SoC,
      supporting both HOST and DEVICE modes for OTG.
    - SPI Flash Controller: 4-bit QPI/SPI NOR Flash or NAND FLASH
      controller.
    - SDIO: for WiFi/IEEE802.11 connection.
    - UART_AO: for Bluetooth connection.
    - HWRNG: hardware random generator integrated into SoC.
    - AO SECURE: board info registers.

The above peripherals are integrated to new AD402 board device tree.

Changes v2 since v1 at [1]:
    - reorder meson-a1 dtsi includes to keep them sorted
    - remove extra empty lines
    - purge the unnecessary 'okay' status
    - reorder all device tree nodes (existing and new) sorted by 'reg'
      values
    - introduce new saradc definition
    - add hwrng dts node
    - provide ao secure dts node with board info registers
    - include all changes to new AD402 board device tree
    - add AD402 board to bindings

Links:
    [1] https://lore.kernel.org/all/20230607201641.20982-1-ddrokosov@sberdevices.ru/

Alexey Romanov (3):
  arm64: dts: meson: a1: enable efuse controller and setup its clk
  arm64: dts: meson: a1: add hw rng node
  arm64: dts: meson: a1: add ao secure node

Dmitry Rokosov (8):
  arm64: dts: meson: a1: reorder includes to keep them sorted
  arm64: dts: meson: a1: remove extra empty line before reset node
  arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value
  arm64: dts: meson: a1: reorder gpio_intc node definition
  arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers
  arm64: dts: meson: a1: support USB controller in OTG mode
  arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC
  dt-bindings: arm: amlogic: add Amlogic AD402 bindings

George Stark (1):
  arm64: dts: meson: a1: add saradc definition

Jan Dakinevich (1):
  arm64: dts: meson: a1: add eMMC controller and its pins

Martin Kurbanov (1):
  arm64: dts: meson: a1: introduce SPI Flash Controller

Oleg Lyovin (1):
  arm64: dts: meson: a1: introduce UART_AO mux definitions

 .../devicetree/bindings/arm/amlogic.yaml      |   1 +
 arch/arm64/boot/dts/amlogic/Makefile          |   1 +
 .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 145 ++++++++++++
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi     | 213 +++++++++++++++++-
 4 files changed, 348 insertions(+), 12 deletions(-)
 create mode 100644 arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts

-- 
2.36.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v2 01/15] arm64: dts: meson: a1: reorder includes to keep them sorted
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 02/15] arm64: dts: meson: a1: remove extra empty line before reset node Dmitry Rokosov
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

It is recommended to alphabetically sort all headers included in the
dtsi.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index c8f344596285..5d0c8e3966ce 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -3,9 +3,9 @@
  * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
  */
 
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/gpio/meson-a1-gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
 	compatible = "amlogic,a1";
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 02/15] arm64: dts: meson: a1: remove extra empty line before reset node
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 01/15] arm64: dts: meson: a1: reorder includes to keep them sorted Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 03/15] arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value Dmitry Rokosov
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

There should be only one empty line between device tree node
definitions.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 5d0c8e3966ce..42083d1bc8ca 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -83,7 +83,6 @@ apb: bus@fe000000 {
 			#size-cells = <2>;
 			ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x1000000>;
 
-
 			reset: reset-controller@0 {
 				compatible = "amlogic,meson-a1-reset";
 				reg = <0x0 0x0 0x0 0x8c>;
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 03/15] arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 01/15] arm64: dts: meson: a1: reorder includes to keep them sorted Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 02/15] arm64: dts: meson: a1: remove extra empty line before reset node Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 04/15] arm64: dts: meson: a1: reorder gpio_intc node definition Dmitry Rokosov
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

In the file 'meson-a1.dtsi,' which is a basic device tree include, it is
not necessary to mark the node with 'status = "okay"' because it is
enabled by default.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 42083d1bc8ca..f740153f3c1e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -66,7 +66,6 @@ sm: secure-monitor {
 		pwrc: power-controller {
 			compatible = "amlogic,meson-a1-pwrc";
 			#power-domain-cells = <1>;
-			status = "okay";
 		};
 	};
 
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 04/15] arm64: dts: meson: a1: reorder gpio_intc node definition
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (2 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 03/15] arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 05/15] arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers Dmitry Rokosov
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

It is recommended to maintain a sorted order of device tree entries, so
move the gpio_intc node ahead of the uart_AO node.

Fixes: ea254644a228 ("arm64: dts: meson-a1: add gpio_intc node")
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index f740153f3c1e..f95f4daef02c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -105,6 +105,16 @@ gpio: bank@400 {
 
 			};
 
+			gpio_intc: interrupt-controller@440 {
+				compatible = "amlogic,meson-a1-gpio-intc",
+					     "amlogic,meson-gpio-intc";
+				reg = <0x0 0x0440 0x0 0x14>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				amlogic,channel-interrupts =
+					<49 50 51 52 53 54 55 56>;
+			};
+
 			uart_AO: serial@1c00 {
 				compatible = "amlogic,meson-gx-uart",
 					     "amlogic,meson-ao-uart";
@@ -124,16 +134,6 @@ uart_AO_B: serial@2000 {
 				clock-names = "xtal", "pclk", "baud";
 				status = "disabled";
 			};
-
-			gpio_intc: interrupt-controller@0440 {
-				compatible = "amlogic,meson-a1-gpio-intc",
-					     "amlogic,meson-gpio-intc";
-				reg = <0x0 0x0440 0x0 0x14>;
-				interrupt-controller;
-				#interrupt-cells = <2>;
-				amlogic,channel-interrupts =
-					<49 50 51 52 53 54 55 56>;
-			};
 		};
 
 		gic: interrupt-controller@ff901000 {
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 05/15] arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (3 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 04/15] arm64: dts: meson: a1: reorder gpio_intc node definition Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 06/15] arm64: dts: meson: a1: support USB controller in OTG mode Dmitry Rokosov
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

This patch adds clkc and clkc_pll dts nodes to A1 SoC main dtsi. The
first one is responsible for all SoC peripherals clocks excluding audio
clocks. The second one is used by A1 SoC PLLs. Actually, there are two
different APB heads, so we have two different drivers.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 26 +++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index f95f4daef02c..a8a39eeb2581 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -3,6 +3,8 @@
  * Copyright (c) 2019 Amlogic, Inc. All rights reserved.
  */
 
+#include <dt-bindings/clock/amlogic,a1-pll-clkc.h>
+#include <dt-bindings/clock/amlogic,a1-peripherals-clkc.h>
 #include <dt-bindings/gpio/meson-a1-gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
@@ -115,6 +117,21 @@ gpio_intc: interrupt-controller@440 {
 					<49 50 51 52 53 54 55 56>;
 			};
 
+			clkc_periphs: clock-controller@800 {
+				compatible = "amlogic,a1-peripherals-clkc";
+				reg = <0 0x800 0 0x104>;
+				#clock-cells = <1>;
+				clocks = <&clkc_pll CLKID_FCLK_DIV2>,
+					 <&clkc_pll CLKID_FCLK_DIV3>,
+					 <&clkc_pll CLKID_FCLK_DIV5>,
+					 <&clkc_pll CLKID_FCLK_DIV7>,
+					 <&clkc_pll CLKID_HIFI_PLL>,
+					 <&xtal>;
+				clock-names = "fclk_div2", "fclk_div3",
+					      "fclk_div5", "fclk_div7",
+					      "hifi_pll", "xtal";
+			};
+
 			uart_AO: serial@1c00 {
 				compatible = "amlogic,meson-gx-uart",
 					     "amlogic,meson-ao-uart";
@@ -134,6 +151,15 @@ uart_AO_B: serial@2000 {
 				clock-names = "xtal", "pclk", "baud";
 				status = "disabled";
 			};
+
+			clkc_pll: pll-clock-controller@7c80 {
+				compatible = "amlogic,a1-pll-clkc";
+				reg = <0 0x7c80 0 0x18c>;
+				#clock-cells = <1>;
+				clocks = <&clkc_periphs CLKID_FIXPLL_IN>,
+					 <&clkc_periphs CLKID_HIFIPLL_IN>;
+				clock-names = "fixpll_in", "hifipll_in";
+			};
 		};
 
 		gic: interrupt-controller@ff901000 {
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 06/15] arm64: dts: meson: a1: support USB controller in OTG mode
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (4 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 05/15] arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 07/15] arm64: dts: meson: a1: enable efuse controller and setup its clk Dmitry Rokosov
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov,
	Yue Wang, Hanjie Lin

Amlogic A1 SoC family has USB2.0 controller based on dwc2 and dwc3
heads. It supports otg/host/peripheral modes.

Signed-off-by: Yue Wang <yue.wang@amlogic.com>
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 59 +++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index a8a39eeb2581..04df5a5b563e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -8,6 +8,8 @@
 #include <dt-bindings/gpio/meson-a1-gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/power/meson-a1-power.h>
+#include <dt-bindings/reset/amlogic,meson-a1-reset.h>
 
 / {
 	compatible = "amlogic,a1";
@@ -152,6 +154,17 @@ uart_AO_B: serial@2000 {
 				status = "disabled";
 			};
 
+			usb2_phy1: phy@4000 {
+				compatible = "amlogic,a1-usb2-phy";
+				clocks = <&clkc_periphs CLKID_USB_PHY_IN>;
+				clock-names = "xtal";
+				reg = <0x0 0x4000 0x0 0x60>;
+				resets = <&reset RESET_USBPHY>;
+				reset-names = "phy";
+				#phy-cells = <0>;
+				power-domains = <&pwrc PWRC_USB_ID>;
+			};
+
 			clkc_pll: pll-clock-controller@7c80 {
 				compatible = "amlogic,a1-pll-clkc";
 				reg = <0 0x7c80 0 0x18c>;
@@ -162,6 +175,52 @@ clkc_pll: pll-clock-controller@7c80 {
 			};
 		};
 
+		usb: usb@fe004400 {
+			status = "disabled";
+			compatible = "amlogic,meson-a1-usb-ctrl";
+			reg = <0x0 0xfe004400 0x0 0xa0>;
+			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ranges;
+
+			clocks = <&clkc_periphs CLKID_USB_CTRL>,
+				 <&clkc_periphs CLKID_USB_BUS>,
+				 <&clkc_periphs CLKID_USB_CTRL_IN>;
+			clock-names = "usb_ctrl", "usb_bus", "xtal_usb_ctrl";
+			resets = <&reset RESET_USBCTRL>;
+			reset-name = "usb_ctrl";
+
+			dr_mode = "otg";
+
+			phys = <&usb2_phy1>;
+			phy-names = "usb2-phy1";
+
+			dwc3: usb@ff400000 {
+				compatible = "snps,dwc3";
+				reg = <0x0 0xff400000 0x0 0x100000>;
+				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+				dr_mode = "host";
+				snps,dis_u2_susphy_quirk;
+				snps,quirk-frame-length-adjustment = <0x20>;
+				snps,parkmode-disable-ss-quirk;
+			};
+
+			dwc2: usb@ff500000 {
+				compatible = "amlogic,meson-a1-usb", "snps,dwc2";
+				reg = <0x0 0xff500000 0x0 0x40000>;
+				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+				phys = <&usb2_phy1>;
+				phy-names = "usb2-phy";
+				clocks = <&clkc_periphs CLKID_USB_PHY>;
+				clock-names = "otg";
+				dr_mode = "peripheral";
+				g-rx-fifo-size = <192>;
+				g-np-tx-fifo-size = <128>;
+				g-tx-fifo-size = <128 128 16 16 16>;
+			};
+		};
+
 		gic: interrupt-controller@ff901000 {
 			compatible = "arm,gic-400";
 			reg = <0x0 0xff901000 0x0 0x1000>,
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 07/15] arm64: dts: meson: a1: enable efuse controller and setup its clk
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (5 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 06/15] arm64: dts: meson: a1: support USB controller in OTG mode Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 08/15] arm64: dts: meson: a1: introduce SPI Flash Controller Dmitry Rokosov
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Alexey Romanov,
	Dmitry Rokosov

From: Alexey Romanov <avromanov@sberdevices.ru>

EFUSE A1 controller uses CLKID_OTP clock and PWRC_OTP_ID power domain.

Signed-off-by: Alexey Romanov <avromanov@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 04df5a5b563e..d46275a25bfa 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -45,6 +45,15 @@ l2: l2-cache0 {
 		};
 	};
 
+	efuse: efuse {
+		compatible = "amlogic,meson-gxbb-efuse";
+		clocks = <&clkc_periphs CLKID_OTP>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		secure-monitor = <&sm>;
+		power-domains = <&pwrc PWRC_OTP_ID>;
+	};
+
 	psci {
 		compatible = "arm,psci-1.0";
 		method = "smc";
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 08/15] arm64: dts: meson: a1: introduce SPI Flash Controller
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (6 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 07/15] arm64: dts: meson: a1: enable efuse controller and setup its clk Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 09/15] arm64: dts: meson: a1: introduce UART_AO mux definitions Dmitry Rokosov
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Martin Kurbanov,
	Dmitry Rokosov

From: Martin Kurbanov <mmkurbanov@sberdevices.ru>

This controller can be used for spinand flash connection.

Signed-off-by: Martin Kurbanov <mmkurbanov@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index d46275a25bfa..8d479bc8e677 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -88,6 +88,16 @@ soc {
 		#size-cells = <2>;
 		ranges;
 
+		spifc: spi@fd000400 {
+			compatible = "amlogic,a1-spifc";
+			reg = <0x0 0xfd000400 0x0 0x290>;
+			clocks = <&clkc_periphs CLKID_SPIFC>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			power-domains = <&pwrc PWRC_SPIFC_ID>;
+			status = "disabled";
+		};
+
 		apb: bus@fe000000 {
 			compatible = "simple-bus";
 			reg = <0x0 0xfe000000 0x0 0x1000000>;
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 09/15] arm64: dts: meson: a1: introduce UART_AO mux definitions
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (7 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 08/15] arm64: dts: meson: a1: introduce SPI Flash Controller Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 10/15] arm64: dts: meson: a1: add eMMC controller and its pins Dmitry Rokosov
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Oleg Lyovin,
	Dmitry Rokosov

From: Oleg Lyovin <ovlevin@sberdevices.ru>

The Amlogic A1 has a UART_AO port, which can be used, for example, for
BT HCI H4 connection.

This patch adds mux definitions for it.

Signed-off-by: Oleg Lyovin <ovlevin@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 8d479bc8e677..1cc34fe003af 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -126,6 +126,22 @@ gpio: bank@400 {
 					gpio-ranges = <&periphs_pinctrl 0 0 62>;
 				};
 
+				uart_a_pins: uart-a {
+					mux {
+						groups = "uart_a_tx",
+							 "uart_a_rx";
+						function = "uart_a";
+					};
+				};
+
+				uart_a_cts_rts_pins: uart-a-cts-rts {
+					mux {
+						groups = "uart_a_cts",
+							 "uart_a_rts";
+						function = "uart_a";
+						bias-pull-down;
+					};
+				};
 			};
 
 			gpio_intc: interrupt-controller@440 {
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 10/15] arm64: dts: meson: a1: add eMMC controller and its pins
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (8 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 09/15] arm64: dts: meson: a1: introduce UART_AO mux definitions Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 11/15] arm64: dts: meson: a1: add saradc definition Dmitry Rokosov
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Jan Dakinevich,
	Dmitry Rokosov

From: Jan Dakinevich <yvdakinevich@sberdevices.ru>

The definition is inspired by a similar one for AXG SoC family.
'sdio_pins' and 'sdio_clk_gate_pins' pinctrls are supposed to be used as
"default" and "clk-gate" in board-specific device trees.

During initialization 'meson-gx' driver sets clock to safe low-frequency
value (400kHz). However, both source clocks ("clkin0" and "clkin1") are
high-frequency by default, and using of eMMC's internal divider is not
enough to achieve so low values. To provide low-frequency source,
reparent "sd_emmc_sel2" clock using 'assigned-clocks' property.

Signed-off-by: Jan Dakinevich <yvdakinevich@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 43 +++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 1cc34fe003af..6968fbd33348 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -142,6 +142,32 @@ mux {
 						bias-pull-down;
 					};
 				};
+
+				sdio_pins: sdio {
+					mux0 {
+						groups = "sdcard_d0_x",
+							 "sdcard_d1_x",
+							 "sdcard_d2_x",
+							 "sdcard_d3_x",
+							 "sdcard_cmd_x";
+						function = "sdcard";
+						bias-pull-up;
+					};
+
+					mux1 {
+						groups = "sdcard_clk_x";
+						function = "sdcard";
+						bias-disable;
+					};
+				};
+
+				sdio_clk_gate_pins: sdio-clk-gate {
+					mux {
+						groups = "sdcard_clk_x";
+						function = "sdcard";
+						bias-pull-down;
+					};
+				};
 			};
 
 			gpio_intc: interrupt-controller@440 {
@@ -208,6 +234,23 @@ clkc_pll: pll-clock-controller@7c80 {
 					 <&clkc_periphs CLKID_HIFIPLL_IN>;
 				clock-names = "fixpll_in", "hifipll_in";
 			};
+
+			sd_emmc: sd@10000 {
+				compatible = "amlogic,meson-axg-mmc";
+				reg = <0x0 0x10000 0x0 0x800>;
+				interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+				clocks = <&clkc_periphs CLKID_SD_EMMC_A>,
+					 <&clkc_periphs CLKID_SD_EMMC>,
+					 <&clkc_pll CLKID_FCLK_DIV2>;
+				clock-names = "core",
+					      "clkin0",
+					      "clkin1";
+				assigned-clocks = <&clkc_periphs CLKID_SD_EMMC_SEL2>;
+				assigned-clock-parents = <&xtal>;
+				resets = <&reset RESET_SD_EMMC_A>;
+				power-domains = <&pwrc PWRC_SD_EMMC_ID>;
+				status = "disabled";
+			};
 		};
 
 		usb: usb@fe004400 {
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 11/15] arm64: dts: meson: a1: add saradc definition
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (9 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 10/15] arm64: dts: meson: a1: add eMMC controller and its pins Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 12/15] arm64: dts: meson: a1: add hw rng node Dmitry Rokosov
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, George Stark,
	Dmitry Rokosov

From: George Stark <GNStark@sberdevices.ru>

Add saradc node to Amlogic Meson A1 SoC main dtsi. Saradc is
Successive Approximation Register (SAR) A/D Converter.

Signed-off-by: George Stark <GNStark@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 6968fbd33348..59ca1f1360fd 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -215,6 +215,22 @@ uart_AO_B: serial@2000 {
 				status = "disabled";
 			};
 
+			saradc: adc@2c00 {
+				compatible = "amlogic,meson-g12a-saradc",
+					"amlogic,meson-saradc";
+				reg = <0x0 0x2c00 0x0 0x48>;
+				#io-channel-cells = <1>;
+				power-domains = <&pwrc PWRC_I2C_ID>;
+				interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
+				clocks = <&xtal>,
+					<&clkc_periphs CLKID_SARADC_EN>,
+					<&clkc_periphs CLKID_SARADC>,
+					<&clkc_periphs CLKID_SARADC_SEL>;
+				clock-names = "clkin", "core",
+					"adc_clk", "adc_sel";
+				status = "disabled";
+			};
+
 			usb2_phy1: phy@4000 {
 				compatible = "amlogic,a1-usb2-phy";
 				clocks = <&clkc_periphs CLKID_USB_PHY_IN>;
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 12/15] arm64: dts: meson: a1: add hw rng node
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (10 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 11/15] arm64: dts: meson: a1: add saradc definition Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 13/15] arm64: dts: meson: a1: add ao secure node Dmitry Rokosov
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Alexey Romanov,
	Dmitry Rokosov

From: Alexey Romanov <avromanov@sberdevices.ru>

Add hardware number generator node. HWRNG access requires OTP power
domain being enabled.

Signed-off-by: Alexey Romanov <avromanov@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index 59ca1f1360fd..edadddacfee0 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -242,6 +242,12 @@ usb2_phy1: phy@4000 {
 				power-domains = <&pwrc PWRC_USB_ID>;
 			};
 
+			hwrng: rng@5118 {
+				compatible = "amlogic,meson-rng";
+				reg = <0x0 0x5118 0x0 0x4>;
+				power-domains = <&pwrc PWRC_OTP_ID>;
+			};
+
 			clkc_pll: pll-clock-controller@7c80 {
 				compatible = "amlogic,a1-pll-clkc";
 				reg = <0 0x7c80 0 0x18c>;
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 13/15] arm64: dts: meson: a1: add ao secure node
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (11 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 12/15] arm64: dts: meson: a1: add hw rng node Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 14/15] arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC Dmitry Rokosov
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Alexey Romanov,
	Dmitry Rokosov

From: Alexey Romanov <avromanov@sberdevices.ru>

Add node for board info registers, which allows getting SoC family and
board revision.

For example, with MESON_GX_SOCINFO config enabled we can get the
following information for board with Meson A1 SoC:
    soc soc0: Amlogic Meson A1 (A113L) Revision 2c:a (1:a) Detected

Signed-off-by: Alexey Romanov <avromanov@sberdevices.ru>
Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
index edadddacfee0..81abf1762719 100644
--- a/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-a1.dtsi
@@ -248,6 +248,12 @@ hwrng: rng@5118 {
 				power-domains = <&pwrc PWRC_OTP_ID>;
 			};
 
+			sec_AO: ao-secure@5a20 {
+				compatible = "amlogic,meson-gx-ao-secure", "syscon";
+				reg = <0x0 0x5a20 0x0 0x140>;
+				amlogic,has-chip-id;
+			};
+
 			clkc_pll: pll-clock-controller@7c80 {
 				compatible = "amlogic,a1-pll-clkc";
 				reg = <0 0x7c80 0 0x18c>;
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 14/15] arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (12 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 13/15] arm64: dts: meson: a1: add ao secure node Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-23 21:36 ` [PATCH v2 15/15] dt-bindings: arm: amlogic: add Amlogic AD402 bindings Dmitry Rokosov
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

Supported IPs: CPU, GIC, IRQ, Timer, UART, Reserved memory for secos,
OPTEE client, fixed regulators, UART for HCI, SPI NAND, SARADC, USB and
SDIO.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 arch/arm64/boot/dts/amlogic/Makefile          |   1 +
 .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 145 ++++++++++++++++++
 2 files changed, 146 insertions(+)
 create mode 100644 arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts

diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 6f61798a109f..a189b8580cc4 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_MESON) += amlogic-c3-c302x-aw409.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad402.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j110-rev-3.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts b/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
new file mode 100644
index 000000000000..8a6a7791839e
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
@@ -0,0 +1,145 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2023 SberDevices
+ * Author: Dmitry Rokosov <ddrokosov@sberdevices.ru>
+ */
+
+/dts-v1/;
+
+#include "meson-a1.dtsi"
+
+/ {
+	compatible = "amlogic,ad402", "amlogic,a1";
+	model = "Amlogic Meson A1 AD402 Development Board";
+
+	aliases {
+		serial0 = &uart_AO_B;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x0 0x0 0x8000000>;
+	};
+
+	reserved-memory {
+		/* 3 MiB reserved for Amlogic Trust OS (BL32) */
+		secos_reserved: secos@3d00000 {
+			reg = <0x0 0x03d00000 0x0 0x300000>;
+			no-map;
+		};
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+	battery_4v2: regulator-battery-4v2 {
+		compatible = "regulator-fixed";
+		regulator-name = "4V2";
+		regulator-min-microvolt = <4200000>;
+		regulator-max-microvolt = <4200000>;
+		regulator-always-on;
+	};
+
+	vddq_1v35: regulator-vddq-1v35 {
+		compatible = "regulator-fixed";
+		regulator-name = "VDDQ_1V35";
+		regulator-min-microvolt = <1350000>;
+		regulator-max-microvolt = <1350000>;
+		vin-supply = <&battery_4v2>;
+		regulator-always-on;
+	};
+
+	vddao_3v3: regulator-vddao-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "VDDAO_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&battery_4v2>;
+		regulator-always-on;
+	};
+
+	vcc_3v3: regulator-vcc-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "VCC_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vddao_3v3>;
+		regulator-always-on;
+	};
+
+	vddio_1v8: regulator-vddio-1v8 {
+		compatible = "regulator-fixed";
+		regulator-name = "VDDIO_1V8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		vin-supply = <&vddao_3v3>;
+		regulator-always-on;
+	};
+};
+
+/* Bluetooth HCI H4 */
+&uart_AO {
+	status = "okay";
+	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
+	pinctrl-names = "default";
+};
+
+&uart_AO_B {
+	status = "okay";
+};
+
+&saradc {
+	status = "okay";
+	vref-supply = <&vddio_1v8>;
+};
+
+&spifc {
+	status = "okay";
+
+	spi_nand@0 {
+		compatible = "spi-nand";
+		status = "okay";
+		reg = <0>;
+		spi-max-frequency = <96000000>;
+		spi-tx-bus-width = <4>;
+		spi-rx-bus-width = <4>;
+	};
+};
+
+&usb2_phy1 {
+	phy-supply = <&vcc_3v3>;
+};
+
+&usb {
+	status = "okay";
+	dr_mode = "peripheral";
+};
+
+&sd_emmc {
+	status = "okay";
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	pinctrl-0 = <&sdio_pins>;
+	pinctrl-1 = <&sdio_clk_gate_pins>;
+	pinctrl-names = "default", "clk-gate";
+
+	bus-width = <4>;
+	cap-sd-highspeed;
+	sd-uhs-sdr104;
+	max-frequency = <200000000>;
+	non-removable;
+	disable-wp;
+
+	vmmc-supply = <&vddao_3v3>;
+	vqmmc-supply = <&vddio_1v8>;
+};
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v2 15/15] dt-bindings: arm: amlogic: add Amlogic AD402 bindings
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (13 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 14/15] arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC Dmitry Rokosov
@ 2023-08-23 21:36 ` Dmitry Rokosov
  2023-08-24 15:08   ` Conor Dooley
  2023-09-08 12:34 ` [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs neil.armstrong
  2023-09-11  9:50 ` neil.armstrong
  16 siblings, 1 reply; 19+ messages in thread
From: Dmitry Rokosov @ 2023-08-23 21:36 UTC (permalink / raw)
  To: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel, Dmitry Rokosov

Add the compatible for the Amlogic A1 Based AD402 board.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
---
 Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
index 08d59842655c..15880abb7261 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
@@ -203,6 +203,7 @@ properties:
         items:
           - enum:
               - amlogic,ad401
+              - amlogic,ad402
           - const: amlogic,a1
 
       - description: Boards with the Amlogic C3 C302X/C308L SoC
-- 
2.36.0


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 15/15] dt-bindings: arm: amlogic: add Amlogic AD402 bindings
  2023-08-23 21:36 ` [PATCH v2 15/15] dt-bindings: arm: amlogic: add Amlogic AD402 bindings Dmitry Rokosov
@ 2023-08-24 15:08   ` Conor Dooley
  0 siblings, 0 replies; 19+ messages in thread
From: Conor Dooley @ 2023-08-24 15:08 UTC (permalink / raw)
  To: Dmitry Rokosov
  Cc: neil.armstrong, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt,
	kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 927 bytes --]

On Thu, Aug 24, 2023 at 12:36:30AM +0300, Dmitry Rokosov wrote:
> Add the compatible for the Amlogic A1 Based AD402 board.
> 
> Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>

Acked-by: Conor Dooley <conor.dooley@microchip.com>

Thanks,
Conor.

> ---
>  Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
> index 08d59842655c..15880abb7261 100644
> --- a/Documentation/devicetree/bindings/arm/amlogic.yaml
> +++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
> @@ -203,6 +203,7 @@ properties:
>          items:
>            - enum:
>                - amlogic,ad401
> +              - amlogic,ad402
>            - const: amlogic,a1
>  
>        - description: Boards with the Amlogic C3 C302X/C308L SoC
> -- 
> 2.36.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (14 preceding siblings ...)
  2023-08-23 21:36 ` [PATCH v2 15/15] dt-bindings: arm: amlogic: add Amlogic AD402 bindings Dmitry Rokosov
@ 2023-09-08 12:34 ` neil.armstrong
  2023-09-11  9:50 ` neil.armstrong
  16 siblings, 0 replies; 19+ messages in thread
From: neil.armstrong @ 2023-09-08 12:34 UTC (permalink / raw)
  To: Dmitry Rokosov, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel

On 23/08/2023 23:36, Dmitry Rokosov wrote:
> This patch series introduces device tree declarations for various
> peripheral IPs of the A1 SoC family, including clock controllers, EFUSE,
> USB, SPI Flash Controller, SDIO, and UART_AO:
>      - CLK: A1 SoC has four types on the board, namely PLL, Peripherals,
>        CPU, and Audio, but only Amlogic A1 PLL and Peripherals clock
>        controllers are currently supported.
>      - EFUSE: consists of a 4k bit One Time Programmable (OTP) memory
>        divided into 32 128-bit blocks, and data is accessed using the APB
>        bus through software or the Key-ladder integrated with the EFUSE
>        block.
>      - USB: only one USB 2.0 high-speed port is available in the A1 SoC,
>        supporting both HOST and DEVICE modes for OTG.
>      - SPI Flash Controller: 4-bit QPI/SPI NOR Flash or NAND FLASH
>        controller.
>      - SDIO: for WiFi/IEEE802.11 connection.
>      - UART_AO: for Bluetooth connection.
>      - HWRNG: hardware random generator integrated into SoC.
>      - AO SECURE: board info registers.
> 
> The above peripherals are integrated to new AD402 board device tree.
> 
> Changes v2 since v1 at [1]:
>      - reorder meson-a1 dtsi includes to keep them sorted
>      - remove extra empty lines
>      - purge the unnecessary 'okay' status
>      - reorder all device tree nodes (existing and new) sorted by 'reg'
>        values
>      - introduce new saradc definition
>      - add hwrng dts node
>      - provide ao secure dts node with board info registers
>      - include all changes to new AD402 board device tree
>      - add AD402 board to bindings
> 
> Links:
>      [1] https://lore.kernel.org/all/20230607201641.20982-1-ddrokosov@sberdevices.ru/
> 
> Alexey Romanov (3):
>    arm64: dts: meson: a1: enable efuse controller and setup its clk
>    arm64: dts: meson: a1: add hw rng node
>    arm64: dts: meson: a1: add ao secure node
> 
> Dmitry Rokosov (8):
>    arm64: dts: meson: a1: reorder includes to keep them sorted
>    arm64: dts: meson: a1: remove extra empty line before reset node
>    arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value
>    arm64: dts: meson: a1: reorder gpio_intc node definition
>    arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers
>    arm64: dts: meson: a1: support USB controller in OTG mode
>    arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC
>    dt-bindings: arm: amlogic: add Amlogic AD402 bindings
> 
> George Stark (1):
>    arm64: dts: meson: a1: add saradc definition
> 
> Jan Dakinevich (1):
>    arm64: dts: meson: a1: add eMMC controller and its pins
> 
> Martin Kurbanov (1):
>    arm64: dts: meson: a1: introduce SPI Flash Controller
> 
> Oleg Lyovin (1):
>    arm64: dts: meson: a1: introduce UART_AO mux definitions
> 
>   .../devicetree/bindings/arm/amlogic.yaml      |   1 +
>   arch/arm64/boot/dts/amlogic/Makefile          |   1 +
>   .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 145 ++++++++++++
>   arch/arm64/boot/dts/amlogic/meson-a1.dtsi     | 213 +++++++++++++++++-
>   4 files changed, 348 insertions(+), 12 deletions(-)
>   create mode 100644 arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
> 

For the whole serie:

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>

Thanks !

Neil

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs
  2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
                   ` (15 preceding siblings ...)
  2023-09-08 12:34 ` [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs neil.armstrong
@ 2023-09-11  9:50 ` neil.armstrong
  16 siblings, 0 replies; 19+ messages in thread
From: neil.armstrong @ 2023-09-11  9:50 UTC (permalink / raw)
  To: Dmitry Rokosov, jbrunet, mturquette, sboyd, robh+dt,
	krzysztof.kozlowski+dt, khilman, martin.blumenstingl, conor+dt
  Cc: kernel, sdfw_system_team, rockosov, linux-amlogic, linux-clk,
	devicetree, linux-kernel, linux-arm-kernel

On 23/08/2023 23:36, Dmitry Rokosov wrote:
> This patch series introduces device tree declarations for various
> peripheral IPs of the A1 SoC family, including clock controllers, EFUSE,
> USB, SPI Flash Controller, SDIO, and UART_AO:
>      - CLK: A1 SoC has four types on the board, namely PLL, Peripherals,
>        CPU, and Audio, but only Amlogic A1 PLL and Peripherals clock
>        controllers are currently supported.
>      - EFUSE: consists of a 4k bit One Time Programmable (OTP) memory
>        divided into 32 128-bit blocks, and data is accessed using the APB
>        bus through software or the Key-ladder integrated with the EFUSE
>        block.
>      - USB: only one USB 2.0 high-speed port is available in the A1 SoC,
>        supporting both HOST and DEVICE modes for OTG.
>      - SPI Flash Controller: 4-bit QPI/SPI NOR Flash or NAND FLASH
>        controller.
>      - SDIO: for WiFi/IEEE802.11 connection.
>      - UART_AO: for Bluetooth connection.
>      - HWRNG: hardware random generator integrated into SoC.
>      - AO SECURE: board info registers.
> 
> The above peripherals are integrated to new AD402 board device tree.
> 
> Changes v2 since v1 at [1]:
>      - reorder meson-a1 dtsi includes to keep them sorted
>      - remove extra empty lines
>      - purge the unnecessary 'okay' status
>      - reorder all device tree nodes (existing and new) sorted by 'reg'
>        values
>      - introduce new saradc definition
>      - add hwrng dts node
>      - provide ao secure dts node with board info registers
>      - include all changes to new AD402 board device tree
>      - add AD402 board to bindings
> 
> Links:
>      [1] https://lore.kernel.org/all/20230607201641.20982-1-ddrokosov@sberdevices.ru/
> 
> Alexey Romanov (3):
>    arm64: dts: meson: a1: enable efuse controller and setup its clk
>    arm64: dts: meson: a1: add hw rng node
>    arm64: dts: meson: a1: add ao secure node
> 
> Dmitry Rokosov (8):
>    arm64: dts: meson: a1: reorder includes to keep them sorted
>    arm64: dts: meson: a1: remove extra empty line before reset node
>    arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value
>    arm64: dts: meson: a1: reorder gpio_intc node definition
>    arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers
>    arm64: dts: meson: a1: support USB controller in OTG mode
>    arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC
>    dt-bindings: arm: amlogic: add Amlogic AD402 bindings
> 
> George Stark (1):
>    arm64: dts: meson: a1: add saradc definition
> 
> Jan Dakinevich (1):
>    arm64: dts: meson: a1: add eMMC controller and its pins
> 
> Martin Kurbanov (1):
>    arm64: dts: meson: a1: introduce SPI Flash Controller
> 
> Oleg Lyovin (1):
>    arm64: dts: meson: a1: introduce UART_AO mux definitions
> 
>   .../devicetree/bindings/arm/amlogic.yaml      |   1 +
>   arch/arm64/boot/dts/amlogic/Makefile          |   1 +
>   .../arm64/boot/dts/amlogic/meson-a1-ad402.dts | 145 ++++++++++++
>   arch/arm64/boot/dts/amlogic/meson-a1.dtsi     | 213 +++++++++++++++++-
>   4 files changed, 348 insertions(+), 12 deletions(-)
>   create mode 100644 arch/arm64/boot/dts/amlogic/meson-a1-ad402.dts
> 

B4 missed it but I applied this patchset into v6.7/arm64-dt.

Thanks,
Neil

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-09-11 20:52 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-23 21:36 [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 01/15] arm64: dts: meson: a1: reorder includes to keep them sorted Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 02/15] arm64: dts: meson: a1: remove extra empty line before reset node Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 03/15] arm64: dts: meson: a1: remove the unnecessary 'okay' status pwrc value Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 04/15] arm64: dts: meson: a1: reorder gpio_intc node definition Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 05/15] arm64: dts: meson: a1: introduce PLL and Peripherals clk controllers Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 06/15] arm64: dts: meson: a1: support USB controller in OTG mode Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 07/15] arm64: dts: meson: a1: enable efuse controller and setup its clk Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 08/15] arm64: dts: meson: a1: introduce SPI Flash Controller Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 09/15] arm64: dts: meson: a1: introduce UART_AO mux definitions Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 10/15] arm64: dts: meson: a1: add eMMC controller and its pins Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 11/15] arm64: dts: meson: a1: add saradc definition Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 12/15] arm64: dts: meson: a1: add hw rng node Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 13/15] arm64: dts: meson: a1: add ao secure node Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 14/15] arm64: dts: introduce Amlogic AD402 reference board based on A113L SoC Dmitry Rokosov
2023-08-23 21:36 ` [PATCH v2 15/15] dt-bindings: arm: amlogic: add Amlogic AD402 bindings Dmitry Rokosov
2023-08-24 15:08   ` Conor Dooley
2023-09-08 12:34 ` [PATCH v2 00/15] arm64: dts: meson: a1: introduce several peripheral IPs neil.armstrong
2023-09-11  9:50 ` neil.armstrong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).