Skip to contentSkip to conversation

Add support for AST2700 clk driver

PATCH Superseded Ryan Chen 4 participants 18 messages Aug 28, 2024 – Aug 30, 2024

Subsystems (4)

v2 of 16 Superseded Latest is v16 →

lore
Share & tools
lore

Ryan Chen

author reviewer
#0 lore raw

v2 cover Add support for AST2700 clk driver

This patch series is add clk driver for AST2700.

AST2700 is the 8th generation of Integrated Remote Management Processor introduced by ASPEED Technology Inc. Which is Board Management controller (BMC) SoC family. AST2700 have two SoC connected, one is SoC0, another is SoC1, it has it's own scu, this driver inlcude SCU0 and SCU1 driver.

v2:
-yaml: drop 64bits address example.
-yaml: add discription about soc0 and soc1
-dt-bindings: remove (), *_NUMS, reserved.
-dt-bindings: remove dulipated define number
-clk-ast2700: drop WARN_ON, weird comment.

Ryan Chen (3):
dt-bindings: reset Add AST2700 reset bindings
dt-bindings: clock: Add AST2700 clock bindings
clk: aspeed: add AST2700 clk driver

 drivers/clk/Kconfig                           |   10 +
 drivers/clk/Makefile                          |    1 +
 drivers/clk/clk-ast2700.c                     | 1198 +++++++++++++++++
 .../dt-bindings/clock/aspeed,ast2700-clk.h    |  165 +++
 .../dt-bindings/reset/aspeed,ast2700-reset.h  |  125 ++
 5 files changed, 1499 insertions(+)
 create mode 100644 drivers/clk/clk-ast2700.c
 create mode 100644 include/dt-bindings/clock/aspeed,ast2700-clk.h
 create mode 100644 include/dt-bindings/reset/aspeed,ast2700-reset.h
Signature · 1 line
2.34.1
author reviewer
#1 lore raw

PATCH v2 1/3 dt-bindings: reset Add AST2700 reset bindings

Add dt bindings for AST2700 reset driver.

---
 .../dt-bindings/reset/aspeed,ast2700-reset.h  | 125 ++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 include/dt-bindings/reset/aspeed,ast2700-reset.h
include/dt-bindings/reset/aspeed,ast2700-reset.h new file +125 -0
new file mode 100644
index 000000000000..eca7912b9138
@@ -0,0 +1,125 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Device Tree binding constants for AST2700 reset controller.
+ *
+ * Copyright (c) 2024 Aspeed Technology Inc.
+ */
+
+#ifndef _MACH_ASPEED_AST2700_RESET_H_
+#define _MACH_ASPEED_AST2700_RESET_H_
+
+/* SOC0 */
+#define SCU0_RESET_SDRAM		0
+#define SCU0_RESET_DDRPHY		1
+#define SCU0_RESET_RSA			2
+#define SCU0_RESET_SHA3			3
+#define SCU0_RESET_HACE			4
+#define SCU0_RESET_SOC			5
+#define SCU0_RESET_VIDEO		6
+#define SCU0_RESET_2D			7
+#define SCU0_RESET_PCIS			8
+#define SCU0_RESET_RVAS0		9
+#define SCU0_RESET_RVAS1		10
+#define SCU0_RESET_SM3			11
+#define SCU0_RESET_SM4			12
+#define SCU0_RESET_CRT0			13
+#define SCU0_RESET_ECC			14
+#define SCU0_RESET_DP_PCI		15
+#define SCU0_RESET_UFS			16
+#define SCU0_RESET_EMMC			17
+#define SCU0_RESET_PCIE1RST		18
+#define SCU0_RESET_PCIE1RSTOE		19
+#define SCU0_RESET_PCIE0RST		20
+#define SCU0_RESET_PCIE0RSTOE		21
+#define SCU0_RESET_JTAG			22
+#define SCU0_RESET_MCTP0		23
+#define SCU0_RESET_MCTP1		24
+#define SCU0_RESET_XDMA0		25
+#define SCU0_RESET_XDMA1		26
+#define SCU0_RESET_H2X1			27
+#define SCU0_RESET_DP			28
+#define SCU0_RESET_DP_MCU		29
+#define SCU0_RESET_SSP			30
+#define SCU0_RESET_H2X0			31
+#define SCU0_RESET_PORTA_VHUB1		32
+#define SCU0_RESET_PORTA_PHY3		33
+#define SCU0_RESET_PORTA_XHCI		34
+#define SCU0_RESET_PORTB_VHUB1		35
+#define SCU0_RESET_PORTB_PHY3		36
+#define SCU0_RESET_PORTB_XHCI		37
+#define SCU0_RESET_PORTA_USB		38
+#define SCU0_RESET_PORTB_USB		39
+#define SCU0_RESET_UHCI			40
+#define SCU0_RESET_TSP			41
+#define SCU0_RESET_E2M0			42
+#define SCU0_RESET_E2M1			43
+#define SCU0_RESET_VLINK		44
+
+/* SOC1 */
+#define SCU1_RESET_LPC0			0
+#define SCU1_RESET_LPC1			1
+#define SCU1_RESET_MII			2
+#define SCU1_RESET_PECI			3
+#define SCU1_RESET_PWM			4
+#define SCU1_RESET_MAC0			5
+#define SCU1_RESET_MAC1			6
+#define SCU1_RESET_MAC2			7
+#define SCU1_RESET_ADC			8
+#define SCU1_RESET_SD			9
+#define SCU1_RESET_ESPI0		10
+#define SCU1_RESET_ESPI1		11
+#define SCU1_RESET_JTAG1		12
+#define SCU1_RESET_SPI0			13
+#define SCU1_RESET_SPI1			14
+#define SCU1_RESET_SPI2			15
+#define SCU1_RESET_I3C0			16
+#define SCU1_RESET_I3C1			17
+#define SCU1_RESET_I3C2			18
+#define SCU1_RESET_I3C3			19
+#define SCU1_RESET_I3C4			20
+#define SCU1_RESET_I3C5			21
+#define SCU1_RESET_I3C6			22
+#define SCU1_RESET_I3C7			23
+#define SCU1_RESET_I3C8			24
+#define SCU1_RESET_I3C9			25
+#define SCU1_RESET_I3C10		26
+#define SCU1_RESET_I3C11		27
+#define SCU1_RESET_I3C12		28
+#define SCU1_RESET_I3C13		29
+#define SCU1_RESET_I3C14		30
+#define SCU1_RESET_I3C15		31
+#define SCU1_RESET_I3C15		31
+#define SCU1_RESET_MCU0			32
+#define SCU1_RESET_MCU1			33
+#define SCU1_RESET_H2A_SPI1		34
+#define SCU1_RESET_H2A_SPI2		35
+#define SCU1_RESET_UART0		36
+#define SCU1_RESET_UART1		37
+#define SCU1_RESET_UART2		38
+#define SCU1_RESET_UART3		39
+#define SCU1_RESET_I2C_FILTER		40
+#define SCU1_RESET_CALIPTRA		41
+#define SCU1_RESET_XDMA			42
+#define SCU1_RESET_FSI			43
+#define SCU1_RESET_CAN			44
+#define SCU1_RESET_MCTP			45
+#define SCU1_RESET_I2C			46
+#define SCU1_RESET_UART6		47
+#define SCU1_RESET_UART7		48
+#define SCU1_RESET_UART8		49
+#define SCU1_RESET_UART9		50
+#define SCU1_RESET_LTPI0		51
+#define SCU1_RESET_VGAL			52
+#define SCU1_RESET_LTPI1		53
+#define SCU1_RESET_ACE			54
+#define SCU1_RESET_E2M			55
+#define SCU1_RESET_UHCI			56
+#define SCU1_RESET_PORTC_USB2UART		57
+#define SCU1_RESET_PORTC_USB		58
+#define SCU1_RESET_PORTD_USB2UART		69
+#define SCU1_RESET_PORTD_USB		70
+#define SCU1_RESET_H2X			71
+#define SCU1_RESET_I3CDMA		72
+#define SCU1_RESET_PCIE2RST		73
+
+#endif  /* _MACH_ASPEED_AST2700_RESET_H_ */
Signature · 1 line
2.34.1
#2 lore raw

Re: [PATCH v2 1/3] dt-bindings: reset Add AST2700 reset bindings

Quoted 7 lines · Ryan Chen

Add dt bindings for AST2700 reset driver.

---
 .../dt-bindings/reset/aspeed,ast2700-reset.h  | 125 ++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 include/dt-bindings/reset/aspeed,ast2700-reset.h

NAK.

You still did not respond to my previous comments and did not implement them.

Month ago I told you this is not a separate patch.

https://lore.kernel.org/all/e13c16db-e1a7-4ee0-867b-b184d421de7f at kernel.org/

Best regards,
Krzysztof

author reviewer
#3 lore raw

RE: [PATCH v2 1/3] dt-bindings: reset Add AST2700 reset bindings

Quoted 14 lines

Subject: Re: [PATCH v2 1/3] dt-bindings: reset Add AST2700 reset bindings

Quoted 8 lines · Ryan Chen

Add dt bindings for AST2700 reset driver.

---
 .../dt-bindings/reset/aspeed,ast2700-reset.h  | 125
++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 include/dt-bindings/reset/aspeed,ast2700-reset.h

NAK.

Quoted 8 lines

You still did not respond to my previous comments and did not implement them.

Month ago I told you this is not a separate patch.

https://lore.kernel.org/all/e13c16db-e1a7-4ee0-867b-b184d421de7f at kernel .org/

Sorry, I think your point is still two files, but it should be at 1 patch. am I right? If yes, I will put aspeed,ast2700-reset.h and aspeed,ast2700-clk.h to be 1 patch.

Quoted 2 lines

Best regards,
Krzysztof

#4 lore raw

Re: [PATCH v2 1/3] dt-bindings: reset Add AST2700 reset bindings

Quoted 17 lines · Ryan Chen
Quoted 17 lines

Subject: Re: [PATCH v2 1/3] dt-bindings: reset Add AST2700 reset bindings

Quoted 8 lines · Ryan Chen

Add dt bindings for AST2700 reset driver.

---
 .../dt-bindings/reset/aspeed,ast2700-reset.h  | 125
++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 include/dt-bindings/reset/aspeed,ast2700-reset.h

NAK.

You still did not respond to my previous comments and did not implement them.

Quoted 7 lines
Quoted 5 lines

Month ago I told you this is not a separate patch.

https://lore.kernel.org/all/e13c16db-e1a7-4ee0-867b-b184d421de7f at kernel .org/

Sorry, I think your point is still two files, but it should be at 1 patch. am I right? If yes, I will put aspeed,ast2700-reset.h and aspeed,ast2700-clk.h to be 1 patch.

Binding headers are part of bindings patch.

Best regards,
Krzysztof

author reviewer
#5 lore raw

PATCH v2 2/3 dt-bindings: clock: Add AST2700 clock bindings

In reply to Ryan Chen

Add dt bindings for AST2700 clock controller

---
 .../dt-bindings/clock/aspeed,ast2700-clk.h    | 165 ++++++++++++++++++
 1 file changed, 165 insertions(+)
 create mode 100644 include/dt-bindings/clock/aspeed,ast2700-clk.h
include/dt-bindings/clock/aspeed,ast2700-clk.h new file +165 -0
new file mode 100644
index 000000000000..d5cefb455b4e
@@ -0,0 +1,165 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Device Tree binding constants for AST2700 clock controller.
+ *
+ * Copyright (c) 2024 Aspeed Technology Inc.
+ */
+
+#ifndef __DT_BINDINGS_CLOCK_AST2700_H
+#define __DT_BINDINGS_CLOCK_AST2700_H
+
+/* SOC0 clk */
+#define SCU0_CLKIN		0
+#define SCU0_CLK_24M		1
+#define SCU0_CLK_192M		2
+#define SCU0_CLK_UART		3
+#define SCU0_CLK_PSP		4
+#define SCU0_CLK_HPLL		5
+#define SCU0_CLK_HPLL_DIV2	6
+#define SCU0_CLK_HPLL_DIV4	7
+#define SCU0_CLK_DPLL		8
+#define SCU0_CLK_MPLL		9
+#define SCU0_CLK_MPLL_DIV2	10
+#define SCU0_CLK_MPLL_DIV4	11
+#define SCU0_CLK_MPLL_DIV8	12
+#define SCU0_CLK_D0		13
+#define SCU0_CLK_D1		14
+#define SCU0_CLK_CRT0		15
+#define SCU0_CLK_CRT1		16
+#define SCU0_CLK_MPHY		17
+#define SCU0_CLK_AXI0		18
+#define SCU0_CLK_AXI1		19
+#define SCU0_CLK_AHB		20
+#define SCU0_CLK_APB		21
+#define SCU0_CLK_MCLK		22
+#define SCU0_CLK_ECLK		23
+#define SCU0_CLK_VCLK		24
+#define SCU0_CLK_BCLK		25
+#define SCU0_CLK_REF		26
+#define SCU0_CLK_UART4		27
+#define SCU0_CLK_SLI		28
+#define SCU0_CLK_UFS		29
+#define SCU0_CLK_EMMCMUX	30
+#define SCU0_CLK_EMMC		31
+#define SCU0_CLK_U2PHY_CLK12M	32
+#define SCU0_CLK_U2PHY_REFCLK	33
+
+/* SOC0 clk-gate */
+#define SCU0_CLK_GATE_MCLK	34
+#define SCU0_CLK_GATE_ECLK	35
+#define SCU0_CLK_GATE_2DCLK	36
+#define SCU0_CLK_GATE_VCLK	37
+#define SCU0_CLK_GATE_BCLK	38
+#define SCU0_CLK_GATE_VGA0CLK	39
+#define SCU0_CLK_GATE_REFCLK	40
+#define SCU0_CLK_GATE_PORTBUSB2CLK	41
+#define SCU0_CLK_GATE_UHCICLK	42
+#define SCU0_CLK_GATE_VGA1CLK	43
+#define SCU0_CLK_GATE_DDRPHYCLK	44
+#define SCU0_CLK_GATE_E2M0CLK	45
+#define SCU0_CLK_GATE_HACCLK	46
+#define SCU0_CLK_GATE_PORTAUSB2CLK	47
+#define SCU0_CLK_GATE_UART4CLK	48
+#define SCU0_CLK_GATE_SLICLK	49
+#define SCU0_CLK_GATE_DACCLK	50
+#define SCU0_CLK_GATE_DP	51
+#define SCU0_CLK_GATE_E2M1CLK	52
+#define SCU0_CLK_GATE_CRT0CLK	53
+#define SCU0_CLK_GATE_CRT1CLK	54
+#define SCU0_CLK_GATE_VLCLK	55
+#define SCU0_CLK_GATE_ECDSACLK	56
+#define SCU0_CLK_GATE_RSACLK	57
+#define SCU0_CLK_GATE_RVAS0CLK	58
+#define SCU0_CLK_GATE_UFSCLK	59
+#define SCU0_CLK_GATE_EMMCCLK	60
+#define SCU0_CLK_GATE_RVAS1CLK	61
+
+/* SOC1 clk */
+#define SCU1_CLKIN		0
+#define SCU1_CLK_HPLL		1
+#define SCU1_CLK_APLL		2
+#define SCU1_CLK_APLL_DIV2	3
+#define SCU1_CLK_APLL_DIV4	4
+#define SCU1_CLK_DPLL		5
+#define SCU1_CLK_UXCLK		6
+#define SCU1_CLK_HUXCLK		7
+#define SCU1_CLK_UARTX		8
+#define SCU1_CLK_HUARTX		9
+#define SCU1_CLK_AHB		10
+#define SCU1_CLK_APB		11
+#define SCU1_CLK_UART0		12
+#define SCU1_CLK_UART1		13
+#define SCU1_CLK_UART2		14
+#define SCU1_CLK_UART3		15
+#define SCU1_CLK_UART5		16
+#define SCU1_CLK_UART6		17
+#define SCU1_CLK_UART7		18
+#define SCU1_CLK_UART8		19
+#define SCU1_CLK_UART9		20
+#define SCU1_CLK_UART10		21
+#define SCU1_CLK_UART11		22
+#define SCU1_CLK_UART12		23
+#define SCU1_CLK_APLL_DIVN	24
+#define SCU1_CLK_SDMUX		25
+#define SCU1_CLK_SDCLK		26
+#define SCU1_CLK_RMII		27
+#define SCU1_CLK_RGMII		28
+#define SCU1_CLK_MACHCLK	29
+#define SCU1_CLK_MAC0RCLK	30
+#define SCU1_CLK_MAC1RCLK	31
+
+/* SOC1 clk gate */
+#define SCU1_CLK_GATE_LCLK0		32
+#define SCU1_CLK_GATE_LCLK1		33
+#define SCU1_CLK_GATE_ESPI0CLK		34
+#define SCU1_CLK_GATE_ESPI1CLK		35
+#define SCU1_CLK_GATE_SDCLK		36
+#define SCU1_CLK_GATE_IPEREFCLK		37
+#define SCU1_CLK_GATE_RSV5CLK		38
+#define SCU1_CLK_GATE_LPCHCLK		39
+#define SCU1_CLK_GATE_MAC0CLK		40
+#define SCU1_CLK_GATE_MAC1CLK		41
+#define SCU1_CLK_GATE_MAC2CLK		42
+#define SCU1_CLK_GATE_UART0CLK		43
+#define SCU1_CLK_GATE_UART1CLK		44
+#define SCU1_CLK_GATE_UART2CLK		45
+#define SCU1_CLK_GATE_UART3CLK		46
+#define SCU1_CLK_GATE_I2CCLK		47
+#define SCU1_CLK_GATE_I3C0CLK		48
+#define SCU1_CLK_GATE_I3C1CLK		49
+#define SCU1_CLK_GATE_I3C2CLK		50
+#define SCU1_CLK_GATE_I3C3CLK		51
+#define SCU1_CLK_GATE_I3C4CLK		52
+#define SCU1_CLK_GATE_I3C5CLK		53
+#define SCU1_CLK_GATE_I3C6CLK		54
+#define SCU1_CLK_GATE_I3C7CLK		55
+#define SCU1_CLK_GATE_I3C8CLK		56
+#define SCU1_CLK_GATE_I3C9CLK		57
+#define SCU1_CLK_GATE_I3C10CLK		58
+#define SCU1_CLK_GATE_I3C11CLK		59
+#define SCU1_CLK_GATE_I3C12CLK		60
+#define SCU1_CLK_GATE_I3C13CLK		61
+#define SCU1_CLK_GATE_I3C14CLK		62
+#define SCU1_CLK_GATE_I3C15CLK		63
+#define SCU1_CLK_GATE_UART5CLK		64
+#define SCU1_CLK_GATE_UART6CLK		65
+#define SCU1_CLK_GATE_UART7CLK		66
+#define SCU1_CLK_GATE_UART8CLK		67
+#define SCU1_CLK_GATE_UART9CLK		68
+#define SCU1_CLK_GATE_UART10CLK		69
+#define SCU1_CLK_GATE_UART11CLK		70
+#define SCU1_CLK_GATE_UART12CLK		71
+#define SCU1_CLK_GATE_FSICLK		72
+#define SCU1_CLK_GATE_LTPIPHYCLK	73
+#define SCU1_CLK_GATE_LTPICLK		74
+#define SCU1_CLK_GATE_VGALCLK		75
+#define SCU1_CLK_GATE_USBUARTCLK	76
+#define SCU1_CLK_GATE_CANCLK		77
+#define SCU1_CLK_GATE_PCICLK		78
+#define SCU1_CLK_GATE_SLICLK		79
+#define SCU1_CLK_GATE_E2MCLK		80
+#define SCU1_CLK_GATE_PORTCUSB2CLK	81
+#define SCU1_CLK_GATE_PORTDUSB2CLK	82
+#define SCU1_CLK_GATE_LTPI1TXCLK	83
+
+#endif
Signature · 1 line
2.34.1
#6 lore raw

Re: [PATCH v2 2/3] dt-bindings: clock: Add AST2700 clock bindings

Quoted 4 lines · Ryan Chen

Add dt bindings for AST2700 clock controller

---

Read previous comments. This is not a separate patch.

Best regards,
Krzysztof

author reviewer
#7 lore raw

PATCH v2 3/3 clk: aspeed: add AST2700 clk driver

In reply to Ryan Chen

Add AST2700 clock controller driver. This driver also selects MFD_SYSCON, which provides access to system controller registers, and register the reset controller.

---
 drivers/clk/Kconfig       |   10 +
 drivers/clk/Makefile      |    1 +
 drivers/clk/clk-ast2700.c | 1198 +++++++++++++++++++++++++++++++++++++
 3 files changed, 1209 insertions(+)
 create mode 100644 drivers/clk/clk-ast2700.c
drivers/clk/Kconfig +10 -0
index 983ef4f36d8c..855b65f2d6dd 100644
@@ -269,6 +269,16 @@ config COMMON_CLK_ASPEED
 	  The G4 and G5 series, including the ast2400 and ast2500, are supported
 	  by this driver.
 
+config COMMON_CLK_AST2700
+	bool "Clock driver for AST2700 SoC"
+	depends on ARCH_ASPEED || COMPILE_TEST
+	select MFD_SYSCON
+	select RESET_CONTROLLER
+	help
+	  This driver provides support for clock on AST2700 SoC.
+	  This driver is responsible for managing the various clocks required
+	  by the peripherals and cores within the AST2700.
+
 config COMMON_CLK_S2MPS11
 	tristate "Clock driver for S2MPS1X/S5M8767 MFD"
 	depends on MFD_SEC_CORE || COMPILE_TEST
drivers/clk/Makefile +1 -0
index f793a16cad40..fe95203c3138 100644
@@ -38,6 +38,7 @@ obj-$(CONFIG_COMMON_CLK_FSL_SAI)	+= clk-fsl-sai.o
 obj-$(CONFIG_COMMON_CLK_GEMINI)		+= clk-gemini.o
 obj-$(CONFIG_COMMON_CLK_ASPEED)		+= clk-aspeed.o
 obj-$(CONFIG_MACH_ASPEED_G6)		+= clk-ast2600.o
+obj-$(CONFIG_COMMON_CLK_AST2700)	+= clk-ast2700.o
 obj-$(CONFIG_ARCH_HIGHBANK)		+= clk-highbank.o
 obj-$(CONFIG_CLK_HSDK)			+= clk-hsdk-pll.o
 obj-$(CONFIG_COMMON_CLK_K210)		+= clk-k210.o
drivers/clk/clk-ast2700.c new file +1198 -0

1,198 lines not on this page · raw message

Signature · 1 line
2.34.1
#8 lore raw

Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoted 14 lines · Ryan Chen

Add AST2700 clock controller driver. This driver also selects MFD_SYSCON, which provides access to system controller registers, and register the reset controller.

drivers/clk/clk-ast2700.c new file +7 -0
+	clks[SCU0_CLK_GATE_EMMCCLK] =
+		ast2700_clk_hw_register_gate(NULL, "emmcclk-gate", "emmcclk",
+					     0, clk_base + SCU0_CLK_STOP,
+					     27, 0, &ast2700_clk_lock);
+
+	clks[SCU0_CLK_GATE_RVAS1CLK] =
+		ast2700_clk_hw_register_gate(NULL, "rvas2clk", NULL,

drivers/clk/clk-ast2700.c line 1198

Quoted 10 lines
drivers/clk/clk-ast2700.c new file +10 -0
+					     0, clk_base + SCU0_CLK_STOP,
+					     28, 0, &ast2700_clk_lock);
+
+	of_clk_add_hw_provider(soc0_node, of_clk_hw_onecell_get, clk_data);
+
+	return 0;
+};
+
+CLK_OF_DECLARE_DRIVER(ast2700_soc0, "aspeed,ast2700-scu0", ast2700_soc0_clk_init);
+CLK_OF_DECLARE_DRIVER(ast2700_soc1, "aspeed,ast2700-scu1", ast2700_soc1_clk_init);

Nope, this is not documented.

You cannot add new compatibles without bindings.

Best regards,
Krzysztof

author reviewer
#9 lore raw

RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoted 31 lines

Subject: Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoted 15 lines · Ryan Chen

Add AST2700 clock controller driver. This driver also selects MFD_SYSCON, which provides access to system controller registers, and register the reset controller.

drivers/clk/clk-ast2700.c new file +8 -0
+	clks[SCU0_CLK_GATE_EMMCCLK] =
+		ast2700_clk_hw_register_gate(NULL, "emmcclk-gate", "emmcclk",
+					     0, clk_base + SCU0_CLK_STOP,
+					     27, 0, &ast2700_clk_lock);
+
+	clks[SCU0_CLK_GATE_RVAS1CLK] =
+		ast2700_clk_hw_register_gate(NULL, "rvas2clk", NULL,
+					     0, clk_base + SCU0_CLK_STOP,

drivers/clk/clk-ast2700.c

Quoted 10 lines
drivers/clk/clk-ast2700.c new file +10 -0
+					     28, 0, &ast2700_clk_lock);
+
+	of_clk_add_hw_provider(soc0_node, of_clk_hw_onecell_get, clk_data);
+
+	return 0;
+};
+
+CLK_OF_DECLARE_DRIVER(ast2700_soc0, "aspeed,ast2700-scu0",
+ast2700_soc0_clk_init); CLK_OF_DECLARE_DRIVER(ast2700_soc1,
+"aspeed,ast2700-scu1", ast2700_soc1_clk_init);

Nope, this is not documented.

Quoted 2 lines

You cannot add new compatibles without bindings.

Sorry, I miss yaml file patch. will send it in next version.

Quoted 2 lines

Best regards,
Krzysztof

maintainer
#10 lore raw

Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

In reply to Ryan Chen

Quoting Ryan Chen (2024-08-27 23:27:40)

drivers/clk/Kconfig config COMMON_CLK_ASPEED · line 275

Quoted 12 lines
drivers/clk/Kconfig +4 -0
index 983ef4f36d8c..855b65f2d6dd 100644
@@ -269,6 +269,16 @@ config COMMON_CLK_ASPEED
          The G4 and G5 series, including the ast2400 and ast2500, are supported
          by this driver.
 
+config COMMON_CLK_AST2700
+       bool "Clock driver for AST2700 SoC"
+       depends on ARCH_ASPEED || COMPILE_TEST
+       select MFD_SYSCON

Why is this a syscon?

Quoted 23 lines
drivers/clk/Kconfig +6 -0
+       select RESET_CONTROLLER
+       help
+         This driver provides support for clock on AST2700 SoC.
+         This driver is responsible for managing the various clocks required
+         by the peripherals and cores within the AST2700.
+
 config COMMON_CLK_S2MPS11
        tristate "Clock driver for S2MPS1X/S5M8767 MFD"
        depends on MFD_SEC_CORE || COMPILE_TEST
drivers/clk/clk-ast2700.c new file +8 -0
new file mode 100644
index 000000000000..7e0466e73980
@@ -0,0 +1,1198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 ASPEED Technology Inc.
+ * Author: Ryan Chen <[email protected]>
+ */
+
+#include <linux/bits.h>
+#include <linux/clk-provider.h>

[...]

drivers/clk/clk-ast2700.c line 409

Quoted 6 lines
drivers/clk/clk-ast2700.c new file +6 -0
+
+struct ast2700_reset {
+       void __iomem *base;
+       struct ast2700_reset_signal const *signal;
+       struct reset_controller_dev rcdev;
+};

Please move the reset controller to the drivers/reset directory by means of using an auxiliary device. There are some existing examples in there if you grep for auxiliary_device in drivers/reset to help guide.

Quoted 3 lines
drivers/clk/clk-ast2700.c new file +3 -0
+
+#define to_rc_data(p) container_of(p, struct ast2700_reset, rcdev)
+

[...]

Quoted 5 lines
drivers/clk/clk-ast2700.c new file +5 -0
+
+static int ast2700_soc0_clk_init(struct device_node *soc0_node)
+{
+       struct clk_hw_onecell_data *clk_data;
+       void __iomem *clk_base;

[...]

drivers/clk/clk-ast2700.c line 1198

Quoted 10 lines
drivers/clk/clk-ast2700.c new file +10 -0
+                                            0, clk_base + SCU0_CLK_STOP,
+                                            28, 0, &ast2700_clk_lock);
+
+       of_clk_add_hw_provider(soc0_node, of_clk_hw_onecell_get, clk_data);
+
+       return 0;
+};
+
+CLK_OF_DECLARE_DRIVER(ast2700_soc0, "aspeed,ast2700-scu0", ast2700_soc0_clk_init);
+CLK_OF_DECLARE_DRIVER(ast2700_soc1, "aspeed,ast2700-scu1", ast2700_soc1_clk_init);

Why can't this be a platform driver?

author reviewer
#11 lore raw

RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoted 10 lines

Subject: Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-27 23:27:40)

drivers/clk/Kconfig config COMMON_CLK_ASPEED · line 269

Quoted 6 lines
drivers/clk/Kconfig index renamed from drivers/clk/Kconfig +0 -0

983ef4f36d8c..855b65f2d6dd 100644

drivers/clk/Kconfig +0 -0
@@ -269,6 +269,16 @@ config COMMON_CLK_ASPEED
          The G4 and G5 series, including the ast2400 and ast2500, are

supported

Quoted 8 lines

drivers/clk/Kconfig config COMMON_CLK_ASPEED · line 275

Quoted 6 lines
drivers/clk/Kconfig +4 -0
          by this driver.
 
+config COMMON_CLK_AST2700
+       bool "Clock driver for AST2700 SoC"
+       depends on ARCH_ASPEED || COMPILE_TEST
+       select MFD_SYSCON

Why is this a syscon?

I will remove it.

Quoted 24 lines

drivers/clk/Kconfig config COMMON_CLK_ASPEED

Quoted 5 lines
drivers/clk/Kconfig +4 -0
+       select RESET_CONTROLLER
+       help
+         This driver provides support for clock on AST2700 SoC.
+         This driver is responsible for managing the various clocks

required

Quoted 17 lines
drivers/clk/Kconfig +2 -0
+         by the peripherals and cores within the AST2700.
+
 config COMMON_CLK_S2MPS11
        tristate "Clock driver for S2MPS1X/S5M8767 MFD"
        depends on MFD_SEC_CORE || COMPILE_TEST diff --git

a/drivers/clk/clk-ast2700.c b/drivers/clk/clk-ast2700.c new file mode 100644 index 000000000000..7e0466e73980

drivers/clk/clk-ast2700.c new file +7 -0
@@ -0,0 +1,1198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 ASPEED Technology Inc.
+ * Author: Ryan Chen <[email protected]>  */
+
+#include <linux/bits.h>
+#include <linux/clk-provider.h>

[...]

Quoted 9 lines

drivers/clk/clk-ast2700.c

Quoted 5 lines
drivers/clk/clk-ast2700.c new file +5 -0
+
+struct ast2700_reset {
+       void __iomem *base;
+       struct ast2700_reset_signal const *signal;
+       struct reset_controller_dev rcdev; };

Please move the reset controller to the drivers/reset directory by means of using an auxiliary device. There are some existing examples in there if you grep for auxiliary_device in drivers/reset to help guide.

Do you mean to have another reset controller driver? If yes, I may need syscon for remap two drivers.

Quoted 12 lines
Quoted 4 lines
drivers/clk/clk-ast2700.c new file +3 -0
+
+#define to_rc_data(p) container_of(p, struct ast2700_reset, rcdev)
+

[...]

Quoted 4 lines
drivers/clk/clk-ast2700.c new file +4 -0
+
+static int ast2700_soc0_clk_init(struct device_node *soc0_node) {
+       struct clk_hw_onecell_data *clk_data;
+       void __iomem *clk_base;

[...]

Quoted 1 line

+ 0, clk_base +

SCU0_CLK_STOP,

Quoted 14 lines

drivers/clk/clk-ast2700.c

Quoted 12 lines
drivers/clk/clk-ast2700.c new file +12 -0
+                                            28, 0,
+ &ast2700_clk_lock);
+
+       of_clk_add_hw_provider(soc0_node, of_clk_hw_onecell_get,
+ clk_data);
+
+       return 0;
+};
+
+CLK_OF_DECLARE_DRIVER(ast2700_soc0, "aspeed,ast2700-scu0",
+ast2700_soc0_clk_init); CLK_OF_DECLARE_DRIVER(ast2700_soc1,
+"aspeed,ast2700-scu1", ast2700_soc1_clk_init);

Why can't this be a platform driver?

Due to clk and reset will be the first driver in core. Do you think all drivers should be platform driver?

maintainer
#12 lore raw

RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-29 00:09:12)

Quoted 26 lines
Quoted 16 lines

Subject: Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-27 23:27:40)

Quoted 12 lines

a/drivers/clk/clk-ast2700.c b/drivers/clk/clk-ast2700.c new file mode 100644 index 000000000000..7e0466e73980

drivers/clk/clk-ast2700.c new file +7 -0
@@ -0,0 +1,1198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 ASPEED Technology Inc.
+ * Author: Ryan Chen <[email protected]>  */
+
+#include <linux/bits.h>
+#include <linux/clk-provider.h>

[...]

Quoted 9 lines

drivers/clk/clk-ast2700.c

Quoted 5 lines
drivers/clk/clk-ast2700.c new file +5 -0
+
+struct ast2700_reset {
+       void __iomem *base;
+       struct ast2700_reset_signal const *signal;
+       struct reset_controller_dev rcdev; };

Please move the reset controller to the drivers/reset directory by means of using an auxiliary device. There are some existing examples in there if you grep for auxiliary_device in drivers/reset to help guide.

Quoted 2 lines

Do you mean to have another reset controller driver? If yes, I may need syscon for remap two drivers.

Yes. A syscon is not necessary to do that.

Quoted 26 lines
Quoted 12 lines
Quoted 4 lines
drivers/clk/clk-ast2700.c new file +3 -0
+
+#define to_rc_data(p) container_of(p, struct ast2700_reset, rcdev)
+

[...]

Quoted 4 lines
drivers/clk/clk-ast2700.c new file +4 -0
+
+static int ast2700_soc0_clk_init(struct device_node *soc0_node) {
+       struct clk_hw_onecell_data *clk_data;
+       void __iomem *clk_base;

[...]

Quoted 1 line

+ 0, clk_base +

SCU0_CLK_STOP,

Quoted 14 lines

drivers/clk/clk-ast2700.c

Quoted 12 lines
drivers/clk/clk-ast2700.c new file +12 -0
+                                            28, 0,
+ &ast2700_clk_lock);
+
+       of_clk_add_hw_provider(soc0_node, of_clk_hw_onecell_get,
+ clk_data);
+
+       return 0;
+};
+
+CLK_OF_DECLARE_DRIVER(ast2700_soc0, "aspeed,ast2700-scu0",
+ast2700_soc0_clk_init); CLK_OF_DECLARE_DRIVER(ast2700_soc1,
+"aspeed,ast2700-scu1", ast2700_soc1_clk_init);

Why can't this be a platform driver?

Quoted 2 lines

Due to clk and reset will be the first driver in core. Do you think all drivers should be platform driver?

Yes all drivers should be a platform driver.

author reviewer
#13 lore raw

RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoted 30 lines

Subject: RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-29 00:09:12)

Quoted 27 lines
Quoted 26 lines

Subject: Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-27 23:27:40)

Quoted 13 lines

a/drivers/clk/clk-ast2700.c b/drivers/clk/clk-ast2700.c new file mode
100644 index 000000000000..7e0466e73980

drivers/clk/clk-ast2700.c new file +7 -0
@@ -0,0 +1,1198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 ASPEED Technology Inc.
+ * Author: Ryan Chen <[email protected]>  */
+
+#include <linux/bits.h>
+#include <linux/clk-provider.h>

[...]

drivers/clk/clk-ast2700.c

Quoted 5 lines
drivers/clk/clk-ast2700.c new file +5 -0
+
+struct ast2700_reset {
+       void __iomem *base;
+       struct ast2700_reset_signal const *signal;
+       struct reset_controller_dev rcdev; };

Please move the reset controller to the drivers/reset directory by means of using an auxiliary device. There are some existing examples in there if you grep for auxiliary_device in drivers/reset to help guide.

Quoted 4 lines
Quoted 2 lines

Do you mean to have another reset controller driver? If yes, I may need syscon for remap two drivers.

Yes. A syscon is not necessary to do that.

Thanks for point out auxiliary device.
Since our SoC reset and clock share the same register region. Your recommend will use clk auxiliary_device_add for reset driver am I right?

Quoted 32 lines
Quoted 28 lines
Quoted 14 lines
Quoted 6 lines
drivers/clk/clk-ast2700.c new file +4 -0
+
+#define to_rc_data(p) container_of(p, struct ast2700_reset,
+rcdev)
+

[...]

Quoted 4 lines
drivers/clk/clk-ast2700.c new file +4 -0
+
+static int ast2700_soc0_clk_init(struct device_node *soc0_node) {
+       struct clk_hw_onecell_data *clk_data;
+       void __iomem *clk_base;

[...]

Quoted 1 line

+ 0, clk_base +

SCU0_CLK_STOP,

Quoted 14 lines

drivers/clk/clk-ast2700.c

Quoted 12 lines
drivers/clk/clk-ast2700.c new file +12 -0
+                                            28, 0,
+ &ast2700_clk_lock);
+
+       of_clk_add_hw_provider(soc0_node, of_clk_hw_onecell_get,
+ clk_data);
+
+       return 0;
+};
+
+CLK_OF_DECLARE_DRIVER(ast2700_soc0, "aspeed,ast2700-scu0",
+ast2700_soc0_clk_init); CLK_OF_DECLARE_DRIVER(ast2700_soc1,
+"aspeed,ast2700-scu1", ast2700_soc1_clk_init);

Why can't this be a platform driver?

Quoted 2 lines

Due to clk and reset will be the first driver in core. Do you think all drivers should be platform driver?

Yes all drivers should be a platform driver.

maintainer
#14 lore raw

RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-30 00:50:21)

Quoted 30 lines
Quoted 30 lines

Subject: RE: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-29 00:09:12)

Quoted 27 lines
Quoted 26 lines

Subject: Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

Quoting Ryan Chen (2024-08-27 23:27:40)

Quoted 13 lines

a/drivers/clk/clk-ast2700.c b/drivers/clk/clk-ast2700.c new file mode
100644 index 000000000000..7e0466e73980

drivers/clk/clk-ast2700.c new file +7 -0
@@ -0,0 +1,1198 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 ASPEED Technology Inc.
+ * Author: Ryan Chen <[email protected]>  */
+
+#include <linux/bits.h>
+#include <linux/clk-provider.h>

[...]

drivers/clk/clk-ast2700.c

Quoted 5 lines
drivers/clk/clk-ast2700.c new file +5 -0
+
+struct ast2700_reset {
+       void __iomem *base;
+       struct ast2700_reset_signal const *signal;
+       struct reset_controller_dev rcdev; };

Please move the reset controller to the drivers/reset directory by means of using an auxiliary device. There are some existing examples in there if you grep for auxiliary_device in drivers/reset to help guide.

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

Do you mean to have another reset controller driver? If yes, I may need syscon for remap two drivers.

Yes. A syscon is not necessary to do that.

Thanks for point out auxiliary device.
Since our SoC reset and clock share the same register region. Your recommend will use clk auxiliary_device_add for reset driver am I right?

Yes. Either the clk or the reset driver can be a platform driver and the other an auxiliary driver.

#15 lore raw

Re: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver

In reply to Ryan Chen
kernel test robot noticed the following build warnings:

Hi Ryan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on clk/clk-next]
[also build test WARNING on linus/master v6.11-rc5 next-20240828] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ryan-Chen/dt-bindings-reset-Add-AST2700-reset-bindings/20240828-143005
base:   https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
patch link:    https://lore.kernel.org/r/20240828062740.1614744-4-ryan_chen%40aspeedtech.com
patch subject: [PATCH v2 3/3] clk: aspeed: add AST2700 clk driver
config: microblaze-randconfig-r111-20240829 (https://download.01.org/0day-ci/archive/20240829/202408290836.KrEafUdK-lkp at intel.com/config)
compiler: microblaze-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20240829/202408290836.KrEafUdK-lkp at intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408290836.KrEafUdK-lkp at intel.com/

sparse warnings: (new ones prefixed by >>)
drivers/clk/clk-ast2700.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...):
include/linux/page-flags.h:235:46: sparse: sparse: self-comparison always evaluates to false include/linux/page-flags.h:235:46: sparse: sparse: self-comparison always evaluates to false

>> drivers/clk/clk-ast2700.c:100:10: sparse: sparse: Initializer entry defined twice

drivers/clk/clk-ast2700.c:107:10: sparse: also defined here

vim +100 drivers/clk/clk-ast2700.c

    66	
    67	static const struct ast2700_reset_signal ast2700_reset0_signals[] = {
    68		[SCU0_RESET_SDRAM] = { 1, SCU0_RESET_CTRL1, BIT(0) },
    69		[SCU0_RESET_DDRPHY] = { 1, SCU0_RESET_CTRL1, BIT(1) },
    70		[SCU0_RESET_RSA]     = { 1, SCU0_RESET_CTRL1, BIT(2) },
    71		[SCU0_RESET_SHA3]	= { 1, SCU0_RESET_CTRL1, BIT(3) },
    72		[SCU0_RESET_HACE]	= { 1, SCU0_RESET_CTRL1, BIT(4) },
    73		[SCU0_RESET_SOC]	= { 1, SCU0_RESET_CTRL1, BIT(5) },
    74		[SCU0_RESET_VIDEO]	= { 1, SCU0_RESET_CTRL1, BIT(6) },
    75		[SCU0_RESET_2D]	= { 1, SCU0_RESET_CTRL1, BIT(7) },
    76		[SCU0_RESET_PCIS]	= { 1, SCU0_RESET_CTRL1, BIT(8) },
    77		[SCU0_RESET_RVAS0]		= { 1, SCU0_RESET_CTRL1, BIT(9) },
    78		[SCU0_RESET_RVAS1]		= { 1, SCU0_RESET_CTRL1, BIT(10) },
    79		[SCU0_RESET_SM3]		= { 1, SCU0_RESET_CTRL1, BIT(11) },
    80		[SCU0_RESET_SM4]		= { 1, SCU0_RESET_CTRL1, BIT(12) },
    81		[SCU0_RESET_CRT0]	= { 1, SCU0_RESET_CTRL1, BIT(13) },
    82		[SCU0_RESET_ECC]	= { 1, SCU0_RESET_CTRL1, BIT(14) },
    83		[SCU0_RESET_DP_PCI]	= { 1, SCU0_RESET_CTRL1, BIT(15) },
    84		[SCU0_RESET_UFS]	= { 1, SCU0_RESET_CTRL1, BIT(16) },
    85		[SCU0_RESET_EMMC]	= { 1, SCU0_RESET_CTRL1, BIT(17) },
    86		[SCU0_RESET_PCIE1RST]	= { 1, SCU0_RESET_CTRL1, BIT(18) },
    87		[SCU0_RESET_PCIE1RSTOE]	= { 1, SCU0_RESET_CTRL1, BIT(19) },
    88		[SCU0_RESET_PCIE0RST]		= { 1, SCU0_RESET_CTRL1, BIT(20) },
    89		[SCU0_RESET_PCIE0RSTOE]	= { 1, SCU0_RESET_CTRL1, BIT(21) },
    90		[SCU0_RESET_JTAG]	= { 1, SCU0_RESET_CTRL1, BIT(22) },
    91		[SCU0_RESET_MCTP0] = { 1, SCU0_RESET_CTRL1, BIT(23) },
    92		[SCU0_RESET_MCTP1]		= { 1, SCU0_RESET_CTRL1, BIT(24) },
    93		[SCU0_RESET_XDMA0]	= { 1, SCU0_RESET_CTRL1, BIT(25) },
    94		[SCU0_RESET_XDMA1]	= { 1, SCU0_RESET_CTRL1, BIT(26) },
    95		[SCU0_RESET_H2X1]	= { 1, SCU0_RESET_CTRL1, BIT(27) },
    96		[SCU0_RESET_DP]	= { 1, SCU0_RESET_CTRL1, BIT(28) },
    97		[SCU0_RESET_DP_MCU]	= { 1, SCU0_RESET_CTRL1, BIT(29) },
    98		[SCU0_RESET_SSP]	= { 1, SCU0_RESET_CTRL1, BIT(30) },
    99		[SCU0_RESET_H2X0]	= { 1, SCU0_RESET_CTRL1, BIT(31) },
 > 100		[SCU0_RESET_PORTA_USB]	= { 1, SCU0_RESET_CTRL2, BIT(0) },

101 [SCU0_RESET_PORTA_PHY3] = { 1, SCU0_RESET_CTRL2, BIT(1) },
102 [SCU0_RESET_PORTA_XHCI] = { 1, SCU0_RESET_CTRL2, BIT(2) },
103 [SCU0_RESET_PORTB_VHUB1] = { 1, SCU0_RESET_CTRL2, BIT(3) },
104 [SCU0_RESET_PORTB_PHY3] = { 1, SCU0_RESET_CTRL2, BIT(4) },
105 [SCU0_RESET_PORTB_XHCI] = { 1, SCU0_RESET_CTRL2, BIT(5) },
106 /*PORTA EHCI/VHUB share reset */
107 [SCU0_RESET_PORTA_USB] = { 1, SCU0_RESET_CTRL2, BIT(6) },
108 /*PORTB EHCI/VHUB share reset */
109 [SCU0_RESET_PORTB_USB] = { 1, SCU0_RESET_CTRL2, BIT(7) },
110 [SCU0_RESET_UHCI] = { 1, SCU0_RESET_CTRL2, BIT(8) },
111 [SCU0_RESET_TSP] = { 1, SCU0_RESET_CTRL2, BIT(9) },
112 [SCU0_RESET_E2M0] = { 1, SCU0_RESET_CTRL2, BIT(10) },
113 [SCU0_RESET_E2M1] = { 1, SCU0_RESET_CTRL2, BIT(11) },
114 [SCU0_RESET_VLINK] = { 1, SCU0_RESET_CTRL2, BIT(12) },
115 };
116

Signature · 2 lines
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
#16 lore raw
In reply to Ryan Chen

Review

Quoted 10 lines · Ryan Chen

This patch series is add clk driver for AST2700.

AST2700 is the 8th generation of Integrated Remote Management Processor introduced by ASPEED Technology Inc. Which is Board Management controller (BMC) SoC family. AST2700 have two SoC connected, one is SoC0, another is SoC1, it has it's own scu, this driver inlcude SCU0 and SCU1 driver.

v2:

(quoted diff) +0 -2
-yaml: drop 64bits address example.
-yaml: add discription about soc0 and soc1

Where?

Proof read your patches before sending.

Best regards,
Krzysztof

#17 lore raw
In reply to Ryan Chen

Review

Quoted 13 lines · Ryan Chen

This patch series is add clk driver for AST2700.

AST2700 is the 8th generation of Integrated Remote Management Processor introduced by ASPEED Technology Inc. Which is Board Management controller (BMC) SoC family. AST2700 have two SoC connected, one is SoC0, another is SoC1, it has it's own scu, this driver inlcude SCU0 and SCU1 driver.

v2:

(quoted diff) +0 -5
-yaml: drop 64bits address example.
-yaml: add discription about soc0 and soc1
-dt-bindings: remove (), *_NUMS, reserved.
-dt-bindings: remove dulipated define number
-clk-ast2700: drop WARN_ON, weird comment.

As LKP pointed out, this fails on certain static tests. It is expected that new drvier will pass the open/free static analysis tools we use in the kernel.

Please run standard kernel tools for static analysis, like coccinelle, smatch and sparse, and fix reported warnings. Also please check for warnings when building with W=1. Most of these commands (checks or W=1 build) can build specific targets, like some directory, to narrow the scope to only your code. The code here looks like it needs a fix. Feel free to get in touch if the warning is not clear.

Best regards,
Krzysztof