[RESEND,v2,1/2] dt-bindings: w1: Add YAML DT schema for AMD AXI w1 host and MAINTAINERS entry

Message ID 20231026093029.3122573-2-kris.chaplin@amd.com
State New
Headers
Series w1: Add AXI 1-wire host driver for AMD programmable logic IP core |

Commit Message

Kris Chaplin Oct. 26, 2023, 9:28 a.m. UTC
  Add YAML DT schema for the AMD AXI w1 host IP.

This hardware guarantees protocol timing for driving off-board devices such
as thermal sensors, proms, etc using the 1wire protocol.

Add MAINTAINERS entry for DT schema.

Co-developed-by: Thomas Delev <thomas.delev@amd.com>
Signed-off-by: Thomas Delev <thomas.delev@amd.com>
Signed-off-by: Kris Chaplin <kris.chaplin@amd.com>
---
 .../bindings/w1/amd,axi-1wire-host.yaml       | 44 +++++++++++++++++++
 MAINTAINERS                                   |  7 +++
 2 files changed, 51 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
  

Comments

Rob Herring Oct. 30, 2023, 3:40 p.m. UTC | #1
On Thu, Oct 26, 2023 at 02:28:41AM -0700, Kris Chaplin wrote:
> Add YAML DT schema for the AMD AXI w1 host IP.
> 
> This hardware guarantees protocol timing for driving off-board devices such
> as thermal sensors, proms, etc using the 1wire protocol.
> 
> Add MAINTAINERS entry for DT schema.
> 
> Co-developed-by: Thomas Delev <thomas.delev@amd.com>
> Signed-off-by: Thomas Delev <thomas.delev@amd.com>
> Signed-off-by: Kris Chaplin <kris.chaplin@amd.com>
> ---
>  .../bindings/w1/amd,axi-1wire-host.yaml       | 44 +++++++++++++++++++
>  MAINTAINERS                                   |  7 +++
>  2 files changed, 51 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
> 
> diff --git a/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml b/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
> new file mode 100644
> index 000000000000..ef70fa2c0c5d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/w1/amd,axi-1wire-host.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AMD AXI 1-wire bus host for programmable logic
> +
> +maintainers:
> +  - Kris Chaplin <kris.chaplin@amd.com>
> +
> +properties:
> +  compatible:
> +    const: amd,axi-1wire-host

Is there a device side implementation? I can't really imagine that 
1-wire would ever be implemented as firmware on the device side given 
its limited nature. So adding 'host' doesn't make this any more 
specific.

Rob
  
Kris Chaplin Oct. 30, 2023, 3:52 p.m. UTC | #2
Hi Rob,

On 30/10/2023 15:40, Rob Herring wrote:
> Is there a device side implementation? I can't really imagine that
> 1-wire would ever be implemented as firmware on the device side given
> its limited nature. So adding 'host' doesn't make this any more
> specific.
>
There are slave drivers as well as master, although these do not have a 
device tree binding.

The IP device from AMD is called "axi_1wire_host", and so we are hoping 
to stick with this binding if appropriate as it relates to the IP name.

Regards,
Kris
  
Krzysztof Kozlowski Oct. 30, 2023, 4:02 p.m. UTC | #3
On 30/10/2023 16:40, Rob Herring wrote:
> On Thu, Oct 26, 2023 at 02:28:41AM -0700, Kris Chaplin wrote:
>> Add YAML DT schema for the AMD AXI w1 host IP.
>>
>> This hardware guarantees protocol timing for driving off-board devices such
>> as thermal sensors, proms, etc using the 1wire protocol.
>>
>> Add MAINTAINERS entry for DT schema.
>>
>> Co-developed-by: Thomas Delev <thomas.delev@amd.com>
>> Signed-off-by: Thomas Delev <thomas.delev@amd.com>
>> Signed-off-by: Kris Chaplin <kris.chaplin@amd.com>
>> ---
>>  .../bindings/w1/amd,axi-1wire-host.yaml       | 44 +++++++++++++++++++
>>  MAINTAINERS                                   |  7 +++
>>  2 files changed, 51 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml b/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
>> new file mode 100644
>> index 000000000000..ef70fa2c0c5d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
>> @@ -0,0 +1,44 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/w1/amd,axi-1wire-host.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: AMD AXI 1-wire bus host for programmable logic
>> +
>> +maintainers:
>> +  - Kris Chaplin <kris.chaplin@amd.com>
>> +
>> +properties:
>> +  compatible:
>> +    const: amd,axi-1wire-host
> 
> Is there a device side implementation? I can't really imagine that 
> 1-wire would ever be implemented as firmware on the device side given 
> its limited nature. So adding 'host' doesn't make this any more 
> specific.

"host" here means "controller", to avoid the other naming "master/slave".

Best regards,
Krzysztof
  
Rob Herring Oct. 30, 2023, 4:19 p.m. UTC | #4
On Mon, Oct 30, 2023 at 10:48 AM Kris Chaplin <kris.chaplin@amd.com> wrote:
>
> Hello Rob,
>
> On 30/10/2023 15:40, Rob Herring wrote:
>
> Is there a device side implementation? I can't really imagine that
> 1-wire would ever be implemented as firmware on the device side given
> its limited nature. So adding 'host' doesn't make this any more
> specific.
>
> There are slave drivers as well as master, although these do not have a device tree binding.

My question is whether there is slave/device IP for implementing the
device side in software? The slave drivers in the kernel are for
handling those devices, not a slave side controller interface.

For comparison, we have SPI slave in the kernel which is for
implementing the device side in software (running Linux or another
OS). There is no such thing in the kernel for 1-wire and I would doubt
there would ever be a software implementation. Could you, yes, but
given the limited nature of 1-wire why would you?

>
> The IP device from AMD is called "axi_1wire_host", and so we are hoping to stick with this binding if appropriate as it relates to the IP name.

Okay, I suppose that is good enough reason.

However, the versioning comments in your first v2 have not been
addressed. I believe the conclusion was to mention the IP has a
version register. And Conor's R-by tag was not added.

Rob
  
Kris Chaplin Oct. 30, 2023, 4:32 p.m. UTC | #5
Thanks Rob,

On 30/10/2023 16:19, Rob Herring wrote:
>> Is there a device side implementation? I can't really imagine that
>> 1-wire would ever be implemented as firmware on the device side given
>> its limited nature. So adding 'host' doesn't make this any more
>> specific.
>>
>> There are slave drivers as well as master, although these do not have a device tree binding.
> 
> My question is whether there is slave/device IP for implementing the
> device side in software? The slave drivers in the kernel are for
> handling those devices, not a slave side controller interface.
> 
> For comparison, we have SPI slave in the kernel which is for
> implementing the device side in software (running Linux or another
> OS). There is no such thing in the kernel for 1-wire and I would doubt
> there would ever be a software implementation. Could you, yes, but
> given the limited nature of 1-wire why would you?

I agree - I'm not aware of any such interface or plans.  Yes - I've seen 
it with SPI, but I've not heard anything similar for 1-wire.
> 
>>
>> The IP device from AMD is called "axi_1wire_host", and so we are hoping to stick with this binding if appropriate as it relates to the IP name.
> 
> Okay, I suppose that is good enough reason.

Thank you - it does help when we can align the binding and IP name.

> However, the versioning comments in your first v2 have not been
> addressed. I believe the conclusion was to mention the IP has a
> version register. And Conor's R-by tag was not added.

I messed up with not adding a note about this to the commit on v2 which 
I can resolve in a v3 - yes the versioning is via register in the IP 
core at a known offset.  The binding name (and IP name) changed between 
v1 and v2 (from master to host) so I didn't add the review tag for Conor 
in v2 as the commit changed.

regards,
Kris
  

Patch

diff --git a/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml b/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
new file mode 100644
index 000000000000..ef70fa2c0c5d
--- /dev/null
+++ b/Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
@@ -0,0 +1,44 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/w1/amd,axi-1wire-host.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AMD AXI 1-wire bus host for programmable logic
+
+maintainers:
+  - Kris Chaplin <kris.chaplin@amd.com>
+
+properties:
+  compatible:
+    const: amd,axi-1wire-host
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    onewire@a0000000 {
+        compatible = "amd,axi-1wire-host";
+        reg = <0xa0000000 0x10000>;
+        clocks = <&zynqmp_clk 0x47>;
+        interrupts = <GIC_SPI 0x59 IRQ_TYPE_LEVEL_HIGH>;
+    };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 7a7bd8bd80e9..3dacb7ed6e3b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -890,6 +890,13 @@  Q:	https://patchwork.kernel.org/project/linux-rdma/list/
 F:	drivers/infiniband/hw/efa/
 F:	include/uapi/rdma/efa-abi.h
 
+AMD AXI W1 DRIVER
+M:	Kris Chaplin <kris.chaplin@amd.com>
+R:	Thomas Delev <thomas.delev@amd.com>
+R:	Michal Simek <michal.simek@amd.com>
+S:	Maintained
+F:	Documentation/devicetree/bindings/w1/amd,axi-1wire-host.yaml
+
 AMD CDX BUS DRIVER
 M:	Nipun Gupta <nipun.gupta@amd.com>
 M:	Nikhil Agarwal <nikhil.agarwal@amd.com>