linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/16] Canaan devicetree fixes
@ 2022-06-27 19:39 Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema Conor Dooley
                   ` (15 more replies)
  0 siblings, 16 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

Hey all,
This series should rid us of dtbs_check errors for the RISC-V Canaan k210
based boards. To make keeping it that way a little easier, I changed the
Canaan devicetree Makefile so that it would build all of the devicetrees
in the directory if SOC_CANAAN.

I *DO NOT* have any Canaan hardware so I have not tested any of this in
action. Since I sent v1, I tried to buy some since it's cheap - but could
out of the limited stockists none seemed to want to deliver to Ireland :(
I based the series on next-20220617.

For the bindings, I am never sure about which of {unevaluated,additional}
Properties is correct to use, but the if statements in the binding didn't
work with additional so I used unevaluated...

@Mark, for your ASoC binding I was not sure about the properties that I
made depend on the compatible, but I looked in tree and was not able to
find other users to contradict what's in the Canaan devicetrees nor did
I get that much help from their docs.

@Serge, I dropped your R-b since I changed the enum.

@Rob, <N days ago>'s removal of ilitek,ili9341.txt is moved to ths series
since I was editing the dt-schema binding anyway.

Thanks,
Conor.

Changes since v1:
- I added a new dt node & compatible for the SRAM memory controller due
  Damien's wish to preserve the inter-op with U-Boot.
- The dw-apb-ssi binding now uses the default rx/tx widths
- A new patch fixes bus {ranges,reg} warnings
- Rearranged the patches in a slightly more logical order

Conor Dooley (16):
  dt-bindings: display: convert ilitek,ili9341.txt to dt-schema
  dt-bindings: display: panel: allow ilitek,ili9341 in isolation
  ASoC: dt-bindings: convert designware-i2s to dt-schema
  spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width
  dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA
  dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer
  dt-bindings: memory-controllers: add canaan k210 sram controller
  riscv: dts: canaan: fix the k210's memory node.
  riscv: dts: canaan: add a specific compatible for k210's dma
  riscv: dts: canaan: add a specific compatible for k210's timers
  riscv: dts: canaan: fix mmc node names
  riscv: dts: canaan: fix kd233 display spi frequency
  riscv: dts: canaan: use custom compatible for k210 i2s
  riscv: dts: canaan: remove spi-max-frequency from controllers
  riscv: dts: canaan: fix bus {ranges,reg} warnings
  riscv: dts: canaan: build all devicetress if SOC_CANAAN

 .../bindings/display/ilitek,ili9341.txt       | 27 ------
 .../display/panel/ilitek,ili9341.yaml         | 60 ++++++++----
 .../bindings/dma/snps,dw-axi-dmac.yaml        | 35 +++++--
 .../memory-controllers/canaan,k210-sram.yaml  | 53 +++++++++++
 .../bindings/sound/designware-i2s.txt         | 35 -------
 .../bindings/sound/snps,designware-i2s.yaml   | 93 +++++++++++++++++++
 .../bindings/spi/snps,dw-apb-ssi.yaml         |  6 --
 .../bindings/timer/snps,dw-apb-timer.yaml     | 28 ++++--
 arch/riscv/boot/dts/canaan/Makefile           | 10 +-
 arch/riscv/boot/dts/canaan/canaan_kd233.dts   |  4 +-
 arch/riscv/boot/dts/canaan/k210.dtsi          | 38 ++++----
 .../riscv/boot/dts/canaan/sipeed_maix_bit.dts |  2 +-
 .../boot/dts/canaan/sipeed_maix_dock.dts      |  2 +-
 arch/riscv/boot/dts/canaan/sipeed_maix_go.dts |  2 +-
 .../boot/dts/canaan/sipeed_maixduino.dts      |  2 +-
 15 files changed, 269 insertions(+), 128 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/designware-i2s.txt
 create mode 100644 Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml

-- 
2.36.1


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

* [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-28 15:00   ` Heiko Stübner
  2022-06-27 19:39 ` [PATCH v2 02/16] dt-bindings: display: panel: allow ilitek,ili9341 in isolation Conor Dooley
                   ` (14 subsequent siblings)
  15 siblings, 1 reply; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

A dt-schema binding for the Ilitek ili9341 was created as
panel/ilitek,ili9341.yaml but the txt binding was ignored in the
process. Move the remaining items in the txt binding to the yaml one &
delete it.

The example in the txt binding has a spi-max-frequency which disagrees
with the yaml replacement (and its own documentation) so change that to
conform with the binding. There are no users in tree of the Adafruit
yx240qv29 to check against.

Link: https://cdn-learn.adafruit.com/assets/assets/000/046/879/original/SPEC-YX240QV29-T_Rev.A__1_.pdf
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/display/ilitek,ili9341.txt       | 27 -----------
 .../display/panel/ilitek,ili9341.yaml         | 48 +++++++++++++------
 2 files changed, 34 insertions(+), 41 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt

diff --git a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt b/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
deleted file mode 100644
index 169b32e4ee4e..000000000000
--- a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Ilitek ILI9341 display panels
-
-This binding is for display panels using an Ilitek ILI9341 controller in SPI
-mode.
-
-Required properties:
-- compatible:	"adafruit,yx240qv29", "ilitek,ili9341"
-- dc-gpios:	D/C pin
-- reset-gpios:	Reset pin
-
-The node for this driver must be a child node of a SPI controller, hence
-all mandatory properties described in ../spi/spi-bus.txt must be specified.
-
-Optional properties:
-- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
-- backlight:	phandle of the backlight device attached to the panel
-
-Example:
-	display@0{
-		compatible = "adafruit,yx240qv29", "ilitek,ili9341";
-		reg = <0>;
-		spi-max-frequency = <32000000>;
-		dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
-		reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
-		rotation = <270>;
-		backlight = <&backlight>;
-	};
diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
index 6058948a9764..94ca92878434 100644
--- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
+++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
@@ -23,6 +23,7 @@ properties:
       - enum:
           # ili9341 240*320 Color on stm32f429-disco board
           - st,sf-tc240t-9370-t
+          - adafruit,yx240qv29
       - const: ilitek,ili9341
 
   reg: true
@@ -47,31 +48,50 @@ properties:
   vddi-led-supply:
     description: Voltage supply for the LED driver (1.65 .. 3.3 V)
 
-additionalProperties: false
+unevaluatedProperties: false
 
 required:
   - compatible
   - reg
   - dc-gpios
-  - port
+
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - st,sf-tc240t-9370-t
+then:
+  required:
+    - port
 
 examples:
   - |+
+    #include <dt-bindings/gpio/gpio.h>
     spi {
         #address-cells = <1>;
         #size-cells = <0>;
         panel: display@0 {
-                 compatible = "st,sf-tc240t-9370-t",
-                              "ilitek,ili9341";
-                 reg = <0>;
-                 spi-3wire;
-                 spi-max-frequency = <10000000>;
-                 dc-gpios = <&gpiod 13 0>;
-                 port {
-                         panel_in: endpoint {
-                           remote-endpoint = <&display_out>;
-                      };
-                 };
-             };
+            compatible = "st,sf-tc240t-9370-t",
+                         "ilitek,ili9341";
+            reg = <0>;
+            spi-3wire;
+            spi-max-frequency = <10000000>;
+            dc-gpios = <&gpiod 13 0>;
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&display_out>;
+                };
+            };
+        };
+        display@1{
+            compatible = "adafruit,yx240qv29", "ilitek,ili9341";
+            reg = <1>;
+            spi-max-frequency = <10000000>;
+            dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+            rotation = <270>;
+            backlight = <&backlight>;
         };
+    };
 ...
-- 
2.36.1


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

* [PATCH v2 02/16] dt-bindings: display: panel: allow ilitek,ili9341 in isolation
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 03/16] ASoC: dt-bindings: convert designware-i2s to dt-schema Conor Dooley
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The dt-binding for the ilitek,ili9341 does not allow it to be used as a
compatible in isolation. This generates a warning for the Canaan kd233
devicetree:
arch/riscv/boot/dts/canaan/canaan_kd233.dtb: panel@0: compatible:0: 'ilitek,ili9341' is not one of ['st,sf-tc240t-9370-t']
        From schema: Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
arch/riscv/boot/dts/canaan/canaan_kd233.dtb: panel@0: compatible: ['ilitek,ili9341'] is too short
        From schema: Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
Allow ilitek,ili9341 to be selected in isolation.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/display/panel/ilitek,ili9341.yaml     | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
index 94ca92878434..c402bedaa37a 100644
--- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
+++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
@@ -19,12 +19,14 @@ allOf:
 
 properties:
   compatible:
-    items:
-      - enum:
-          # ili9341 240*320 Color on stm32f429-disco board
-          - st,sf-tc240t-9370-t
-          - adafruit,yx240qv29
-      - const: ilitek,ili9341
+    oneOf:
+      - items:
+          - const: ilitek,ili9341
+      - items:
+          - enum:
+              - st,sf-tc240t-9370-t
+              - adafruit,yx240qv29
+          - const: ilitek,ili9341
 
   reg: true
 
-- 
2.36.1


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

* [PATCH v2 03/16] ASoC: dt-bindings: convert designware-i2s to dt-schema
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 02/16] dt-bindings: display: panel: allow ilitek,ili9341 in isolation Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width Conor Dooley
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

Convert the Synopsys DesignWare I2S controller binding to dt-schema.
There was no listed maintainer but Jose Abreu was the last editor of the
txt binding so add him as maintainer.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/sound/designware-i2s.txt         | 35 -------
 .../bindings/sound/snps,designware-i2s.yaml   | 93 +++++++++++++++++++
 2 files changed, 93 insertions(+), 35 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/designware-i2s.txt
 create mode 100644 Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml

diff --git a/Documentation/devicetree/bindings/sound/designware-i2s.txt b/Documentation/devicetree/bindings/sound/designware-i2s.txt
deleted file mode 100644
index 6a536d570e29..000000000000
--- a/Documentation/devicetree/bindings/sound/designware-i2s.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-DesignWare I2S controller
-
-Required properties:
- - compatible : Must be "snps,designware-i2s"
- - reg : Must contain the I2S core's registers location and length
- - clocks : Pairs of phandle and specifier referencing the controller's
-   clocks. The controller expects one clock: the clock used as the sampling
-   rate reference clock sample.
- - clock-names : "i2sclk" for the sample rate reference clock.
- - dmas: Pairs of phandle and specifier for the DMA channels that are used by
-   the core. The core expects one or two dma channels: one for transmit and
-   one for receive.
- - dma-names : "tx" for the transmit channel, "rx" for the receive channel.
-
-Optional properties:
- - interrupts: The interrupt line number for the I2S controller. Add this
-   parameter if the I2S controller that you are using does not support DMA.
-
-For more details on the 'dma', 'dma-names', 'clock' and 'clock-names'
-properties please check:
-	* resource-names.txt
-	* clock/clock-bindings.txt
-	* dma/dma.txt
-
-Example:
-
-	soc_i2s: i2s@7ff90000 {
-		compatible = "snps,designware-i2s";
-		reg = <0x0 0x7ff90000 0x0 0x1000>;
-		clocks = <&scpi_i2sclk 0>;
-		clock-names = "i2sclk";
-		#sound-dai-cells = <0>;
-		dmas = <&dma0 5>;
-		dma-names = "tx";
-	};
diff --git a/Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml b/Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml
new file mode 100644
index 000000000000..5ac9c00157bf
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/snps,designware-i2s.yaml
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/snps,designware-i2s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DesignWare I2S controller
+
+maintainers:
+  - Jose Abreu <joabreu@synopsys.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: canaan,k210-i2s
+          - const: snps,designware-i2s
+      - enum:
+          - snps,designware-i2s
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description: |
+      The interrupt line number for the I2S controller. Add this
+      parameter if the I2S controller that you are using does not
+      support DMA.
+    maxItems: 1
+
+  clocks:
+    description: Sampling rate reference clock
+
+  clock-names:
+    const: i2sclk
+
+  resets:
+    maxItems: 1
+
+  dmas:
+    items:
+      - description: TX DMA Channel
+      - description: RX DMA Channel
+    minItems: 1
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+    minItems: 1
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: canaan,k210-i2s
+
+then:
+  properties:
+    "#sound-dai-cells":
+      const: 1
+
+else:
+  properties:
+    "#sound-dai-cells":
+      const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+oneOf:
+  - required:
+      - dmas
+      - dma-names
+  - required:
+      - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    soc_i2s: i2s@7ff90000 {
+      compatible = "snps,designware-i2s";
+      reg = <0x7ff90000 0x1000>;
+      clocks = <&scpi_i2sclk 0>;
+      clock-names = "i2sclk";
+      #sound-dai-cells = <0>;
+      dmas = <&dma0 5>;
+      dma-names = "tx";
+    };
-- 
2.36.1


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

* [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (2 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 03/16] ASoC: dt-bindings: convert designware-i2s to dt-schema Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 20:21   ` Serge Semin
  2022-06-27 19:39 ` [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA Conor Dooley
                   ` (11 subsequent siblings)
  15 siblings, 1 reply; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

Most users of dw-apb-ssi use spi-{r,t}x-bus-width of 1, however the
Canaan k210 is wired up for a width of 4.
Quoting Serge:
The modern DW APB SSI controllers of v.4.* and newer also support the
enhanced SPI Modes too (Dual, Quad and Octal). Since the IP-core
version is auto-detected at run-time there is no way to create a
DT-schema correctly constraining the Rx/Tx SPI bus widths.
/endquote

As such, drop the restriction on only supporting a bus width of 1.

Link: https://lore.kernel.org/all/20220620205654.g7fyipwytbww5757@mobilestation/
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
Serge, I dropped your R-b when I swapped to the default
property since it changed the enum.
---
 Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
index e25d44c218f2..0a43d6e0ef91 100644
--- a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
+++ b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
@@ -143,12 +143,6 @@ patternProperties:
         minimum: 0
         maximum: 3
 
-      spi-rx-bus-width:
-        const: 1
-
-      spi-tx-bus-width:
-        const: 1
-
 unevaluatedProperties: false
 
 required:
-- 
2.36.1


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

* [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (3 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 21:34   ` Serge Semin
  2022-06-27 19:39 ` [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer Conor Dooley
                   ` (10 subsequent siblings)
  15 siblings, 1 reply; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The Canaan k210 apparently has a Sysnopsys Designware AXI DMA
controller, but according to the documentation & devicetree it has 6
interrupts rather than the standard one. Add a custom compatible that
supports the 6 interrupt configuration which falls back to the standard
binding which is currently the one in use in the devicetree entry.

Link: https://canaan-creative.com/wp-content/uploads/2020/03/kendryte_standalone_programming_guide_20190311144158_en.pdf #Page 58
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/dma/snps,dw-axi-dmac.yaml        | 35 ++++++++++++++-----
 1 file changed, 26 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
index 4324a94b26b2..bc85598151ef 100644
--- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
+++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
@@ -18,9 +18,13 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - snps,axi-dma-1.01a
-      - intel,kmb-axi-dma
+    oneOf:
+      - items:
+          - const: canaan,k210-axi-dma
+          - const: snps,axi-dma-1.01a
+      - enum:
+          - snps,axi-dma-1.01a
+          - intel,kmb-axi-dma
 
   reg:
     minItems: 1
@@ -33,9 +37,6 @@ properties:
       - const: axidma_ctrl_regs
       - const: axidma_apb_regs
 
-  interrupts:
-    maxItems: 1
-
   clocks:
     items:
       - description: Bus Clock
@@ -92,6 +93,22 @@ properties:
     minimum: 1
     maximum: 256
 
+if:
+  properties:
+    compatible:
+      contains:
+        const: canaan,k210-axi-dma
+
+then:
+  properties:
+    interrupts:
+      maxItems: 6
+
+else:
+  properties:
+    interrupts:
+      maxItems: 1
+
 required:
   - compatible
   - reg
@@ -105,7 +122,7 @@ required:
   - snps,priority
   - snps,block-size
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -113,12 +130,12 @@ examples:
      #include <dt-bindings/interrupt-controller/irq.h>
      /* example with snps,dw-axi-dmac */
      dmac: dma-controller@80000 {
-         compatible = "snps,axi-dma-1.01a";
+         compatible = "canaan,k210-axi-dma", "snps,axi-dma-1.01a";
          reg = <0x80000 0x400>;
          clocks = <&core_clk>, <&cfgr_clk>;
          clock-names = "core-clk", "cfgr-clk";
          interrupt-parent = <&intc>;
-         interrupts = <27>;
+         interrupts = <27>, <28>, <29>, <30>, <31>, <32>;
          #dma-cells = <1>;
          dma-channels = <4>;
          snps,dma-masters = <2>;
-- 
2.36.1


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

* [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (4 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 21:13   ` Serge Semin
  2022-06-27 19:39 ` [PATCH v2 07/16] dt-bindings: memory-controllers: add canaan k210 sram controller Conor Dooley
                   ` (9 subsequent siblings)
  15 siblings, 1 reply; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The Canaan k210 apparently has a Sysnopsys Designware timer but
according to the documentation & devicetree it has 2 interrupts rather
than the standard one. Add a custom compatible that supports the 2
interrupt configuration and falls back to the standard binding (which
is currently the one in use in the devicetree entry).

Link: https://canaan-creative.com/wp-content/uploads/2020/03/kendryte_standalone_programming_guide_20190311144158_en.pdf #Page 58
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 .../bindings/timer/snps,dw-apb-timer.yaml     | 28 +++++++++++++++----
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml b/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
index d33c9205a909..9a76acc7a66f 100644
--- a/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
+++ b/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
@@ -12,6 +12,9 @@ maintainers:
 properties:
   compatible:
     oneOf:
+      - items:
+          - const: canaan,k210-apb-timer
+          - const: snps,dw-apb-timer
       - const: snps,dw-apb-timer
       - enum:
           - snps,dw-apb-timer-sp
@@ -21,9 +24,6 @@ properties:
   reg:
     maxItems: 1
 
-  interrupts:
-    maxItems: 1
-
   resets:
     maxItems: 1
 
@@ -41,7 +41,23 @@ properties:
 
   clock-frequency: true
 
-additionalProperties: false
+unevaluatedProperties: false
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: canaan,k210-apb-timer
+
+then:
+  properties:
+    interrupts:
+      maxItems: 2
+
+else:
+  properties:
+    interrupts:
+      maxItems: 1
 
 required:
   - compatible
@@ -60,8 +76,8 @@ oneOf:
 examples:
   - |
     timer@ffe00000 {
-      compatible = "snps,dw-apb-timer";
-      interrupts = <0 170 4>;
+      compatible = "canaan,k210-apb-timer", "snps,dw-apb-timer";
+      interrupts = <0 170 4>, <0 170 4>;
       reg = <0xffe00000 0x1000>;
       clocks = <&timer_clk>, <&timer_pclk>;
       clock-names = "timer", "pclk";
-- 
2.36.1


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

* [PATCH v2 07/16] dt-bindings: memory-controllers: add canaan k210 sram controller
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (5 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 08/16] riscv: dts: canaan: fix the k210's memory node Conor Dooley
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The k210 U-Boot port has been using the clocks defined in the
devicetree to bring up the board's SRAM, but this violates the
dt-schema. As such, move the clocks to a dedicated node with
the same compatible string & document it.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
I made myself maintainer since I didn't have anywhere else
to point a finger, but I am happy to let someone else take
that on!

The corresponding U-Boot code seems to be:
static int sram_init(void)
{
	int ret, i;
	const char * const banks[] = { "sram0", "sram1", "aisram" };
	ofnode memory;
	struct clk clk;

	/* Enable RAM clocks */
	memory = ofnode_by_compatible(ofnode_null(), "canaan,k210-sram");
	if (ofnode_equal(memory, ofnode_null()))
		return -ENOENT;

	for (i = 0; i < ARRAY_SIZE(banks); i++) {
		ret = clk_get_by_name_nodev(memory, banks[i], &clk);
		if (ret)
			continue;

		ret = clk_enable(&clk);
		clk_free(&clk);
		if (ret)
			return ret;
	}

	return 0;
}

Which, without having the hardware etc, I suspect is likely to keep
working after the move.
---
 .../memory-controllers/canaan,k210-sram.yaml  | 53 +++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml

diff --git a/Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml b/Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml
new file mode 100644
index 000000000000..837eb65854fc
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/canaan,k210-sram.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/canaan,k210-sram.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Canaan K210 SRAM memory controller
+
+description: |
+  The Canaan K210 SRAM memory controller is initialised and programmed by
+  firmware, but an OS might want to read its registers for error reporting
+  purposes and to learn about the DRAM topology.
+
+maintainers:
+  - Conor Dooley <conor@kernel.org>
+
+properties:
+  compatible:
+    enum:
+      - canaan,k210-sram
+
+  clocks:
+    minItems: 1
+    items:
+      - description: sram0 clock
+      - description: sram1 clock
+      - description: aisram clock
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: sram0
+      - const: sram1
+      - const: aisram
+
+required:
+  - compatible
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/k210-clk.h>
+    memory-controller {
+        compatible = "canaan,k210-sram";
+        clocks = <&sysclk K210_CLK_SRAM0>,
+                 <&sysclk K210_CLK_SRAM1>,
+                 <&sysclk K210_CLK_AI>;
+        clock-names = "sram0", "sram1", "aisram";
+    };
+
-- 
2.36.1


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

* [PATCH v2 08/16] riscv: dts: canaan: fix the k210's memory node.
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (6 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 07/16] dt-bindings: memory-controllers: add canaan k210 sram controller Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 09/16] riscv: dts: canaan: add a specific compatible for k210's dma Conor Dooley
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The k210 U-Boot port has been using the clocks defined in the
devicetree to bring up the board's SRAM, but this violates the
dt-schema. As such, move the clocks to a dedicated node with
the same compatible string. The regs property does not fit in
either node, so is replaced by comments.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
The corresponding U-Boot code seems to be:
static int sram_init(void)
{
        int ret, i;
        const char * const banks[] = { "sram0", "sram1", "aisram" };
        ofnode memory;
        struct clk clk;

        /* Enable RAM clocks */
        memory = ofnode_by_compatible(ofnode_null(), "canaan,k210-sram");
        if (ofnode_equal(memory, ofnode_null()))
                return -ENOENT;

        for (i = 0; i < ARRAY_SIZE(banks); i++) {
                ret = clk_get_by_name_nodev(memory, banks[i], &clk);
                if (ret)
                        continue;

                ret = clk_enable(&clk);
                clk_free(&clk);
                if (ret)
                        return ret;
        }

        return 0;
}

Which, without having the hardware etc, I suspect is likely to keep
working after the move.
---
 arch/riscv/boot/dts/canaan/k210.dtsi | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/k210.dtsi b/arch/riscv/boot/dts/canaan/k210.dtsi
index 44d338514761..cd4eae82d8b2 100644
--- a/arch/riscv/boot/dts/canaan/k210.dtsi
+++ b/arch/riscv/boot/dts/canaan/k210.dtsi
@@ -69,11 +69,13 @@ cpu1_intc: interrupt-controller {
 
 	sram: memory@80000000 {
 		device_type = "memory";
+		reg = <0x80000000 0x400000>, /* sram0 4 MiB */
+		      <0x80400000 0x200000>, /* sram1 2 MiB */
+		      <0x80600000 0x200000>; /* aisram 2 MiB */
+	};
+
+	sram_controller: memory-controller {
 		compatible = "canaan,k210-sram";
-		reg = <0x80000000 0x400000>,
-		      <0x80400000 0x200000>,
-		      <0x80600000 0x200000>;
-		reg-names = "sram0", "sram1", "aisram";
 		clocks = <&sysclk K210_CLK_SRAM0>,
 			 <&sysclk K210_CLK_SRAM1>,
 			 <&sysclk K210_CLK_AI>;
-- 
2.36.1


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

* [PATCH v2 09/16] riscv: dts: canaan: add a specific compatible for k210's dma
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (7 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 08/16] riscv: dts: canaan: fix the k210's memory node Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 10/16] riscv: dts: canaan: add a specific compatible for k210's timers Conor Dooley
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The DMAC on the k210 has a non standard interrupt configuration, which
leads to dtbs_check warnings:

k210_generic.dtb: dma-controller@50000000: interrupts: [[27], [28], [29], [30], [31], [32]] is too long
From schema: Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml

Update the binding to use a custom compatible to avoid the warning.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/k210.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/boot/dts/canaan/k210.dtsi b/arch/riscv/boot/dts/canaan/k210.dtsi
index cd4eae82d8b2..45ccab36618a 100644
--- a/arch/riscv/boot/dts/canaan/k210.dtsi
+++ b/arch/riscv/boot/dts/canaan/k210.dtsi
@@ -143,7 +143,7 @@ gpio0: gpio-controller@38001000 {
 		};
 
 		dmac0: dma-controller@50000000 {
-			compatible = "snps,axi-dma-1.01a";
+			compatible = "canaan,k210-axi-dma", "snps,axi-dma-1.01a";
 			reg = <0x50000000 0x1000>;
 			interrupts = <27>, <28>, <29>, <30>, <31>, <32>;
 			#dma-cells = <1>;
-- 
2.36.1


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

* [PATCH v2 10/16] riscv: dts: canaan: add a specific compatible for k210's timers
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (8 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 09/16] riscv: dts: canaan: add a specific compatible for k210's dma Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:39 ` [PATCH v2 11/16] riscv: dts: canaan: fix mmc node names Conor Dooley
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The timers on the k210 have non standard interrupt configurations,
which leads to dtbs_check warnings:

k210_generic.dtb: timer@502d0000: interrupts: [[14], [15]] is too long
From schema: Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml

Change to using the newly added canaan k210 specific binding to avoid
the warning.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/k210.dtsi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/k210.dtsi b/arch/riscv/boot/dts/canaan/k210.dtsi
index 45ccab36618a..be42c56e770c 100644
--- a/arch/riscv/boot/dts/canaan/k210.dtsi
+++ b/arch/riscv/boot/dts/canaan/k210.dtsi
@@ -318,7 +318,7 @@ fpioa: pinmux@502b0000 {
 			};
 
 			timer0: timer@502d0000 {
-				compatible = "snps,dw-apb-timer";
+				compatible = "canaan,k210-apb-timer", "snps,dw-apb-timer";
 				reg = <0x502D0000 0x100>;
 				interrupts = <14>, <15>;
 				clocks = <&sysclk K210_CLK_TIMER0>,
@@ -328,7 +328,7 @@ timer0: timer@502d0000 {
 			};
 
 			timer1: timer@502e0000 {
-				compatible = "snps,dw-apb-timer";
+				compatible = "canaan,k210-apb-timer", "snps,dw-apb-timer";
 				reg = <0x502E0000 0x100>;
 				interrupts = <16>, <17>;
 				clocks = <&sysclk K210_CLK_TIMER1>,
@@ -338,7 +338,7 @@ timer1: timer@502e0000 {
 			};
 
 			timer2: timer@502f0000 {
-				compatible = "snps,dw-apb-timer";
+				compatible = "canaan,k210-apb-timer", "snps,dw-apb-timer";
 				reg = <0x502F0000 0x100>;
 				interrupts = <18>, <19>;
 				clocks = <&sysclk K210_CLK_TIMER2>,
-- 
2.36.1


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

* [PATCH v2 11/16] riscv: dts: canaan: fix mmc node names
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (9 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 10/16] riscv: dts: canaan: add a specific compatible for k210's timers Conor Dooley
@ 2022-06-27 19:39 ` Conor Dooley
  2022-06-27 19:40 ` [PATCH v2 12/16] riscv: dts: canaan: fix kd233 display spi frequency Conor Dooley
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:39 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The newly-converted-to-dt-schema binding expects the mmc node name to be
'^mmc(@.*)?$' so align the devicetree with the schema.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/canaan_kd233.dts     | 2 +-
 arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts  | 2 +-
 arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts | 2 +-
 arch/riscv/boot/dts/canaan/sipeed_maix_go.dts   | 2 +-
 arch/riscv/boot/dts/canaan/sipeed_maixduino.dts | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/canaan_kd233.dts b/arch/riscv/boot/dts/canaan/canaan_kd233.dts
index 039b92abf046..40992d495aa8 100644
--- a/arch/riscv/boot/dts/canaan/canaan_kd233.dts
+++ b/arch/riscv/boot/dts/canaan/canaan_kd233.dts
@@ -142,7 +142,7 @@ &spi1 {
 	cs-gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	slot@0 {
+	mmc@0 {
 		compatible = "mmc-spi-slot";
 		reg = <0>;
 		voltage-ranges = <3300 3300>;
diff --git a/arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts b/arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts
index b9e30df127fe..5e809d0e11fb 100644
--- a/arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts
+++ b/arch/riscv/boot/dts/canaan/sipeed_maix_bit.dts
@@ -189,7 +189,7 @@ &spi1 {
 	cs-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	slot@0 {
+	mmc@0 {
 		compatible = "mmc-spi-slot";
 		reg = <0>;
 		voltage-ranges = <3300 3300>;
diff --git a/arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts b/arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts
index 8d23401b0bbb..4be5ffac6b4a 100644
--- a/arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts
+++ b/arch/riscv/boot/dts/canaan/sipeed_maix_dock.dts
@@ -191,7 +191,7 @@ &spi1 {
 	cs-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	slot@0 {
+	mmc@0 {
 		compatible = "mmc-spi-slot";
 		reg = <0>;
 		voltage-ranges = <3300 3300>;
diff --git a/arch/riscv/boot/dts/canaan/sipeed_maix_go.dts b/arch/riscv/boot/dts/canaan/sipeed_maix_go.dts
index 24fd83b43d9d..5c63f79b18ec 100644
--- a/arch/riscv/boot/dts/canaan/sipeed_maix_go.dts
+++ b/arch/riscv/boot/dts/canaan/sipeed_maix_go.dts
@@ -199,7 +199,7 @@ &spi1 {
 	cs-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	slot@0 {
+	mmc@0 {
 		compatible = "mmc-spi-slot";
 		reg = <0>;
 		voltage-ranges = <3300 3300>;
diff --git a/arch/riscv/boot/dts/canaan/sipeed_maixduino.dts b/arch/riscv/boot/dts/canaan/sipeed_maixduino.dts
index 25341f38292a..59f7eaf74655 100644
--- a/arch/riscv/boot/dts/canaan/sipeed_maixduino.dts
+++ b/arch/riscv/boot/dts/canaan/sipeed_maixduino.dts
@@ -164,7 +164,7 @@ &spi1 {
 	cs-gpios = <&gpio1_0 2 GPIO_ACTIVE_LOW>;
 	status = "okay";
 
-	slot@0 {
+	mmc@0 {
 		compatible = "mmc-spi-slot";
 		reg = <0>;
 		voltage-ranges = <3300 3300>;
-- 
2.36.1


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

* [PATCH v2 12/16] riscv: dts: canaan: fix kd233 display spi frequency
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (10 preceding siblings ...)
  2022-06-27 19:39 ` [PATCH v2 11/16] riscv: dts: canaan: fix mmc node names Conor Dooley
@ 2022-06-27 19:40 ` Conor Dooley
  2022-06-27 19:40 ` [PATCH v2 13/16] riscv: dts: canaan: use custom compatible for k210 i2s Conor Dooley
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:40 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The binding for the ili9341 specifies a const spi-max-frequency of 10
MHz but the kd233 devicetree entry has it listed at 15 Mhz.
Align the devicetree with the value in the binding.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/canaan_kd233.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/boot/dts/canaan/canaan_kd233.dts b/arch/riscv/boot/dts/canaan/canaan_kd233.dts
index 40992d495aa8..4a540158f287 100644
--- a/arch/riscv/boot/dts/canaan/canaan_kd233.dts
+++ b/arch/riscv/boot/dts/canaan/canaan_kd233.dts
@@ -130,7 +130,7 @@ panel@0 {
 		compatible = "ilitek,ili9341";
 		reg = <0>;
 		dc-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
-		spi-max-frequency = <15000000>;
+		spi-max-frequency = <10000000>;
 		status = "disabled";
 	};
 };
-- 
2.36.1


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

* [PATCH v2 13/16] riscv: dts: canaan: use custom compatible for k210 i2s
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (11 preceding siblings ...)
  2022-06-27 19:40 ` [PATCH v2 12/16] riscv: dts: canaan: fix kd233 display spi frequency Conor Dooley
@ 2022-06-27 19:40 ` Conor Dooley
  2022-06-27 19:40 ` [PATCH v2 14/16] riscv: dts: canaan: remove spi-max-frequency from controllers Conor Dooley
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:40 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The devicetrees using the Canaan k210 all have a sound-dai-cells value
of 1, whereas the standard binding example for the DesignWare i2s and
other use cases suggest 0. Use a k210 specific compatible which
supports this difference.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/k210.dtsi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/k210.dtsi b/arch/riscv/boot/dts/canaan/k210.dtsi
index be42c56e770c..10c2a1417deb 100644
--- a/arch/riscv/boot/dts/canaan/k210.dtsi
+++ b/arch/riscv/boot/dts/canaan/k210.dtsi
@@ -251,7 +251,7 @@ spi2: spi@50240000 {
 			};
 
 			i2s0: i2s@50250000 {
-				compatible = "snps,designware-i2s";
+				compatible = "canaan,k210-i2s", "snps,designware-i2s";
 				reg = <0x50250000 0x200>;
 				interrupts = <5>;
 				clocks = <&sysclk K210_CLK_I2S0>;
@@ -260,7 +260,7 @@ i2s0: i2s@50250000 {
 			};
 
 			i2s1: i2s@50260000 {
-				compatible = "snps,designware-i2s";
+				compatible = "canaan,k210-i2s", "snps,designware-i2s";
 				reg = <0x50260000 0x200>;
 				interrupts = <6>;
 				clocks = <&sysclk K210_CLK_I2S1>;
@@ -269,7 +269,7 @@ i2s1: i2s@50260000 {
 			};
 
 			i2s2: i2s@50270000 {
-				compatible = "snps,designware-i2s";
+				compatible = "canaan,k210-i2s", "snps,designware-i2s";
 				reg = <0x50270000 0x200>;
 				interrupts = <7>;
 				clocks = <&sysclk K210_CLK_I2S2>;
-- 
2.36.1


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

* [PATCH v2 14/16] riscv: dts: canaan: remove spi-max-frequency from controllers
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (12 preceding siblings ...)
  2022-06-27 19:40 ` [PATCH v2 13/16] riscv: dts: canaan: use custom compatible for k210 i2s Conor Dooley
@ 2022-06-27 19:40 ` Conor Dooley
  2022-06-27 19:40 ` [PATCH v2 15/16] riscv: dts: canaan: fix bus {ranges,reg} warnings Conor Dooley
  2022-06-27 19:40 ` [PATCH v2 16/16] riscv: dts: canaan: build all devicetress if SOC_CANAAN Conor Dooley
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:40 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

spi-max-frequency is a device, not a controller  property and should be
removed.

Link: https://lore.kernel.org/lkml/20220526014141.2872567-1-robh@kernel.org/
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/k210.dtsi | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/k210.dtsi b/arch/riscv/boot/dts/canaan/k210.dtsi
index 10c2a1417deb..84a7ab363d72 100644
--- a/arch/riscv/boot/dts/canaan/k210.dtsi
+++ b/arch/riscv/boot/dts/canaan/k210.dtsi
@@ -421,7 +421,6 @@ spi0: spi@52000000 {
 				clock-names = "ssi_clk", "pclk";
 				resets = <&sysrst K210_RST_SPI0>;
 				reset-names = "spi";
-				spi-max-frequency = <25000000>;
 				num-cs = <4>;
 				reg-io-width = <4>;
 			};
@@ -437,7 +436,6 @@ spi1: spi@53000000 {
 				clock-names = "ssi_clk", "pclk";
 				resets = <&sysrst K210_RST_SPI1>;
 				reset-names = "spi";
-				spi-max-frequency = <25000000>;
 				num-cs = <4>;
 				reg-io-width = <4>;
 			};
@@ -453,8 +451,7 @@ spi3: spi@54000000 {
 				clock-names = "ssi_clk", "pclk";
 				resets = <&sysrst K210_RST_SPI3>;
 				reset-names = "spi";
-				/* Could possibly go up to 200 MHz */
-				spi-max-frequency = <100000000>;
+
 				num-cs = <4>;
 				reg-io-width = <4>;
 			};
-- 
2.36.1


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

* [PATCH v2 15/16] riscv: dts: canaan: fix bus {ranges,reg} warnings
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (13 preceding siblings ...)
  2022-06-27 19:40 ` [PATCH v2 14/16] riscv: dts: canaan: remove spi-max-frequency from controllers Conor Dooley
@ 2022-06-27 19:40 ` Conor Dooley
  2022-06-27 19:40 ` [PATCH v2 16/16] riscv: dts: canaan: build all devicetress if SOC_CANAAN Conor Dooley
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:40 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

The k210 devicetrees warn about missing/empty reg and/or ranges
properties:
arch/riscv/boot/dts/canaan/k210.dtsi:408.22-460.5: Warning (unit_address_vs_reg): /soc/bus@52000000: node has a unit name, but no reg or ranges property
arch/riscv/boot/dts/canaan/k210.dtsi:352.22-406.5: Warning (simple_bus_reg): /soc/bus@50400000: missing or empty reg/ranges property

Add reg and ranges properties that naively cap the buses after the
allocation of their last devices.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/k210.dtsi | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/k210.dtsi b/arch/riscv/boot/dts/canaan/k210.dtsi
index 84a7ab363d72..337ce2b879e7 100644
--- a/arch/riscv/boot/dts/canaan/k210.dtsi
+++ b/arch/riscv/boot/dts/canaan/k210.dtsi
@@ -163,7 +163,8 @@ apb0: bus@50200000 {
 			#address-cells = <1>;
 			#size-cells = <1>;
 			compatible = "simple-pm-bus";
-			ranges;
+			regs = <0x50200000 0x200000>;
+			ranges = <0x50200000 0x50200000 0x200000>;
 			clocks = <&sysclk K210_CLK_APB0>;
 
 			gpio1: gpio@50200000 {
@@ -352,7 +353,8 @@ apb1: bus@50400000 {
 			#address-cells = <1>;
 			#size-cells = <1>;
 			compatible = "simple-pm-bus";
-			ranges;
+			regs = <0x50400000 0x40100>;
+			ranges = <0x50400000 0x50400000 0x40100>;
 			clocks = <&sysclk K210_CLK_APB1>;
 
 			wdt0: watchdog@50400000 {
@@ -407,7 +409,8 @@ apb2: bus@52000000 {
 			#address-cells = <1>;
 			#size-cells = <1>;
 			compatible = "simple-pm-bus";
-			ranges;
+			regs = <0x52000000 0x2000200>;
+			ranges = <0x52000000 0x52000000 0x2000200>;
 			clocks = <&sysclk K210_CLK_APB2>;
 
 			spi0: spi@52000000 {
-- 
2.36.1


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

* [PATCH v2 16/16] riscv: dts: canaan: build all devicetress if SOC_CANAAN
  2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
                   ` (14 preceding siblings ...)
  2022-06-27 19:40 ` [PATCH v2 15/16] riscv: dts: canaan: fix bus {ranges,reg} warnings Conor Dooley
@ 2022-06-27 19:40 ` Conor Dooley
  15 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 19:40 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv

From: Conor Dooley <conor.dooley@microchip.com>

Testing & checking the Canaan devicetrees is inconvenient as only the
devicetree corresponding to SOC_CANAAN_K210_DTB_BUILTIN will be built.
Change the Makefile so that all devicetrees are built by default if
SOC_CANAAN but only the one specified by SOC_CANAAN_K210_DTB_BUILTIN
gets built as an object.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 arch/riscv/boot/dts/canaan/Makefile | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/riscv/boot/dts/canaan/Makefile b/arch/riscv/boot/dts/canaan/Makefile
index c61b08ac8554..befe4eb7527b 100644
--- a/arch/riscv/boot/dts/canaan/Makefile
+++ b/arch/riscv/boot/dts/canaan/Makefile
@@ -1,3 +1,9 @@
 # SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_SOC_CANAAN_K210_DTB_BUILTIN) += $(addsuffix .dtb, $(CONFIG_SOC_CANAAN_K210_DTB_SOURCE))
-obj-$(CONFIG_SOC_CANAAN_K210_DTB_BUILTIN) += $(addsuffix .o, $(dtb-y))
+dtb-$(CONFIG_SOC_CANAAN) += canaan_kd233.dtb
+dtb-$(CONFIG_SOC_CANAAN) += k210_generic.dtb
+dtb-$(CONFIG_SOC_CANAAN) += sipeed_maix_bit.dtb
+dtb-$(CONFIG_SOC_CANAAN) += sipeed_maix_dock.dtb
+dtb-$(CONFIG_SOC_CANAAN) += sipeed_maix_go.dtb
+dtb-$(CONFIG_SOC_CANAAN) += sipeed_maixduino.dtb
+
+obj-$(CONFIG_SOC_CANAAN_K210_DTB_BUILTIN) += $(addsuffix .dtb.o, $(CONFIG_SOC_CANAAN_K210_DTB_SOURCE))
-- 
2.36.1


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

* Re: [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width
  2022-06-27 19:39 ` [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width Conor Dooley
@ 2022-06-27 20:21   ` Serge Semin
  2022-06-28 15:26     ` Rob Herring
  0 siblings, 1 reply; 26+ messages in thread
From: Serge Semin @ 2022-06-27 20:21 UTC (permalink / raw)
  To: Conor Dooley
  Cc: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Daniel Lezcano, Palmer Dabbelt,
	Palmer Dabbelt, Thomas Gleixner, Paul Walmsley, Albert Ou,
	Conor Dooley, Masahiro Yamada, Damien Le Moal,
	Geert Uytterhoeven, Niklas Cassel, Dillon Min, Heng Sia,
	Jose Abreu, dri-devel, devicetree, linux-kernel, dmaengine,
	alsa-devel, linux-spi, linux-riscv

On Mon, Jun 27, 2022 at 08:39:52PM +0100, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> Most users of dw-apb-ssi use spi-{r,t}x-bus-width of 1, however the
> Canaan k210 is wired up for a width of 4.
> Quoting Serge:
> The modern DW APB SSI controllers of v.4.* and newer also support the
> enhanced SPI Modes too (Dual, Quad and Octal). Since the IP-core
> version is auto-detected at run-time there is no way to create a
> DT-schema correctly constraining the Rx/Tx SPI bus widths.
> /endquote
> 
> As such, drop the restriction on only supporting a bus width of 1.
> 
> Link: https://lore.kernel.org/all/20220620205654.g7fyipwytbww5757@mobilestation/
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---
> Serge, I dropped your R-b when I swapped to the default
> property since it changed the enum.
> ---
>  Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml | 6 ------
>  1 file changed, 6 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> index e25d44c218f2..0a43d6e0ef91 100644
> --- a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> +++ b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> @@ -143,12 +143,6 @@ patternProperties:
>          minimum: 0
>          maximum: 3
>  

> -      spi-rx-bus-width:
> -        const: 1
> -
> -      spi-tx-bus-width:
> -        const: 1
> -

My comment was:
> > > You can just use a more relaxed constraint "enum: [1 2 4 8]" here
> >
> > 8 too? sure.
Then Rob said:
> Then no constraints needed because the common definition already has
> this presumably.

IMO preserving the device-specific constraints even if they match the
generic ones has some maintainability benefits. What if you get to
discover a new HW which supports Hexal mode? Then you would have
needed to update the common schema constraints. But that would have
caused permitting the unsupported bus-mode for all the schemas, which
isn't correct. So as I see it the explicit bus-width enumeration would
be ok to have here. But I'll leave it for Rob to make a final
decision.

Rob

>  unevaluatedProperties: false
>  
>  required:
> -- 
> 2.36.1
> 

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

* Re: [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer
  2022-06-27 19:39 ` [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer Conor Dooley
@ 2022-06-27 21:13   ` Serge Semin
  2022-06-27 21:18     ` Conor Dooley
  0 siblings, 1 reply; 26+ messages in thread
From: Serge Semin @ 2022-06-27 21:13 UTC (permalink / raw)
  To: Conor Dooley
  Cc: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Daniel Lezcano, Palmer Dabbelt,
	Palmer Dabbelt, Thomas Gleixner, Paul Walmsley, Albert Ou,
	Conor Dooley, Masahiro Yamada, Damien Le Moal,
	Geert Uytterhoeven, Niklas Cassel, Dillon Min, Heng Sia,
	Jose Abreu, dri-devel, devicetree, linux-kernel, dmaengine,
	alsa-devel, linux-spi, linux-riscv

On Mon, Jun 27, 2022 at 08:39:54PM +0100, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> The Canaan k210 apparently has a Sysnopsys Designware timer but
> according to the documentation & devicetree it has 2 interrupts rather
> than the standard one. Add a custom compatible that supports the 2
> interrupt configuration and falls back to the standard binding (which
> is currently the one in use in the devicetree entry).
> 

> Link: https://canaan-creative.com/wp-content/uploads/2020/03/kendryte_standalone_programming_guide_20190311144158_en.pdf #Page 58

Firstly, it's page 51 in the framework of the document pages
enumeration.

Judging by the comment in the document above and what the HW reference
manual says regarding the IRQ signals, what you really have on K210 is
the DW APB Timer IP-cores each configured with two embedded timers.
It's done by the IP-core synthesize parameter NUM_TIMERS={1..8}, which
in your case equals to 2. A similar situation is on our SoC and, for
instance, here:

arch/arm/boot/dts/berlin2q.dtsi
arch/arm/boot/dts/berlin2.dtsi
arch/arm/boot/dts/berlin2cd.dtsi
(Though the Berlin2 APB Timer have been configured with 8 timers.)

So the correct modification would be:
1. Split up the nodes into two ones with one IRQ per each node.
2. Make sure I was right by testing the new dts out.
3. Update the DT-node only and leave the DT-bindings as is.

-Sergey

> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---
>  .../bindings/timer/snps,dw-apb-timer.yaml     | 28 +++++++++++++++----
>  1 file changed, 22 insertions(+), 6 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml b/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
> index d33c9205a909..9a76acc7a66f 100644
> --- a/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
> +++ b/Documentation/devicetree/bindings/timer/snps,dw-apb-timer.yaml
> @@ -12,6 +12,9 @@ maintainers:
>  properties:
>    compatible:
>      oneOf:
> +      - items:
> +          - const: canaan,k210-apb-timer
> +          - const: snps,dw-apb-timer
>        - const: snps,dw-apb-timer
>        - enum:
>            - snps,dw-apb-timer-sp
> @@ -21,9 +24,6 @@ properties:
>    reg:
>      maxItems: 1
>  
> -  interrupts:
> -    maxItems: 1
> -
>    resets:
>      maxItems: 1
>  
> @@ -41,7 +41,23 @@ properties:
>  
>    clock-frequency: true
>  
> -additionalProperties: false
> +unevaluatedProperties: false
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: canaan,k210-apb-timer
> +
> +then:
> +  properties:
> +    interrupts:
> +      maxItems: 2
> +
> +else:
> +  properties:
> +    interrupts:
> +      maxItems: 1
>  
>  required:
>    - compatible
> @@ -60,8 +76,8 @@ oneOf:
>  examples:
>    - |
>      timer@ffe00000 {
> -      compatible = "snps,dw-apb-timer";
> -      interrupts = <0 170 4>;
> +      compatible = "canaan,k210-apb-timer", "snps,dw-apb-timer";
> +      interrupts = <0 170 4>, <0 170 4>;
>        reg = <0xffe00000 0x1000>;
>        clocks = <&timer_clk>, <&timer_pclk>;
>        clock-names = "timer", "pclk";
> -- 
> 2.36.1
> 

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

* Re: [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer
  2022-06-27 21:13   ` Serge Semin
@ 2022-06-27 21:18     ` Conor Dooley
  0 siblings, 0 replies; 26+ messages in thread
From: Conor Dooley @ 2022-06-27 21:18 UTC (permalink / raw)
  To: Serge Semin
  Cc: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Daniel Lezcano, Palmer Dabbelt,
	Palmer Dabbelt, Thomas Gleixner, Paul Walmsley, Albert Ou,
	Conor Dooley, Masahiro Yamada, Damien Le Moal,
	Geert Uytterhoeven, Niklas Cassel, Dillon Min, Heng Sia,
	Jose Abreu, dri-devel, devicetree, linux-kernel, dmaengine,
	alsa-devel, linux-spi, linux-riscv

On 27/06/2022 22:13, Serge Semin wrote:
> On Mon, Jun 27, 2022 at 08:39:54PM +0100, Conor Dooley wrote:
>> From: Conor Dooley <conor.dooley@microchip.com>
>>
>> The Canaan k210 apparently has a Sysnopsys Designware timer but
>> according to the documentation & devicetree it has 2 interrupts rather
>> than the standard one. Add a custom compatible that supports the 2
>> interrupt configuration and falls back to the standard binding (which
>> is currently the one in use in the devicetree entry).
>>
> 
>> Link: https://canaan-creative.com/wp-content/uploads/2020/03/kendryte_standalone_programming_guide_20190311144158_en.pdf #Page 58
> 
> Firstly, it's page 51 in the framework of the document pages
> enumeration.

Ah yes, sorry about that.

> 
> Judging by the comment in the document above and what the HW reference
> manual says regarding the IRQ signals, what you really have on K210 is
> the DW APB Timer IP-cores each configured with two embedded timers.
> It's done by the IP-core synthesize parameter NUM_TIMERS={1..8}, which
> in your case equals to 2. A similar situation is on our SoC and, for
> instance, here:
> 
> arch/arm/boot/dts/berlin2q.dtsi
> arch/arm/boot/dts/berlin2.dtsi
> arch/arm/boot/dts/berlin2cd.dtsi
> (Though the Berlin2 APB Timer have been configured with 8 timers.)
> 
> So the correct modification would be:
> 1. Split up the nodes into two ones with one IRQ per each node.
> 2. Make sure I was right by testing the new dts out.
> 3. Update the DT-node only and leave the DT-bindings as is.

Hmm, sounds good. Will give that a whirl tomorrow.
Thanks for the info/suggestions Sergey.


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

* Re: [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA
  2022-06-27 19:39 ` [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA Conor Dooley
@ 2022-06-27 21:34   ` Serge Semin
  2022-06-27 22:23     ` Conor.Dooley
  0 siblings, 1 reply; 26+ messages in thread
From: Serge Semin @ 2022-06-27 21:34 UTC (permalink / raw)
  To: Conor Dooley
  Cc: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Daniel Lezcano, Palmer Dabbelt,
	Palmer Dabbelt, Thomas Gleixner, Paul Walmsley, Albert Ou,
	Conor Dooley, Masahiro Yamada, Damien Le Moal,
	Geert Uytterhoeven, Niklas Cassel, Dillon Min, Heng Sia,
	Jose Abreu, dri-devel, devicetree, linux-kernel, dmaengine,
	alsa-devel, linux-spi, linux-riscv

On Mon, Jun 27, 2022 at 08:39:53PM +0100, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> The Canaan k210 apparently has a Sysnopsys Designware AXI DMA
> controller, but according to the documentation & devicetree it has 6
> interrupts rather than the standard one. Add a custom compatible that
> supports the 6 interrupt configuration which falls back to the standard
> binding which is currently the one in use in the devicetree entry.
> 
> Link: https://canaan-creative.com/wp-content/uploads/2020/03/kendryte_standalone_programming_guide_20190311144158_en.pdf #Page 58

I believe what you've got here is the per-channel IRQs, which is
activated for the DW AXI DMAC by setting IP-core synthesize parameter
DMAX_INTR_IO_TYPE=1 (CHANNEL AND COMMONREG). That's why there are six
IRQ signals and six DMA-channels available.

Seeing such setting isn't the Canaan k210 specific, but is the DW AXI
DMA controller common property, what would be right in this case is to
unconditionally extend the number of IRQs in the DT-bindings schema.

Please note the DW AXI DMAC driver currently doesn't support the
per-channel IRQs. So most likely the DMA will only work with using the
channel 0 only.

-Sergey

> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> ---
>  .../bindings/dma/snps,dw-axi-dmac.yaml        | 35 ++++++++++++++-----
>  1 file changed, 26 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> index 4324a94b26b2..bc85598151ef 100644
> --- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> +++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
> @@ -18,9 +18,13 @@ allOf:
>  
>  properties:
>    compatible:
> -    enum:
> -      - snps,axi-dma-1.01a
> -      - intel,kmb-axi-dma
> +    oneOf:
> +      - items:
> +          - const: canaan,k210-axi-dma
> +          - const: snps,axi-dma-1.01a
> +      - enum:
> +          - snps,axi-dma-1.01a
> +          - intel,kmb-axi-dma
>  
>    reg:
>      minItems: 1
> @@ -33,9 +37,6 @@ properties:
>        - const: axidma_ctrl_regs
>        - const: axidma_apb_regs
>  
> -  interrupts:
> -    maxItems: 1
> -
>    clocks:
>      items:
>        - description: Bus Clock
> @@ -92,6 +93,22 @@ properties:
>      minimum: 1
>      maximum: 256
>  
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: canaan,k210-axi-dma
> +
> +then:
> +  properties:
> +    interrupts:
> +      maxItems: 6
> +
> +else:
> +  properties:
> +    interrupts:
> +      maxItems: 1
> +
>  required:
>    - compatible
>    - reg
> @@ -105,7 +122,7 @@ required:
>    - snps,priority
>    - snps,block-size
>  
> -additionalProperties: false
> +unevaluatedProperties: false
>  
>  examples:
>    - |
> @@ -113,12 +130,12 @@ examples:
>       #include <dt-bindings/interrupt-controller/irq.h>
>       /* example with snps,dw-axi-dmac */
>       dmac: dma-controller@80000 {
> -         compatible = "snps,axi-dma-1.01a";
> +         compatible = "canaan,k210-axi-dma", "snps,axi-dma-1.01a";
>           reg = <0x80000 0x400>;
>           clocks = <&core_clk>, <&cfgr_clk>;
>           clock-names = "core-clk", "cfgr-clk";
>           interrupt-parent = <&intc>;
> -         interrupts = <27>;
> +         interrupts = <27>, <28>, <29>, <30>, <31>, <32>;
>           #dma-cells = <1>;
>           dma-channels = <4>;
>           snps,dma-masters = <2>;
> -- 
> 2.36.1
> 

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

* Re: [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA
  2022-06-27 21:34   ` Serge Semin
@ 2022-06-27 22:23     ` Conor.Dooley
  0 siblings, 0 replies; 26+ messages in thread
From: Conor.Dooley @ 2022-06-27 22:23 UTC (permalink / raw)
  To: fancer.lancer, mail
  Cc: airlied, daniel, robh+dt, krzysztof.kozlowski+dt, thierry.reding,
	sam, Eugeniy.Paltsev, vkoul, lgirdwood, broonie, daniel.lezcano,
	palmer, palmer, tglx, paul.walmsley, aou, masahiroy,
	damien.lemoal, geert, niklas.cassel, dillon.minfei, jee.heng.sia,
	joabreu, dri-devel, devicetree, linux-kernel, dmaengine,
	alsa-devel, linux-spi, linux-riscv

On 27/06/2022 22:34, Serge Semin wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On Mon, Jun 27, 2022 at 08:39:53PM +0100, Conor Dooley wrote:
>> From: Conor Dooley <conor.dooley@microchip.com>
>>
>> The Canaan k210 apparently has a Sysnopsys Designware AXI DMA
>> controller, but according to the documentation & devicetree it has 6
>> interrupts rather than the standard one. Add a custom compatible that
>> supports the 6 interrupt configuration which falls back to the standard
>> binding which is currently the one in use in the devicetree entry.
>>
>> Link: https://canaan-creative.com/wp-content/uploads/2020/03/kendryte_standalone_programming_guide_20190311144158_en.pdf #Page 58
> 
> I believe what you've got here is the per-channel IRQs, which is
> activated for the DW AXI DMAC by setting IP-core synthesize parameter
> DMAX_INTR_IO_TYPE=1 (CHANNEL AND COMMONREG). That's why there are six
> IRQ signals and six DMA-channels available.
> 
> Seeing such setting isn't the Canaan k210 specific, but is the DW AXI
> DMA controller common property, what would be right in this case is to
> unconditionally extend the number of IRQs in the DT-bindings schema.

Cool, willdo.
Thanks for all the great feedback.
Conor.

> 
> Please note the DW AXI DMAC driver currently doesn't support the
> per-channel IRQs. So most likely the DMA will only work with using the
> channel 0 only.
> 
> -Sergey
> 
>> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>> ---
>>  .../bindings/dma/snps,dw-axi-dmac.yaml        | 35 ++++++++++++++-----
>>  1 file changed, 26 insertions(+), 9 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
>> index 4324a94b26b2..bc85598151ef 100644
>> --- a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
>> +++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.yaml
>> @@ -18,9 +18,13 @@ allOf:
>>
>>  properties:
>>    compatible:
>> -    enum:
>> -      - snps,axi-dma-1.01a
>> -      - intel,kmb-axi-dma
>> +    oneOf:
>> +      - items:
>> +          - const: canaan,k210-axi-dma
>> +          - const: snps,axi-dma-1.01a
>> +      - enum:
>> +          - snps,axi-dma-1.01a
>> +          - intel,kmb-axi-dma
>>
>>    reg:
>>      minItems: 1
>> @@ -33,9 +37,6 @@ properties:
>>        - const: axidma_ctrl_regs
>>        - const: axidma_apb_regs
>>
>> -  interrupts:
>> -    maxItems: 1
>> -
>>    clocks:
>>      items:
>>        - description: Bus Clock
>> @@ -92,6 +93,22 @@ properties:
>>      minimum: 1
>>      maximum: 256
>>
>> +if:
>> +  properties:
>> +    compatible:
>> +      contains:
>> +        const: canaan,k210-axi-dma
>> +
>> +then:
>> +  properties:
>> +    interrupts:
>> +      maxItems: 6
>> +
>> +else:
>> +  properties:
>> +    interrupts:
>> +      maxItems: 1
>> +
>>  required:
>>    - compatible
>>    - reg
>> @@ -105,7 +122,7 @@ required:
>>    - snps,priority
>>    - snps,block-size
>>
>> -additionalProperties: false
>> +unevaluatedProperties: false
>>
>>  examples:
>>    - |
>> @@ -113,12 +130,12 @@ examples:
>>       #include <dt-bindings/interrupt-controller/irq.h>
>>       /* example with snps,dw-axi-dmac */
>>       dmac: dma-controller@80000 {
>> -         compatible = "snps,axi-dma-1.01a";
>> +         compatible = "canaan,k210-axi-dma", "snps,axi-dma-1.01a";
>>           reg = <0x80000 0x400>;
>>           clocks = <&core_clk>, <&cfgr_clk>;
>>           clock-names = "core-clk", "cfgr-clk";
>>           interrupt-parent = <&intc>;
>> -         interrupts = <27>;
>> +         interrupts = <27>, <28>, <29>, <30>, <31>, <32>;
>>           #dma-cells = <1>;
>>           dma-channels = <4>;
>>           snps,dma-masters = <2>;
>> --
>> 2.36.1
>>


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

* Re: [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema
  2022-06-27 19:39 ` [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema Conor Dooley
@ 2022-06-28 15:00   ` Heiko Stübner
  2022-06-28 15:04     ` Heiko Stübner
  0 siblings, 1 reply; 26+ messages in thread
From: Heiko Stübner @ 2022-06-28 15:00 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt, linux-riscv
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv, Conor Dooley

Hi Conor,

Am Montag, 27. Juni 2022, 21:39:49 CEST schrieb Conor Dooley:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> A dt-schema binding for the Ilitek ili9341 was created as
> panel/ilitek,ili9341.yaml but the txt binding was ignored in the
> process. Move the remaining items in the txt binding to the yaml one &
> delete it.
> 
> The example in the txt binding has a spi-max-frequency which disagrees
> with the yaml replacement (and its own documentation) so change that to
> conform with the binding. There are no users in tree of the Adafruit
> yx240qv29 to check against.
> 
> Link: https://cdn-learn.adafruit.com/assets/assets/000/046/879/original/SPEC-YX240QV29-T_Rev.A__1_.pdf
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>

in your v1 you already got a [0]
Reviewed-by: Rob Herring <robh@kernel.org>
for this patch

Looking at the diffstat, which didn't change, you should
include such tags in followup revisions, to prevent
reviewers from double efforts.

Heiko


[0] https://lore.kernel.org/r/20220627232054.GA3155668-robh@kernel.org

> ---
>  .../bindings/display/ilitek,ili9341.txt       | 27 -----------
>  .../display/panel/ilitek,ili9341.yaml         | 48 +++++++++++++------
>  2 files changed, 34 insertions(+), 41 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt
> 
> diff --git a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt b/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
> deleted file mode 100644
> index 169b32e4ee4e..000000000000
> --- a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -Ilitek ILI9341 display panels
> -
> -This binding is for display panels using an Ilitek ILI9341 controller in SPI
> -mode.
> -
> -Required properties:
> -- compatible:	"adafruit,yx240qv29", "ilitek,ili9341"
> -- dc-gpios:	D/C pin
> -- reset-gpios:	Reset pin
> -
> -The node for this driver must be a child node of a SPI controller, hence
> -all mandatory properties described in ../spi/spi-bus.txt must be specified.
> -
> -Optional properties:
> -- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
> -- backlight:	phandle of the backlight device attached to the panel
> -
> -Example:
> -	display@0{
> -		compatible = "adafruit,yx240qv29", "ilitek,ili9341";
> -		reg = <0>;
> -		spi-max-frequency = <32000000>;
> -		dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
> -		reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
> -		rotation = <270>;
> -		backlight = <&backlight>;
> -	};
> diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
> index 6058948a9764..94ca92878434 100644
> --- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
> @@ -23,6 +23,7 @@ properties:
>        - enum:
>            # ili9341 240*320 Color on stm32f429-disco board
>            - st,sf-tc240t-9370-t
> +          - adafruit,yx240qv29
>        - const: ilitek,ili9341
>  
>    reg: true
> @@ -47,31 +48,50 @@ properties:
>    vddi-led-supply:
>      description: Voltage supply for the LED driver (1.65 .. 3.3 V)
>  
> -additionalProperties: false
> +unevaluatedProperties: false
>  
>  required:
>    - compatible
>    - reg
>    - dc-gpios
> -  - port
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        enum:
> +          - st,sf-tc240t-9370-t
> +then:
> +  required:
> +    - port
>  
>  examples:
>    - |+
> +    #include <dt-bindings/gpio/gpio.h>
>      spi {
>          #address-cells = <1>;
>          #size-cells = <0>;
>          panel: display@0 {
> -                 compatible = "st,sf-tc240t-9370-t",
> -                              "ilitek,ili9341";
> -                 reg = <0>;
> -                 spi-3wire;
> -                 spi-max-frequency = <10000000>;
> -                 dc-gpios = <&gpiod 13 0>;
> -                 port {
> -                         panel_in: endpoint {
> -                           remote-endpoint = <&display_out>;
> -                      };
> -                 };
> -             };
> +            compatible = "st,sf-tc240t-9370-t",
> +                         "ilitek,ili9341";
> +            reg = <0>;
> +            spi-3wire;
> +            spi-max-frequency = <10000000>;
> +            dc-gpios = <&gpiod 13 0>;
> +            port {
> +                panel_in: endpoint {
> +                    remote-endpoint = <&display_out>;
> +                };
> +            };
> +        };
> +        display@1{
> +            compatible = "adafruit,yx240qv29", "ilitek,ili9341";
> +            reg = <1>;
> +            spi-max-frequency = <10000000>;
> +            dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
> +            reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
> +            rotation = <270>;
> +            backlight = <&backlight>;
>          };
> +    };
>  ...
> 





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

* Re: [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema
  2022-06-28 15:00   ` Heiko Stübner
@ 2022-06-28 15:04     ` Heiko Stübner
  2022-06-28 16:49       ` Conor.Dooley
  0 siblings, 1 reply; 26+ messages in thread
From: Heiko Stübner @ 2022-06-28 15:04 UTC (permalink / raw)
  To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Serge Semin, Daniel Lezcano,
	Palmer Dabbelt, Palmer Dabbelt, linux-riscv
  Cc: Thomas Gleixner, Paul Walmsley, Albert Ou, Conor Dooley,
	Masahiro Yamada, Damien Le Moal, Geert Uytterhoeven,
	Niklas Cassel, Dillon Min, Heng Sia, Jose Abreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi,
	linux-riscv, Conor Dooley

Am Dienstag, 28. Juni 2022, 17:00:56 CEST schrieb Heiko Stübner:
> Hi Conor,
> 
> Am Montag, 27. Juni 2022, 21:39:49 CEST schrieb Conor Dooley:
> > From: Conor Dooley <conor.dooley@microchip.com>
> > 
> > A dt-schema binding for the Ilitek ili9341 was created as
> > panel/ilitek,ili9341.yaml but the txt binding was ignored in the
> > process. Move the remaining items in the txt binding to the yaml one &
> > delete it.
> > 
> > The example in the txt binding has a spi-max-frequency which disagrees
> > with the yaml replacement (and its own documentation) so change that to
> > conform with the binding. There are no users in tree of the Adafruit
> > yx240qv29 to check against.
> > 
> > Link: https://cdn-learn.adafruit.com/assets/assets/000/046/879/original/SPEC-YX240QV29-T_Rev.A__1_.pdf
> > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> 
> in your v1 you already got a [0]
> Reviewed-by: Rob Herring <robh@kernel.org>
> for this patch
> 
> Looking at the diffstat, which didn't change, you should
> include such tags in followup revisions, to prevent
> reviewers from double efforts.

and now I see that the review actually happened _after_ v2 was send ;-)


> [0] https://lore.kernel.org/r/20220627232054.GA3155668-robh@kernel.org
> 
> > ---
> >  .../bindings/display/ilitek,ili9341.txt       | 27 -----------
> >  .../display/panel/ilitek,ili9341.yaml         | 48 +++++++++++++------
> >  2 files changed, 34 insertions(+), 41 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt b/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
> > deleted file mode 100644
> > index 169b32e4ee4e..000000000000
> > --- a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
> > +++ /dev/null
> > @@ -1,27 +0,0 @@
> > -Ilitek ILI9341 display panels
> > -
> > -This binding is for display panels using an Ilitek ILI9341 controller in SPI
> > -mode.
> > -
> > -Required properties:
> > -- compatible:	"adafruit,yx240qv29", "ilitek,ili9341"
> > -- dc-gpios:	D/C pin
> > -- reset-gpios:	Reset pin
> > -
> > -The node for this driver must be a child node of a SPI controller, hence
> > -all mandatory properties described in ../spi/spi-bus.txt must be specified.
> > -
> > -Optional properties:
> > -- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
> > -- backlight:	phandle of the backlight device attached to the panel
> > -
> > -Example:
> > -	display@0{
> > -		compatible = "adafruit,yx240qv29", "ilitek,ili9341";
> > -		reg = <0>;
> > -		spi-max-frequency = <32000000>;
> > -		dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
> > -		reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
> > -		rotation = <270>;
> > -		backlight = <&backlight>;
> > -	};
> > diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
> > index 6058948a9764..94ca92878434 100644
> > --- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
> > +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
> > @@ -23,6 +23,7 @@ properties:
> >        - enum:
> >            # ili9341 240*320 Color on stm32f429-disco board
> >            - st,sf-tc240t-9370-t
> > +          - adafruit,yx240qv29
> >        - const: ilitek,ili9341
> >  
> >    reg: true
> > @@ -47,31 +48,50 @@ properties:
> >    vddi-led-supply:
> >      description: Voltage supply for the LED driver (1.65 .. 3.3 V)
> >  
> > -additionalProperties: false
> > +unevaluatedProperties: false
> >  
> >  required:
> >    - compatible
> >    - reg
> >    - dc-gpios
> > -  - port
> > +
> > +if:
> > +  properties:
> > +    compatible:
> > +      contains:
> > +        enum:
> > +          - st,sf-tc240t-9370-t
> > +then:
> > +  required:
> > +    - port
> >  
> >  examples:
> >    - |+
> > +    #include <dt-bindings/gpio/gpio.h>
> >      spi {
> >          #address-cells = <1>;
> >          #size-cells = <0>;
> >          panel: display@0 {
> > -                 compatible = "st,sf-tc240t-9370-t",
> > -                              "ilitek,ili9341";
> > -                 reg = <0>;
> > -                 spi-3wire;
> > -                 spi-max-frequency = <10000000>;
> > -                 dc-gpios = <&gpiod 13 0>;
> > -                 port {
> > -                         panel_in: endpoint {
> > -                           remote-endpoint = <&display_out>;
> > -                      };
> > -                 };
> > -             };
> > +            compatible = "st,sf-tc240t-9370-t",
> > +                         "ilitek,ili9341";
> > +            reg = <0>;
> > +            spi-3wire;
> > +            spi-max-frequency = <10000000>;
> > +            dc-gpios = <&gpiod 13 0>;
> > +            port {
> > +                panel_in: endpoint {
> > +                    remote-endpoint = <&display_out>;
> > +                };
> > +            };
> > +        };
> > +        display@1{
> > +            compatible = "adafruit,yx240qv29", "ilitek,ili9341";
> > +            reg = <1>;
> > +            spi-max-frequency = <10000000>;
> > +            dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
> > +            reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
> > +            rotation = <270>;
> > +            backlight = <&backlight>;
> >          };
> > +    };
> >  ...
> > 
> 
> 





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

* Re: [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width
  2022-06-27 20:21   ` Serge Semin
@ 2022-06-28 15:26     ` Rob Herring
  0 siblings, 0 replies; 26+ messages in thread
From: Rob Herring @ 2022-06-28 15:26 UTC (permalink / raw)
  To: Serge Semin
  Cc: Conor Dooley, David Airlie, Daniel Vetter, Krzysztof Kozlowski,
	Thierry Reding, Sam Ravnborg, Eugeniy Paltsev, Vinod Koul,
	Liam Girdwood, Mark Brown, Daniel Lezcano, Palmer Dabbelt,
	Palmer Dabbelt, Thomas Gleixner, Paul Walmsley, Albert Ou,
	Conor Dooley, Masahiro Yamada, Damien Le Moal,
	Geert Uytterhoeven, Niklas Cassel, Dillon Min, Heng Sia,
	Jose Abreu, dri-devel, devicetree, linux-kernel, dmaengine,
	alsa-devel, linux-spi, linux-riscv

On Mon, Jun 27, 2022 at 11:21:49PM +0300, Serge Semin wrote:
> On Mon, Jun 27, 2022 at 08:39:52PM +0100, Conor Dooley wrote:
> > From: Conor Dooley <conor.dooley@microchip.com>
> > 
> > Most users of dw-apb-ssi use spi-{r,t}x-bus-width of 1, however the
> > Canaan k210 is wired up for a width of 4.
> > Quoting Serge:
> > The modern DW APB SSI controllers of v.4.* and newer also support the
> > enhanced SPI Modes too (Dual, Quad and Octal). Since the IP-core
> > version is auto-detected at run-time there is no way to create a
> > DT-schema correctly constraining the Rx/Tx SPI bus widths.
> > /endquote
> > 
> > As such, drop the restriction on only supporting a bus width of 1.
> > 
> > Link: https://lore.kernel.org/all/20220620205654.g7fyipwytbww5757@mobilestation/
> > Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> > ---
> > Serge, I dropped your R-b when I swapped to the default
> > property since it changed the enum.
> > ---
> >  Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml | 6 ------
> >  1 file changed, 6 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> > index e25d44c218f2..0a43d6e0ef91 100644
> > --- a/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> > +++ b/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml
> > @@ -143,12 +143,6 @@ patternProperties:
> >          minimum: 0
> >          maximum: 3
> >  
> 
> > -      spi-rx-bus-width:
> > -        const: 1
> > -
> > -      spi-tx-bus-width:
> > -        const: 1
> > -
> 
> My comment was:
> > > > You can just use a more relaxed constraint "enum: [1 2 4 8]" here
> > >
> > > 8 too? sure.
> Then Rob said:
> > Then no constraints needed because the common definition already has
> > this presumably.
> 
> IMO preserving the device-specific constraints even if they match the
> generic ones has some maintainability benefits. What if you get to
> discover a new HW which supports Hexal mode? 

x16? Wouldn't we be back to parallel NOR and the problems with parallel 
buses?

> Then you would have
> needed to update the common schema constraints. But that would have
> caused permitting the unsupported bus-mode for all the schemas, which
> isn't correct. So as I see it the explicit bus-width enumeration would
> be ok to have here. But I'll leave it for Rob to make a final
> decision.

Assuming a new width does appear, it's just a matter of time before the 
DW block has a new rev supporting it too, so there's 2 places to update. 
Also, a given platform may pinout less than the block supports, so you 
can't ever be 100% sure an out of range value is in a DT.

But either way is okay with me. If you do keep constraints, you only 
need 'maximum: 8'.

Acked-by: Rob Herring <robh@kernel.org>

Rob

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

* Re: [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema
  2022-06-28 15:04     ` Heiko Stübner
@ 2022-06-28 16:49       ` Conor.Dooley
  0 siblings, 0 replies; 26+ messages in thread
From: Conor.Dooley @ 2022-06-28 16:49 UTC (permalink / raw)
  To: heiko, airlied, daniel, robh+dt, krzysztof.kozlowski+dt,
	thierry.reding, sam, Eugeniy.Paltsev, vkoul, lgirdwood, broonie,
	fancer.lancer, daniel.lezcano, palmer, palmer, linux-riscv
  Cc: tglx, paul.walmsley, aou, masahiroy, damien.lemoal, geert,
	niklas.cassel, dillon.minfei, jee.heng.sia, joabreu, dri-devel,
	devicetree, linux-kernel, dmaengine, alsa-devel, linux-spi, mail

On 28/06/2022 16:04, Heiko Stübner wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Am Dienstag, 28. Juni 2022, 17:00:56 CEST schrieb Heiko Stübner:
>> Hi Conor,
>>
>> Am Montag, 27. Juni 2022, 21:39:49 CEST schrieb Conor Dooley:
>>> From: Conor Dooley <conor.dooley@microchip.com>
>>>
>>> A dt-schema binding for the Ilitek ili9341 was created as
>>> panel/ilitek,ili9341.yaml but the txt binding was ignored in the
>>> process. Move the remaining items in the txt binding to the yaml one &
>>> delete it.
>>>
>>> The example in the txt binding has a spi-max-frequency which disagrees
>>> with the yaml replacement (and its own documentation) so change that to
>>> conform with the binding. There are no users in tree of the Adafruit
>>> yx240qv29 to check against.
>>>
>>> Link: https://cdn-learn.adafruit.com/assets/assets/000/046/879/original/SPEC-YX240QV29-T_Rev.A__1_.pdf
>>> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>>
>> in your v1 you already got a [0]
>> Reviewed-by: Rob Herring <robh@kernel.org>
>> for this patch
>>
>> Looking at the diffstat, which didn't change, you should
>> include such tags in followup revisions, to prevent
>> reviewers from double efforts.
> 
> and now I see that the review actually happened _after_ v2 was send ;-)

;) you had me scratching my head for a moment!

> 
> 
>> [0] https://lore.kernel.org/r/20220627232054.GA3155668-robh@kernel.org
>>
>>> ---
>>>  .../bindings/display/ilitek,ili9341.txt       | 27 -----------
>>>  .../display/panel/ilitek,ili9341.yaml         | 48 +++++++++++++------
>>>  2 files changed, 34 insertions(+), 41 deletions(-)
>>>  delete mode 100644 Documentation/devicetree/bindings/display/ilitek,ili9341.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt b/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
>>> deleted file mode 100644
>>> index 169b32e4ee4e..000000000000
>>> --- a/Documentation/devicetree/bindings/display/ilitek,ili9341.txt
>>> +++ /dev/null
>>> @@ -1,27 +0,0 @@
>>> -Ilitek ILI9341 display panels
>>> -
>>> -This binding is for display panels using an Ilitek ILI9341 controller in SPI
>>> -mode.
>>> -
>>> -Required properties:
>>> -- compatible:      "adafruit,yx240qv29", "ilitek,ili9341"
>>> -- dc-gpios:        D/C pin
>>> -- reset-gpios:     Reset pin
>>> -
>>> -The node for this driver must be a child node of a SPI controller, hence
>>> -all mandatory properties described in ../spi/spi-bus.txt must be specified.
>>> -
>>> -Optional properties:
>>> -- rotation:        panel rotation in degrees counter clockwise (0,90,180,270)
>>> -- backlight:       phandle of the backlight device attached to the panel
>>> -
>>> -Example:
>>> -   display@0{
>>> -           compatible = "adafruit,yx240qv29", "ilitek,ili9341";
>>> -           reg = <0>;
>>> -           spi-max-frequency = <32000000>;
>>> -           dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
>>> -           reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
>>> -           rotation = <270>;
>>> -           backlight = <&backlight>;
>>> -   };
>>> diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
>>> index 6058948a9764..94ca92878434 100644
>>> --- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
>>> +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
>>> @@ -23,6 +23,7 @@ properties:
>>>        - enum:
>>>            # ili9341 240*320 Color on stm32f429-disco board
>>>            - st,sf-tc240t-9370-t
>>> +          - adafruit,yx240qv29
>>>        - const: ilitek,ili9341
>>>
>>>    reg: true
>>> @@ -47,31 +48,50 @@ properties:
>>>    vddi-led-supply:
>>>      description: Voltage supply for the LED driver (1.65 .. 3.3 V)
>>>
>>> -additionalProperties: false
>>> +unevaluatedProperties: false
>>>
>>>  required:
>>>    - compatible
>>>    - reg
>>>    - dc-gpios
>>> -  - port
>>> +
>>> +if:
>>> +  properties:
>>> +    compatible:
>>> +      contains:
>>> +        enum:
>>> +          - st,sf-tc240t-9370-t
>>> +then:
>>> +  required:
>>> +    - port
>>>
>>>  examples:
>>>    - |+
>>> +    #include <dt-bindings/gpio/gpio.h>
>>>      spi {
>>>          #address-cells = <1>;
>>>          #size-cells = <0>;
>>>          panel: display@0 {
>>> -                 compatible = "st,sf-tc240t-9370-t",
>>> -                              "ilitek,ili9341";
>>> -                 reg = <0>;
>>> -                 spi-3wire;
>>> -                 spi-max-frequency = <10000000>;
>>> -                 dc-gpios = <&gpiod 13 0>;
>>> -                 port {
>>> -                         panel_in: endpoint {
>>> -                           remote-endpoint = <&display_out>;
>>> -                      };
>>> -                 };
>>> -             };
>>> +            compatible = "st,sf-tc240t-9370-t",
>>> +                         "ilitek,ili9341";
>>> +            reg = <0>;
>>> +            spi-3wire;
>>> +            spi-max-frequency = <10000000>;
>>> +            dc-gpios = <&gpiod 13 0>;
>>> +            port {
>>> +                panel_in: endpoint {
>>> +                    remote-endpoint = <&display_out>;
>>> +                };
>>> +            };
>>> +        };
>>> +        display@1{
>>> +            compatible = "adafruit,yx240qv29", "ilitek,ili9341";
>>> +            reg = <1>;
>>> +            spi-max-frequency = <10000000>;
>>> +            dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
>>> +            reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
>>> +            rotation = <270>;
>>> +            backlight = <&backlight>;
>>>          };
>>> +    };
>>>  ...
>>>
>>
>>
> 
> 
> 
> 


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

end of thread, other threads:[~2022-06-28 16:51 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-27 19:39 [PATCH v2 00/16] Canaan devicetree fixes Conor Dooley
2022-06-27 19:39 ` [PATCH v2 01/16] dt-bindings: display: convert ilitek,ili9341.txt to dt-schema Conor Dooley
2022-06-28 15:00   ` Heiko Stübner
2022-06-28 15:04     ` Heiko Stübner
2022-06-28 16:49       ` Conor.Dooley
2022-06-27 19:39 ` [PATCH v2 02/16] dt-bindings: display: panel: allow ilitek,ili9341 in isolation Conor Dooley
2022-06-27 19:39 ` [PATCH v2 03/16] ASoC: dt-bindings: convert designware-i2s to dt-schema Conor Dooley
2022-06-27 19:39 ` [PATCH v2 04/16] spi: dt-bindings: dw-apb-ssi: update spi-{r,t}x-bus-width Conor Dooley
2022-06-27 20:21   ` Serge Semin
2022-06-28 15:26     ` Rob Herring
2022-06-27 19:39 ` [PATCH v2 05/16] dt-bindings: dma: add Canaan k210 to Synopsys DesignWare DMA Conor Dooley
2022-06-27 21:34   ` Serge Semin
2022-06-27 22:23     ` Conor.Dooley
2022-06-27 19:39 ` [PATCH v2 06/16] dt-bindings: timer: add Canaan k210 to Synopsys DesignWare timer Conor Dooley
2022-06-27 21:13   ` Serge Semin
2022-06-27 21:18     ` Conor Dooley
2022-06-27 19:39 ` [PATCH v2 07/16] dt-bindings: memory-controllers: add canaan k210 sram controller Conor Dooley
2022-06-27 19:39 ` [PATCH v2 08/16] riscv: dts: canaan: fix the k210's memory node Conor Dooley
2022-06-27 19:39 ` [PATCH v2 09/16] riscv: dts: canaan: add a specific compatible for k210's dma Conor Dooley
2022-06-27 19:39 ` [PATCH v2 10/16] riscv: dts: canaan: add a specific compatible for k210's timers Conor Dooley
2022-06-27 19:39 ` [PATCH v2 11/16] riscv: dts: canaan: fix mmc node names Conor Dooley
2022-06-27 19:40 ` [PATCH v2 12/16] riscv: dts: canaan: fix kd233 display spi frequency Conor Dooley
2022-06-27 19:40 ` [PATCH v2 13/16] riscv: dts: canaan: use custom compatible for k210 i2s Conor Dooley
2022-06-27 19:40 ` [PATCH v2 14/16] riscv: dts: canaan: remove spi-max-frequency from controllers Conor Dooley
2022-06-27 19:40 ` [PATCH v2 15/16] riscv: dts: canaan: fix bus {ranges,reg} warnings Conor Dooley
2022-06-27 19:40 ` [PATCH v2 16/16] riscv: dts: canaan: build all devicetress if SOC_CANAAN Conor Dooley

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