[PATCH] dt-bindings: spi: Add bcm2835-aux-spi.yaml file.

Karan Sanghavi posted 1 patch 1 month, 1 week ago
.../bindings/spi/brcm,bcm2835-aux-spi.txt     | 38 -----------
.../bindings/spi/brcm,bcm2835-aux-spi.yaml    | 66 +++++++++++++++++++
2 files changed, 66 insertions(+), 38 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.txt
create mode 100644 Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
[PATCH] dt-bindings: spi: Add bcm2835-aux-spi.yaml file.
Posted by Karan Sanghavi 1 month, 1 week ago
Converted the brcm,bcm2835-aux-spi.txt file to
its respective yaml file format.

Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
---

While running
make CHECK_DTBS=y broadcom/bcm2711-rpi-4-b.dtb,
I encountered an error related to the compatible property
for brcm,bcm2835-aux-spi. To resolve this, I converted the
text file to a YAML binding file and checked it with

make dt_binding_check DT_SCHEMA_FILES=brcm,bcm2835-aux-spi.yaml

and

make CHECK_DTBS=y broadcom/bcm2711-rpi-4-b.dtb

and generates no error.

However, I have a question regarding the cs-gpios property.
The BCM2711 datasheet mentions that each Universal SPI
Master has 3 independent chip selects. I’m wondering
if this means these chip select (CS) pins are native,
or if we still need to attach GPIOs to them.
If GPIOs are required for these 3 CS pins,
does that mean we also need to include them in the
device tree schema? and also as arequired property in
binding?

 .../bindings/spi/brcm,bcm2835-aux-spi.txt     | 38 -----------
 .../bindings/spi/brcm,bcm2835-aux-spi.yaml    | 66 +++++++++++++++++++
 2 files changed, 66 insertions(+), 38 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.txt
 create mode 100644 Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml

diff --git a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.txt b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.txt
deleted file mode 100644
index d7668f41b03b..000000000000
--- a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-Broadcom BCM2835 auxiliary SPI1/2 controller
-
-The BCM2835 contains two forms of SPI master controller, one known simply as
-SPI0, and the other known as the "Universal SPI Master"; part of the
-auxiliary block. This binding applies to the SPI1/2 controller.
-
-Required properties:
-- compatible: Should be "brcm,bcm2835-aux-spi".
-- reg: Should contain register location and length for the spi block
-- interrupts: Should contain shared interrupt of the aux block
-- clocks: The clock feeding the SPI controller - needs to
-	  point to the auxiliary clock driver of the bcm2835,
-	  as this clock will enable the output gate for the specific
-	  clock.
-- cs-gpios: the cs-gpios (native cs is NOT supported)
-	    see also spi-bus.txt
-
-Example:
-
-spi1@7e215080 {
-	compatible = "brcm,bcm2835-aux-spi";
-	reg = <0x7e215080 0x40>;
-	interrupts = <1 29>;
-	clocks = <&aux_clocks BCM2835_AUX_CLOCK_SPI1>;
-	#address-cells = <1>;
-	#size-cells = <0>;
-	cs-gpios = <&gpio 18>, <&gpio 17>, <&gpio 16>;
-};
-
-spi2@7e2150c0 {
-	compatible = "brcm,bcm2835-aux-spi";
-	reg = <0x7e2150c0 0x40>;
-	interrupts = <1 29>;
-	clocks = <&aux_clocks BCM2835_AUX_CLOCK_SPI2>;
-	#address-cells = <1>;
-	#size-cells = <0>;
-	cs-gpios = <&gpio 43>, <&gpio 44>, <&gpio 45>;
-};
diff --git a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
new file mode 100644
index 000000000000..4c24cf2fe214
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/brcm,bcm2835-aux-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom BCM2835 Auxiliary SPI1/2 Controller
+
+maintainers:
+  - Karan Sanghavi <karansanghvi98@gmail.com>
+
+description: |
+  The BCM2835 contains two forms of SPI master controller. One is known simply as
+  SPI0, and the other as the "Universal SPI Master," part of the auxiliary block.
+  This binding applies to the SPI1 and SPI2 auxiliary controllers.
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - brcm,bcm2835-aux-spi
+    description: Broadcom BCM2835 Auxiliary SPI controller for SPI1 and SPI2.
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Reference to the auxiliary clock driver for the BCM2835.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/bcm2835-aux.h>
+    spi@7e215080 {
+        compatible = "brcm,bcm2835-aux-spi";
+        reg = <0x7e215080 0x40>;
+        interrupts = <1 29>;
+        clocks = <&aux_clocks BCM2835_AUX_CLOCK_SPI1>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
+
+  - |
+    #include <dt-bindings/clock/bcm2835-aux.h>
+    spi@7e2150c0 {
+        compatible = "brcm,bcm2835-aux-spi";
+        reg = <0x7e2150c0 0x40>;
+        interrupts = <1 29>;
+        clocks = <&aux_clocks BCM2835_AUX_CLOCK_SPI2>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
+
-- 
2.43.0

Re: [PATCH] dt-bindings: spi: Add bcm2835-aux-spi.yaml file.
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On 14/10/2024 19:02, Karan Sanghavi wrote:
> Converted the brcm,bcm2835-aux-spi.txt file to
> its respective yaml file format.
> 
> Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
> ---
> 

You already posted it and received review. Why do you send the same?
Please respond to the review.

See submitting-patches document.

Best regards,
Krzysztof
[PATCH v2] dt-bindings: spi: Convert bcm2835-aux-spi.txt to
Posted by Karan Sanghavi 1 month, 1 week ago
Converted the brcm,bcm2835-aux-spi.txt file to
its respective yaml file format.

Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
---
v1->v2 : Made the necessary changes in  the yaml file 
suggested by Krzysztof Kozlowski

v1:
- https://lore.kernel.org/all/Zw1Oj1utiBJ9Sosg@Emma/

 .../bindings/spi/brcm,bcm2835-aux-spi.yaml     | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
index 4c24cf2fe214..f83f71ba78dc 100644
--- a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
+++ b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
@@ -9,8 +9,7 @@ title: Broadcom BCM2835 Auxiliary SPI1/2 Controller
 maintainers:
   - Karan Sanghavi <karansanghvi98@gmail.com>
 
-description: |
-  The BCM2835 contains two forms of SPI master controller. One is known simply as
+description: The BCM2835 contains two forms of SPI master controller. One is known simply as
   SPI0, and the other as the "Universal SPI Master," part of the auxiliary block.
   This binding applies to the SPI1 and SPI2 auxiliary controllers.
 
@@ -21,7 +20,6 @@ properties:
   compatible:
     enum:
       - brcm,bcm2835-aux-spi
-    description: Broadcom BCM2835 Auxiliary SPI controller for SPI1 and SPI2.
 
   reg:
     maxItems: 1
@@ -30,8 +28,7 @@ properties:
     maxItems: 1
 
   clocks:
-    items:
-      - description: Reference to the auxiliary clock driver for the BCM2835.
+    maxItems: 1
 
 required:
   - compatible
@@ -53,14 +50,3 @@ examples:
         #size-cells = <0>;
     };
 
-  - |
-    #include <dt-bindings/clock/bcm2835-aux.h>
-    spi@7e2150c0 {
-        compatible = "brcm,bcm2835-aux-spi";
-        reg = <0x7e2150c0 0x40>;
-        interrupts = <1 29>;
-        clocks = <&aux_clocks BCM2835_AUX_CLOCK_SPI2>;
-        #address-cells = <1>;
-        #size-cells = <0>;
-    };
-
-- 
2.43.0
Re: [PATCH v2] dt-bindings: spi: Convert bcm2835-aux-spi.txt to
Posted by Conor Dooley 1 month, 1 week ago
On Tue, Oct 15, 2024 at 06:09:07PM +0000, Karan Sanghavi wrote:
> Converted the brcm,bcm2835-aux-spi.txt file to
> its respective yaml file format.
> 
> Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
> ---
> v1->v2 : Made the necessary changes in  the yaml file 
> suggested by Krzysztof Kozlowski
> 
> v1:
> - https://lore.kernel.org/all/Zw1Oj1utiBJ9Sosg@Emma/

I don't understand this patch. How is it converting a text file to
json schema when all you're doing here is deleting stuff from an
existing yaml file?

> 
>  .../bindings/spi/brcm,bcm2835-aux-spi.yaml     | 18 ++----------------
>  1 file changed, 2 insertions(+), 16 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
> index 4c24cf2fe214..f83f71ba78dc 100644
> --- a/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
> +++ b/Documentation/devicetree/bindings/spi/brcm,bcm2835-aux-spi.yaml
> @@ -9,8 +9,7 @@ title: Broadcom BCM2835 Auxiliary SPI1/2 Controller
>  maintainers:
>    - Karan Sanghavi <karansanghvi98@gmail.com>
>  
> -description: |
> -  The BCM2835 contains two forms of SPI master controller. One is known simply as
> +description: The BCM2835 contains two forms of SPI master controller. One is known simply as
>    SPI0, and the other as the "Universal SPI Master," part of the auxiliary block.
>    This binding applies to the SPI1 and SPI2 auxiliary controllers.
>  
> @@ -21,7 +20,6 @@ properties:
>    compatible:
>      enum:
>        - brcm,bcm2835-aux-spi
> -    description: Broadcom BCM2835 Auxiliary SPI controller for SPI1 and SPI2.
>  
>    reg:
>      maxItems: 1
> @@ -30,8 +28,7 @@ properties:
>      maxItems: 1
>  
>    clocks:
> -    items:
> -      - description: Reference to the auxiliary clock driver for the BCM2835.
> +    maxItems: 1
>  
>  required:
>    - compatible
> @@ -53,14 +50,3 @@ examples:
>          #size-cells = <0>;
>      };
>  
> -  - |
> -    #include <dt-bindings/clock/bcm2835-aux.h>
> -    spi@7e2150c0 {
> -        compatible = "brcm,bcm2835-aux-spi";
> -        reg = <0x7e2150c0 0x40>;
> -        interrupts = <1 29>;
> -        clocks = <&aux_clocks BCM2835_AUX_CLOCK_SPI2>;
> -        #address-cells = <1>;
> -        #size-cells = <0>;
> -    };
> -
> -- 
> 2.43.0
> 
Re: [PATCH v2] dt-bindings: spi: Convert bcm2835-aux-spi.txt to
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On 15/10/2024 22:25, Conor Dooley wrote:
> On Tue, Oct 15, 2024 at 06:09:07PM +0000, Karan Sanghavi wrote:
>> Converted the brcm,bcm2835-aux-spi.txt file to
>> its respective yaml file format.
>>
>> Signed-off-by: Karan Sanghavi <karansanghvi98@gmail.com>
>> ---
>> v1->v2 : Made the necessary changes in  the yaml file 
>> suggested by Krzysztof Kozlowski
>>
>> v1:
>> - https://lore.kernel.org/all/Zw1Oj1utiBJ9Sosg@Emma/
> 
> I don't understand this patch. How is it converting a text file to
> json schema when all you're doing here is deleting stuff from an
> existing yaml file?

I guess this is supposed to be v2, but it's all messed up.

Karan,
1. Respond to previous review.
2. Prepare v3 incorporating the review.
3. Properly use Git to amend your commit - proficiency in Git is
basically a requirement and we won't be teaching this here. This is
kernel development, so assumption is that you know how to use Git (and
not Github, these are entirely different things).
4. Send v3, do not attach the email to some other versions/threads
whatever. Just use 'b4' if you have troubles with 'git format-patch'.


Best regards,
Krzysztof