Skip to contentSkip to conversation

Update the Icicle Kit device tree

PATCH In review [email protected] 10 participants 32 messages Feb 14, 2022 – Mar 16, 2022

Subsystems (8)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

v7 cover Update the Icicle Kit device tree

From: Conor Dooley <[email protected]>

This series updates the Microchip Icicle Kit device tree by adding a host of peripherals, and some updates to the memory map. In addition, the device tree has been split into a third part, which contains "soft" peripherals that are in the fpga fabric.

Several of the entries are for peripherals that have not get had their drivers upstreamed, so in those cases the dt bindings are included where appropriate in order to avoid the many "DT compatible string <x> appears un-documented" errors.

Depends on mpfs clock driver binding (on clk/next) to provide dt-bindings/clock/microchip,mpfs-clock.h for the device tree and on the other changes to the icicle/mpfs device tree from geert that are already in linux/riscv/for-next.

Additionally, the interrupt-extended warnings on the plic/clint are cleared by [1] & [2].

[1] https://lore.kernel.org/linux-riscv/[email protected]/
[2] https://lore.kernel.org/linux-riscv/[email protected]/

Changes from v6:
- Dropped i2c patch, as its in i2c-next
- Added ack on gpio, reviewed-by on rtc
- Dropped child nodes from sysctrl binding entirely, added a link to the online documenation for the services the system controller can provide
- Dropped the #pwm-cells and replaced with a ref, a la Krzysztof's series

Changes from v5:
- reworded the descriptions in the pwm binding to (hopefully) add clarity
- added -mask to the custom properties and made them 32 bit
- renamed the i2c binding to corei2c, since it is not mpfs specific
- removed the child nodes of the system controller in example/dts & will create them in the driver.
@Rob, I assume keeping them documented is the correct thing to do?
- removed the dependancy on the clock binding from the examples
- reformatted rtc interrupts as per Rob's suggestion

Changes from v4:
- dont include icicle_kit_defconfig, accidentally added in v3
- drop prescaler from mpfs-rtc & calculate the value instead
- use corei2c as a fallback device for mpfs-i2c
- drop spi dt-binding (on spi-next)
commit 2da187304e556ac59cf2dacb323cc78ded988169
- drop usb dt-binding (on usb-next)

Changes from v3:
- drop "mailbox: change mailbox-mpfs compatible string", already upstream:
commit f10b1fc0161cd99e ("mailbox: change mailbox-mpfs compatible string")
- fix copy paste error in microchip,mpfs-mailbox dt-binding
- remove whitespace in syscontroller dt entry

Changes from v2:
- dropped plic int header & corresponding defines in dts{,i}
- use $ref to drmode in mpfs-musb binding
- split changes to dts{,i} again: functional changes to existing elements now are in a new patch
- drop num-cs property in mpfs-spi binding
- dont make the system controller a simple-mfd
- move the separate bindings for rng/generic system services into the system controller binding
- added an instance corei2c as i2c2 in the fabric dtsi
- add version numbering to corepwm and corei2c compat string (-rtl-vN)

Conor Dooley (11):
dt-bindings: soc/microchip: update syscontroller compatibles
dt-bindings: soc/microchip: add info about services to mpfs sysctrl
dt-bindings: rtc: add bindings for microchip mpfs rtc
dt-bindings: gpio: add bindings for microchip mpfs gpio
dt-bindings: pwm: add microchip corepwm binding
riscv: dts: microchip: use clk defines for icicle kit
riscv: dts: microchip: add fpga fabric section to icicle kit
riscv: dts: microchip: refactor icicle kit device tree
riscv: dts: microchip: update peripherals in icicle kit device tree
riscv: dts: microchip: add new peripherals to icicle kit device tree
MAINTAINERS: update riscv/microchip entry

 .../bindings/gpio/microchip,mpfs-gpio.yaml    |  79 ++++++
 ...ilbox.yaml => microchip,mpfs-mailbox.yaml} |   6 +-
 .../bindings/pwm/microchip,corepwm.yaml       |  81 ++++++
 .../bindings/rtc/microchip,mfps-rtc.yaml      |  58 ++++
 .../microchip,mpfs-sys-controller.yaml        |  40 +++
 ...icrochip,polarfire-soc-sys-controller.yaml |  35 ---
 MAINTAINERS                                   |   2 +
 .../dts/microchip/microchip-mpfs-fabric.dtsi  |  25 ++
 .../microchip/microchip-mpfs-icicle-kit.dts   | 115 ++++++--
 .../boot/dts/microchip/microchip-mpfs.dtsi    | 254 ++++++++++++++----
 10 files changed, 591 insertions(+), 104 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
 rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%)
 create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
 create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
 create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
 delete mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml
 create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
Signature · 1 line
2.35.1
author maintainer
#1 lore raw

PATCH v7 1/11 dt-bindings: soc/microchip: update syscontroller compatibles

From: Conor Dooley <[email protected]>

The Polarfire SoC is currently using two different compatible string prefixes. Fix this by changing "polarfire-soc-*" strings to "mpfs-*" in its system controller in order to match the compatible string used in the soc binding and device tree

---
 ...larfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} | 6 +++---
 ...s-controller.yaml => microchip,mpfs-sys-controller.yaml} | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)
 rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%)
 rename Documentation/devicetree/bindings/soc/microchip/{microchip,polarfire-soc-sys-controller.yaml => microchip,mpfs-sys-controller.yaml} (75%)
Documentation/devicetree/bindings/mailbox/microchip,mpfs-mailbox.yaml renamed from Documentation/devicetree/bindings/mailbox/microchip,polarfire-soc-mailbox.yaml +3 -3
similarity index 82%
rename from Documentation/devicetree/bindings/mailbox/microchip,polarfire-soc-mailbox.yaml
rename to Documentation/devicetree/bindings/mailbox/microchip,mpfs-mailbox.yaml
index bbb173ea483c..082d397d3e89 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/mailbox/microchip,polarfire-soc-mailbox.yaml#"
+$id: "http://devicetree.org/schemas/mailbox/microchip,mpfs-mailbox.yaml#"
 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
 
 title: Microchip PolarFire SoC (MPFS) MSS (microprocessor subsystem) mailbox controller
@@ -11,7 +11,7 @@ maintainers:
 
 properties:
   compatible:
-    const: microchip,polarfire-soc-mailbox
+    const: microchip,mpfs-mailbox
 
   reg:
     items:
@@ -38,7 +38,7 @@ examples:
       #address-cells = <2>;
       #size-cells = <2>;
       mbox: mailbox@37020000 {
-        compatible = "microchip,polarfire-soc-mailbox";
+        compatible = "microchip,mpfs-mailbox";
         reg = <0x0 0x37020000 0x0 0x1000>, <0x0 0x2000318c 0x0 0x40>;
         interrupt-parent = <&L1>;
         interrupts = <96>;
Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml renamed from Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml +3 -3
similarity index 75%
rename from Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml
rename to Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
index 2cd3bc6bd8d6..f699772fedf3 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/soc/microchip/microchip,polarfire-soc-sys-controller.yaml#"
+$id: "http://devicetree.org/schemas/soc/microchip/microchip,mpfs-sys-controller.yaml#"
 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
 
 title: Microchip PolarFire SoC (MPFS) MSS (microprocessor subsystem) system controller
@@ -19,7 +19,7 @@ properties:
     maxItems: 1
 
   compatible:
-    const: microchip,polarfire-soc-sys-controller
+    const: microchip,mpfs-sys-controller
 
 required:
   - compatible
@@ -30,6 +30,6 @@ additionalProperties: false
 examples:
   - |
     syscontroller: syscontroller {
-      compatible = "microchip,polarfire-soc-sys-controller";
+      compatible = "microchip,mpfs-sys-controller";
       mboxes = <&mbox 0>;
     };
Signature · 1 line
2.35.1
author maintainer
#2 lore raw

PATCH v7 2/11 dt-bindings: soc/microchip: add info about services to mpfs sysctrl

In reply to [email protected]

From: Conor Dooley <[email protected]>

The services actually provided by the system controller are not documented so add some words about what the system controller can actually do. Add a link to the oneline documentation with the specific details of each individual service.
Also, drop the unneeded label from the example.

---
 .../soc/microchip/microchip,mpfs-sys-controller.yaml  | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml +8 -3
index f699772fedf3..b0dae51e1d42 100644
@@ -10,9 +10,14 @@ maintainers:
   - Conor Dooley <[email protected]>
 
 description: |
-  The PolarFire SoC system controller is communicated with via a mailbox.
-  This document describes the bindings for the client portion of that mailbox.
+  PolarFire SoC devices include a microcontroller acting as the system controller,
+  which provides "services" to the main processor and to the FPGA fabric. These
+  services include hardware rng, reprogramming of the FPGA and verfification of the
+  eNVM contents etc. More information on these services can be found online, at
+  https://onlinedocs.microchip.com/pr/GUID-1409CF11-8EF9-4C24-A94E-70979A688632-en-US-1/index.html
 
+  Communication with the system controller is done via a mailbox, of which the client
+  portion is documented here.
 
 properties:
   mboxes:
@@ -29,7 +34,7 @@ additionalProperties: false
 
 examples:
   - |
-    syscontroller: syscontroller {
+    syscontroller {
       compatible = "microchip,mpfs-sys-controller";
       mboxes = <&mbox 0>;
     };
Signature · 1 line
2.35.1
author maintainer
#3 lore raw

Re: [PATCH v7 02/11] dt-bindings: soc/microchip: add info about services to mpfs sysctrl

Hey Rob,
I removed the children and added a link to the documentation for the services. Could you take a look and see if this version meets your approval? Thanks.
Conor

Quoted 43 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

The services actually provided by the system controller are not documented so add some words about what the system controller can actually do. Add a link to the oneline documentation with the specific details of each individual service.
Also, drop the unneeded label from the example.

---
  .../soc/microchip/microchip,mpfs-sys-controller.yaml  | 11 ++++++++---
  1 file changed, 8 insertions(+), 3 deletions(-)
Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml +8 -3
index f699772fedf3..b0dae51e1d42 100644
@@ -10,9 +10,14 @@ maintainers:
    - Conor Dooley <[email protected]>
 
  description: |
-  The PolarFire SoC system controller is communicated with via a mailbox.
-  This document describes the bindings for the client portion of that mailbox.
+  PolarFire SoC devices include a microcontroller acting as the system controller,
+  which provides "services" to the main processor and to the FPGA fabric. These
+  services include hardware rng, reprogramming of the FPGA and verfification of the
+  eNVM contents etc. More information on these services can be found online, at
+  https://onlinedocs.microchip.com/pr/GUID-1409CF11-8EF9-4C24-A94E-70979A688632-en-US-1/index.html
 
+  Communication with the system controller is done via a mailbox, of which the client
+  portion is documented here.
 
  properties:
    mboxes:
@@ -29,7 +34,7 @@ additionalProperties: false
 
  examples:
    - |
-    syscontroller: syscontroller {
+    syscontroller {
        compatible = "microchip,mpfs-sys-controller";
        mboxes = <&mbox 0>;
      };
maintainer Reviewed-by on v7 2/11
#4 lore raw

Re: [PATCH v7 02/11] dt-bindings: soc/microchip: add info about services to mpfs sysctrl

In reply to [email protected]
Quoted 8 lines · On Mon, 14 Feb 2022 13:58:32 +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

The services actually provided by the system controller are not documented so add some words about what the system controller can actually do. Add a link to the oneline documentation with the specific details of each individual service.
Also, drop the unneeded label from the example.

Quoted 5 lines
---
 .../soc/microchip/microchip,mpfs-sys-controller.yaml  | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
author maintainer
#5 lore raw

PATCH v7 3/11 dt-bindings: rtc: add bindings for microchip mpfs rtc

In reply to [email protected]

From: Conor Dooley <[email protected]>

Add device tree bindings for the real time clock on the Microchip PolarFire SoC.

---
 .../bindings/rtc/microchip,mfps-rtc.yaml      | 58 +++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +58 -0
new file mode 100644
index 000000000000..a2e984ea3553
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
+
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
+
+allOf:
+  - $ref: rtc.yaml#
+
+maintainers:
+  - Daire McNamara <[email protected]>
+  - Lewis Hanly <[email protected]>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mpfs-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: |
+          RTC_WAKEUP interrupt
+      - description: |
+          RTC_MATCH, asserted when the content of the Alarm register is equal
+          to that of the RTC's count register.
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    rtc@20124000 {
+        compatible = "microchip,mpfs-rtc";
+        reg = <0x20124000 0x1000>;
+        clocks = <&clkcfg 21>;
+        clock-names = "rtc";
+        interrupts = <80>, <81>;
+    };
+...
Signature · 1 line
2.35.1
author maintainer
#6 lore raw

Re: [PATCH v7 03/11] dt-bindings: rtc: add bindings for microchip mpfs rtc

Hi Alessandro, Alexandre,
If one of you could take a look at this, that'd be great. Thanks,
Conor.

Quoted 78 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the real time clock on the Microchip PolarFire SoC.

---
  .../bindings/rtc/microchip,mfps-rtc.yaml      | 58 +++++++++++++++++++
  1 file changed, 58 insertions(+)

create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +58 -0
new file mode 100644
index 000000000000..a2e984ea3553
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
+
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
+
+allOf:
+  - $ref: rtc.yaml#
+
+maintainers:
+  - Daire McNamara <[email protected]>
+  - Lewis Hanly <[email protected]>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mpfs-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: |
+          RTC_WAKEUP interrupt
+      - description: |
+          RTC_MATCH, asserted when the content of the Alarm register is equal
+          to that of the RTC's count register.
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    rtc@20124000 {
+        compatible = "microchip,mpfs-rtc";
+        reg = <0x20124000 0x1000>;
+        clocks = <&clkcfg 21>;
+        clock-names = "rtc";
+        interrupts = <80>, <81>;
+    };
+...
#7 lore raw

Re: [PATCH v7 03/11] dt-bindings: rtc: add bindings for microchip mpfs rtc

Quoted 2 lines · On 23/02/2022 07:41:27+0000, [email protected] wrote:

Hi Alessandro, Alexandre,
If one of you could take a look at this, that'd be great.

I actually expected someone else to apply this, what is your plan?

Quoted 83 lines

Thanks,
Conor.

Quoted 78 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the real time clock on the Microchip PolarFire SoC.

---
  .../bindings/rtc/microchip,mfps-rtc.yaml      | 58 +++++++++++++++++++
  1 file changed, 58 insertions(+)

create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +58 -0
new file mode 100644
index 000000000000..a2e984ea3553
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
+
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
+
+allOf:
+  - $ref: rtc.yaml#
+
+maintainers:
+  - Daire McNamara <[email protected]>
+  - Lewis Hanly <[email protected]>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mpfs-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: |
+          RTC_WAKEUP interrupt
+      - description: |
+          RTC_MATCH, asserted when the content of the Alarm register is equal
+          to that of the RTC's count register.
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    rtc@20124000 {
+        compatible = "microchip,mpfs-rtc";
+        reg = <0x20124000 0x1000>;
+        clocks = <&clkcfg 21>;
+        clock-names = "rtc";
+        interrupts = <80>, <81>;
+    };
+...
Signature · 3 lines
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
author maintainer
#8 lore raw

Re: [PATCH v7 03/11] dt-bindings: rtc: add bindings for microchip mpfs rtc

Quoted 7 lines · Alexandre Belloni

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

Quoted 2 lines · On 23/02/2022 07:41:27+0000, [email protected] wrote:

Hi Alessandro, Alexandre,
If one of you could take a look at this, that'd be great.

I actually expected someone else to apply this, what is your plan?

I was going to ask Palmer to take the series via riscv. Since I have Rob's R-b, I was just looking for a subsystem maintainer ack/R-b before actually asking him.

Thanks,
Conor.

Quoted 89 lines
Quoted 75 lines

Thanks,
Conor.

Quoted 70 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the real time clock on the Microchip PolarFire SoC.

---
   .../bindings/rtc/microchip,mfps-rtc.yaml      | 58 +++++++++++++++++++
   1 file changed, 58 insertions(+)

create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +50 -0
new file mode 100644
index 000000000000..a2e984ea3553
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
+
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
+
+allOf:
+  - $ref: rtc.yaml#
+
+maintainers:
+  - Daire McNamara <[email protected]>
+  - Lewis Hanly <[email protected]>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mpfs-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: |
+          RTC_WAKEUP interrupt
+      - description: |
+          RTC_MATCH, asserted when the content of the Alarm register is equal
+          to that of the RTC's count register.
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
Quoted 9 lines

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml line 58

Quoted 8 lines
Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +8 -0
+    rtc@20124000 {
+        compatible = "microchip,mpfs-rtc";
+        reg = <0x20124000 0x1000>;
+        clocks = <&clkcfg 21>;
+        clock-names = "rtc";
+        interrupts = <80>, <81>;
+    };
+...

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

maintainer Acked-by
#9 lore raw

Re: [PATCH v7 03/11] dt-bindings: rtc: add bindings for microchip mpfs rtc

Quoted 4 lines · On 23/02/2022 15:25:00+0000, [email protected] wrote:
Quoted 3 lines · Alexandre Belloni

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On 23/02/2022 07:41:27+0000, [email protected] wrote:

Quoted 9 lines
Quoted 4 lines
Quoted 2 lines

Hi Alessandro, Alexandre,
If one of you could take a look at this, that'd be great.

I actually expected someone else to apply this, what is your plan?

I was going to ask Palmer to take the series via riscv. Since I have Rob's R-b, I was just looking for a subsystem maintainer ack/R-b before actually asking him.

Rob's review is enough for a DT binding, no need to wait for me. but FWIW:

Quoted 93 lines

Thanks,
Conor.

Quoted 89 lines
Quoted 75 lines

Thanks,
Conor.

Quoted 70 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the real time clock on the Microchip PolarFire SoC.

---
   .../bindings/rtc/microchip,mfps-rtc.yaml      | 58 +++++++++++++++++++
   1 file changed, 58 insertions(+)

create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +50 -0
new file mode 100644
index 000000000000..a2e984ea3553
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
+
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
+
+allOf:
+  - $ref: rtc.yaml#
+
+maintainers:
+  - Daire McNamara <[email protected]>
+  - Lewis Hanly <[email protected]>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mpfs-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: |
+          RTC_WAKEUP interrupt
+      - description: |
+          RTC_MATCH, asserted when the content of the Alarm register is equal
+          to that of the RTC's count register.
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
Quoted 9 lines

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml line 58

Quoted 8 lines
Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +8 -0
+    rtc@20124000 {
+        compatible = "microchip,mpfs-rtc";
+        reg = <0x20124000 0x1000>;
+        clocks = <&clkcfg 21>;
+        clock-names = "rtc";
+        interrupts = <80>, <81>;
+    };
+...

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Signature · 3 lines
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#10 lore raw

Re: [PATCH v7 03/11] dt-bindings: rtc: add bindings for microchip mpfs rtc

Quoted 15 lines · Alexandre Belloni
Quoted 4 lines · On 23/02/2022 15:25:00+0000, [email protected] wrote:
Quoted 3 lines · Alexandre Belloni

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

On 23/02/2022 07:41:27+0000, [email protected] wrote:

Quoted 9 lines
Quoted 4 lines
Quoted 2 lines

Hi Alessandro, Alexandre,
If one of you could take a look at this, that'd be great.

I actually expected someone else to apply this, what is your plan?

I was going to ask Palmer to take the series via riscv. Since I have Rob's R-b, I was just looking for a subsystem maintainer ack/R-b before actually asking him.

Quoted 4 lines

Rob's review is enough for a DT binding, no need to wait for me. but FWIW:

Great, thanks.

Quoted 96 lines
Quoted 95 lines

Thanks,
Conor.

Quoted 89 lines
Quoted 75 lines

Thanks,
Conor.

Quoted 70 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the real time clock on the Microchip PolarFire SoC.

---
    .../bindings/rtc/microchip,mfps-rtc.yaml      | 58 +++++++++++++++++++
    1 file changed, 58 insertions(+)

create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +50 -0
new file mode 100644
index 000000000000..a2e984ea3553
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
+
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
+
+allOf:
+  - $ref: rtc.yaml#
+
+maintainers:
+  - Daire McNamara <[email protected]>
+  - Lewis Hanly <[email protected]>
+
+properties:
+  compatible:
+    enum:
+      - microchip,mpfs-rtc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: |
+          RTC_WAKEUP interrupt
+      - description: |
+          RTC_MATCH, asserted when the content of the Alarm register is equal
+          to that of the RTC's count register.
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: rtc
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
Quoted 9 lines

Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml line 58

Quoted 8 lines
Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml new file +8 -0
+    rtc@20124000 {
+        compatible = "microchip,mpfs-rtc";
+        reg = <0x20124000 0x1000>;
+        clocks = <&clkcfg 21>;
+        clock-names = "rtc";
+        interrupts = <80>, <81>;
+    };
+...

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

author maintainer
#11 lore raw

PATCH v7 4/11 dt-bindings: gpio: add bindings for microchip mpfs gpio

In reply to [email protected]

From: Conor Dooley <[email protected]>

Add device tree bindings for the gpio controller on the Microchip PolarFire SoC.

---
 .../bindings/gpio/microchip,mpfs-gpio.yaml    | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml new file +79 -0
new file mode 100644
index 000000000000..110651eafa70
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/microchip,mpfs-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip MPFS GPIO Controller Device Tree Bindings
+
+maintainers:
+  - Conor Dooley <[email protected]>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - microchip,mpfs-gpio
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Interrupt mapping, one per GPIO. Maximum 32 GPIOs.
+    minItems: 1
+    maxItems: 32
+
+  interrupt-controller: true
+
+  clocks:
+    maxItems: 1
+
+  "#gpio-cells":
+    const: 2
+
+  "#interrupt-cells":
+    const: 1
+
+  ngpios:
+    description:
+      The number of GPIOs available.
+    minimum: 1
+    maximum: 32
+    default: 32
+
+  gpio-controller: true
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#interrupt-cells"
+  - interrupt-controller
+  - "#gpio-cells"
+  - gpio-controller
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio@20122000 {
+        compatible = "microchip,mpfs-gpio";
+        reg = <0x20122000 0x1000>;
+        clocks = <&clkcfg 25>;
+        interrupt-parent = <&plic>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+        interrupts = <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>,
+                     <53>, <53>, <53>, <53>;
+    };
+...
Signature · 1 line
2.35.1
author maintainer
#12 lore raw

PATCH v7 5/11 dt-bindings: pwm: add microchip corepwm binding

In reply to [email protected]

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

---
 .../bindings/pwm/microchip,corepwm.yaml       | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml new file +81 -0
new file mode 100644
index 000000000000..a7fae1772a81
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/microchip,corepwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip IP corePWM controller bindings
+
+maintainers:
+  - Conor Dooley <[email protected]>
+
+description: |
+  corePWM is an 16 channel pulse width modulator FPGA IP
+
+  https://www.microsemi.com/existing-parts/parts/152118
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: microchip,corepwm-rtl-v4
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 2
+
+  microchip,sync-update-mask:
+    description: |
+      Depending on how the IP is instantiated, there are two modes of operation.
+      In synchronous mode, all channels are updated at the beginning of the PWM period,
+      and in asynchronous mode updates happen as the control registers are written.
+      A 16 bit wide "SHADOW_REG_EN" parameter of the IP core controls whether synchronous
+      mode is possible for each channel, and is set by the bitstream programmed to the
+      FPGA. If the IP core is instantiated with SHADOW_REG_ENx=1, both registers that
+      control the duty cycle for channel x have a second "shadow"/buffer reg synthesised.
+      At runtime a bit wide register exposed to APB can be used to toggle on/off
+      synchronised mode for all channels it has been synthesised for.
+      Each bit of "microchip,sync-update-mask" corresponds to a PWM channel & represents
+      whether synchronous mode is possible for the PWM channel.
+
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0
+
+  microchip,dac-mode-mask:
+    description: |
+      Optional, per-channel Low Ripple DAC mode is possible on this IP core. It creates
+      a minimum period pulse train whose High/Low average is that of the chosen duty
+      cycle. This "DAC" will have far better bandwidth and ripple performance than the
+      standard PWM algorithm can achieve. A 16 bit DAC_MODE module parameter of the IP
+      core, set at instantiation and by the bitstream programmed to the FPGA, determines
+      whether a given channel operates in regular PWM or DAC mode.
+      Each bit corresponds to a PWM channel & represents whether DAC mode is enabled
+      for that channel.
+
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    pwm@41000000 {
+      compatible = "microchip,corepwm-rtl-v4";
+      microchip,sync-update-mask = /bits/ 32 <0>;
+      clocks = <&clkcfg 30>;
+      reg = <0x41000000 0xF0>;
+      #pwm-cells = <2>;
+    };
Signature · 1 line
2.35.1
author maintainer
#13 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

Hey Uwe,
Could you take a look at this version & see if the descriptions are easier to understand?
Thanks,
Conor

Quoted 100 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

---
  .../bindings/pwm/microchip,corepwm.yaml       | 81 +++++++++++++++++++
  1 file changed, 81 insertions(+)

create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml

Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml new file +81 -0
new file mode 100644
index 000000000000..a7fae1772a81
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/microchip,corepwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip IP corePWM controller bindings
+
+maintainers:
+  - Conor Dooley <[email protected]>
+
+description: |
+  corePWM is an 16 channel pulse width modulator FPGA IP
+
+  https://www.microsemi.com/existing-parts/parts/152118
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: microchip,corepwm-rtl-v4
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 2
+
+  microchip,sync-update-mask:
+    description: |
+      Depending on how the IP is instantiated, there are two modes of operation.
+      In synchronous mode, all channels are updated at the beginning of the PWM period,
+      and in asynchronous mode updates happen as the control registers are written.
+      A 16 bit wide "SHADOW_REG_EN" parameter of the IP core controls whether synchronous
+      mode is possible for each channel, and is set by the bitstream programmed to the
+      FPGA. If the IP core is instantiated with SHADOW_REG_ENx=1, both registers that
+      control the duty cycle for channel x have a second "shadow"/buffer reg synthesised.
+      At runtime a bit wide register exposed to APB can be used to toggle on/off
+      synchronised mode for all channels it has been synthesised for.
+      Each bit of "microchip,sync-update-mask" corresponds to a PWM channel & represents
+      whether synchronous mode is possible for the PWM channel.
+
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0
+
+  microchip,dac-mode-mask:
+    description: |
+      Optional, per-channel Low Ripple DAC mode is possible on this IP core. It creates
+      a minimum period pulse train whose High/Low average is that of the chosen duty
+      cycle. This "DAC" will have far better bandwidth and ripple performance than the
+      standard PWM algorithm can achieve. A 16 bit DAC_MODE module parameter of the IP
+      core, set at instantiation and by the bitstream programmed to the FPGA, determines
+      whether a given channel operates in regular PWM or DAC mode.
+      Each bit corresponds to a PWM channel & represents whether DAC mode is enabled
+      for that channel.
+
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    pwm@41000000 {
+      compatible = "microchip,corepwm-rtl-v4";
+      microchip,sync-update-mask = /bits/ 32 <0>;
+      clocks = <&clkcfg 30>;
+      reg = <0x41000000 0xF0>;
+      #pwm-cells = <2>;
+    };
Acked-by on v7 5/11
#14 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

In reply to [email protected]
Quoted 8 lines · On Mon, Feb 14, 2022 at 01:58:35PM +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

I like it:

nitpick: Put your S-o-b last in the commit log. (This doesn't justify a resend IMHO)

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |
#15 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

Quoted 10 lines · Uwe Kleine-König
Quoted 8 lines · On Mon, Feb 14, 2022 at 01:58:35PM +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

Quoted 6 lines

I like it:

nitpick: Put your S-o-b last in the commit log. (This doesn't justify a resend IMHO)

It should be the opposite - the first. First author signs the patch, then comes review and finally an ack. Putting SoB at then suggests that tags were accumulated before sending patch, out of mailing list.

Best regards,
Krzysztof

#16 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

Quoted 13 lines · Krzysztof Kozlowski
Quoted 12 lines · Uwe Kleine-König
Quoted 8 lines · On Mon, Feb 14, 2022 at 01:58:35PM +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

I like it:

Quoted 8 lines
Quoted 4 lines

nitpick: Put your S-o-b last in the commit log. (This doesn't justify a resend IMHO)

It should be the opposite - the first. First author signs the patch, then comes review and finally an ack. Putting SoB at then suggests that tags were accumulated before sending patch, out of mailing list.

well, or in an earlier revision of this patch as is the case here. One of the ideas of S-o-b is that the order shows the flow of the patch states and if this patch ends in git with:

I'd expect that Backed-by was added by Peter, not Conor. (Modified the tags on purpose to not interfere with b4's tag pickup, I guess you humans still get the point.)

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |
author maintainer
#17 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

Quoted 27 lines · Uwe Kleine-König
Quoted 13 lines · Krzysztof Kozlowski
Quoted 12 lines · Uwe Kleine-König
Quoted 8 lines · On Mon, Feb 14, 2022 at 01:58:35PM +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

I like it:

Quoted 8 lines
Quoted 4 lines

nitpick: Put your S-o-b last in the commit log. (This doesn't justify a resend IMHO)

It should be the opposite - the first. First author signs the patch, then comes review and finally an ack. Putting SoB at then suggests that tags were accumulated before sending patch, out of mailing list.

well, or in an earlier revision of this patch as is the case here. One of the ideas of S-o-b is that the order shows the flow of the patch states and if this patch ends in git with:

Quoted 8 lines

I'd expect that Backed-by was added by Peter, not Conor. (Modified the tags on purpose to not interfere with b4's tag pickup, I guess you humans still get the point.)

I had put the acks after the S-o-B for patches I hadn't changed since the ack, but I think that may have been a misinterpretation of what was meant by Rob when he said tags should be in chronological order. Won't do it this way in the future.

If the remaining patch gets a maintainer ack, the order will be fine I guess since it'll be Palmer taking it anyway. If there's a v8, I will fix the order.

Thanks,
Conor

#18 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

In reply to Uwe Kleine-König
Quoted 27 lines · Uwe Kleine-König
Quoted 13 lines · Krzysztof Kozlowski
Quoted 12 lines · Uwe Kleine-König
Quoted 8 lines · On Mon, Feb 14, 2022 at 01:58:35PM +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

I like it:

Quoted 8 lines
Quoted 4 lines

nitpick: Put your S-o-b last in the commit log. (This doesn't justify a resend IMHO)

It should be the opposite - the first. First author signs the patch, then comes review and finally an ack. Putting SoB at then suggests that tags were accumulated before sending patch, out of mailing list.

well, or in an earlier revision of this patch as is the case here. One of the ideas of S-o-b is that the order shows the flow of the patch states and if this patch ends in git with:

Quoted 8 lines

I'd expect that Backed-by was added by Peter, not Conor. (Modified the tags on purpose to not interfere with b4's tag pickup, I guess you humans still get the point.)

I tend to like *-by tags to appear chronologically.

  Suggested              (suggested-by)
  Authored               (signed-off-by)
  Co-Authored            (signed-off-by/co-developed-by)
  Reviewed/Acked/Tested  (reviewed-by/acked-by/tested-by)
  Committed              (signed-off-by)
Signature · 4 lines
Lee Jones [李琼斯]
Principal Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
Acked-by on v7 5/11
#19 lore raw

Re: [PATCH v7 05/11] dt-bindings: pwm: add microchip corepwm binding

In reply to [email protected]
Quoted 5 lines · On Mon, Feb 14, 2022 at 01:58:35PM +0000, [email protected] wrote:

From: Conor Dooley <[email protected]>

Add device tree bindings for the Microchip fpga fabric based "core" PWM controller.

Quoted 7 lines
---
 .../bindings/pwm/microchip,corepwm.yaml       | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml

Fine with me to go through the RISC-V tree:

author maintainer
#20 lore raw

PATCH v7 6/11 riscv: dts: microchip: use clk defines for icicle kit

In reply to [email protected]

From: Conor Dooley <[email protected]>

Update the Microchip Icicle kit device tree by replacing clock related magic numbers with their defined counterparts.

---
 .../microchip/microchip-mpfs-icicle-kit.dts   |  2 +-
 .../boot/dts/microchip/microchip-mpfs.dtsi    | 25 ++++++++++---------
 2 files changed, 14 insertions(+), 13 deletions(-)
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +1 -1
index 0c748ae1b006..6d19ba196f12 100644
@@ -31,7 +31,7 @@ cpus {
 	memory@80000000 {
 		device_type = "memory";
 		reg = <0x0 0x80000000 0x0 0x40000000>;
-		clocks = <&clkcfg 26>;
+		clocks = <&clkcfg CLK_DDRC>;
 	};
 };
 
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +13 -12
index 869aaf0d5c06..717e39b30a15 100644
@@ -2,6 +2,7 @@
 /* Copyright (c) 2020 Microchip Technology Inc */
 
 /dts-v1/;
+#include "dt-bindings/clock/microchip,mpfs-clock.h"
 
 / {
 	#address-cells = <2>;
@@ -14,7 +15,6 @@ cpus {
 		#size-cells = <0>;
 
 		cpu@0 {
-			clock-frequency = <0>;
 			compatible = "sifive,e51", "sifive,rocket0", "riscv";
 			device_type = "cpu";
 			i-cache-block-size = <64>;
@@ -22,6 +22,7 @@ cpu@0 {
 			i-cache-size = <16384>;
 			reg = <0>;
 			riscv,isa = "rv64imac";
+			clocks = <&clkcfg CLK_CPU>;
 			status = "disabled";
 
 			cpu0_intc: interrupt-controller {
@@ -32,7 +33,6 @@ cpu0_intc: interrupt-controller {
 		};
 
 		cpu@1 {
-			clock-frequency = <0>;
 			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
 			d-cache-block-size = <64>;
 			d-cache-sets = <64>;
@@ -48,6 +48,7 @@ cpu@1 {
 			mmu-type = "riscv,sv39";
 			reg = <1>;
 			riscv,isa = "rv64imafdc";
+			clocks = <&clkcfg CLK_CPU>;
 			tlb-split;
 			status = "okay";
 
@@ -59,7 +60,6 @@ cpu1_intc: interrupt-controller {
 		};
 
 		cpu@2 {
-			clock-frequency = <0>;
 			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
 			d-cache-block-size = <64>;
 			d-cache-sets = <64>;
@@ -75,6 +75,7 @@ cpu@2 {
 			mmu-type = "riscv,sv39";
 			reg = <2>;
 			riscv,isa = "rv64imafdc";
+			clocks = <&clkcfg CLK_CPU>;
 			tlb-split;
 			status = "okay";
 
@@ -86,7 +87,6 @@ cpu2_intc: interrupt-controller {
 		};
 
 		cpu@3 {
-			clock-frequency = <0>;
 			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
 			d-cache-block-size = <64>;
 			d-cache-sets = <64>;
@@ -102,6 +102,7 @@ cpu@3 {
 			mmu-type = "riscv,sv39";
 			reg = <3>;
 			riscv,isa = "rv64imafdc";
+			clocks = <&clkcfg CLK_CPU>;
 			tlb-split;
 			status = "okay";
 
@@ -113,7 +114,6 @@ cpu3_intc: interrupt-controller {
 		};
 
 		cpu@4 {
-			clock-frequency = <0>;
 			compatible = "sifive,u54-mc", "sifive,rocket0", "riscv";
 			d-cache-block-size = <64>;
 			d-cache-sets = <64>;
@@ -129,6 +129,7 @@ cpu@4 {
 			mmu-type = "riscv,sv39";
 			reg = <4>;
 			riscv,isa = "rv64imafdc";
+			clocks = <&clkcfg CLK_CPU>;
 			tlb-split;
 			status = "okay";
 			cpu4_intc: interrupt-controller {
@@ -210,7 +211,7 @@ serial0: serial@20000000 {
 			interrupt-parent = <&plic>;
 			interrupts = <90>;
 			current-speed = <115200>;
-			clocks = <&clkcfg 8>;
+			clocks = <&clkcfg CLK_MMUART0>;
 			status = "disabled";
 		};
 
@@ -222,7 +223,7 @@ serial1: serial@20100000 {
 			interrupt-parent = <&plic>;
 			interrupts = <91>;
 			current-speed = <115200>;
-			clocks = <&clkcfg 9>;
+			clocks = <&clkcfg CLK_MMUART1>;
 			status = "disabled";
 		};
 
@@ -234,7 +235,7 @@ serial2: serial@20102000 {
 			interrupt-parent = <&plic>;
 			interrupts = <92>;
 			current-speed = <115200>;
-			clocks = <&clkcfg 10>;
+			clocks = <&clkcfg CLK_MMUART2>;
 			status = "disabled";
 		};
 
@@ -246,7 +247,7 @@ serial3: serial@20104000 {
 			interrupt-parent = <&plic>;
 			interrupts = <93>;
 			current-speed = <115200>;
-			clocks = <&clkcfg 11>;
+			clocks = <&clkcfg CLK_MMUART3>;
 			status = "disabled";
 		};
 
@@ -256,7 +257,7 @@ mmc: mmc@20008000 {
 			reg = <0x0 0x20008000 0x0 0x1000>;
 			interrupt-parent = <&plic>;
 			interrupts = <88>, <89>;
-			clocks = <&clkcfg 6>;
+			clocks = <&clkcfg CLK_MMC>;
 			max-frequency = <200000000>;
 			status = "disabled";
 		};
@@ -267,7 +268,7 @@ emac0: ethernet@20110000 {
 			interrupt-parent = <&plic>;
 			interrupts = <64>, <65>, <66>, <67>;
 			local-mac-address = [00 00 00 00 00 00];
-			clocks = <&clkcfg 4>, <&clkcfg 2>;
+			clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>;
 			clock-names = "pclk", "hclk";
 			status = "disabled";
 			#address-cells = <1>;
@@ -280,7 +281,7 @@ emac1: ethernet@20112000 {
 			interrupt-parent = <&plic>;
 			interrupts = <70>, <71>, <72>, <73>;
 			local-mac-address = [00 00 00 00 00 00];
-			clocks = <&clkcfg 5>, <&clkcfg 2>;
+			clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>;
 			status = "disabled";
 			clock-names = "pclk", "hclk";
 			#address-cells = <1>;
Signature · 1 line
2.35.1
author maintainer
#21 lore raw

PATCH v7 7/11 riscv: dts: microchip: add fpga fabric section to icicle kit

In reply to [email protected]

From: Conor Dooley <[email protected]>

Split the device tree for the Microchip MPFS into two sections by adding microchip-mpfs-fabric.dtsi, which contains peripherals contained in the FPGA fabric.

---
 .../dts/microchip/microchip-mpfs-fabric.dtsi  | 25 +++++++++++++++++++
 .../microchip/microchip-mpfs-icicle-kit.dts   |  8 ++++++
 .../boot/dts/microchip/microchip-mpfs.dtsi    |  1 +
 3 files changed, 34 insertions(+)
 create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi
arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi new file +25 -0
new file mode 100644
index 000000000000..854320e17b28
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
+
+/ {
+	core_pwm0: pwm@41000000 {
+		compatible = "microchip,corepwm-rtl-v4";
+		reg = <0x0 0x41000000 0x0 0xF0>;
+		microchip,sync-update-mask = /bits/ 32 <0>;
+		#pwm-cells = <2>;
+		clocks = <&clkcfg CLK_FIC3>;
+		status = "disabled";
+	};
+
+	i2c2: i2c@44000000 {
+		compatible = "microchip,corei2c-rtl-v7";
+		reg = <0x0 0x44000000 0x0 0x1000>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		clocks = <&clkcfg CLK_FIC3>;
+		interrupt-parent = <&plic>;
+		interrupts = <122>;
+		clock-frequency = <100000>;
+		status = "disabled";
+	};
+};
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +8 -0
index 6d19ba196f12..ab803f71626a 100644
@@ -68,6 +68,10 @@ &mmc {
 	sd-uhs-sdr104;
 };
 
+&i2c2 {
+	status = "okay";
+};
+
 &emac0 {
 	phy-mode = "sgmii";
 	phy-handle = <&phy0>;
@@ -86,3 +90,7 @@ phy1: ethernet-phy@9 {
 		ti,fifo-depth = <0x01>;
 	};
 };
+
+&core_pwm0 {
+	status = "okay";
+};
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +1 -0
index 717e39b30a15..c7d73756c9b8 100644
@@ -3,6 +3,7 @@
 
 /dts-v1/;
 #include "dt-bindings/clock/microchip,mpfs-clock.h"
+#include "microchip-mpfs-fabric.dtsi"
 
 / {
 	#address-cells = <2>;
Signature · 7 lines
2.35.1


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
author maintainer
#22 lore raw

PATCH v7 8/11 riscv: dts: microchip: refactor icicle kit device tree

In reply to [email protected]

From: Conor Dooley <[email protected]>

Assorted minor changes to the MPFS/Icicle kit device tree:

- rename serial to mmuart to match microchip documentation
- move phy0 inside mac1 node to match phy configuration
- add labels where missing (cpus, cache controller)
- add missing address cells & interrupts to MACs

---
 .../microchip/microchip-mpfs-icicle-kit.dts   | 37 ++++++-----
 .../boot/dts/microchip/microchip-mpfs.dtsi    | 65 +++++++++----------
 2 files changed, 52 insertions(+), 50 deletions(-)
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +20 -17
index ab803f71626a..c51bd7cf500f 100644
@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/* Copyright (c) 2020 Microchip Technology Inc */
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
 
 /dts-v1/;
 
@@ -13,11 +13,11 @@ / {
 	compatible = "microchip,mpfs-icicle-kit", "microchip,mpfs";
 
 	aliases {
-		ethernet0 = &emac1;
-		serial0 = &serial0;
-		serial1 = &serial1;
-		serial2 = &serial2;
-		serial3 = &serial3;
+		ethernet0 = &mac1;
+		serial0 = &mmuart0;
+		serial1 = &mmuart1;
+		serial2 = &mmuart2;
+		serial3 = &mmuart3;
 	};
 
 	chosen {
@@ -39,19 +39,19 @@ &refclk {
 	clock-frequency = <600000000>;
 };
 
-&serial0 {
+&mmuart0 {
 	status = "okay";
 };
 
-&serial1 {
+&mmuart1 {
 	status = "okay";
 };
 
-&serial2 {
+&mmuart2 {
 	status = "okay";
 };
 
-&serial3 {
+&mmuart3 {
 	status = "okay";
 };
 
@@ -61,7 +61,10 @@ &mmc {
 	bus-width = <4>;
 	disable-wp;
 	cap-sd-highspeed;
+	cap-mmc-highspeed;
 	card-detect-delay = <200>;
+	mmc-ddr-1_8v;
+	mmc-hs200-1_8v;
 	sd-uhs-sdr12;
 	sd-uhs-sdr25;
 	sd-uhs-sdr50;
@@ -72,22 +75,22 @@ &i2c2 {
 	status = "okay";
 };
 
-&emac0 {
+&mac0 {
 	phy-mode = "sgmii";
 	phy-handle = <&phy0>;
-	phy0: ethernet-phy@8 {
-		reg = <8>;
-		ti,fifo-depth = <0x01>;
-	};
 };
 
-&emac1 {
+&mac1 {
 	status = "okay";
 	phy-mode = "sgmii";
 	phy-handle = <&phy1>;
 	phy1: ethernet-phy@9 {
 		reg = <9>;
-		ti,fifo-depth = <0x01>;
+		ti,fifo-depth = <0x1>;
+	};
+	phy0: ethernet-phy@8 {
+		reg = <8>;
+		ti,fifo-depth = <0x1>;
 	};
 };
 
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +32 -33

176 lines not on this page · raw message

Signature · 1 line
2.35.1
author maintainer
#23 lore raw

PATCH v7 9/11 riscv: dts: microchip: update peripherals in icicle kit device tree

In reply to [email protected]

From: Conor Dooley <[email protected]>

Assorted minor changes to the MPFS/Icicle kit device tree:

- enable mmuart4 instead of mmuart0
- remove sifive pdma
- split memory node to match updated fpga design
- move stdout path to serial1 to avoid collision with bootloader running on the e51

---
 .../microchip/microchip-mpfs-icicle-kit.dts   | 23 +++++++++++++------
 .../boot/dts/microchip/microchip-mpfs.dtsi    | 23 +++++++++++--------
 2 files changed, 29 insertions(+), 17 deletions(-)
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +16 -7
index c51bd7cf500f..dc5f351b10c4 100644
@@ -18,20 +18,29 @@ aliases {
 		serial1 = &mmuart1;
 		serial2 = &mmuart2;
 		serial3 = &mmuart3;
+		serial4 = &mmuart4;
 	};
 
 	chosen {
-		stdout-path = "serial0:115200n8";
+		stdout-path = "serial1:115200n8";
 	};
 
 	cpus {
 		timebase-frequency = <RTCCLK_FREQ>;
 	};
 
-	memory@80000000 {
+	ddrc_cache_lo: memory@80000000 {
 		device_type = "memory";
-		reg = <0x0 0x80000000 0x0 0x40000000>;
+		reg = <0x0 0x80000000 0x0 0x2e000000>;
 		clocks = <&clkcfg CLK_DDRC>;
+		status = "okay";
+	};
+
+	ddrc_cache_hi: memory@1000000000 {
+		device_type = "memory";
+		reg = <0x10 0x0 0x0 0x40000000>;
+		clocks = <&clkcfg CLK_DDRC>;
+		status = "okay";
 	};
 };
 
@@ -39,10 +48,6 @@ &refclk {
 	clock-frequency = <600000000>;
 };
 
-&mmuart0 {
-	status = "okay";
-};
-
 &mmuart1 {
 	status = "okay";
 };
@@ -55,6 +60,10 @@ &mmuart3 {
 	status = "okay";
 };
 
+&mmuart4 {
+	status = "okay";
+};
+
 &mmc {
 	status = "okay";
 
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +13 -10
index 62bd00092bcc..5e7aaaf42cde 100644
@@ -174,15 +174,6 @@ clint: clint@2000000 {
 					      <&cpu4_intc 3>, <&cpu4_intc 7>;
 		};
 
-		dma@3000000 {
-			compatible = "sifive,fu540-c000-pdma";
-			reg = <0x0 0x3000000 0x0 0x8000>;
-			interrupt-parent = <&plic>;
-			interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>,
-				     <30>;
-			#dma-cells = <1>;
-		};
-
 		plic: interrupt-controller@c000000 {
 			compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0";
 			reg = <0x0 0xc000000 0x0 0x4000000>;
@@ -213,7 +204,7 @@ mmuart0: serial@20000000 {
 			interrupts = <90>;
 			current-speed = <115200>;
 			clocks = <&clkcfg CLK_MMUART0>;
-			status = "disabled";
+			status = "disabled"; /* Reserved for the HSS */
 		};
 
 		mmuart1: serial@20100000 {
@@ -252,6 +243,18 @@ mmuart3: serial@20104000 {
 			status = "disabled";
 		};
 
+		mmuart4: serial@20106000 {
+			compatible = "ns16550a";
+			reg = <0x0 0x20106000 0x0 0x400>;
+			reg-io-width = <4>;
+			reg-shift = <2>;
+			interrupt-parent = <&plic>;
+			interrupts = <94>;
+			clocks = <&clkcfg CLK_MMUART4>;
+			current-speed = <115200>;
+			status = "disabled";
+		};
+
 		/* Common node entry for emmc/sd */
 		mmc: mmc@20008000 {
 			compatible = "microchip,mpfs-sd4hc", "cdns,sd4hc";
Signature · 1 line
2.35.1
author maintainer
#24 lore raw

PATCH v7 10/11 riscv: dts: microchip: add new peripherals to icicle kit device tree

In reply to [email protected]

From: Conor Dooley <[email protected]>

Add new peripherals to the MPFS, and enable them in the Icicle kit device tree:

2x SPI, QSPI, 3x GPIO, 2x I2C, Real Time Counter, PCIE controller, USB host & system controller.

---
 .../microchip/microchip-mpfs-icicle-kit.dts   |  53 ++++++
 .../boot/dts/microchip/microchip-mpfs.dtsi    | 160 ++++++++++++++++++
 2 files changed, 213 insertions(+)
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +53 -0
index dc5f351b10c4..cd2fe80fa81a 100644
@@ -80,6 +80,26 @@ &mmc {
 	sd-uhs-sdr104;
 };
 
+&spi0 {
+	status = "okay";
+};
+
+&spi1 {
+	status = "okay";
+};
+
+&qspi {
+	status = "okay";
+};
+
+&i2c0 {
+	status = "okay";
+};
+
+&i2c1 {
+	status = "okay";
+};
+
 &i2c2 {
 	status = "okay";
 };
@@ -103,6 +123,39 @@ phy0: ethernet-phy@8 {
 	};
 };
 
+&gpio2 {
+	interrupts = <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>,
+		     <53>, <53>, <53>, <53>;
+	status = "okay";
+};
+
+&rtc {
+	status = "okay";
+};
+
+&usb {
+	status = "okay";
+	dr_mode = "host";
+};
+
+&mbox {
+	status = "okay";
+};
+
+&syscontroller {
+	status = "okay";
+};
+
+&pcie {
+	status = "okay";
+};
+
 &core_pwm0 {
 	status = "okay";
 };
arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +160 -0

171 lines not on this page · raw message

Signature · 7 lines
2.35.1


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
author maintainer
#25 lore raw

PATCH v7 11/11 MAINTAINERS: update riscv/microchip entry

In reply to [email protected]

From: Conor Dooley <[email protected]>

Update the RISC-V/Microchip entry by adding the microchip dts directory and myself as maintainer

---
 MAINTAINERS | 2 ++
 1 file changed, 2 insertions(+)
MAINTAINERS +2 -0
index ea3e6c914384..779a550dc95b 100644
@@ -16575,8 +16575,10 @@ K:	riscv
 
 RISC-V/MICROCHIP POLARFIRE SOC SUPPORT
 M:	Lewis Hanly <[email protected]>
+M:	Conor Dooley <[email protected]>
 L:	[email protected]
 S:	Supported
+F:	arch/riscv/boot/dts/microchip/
 F:	drivers/mailbox/mailbox-mpfs.c
 F:	drivers/soc/microchip/
 F:	include/soc/microchip/mpfs.h
Signature · 1 line
2.35.1
#26 lore raw
In reply to [email protected]
Quoted 17 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

This series updates the Microchip Icicle Kit device tree by adding a host of peripherals, and some updates to the memory map. In addition, the device tree has been split into a third part, which contains "soft" peripherals that are in the fpga fabric.

Several of the entries are for peripherals that have not get had their drivers upstreamed, so in those cases the dt bindings are included where appropriate in order to avoid the many "DT compatible string <x> appears un-documented" errors.

Depends on mpfs clock driver binding (on clk/next) to provide dt-bindings/clock/microchip,mpfs-clock.h for the device tree and on the other changes to the icicle/mpfs device tree from geert that are already in linux/riscv/for-next.

Quoted 5 lines

Additionally, the interrupt-extended warnings on the plic/clint are cleared by [1] & [2].

[1] https://lore.kernel.org/linux-riscv/[email protected]/
[2] https://lore.kernel.org/linux-riscv/[email protected]/

Hey Palmer,

dt-bindings should be set now, so if you're still happy to take the series via riscv, that'd be great. i2c, spi & usb patches ended going via the sub-system trees (and have been dropped from the series), in case those generate warnings for you.

Thanks,
Conor.

Quoted 79 lines

Changes from v6:
- Dropped i2c patch, as its in i2c-next
- Added ack on gpio, reviewed-by on rtc
- Dropped child nodes from sysctrl binding entirely, added a link to the online documenation for the services the system controller can provide
- Dropped the #pwm-cells and replaced with a ref, a la Krzysztof's series

Changes from v5:
- reworded the descriptions in the pwm binding to (hopefully) add clarity
- added -mask to the custom properties and made them 32 bit
- renamed the i2c binding to corei2c, since it is not mpfs specific
- removed the child nodes of the system controller in example/dts & will create them in the driver.
@Rob, I assume keeping them documented is the correct thing to do?
- removed the dependancy on the clock binding from the examples
- reformatted rtc interrupts as per Rob's suggestion

Changes from v4:
- dont include icicle_kit_defconfig, accidentally added in v3
- drop prescaler from mpfs-rtc & calculate the value instead
- use corei2c as a fallback device for mpfs-i2c
- drop spi dt-binding (on spi-next)
commit 2da187304e556ac59cf2dacb323cc78ded988169
- drop usb dt-binding (on usb-next)

Changes from v3:
- drop "mailbox: change mailbox-mpfs compatible string", already upstream:
commit f10b1fc0161cd99e ("mailbox: change mailbox-mpfs compatible string")
- fix copy paste error in microchip,mpfs-mailbox dt-binding
- remove whitespace in syscontroller dt entry

Changes from v2:
- dropped plic int header & corresponding defines in dts{,i}
- use $ref to drmode in mpfs-musb binding
- split changes to dts{,i} again: functional changes to existing elements now are in a new patch
- drop num-cs property in mpfs-spi binding
- dont make the system controller a simple-mfd
- move the separate bindings for rng/generic system services into the system controller binding
- added an instance corei2c as i2c2 in the fabric dtsi
- add version numbering to corepwm and corei2c compat string (-rtl-vN)

Conor Dooley (11):
dt-bindings: soc/microchip: update syscontroller compatibles
dt-bindings: soc/microchip: add info about services to mpfs sysctrl
dt-bindings: rtc: add bindings for microchip mpfs rtc
dt-bindings: gpio: add bindings for microchip mpfs gpio
dt-bindings: pwm: add microchip corepwm binding
riscv: dts: microchip: use clk defines for icicle kit
riscv: dts: microchip: add fpga fabric section to icicle kit
riscv: dts: microchip: refactor icicle kit device tree
riscv: dts: microchip: update peripherals in icicle kit device tree
riscv: dts: microchip: add new peripherals to icicle kit device tree
MAINTAINERS: update riscv/microchip entry

  .../bindings/gpio/microchip,mpfs-gpio.yaml    |  79 ++++++
  ...ilbox.yaml => microchip,mpfs-mailbox.yaml} |   6 +-
  .../bindings/pwm/microchip,corepwm.yaml       |  81 ++++++
  .../bindings/rtc/microchip,mfps-rtc.yaml      |  58 ++++
  .../microchip,mpfs-sys-controller.yaml        |  40 +++
  ...icrochip,polarfire-soc-sys-controller.yaml |  35 ---
  MAINTAINERS                                   |   2 +
  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  25 ++
  .../microchip/microchip-mpfs-icicle-kit.dts   | 115 ++++++--
  .../boot/dts/microchip/microchip-mpfs.dtsi    | 254 ++++++++++++++----
  10 files changed, 591 insertions(+), 104 deletions(-)

create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%) create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml delete mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi

maintainer
#27 lore raw
Quoted 13 lines · On Wed, 23 Feb 2022 12:48:16 PST (-0800), [email protected] wrote:
Quoted 12 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

This series updates the Microchip Icicle Kit device tree by adding a host of peripherals, and some updates to the memory map. In addition, the device tree has been split into a third part, which contains "soft" peripherals that are in the fpga fabric.

Several of the entries are for peripherals that have not get had their drivers upstreamed, so in those cases the dt bindings are included where appropriate in order to avoid the many "DT compatible string <x> appears un-documented" errors.

Quoted 4 lines
Quoted 4 lines

Depends on mpfs clock driver binding (on clk/next) to provide dt-bindings/clock/microchip,mpfs-clock.h for the device tree and on the other changes to the icicle/mpfs device tree from geert that are already in linux/riscv/for-next.

So that's causing this to not build, as I can't build without the header. I went ahead and put these on top of that patch, resulting in

* 48e8641c2bf0 - (HEAD -> riscv-microchip, palmer/riscv-microchip) MAINTAINERS: update riscv/microchip entry (2 minutes ago) <Conor Dooley>
* 528a5b1f2556 - riscv: dts: microchip: add new peripherals to icicle kit device tree (2 minutes ago) <Conor Dooley>
* 5b28df37d311 - riscv: dts: microchip: update peripherals in icicle kit device tree (2 minutes ago) <Conor Dooley>
* c5094f371008 - riscv: dts: microchip: refactor icicle kit device tree (2 minutes ago) <Conor Dooley>
* 72560c6559b8 - riscv: dts: microchip: add fpga fabric section to icicle kit (2 minutes ago) <Conor Dooley>
* 6546f920868e - riscv: dts: microchip: use clk defines for icicle kit (2 minutes ago) <Conor Dooley>
* df77f7735786 - dt-bindings: pwm: add microchip corepwm binding (2 minutes ago) <Conor Dooley>
* 735806d8a68e - dt-bindings: gpio: add bindings for microchip mpfs gpio (2 minutes ago) <Conor Dooley>
* 4cbcc0d7b397 - dt-bindings: rtc: add bindings for microchip mpfs rtc (2 minutes ago) <Conor Dooley>
* b435a1728c9f - dt-bindings: soc/microchip: add info about services to mpfs sysctrl (2 minutes ago) <Conor Dooley>
* 213556235526 - dt-bindings: soc/microchip: update syscontroller compatibles (2 minutes ago) <Conor Dooley>
* 2145bb687e3f - (clk/clk-microchip) dt-bindings: clk: microchip: Add Microchip PolarFire host binding (6 weeks ago) <Daire McNamara>
* e783362eb54c - (tag: v5.17-rc1) Linux 5.17-rc1 (7 weeks ago) <Linus Torvalds>

sboyd: IIRC it's OK to consider clk-microchip as a stable branch? If not I can just wait until you send your PR to Linus and send this later in the merge window, no big deal on my end.

I've put this on for-next. If that's a problem let me know and I'll delay it.

Thanks!

Quoted 7 lines
Quoted 6 lines

Additionally, the interrupt-extended warnings on the plic/clint are cleared by [1] & [2].

[1] https://lore.kernel.org/linux-riscv/[email protected]/
[2] https://lore.kernel.org/linux-riscv/[email protected]/

Quoted 6 lines

Hey Palmer,

dt-bindings should be set now, so if you're still happy to take the series via riscv, that'd be great. i2c, spi & usb patches ended going via the sub-system trees (and have been dropped from the series), in case those generate warnings for you.

Something went off the rails in email land and #0 and #2 didn't end up in my patch queue but the rest did. Luckily enough made it through that it didn't get lost, and lore's pretty great so this sort of thing isn't that big of a deal these days. That said, email is a bit of a black box so figured I'd give you a heads up.

Quoted 82 lines

Thanks,
Conor.

Quoted 79 lines

Changes from v6:
- Dropped i2c patch, as its in i2c-next
- Added ack on gpio, reviewed-by on rtc
- Dropped child nodes from sysctrl binding entirely, added a link to the online documenation for the services the system controller can provide
- Dropped the #pwm-cells and replaced with a ref, a la Krzysztof's series

Changes from v5:
- reworded the descriptions in the pwm binding to (hopefully) add clarity
- added -mask to the custom properties and made them 32 bit
- renamed the i2c binding to corei2c, since it is not mpfs specific
- removed the child nodes of the system controller in example/dts & will create them in the driver.
@Rob, I assume keeping them documented is the correct thing to do?
- removed the dependancy on the clock binding from the examples
- reformatted rtc interrupts as per Rob's suggestion

Changes from v4:
- dont include icicle_kit_defconfig, accidentally added in v3
- drop prescaler from mpfs-rtc & calculate the value instead
- use corei2c as a fallback device for mpfs-i2c
- drop spi dt-binding (on spi-next)
commit 2da187304e556ac59cf2dacb323cc78ded988169
- drop usb dt-binding (on usb-next)

Changes from v3:
- drop "mailbox: change mailbox-mpfs compatible string", already upstream:
commit f10b1fc0161cd99e ("mailbox: change mailbox-mpfs compatible string")
- fix copy paste error in microchip,mpfs-mailbox dt-binding
- remove whitespace in syscontroller dt entry

Changes from v2:
- dropped plic int header & corresponding defines in dts{,i}
- use $ref to drmode in mpfs-musb binding
- split changes to dts{,i} again: functional changes to existing elements now are in a new patch
- drop num-cs property in mpfs-spi binding
- dont make the system controller a simple-mfd
- move the separate bindings for rng/generic system services into the system controller binding
- added an instance corei2c as i2c2 in the fabric dtsi
- add version numbering to corepwm and corei2c compat string (-rtl-vN)

Conor Dooley (11):
dt-bindings: soc/microchip: update syscontroller compatibles
dt-bindings: soc/microchip: add info about services to mpfs sysctrl
dt-bindings: rtc: add bindings for microchip mpfs rtc
dt-bindings: gpio: add bindings for microchip mpfs gpio
dt-bindings: pwm: add microchip corepwm binding
riscv: dts: microchip: use clk defines for icicle kit
riscv: dts: microchip: add fpga fabric section to icicle kit
riscv: dts: microchip: refactor icicle kit device tree
riscv: dts: microchip: update peripherals in icicle kit device tree
riscv: dts: microchip: add new peripherals to icicle kit device tree
MAINTAINERS: update riscv/microchip entry

  .../bindings/gpio/microchip,mpfs-gpio.yaml    |  79 ++++++
  ...ilbox.yaml => microchip,mpfs-mailbox.yaml} |   6 +-
  .../bindings/pwm/microchip,corepwm.yaml       |  81 ++++++
  .../bindings/rtc/microchip,mfps-rtc.yaml      |  58 ++++
  .../microchip,mpfs-sys-controller.yaml        |  40 +++
  ...icrochip,polarfire-soc-sys-controller.yaml |  35 ---
  MAINTAINERS                                   |   2 +
  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  25 ++
  .../microchip/microchip-mpfs-icicle-kit.dts   | 115 ++++++--
  .../boot/dts/microchip/microchip-mpfs.dtsi    | 254 ++++++++++++++----
  10 files changed, 591 insertions(+), 104 deletions(-)

create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%) create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml delete mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi

author maintainer
#28 lore raw
Quoted 38 lines · Palmer Dabbelt

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

Quoted 13 lines · On Wed, 23 Feb 2022 12:48:16 PST (-0800), [email protected] wrote:
Quoted 12 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

This series updates the Microchip Icicle Kit device tree by adding a host of peripherals, and some updates to the memory map. In addition, the device tree has been split into a third part, which contains "soft" peripherals that are in the fpga fabric.

Several of the entries are for peripherals that have not get had their drivers upstreamed, so in those cases the dt bindings are included where appropriate in order to avoid the many "DT compatible string <x> appears un-documented" errors.

Quoted 4 lines
Quoted 4 lines

Depends on mpfs clock driver binding (on clk/next) to provide dt-bindings/clock/microchip,mpfs-clock.h for the device tree and on the other changes to the icicle/mpfs device tree from geert that are already in linux/riscv/for-next.

So that's causing this to not build, as I can't build without the header.  I went ahead and put these on top of that patch, resulting in

   * 48e8641c2bf0 - (HEAD -> riscv-microchip, palmer/riscv-microchip) MAINTAINERS: update riscv/microchip entry (2 minutes ago) <Conor Dooley>
   * 528a5b1f2556 - riscv: dts: microchip: add new peripherals to icicle kit device tree (2 minutes ago) <Conor Dooley>
   * 5b28df37d311 - riscv: dts: microchip: update peripherals in icicle kit device tree (2 minutes ago) <Conor Dooley>
   * c5094f371008 - riscv: dts: microchip: refactor icicle kit device tree (2 minutes ago) <Conor Dooley>
   * 72560c6559b8 - riscv: dts: microchip: add fpga fabric section to icicle kit (2 minutes ago) <Conor Dooley>
   * 6546f920868e - riscv: dts: microchip: use clk defines for icicle kit (2 minutes ago) <Conor Dooley>
   * df77f7735786 - dt-bindings: pwm: add microchip corepwm binding (2 minutes ago) <Conor Dooley>
   * 735806d8a68e - dt-bindings: gpio: add bindings for microchip mpfs gpio (2 minutes ago) <Conor Dooley>
   * 4cbcc0d7b397 - dt-bindings: rtc: add bindings for microchip mpfs rtc (2 minutes ago) <Conor Dooley>
   * b435a1728c9f - dt-bindings: soc/microchip: add info about services to mpfs sysctrl (2 minutes ago) <Conor Dooley>
   * 213556235526 - dt-bindings: soc/microchip: update syscontroller compatibles (2 minutes ago) <Conor Dooley>
   * 2145bb687e3f - (clk/clk-microchip) dt-bindings: clk: microchip: Add Microchip PolarFire host binding (6 weeks ago) <Daire McNamara>
   * e783362eb54c - (tag: v5.17-rc1) Linux 5.17-rc1 (7 weeks ago) <Linus Torvalds>

Quoted 6 lines

sboyd: IIRC it's OK to consider clk-microchip as a stable branch?  If not I can just wait until you send your PR to Linus and send this later in the merge window, no big deal on my end.

I've put this on for-next.  If that's a problem let me know and I'll delay it.

Great, thanks! Probably worth mentioning that I've deleted the dma node that Zong Li is modifying in his pdma patchset.

Quoted 17 lines

Thanks!

Quoted 7 lines
Quoted 6 lines

Additionally, the interrupt-extended warnings on the plic/clint are cleared by [1] & [2].

[1] https://lore.kernel.org/linux-riscv/[email protected]/
[2] https://lore.kernel.org/linux-riscv/[email protected]/

Quoted 6 lines

Hey Palmer,

dt-bindings should be set now, so if you're still happy to take the series via riscv, that'd be great. i2c, spi & usb patches ended going via the sub-system trees (and have been dropped from the series), in case those generate warnings for you.

Quoted 5 lines

Something went off the rails in email land and #0 and #2 didn't end up in my patch queue but the rest did.  Luckily enough made it through that it didn't get lost, and lore's pretty great so this sort of thing isn't that big of a deal these days.  That said, email is a bit of a black box so figured I'd give you a heads up.

Huh, interesting. I do check after sending that I can see the mails in my other email's inbox & they're there. Guess good thing that I sent the follow up. Thanks,
Conor.

Quoted 83 lines
Quoted 83 lines

Thanks,
Conor.

Quoted 79 lines

Changes from v6:
- Dropped i2c patch, as its in i2c-next
- Added ack on gpio, reviewed-by on rtc
- Dropped child nodes from sysctrl binding entirely, added a link to the online documenation for the services the system controller can provide
- Dropped the #pwm-cells and replaced with a ref, a la Krzysztof's series

Changes from v5:
- reworded the descriptions in the pwm binding to (hopefully) add clarity
- added -mask to the custom properties and made them 32 bit
- renamed the i2c binding to corei2c, since it is not mpfs specific
- removed the child nodes of the system controller in example/dts & will create them in the driver.
   @Rob, I assume keeping them documented is the correct thing to do?
- removed the dependancy on the clock binding from the examples
- reformatted rtc interrupts as per Rob's suggestion

Changes from v4:
- dont include icicle_kit_defconfig, accidentally added in v3
- drop prescaler from mpfs-rtc & calculate the value instead
- use corei2c as a fallback device for mpfs-i2c
- drop spi dt-binding (on spi-next)
   commit 2da187304e556ac59cf2dacb323cc78ded988169
- drop usb dt-binding (on usb-next)

Changes from v3:
- drop "mailbox: change mailbox-mpfs compatible string", already upstream:
   commit f10b1fc0161cd99e ("mailbox: change mailbox-mpfs compatible string")
- fix copy paste error in microchip,mpfs-mailbox dt-binding
- remove whitespace in syscontroller dt entry

Changes from v2:
- dropped plic int header & corresponding defines in dts{,i}
- use $ref to drmode in mpfs-musb binding
- split changes to dts{,i} again: functional changes to existing elements now are in a new patch
- drop num-cs property in mpfs-spi binding
- dont make the system controller a simple-mfd
- move the separate bindings for rng/generic system services into the system controller binding
- added an instance corei2c as i2c2 in the fabric dtsi
- add version numbering to corepwm and corei2c compat string (-rtl-vN)

Conor Dooley (11):
   dt-bindings: soc/microchip: update syscontroller compatibles
   dt-bindings: soc/microchip: add info about services to mpfs sysctrl
   dt-bindings: rtc: add bindings for microchip mpfs rtc
   dt-bindings: gpio: add bindings for microchip mpfs gpio
   dt-bindings: pwm: add microchip corepwm binding
   riscv: dts: microchip: use clk defines for icicle kit
   riscv: dts: microchip: add fpga fabric section to icicle kit
   riscv: dts: microchip: refactor icicle kit device tree
   riscv: dts: microchip: update peripherals in icicle kit device tree
   riscv: dts: microchip: add new peripherals to icicle kit device tree
   MAINTAINERS: update riscv/microchip entry

  .../bindings/gpio/microchip,mpfs-gpio.yaml    |  79 ++++++ ...ilbox.yaml => microchip,mpfs-mailbox.yaml} |   6 +- .../bindings/pwm/microchip,corepwm.yaml       |  81 ++++++ .../bindings/rtc/microchip,mfps-rtc.yaml      |  58 ++++ .../microchip,mpfs-sys-controller.yaml        |  40 +++ ...icrochip,polarfire-soc-sys-controller.yaml |  35 --- MAINTAINERS                                   |   2 + .../dts/microchip/microchip-mpfs-fabric.dtsi  |  25 ++ .../microchip/microchip-mpfs-icicle-kit.dts   | 115 ++++++-- .../boot/dts/microchip/microchip-mpfs.dtsi    | 254 ++++++++++++++----

  10 files changed, 591 insertions(+), 104 deletions(-)

  create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
  rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%) create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
  create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
  create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml delete mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi

#29 lore raw
Quoted 40 lines · On Thu, Mar 10, 2022 at 3:35 PM <[email protected]> wrote:
Quoted 38 lines · Palmer Dabbelt

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

Quoted 13 lines · On Wed, 23 Feb 2022 12:48:16 PST (-0800), [email protected] wrote:
Quoted 12 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

This series updates the Microchip Icicle Kit device tree by adding a host of peripherals, and some updates to the memory map. In addition, the device tree has been split into a third part, which contains "soft" peripherals that are in the fpga fabric.

Several of the entries are for peripherals that have not get had their drivers upstreamed, so in those cases the dt bindings are included where appropriate in order to avoid the many "DT compatible string <x> appears un-documented" errors.

Quoted 4 lines
Quoted 4 lines

Depends on mpfs clock driver binding (on clk/next) to provide dt-bindings/clock/microchip,mpfs-clock.h for the device tree and on the other changes to the icicle/mpfs device tree from geert that are already in linux/riscv/for-next.

So that's causing this to not build, as I can't build without the header. I went ahead and put these on top of that patch, resulting in

* 48e8641c2bf0 - (HEAD -> riscv-microchip, palmer/riscv-microchip) MAINTAINERS: update riscv/microchip entry (2 minutes ago) <Conor Dooley>
* 528a5b1f2556 - riscv: dts: microchip: add new peripherals to icicle kit device tree (2 minutes ago) <Conor Dooley>
* 5b28df37d311 - riscv: dts: microchip: update peripherals in icicle kit device tree (2 minutes ago) <Conor Dooley>
* c5094f371008 - riscv: dts: microchip: refactor icicle kit device tree (2 minutes ago) <Conor Dooley>
* 72560c6559b8 - riscv: dts: microchip: add fpga fabric section to icicle kit (2 minutes ago) <Conor Dooley>
* 6546f920868e - riscv: dts: microchip: use clk defines for icicle kit (2 minutes ago) <Conor Dooley>
* df77f7735786 - dt-bindings: pwm: add microchip corepwm binding (2 minutes ago) <Conor Dooley>
* 735806d8a68e - dt-bindings: gpio: add bindings for microchip mpfs gpio (2 minutes ago) <Conor Dooley>
* 4cbcc0d7b397 - dt-bindings: rtc: add bindings for microchip mpfs rtc (2 minutes ago) <Conor Dooley>
* b435a1728c9f - dt-bindings: soc/microchip: add info about services to mpfs sysctrl (2 minutes ago) <Conor Dooley>
* 213556235526 - dt-bindings: soc/microchip: update syscontroller compatibles (2 minutes ago) <Conor Dooley>
* 2145bb687e3f - (clk/clk-microchip) dt-bindings: clk: microchip: Add Microchip PolarFire host binding (6 weeks ago) <Daire McNamara>
* e783362eb54c - (tag: v5.17-rc1) Linux 5.17-rc1 (7 weeks ago) <Linus Torvalds>

Quoted 9 lines
Quoted 6 lines

sboyd: IIRC it's OK to consider clk-microchip as a stable branch? If not I can just wait until you send your PR to Linus and send this later in the merge window, no big deal on my end.

I've put this on for-next. If that's a problem let me know and I'll delay it.

Great, thanks! Probably worth mentioning that I've deleted the dma node that Zong Li is modifying in his pdma patchset.

I guess I could re-sent the next version based on top of for-next, or delay my patch set until the next tag. What is your perspective?

Quoted 112 lines
Quoted 17 lines

Thanks!

Quoted 7 lines
Quoted 6 lines

Additionally, the interrupt-extended warnings on the plic/clint are cleared by [1] & [2].

[1] https://lore.kernel.org/linux-riscv/[email protected]/
[2] https://lore.kernel.org/linux-riscv/[email protected]/

Quoted 6 lines

Hey Palmer,

dt-bindings should be set now, so if you're still happy to take the series via riscv, that'd be great. i2c, spi & usb patches ended going via the sub-system trees (and have been dropped from the series), in case those generate warnings for you.

Quoted 5 lines

Something went off the rails in email land and #0 and #2 didn't end up in my patch queue but the rest did. Luckily enough made it through that it didn't get lost, and lore's pretty great so this sort of thing isn't that big of a deal these days. That said, email is a bit of a black box so figured I'd give you a heads up.

Huh, interesting. I do check after sending that I can see the mails in my other email's inbox & they're there. Guess good thing that I sent the follow up. Thanks,
Conor.

Quoted 83 lines
Quoted 83 lines

Thanks,
Conor.

Quoted 79 lines

Changes from v6:
- Dropped i2c patch, as its in i2c-next
- Added ack on gpio, reviewed-by on rtc
- Dropped child nodes from sysctrl binding entirely, added a link to the online documenation for the services the system controller can provide
- Dropped the #pwm-cells and replaced with a ref, a la Krzysztof's series

Changes from v5:
- reworded the descriptions in the pwm binding to (hopefully) add clarity
- added -mask to the custom properties and made them 32 bit
- renamed the i2c binding to corei2c, since it is not mpfs specific
- removed the child nodes of the system controller in example/dts & will create them in the driver.
@Rob, I assume keeping them documented is the correct thing to do?
- removed the dependancy on the clock binding from the examples
- reformatted rtc interrupts as per Rob's suggestion

Changes from v4:
- dont include icicle_kit_defconfig, accidentally added in v3
- drop prescaler from mpfs-rtc & calculate the value instead
- use corei2c as a fallback device for mpfs-i2c
- drop spi dt-binding (on spi-next)
commit 2da187304e556ac59cf2dacb323cc78ded988169
- drop usb dt-binding (on usb-next)

Changes from v3:
- drop "mailbox: change mailbox-mpfs compatible string", already upstream:
commit f10b1fc0161cd99e ("mailbox: change mailbox-mpfs compatible string")
- fix copy paste error in microchip,mpfs-mailbox dt-binding
- remove whitespace in syscontroller dt entry

Changes from v2:
- dropped plic int header & corresponding defines in dts{,i}
- use $ref to drmode in mpfs-musb binding
- split changes to dts{,i} again: functional changes to existing elements now are in a new patch
- drop num-cs property in mpfs-spi binding
- dont make the system controller a simple-mfd
- move the separate bindings for rng/generic system services into the system controller binding
- added an instance corei2c as i2c2 in the fabric dtsi
- add version numbering to corepwm and corei2c compat string (-rtl-vN)

Conor Dooley (11):
dt-bindings: soc/microchip: update syscontroller compatibles
dt-bindings: soc/microchip: add info about services to mpfs sysctrl
dt-bindings: rtc: add bindings for microchip mpfs rtc
dt-bindings: gpio: add bindings for microchip mpfs gpio
dt-bindings: pwm: add microchip corepwm binding
riscv: dts: microchip: use clk defines for icicle kit
riscv: dts: microchip: add fpga fabric section to icicle kit
riscv: dts: microchip: refactor icicle kit device tree
riscv: dts: microchip: update peripherals in icicle kit device tree
riscv: dts: microchip: add new peripherals to icicle kit device tree
MAINTAINERS: update riscv/microchip entry

  .../bindings/gpio/microchip,mpfs-gpio.yaml    |  79 ++++++
  ...ilbox.yaml => microchip,mpfs-mailbox.yaml} |   6 +-
  .../bindings/pwm/microchip,corepwm.yaml       |  81 ++++++
  .../bindings/rtc/microchip,mfps-rtc.yaml      |  58 ++++
  .../microchip,mpfs-sys-controller.yaml        |  40 +++
  ...icrochip,polarfire-soc-sys-controller.yaml |  35 ---
  MAINTAINERS                                   |   2 +
  .../dts/microchip/microchip-mpfs-fabric.dtsi  |  25 ++
  .../microchip/microchip-mpfs-icicle-kit.dts   | 115 ++++++--
  .../boot/dts/microchip/microchip-mpfs.dtsi    | 254 ++++++++++++++----
  10 files changed, 591 insertions(+), 104 deletions(-)

create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%) create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml delete mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi

#30 lore raw
Quoted 45 lines · Zong Li
Quoted 44 lines · On Thu, Mar 10, 2022 at 3:35 PM <[email protected]> wrote:
Quoted 42 lines · Palmer Dabbelt

EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe

Quoted 13 lines · On Wed, 23 Feb 2022 12:48:16 PST (-0800), [email protected] wrote:
Quoted 12 lines · On 14/02/2022 13:58, [email protected] wrote:

From: Conor Dooley <[email protected]>

This series updates the Microchip Icicle Kit device tree by adding a host of peripherals, and some updates to the memory map. In addition, the device tree has been split into a third part, which contains "soft" peripherals that are in the fpga fabric.

Several of the entries are for peripherals that have not get had their drivers upstreamed, so in those cases the dt bindings are included where appropriate in order to avoid the many "DT compatible string <x> appears un-documented" errors.

Quoted 4 lines
Quoted 4 lines

Depends on mpfs clock driver binding (on clk/next) to provide dt-bindings/clock/microchip,mpfs-clock.h for the device tree and on the other changes to the icicle/mpfs device tree from geert that are already in linux/riscv/for-next.

So that's causing this to not build, as I can't build without the header. I went ahead and put these on top of that patch, resulting in

* 48e8641c2bf0 - (HEAD -> riscv-microchip, palmer/riscv-microchip) MAINTAINERS: update riscv/microchip entry (2 minutes ago) <Conor Dooley>
* 528a5b1f2556 - riscv: dts: microchip: add new peripherals to icicle kit device tree (2 minutes ago) <Conor Dooley>
* 5b28df37d311 - riscv: dts: microchip: update peripherals in icicle kit device tree (2 minutes ago) <Conor Dooley>
* c5094f371008 - riscv: dts: microchip: refactor icicle kit device tree (2 minutes ago) <Conor Dooley>
* 72560c6559b8 - riscv: dts: microchip: add fpga fabric section to icicle kit (2 minutes ago) <Conor Dooley>
* 6546f920868e - riscv: dts: microchip: use clk defines for icicle kit (2 minutes ago) <Conor Dooley>
* df77f7735786 - dt-bindings: pwm: add microchip corepwm binding (2 minutes ago) <Conor Dooley>
* 735806d8a68e - dt-bindings: gpio: add bindings for microchip mpfs gpio (2 minutes ago) <Conor Dooley>
* 4cbcc0d7b397 - dt-bindings: rtc: add bindings for microchip mpfs rtc (2 minutes ago) <Conor Dooley>
* b435a1728c9f - dt-bindings: soc/microchip: add info about services to mpfs sysctrl (2 minutes ago) <Conor Dooley>
* 213556235526 - dt-bindings: soc/microchip: update syscontroller compatibles (2 minutes ago) <Conor Dooley>
* 2145bb687e3f - (clk/clk-microchip) dt-bindings: clk: microchip: Add Microchip PolarFire host binding (6 weeks ago) <Daire McNamara>
* e783362eb54c - (tag: v5.17-rc1) Linux 5.17-rc1 (7 weeks ago) <Linus Torvalds>

sboyd: IIRC it's OK to consider clk-microchip as a stable branch? If not I can just wait until you send your PR to Linus and send this later in the merge window, no big deal on my end.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

I've put this on for-next. If that's a problem let me know and I'll delay it.

Great, thanks! Probably worth mentioning that I've deleted the dma node that Zong Li is modifying in his pdma patchset.

I guess I could re-sent the next version based on top of for-next, or delay my patch set until the next tag. What is your perspective?

I'll be honest and say that I have no idea what one is supposed to do here. Palmer?

Quoted 118 lines
Quoted 24 lines
Quoted 18 lines

Thanks!

Quoted 7 lines
Quoted 6 lines

Additionally, the interrupt-extended warnings on the plic/clint are cleared by [1] & [2].

[1] https://lore.kernel.org/linux-riscv/[email protected]/
[2] https://lore.kernel.org/linux-riscv/[email protected]/

Quoted 6 lines

Hey Palmer,

dt-bindings should be set now, so if you're still happy to take the series via riscv, that'd be great. i2c, spi & usb patches ended going via the sub-system trees (and have been dropped from the series), in case those generate warnings for you.

Quoted 5 lines

Something went off the rails in email land and #0 and #2 didn't end up in my patch queue but the rest did. Luckily enough made it through that it didn't get lost, and lore's pretty great so this sort of thing isn't that big of a deal these days. That said, email is a bit of a black box so figured I'd give you a heads up.

Quoted 89 lines

Huh, interesting. I do check after sending that I can see the mails in my other email's inbox & they're there. Guess good thing that I sent the follow up. Thanks,
Conor.

Quoted 83 lines
Quoted 83 lines

Thanks,
Conor.

Quoted 79 lines

Changes from v6:
- Dropped i2c patch, as its in i2c-next
- Added ack on gpio, reviewed-by on rtc
- Dropped child nodes from sysctrl binding entirely, added a link to the online documenation for the services the system controller can provide
- Dropped the #pwm-cells and replaced with a ref, a la Krzysztof's series

Changes from v5:
- reworded the descriptions in the pwm binding to (hopefully) add clarity
- added -mask to the custom properties and made them 32 bit
- renamed the i2c binding to corei2c, since it is not mpfs specific
- removed the child nodes of the system controller in example/dts & will create them in the driver.
@Rob, I assume keeping them documented is the correct thing to do?
- removed the dependancy on the clock binding from the examples
- reformatted rtc interrupts as per Rob's suggestion

Changes from v4:
- dont include icicle_kit_defconfig, accidentally added in v3
- drop prescaler from mpfs-rtc & calculate the value instead
- use corei2c as a fallback device for mpfs-i2c
- drop spi dt-binding (on spi-next)

    commit 2da187304e556ac59cf2dacb323cc78ded988169

- drop usb dt-binding (on usb-next)

Changes from v3:
- drop "mailbox: change mailbox-mpfs compatible string", already upstream:
commit f10b1fc0161cd99e ("mailbox: change mailbox-mpfs compatible string")
- fix copy paste error in microchip,mpfs-mailbox dt-binding
- remove whitespace in syscontroller dt entry

Changes from v2:
- dropped plic int header & corresponding defines in dts{,i}
- use $ref to drmode in mpfs-musb binding
- split changes to dts{,i} again: functional changes to existing elements now are in a new patch
- drop num-cs property in mpfs-spi binding
- dont make the system controller a simple-mfd
- move the separate bindings for rng/generic system services into the system controller binding
- added an instance corei2c as i2c2 in the fabric dtsi
- add version numbering to corepwm and corei2c compat string (-rtl-vN)

Conor Dooley (11):
dt-bindings: soc/microchip: update syscontroller compatibles
dt-bindings: soc/microchip: add info about services to mpfs sysctrl
dt-bindings: rtc: add bindings for microchip mpfs rtc
dt-bindings: gpio: add bindings for microchip mpfs gpio
dt-bindings: pwm: add microchip corepwm binding
riscv: dts: microchip: use clk defines for icicle kit
riscv: dts: microchip: add fpga fabric section to icicle kit
riscv: dts: microchip: refactor icicle kit device tree
riscv: dts: microchip: update peripherals in icicle kit device tree
riscv: dts: microchip: add new peripherals to icicle kit device tree
MAINTAINERS: update riscv/microchip entry

   .../bindings/gpio/microchip,mpfs-gpio.yaml    |  79 ++++++
   ...ilbox.yaml => microchip,mpfs-mailbox.yaml} |   6 +-
   .../bindings/pwm/microchip,corepwm.yaml       |  81 ++++++
   .../bindings/rtc/microchip,mfps-rtc.yaml      |  58 ++++
   .../microchip,mpfs-sys-controller.yaml        |  40 +++
   ...icrochip,polarfire-soc-sys-controller.yaml |  35 ---
   MAINTAINERS                                   |   2 +
   .../dts/microchip/microchip-mpfs-fabric.dtsi  |  25 ++
   .../microchip/microchip-mpfs-icicle-kit.dts   | 115 ++++++--
   .../boot/dts/microchip/microchip-mpfs.dtsi    | 254 ++++++++++++++----
   10 files changed, 591 insertions(+), 104 deletions(-)

create mode 100644 Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
rename Documentation/devicetree/bindings/mailbox/{microchip,polarfire-soc-mailbox.yaml => microchip,mpfs-mailbox.yaml} (82%) create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
create mode 100644 Documentation/devicetree/bindings/rtc/microchip,mfps-rtc.yaml
create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml delete mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml create mode 100644 arch/riscv/boot/dts/microchip/microchip-mpfs-fabric.dtsi

_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv

#31 lore raw
In reply to Palmer Dabbelt
Quoted 11 lines · Palmer Dabbelt
Quoted 4 lines · On Wed, 23 Feb 2022 12:48:16 PST (-0800), [email protected] wrote:

dt-bindings should be set now, so if you're still happy to take the series via riscv, that'd be great. i2c, spi & usb patches ended going via the sub-system trees (and have been dropped from the series), in case those generate warnings for you.

Something went off the rails in email land and #0 and #2 didn't end up in my patch queue but the rest did. Luckily enough made it through that it didn't get lost, and lore's pretty great so this sort of thing isn't that big of a deal these days. That said, email is a bit of a black box so figured I'd give you a heads up.

One of the patches in next now is df77f7735786ece2fcd8875b036a511ffcadfab6. It would be great if you could fix your patch application setup to not mangle names. Here it's

where my ö was recorded as =F6. :-\

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |