[5/7] dt-bindings: trivial-devices: Add IOT2050 Arduino SPI connector

Message ID 7838d99a1795337c73f480fafcbf698fc17d16dd.1698413678.git.jan.kiszka@siemens.com
State New
Headers
Series arm64: dts: iot2050: DT fixes, cleanups and enhancements |

Commit Message

Jan Kiszka Oct. 27, 2023, 1:34 p.m. UTC
  From: Jan Kiszka <jan.kiszka@siemens.com>

On the Siemens IOT2050 devices, the SPI controller wired to the Arduino
connector is normally driven by userspace. Introduce a binding for use
by spidev.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Rob Herring Oct. 30, 2023, 4:43 p.m. UTC | #1
On Fri, Oct 27, 2023 at 03:34:36PM +0200, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kiszka@siemens.com>
> 
> On the Siemens IOT2050 devices, the SPI controller wired to the Arduino
> connector is normally driven by userspace. Introduce a binding for use
> by spidev.

What's spidev? Not a h/w device...


> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>  Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 430a814f64a5..01b9f36afcd5 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -349,6 +349,8 @@ properties:
>            - silabs,si3210
>              # Relative Humidity and Temperature Sensors
>            - silabs,si7020
> +            # Siemens IOT2050: SPI interface on Arduino connector
> +          - siemens,iot2050-arduino-spi

How is this specific to your board? Presumably, an 'Arduino connector' 
is a somewhat standard interface, right? If every board with an Arduino 
connector adds a compatible, this doesn't scale.

A connector is what you should be describing, but I imagine it is not 
just SPI. Here's some past discussions[1][2] on the need for connector 
bindings.

Rob


[1] https://lore.kernel.org/all/20220421094421.288672-1-michael@walle.cc/
[2] https://lore.kernel.org/all/CAL_JsqK2DKPbaFvUPSU2E7oh1_pryrRXPMg8OASmK722jmznwA@mail.gmail.com/
  
Jan Kiszka Oct. 30, 2023, 5:35 p.m. UTC | #2
On 30.10.23 17:43, Rob Herring wrote:
> On Fri, Oct 27, 2023 at 03:34:36PM +0200, Jan Kiszka wrote:
>> From: Jan Kiszka <jan.kiszka@siemens.com>
>>
>> On the Siemens IOT2050 devices, the SPI controller wired to the Arduino
>> connector is normally driven by userspace. Introduce a binding for use
>> by spidev.
> 
> What's spidev? Not a h/w device...
> 
> 
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>> ---
>>  Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
>> index 430a814f64a5..01b9f36afcd5 100644
>> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
>> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
>> @@ -349,6 +349,8 @@ properties:
>>            - silabs,si3210
>>              # Relative Humidity and Temperature Sensors
>>            - silabs,si7020
>> +            # Siemens IOT2050: SPI interface on Arduino connector
>> +          - siemens,iot2050-arduino-spi
> 
> How is this specific to your board? Presumably, an 'Arduino connector' 
> is a somewhat standard interface, right? If every board with an Arduino 
> connector adds a compatible, this doesn't scale.
> 
> A connector is what you should be describing, but I imagine it is not 
> just SPI. Here's some past discussions[1][2] on the need for connector 
> bindings.

Right, we are not alone with this modelling problem on our board. The
code talking to the SPI devices is inside applications, the kernel just
needs to pave the way to the interface. However, you can't define that
path without bending of the DT. This is specific to at least SPI, maybe
some other buses without probing as well.

If this were a PCI device, no problem: tell vfio-pci or uio_pci_generic
to be responsible as well (add IDs on the fly), bind bind any of them
and then let userspace handle things. Same why to go back to an
in-kernel driver. No bothering of the DT regarding how the final device
is driven.

Jan
  

Patch

diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 430a814f64a5..01b9f36afcd5 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -349,6 +349,8 @@  properties:
           - silabs,si3210
             # Relative Humidity and Temperature Sensors
           - silabs,si7020
+            # Siemens IOT2050: SPI interface on Arduino connector
+          - siemens,iot2050-arduino-spi
             # Skyworks SKY81452: Six-Channel White LED Driver with Touch Panel Bias Supply
           - skyworks,sky81452
             # Socionext SynQuacer TPM MMIO module