All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-13  7:58 ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Hey all,
After the clock driver for the PolarFire SoC was accepted I started work
on the onboard RTC & found out that the reference clock for the rtc was
actually missing from the clock driver.

While restructuring the clock driver to add support for the rtc
reference, I also noticed that there were some problems with how the FIC
clocks were being used. The FIC clocks are the cpu side inputs to the
AXI fabric interconnections & are not the clocks for any peripherals.

This first three patches in this series fixes the problems with the FICs:
- the fic clocks incorrectly had the AHB clock as their parents
- the last fic, named differently to the others, had not been set as
  a critical clock
- some peripherals on the fabric side were incorrectly using the cpu
  side fic clocks, resulting in incorrect rates.

The second part of the series fixes the missing rtc reference clock.
There are three main changes:
- Changing the reference clock in the dt to the external 125 MHz
  oscillator rather than using the output of an internal pll. This has
  the added benefit of not requiring changes to the device tree if this
  part of the bitstream changes.
- Adding a new clock into the driver that sits above the existing
  configurable clocks & has the external reference as a parent. The new
  clock provides the parent for the AHB/AXI clocks which formerly came
  from the device tree.
- Adding the rtc reference clock to the dt bindings, device tree and
  clock driver at the configurable clock level, alongside AXI and AHB.

I kept series separate from [0] since that's tied to the CONFIG_PM stuff
& fixes a specific problem.

Changes since v1:
After speaking with Krzysztof, I have merged the rtc reference changes
[1] with these fixes for 5.18. This was done since the relevant drivers
and bindings only arrived in v5.18 & there'll now be no issue with
breaking the ABI.
Backwards compatiblity with the device tree from before 5.18 will be
broken by these changes, but the board did not boot then anyway... If
that is not okay, please lmk.

The patch renaming sys_base was dropped since that's not a fix.

Version 1 would not apply without [0] & that should be fixed too.

Thanks,
Conor.

Changes since v2:
- Wrapped text in dt-binding changes at 80 cols
- Ordered the clock defines numerically in the binding header
- Fixed the Fixes tag on the last patch and added the second tag

[0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
[1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com

Conor Dooley (9):
  clk: microchip: mpfs: fix parents for FIC clocks
  clk: microchip: mpfs: mark CLK_ATHENA as critical
  riscv: dts: microchip: fix usage of fic clocks on mpfs
  dt-bindings: clk: mpfs document msspll dri registers
  dt-bindings: clk: mpfs: add defines for two new clocks
  dt-bindings: rtc: add refclk to mpfs-rtc
  clk: microchip: mpfs: re-parent the configurable clocks
  clk: microchip: mpfs: add RTCREF clock control
  riscv: dts: microchip: reparent mpfs clocks

 .../bindings/clock/microchip,mpfs.yaml        |  13 +-
 .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
 .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
 .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
 .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
 drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
 .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
 7 files changed, 211 insertions(+), 41 deletions(-)

-- 
2.35.1


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

* [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-13  7:58 ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Hey all,
After the clock driver for the PolarFire SoC was accepted I started work
on the onboard RTC & found out that the reference clock for the rtc was
actually missing from the clock driver.

While restructuring the clock driver to add support for the rtc
reference, I also noticed that there were some problems with how the FIC
clocks were being used. The FIC clocks are the cpu side inputs to the
AXI fabric interconnections & are not the clocks for any peripherals.

This first three patches in this series fixes the problems with the FICs:
- the fic clocks incorrectly had the AHB clock as their parents
- the last fic, named differently to the others, had not been set as
  a critical clock
- some peripherals on the fabric side were incorrectly using the cpu
  side fic clocks, resulting in incorrect rates.

The second part of the series fixes the missing rtc reference clock.
There are three main changes:
- Changing the reference clock in the dt to the external 125 MHz
  oscillator rather than using the output of an internal pll. This has
  the added benefit of not requiring changes to the device tree if this
  part of the bitstream changes.
- Adding a new clock into the driver that sits above the existing
  configurable clocks & has the external reference as a parent. The new
  clock provides the parent for the AHB/AXI clocks which formerly came
  from the device tree.
- Adding the rtc reference clock to the dt bindings, device tree and
  clock driver at the configurable clock level, alongside AXI and AHB.

I kept series separate from [0] since that's tied to the CONFIG_PM stuff
& fixes a specific problem.

Changes since v1:
After speaking with Krzysztof, I have merged the rtc reference changes
[1] with these fixes for 5.18. This was done since the relevant drivers
and bindings only arrived in v5.18 & there'll now be no issue with
breaking the ABI.
Backwards compatiblity with the device tree from before 5.18 will be
broken by these changes, but the board did not boot then anyway... If
that is not okay, please lmk.

The patch renaming sys_base was dropped since that's not a fix.

Version 1 would not apply without [0] & that should be fixed too.

Thanks,
Conor.

Changes since v2:
- Wrapped text in dt-binding changes at 80 cols
- Ordered the clock defines numerically in the binding header
- Fixed the Fixes tag on the last patch and added the second tag

[0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
[1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com

Conor Dooley (9):
  clk: microchip: mpfs: fix parents for FIC clocks
  clk: microchip: mpfs: mark CLK_ATHENA as critical
  riscv: dts: microchip: fix usage of fic clocks on mpfs
  dt-bindings: clk: mpfs document msspll dri registers
  dt-bindings: clk: mpfs: add defines for two new clocks
  dt-bindings: rtc: add refclk to mpfs-rtc
  clk: microchip: mpfs: re-parent the configurable clocks
  clk: microchip: mpfs: add RTCREF clock control
  riscv: dts: microchip: reparent mpfs clocks

 .../bindings/clock/microchip,mpfs.yaml        |  13 +-
 .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
 .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
 .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
 .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
 drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
 .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
 7 files changed, 211 insertions(+), 41 deletions(-)

-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The fabric interconnects are on the AXI bus not AHB.
Update their parent clocks to fix this.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index aa1561b773d6..7485a5eeb5c0 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -277,11 +277,11 @@ static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
 	CLK_PERIPH(CLK_GPIO1, "clk_periph_gpio1", PARENT_CLK(AHB), 21, 0),
 	CLK_PERIPH(CLK_GPIO2, "clk_periph_gpio2", PARENT_CLK(AHB), 22, 0),
 	CLK_PERIPH(CLK_DDRC, "clk_periph_ddrc", PARENT_CLK(AHB), 23, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC0, "clk_periph_fic0", PARENT_CLK(AHB), 24, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC1, "clk_periph_fic1", PARENT_CLK(AHB), 25, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC2, "clk_periph_fic2", PARENT_CLK(AHB), 26, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC3, "clk_periph_fic3", PARENT_CLK(AHB), 27, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AHB), 28, 0),
+	CLK_PERIPH(CLK_FIC0, "clk_periph_fic0", PARENT_CLK(AXI), 24, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_FIC1, "clk_periph_fic1", PARENT_CLK(AXI), 25, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_FIC2, "clk_periph_fic2", PARENT_CLK(AXI), 26, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_FIC3, "clk_periph_fic3", PARENT_CLK(AXI), 27, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AXI), 28, 0),
 	CLK_PERIPH(CLK_CFM, "clk_periph_cfm", PARENT_CLK(AHB), 29, 0),
 };
 
-- 
2.35.1


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

* [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The fabric interconnects are on the AXI bus not AHB.
Update their parent clocks to fix this.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index aa1561b773d6..7485a5eeb5c0 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -277,11 +277,11 @@ static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
 	CLK_PERIPH(CLK_GPIO1, "clk_periph_gpio1", PARENT_CLK(AHB), 21, 0),
 	CLK_PERIPH(CLK_GPIO2, "clk_periph_gpio2", PARENT_CLK(AHB), 22, 0),
 	CLK_PERIPH(CLK_DDRC, "clk_periph_ddrc", PARENT_CLK(AHB), 23, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC0, "clk_periph_fic0", PARENT_CLK(AHB), 24, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC1, "clk_periph_fic1", PARENT_CLK(AHB), 25, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC2, "clk_periph_fic2", PARENT_CLK(AHB), 26, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_FIC3, "clk_periph_fic3", PARENT_CLK(AHB), 27, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AHB), 28, 0),
+	CLK_PERIPH(CLK_FIC0, "clk_periph_fic0", PARENT_CLK(AXI), 24, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_FIC1, "clk_periph_fic1", PARENT_CLK(AXI), 25, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_FIC2, "clk_periph_fic2", PARENT_CLK(AXI), 26, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_FIC3, "clk_periph_fic3", PARENT_CLK(AXI), 27, CLK_IS_CRITICAL),
+	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AXI), 28, 0),
 	CLK_PERIPH(CLK_CFM, "clk_periph_cfm", PARENT_CLK(AHB), 29, 0),
 };
 
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 2/9] clk: microchip: mpfs: mark CLK_ATHENA as critical
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

CLK_ATHENA is another fabric interconnect and should be marked as critical
as with FIC0-3, since disabling it will cause part of the fabric to go
into reset.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index 7485a5eeb5c0..a361b8743a32 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -249,8 +249,10 @@ static const struct clk_ops mpfs_periph_clk_ops = {
  *   trap handler
  * - CLK_MMUART0: reserved by the hss
  * - CLK_DDRC: provides clock to the ddr subsystem
- * - CLK_FICx: these provide clocks for sections of the fpga fabric, disabling them would
- *   cause the fabric to go into reset
+ * - CLK_FICx: these provide the processor side clocks to the "FIC" (Fabric InterConnect)
+ *   clock domain crossers which provide the interface to the FPGA fabric. Disabling them
+ *   causes the FPGA fabric to go into reset.
+ * - CLK_ATHENA: The athena clock is FIC4, which is reserved for the Athena TeraFire.
  */
 
 static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
@@ -281,7 +283,7 @@ static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
 	CLK_PERIPH(CLK_FIC1, "clk_periph_fic1", PARENT_CLK(AXI), 25, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_FIC2, "clk_periph_fic2", PARENT_CLK(AXI), 26, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_FIC3, "clk_periph_fic3", PARENT_CLK(AXI), 27, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AXI), 28, 0),
+	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AXI), 28, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_CFM, "clk_periph_cfm", PARENT_CLK(AHB), 29, 0),
 };
 
-- 
2.35.1


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

* [PATCH v3 2/9] clk: microchip: mpfs: mark CLK_ATHENA as critical
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

CLK_ATHENA is another fabric interconnect and should be marked as critical
as with FIC0-3, since disabling it will cause part of the fabric to go
into reset.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index 7485a5eeb5c0..a361b8743a32 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -249,8 +249,10 @@ static const struct clk_ops mpfs_periph_clk_ops = {
  *   trap handler
  * - CLK_MMUART0: reserved by the hss
  * - CLK_DDRC: provides clock to the ddr subsystem
- * - CLK_FICx: these provide clocks for sections of the fpga fabric, disabling them would
- *   cause the fabric to go into reset
+ * - CLK_FICx: these provide the processor side clocks to the "FIC" (Fabric InterConnect)
+ *   clock domain crossers which provide the interface to the FPGA fabric. Disabling them
+ *   causes the FPGA fabric to go into reset.
+ * - CLK_ATHENA: The athena clock is FIC4, which is reserved for the Athena TeraFire.
  */
 
 static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
@@ -281,7 +283,7 @@ static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
 	CLK_PERIPH(CLK_FIC1, "clk_periph_fic1", PARENT_CLK(AXI), 25, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_FIC2, "clk_periph_fic2", PARENT_CLK(AXI), 26, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_FIC3, "clk_periph_fic3", PARENT_CLK(AXI), 27, CLK_IS_CRITICAL),
-	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AXI), 28, 0),
+	CLK_PERIPH(CLK_ATHENA, "clk_periph_athena", PARENT_CLK(AXI), 28, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_CFM, "clk_periph_cfm", PARENT_CLK(AHB), 29, 0),
 };
 
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 3/9] riscv: dts: microchip: fix usage of fic clocks on mpfs
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The fic clocks passed to the pcie controller and other peripherals in
the device tree are not the clocks they actually run on. The fics are
actually clock domain crossers & the clock config blocks output is the
mss/cpu side input to the interconnect. The peripherals are actually
clocked by fixed frequency clocks embedded in the fpga fabric.

Fix the device tree so that these peripherals use the correct clocks.
The fabric side FIC0 & FIC1 inputs both use the same 125 MHz, so only
one clock is created for them.

Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../dts/microchip/microchip-mpfs-fabric.dtsi     | 16 ++++++++++++++--
 .../riscv/boot/dts/microchip/microchip-mpfs.dtsi |  2 +-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
index 854320e17b28..ccaac3371cf9 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
@@ -7,7 +7,7 @@ core_pwm0: pwm@41000000 {
 		reg = <0x0 0x41000000 0x0 0xF0>;
 		microchip,sync-update-mask = /bits/ 32 <0>;
 		#pwm-cells = <2>;
-		clocks = <&clkcfg CLK_FIC3>;
+		clocks = <&fabric_clk3>;
 		status = "disabled";
 	};
 
@@ -16,10 +16,22 @@ i2c2: i2c@44000000 {
 		reg = <0x0 0x44000000 0x0 0x1000>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-		clocks = <&clkcfg CLK_FIC3>;
+		clocks = <&fabric_clk3>;
 		interrupt-parent = <&plic>;
 		interrupts = <122>;
 		clock-frequency = <100000>;
 		status = "disabled";
 	};
+
+	fabric_clk3: fabric-clk3 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <62500000>;
+	};
+
+	fabric_clk1: fabric-clk1 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <125000000>;
+	};
 };
diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
index c5c9d1360de0..3b48b7f35410 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
@@ -424,7 +424,7 @@ pcie: pcie@2000000000 {
 					<0 0 0 3 &pcie_intc 2>,
 					<0 0 0 4 &pcie_intc 3>;
 			interrupt-map-mask = <0 0 0 7>;
-			clocks = <&clkcfg CLK_FIC0>, <&clkcfg CLK_FIC1>, <&clkcfg CLK_FIC3>;
+			clocks = <&fabric_clk1>, <&fabric_clk1>, <&fabric_clk3>;
 			clock-names = "fic0", "fic1", "fic3";
 			ranges = <0x3000000 0x0 0x8000000 0x20 0x8000000 0x0 0x80000000>;
 			msi-parent = <&pcie>;
-- 
2.35.1


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

* [PATCH v3 3/9] riscv: dts: microchip: fix usage of fic clocks on mpfs
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The fic clocks passed to the pcie controller and other peripherals in
the device tree are not the clocks they actually run on. The fics are
actually clock domain crossers & the clock config blocks output is the
mss/cpu side input to the interconnect. The peripherals are actually
clocked by fixed frequency clocks embedded in the fpga fabric.

Fix the device tree so that these peripherals use the correct clocks.
The fabric side FIC0 & FIC1 inputs both use the same 125 MHz, so only
one clock is created for them.

Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../dts/microchip/microchip-mpfs-fabric.dtsi     | 16 ++++++++++++++--
 .../riscv/boot/dts/microchip/microchip-mpfs.dtsi |  2 +-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
index 854320e17b28..ccaac3371cf9 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
@@ -7,7 +7,7 @@ core_pwm0: pwm@41000000 {
 		reg = <0x0 0x41000000 0x0 0xF0>;
 		microchip,sync-update-mask = /bits/ 32 <0>;
 		#pwm-cells = <2>;
-		clocks = <&clkcfg CLK_FIC3>;
+		clocks = <&fabric_clk3>;
 		status = "disabled";
 	};
 
@@ -16,10 +16,22 @@ i2c2: i2c@44000000 {
 		reg = <0x0 0x44000000 0x0 0x1000>;
 		#address-cells = <1>;
 		#size-cells = <0>;
-		clocks = <&clkcfg CLK_FIC3>;
+		clocks = <&fabric_clk3>;
 		interrupt-parent = <&plic>;
 		interrupts = <122>;
 		clock-frequency = <100000>;
 		status = "disabled";
 	};
+
+	fabric_clk3: fabric-clk3 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <62500000>;
+	};
+
+	fabric_clk1: fabric-clk1 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <125000000>;
+	};
 };
diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
index c5c9d1360de0..3b48b7f35410 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
@@ -424,7 +424,7 @@ pcie: pcie@2000000000 {
 					<0 0 0 3 &pcie_intc 2>,
 					<0 0 0 4 &pcie_intc 3>;
 			interrupt-map-mask = <0 0 0 7>;
-			clocks = <&clkcfg CLK_FIC0>, <&clkcfg CLK_FIC1>, <&clkcfg CLK_FIC3>;
+			clocks = <&fabric_clk1>, <&fabric_clk1>, <&fabric_clk3>;
 			clock-names = "fic0", "fic1", "fic3";
 			ranges = <0x3000000 0x0 0x8000000 0x20 0x8000000 0x0 0x80000000>;
 			msi-parent = <&pcie>;
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 4/9] dt-bindings: clk: mpfs document msspll dri registers
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

As there are two sections of registers that are responsible for clock
configuration on the PolarFire SoC: add the dynamic reconfiguration
interface section to the binding & describe what each of the sections
are used for.

Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../devicetree/bindings/clock/microchip,mpfs.yaml   | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml b/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
index 0c15afa2214c..016a4f378b9b 100644
--- a/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
+++ b/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
@@ -22,7 +22,16 @@ properties:
     const: microchip,mpfs-clkcfg
 
   reg:
-    maxItems: 1
+    items:
+      - description: |
+          clock config registers:
+          These registers contain enable, reset & divider tables for the, cpu,
+          axi, ahb and rtc/mtimer reference clocks as well as enable and reset
+          for the peripheral clocks.
+      - description: |
+          mss pll dri registers:
+          Block of registers responsible for dynamic reconfiguration of the mss
+          pll
 
   clocks:
     maxItems: 1
@@ -51,7 +60,7 @@ examples:
             #size-cells = <2>;
             clkcfg: clock-controller@20002000 {
                 compatible = "microchip,mpfs-clkcfg";
-                reg = <0x0 0x20002000 0x0 0x1000>;
+                reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
                 clocks = <&ref>;
                 #clock-cells = <1>;
         };
-- 
2.35.1


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

* [PATCH v3 4/9] dt-bindings: clk: mpfs document msspll dri registers
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

As there are two sections of registers that are responsible for clock
configuration on the PolarFire SoC: add the dynamic reconfiguration
interface section to the binding & describe what each of the sections
are used for.

Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../devicetree/bindings/clock/microchip,mpfs.yaml   | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml b/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
index 0c15afa2214c..016a4f378b9b 100644
--- a/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
+++ b/Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
@@ -22,7 +22,16 @@ properties:
     const: microchip,mpfs-clkcfg
 
   reg:
-    maxItems: 1
+    items:
+      - description: |
+          clock config registers:
+          These registers contain enable, reset & divider tables for the, cpu,
+          axi, ahb and rtc/mtimer reference clocks as well as enable and reset
+          for the peripheral clocks.
+      - description: |
+          mss pll dri registers:
+          Block of registers responsible for dynamic reconfiguration of the mss
+          pll
 
   clocks:
     maxItems: 1
@@ -51,7 +60,7 @@ examples:
             #size-cells = <2>;
             clkcfg: clock-controller@20002000 {
                 compatible = "microchip,mpfs-clkcfg";
-                reg = <0x0 0x20002000 0x0 0x1000>;
+                reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
                 clocks = <&ref>;
                 #clock-cells = <1>;
         };
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The RTC reference and MSSPLL were previously not documented or defined,
as they were unused. Add their defines to the PolarFire SoC header.

Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 include/dt-bindings/clock/microchip,mpfs-clock.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/dt-bindings/clock/microchip,mpfs-clock.h b/include/dt-bindings/clock/microchip,mpfs-clock.h
index 73f2a9324857..4048669bf756 100644
--- a/include/dt-bindings/clock/microchip,mpfs-clock.h
+++ b/include/dt-bindings/clock/microchip,mpfs-clock.h
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
 /*
  * Daire McNamara,<daire.mcnamara@microchip.com>
- * Copyright (C) 2020 Microchip Technology Inc.  All rights reserved.
+ * Copyright (C) 2020-2022 Microchip Technology Inc.  All rights reserved.
  */
 
 #ifndef _DT_BINDINGS_CLK_MICROCHIP_MPFS_H_
@@ -42,4 +42,7 @@
 #define CLK_ATHENA	31
 #define CLK_CFM		32
 
+#define CLK_RTCREF	33
+#define CLK_MSSPLL	34
+
 #endif	/* _DT_BINDINGS_CLK_MICROCHIP_MPFS_H_ */
-- 
2.35.1


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

* [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The RTC reference and MSSPLL were previously not documented or defined,
as they were unused. Add their defines to the PolarFire SoC header.

Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 include/dt-bindings/clock/microchip,mpfs-clock.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/dt-bindings/clock/microchip,mpfs-clock.h b/include/dt-bindings/clock/microchip,mpfs-clock.h
index 73f2a9324857..4048669bf756 100644
--- a/include/dt-bindings/clock/microchip,mpfs-clock.h
+++ b/include/dt-bindings/clock/microchip,mpfs-clock.h
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
 /*
  * Daire McNamara,<daire.mcnamara@microchip.com>
- * Copyright (C) 2020 Microchip Technology Inc.  All rights reserved.
+ * Copyright (C) 2020-2022 Microchip Technology Inc.  All rights reserved.
  */
 
 #ifndef _DT_BINDINGS_CLK_MICROCHIP_MPFS_H_
@@ -42,4 +42,7 @@
 #define CLK_ATHENA	31
 #define CLK_CFM		32
 
+#define CLK_RTCREF	33
+#define CLK_MSSPLL	34
+
 #endif	/* _DT_BINDINGS_CLK_MICROCHIP_MPFS_H_ */
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 6/9] dt-bindings: rtc: add refclk to mpfs-rtc
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

The rtc on PolarFire SoC does not use the AHB clock as its reference
frequency, but rather a 1 MHz refclk that it shares with MTIMER. Add
this second clock to the binding as a required property.

Fixes: 4cbcc0d7b397 ("dt-bindings: rtc: add bindings for microchip mpfs rtc")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/rtc/microchip,mfps-rtc.yaml          | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml b/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
index a2e984ea3553..500c62becd6b 100644
--- a/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
+++ b/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
@@ -31,11 +31,19 @@ properties:
           to that of the RTC's count register.
 
   clocks:
-    maxItems: 1
+    items:
+      - description: |
+          AHB clock
+      - description: |
+          Reference clock: divided by the prescaler to create a time-based
+          strobe (typically 1 Hz) for the calendar counter. By default, the rtc
+          on the PolarFire SoC shares it's reference with MTIMER so this will
+          be a 1 MHz clock.
 
   clock-names:
     items:
       - const: rtc
+      - const: rtcref
 
 required:
   - compatible
@@ -48,11 +56,12 @@ additionalProperties: false
 
 examples:
   - |
+    #include "dt-bindings/clock/microchip,mpfs-clock.h"
     rtc@20124000 {
         compatible = "microchip,mpfs-rtc";
         reg = <0x20124000 0x1000>;
-        clocks = <&clkcfg 21>;
-        clock-names = "rtc";
+        clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>;
+        clock-names = "rtc", "rtcref";
         interrupts = <80>, <81>;
     };
 ...
-- 
2.35.1


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

* [PATCH v3 6/9] dt-bindings: rtc: add refclk to mpfs-rtc
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

The rtc on PolarFire SoC does not use the AHB clock as its reference
frequency, but rather a 1 MHz refclk that it shares with MTIMER. Add
this second clock to the binding as a required property.

Fixes: 4cbcc0d7b397 ("dt-bindings: rtc: add bindings for microchip mpfs rtc")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/rtc/microchip,mfps-rtc.yaml          | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml b/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
index a2e984ea3553..500c62becd6b 100644
--- a/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
+++ b/Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
@@ -31,11 +31,19 @@ properties:
           to that of the RTC's count register.
 
   clocks:
-    maxItems: 1
+    items:
+      - description: |
+          AHB clock
+      - description: |
+          Reference clock: divided by the prescaler to create a time-based
+          strobe (typically 1 Hz) for the calendar counter. By default, the rtc
+          on the PolarFire SoC shares it's reference with MTIMER so this will
+          be a 1 MHz clock.
 
   clock-names:
     items:
       - const: rtc
+      - const: rtcref
 
 required:
   - compatible
@@ -48,11 +56,12 @@ additionalProperties: false
 
 examples:
   - |
+    #include "dt-bindings/clock/microchip,mpfs-clock.h"
     rtc@20124000 {
         compatible = "microchip,mpfs-rtc";
         reg = <0x20124000 0x1000>;
-        clocks = <&clkcfg 21>;
-        clock-names = "rtc";
+        clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>;
+        clock-names = "rtc", "rtcref";
         interrupts = <80>, <81>;
     };
 ...
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 7/9] clk: microchip: mpfs: re-parent the configurable clocks
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Currently the mpfs clock driver uses a reference clock called the
"msspll", set in the device tree, as the parent for the cpu/axi/ahb
(config) clocks. The frequency of the msspll is determined by the FPGA
bitstream & the bootloader configures the clock to match the bitstream.
The real reference is provided by a 100 or 125 MHz off chip oscillator.

However, the msspll clock is not actually the parent of all clocks on
the system - the reference clock for the rtc/mtimer actually has the
off chip oscillator as its parent.

In order to fix this, add support for reading the configuration of the
msspll & reparent the "config" clocks so that they are derived from
this clock rather than the reference in the device tree.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 151 +++++++++++++++++++++++++++----
 1 file changed, 132 insertions(+), 19 deletions(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index a361b8743a32..7c8dd5924c05 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -11,20 +11,47 @@
 #include <dt-bindings/clock/microchip,mpfs-clock.h>
 
 /* address offset of control registers */
+#define REG_MSSPLL_REF_CR	0x08u
+#define REG_MSSPLL_POSTDIV_CR	0x10u
+#define REG_MSSPLL_SSCG_2_CR	0x2Cu
 #define REG_CLOCK_CONFIG_CR	0x08u
 #define REG_SUBBLK_CLOCK_CR	0x84u
 #define REG_SUBBLK_RESET_CR	0x88u
 
+#define MSSPLL_FBDIV_SHIFT	0x00u
+#define MSSPLL_FBDIV_WIDTH	0x0Cu
+#define MSSPLL_REFDIV_SHIFT	0x08u
+#define MSSPLL_REFDIV_WIDTH	0x06u
+#define MSSPLL_POSTDIV_SHIFT	0x08u
+#define MSSPLL_POSTDIV_WIDTH	0x07u
+#define MSSPLL_FIXED_DIV	4u
+
 struct mpfs_clock_data {
 	void __iomem *base;
+	void __iomem *msspll_base;
 	struct clk_hw_onecell_data hw_data;
 };
 
+struct mpfs_msspll_hw_clock {
+	void __iomem *base;
+	unsigned int id;
+	u32 reg_offset;
+	u32 shift;
+	u32 width;
+	u32 flags;
+	struct clk_hw hw;
+	struct clk_init_data init;
+};
+
+#define to_mpfs_msspll_clk(_hw) container_of(_hw, struct mpfs_msspll_hw_clock, hw)
+
 struct mpfs_cfg_clock {
 	const struct clk_div_table *table;
 	unsigned int id;
+	u32 reg_offset;
 	u8 shift;
 	u8 width;
+	u8 flags;
 };
 
 struct mpfs_cfg_hw_clock {
@@ -55,7 +82,7 @@ struct mpfs_periph_hw_clock {
  */
 static DEFINE_SPINLOCK(mpfs_clk_lock);
 
-static const struct clk_parent_data mpfs_cfg_parent[] = {
+static const struct clk_parent_data mpfs_ext_ref[] = {
 	{ .index = 0 },
 };
 
@@ -69,6 +96,75 @@ static const struct clk_div_table mpfs_div_ahb_table[] = {
 	{ 0, 0 }
 };
 
+static unsigned long mpfs_clk_msspll_recalc_rate(struct clk_hw *hw, unsigned long prate)
+{
+	struct mpfs_msspll_hw_clock *msspll_hw = to_mpfs_msspll_clk(hw);
+	void __iomem *mult_addr = msspll_hw->base + msspll_hw->reg_offset;
+	void __iomem *ref_div_addr = msspll_hw->base + REG_MSSPLL_REF_CR;
+	void __iomem *postdiv_addr = msspll_hw->base + REG_MSSPLL_POSTDIV_CR;
+	u32 mult, ref_div, postdiv;
+
+	mult = readl_relaxed(mult_addr) >> MSSPLL_FBDIV_SHIFT;
+	mult &= clk_div_mask(MSSPLL_FBDIV_WIDTH);
+	ref_div = readl_relaxed(ref_div_addr) >> MSSPLL_REFDIV_SHIFT;
+	ref_div &= clk_div_mask(MSSPLL_REFDIV_WIDTH);
+	postdiv = readl_relaxed(postdiv_addr) >> MSSPLL_POSTDIV_SHIFT;
+	postdiv &= clk_div_mask(MSSPLL_POSTDIV_WIDTH);
+
+	return prate * mult / (ref_div * MSSPLL_FIXED_DIV * postdiv);
+}
+
+static const struct clk_ops mpfs_clk_msspll_ops = {
+	.recalc_rate = mpfs_clk_msspll_recalc_rate,
+};
+
+#define CLK_PLL(_id, _name, _parent, _shift, _width, _flags, _offset) {			\
+	.id = _id,									\
+	.shift = _shift,								\
+	.width = _width,								\
+	.reg_offset = _offset,								\
+	.flags = _flags,								\
+	.hw.init = CLK_HW_INIT_PARENTS_DATA(_name, _parent, &mpfs_clk_msspll_ops, 0),	\
+}
+
+static struct mpfs_msspll_hw_clock mpfs_msspll_clks[] = {
+	CLK_PLL(CLK_MSSPLL, "clk_msspll", mpfs_ext_ref, MSSPLL_FBDIV_SHIFT,
+		MSSPLL_FBDIV_WIDTH, 0, REG_MSSPLL_SSCG_2_CR),
+};
+
+static int mpfs_clk_register_msspll(struct device *dev, struct mpfs_msspll_hw_clock *msspll_hw,
+				    void __iomem *base)
+{
+	msspll_hw->base = base;
+
+	return devm_clk_hw_register(dev, &msspll_hw->hw);
+}
+
+static int mpfs_clk_register_mssplls(struct device *dev, struct mpfs_msspll_hw_clock *msspll_hws,
+				     unsigned int num_clks, struct mpfs_clock_data *data)
+{
+	void __iomem *base = data->msspll_base;
+	unsigned int i;
+	int ret;
+
+	for (i = 0; i < num_clks; i++) {
+		struct mpfs_msspll_hw_clock *msspll_hw = &msspll_hws[i];
+
+		ret = mpfs_clk_register_msspll(dev, msspll_hw, base);
+		if (ret)
+			return dev_err_probe(dev, ret, "failed to register msspll id: %d\n",
+					     CLK_MSSPLL);
+
+		data->hw_data.hws[msspll_hw->id] = &msspll_hw->hw;
+	}
+
+	return 0;
+}
+
+/*
+ * "CFG" clocks
+ */
+
 static unsigned long mpfs_cfg_clk_recalc_rate(struct clk_hw *hw, unsigned long prate)
 {
 	struct mpfs_cfg_hw_clock *cfg_hw = to_mpfs_cfg_clk(hw);
@@ -76,10 +172,10 @@ static unsigned long mpfs_cfg_clk_recalc_rate(struct clk_hw *hw, unsigned long p
 	void __iomem *base_addr = cfg_hw->sys_base;
 	u32 val;
 
-	val = readl_relaxed(base_addr + REG_CLOCK_CONFIG_CR) >> cfg->shift;
+	val = readl_relaxed(base_addr + cfg->reg_offset) >> cfg->shift;
 	val &= clk_div_mask(cfg->width);
 
-	return prate / (1u << val);
+	return divider_recalc_rate(hw, prate, val, cfg->table, cfg->flags, cfg->width);
 }
 
 static long mpfs_cfg_clk_round_rate(struct clk_hw *hw, unsigned long rate, unsigned long *prate)
@@ -105,11 +201,10 @@ static int mpfs_cfg_clk_set_rate(struct clk_hw *hw, unsigned long rate, unsigned
 		return divider_setting;
 
 	spin_lock_irqsave(&mpfs_clk_lock, flags);
-
-	val = readl_relaxed(base_addr + REG_CLOCK_CONFIG_CR);
+	val = readl_relaxed(base_addr + cfg->reg_offset);
 	val &= ~(clk_div_mask(cfg->width) << cfg_hw->cfg.shift);
 	val |= divider_setting << cfg->shift;
-	writel_relaxed(val, base_addr + REG_CLOCK_CONFIG_CR);
+	writel_relaxed(val, base_addr + cfg->reg_offset);
 
 	spin_unlock_irqrestore(&mpfs_clk_lock, flags);
 
@@ -122,19 +217,23 @@ static const struct clk_ops mpfs_clk_cfg_ops = {
 	.set_rate = mpfs_cfg_clk_set_rate,
 };
 
-#define CLK_CFG(_id, _name, _parent, _shift, _width, _table, _flags) {		\
-	.cfg.id = _id,								\
-	.cfg.shift = _shift,							\
-	.cfg.width = _width,							\
-	.cfg.table = _table,							\
-	.hw.init = CLK_HW_INIT_PARENTS_DATA(_name, _parent, &mpfs_clk_cfg_ops,	\
-					    _flags),				\
+#define CLK_CFG(_id, _name, _parent, _shift, _width, _table, _flags, _offset) {		\
+	.cfg.id = _id,									\
+	.cfg.shift = _shift,								\
+	.cfg.width = _width,								\
+	.cfg.table = _table,								\
+	.cfg.reg_offset = _offset,							\
+	.cfg.flags = _flags,								\
+	.hw.init = CLK_HW_INIT(_name, _parent, &mpfs_clk_cfg_ops, 0),			\
 }
 
 static struct mpfs_cfg_hw_clock mpfs_cfg_clks[] = {
-	CLK_CFG(CLK_CPU, "clk_cpu", mpfs_cfg_parent, 0, 2, mpfs_div_cpu_axi_table, 0),
-	CLK_CFG(CLK_AXI, "clk_axi", mpfs_cfg_parent, 2, 2, mpfs_div_cpu_axi_table, 0),
-	CLK_CFG(CLK_AHB, "clk_ahb", mpfs_cfg_parent, 4, 2, mpfs_div_ahb_table, 0),
+	CLK_CFG(CLK_CPU, "clk_cpu", "clk_msspll", 0, 2, mpfs_div_cpu_axi_table, 0,
+		REG_CLOCK_CONFIG_CR),
+	CLK_CFG(CLK_AXI, "clk_axi", "clk_msspll", 2, 2, mpfs_div_cpu_axi_table, 0,
+		REG_CLOCK_CONFIG_CR),
+	CLK_CFG(CLK_AHB, "clk_ahb", "clk_msspll", 4, 2, mpfs_div_ahb_table, 0,
+		REG_CLOCK_CONFIG_CR),
 };
 
 static int mpfs_clk_register_cfg(struct device *dev, struct mpfs_cfg_hw_clock *cfg_hw,
@@ -160,13 +259,17 @@ static int mpfs_clk_register_cfgs(struct device *dev, struct mpfs_cfg_hw_clock *
 			return dev_err_probe(dev, ret, "failed to register clock id: %d\n",
 					     cfg_hw->cfg.id);
 
-		id = cfg_hws[i].cfg.id;
+		id = cfg_hw->cfg.id;
 		data->hw_data.hws[id] = &cfg_hw->hw;
 	}
 
 	return 0;
 }
 
+/*
+ * peripheral clocks - devices connected to axi or ahb buses.
+ */
+
 static int mpfs_periph_clk_enable(struct clk_hw *hw)
 {
 	struct mpfs_periph_hw_clock *periph_hw = to_mpfs_periph_clk(hw);
@@ -324,8 +427,9 @@ static int mpfs_clk_probe(struct platform_device *pdev)
 	unsigned int num_clks;
 	int ret;
 
-	/* CLK_RESERVED is not part of cfg_clks nor periph_clks, so add 1 */
-	num_clks = ARRAY_SIZE(mpfs_cfg_clks) + ARRAY_SIZE(mpfs_periph_clks) + 1;
+	/* CLK_RESERVED is not part of clock arrays, so add 1 */
+	num_clks = ARRAY_SIZE(mpfs_msspll_clks) + ARRAY_SIZE(mpfs_cfg_clks)
+		   + ARRAY_SIZE(mpfs_periph_clks) + 1;
 
 	clk_data = devm_kzalloc(dev, struct_size(clk_data, hw_data.hws, num_clks), GFP_KERNEL);
 	if (!clk_data)
@@ -335,8 +439,17 @@ static int mpfs_clk_probe(struct platform_device *pdev)
 	if (IS_ERR(clk_data->base))
 		return PTR_ERR(clk_data->base);
 
+	clk_data->msspll_base = devm_platform_ioremap_resource(pdev, 1);
+	if (IS_ERR(clk_data->msspll_base))
+		return PTR_ERR(clk_data->msspll_base);
+
 	clk_data->hw_data.num = num_clks;
 
+	ret = mpfs_clk_register_mssplls(dev, mpfs_msspll_clks, ARRAY_SIZE(mpfs_msspll_clks),
+					clk_data);
+	if (ret)
+		return ret;
+
 	ret = mpfs_clk_register_cfgs(dev, mpfs_cfg_clks, ARRAY_SIZE(mpfs_cfg_clks), clk_data);
 	if (ret)
 		return ret;
-- 
2.35.1


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

* [PATCH v3 7/9] clk: microchip: mpfs: re-parent the configurable clocks
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Currently the mpfs clock driver uses a reference clock called the
"msspll", set in the device tree, as the parent for the cpu/axi/ahb
(config) clocks. The frequency of the msspll is determined by the FPGA
bitstream & the bootloader configures the clock to match the bitstream.
The real reference is provided by a 100 or 125 MHz off chip oscillator.

However, the msspll clock is not actually the parent of all clocks on
the system - the reference clock for the rtc/mtimer actually has the
off chip oscillator as its parent.

In order to fix this, add support for reading the configuration of the
msspll & reparent the "config" clocks so that they are derived from
this clock rather than the reference in the device tree.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 151 +++++++++++++++++++++++++++----
 1 file changed, 132 insertions(+), 19 deletions(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index a361b8743a32..7c8dd5924c05 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -11,20 +11,47 @@
 #include <dt-bindings/clock/microchip,mpfs-clock.h>
 
 /* address offset of control registers */
+#define REG_MSSPLL_REF_CR	0x08u
+#define REG_MSSPLL_POSTDIV_CR	0x10u
+#define REG_MSSPLL_SSCG_2_CR	0x2Cu
 #define REG_CLOCK_CONFIG_CR	0x08u
 #define REG_SUBBLK_CLOCK_CR	0x84u
 #define REG_SUBBLK_RESET_CR	0x88u
 
+#define MSSPLL_FBDIV_SHIFT	0x00u
+#define MSSPLL_FBDIV_WIDTH	0x0Cu
+#define MSSPLL_REFDIV_SHIFT	0x08u
+#define MSSPLL_REFDIV_WIDTH	0x06u
+#define MSSPLL_POSTDIV_SHIFT	0x08u
+#define MSSPLL_POSTDIV_WIDTH	0x07u
+#define MSSPLL_FIXED_DIV	4u
+
 struct mpfs_clock_data {
 	void __iomem *base;
+	void __iomem *msspll_base;
 	struct clk_hw_onecell_data hw_data;
 };
 
+struct mpfs_msspll_hw_clock {
+	void __iomem *base;
+	unsigned int id;
+	u32 reg_offset;
+	u32 shift;
+	u32 width;
+	u32 flags;
+	struct clk_hw hw;
+	struct clk_init_data init;
+};
+
+#define to_mpfs_msspll_clk(_hw) container_of(_hw, struct mpfs_msspll_hw_clock, hw)
+
 struct mpfs_cfg_clock {
 	const struct clk_div_table *table;
 	unsigned int id;
+	u32 reg_offset;
 	u8 shift;
 	u8 width;
+	u8 flags;
 };
 
 struct mpfs_cfg_hw_clock {
@@ -55,7 +82,7 @@ struct mpfs_periph_hw_clock {
  */
 static DEFINE_SPINLOCK(mpfs_clk_lock);
 
-static const struct clk_parent_data mpfs_cfg_parent[] = {
+static const struct clk_parent_data mpfs_ext_ref[] = {
 	{ .index = 0 },
 };
 
@@ -69,6 +96,75 @@ static const struct clk_div_table mpfs_div_ahb_table[] = {
 	{ 0, 0 }
 };
 
+static unsigned long mpfs_clk_msspll_recalc_rate(struct clk_hw *hw, unsigned long prate)
+{
+	struct mpfs_msspll_hw_clock *msspll_hw = to_mpfs_msspll_clk(hw);
+	void __iomem *mult_addr = msspll_hw->base + msspll_hw->reg_offset;
+	void __iomem *ref_div_addr = msspll_hw->base + REG_MSSPLL_REF_CR;
+	void __iomem *postdiv_addr = msspll_hw->base + REG_MSSPLL_POSTDIV_CR;
+	u32 mult, ref_div, postdiv;
+
+	mult = readl_relaxed(mult_addr) >> MSSPLL_FBDIV_SHIFT;
+	mult &= clk_div_mask(MSSPLL_FBDIV_WIDTH);
+	ref_div = readl_relaxed(ref_div_addr) >> MSSPLL_REFDIV_SHIFT;
+	ref_div &= clk_div_mask(MSSPLL_REFDIV_WIDTH);
+	postdiv = readl_relaxed(postdiv_addr) >> MSSPLL_POSTDIV_SHIFT;
+	postdiv &= clk_div_mask(MSSPLL_POSTDIV_WIDTH);
+
+	return prate * mult / (ref_div * MSSPLL_FIXED_DIV * postdiv);
+}
+
+static const struct clk_ops mpfs_clk_msspll_ops = {
+	.recalc_rate = mpfs_clk_msspll_recalc_rate,
+};
+
+#define CLK_PLL(_id, _name, _parent, _shift, _width, _flags, _offset) {			\
+	.id = _id,									\
+	.shift = _shift,								\
+	.width = _width,								\
+	.reg_offset = _offset,								\
+	.flags = _flags,								\
+	.hw.init = CLK_HW_INIT_PARENTS_DATA(_name, _parent, &mpfs_clk_msspll_ops, 0),	\
+}
+
+static struct mpfs_msspll_hw_clock mpfs_msspll_clks[] = {
+	CLK_PLL(CLK_MSSPLL, "clk_msspll", mpfs_ext_ref, MSSPLL_FBDIV_SHIFT,
+		MSSPLL_FBDIV_WIDTH, 0, REG_MSSPLL_SSCG_2_CR),
+};
+
+static int mpfs_clk_register_msspll(struct device *dev, struct mpfs_msspll_hw_clock *msspll_hw,
+				    void __iomem *base)
+{
+	msspll_hw->base = base;
+
+	return devm_clk_hw_register(dev, &msspll_hw->hw);
+}
+
+static int mpfs_clk_register_mssplls(struct device *dev, struct mpfs_msspll_hw_clock *msspll_hws,
+				     unsigned int num_clks, struct mpfs_clock_data *data)
+{
+	void __iomem *base = data->msspll_base;
+	unsigned int i;
+	int ret;
+
+	for (i = 0; i < num_clks; i++) {
+		struct mpfs_msspll_hw_clock *msspll_hw = &msspll_hws[i];
+
+		ret = mpfs_clk_register_msspll(dev, msspll_hw, base);
+		if (ret)
+			return dev_err_probe(dev, ret, "failed to register msspll id: %d\n",
+					     CLK_MSSPLL);
+
+		data->hw_data.hws[msspll_hw->id] = &msspll_hw->hw;
+	}
+
+	return 0;
+}
+
+/*
+ * "CFG" clocks
+ */
+
 static unsigned long mpfs_cfg_clk_recalc_rate(struct clk_hw *hw, unsigned long prate)
 {
 	struct mpfs_cfg_hw_clock *cfg_hw = to_mpfs_cfg_clk(hw);
@@ -76,10 +172,10 @@ static unsigned long mpfs_cfg_clk_recalc_rate(struct clk_hw *hw, unsigned long p
 	void __iomem *base_addr = cfg_hw->sys_base;
 	u32 val;
 
-	val = readl_relaxed(base_addr + REG_CLOCK_CONFIG_CR) >> cfg->shift;
+	val = readl_relaxed(base_addr + cfg->reg_offset) >> cfg->shift;
 	val &= clk_div_mask(cfg->width);
 
-	return prate / (1u << val);
+	return divider_recalc_rate(hw, prate, val, cfg->table, cfg->flags, cfg->width);
 }
 
 static long mpfs_cfg_clk_round_rate(struct clk_hw *hw, unsigned long rate, unsigned long *prate)
@@ -105,11 +201,10 @@ static int mpfs_cfg_clk_set_rate(struct clk_hw *hw, unsigned long rate, unsigned
 		return divider_setting;
 
 	spin_lock_irqsave(&mpfs_clk_lock, flags);
-
-	val = readl_relaxed(base_addr + REG_CLOCK_CONFIG_CR);
+	val = readl_relaxed(base_addr + cfg->reg_offset);
 	val &= ~(clk_div_mask(cfg->width) << cfg_hw->cfg.shift);
 	val |= divider_setting << cfg->shift;
-	writel_relaxed(val, base_addr + REG_CLOCK_CONFIG_CR);
+	writel_relaxed(val, base_addr + cfg->reg_offset);
 
 	spin_unlock_irqrestore(&mpfs_clk_lock, flags);
 
@@ -122,19 +217,23 @@ static const struct clk_ops mpfs_clk_cfg_ops = {
 	.set_rate = mpfs_cfg_clk_set_rate,
 };
 
-#define CLK_CFG(_id, _name, _parent, _shift, _width, _table, _flags) {		\
-	.cfg.id = _id,								\
-	.cfg.shift = _shift,							\
-	.cfg.width = _width,							\
-	.cfg.table = _table,							\
-	.hw.init = CLK_HW_INIT_PARENTS_DATA(_name, _parent, &mpfs_clk_cfg_ops,	\
-					    _flags),				\
+#define CLK_CFG(_id, _name, _parent, _shift, _width, _table, _flags, _offset) {		\
+	.cfg.id = _id,									\
+	.cfg.shift = _shift,								\
+	.cfg.width = _width,								\
+	.cfg.table = _table,								\
+	.cfg.reg_offset = _offset,							\
+	.cfg.flags = _flags,								\
+	.hw.init = CLK_HW_INIT(_name, _parent, &mpfs_clk_cfg_ops, 0),			\
 }
 
 static struct mpfs_cfg_hw_clock mpfs_cfg_clks[] = {
-	CLK_CFG(CLK_CPU, "clk_cpu", mpfs_cfg_parent, 0, 2, mpfs_div_cpu_axi_table, 0),
-	CLK_CFG(CLK_AXI, "clk_axi", mpfs_cfg_parent, 2, 2, mpfs_div_cpu_axi_table, 0),
-	CLK_CFG(CLK_AHB, "clk_ahb", mpfs_cfg_parent, 4, 2, mpfs_div_ahb_table, 0),
+	CLK_CFG(CLK_CPU, "clk_cpu", "clk_msspll", 0, 2, mpfs_div_cpu_axi_table, 0,
+		REG_CLOCK_CONFIG_CR),
+	CLK_CFG(CLK_AXI, "clk_axi", "clk_msspll", 2, 2, mpfs_div_cpu_axi_table, 0,
+		REG_CLOCK_CONFIG_CR),
+	CLK_CFG(CLK_AHB, "clk_ahb", "clk_msspll", 4, 2, mpfs_div_ahb_table, 0,
+		REG_CLOCK_CONFIG_CR),
 };
 
 static int mpfs_clk_register_cfg(struct device *dev, struct mpfs_cfg_hw_clock *cfg_hw,
@@ -160,13 +259,17 @@ static int mpfs_clk_register_cfgs(struct device *dev, struct mpfs_cfg_hw_clock *
 			return dev_err_probe(dev, ret, "failed to register clock id: %d\n",
 					     cfg_hw->cfg.id);
 
-		id = cfg_hws[i].cfg.id;
+		id = cfg_hw->cfg.id;
 		data->hw_data.hws[id] = &cfg_hw->hw;
 	}
 
 	return 0;
 }
 
+/*
+ * peripheral clocks - devices connected to axi or ahb buses.
+ */
+
 static int mpfs_periph_clk_enable(struct clk_hw *hw)
 {
 	struct mpfs_periph_hw_clock *periph_hw = to_mpfs_periph_clk(hw);
@@ -324,8 +427,9 @@ static int mpfs_clk_probe(struct platform_device *pdev)
 	unsigned int num_clks;
 	int ret;
 
-	/* CLK_RESERVED is not part of cfg_clks nor periph_clks, so add 1 */
-	num_clks = ARRAY_SIZE(mpfs_cfg_clks) + ARRAY_SIZE(mpfs_periph_clks) + 1;
+	/* CLK_RESERVED is not part of clock arrays, so add 1 */
+	num_clks = ARRAY_SIZE(mpfs_msspll_clks) + ARRAY_SIZE(mpfs_cfg_clks)
+		   + ARRAY_SIZE(mpfs_periph_clks) + 1;
 
 	clk_data = devm_kzalloc(dev, struct_size(clk_data, hw_data.hws, num_clks), GFP_KERNEL);
 	if (!clk_data)
@@ -335,8 +439,17 @@ static int mpfs_clk_probe(struct platform_device *pdev)
 	if (IS_ERR(clk_data->base))
 		return PTR_ERR(clk_data->base);
 
+	clk_data->msspll_base = devm_platform_ioremap_resource(pdev, 1);
+	if (IS_ERR(clk_data->msspll_base))
+		return PTR_ERR(clk_data->msspll_base);
+
 	clk_data->hw_data.num = num_clks;
 
+	ret = mpfs_clk_register_mssplls(dev, mpfs_msspll_clks, ARRAY_SIZE(mpfs_msspll_clks),
+					clk_data);
+	if (ret)
+		return ret;
+
 	ret = mpfs_clk_register_cfgs(dev, mpfs_cfg_clks, ARRAY_SIZE(mpfs_cfg_clks), clk_data);
 	if (ret)
 		return ret;
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 8/9] clk: microchip: mpfs: add RTCREF clock control
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The reference clock used by the PolarFire SoC's onboard rtc was missing
from the clock driver. Add this clock at the "config" clock level, with
the external reference clock as its parent.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index 7c8dd5924c05..6565fb62507c 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -15,6 +15,7 @@
 #define REG_MSSPLL_POSTDIV_CR	0x10u
 #define REG_MSSPLL_SSCG_2_CR	0x2Cu
 #define REG_CLOCK_CONFIG_CR	0x08u
+#define REG_RTC_CLOCK_CR	0x0Cu
 #define REG_SUBBLK_CLOCK_CR	0x84u
 #define REG_SUBBLK_RESET_CR	0x88u
 
@@ -96,6 +97,17 @@ static const struct clk_div_table mpfs_div_ahb_table[] = {
 	{ 0, 0 }
 };
 
+/*
+ * The only two supported reference clock frequencies for the PolarFire SoC are
+ * 100 and 125 MHz, as the rtc reference is required to be 1 MHz.
+ * It therefore only needs to have divider table entries corresponding to
+ * divide by 100 and 125.
+ */
+static const struct clk_div_table mpfs_div_rtcref_table[] = {
+	{ 100, 100 }, { 125, 125 },
+	{ 0, 0 }
+};
+
 static unsigned long mpfs_clk_msspll_recalc_rate(struct clk_hw *hw, unsigned long prate)
 {
 	struct mpfs_msspll_hw_clock *msspll_hw = to_mpfs_msspll_clk(hw);
@@ -234,6 +246,16 @@ static struct mpfs_cfg_hw_clock mpfs_cfg_clks[] = {
 		REG_CLOCK_CONFIG_CR),
 	CLK_CFG(CLK_AHB, "clk_ahb", "clk_msspll", 4, 2, mpfs_div_ahb_table, 0,
 		REG_CLOCK_CONFIG_CR),
+	{
+		.cfg.id = CLK_RTCREF,
+		.cfg.shift = 0,
+		.cfg.width = 12,
+		.cfg.table = mpfs_div_rtcref_table,
+		.cfg.reg_offset = REG_RTC_CLOCK_CR,
+		.cfg.flags = CLK_DIVIDER_ONE_BASED,
+		.hw.init =
+			CLK_HW_INIT_PARENTS_DATA("clk_rtcref", mpfs_ext_ref, &mpfs_clk_cfg_ops, 0),
+	}
 };
 
 static int mpfs_clk_register_cfg(struct device *dev, struct mpfs_cfg_hw_clock *cfg_hw,
@@ -363,7 +385,7 @@ static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
 	CLK_PERIPH(CLK_MAC0, "clk_periph_mac0", PARENT_CLK(AHB), 1, 0),
 	CLK_PERIPH(CLK_MAC1, "clk_periph_mac1", PARENT_CLK(AHB), 2, 0),
 	CLK_PERIPH(CLK_MMC, "clk_periph_mmc", PARENT_CLK(AHB), 3, 0),
-	CLK_PERIPH(CLK_TIMER, "clk_periph_timer", PARENT_CLK(AHB), 4, 0),
+	CLK_PERIPH(CLK_TIMER, "clk_periph_timer", PARENT_CLK(RTCREF), 4, 0),
 	CLK_PERIPH(CLK_MMUART0, "clk_periph_mmuart0", PARENT_CLK(AHB), 5, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_MMUART1, "clk_periph_mmuart1", PARENT_CLK(AHB), 6, 0),
 	CLK_PERIPH(CLK_MMUART2, "clk_periph_mmuart2", PARENT_CLK(AHB), 7, 0),
-- 
2.35.1


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

* [PATCH v3 8/9] clk: microchip: mpfs: add RTCREF clock control
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The reference clock used by the PolarFire SoC's onboard rtc was missing
from the clock driver. Add this clock at the "config" clock level, with
the external reference clock as its parent.

Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/clk/microchip/clk-mpfs.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/microchip/clk-mpfs.c b/drivers/clk/microchip/clk-mpfs.c
index 7c8dd5924c05..6565fb62507c 100644
--- a/drivers/clk/microchip/clk-mpfs.c
+++ b/drivers/clk/microchip/clk-mpfs.c
@@ -15,6 +15,7 @@
 #define REG_MSSPLL_POSTDIV_CR	0x10u
 #define REG_MSSPLL_SSCG_2_CR	0x2Cu
 #define REG_CLOCK_CONFIG_CR	0x08u
+#define REG_RTC_CLOCK_CR	0x0Cu
 #define REG_SUBBLK_CLOCK_CR	0x84u
 #define REG_SUBBLK_RESET_CR	0x88u
 
@@ -96,6 +97,17 @@ static const struct clk_div_table mpfs_div_ahb_table[] = {
 	{ 0, 0 }
 };
 
+/*
+ * The only two supported reference clock frequencies for the PolarFire SoC are
+ * 100 and 125 MHz, as the rtc reference is required to be 1 MHz.
+ * It therefore only needs to have divider table entries corresponding to
+ * divide by 100 and 125.
+ */
+static const struct clk_div_table mpfs_div_rtcref_table[] = {
+	{ 100, 100 }, { 125, 125 },
+	{ 0, 0 }
+};
+
 static unsigned long mpfs_clk_msspll_recalc_rate(struct clk_hw *hw, unsigned long prate)
 {
 	struct mpfs_msspll_hw_clock *msspll_hw = to_mpfs_msspll_clk(hw);
@@ -234,6 +246,16 @@ static struct mpfs_cfg_hw_clock mpfs_cfg_clks[] = {
 		REG_CLOCK_CONFIG_CR),
 	CLK_CFG(CLK_AHB, "clk_ahb", "clk_msspll", 4, 2, mpfs_div_ahb_table, 0,
 		REG_CLOCK_CONFIG_CR),
+	{
+		.cfg.id = CLK_RTCREF,
+		.cfg.shift = 0,
+		.cfg.width = 12,
+		.cfg.table = mpfs_div_rtcref_table,
+		.cfg.reg_offset = REG_RTC_CLOCK_CR,
+		.cfg.flags = CLK_DIVIDER_ONE_BASED,
+		.hw.init =
+			CLK_HW_INIT_PARENTS_DATA("clk_rtcref", mpfs_ext_ref, &mpfs_clk_cfg_ops, 0),
+	}
 };
 
 static int mpfs_clk_register_cfg(struct device *dev, struct mpfs_cfg_hw_clock *cfg_hw,
@@ -363,7 +385,7 @@ static struct mpfs_periph_hw_clock mpfs_periph_clks[] = {
 	CLK_PERIPH(CLK_MAC0, "clk_periph_mac0", PARENT_CLK(AHB), 1, 0),
 	CLK_PERIPH(CLK_MAC1, "clk_periph_mac1", PARENT_CLK(AHB), 2, 0),
 	CLK_PERIPH(CLK_MMC, "clk_periph_mmc", PARENT_CLK(AHB), 3, 0),
-	CLK_PERIPH(CLK_TIMER, "clk_periph_timer", PARENT_CLK(AHB), 4, 0),
+	CLK_PERIPH(CLK_TIMER, "clk_periph_timer", PARENT_CLK(RTCREF), 4, 0),
 	CLK_PERIPH(CLK_MMUART0, "clk_periph_mmuart0", PARENT_CLK(AHB), 5, CLK_IS_CRITICAL),
 	CLK_PERIPH(CLK_MMUART1, "clk_periph_mmuart1", PARENT_CLK(AHB), 6, 0),
 	CLK_PERIPH(CLK_MMUART2, "clk_periph_mmuart2", PARENT_CLK(AHB), 7, 0),
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* [PATCH v3 9/9] riscv: dts: microchip: reparent mpfs clocks
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-13  7:58   ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The 600M clock in the fabric is not the real reference, replace it with
a 125M clock which is the correct value for the icicle kit. Rename the
msspllclk node to mssrefclk since this is now the input to, not the
output of, the msspll clock. Control of the msspll clock has been moved
into the clock configurator, so add the register range for it to the clk
configurator. Finally, add a new output of the clock config block which
will provide the 1M reference clock for the MTIMER and the rtc.

Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
Fixes: 0fa6107eca41 ("RISC-V: Initial DTS for Microchip ICICLE board")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../boot/dts/microchip/microchip-mpfs-icicle-kit.dts      | 2 +-
 arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts b/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts
index cd2fe80fa81a..3392153dd0f1 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts
@@ -45,7 +45,7 @@ ddrc_cache_hi: memory@1000000000 {
 };
 
 &refclk {
-	clock-frequency = <600000000>;
+	clock-frequency = <125000000>;
 };
 
 &mmuart1 {
diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
index 3b48b7f35410..746c4d4e7686 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
@@ -141,7 +141,7 @@ cpu4_intc: interrupt-controller {
 		};
 	};
 
-	refclk: msspllclk {
+	refclk: mssrefclk {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 	};
@@ -190,7 +190,7 @@ plic: interrupt-controller@c000000 {
 
 		clkcfg: clkcfg@20002000 {
 			compatible = "microchip,mpfs-clkcfg";
-			reg = <0x0 0x20002000 0x0 0x1000>;
+			reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
 			clocks = <&refclk>;
 			#clock-cells = <1>;
 		};
@@ -393,8 +393,8 @@ rtc: rtc@20124000 {
 			reg = <0x0 0x20124000 0x0 0x1000>;
 			interrupt-parent = <&plic>;
 			interrupts = <80>, <81>;
-			clocks = <&clkcfg CLK_RTC>;
-			clock-names = "rtc";
+			clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>;
+			clock-names = "rtc", "rtcref";
 			status = "disabled";
 		};
 
-- 
2.35.1


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

* [PATCH v3 9/9] riscv: dts: microchip: reparent mpfs clocks
@ 2022-04-13  7:58   ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-13  7:58 UTC (permalink / raw)
  To: mturquette, sboyd, aou, paul.walmsley, palmer, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

The 600M clock in the fabric is not the real reference, replace it with
a 125M clock which is the correct value for the icicle kit. Rename the
msspllclk node to mssrefclk since this is now the input to, not the
output of, the msspll clock. Control of the msspll clock has been moved
into the clock configurator, so add the register range for it to the clk
configurator. Finally, add a new output of the clock config block which
will provide the 1M reference clock for the MTIMER and the rtc.

Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
Fixes: 0fa6107eca41 ("RISC-V: Initial DTS for Microchip ICICLE board")
Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../boot/dts/microchip/microchip-mpfs-icicle-kit.dts      | 2 +-
 arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi         | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts b/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts
index cd2fe80fa81a..3392153dd0f1 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts
@@ -45,7 +45,7 @@ ddrc_cache_hi: memory@1000000000 {
 };
 
 &refclk {
-	clock-frequency = <600000000>;
+	clock-frequency = <125000000>;
 };
 
 &mmuart1 {
diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
index 3b48b7f35410..746c4d4e7686 100644
--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
+++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi
@@ -141,7 +141,7 @@ cpu4_intc: interrupt-controller {
 		};
 	};
 
-	refclk: msspllclk {
+	refclk: mssrefclk {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
 	};
@@ -190,7 +190,7 @@ plic: interrupt-controller@c000000 {
 
 		clkcfg: clkcfg@20002000 {
 			compatible = "microchip,mpfs-clkcfg";
-			reg = <0x0 0x20002000 0x0 0x1000>;
+			reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>;
 			clocks = <&refclk>;
 			#clock-cells = <1>;
 		};
@@ -393,8 +393,8 @@ rtc: rtc@20124000 {
 			reg = <0x0 0x20124000 0x0 0x1000>;
 			interrupt-parent = <&plic>;
 			interrupts = <80>, <81>;
-			clocks = <&clkcfg CLK_RTC>;
-			clock-names = "rtc";
+			clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>;
+			clock-names = "rtc", "rtcref";
 			status = "disabled";
 		};
 
-- 
2.35.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-19 11:59     ` Krzysztof Kozlowski
  -1 siblings, 0 replies; 56+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-19 11:59 UTC (permalink / raw)
  To: Conor Dooley, mturquette, sboyd, aou, paul.walmsley, palmer,
	a.zummo, alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv

On 13/04/2022 09:58, Conor Dooley wrote:
> The RTC reference and MSSPLL were previously not documented or defined,
> as they were unused. Add their defines to the PolarFire SoC header.
> 
> Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof

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

* Re: [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks
@ 2022-04-19 11:59     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 56+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-19 11:59 UTC (permalink / raw)
  To: Conor Dooley, mturquette, sboyd, aou, paul.walmsley, palmer,
	a.zummo, alexandre.belloni, robh+dt, krzk+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv

On 13/04/2022 09:58, Conor Dooley wrote:
> The RTC reference and MSSPLL were previously not documented or defined,
> as they were unused. Add their defines to the PolarFire SoC header.
> 
> Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-13  7:58 ` Conor Dooley
@ 2022-04-22 19:39   ` Palmer Dabbelt
  -1 siblings, 0 replies; 56+ messages in thread
From: Palmer Dabbelt @ 2022-04-22 19:39 UTC (permalink / raw)
  To: conor.dooley, atulkhare
  Cc: mturquette, sboyd, aou, Paul Walmsley, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt, daire.mcnamara, linux-rtc,
	devicetree, linux-clk, linux-riscv, conor.dooley

On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
> Hey all,
> After the clock driver for the PolarFire SoC was accepted I started work
> on the onboard RTC & found out that the reference clock for the rtc was
> actually missing from the clock driver.
>
> While restructuring the clock driver to add support for the rtc
> reference, I also noticed that there were some problems with how the FIC
> clocks were being used. The FIC clocks are the cpu side inputs to the
> AXI fabric interconnections & are not the clocks for any peripherals.
>
> This first three patches in this series fixes the problems with the FICs:
> - the fic clocks incorrectly had the AHB clock as their parents
> - the last fic, named differently to the others, had not been set as
>   a critical clock
> - some peripherals on the fabric side were incorrectly using the cpu
>   side fic clocks, resulting in incorrect rates.
>
> The second part of the series fixes the missing rtc reference clock.
> There are three main changes:
> - Changing the reference clock in the dt to the external 125 MHz
>   oscillator rather than using the output of an internal pll. This has
>   the added benefit of not requiring changes to the device tree if this
>   part of the bitstream changes.
> - Adding a new clock into the driver that sits above the existing
>   configurable clocks & has the external reference as a parent. The new
>   clock provides the parent for the AHB/AXI clocks which formerly came
>   from the device tree.
> - Adding the rtc reference clock to the dt bindings, device tree and
>   clock driver at the configurable clock level, alongside AXI and AHB.
>
> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
> & fixes a specific problem.
>
> Changes since v1:
> After speaking with Krzysztof, I have merged the rtc reference changes
> [1] with these fixes for 5.18. This was done since the relevant drivers
> and bindings only arrived in v5.18 & there'll now be no issue with
> breaking the ABI.
> Backwards compatiblity with the device tree from before 5.18 will be
> broken by these changes, but the board did not boot then anyway... If
> that is not okay, please lmk.
>
> The patch renaming sys_base was dropped since that's not a fix.
>
> Version 1 would not apply without [0] & that should be fixed too.
>
> Thanks,
> Conor.
>
> Changes since v2:
> - Wrapped text in dt-binding changes at 80 cols
> - Ordered the clock defines numerically in the binding header
> - Fixed the Fixes tag on the last patch and added the second tag
>
> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
>
> Conor Dooley (9):
>   clk: microchip: mpfs: fix parents for FIC clocks
>   clk: microchip: mpfs: mark CLK_ATHENA as critical
>   riscv: dts: microchip: fix usage of fic clocks on mpfs
>   dt-bindings: clk: mpfs document msspll dri registers
>   dt-bindings: clk: mpfs: add defines for two new clocks
>   dt-bindings: rtc: add refclk to mpfs-rtc
>   clk: microchip: mpfs: re-parent the configurable clocks
>   clk: microchip: mpfs: add RTCREF clock control
>   riscv: dts: microchip: reparent mpfs clocks
>
>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
>  7 files changed, 211 insertions(+), 41 deletions(-)

Thanks.  These generally look good to me, but I don't see acks from 
everyone.  I'm perfectly fine treating these as fixes and taking them 
through the RISC-V tree, but looks like it's mostly clk stuff so

Acked-by: Palmer Dabbelt <palmer@rivosinc.com>

in case someone else wants to take it.  I've put these over at 
palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off 
until at least next week to give everyone time to chime in.

On a somewhat related note, I'm getting some DT schema failures 

    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
    
Looks like none of them are new from this patch set, though.  Atul's 
been chasing down various DT schema failures so they might be fixed 
already.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 19:39   ` Palmer Dabbelt
  0 siblings, 0 replies; 56+ messages in thread
From: Palmer Dabbelt @ 2022-04-22 19:39 UTC (permalink / raw)
  To: conor.dooley, atulkhare
  Cc: mturquette, sboyd, aou, Paul Walmsley, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt, daire.mcnamara, linux-rtc,
	devicetree, linux-clk, linux-riscv, conor.dooley

On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
> Hey all,
> After the clock driver for the PolarFire SoC was accepted I started work
> on the onboard RTC & found out that the reference clock for the rtc was
> actually missing from the clock driver.
>
> While restructuring the clock driver to add support for the rtc
> reference, I also noticed that there were some problems with how the FIC
> clocks were being used. The FIC clocks are the cpu side inputs to the
> AXI fabric interconnections & are not the clocks for any peripherals.
>
> This first three patches in this series fixes the problems with the FICs:
> - the fic clocks incorrectly had the AHB clock as their parents
> - the last fic, named differently to the others, had not been set as
>   a critical clock
> - some peripherals on the fabric side were incorrectly using the cpu
>   side fic clocks, resulting in incorrect rates.
>
> The second part of the series fixes the missing rtc reference clock.
> There are three main changes:
> - Changing the reference clock in the dt to the external 125 MHz
>   oscillator rather than using the output of an internal pll. This has
>   the added benefit of not requiring changes to the device tree if this
>   part of the bitstream changes.
> - Adding a new clock into the driver that sits above the existing
>   configurable clocks & has the external reference as a parent. The new
>   clock provides the parent for the AHB/AXI clocks which formerly came
>   from the device tree.
> - Adding the rtc reference clock to the dt bindings, device tree and
>   clock driver at the configurable clock level, alongside AXI and AHB.
>
> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
> & fixes a specific problem.
>
> Changes since v1:
> After speaking with Krzysztof, I have merged the rtc reference changes
> [1] with these fixes for 5.18. This was done since the relevant drivers
> and bindings only arrived in v5.18 & there'll now be no issue with
> breaking the ABI.
> Backwards compatiblity with the device tree from before 5.18 will be
> broken by these changes, but the board did not boot then anyway... If
> that is not okay, please lmk.
>
> The patch renaming sys_base was dropped since that's not a fix.
>
> Version 1 would not apply without [0] & that should be fixed too.
>
> Thanks,
> Conor.
>
> Changes since v2:
> - Wrapped text in dt-binding changes at 80 cols
> - Ordered the clock defines numerically in the binding header
> - Fixed the Fixes tag on the last patch and added the second tag
>
> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
>
> Conor Dooley (9):
>   clk: microchip: mpfs: fix parents for FIC clocks
>   clk: microchip: mpfs: mark CLK_ATHENA as critical
>   riscv: dts: microchip: fix usage of fic clocks on mpfs
>   dt-bindings: clk: mpfs document msspll dri registers
>   dt-bindings: clk: mpfs: add defines for two new clocks
>   dt-bindings: rtc: add refclk to mpfs-rtc
>   clk: microchip: mpfs: re-parent the configurable clocks
>   clk: microchip: mpfs: add RTCREF clock control
>   riscv: dts: microchip: reparent mpfs clocks
>
>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
>  7 files changed, 211 insertions(+), 41 deletions(-)

Thanks.  These generally look good to me, but I don't see acks from 
everyone.  I'm perfectly fine treating these as fixes and taking them 
through the RISC-V tree, but looks like it's mostly clk stuff so

Acked-by: Palmer Dabbelt <palmer@rivosinc.com>

in case someone else wants to take it.  I've put these over at 
palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off 
until at least next week to give everyone time to chime in.

On a somewhat related note, I'm getting some DT schema failures 

    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
    
Looks like none of them are new from this patch set, though.  Atul's 
been chasing down various DT schema failures so they might be fixed 
already.

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-22 19:39   ` Palmer Dabbelt
@ 2022-04-22 19:59     ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-22 19:59 UTC (permalink / raw)
  To: Palmer Dabbelt, atulkhare
  Cc: mturquette, sboyd, aou, Paul Walmsley, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt, daire.mcnamara, linux-rtc,
	devicetree, linux-clk, linux-riscv, conor.dooley

On 22/04/2022 20:39, Palmer Dabbelt wrote:
> On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
>> Hey all,
>> After the clock driver for the PolarFire SoC was accepted I started work
>> on the onboard RTC & found out that the reference clock for the rtc was
>> actually missing from the clock driver.
>>
>> While restructuring the clock driver to add support for the rtc
>> reference, I also noticed that there were some problems with how the FIC
>> clocks were being used. The FIC clocks are the cpu side inputs to the
>> AXI fabric interconnections & are not the clocks for any peripherals.
>>
>> This first three patches in this series fixes the problems with the FICs:
>> - the fic clocks incorrectly had the AHB clock as their parents
>> - the last fic, named differently to the others, had not been set as
>>   a critical clock
>> - some peripherals on the fabric side were incorrectly using the cpu
>>   side fic clocks, resulting in incorrect rates.
>>
>> The second part of the series fixes the missing rtc reference clock.
>> There are three main changes:
>> - Changing the reference clock in the dt to the external 125 MHz
>>   oscillator rather than using the output of an internal pll. This has
>>   the added benefit of not requiring changes to the device tree if this
>>   part of the bitstream changes.
>> - Adding a new clock into the driver that sits above the existing
>>   configurable clocks & has the external reference as a parent. The new
>>   clock provides the parent for the AHB/AXI clocks which formerly came
>>   from the device tree.
>> - Adding the rtc reference clock to the dt bindings, device tree and
>>   clock driver at the configurable clock level, alongside AXI and AHB.
>>
>> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
>> & fixes a specific problem.
>>
>> Changes since v1:
>> After speaking with Krzysztof, I have merged the rtc reference changes
>> [1] with these fixes for 5.18. This was done since the relevant drivers
>> and bindings only arrived in v5.18 & there'll now be no issue with
>> breaking the ABI.
>> Backwards compatiblity with the device tree from before 5.18 will be
>> broken by these changes, but the board did not boot then anyway... If
>> that is not okay, please lmk.
>>
>> The patch renaming sys_base was dropped since that's not a fix.
>>
>> Version 1 would not apply without [0] & that should be fixed too.
>>
>> Thanks,
>> Conor.
>>
>> Changes since v2:
>> - Wrapped text in dt-binding changes at 80 cols
>> - Ordered the clock defines numerically in the binding header
>> - Fixed the Fixes tag on the last patch and added the second tag
>>
>> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
>> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
>>
>> Conor Dooley (9):
>>   clk: microchip: mpfs: fix parents for FIC clocks
>>   clk: microchip: mpfs: mark CLK_ATHENA as critical
>>   riscv: dts: microchip: fix usage of fic clocks on mpfs
>>   dt-bindings: clk: mpfs document msspll dri registers
>>   dt-bindings: clk: mpfs: add defines for two new clocks
>>   dt-bindings: rtc: add refclk to mpfs-rtc
>>   clk: microchip: mpfs: re-parent the configurable clocks
>>   clk: microchip: mpfs: add RTCREF clock control
>>   riscv: dts: microchip: reparent mpfs clocks
>>
>>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
>>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
>>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
>>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
>>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
>>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
>>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
>>  7 files changed, 211 insertions(+), 41 deletions(-)
> 
> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
> 
> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>

Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
I figure they're in his queue :)

> 
> in case someone else wants to take it.  I've put these over at palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off until at least next week to give everyone time to chime in.
> 
> On a somewhat related note, I'm getting some DT schema failures
>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
>    Looks like none of them are new from this patch set, though.  Atul's been chasing down various DT schema failures so they might be fixed already.

Ye, I do know about those. I meant to try deleting the clocks
property but didn't get a chance, just been busy. It's not
related to this series nor does it matter if it makes it prior
to 5.18 so I was going to submit it on its own.
The other is in my list-of-things-to-ask-Rob/Krzk-when-I-know-
for-sure-what-my-question-actually-is...

Thanks,
Conor.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 19:59     ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-22 19:59 UTC (permalink / raw)
  To: Palmer Dabbelt, atulkhare
  Cc: mturquette, sboyd, aou, Paul Walmsley, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt, daire.mcnamara, linux-rtc,
	devicetree, linux-clk, linux-riscv, conor.dooley

On 22/04/2022 20:39, Palmer Dabbelt wrote:
> On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
>> Hey all,
>> After the clock driver for the PolarFire SoC was accepted I started work
>> on the onboard RTC & found out that the reference clock for the rtc was
>> actually missing from the clock driver.
>>
>> While restructuring the clock driver to add support for the rtc
>> reference, I also noticed that there were some problems with how the FIC
>> clocks were being used. The FIC clocks are the cpu side inputs to the
>> AXI fabric interconnections & are not the clocks for any peripherals.
>>
>> This first three patches in this series fixes the problems with the FICs:
>> - the fic clocks incorrectly had the AHB clock as their parents
>> - the last fic, named differently to the others, had not been set as
>>   a critical clock
>> - some peripherals on the fabric side were incorrectly using the cpu
>>   side fic clocks, resulting in incorrect rates.
>>
>> The second part of the series fixes the missing rtc reference clock.
>> There are three main changes:
>> - Changing the reference clock in the dt to the external 125 MHz
>>   oscillator rather than using the output of an internal pll. This has
>>   the added benefit of not requiring changes to the device tree if this
>>   part of the bitstream changes.
>> - Adding a new clock into the driver that sits above the existing
>>   configurable clocks & has the external reference as a parent. The new
>>   clock provides the parent for the AHB/AXI clocks which formerly came
>>   from the device tree.
>> - Adding the rtc reference clock to the dt bindings, device tree and
>>   clock driver at the configurable clock level, alongside AXI and AHB.
>>
>> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
>> & fixes a specific problem.
>>
>> Changes since v1:
>> After speaking with Krzysztof, I have merged the rtc reference changes
>> [1] with these fixes for 5.18. This was done since the relevant drivers
>> and bindings only arrived in v5.18 & there'll now be no issue with
>> breaking the ABI.
>> Backwards compatiblity with the device tree from before 5.18 will be
>> broken by these changes, but the board did not boot then anyway... If
>> that is not okay, please lmk.
>>
>> The patch renaming sys_base was dropped since that's not a fix.
>>
>> Version 1 would not apply without [0] & that should be fixed too.
>>
>> Thanks,
>> Conor.
>>
>> Changes since v2:
>> - Wrapped text in dt-binding changes at 80 cols
>> - Ordered the clock defines numerically in the binding header
>> - Fixed the Fixes tag on the last patch and added the second tag
>>
>> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
>> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
>>
>> Conor Dooley (9):
>>   clk: microchip: mpfs: fix parents for FIC clocks
>>   clk: microchip: mpfs: mark CLK_ATHENA as critical
>>   riscv: dts: microchip: fix usage of fic clocks on mpfs
>>   dt-bindings: clk: mpfs document msspll dri registers
>>   dt-bindings: clk: mpfs: add defines for two new clocks
>>   dt-bindings: rtc: add refclk to mpfs-rtc
>>   clk: microchip: mpfs: re-parent the configurable clocks
>>   clk: microchip: mpfs: add RTCREF clock control
>>   riscv: dts: microchip: reparent mpfs clocks
>>
>>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
>>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
>>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
>>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
>>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
>>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
>>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
>>  7 files changed, 211 insertions(+), 41 deletions(-)
> 
> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
> 
> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>

Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
I figure they're in his queue :)

> 
> in case someone else wants to take it.  I've put these over at palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off until at least next week to give everyone time to chime in.
> 
> On a somewhat related note, I'm getting some DT schema failures
>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
>    Looks like none of them are new from this patch set, though.  Atul's been chasing down various DT schema failures so they might be fixed already.

Ye, I do know about those. I meant to try deleting the clocks
property but didn't get a chance, just been busy. It's not
related to this series nor does it matter if it makes it prior
to 5.18 so I was going to submit it on its own.
The other is in my list-of-things-to-ask-Rob/Krzk-when-I-know-
for-sure-what-my-question-actually-is...

Thanks,
Conor.

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-22 19:59     ` Conor Dooley
@ 2022-04-22 21:00       ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-22 21:00 UTC (permalink / raw)
  To: Conor Dooley, Palmer Dabbelt, atulkhare
  Cc: mturquette, aou, Paul Walmsley, a.zummo, alexandre.belloni,
	robh+dt, krzk+dt, daire.mcnamara, linux-rtc, devicetree,
	linux-clk, linux-riscv, conor.dooley

Quoting Conor Dooley (2022-04-22 12:59:09)
> On 22/04/2022 20:39, Palmer Dabbelt wrote:
> > 
> > Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
> > 
> > Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> 
> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
> I figure they're in his queue :)

It helps to be explicit in the cover letter. It's in my queue but I put
it on hold because the cover letter didn't clarify what tree it was
intended for nor the priority of what is being fixed.

Is boot broken? Do I need to send these up to Linus next week as part of
fixes for this merge window?

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 21:00       ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-22 21:00 UTC (permalink / raw)
  To: Conor Dooley, Palmer Dabbelt, atulkhare
  Cc: mturquette, aou, Paul Walmsley, a.zummo, alexandre.belloni,
	robh+dt, krzk+dt, daire.mcnamara, linux-rtc, devicetree,
	linux-clk, linux-riscv, conor.dooley

Quoting Conor Dooley (2022-04-22 12:59:09)
> On 22/04/2022 20:39, Palmer Dabbelt wrote:
> > 
> > Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
> > 
> > Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> 
> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
> I figure they're in his queue :)

It helps to be explicit in the cover letter. It's in my queue but I put
it on hold because the cover letter didn't clarify what tree it was
intended for nor the priority of what is being fixed.

Is boot broken? Do I need to send these up to Linus next week as part of
fixes for this merge window?

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-22 21:00       ` Stephen Boyd
@ 2022-04-22 21:10         ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-22 21:10 UTC (permalink / raw)
  To: Stephen Boyd, Palmer Dabbelt
  Cc: mturquette, aou, Paul Walmsley, a.zummo, alexandre.belloni,
	robh+dt, krzk+dt, daire.mcnamara, linux-rtc, devicetree,
	linux-clk, linux-riscv, conor.dooley, atulkhare



On 22/04/2022 22:00, Stephen Boyd wrote:
> Quoting Conor Dooley (2022-04-22 12:59:09)
>> On 22/04/2022 20:39, Palmer Dabbelt wrote:
>>>
>>> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
>>>
>>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>>
>> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
>> I figure they're in his queue :)
> 
> It helps to be explicit in the cover letter. It's in my queue but I put
> it on hold because the cover letter didn't clarify what tree it was
> intended for nor the priority of what is being fixed.

Ah right, my bad. The coordinating things between trees stuff is
still pretty new to me. If you could take the lot via clk, that'd
be great?
 
> Is boot broken? Do I need to send these up to Linus next week as part of
> fixes for this merge window?

Boot is not broken, I was hoping this would go into 5.18 to avoid
having to deal with two different sorts of reference clock DT
entries - 5.18 where the DT provides the mss pll & 5.18+n where
the DT provides the input to the mss pll.

So, not next week urgent, but as fixes for this window please.

Thanks,
Conor.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 21:10         ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-22 21:10 UTC (permalink / raw)
  To: Stephen Boyd, Palmer Dabbelt
  Cc: mturquette, aou, Paul Walmsley, a.zummo, alexandre.belloni,
	robh+dt, krzk+dt, daire.mcnamara, linux-rtc, devicetree,
	linux-clk, linux-riscv, conor.dooley, atulkhare



On 22/04/2022 22:00, Stephen Boyd wrote:
> Quoting Conor Dooley (2022-04-22 12:59:09)
>> On 22/04/2022 20:39, Palmer Dabbelt wrote:
>>>
>>> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
>>>
>>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>>
>> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
>> I figure they're in his queue :)
> 
> It helps to be explicit in the cover letter. It's in my queue but I put
> it on hold because the cover letter didn't clarify what tree it was
> intended for nor the priority of what is being fixed.

Ah right, my bad. The coordinating things between trees stuff is
still pretty new to me. If you could take the lot via clk, that'd
be great?
 
> Is boot broken? Do I need to send these up to Linus next week as part of
> fixes for this merge window?

Boot is not broken, I was hoping this would go into 5.18 to avoid
having to deal with two different sorts of reference clock DT
entries - 5.18 where the DT provides the mss pll & 5.18+n where
the DT provides the input to the mss pll.

So, not next week urgent, but as fixes for this window please.

Thanks,
Conor.

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-22 21:10         ` Conor Dooley
@ 2022-04-22 21:40           ` Palmer Dabbelt
  -1 siblings, 0 replies; 56+ messages in thread
From: Palmer Dabbelt @ 2022-04-22 21:40 UTC (permalink / raw)
  To: mail
  Cc: sboyd, mturquette, aou, Paul Walmsley, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt, daire.mcnamara, linux-rtc,
	devicetree, linux-clk, linux-riscv, conor.dooley, atulkhare

On Fri, 22 Apr 2022 14:10:55 PDT (-0700), mail@conchuod.ie wrote:
>
>
> On 22/04/2022 22:00, Stephen Boyd wrote:
>> Quoting Conor Dooley (2022-04-22 12:59:09)
>>> On 22/04/2022 20:39, Palmer Dabbelt wrote:
>>>>
>>>> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
>>>>
>>>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>>>
>>> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
>>> I figure they're in his queue :)
>>
>> It helps to be explicit in the cover letter. It's in my queue but I put
>> it on hold because the cover letter didn't clarify what tree it was
>> intended for nor the priority of what is being fixed.
>
> Ah right, my bad. The coordinating things between trees stuff is
> still pretty new to me. If you could take the lot via clk, that'd
> be great?

No problem, the multi-tree stuff is always tricky.  It ended up in my 
queue too, but I fast-forward to the latest version of each set as I 
stumble into earlier ones so I guess I got here quickly.

Having these go through clk is better for me, I'll ignore them.

Thanks!

>> Is boot broken? Do I need to send these up to Linus next week as part of
>> fixes for this merge window?
>
> Boot is not broken, I was hoping this would go into 5.18 to avoid
> having to deal with two different sorts of reference clock DT
> entries - 5.18 where the DT provides the mss pll & 5.18+n where
> the DT provides the input to the mss pll.
>
> So, not next week urgent, but as fixes for this window please.
>
> Thanks,
> Conor.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 21:40           ` Palmer Dabbelt
  0 siblings, 0 replies; 56+ messages in thread
From: Palmer Dabbelt @ 2022-04-22 21:40 UTC (permalink / raw)
  To: mail
  Cc: sboyd, mturquette, aou, Paul Walmsley, a.zummo,
	alexandre.belloni, robh+dt, krzk+dt, daire.mcnamara, linux-rtc,
	devicetree, linux-clk, linux-riscv, conor.dooley, atulkhare

On Fri, 22 Apr 2022 14:10:55 PDT (-0700), mail@conchuod.ie wrote:
>
>
> On 22/04/2022 22:00, Stephen Boyd wrote:
>> Quoting Conor Dooley (2022-04-22 12:59:09)
>>> On 22/04/2022 20:39, Palmer Dabbelt wrote:
>>>>
>>>> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
>>>>
>>>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>>>
>>> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
>>> I figure they're in his queue :)
>>
>> It helps to be explicit in the cover letter. It's in my queue but I put
>> it on hold because the cover letter didn't clarify what tree it was
>> intended for nor the priority of what is being fixed.
>
> Ah right, my bad. The coordinating things between trees stuff is
> still pretty new to me. If you could take the lot via clk, that'd
> be great?

No problem, the multi-tree stuff is always tricky.  It ended up in my 
queue too, but I fast-forward to the latest version of each set as I 
stumble into earlier ones so I guess I got here quickly.

Having these go through clk is better for me, I'll ignore them.

Thanks!

>> Is boot broken? Do I need to send these up to Linus next week as part of
>> fixes for this merge window?
>
> Boot is not broken, I was hoping this would go into 5.18 to avoid
> having to deal with two different sorts of reference clock DT
> entries - 5.18 where the DT provides the mss pll & 5.18+n where
> the DT provides the input to the mss pll.
>
> So, not next week urgent, but as fixes for this window please.
>
> Thanks,
> Conor.

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-22 19:59     ` Conor Dooley
@ 2022-04-22 21:52       ` Rob Herring
  -1 siblings, 0 replies; 56+ messages in thread
From: Rob Herring @ 2022-04-22 21:52 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Palmer Dabbelt, atulkhare, Michael Turquette, Stephen Boyd,
	Albert Ou, Paul Walmsley, Alessandro Zummo, Alexandre Belloni,
	Krzysztof Kozlowski, Daire McNamara,
	open list:REAL TIME CLOCK (RTC) SUBSYSTEM, devicetree, linux-clk,
	linux-riscv, Conor Dooley

On Fri, Apr 22, 2022 at 2:59 PM Conor Dooley <mail@conchuod.ie> wrote:
>
> On 22/04/2022 20:39, Palmer Dabbelt wrote:
> > On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
> >> Hey all,
> >> After the clock driver for the PolarFire SoC was accepted I started work
> >> on the onboard RTC & found out that the reference clock for the rtc was
> >> actually missing from the clock driver.
> >>
> >> While restructuring the clock driver to add support for the rtc
> >> reference, I also noticed that there were some problems with how the FIC
> >> clocks were being used. The FIC clocks are the cpu side inputs to the
> >> AXI fabric interconnections & are not the clocks for any peripherals.
> >>
> >> This first three patches in this series fixes the problems with the FICs:
> >> - the fic clocks incorrectly had the AHB clock as their parents
> >> - the last fic, named differently to the others, had not been set as
> >>   a critical clock
> >> - some peripherals on the fabric side were incorrectly using the cpu
> >>   side fic clocks, resulting in incorrect rates.
> >>
> >> The second part of the series fixes the missing rtc reference clock.
> >> There are three main changes:
> >> - Changing the reference clock in the dt to the external 125 MHz
> >>   oscillator rather than using the output of an internal pll. This has
> >>   the added benefit of not requiring changes to the device tree if this
> >>   part of the bitstream changes.
> >> - Adding a new clock into the driver that sits above the existing
> >>   configurable clocks & has the external reference as a parent. The new
> >>   clock provides the parent for the AHB/AXI clocks which formerly came
> >>   from the device tree.
> >> - Adding the rtc reference clock to the dt bindings, device tree and
> >>   clock driver at the configurable clock level, alongside AXI and AHB.
> >>
> >> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
> >> & fixes a specific problem.
> >>
> >> Changes since v1:
> >> After speaking with Krzysztof, I have merged the rtc reference changes
> >> [1] with these fixes for 5.18. This was done since the relevant drivers
> >> and bindings only arrived in v5.18 & there'll now be no issue with
> >> breaking the ABI.
> >> Backwards compatiblity with the device tree from before 5.18 will be
> >> broken by these changes, but the board did not boot then anyway... If
> >> that is not okay, please lmk.
> >>
> >> The patch renaming sys_base was dropped since that's not a fix.
> >>
> >> Version 1 would not apply without [0] & that should be fixed too.
> >>
> >> Thanks,
> >> Conor.
> >>
> >> Changes since v2:
> >> - Wrapped text in dt-binding changes at 80 cols
> >> - Ordered the clock defines numerically in the binding header
> >> - Fixed the Fixes tag on the last patch and added the second tag
> >>
> >> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
> >> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
> >>
> >> Conor Dooley (9):
> >>   clk: microchip: mpfs: fix parents for FIC clocks
> >>   clk: microchip: mpfs: mark CLK_ATHENA as critical
> >>   riscv: dts: microchip: fix usage of fic clocks on mpfs
> >>   dt-bindings: clk: mpfs document msspll dri registers
> >>   dt-bindings: clk: mpfs: add defines for two new clocks
> >>   dt-bindings: rtc: add refclk to mpfs-rtc
> >>   clk: microchip: mpfs: re-parent the configurable clocks
> >>   clk: microchip: mpfs: add RTCREF clock control
> >>   riscv: dts: microchip: reparent mpfs clocks
> >>
> >>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
> >>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
> >>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
> >>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
> >>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
> >>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
> >>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
> >>  7 files changed, 211 insertions(+), 41 deletions(-)
> >
> > Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
> >
> > Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>
> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
> I figure they're in his queue :)
>
> >
> > in case someone else wants to take it.  I've put these over at palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off until at least next week to give everyone time to chime in.
> >
> > On a somewhat related note, I'm getting some DT schema failures
> >    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
> >            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
> >    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
> >            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
> >    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
> >            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
> >    Looks like none of them are new from this patch set, though.  Atul's been chasing down various DT schema failures so they might be fixed already.
>
> Ye, I do know about those. I meant to try deleting the clocks
> property but didn't get a chance, just been busy. It's not
> related to this series nor does it matter if it makes it prior
> to 5.18 so I was going to submit it on its own.
> The other is in my list-of-things-to-ask-Rob/Krzk-when-I-know-
> for-sure-what-my-question-actually-is...

microchip,mpfs-sys-controller doesn't have MMIO registers, so it's not
on a MMIO bus (aka simple-bus). Move it to an appropriate location
(top level if not part of something else).

Rob

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 21:52       ` Rob Herring
  0 siblings, 0 replies; 56+ messages in thread
From: Rob Herring @ 2022-04-22 21:52 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Palmer Dabbelt, atulkhare, Michael Turquette, Stephen Boyd,
	Albert Ou, Paul Walmsley, Alessandro Zummo, Alexandre Belloni,
	Krzysztof Kozlowski, Daire McNamara,
	open list:REAL TIME CLOCK (RTC) SUBSYSTEM, devicetree, linux-clk,
	linux-riscv, Conor Dooley

On Fri, Apr 22, 2022 at 2:59 PM Conor Dooley <mail@conchuod.ie> wrote:
>
> On 22/04/2022 20:39, Palmer Dabbelt wrote:
> > On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
> >> Hey all,
> >> After the clock driver for the PolarFire SoC was accepted I started work
> >> on the onboard RTC & found out that the reference clock for the rtc was
> >> actually missing from the clock driver.
> >>
> >> While restructuring the clock driver to add support for the rtc
> >> reference, I also noticed that there were some problems with how the FIC
> >> clocks were being used. The FIC clocks are the cpu side inputs to the
> >> AXI fabric interconnections & are not the clocks for any peripherals.
> >>
> >> This first three patches in this series fixes the problems with the FICs:
> >> - the fic clocks incorrectly had the AHB clock as their parents
> >> - the last fic, named differently to the others, had not been set as
> >>   a critical clock
> >> - some peripherals on the fabric side were incorrectly using the cpu
> >>   side fic clocks, resulting in incorrect rates.
> >>
> >> The second part of the series fixes the missing rtc reference clock.
> >> There are three main changes:
> >> - Changing the reference clock in the dt to the external 125 MHz
> >>   oscillator rather than using the output of an internal pll. This has
> >>   the added benefit of not requiring changes to the device tree if this
> >>   part of the bitstream changes.
> >> - Adding a new clock into the driver that sits above the existing
> >>   configurable clocks & has the external reference as a parent. The new
> >>   clock provides the parent for the AHB/AXI clocks which formerly came
> >>   from the device tree.
> >> - Adding the rtc reference clock to the dt bindings, device tree and
> >>   clock driver at the configurable clock level, alongside AXI and AHB.
> >>
> >> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
> >> & fixes a specific problem.
> >>
> >> Changes since v1:
> >> After speaking with Krzysztof, I have merged the rtc reference changes
> >> [1] with these fixes for 5.18. This was done since the relevant drivers
> >> and bindings only arrived in v5.18 & there'll now be no issue with
> >> breaking the ABI.
> >> Backwards compatiblity with the device tree from before 5.18 will be
> >> broken by these changes, but the board did not boot then anyway... If
> >> that is not okay, please lmk.
> >>
> >> The patch renaming sys_base was dropped since that's not a fix.
> >>
> >> Version 1 would not apply without [0] & that should be fixed too.
> >>
> >> Thanks,
> >> Conor.
> >>
> >> Changes since v2:
> >> - Wrapped text in dt-binding changes at 80 cols
> >> - Ordered the clock defines numerically in the binding header
> >> - Fixed the Fixes tag on the last patch and added the second tag
> >>
> >> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
> >> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
> >>
> >> Conor Dooley (9):
> >>   clk: microchip: mpfs: fix parents for FIC clocks
> >>   clk: microchip: mpfs: mark CLK_ATHENA as critical
> >>   riscv: dts: microchip: fix usage of fic clocks on mpfs
> >>   dt-bindings: clk: mpfs document msspll dri registers
> >>   dt-bindings: clk: mpfs: add defines for two new clocks
> >>   dt-bindings: rtc: add refclk to mpfs-rtc
> >>   clk: microchip: mpfs: re-parent the configurable clocks
> >>   clk: microchip: mpfs: add RTCREF clock control
> >>   riscv: dts: microchip: reparent mpfs clocks
> >>
> >>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
> >>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
> >>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
> >>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
> >>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
> >>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
> >>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
> >>  7 files changed, 211 insertions(+), 41 deletions(-)
> >
> > Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
> >
> > Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>
> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
> I figure they're in his queue :)
>
> >
> > in case someone else wants to take it.  I've put these over at palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off until at least next week to give everyone time to chime in.
> >
> > On a somewhat related note, I'm getting some DT schema failures
> >    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
> >            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
> >    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
> >            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
> >    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
> >            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
> >    Looks like none of them are new from this patch set, though.  Atul's been chasing down various DT schema failures so they might be fixed already.
>
> Ye, I do know about those. I meant to try deleting the clocks
> property but didn't get a chance, just been busy. It's not
> related to this series nor does it matter if it makes it prior
> to 5.18 so I was going to submit it on its own.
> The other is in my list-of-things-to-ask-Rob/Krzk-when-I-know-
> for-sure-what-my-question-actually-is...

microchip,mpfs-sys-controller doesn't have MMIO registers, so it's not
on a MMIO bus (aka simple-bus). Move it to an appropriate location
(top level if not part of something else).

Rob

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
  2022-04-22 21:52       ` Rob Herring
@ 2022-04-22 22:32         ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-22 22:32 UTC (permalink / raw)
  To: Rob Herring
  Cc: atulkhare, Palmer Dabbelt, Michael Turquette, Stephen Boyd,
	Albert Ou, Paul Walmsley, Alessandro Zummo, Alexandre Belloni,
	Krzysztof Kozlowski, Daire McNamara,
	open list:REAL TIME CLOCK (RTC) SUBSYSTEM, devicetree, linux-clk,
	linux-riscv, Conor Dooley

On 22/04/2022 22:52, Rob Herring wrote:
> On Fri, Apr 22, 2022 at 2:59 PM Conor Dooley <mail@conchuod.ie> wrote:
>> On 22/04/2022 20:39, Palmer Dabbelt wrote:
>>> On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
>>>> Hey all,
>>>> After the clock driver for the PolarFire SoC was accepted I started work
>>>> on the onboard RTC & found out that the reference clock for the rtc was
>>>> actually missing from the clock driver.
>>>>
>>>> While restructuring the clock driver to add support for the rtc
>>>> reference, I also noticed that there were some problems with how the FIC
>>>> clocks were being used. The FIC clocks are the cpu side inputs to the
>>>> AXI fabric interconnections & are not the clocks for any peripherals.
>>>>
>>>> This first three patches in this series fixes the problems with the FICs:
>>>> - the fic clocks incorrectly had the AHB clock as their parents
>>>> - the last fic, named differently to the others, had not been set as
>>>>   a critical clock
>>>> - some peripherals on the fabric side were incorrectly using the cpu
>>>>   side fic clocks, resulting in incorrect rates.
>>>>
>>>> The second part of the series fixes the missing rtc reference clock.
>>>> There are three main changes:
>>>> - Changing the reference clock in the dt to the external 125 MHz
>>>>   oscillator rather than using the output of an internal pll. This has
>>>>   the added benefit of not requiring changes to the device tree if this
>>>>   part of the bitstream changes.
>>>> - Adding a new clock into the driver that sits above the existing
>>>>   configurable clocks & has the external reference as a parent. The new
>>>>   clock provides the parent for the AHB/AXI clocks which formerly came
>>>>   from the device tree.
>>>> - Adding the rtc reference clock to the dt bindings, device tree and
>>>>   clock driver at the configurable clock level, alongside AXI and AHB.
>>>>
>>>> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
>>>> & fixes a specific problem.
>>>>
>>>> Changes since v1:
>>>> After speaking with Krzysztof, I have merged the rtc reference changes
>>>> [1] with these fixes for 5.18. This was done since the relevant drivers
>>>> and bindings only arrived in v5.18 & there'll now be no issue with
>>>> breaking the ABI.
>>>> Backwards compatiblity with the device tree from before 5.18 will be
>>>> broken by these changes, but the board did not boot then anyway... If
>>>> that is not okay, please lmk.
>>>>
>>>> The patch renaming sys_base was dropped since that's not a fix.
>>>>
>>>> Version 1 would not apply without [0] & that should be fixed too.
>>>>
>>>> Thanks,
>>>> Conor.
>>>>
>>>> Changes since v2:
>>>> - Wrapped text in dt-binding changes at 80 cols
>>>> - Ordered the clock defines numerically in the binding header
>>>> - Fixed the Fixes tag on the last patch and added the second tag
>>>>
>>>> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
>>>> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
>>>>
>>>> Conor Dooley (9):
>>>>   clk: microchip: mpfs: fix parents for FIC clocks
>>>>   clk: microchip: mpfs: mark CLK_ATHENA as critical
>>>>   riscv: dts: microchip: fix usage of fic clocks on mpfs
>>>>   dt-bindings: clk: mpfs document msspll dri registers
>>>>   dt-bindings: clk: mpfs: add defines for two new clocks
>>>>   dt-bindings: rtc: add refclk to mpfs-rtc
>>>>   clk: microchip: mpfs: re-parent the configurable clocks
>>>>   clk: microchip: mpfs: add RTCREF clock control
>>>>   riscv: dts: microchip: reparent mpfs clocks
>>>>
>>>>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
>>>>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
>>>>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
>>>>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
>>>>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
>>>>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
>>>>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
>>>>  7 files changed, 211 insertions(+), 41 deletions(-)
>>>
>>> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
>>>
>>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>>
>> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
>> I figure they're in his queue :)
>>
>>>
>>> in case someone else wants to take it.  I've put these over at palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off until at least next week to give everyone time to chime in.
>>>
>>> On a somewhat related note, I'm getting some DT schema failures
>>>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>>>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>>>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>>>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>>>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
>>>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
>>>    Looks like none of them are new from this patch set, though.  Atul's been chasing down various DT schema failures so they might be fixed already.
>>
>> Ye, I do know about those. I meant to try deleting the clocks
>> property but didn't get a chance, just been busy. It's not
>> related to this series nor does it matter if it makes it prior
>> to 5.18 so I was going to submit it on its own.
>> The other is in my list-of-things-to-ask-Rob/Krzk-when-I-know-
>> for-sure-what-my-question-actually-is...
> 
> microchip,mpfs-sys-controller doesn't have MMIO registers, so it's not
> on a MMIO bus (aka simple-bus). Move it to an appropriate location
> (top level if not part of something else).

sys controller is meant to have a qspi flash too, which I hadn't added
yet as it does not work with sample silicon.
I'll send a fix for both warnings Monday.
Thanks,
Conor.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18
@ 2022-04-22 22:32         ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-22 22:32 UTC (permalink / raw)
  To: Rob Herring
  Cc: atulkhare, Palmer Dabbelt, Michael Turquette, Stephen Boyd,
	Albert Ou, Paul Walmsley, Alessandro Zummo, Alexandre Belloni,
	Krzysztof Kozlowski, Daire McNamara,
	open list:REAL TIME CLOCK (RTC) SUBSYSTEM, devicetree, linux-clk,
	linux-riscv, Conor Dooley

On 22/04/2022 22:52, Rob Herring wrote:
> On Fri, Apr 22, 2022 at 2:59 PM Conor Dooley <mail@conchuod.ie> wrote:
>> On 22/04/2022 20:39, Palmer Dabbelt wrote:
>>> On Wed, 13 Apr 2022 00:58:27 PDT (-0700), conor.dooley@microchip.com wrote:
>>>> Hey all,
>>>> After the clock driver for the PolarFire SoC was accepted I started work
>>>> on the onboard RTC & found out that the reference clock for the rtc was
>>>> actually missing from the clock driver.
>>>>
>>>> While restructuring the clock driver to add support for the rtc
>>>> reference, I also noticed that there were some problems with how the FIC
>>>> clocks were being used. The FIC clocks are the cpu side inputs to the
>>>> AXI fabric interconnections & are not the clocks for any peripherals.
>>>>
>>>> This first three patches in this series fixes the problems with the FICs:
>>>> - the fic clocks incorrectly had the AHB clock as their parents
>>>> - the last fic, named differently to the others, had not been set as
>>>>   a critical clock
>>>> - some peripherals on the fabric side were incorrectly using the cpu
>>>>   side fic clocks, resulting in incorrect rates.
>>>>
>>>> The second part of the series fixes the missing rtc reference clock.
>>>> There are three main changes:
>>>> - Changing the reference clock in the dt to the external 125 MHz
>>>>   oscillator rather than using the output of an internal pll. This has
>>>>   the added benefit of not requiring changes to the device tree if this
>>>>   part of the bitstream changes.
>>>> - Adding a new clock into the driver that sits above the existing
>>>>   configurable clocks & has the external reference as a parent. The new
>>>>   clock provides the parent for the AHB/AXI clocks which formerly came
>>>>   from the device tree.
>>>> - Adding the rtc reference clock to the dt bindings, device tree and
>>>>   clock driver at the configurable clock level, alongside AXI and AHB.
>>>>
>>>> I kept series separate from [0] since that's tied to the CONFIG_PM stuff
>>>> & fixes a specific problem.
>>>>
>>>> Changes since v1:
>>>> After speaking with Krzysztof, I have merged the rtc reference changes
>>>> [1] with these fixes for 5.18. This was done since the relevant drivers
>>>> and bindings only arrived in v5.18 & there'll now be no issue with
>>>> breaking the ABI.
>>>> Backwards compatiblity with the device tree from before 5.18 will be
>>>> broken by these changes, but the board did not boot then anyway... If
>>>> that is not okay, please lmk.
>>>>
>>>> The patch renaming sys_base was dropped since that's not a fix.
>>>>
>>>> Version 1 would not apply without [0] & that should be fixed too.
>>>>
>>>> Thanks,
>>>> Conor.
>>>>
>>>> Changes since v2:
>>>> - Wrapped text in dt-binding changes at 80 cols
>>>> - Ordered the clock defines numerically in the binding header
>>>> - Fixed the Fixes tag on the last patch and added the second tag
>>>>
>>>> [0] https://lore.kernel.org/linux-riscv/20220408143646.3693104-1-conor.dooley@microchip.com
>>>> [1] https://lore.kernel.org/linux-riscv/20220411072340.740981-1-conor.dooley@microchip.com
>>>>
>>>> Conor Dooley (9):
>>>>   clk: microchip: mpfs: fix parents for FIC clocks
>>>>   clk: microchip: mpfs: mark CLK_ATHENA as critical
>>>>   riscv: dts: microchip: fix usage of fic clocks on mpfs
>>>>   dt-bindings: clk: mpfs document msspll dri registers
>>>>   dt-bindings: clk: mpfs: add defines for two new clocks
>>>>   dt-bindings: rtc: add refclk to mpfs-rtc
>>>>   clk: microchip: mpfs: re-parent the configurable clocks
>>>>   clk: microchip: mpfs: add RTCREF clock control
>>>>   riscv: dts: microchip: reparent mpfs clocks
>>>>
>>>>  .../bindings/clock/microchip,mpfs.yaml        |  13 +-
>>>>  .../bindings/rtc/microchip,mfps-rtc.yaml      |  15 +-
>>>>  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  16 +-
>>>>  .../microchip/microchip-mpfs-icicle-kit.dts   |   2 +-
>>>>  .../boot/dts/microchip/microchip-mpfs.dtsi    |  10 +-
>>>>  drivers/clk/microchip/clk-mpfs.c              | 191 +++++++++++++++---
>>>>  .../dt-bindings/clock/microchip,mpfs-clock.h  |   5 +-
>>>>  7 files changed, 211 insertions(+), 41 deletions(-)
>>>
>>> Thanks.  These generally look good to me, but I don't see acks from everyone.  I'm perfectly fine treating these as fixes and taking them through the RISC-V tree, but looks like it's mostly clk stuff so
>>>
>>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
>>
>> Ye, hopefully they go via clk. Stephen replied to v1 or 2 so
>> I figure they're in his queue :)
>>
>>>
>>> in case someone else wants to take it.  I've put these over at palmer/riscv-pfsoc-clk but haven't merged that anywhere, I'll hold off until at least next week to give everyone time to chime in.
>>>
>>> On a somewhat related note, I'm getting some DT schema failures
>>>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@80000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>>>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>>>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: /: memory@1000000000: 'clocks' does not match any of the regexes: 'pinctrl-[0-9]+'
>>>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/memory.yaml
>>>    /scratch/riscv-systems-ci-fixes/check/dt_check/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dtb: soc: syscontroller: {'compatible': ['microchip,mpfs-sys-controller'], 'mboxes': [[15, 0]], 'status': ['okay']} should not be valid under {'type': 'object'}
>>>            From schema: /home/palmer/.local/lib/python3.8/site-packages/dtschema-2022.3.2-py3.8.egg/dtschema/schemas/simple-bus.yaml
>>>    Looks like none of them are new from this patch set, though.  Atul's been chasing down various DT schema failures so they might be fixed already.
>>
>> Ye, I do know about those. I meant to try deleting the clocks
>> property but didn't get a chance, just been busy. It's not
>> related to this series nor does it matter if it makes it prior
>> to 5.18 so I was going to submit it on its own.
>> The other is in my list-of-things-to-ask-Rob/Krzk-when-I-know-
>> for-sure-what-my-question-actually-is...
> 
> microchip,mpfs-sys-controller doesn't have MMIO registers, so it's not
> on a MMIO bus (aka simple-bus). Move it to an appropriate location
> (top level if not part of something else).

sys controller is meant to have a qspi flash too, which I hadn't added
yet as it does not work with sample silicon.
I'll send a fix for both warnings Monday.
Thanks,
Conor.

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

* Re: [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:28)
> The fabric interconnects are on the AXI bus not AHB.
> Update their parent clocks to fix this.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:28)
> The fabric interconnects are on the AXI bus not AHB.
> Update their parent clocks to fix this.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 2/9] clk: microchip: mpfs: mark CLK_ATHENA as critical
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:29)
> CLK_ATHENA is another fabric interconnect and should be marked as critical
> as with FIC0-3, since disabling it will cause part of the fabric to go
> into reset.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 2/9] clk: microchip: mpfs: mark CLK_ATHENA as critical
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:29)
> CLK_ATHENA is another fabric interconnect and should be marked as critical
> as with FIC0-3, since disabling it will cause part of the fabric to go
> into reset.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 3/9] riscv: dts: microchip: fix usage of fic clocks on mpfs
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:30)
> The fic clocks passed to the pcie controller and other peripherals in
> the device tree are not the clocks they actually run on. The fics are
> actually clock domain crossers & the clock config blocks output is the
> mss/cpu side input to the interconnect. The peripherals are actually
> clocked by fixed frequency clocks embedded in the fpga fabric.
> 
> Fix the device tree so that these peripherals use the correct clocks.
> The fabric side FIC0 & FIC1 inputs both use the same 125 MHz, so only
> one clock is created for them.
> 
> Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 3/9] riscv: dts: microchip: fix usage of fic clocks on mpfs
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:30)
> The fic clocks passed to the pcie controller and other peripherals in
> the device tree are not the clocks they actually run on. The fics are
> actually clock domain crossers & the clock config blocks output is the
> mss/cpu side input to the interconnect. The peripherals are actually
> clocked by fixed frequency clocks embedded in the fpga fabric.
> 
> Fix the device tree so that these peripherals use the correct clocks.
> The fabric side FIC0 & FIC1 inputs both use the same 125 MHz, so only
> one clock is created for them.
> 
> Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 4/9] dt-bindings: clk: mpfs document msspll dri registers
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

Quoting Conor Dooley (2022-04-13 00:58:31)
> As there are two sections of registers that are responsible for clock
> configuration on the PolarFire SoC: add the dynamic reconfiguration
> interface section to the binding & describe what each of the sections
> are used for.
> 
> Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 4/9] dt-bindings: clk: mpfs document msspll dri registers
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

Quoting Conor Dooley (2022-04-13 00:58:31)
> As there are two sections of registers that are responsible for clock
> configuration on the PolarFire SoC: add the dynamic reconfiguration
> interface section to the binding & describe what each of the sections
> are used for.
> 
> Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:32)
> The RTC reference and MSSPLL were previously not documented or defined,
> as they were unused. Add their defines to the PolarFire SoC header.
> 
> Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:32)
> The RTC reference and MSSPLL were previously not documented or defined,
> as they were unused. Add their defines to the PolarFire SoC header.
> 
> Fixes: 2145bb687e3f ("dt-bindings: clk: microchip: Add Microchip PolarFire host binding")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 6/9] dt-bindings: rtc: add refclk to mpfs-rtc
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

Quoting Conor Dooley (2022-04-13 00:58:33)
> The rtc on PolarFire SoC does not use the AHB clock as its reference
> frequency, but rather a 1 MHz refclk that it shares with MTIMER. Add
> this second clock to the binding as a required property.
> 
> Fixes: 4cbcc0d7b397 ("dt-bindings: rtc: add bindings for microchip mpfs rtc")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 6/9] dt-bindings: rtc: add refclk to mpfs-rtc
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley, Krzysztof Kozlowski

Quoting Conor Dooley (2022-04-13 00:58:33)
> The rtc on PolarFire SoC does not use the AHB clock as its reference
> frequency, but rather a 1 MHz refclk that it shares with MTIMER. Add
> this second clock to the binding as a required property.
> 
> Fixes: 4cbcc0d7b397 ("dt-bindings: rtc: add bindings for microchip mpfs rtc")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 7/9] clk: microchip: mpfs: re-parent the configurable clocks
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:41     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:34)
> Currently the mpfs clock driver uses a reference clock called the
> "msspll", set in the device tree, as the parent for the cpu/axi/ahb
> (config) clocks. The frequency of the msspll is determined by the FPGA
> bitstream & the bootloader configures the clock to match the bitstream.
> The real reference is provided by a 100 or 125 MHz off chip oscillator.
> 
> However, the msspll clock is not actually the parent of all clocks on
> the system - the reference clock for the rtc/mtimer actually has the
> off chip oscillator as its parent.
> 
> In order to fix this, add support for reading the configuration of the
> msspll & reparent the "config" clocks so that they are derived from
> this clock rather than the reference in the device tree.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 7/9] clk: microchip: mpfs: re-parent the configurable clocks
@ 2022-04-23  1:41     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:41 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:34)
> Currently the mpfs clock driver uses a reference clock called the
> "msspll", set in the device tree, as the parent for the cpu/axi/ahb
> (config) clocks. The frequency of the msspll is determined by the FPGA
> bitstream & the bootloader configures the clock to match the bitstream.
> The real reference is provided by a 100 or 125 MHz off chip oscillator.
> 
> However, the msspll clock is not actually the parent of all clocks on
> the system - the reference clock for the rtc/mtimer actually has the
> off chip oscillator as its parent.
> 
> In order to fix this, add support for reading the configuration of the
> msspll & reparent the "config" clocks so that they are derived from
> this clock rather than the reference in the device tree.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 8/9] clk: microchip: mpfs: add RTCREF clock control
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:42     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:42 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:35)
> The reference clock used by the PolarFire SoC's onboard rtc was missing
> from the clock driver. Add this clock at the "config" clock level, with
> the external reference clock as its parent.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 8/9] clk: microchip: mpfs: add RTCREF clock control
@ 2022-04-23  1:42     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:42 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:35)
> The reference clock used by the PolarFire SoC's onboard rtc was missing
> from the clock driver. Add this clock at the "config" clock level, with
> the external reference clock as its parent.
> 
> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 9/9] riscv: dts: microchip: reparent mpfs clocks
  2022-04-13  7:58   ` Conor Dooley
@ 2022-04-23  1:42     ` Stephen Boyd
  -1 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:42 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:36)
> The 600M clock in the fabric is not the real reference, replace it with
> a 125M clock which is the correct value for the icicle kit. Rename the
> msspllclk node to mssrefclk since this is now the input to, not the
> output of, the msspll clock. Control of the msspll clock has been moved
> into the clock configurator, so add the register range for it to the clk
> configurator. Finally, add a new output of the clock config block which
> will provide the 1M reference clock for the MTIMER and the rtc.
> 
> Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
> Fixes: 0fa6107eca41 ("RISC-V: Initial DTS for Microchip ICICLE board")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

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

* Re: [PATCH v3 9/9] riscv: dts: microchip: reparent mpfs clocks
@ 2022-04-23  1:42     ` Stephen Boyd
  0 siblings, 0 replies; 56+ messages in thread
From: Stephen Boyd @ 2022-04-23  1:42 UTC (permalink / raw)
  To: Conor Dooley, a.zummo, alexandre.belloni, aou, krzk+dt,
	mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv,
	Conor Dooley

Quoting Conor Dooley (2022-04-13 00:58:36)
> The 600M clock in the fabric is not the real reference, replace it with
> a 125M clock which is the correct value for the icicle kit. Rename the
> msspllclk node to mssrefclk since this is now the input to, not the
> output of, the msspll clock. Control of the msspll clock has been moved
> into the clock configurator, so add the register range for it to the clk
> configurator. Finally, add a new output of the clock config block which
> will provide the 1M reference clock for the MTIMER and the rtc.
> 
> Fixes: 528a5b1f2556 ("riscv: dts: microchip: add new peripherals to icicle kit device tree")
> Fixes: 0fa6107eca41 ("RISC-V: Initial DTS for Microchip ICICLE board")
> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---

Applied to clk-fixes

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

* Re: [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks
  2022-04-23  1:41     ` Stephen Boyd
@ 2022-04-23 17:58       ` Conor Dooley
  -1 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-23 17:58 UTC (permalink / raw)
  To: Stephen Boyd, Conor Dooley, a.zummo, alexandre.belloni, aou,
	krzk+dt, mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv

On 23/04/2022 02:41, Stephen Boyd wrote:
> Quoting Conor Dooley (2022-04-13 00:58:28)
>> The fabric interconnects are on the AXI bus not AHB.
>> Update their parent clocks to fix this.
>>
>> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
>> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
>> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>> ---
> 
> Applied to clk-fixes

Thanks!

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

* Re: [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks
@ 2022-04-23 17:58       ` Conor Dooley
  0 siblings, 0 replies; 56+ messages in thread
From: Conor Dooley @ 2022-04-23 17:58 UTC (permalink / raw)
  To: Stephen Boyd, Conor Dooley, a.zummo, alexandre.belloni, aou,
	krzk+dt, mturquette, palmer, paul.walmsley, robh+dt
  Cc: daire.mcnamara, linux-rtc, devicetree, linux-clk, linux-riscv

On 23/04/2022 02:41, Stephen Boyd wrote:
> Quoting Conor Dooley (2022-04-13 00:58:28)
>> The fabric interconnects are on the AXI bus not AHB.
>> Update their parent clocks to fix this.
>>
>> Fixes: 635e5e73370e ("clk: microchip: Add driver for Microchip PolarFire SoC")
>> Reviewed-by: Daire McNamara <daire.mcnamara@microchip.com>
>> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>> ---
> 
> Applied to clk-fixes

Thanks!

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

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

end of thread, other threads:[~2022-04-23 17:59 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-13  7:58 [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18 Conor Dooley
2022-04-13  7:58 ` Conor Dooley
2022-04-13  7:58 ` [PATCH v3 1/9] clk: microchip: mpfs: fix parents for FIC clocks Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-23 17:58     ` Conor Dooley
2022-04-23 17:58       ` Conor Dooley
2022-04-13  7:58 ` [PATCH v3 2/9] clk: microchip: mpfs: mark CLK_ATHENA as critical Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 3/9] riscv: dts: microchip: fix usage of fic clocks on mpfs Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 4/9] dt-bindings: clk: mpfs document msspll dri registers Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 5/9] dt-bindings: clk: mpfs: add defines for two new clocks Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-19 11:59   ` Krzysztof Kozlowski
2022-04-19 11:59     ` Krzysztof Kozlowski
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 6/9] dt-bindings: rtc: add refclk to mpfs-rtc Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 7/9] clk: microchip: mpfs: re-parent the configurable clocks Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:41   ` Stephen Boyd
2022-04-23  1:41     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 8/9] clk: microchip: mpfs: add RTCREF clock control Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:42   ` Stephen Boyd
2022-04-23  1:42     ` Stephen Boyd
2022-04-13  7:58 ` [PATCH v3 9/9] riscv: dts: microchip: reparent mpfs clocks Conor Dooley
2022-04-13  7:58   ` Conor Dooley
2022-04-23  1:42   ` Stephen Boyd
2022-04-23  1:42     ` Stephen Boyd
2022-04-22 19:39 ` [PATCH v3 0/9] More PolarFire SoC Fixes for 5.18 Palmer Dabbelt
2022-04-22 19:39   ` Palmer Dabbelt
2022-04-22 19:59   ` Conor Dooley
2022-04-22 19:59     ` Conor Dooley
2022-04-22 21:00     ` Stephen Boyd
2022-04-22 21:00       ` Stephen Boyd
2022-04-22 21:10       ` Conor Dooley
2022-04-22 21:10         ` Conor Dooley
2022-04-22 21:40         ` Palmer Dabbelt
2022-04-22 21:40           ` Palmer Dabbelt
2022-04-22 21:52     ` Rob Herring
2022-04-22 21:52       ` Rob Herring
2022-04-22 22:32       ` Conor Dooley
2022-04-22 22:32         ` Conor Dooley

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.