diff mbox series

[net-next,v2,4/9] dt-bindings: net: add OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface

Message ID 20231023154649.45931-5-Parthiban.Veerasooran@microchip.com
State Changes Requested
Headers show
Series Add support for OPEN Alliance 10BASE-T1x MACPHY Serial Interface | expand

Checks

Context Check Description
robh/checkpatch success
robh/patch-applied success
robh/dt-meta-schema fail build log

Commit Message

Parthiban Veerasooran Oct. 23, 2023, 3:46 p.m. UTC
Add DT bindings OPEN Alliance 10BASE-T1x MACPHY Serial Interface
parameters. These are generic properties that can apply to any 10BASE-T1x
MAC-PHY which uses OPEN Alliance TC6 specification.

Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
---
 .../devicetree/bindings/net/oa-tc6.yaml       | 72 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 2 files changed, 73 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/oa-tc6.yaml

Comments

Rob Herring (Arm) Oct. 23, 2023, 5:40 p.m. UTC | #1
On Mon, 23 Oct 2023 21:16:44 +0530, Parthiban Veerasooran wrote:
> Add DT bindings OPEN Alliance 10BASE-T1x MACPHY Serial Interface
> parameters. These are generic properties that can apply to any 10BASE-T1x
> MAC-PHY which uses OPEN Alliance TC6 specification.
> 
> Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
> ---
>  .../devicetree/bindings/net/oa-tc6.yaml       | 72 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  2 files changed, 73 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/oa-tc6.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:
./Documentation/devicetree/bindings/net/oa-tc6.yaml:16:68: [error] syntax error: mapping values are not allowed here (syntax)

dtschema/dtc warnings/errors:
make[2]: *** Deleting file 'Documentation/devicetree/bindings/net/oa-tc6.example.dts'
Documentation/devicetree/bindings/net/oa-tc6.yaml:16:68: mapping values are not allowed in this context
make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/net/oa-tc6.example.dts] Error 1
make[2]: *** Waiting for unfinished jobs....
./Documentation/devicetree/bindings/net/oa-tc6.yaml:16:68: mapping values are not allowed in this context
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/oa-tc6.yaml: ignoring, error parsing file
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1427: dt_binding_check] Error 2
make: *** [Makefile:234: __sub-make] Error 2

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20231023154649.45931-5-Parthiban.Veerasooran@microchip.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Andrew Lunn Oct. 24, 2023, 12:37 a.m. UTC | #2
> +  oa-cps:
> +    maxItems: 1
> +    description:
> +      Chunk Payload Size. Configures the data chunk payload size to 2^N,
> +      where N is the value of this bitfield. The minimum possible data
> +      chunk payload size is 8 bytes or N = 3. The default data chunk
> +      payload size is 64 bytes, or N = 6. The minimum supported data chunk
> +      payload size for this MAC-PHY device is indicated in the CPSMIN
> +      field of the CAPABILITY register. Valid values for this parameter
> +      are 8, 16, 32 and 64. All other values are reserved.
> +
> +  oa-txcte:
> +    maxItems: 1
> +    description:
> +      Transmit Cut-Through Enable. When supported by this MAC-PHY device,
> +      this bit enables the cut-through mode of frame transfer through the
> +      MAC-PHY device from the SPI host to the network.
> +
> +  oa-rxcte:
> +    maxItems: 1
> +    description:
> +      Receive Cut-Through Enable. When supported by this MAC-PHY device,
> +      this bit enables the cut-through mode of frame transfer through the
> +      MAC-PHY device from the network to the SPI host.
> +
> +  oa-prote:
> +    maxItems: 1
> +    description:
> +      Control data read/write Protection Enable. When set, all control
> +      data written to and read from the MAC-PHY will be transferred with
> +      its complement for detection of bit errors.

Device tree described hardware. Its not supposed to be used to
describe configuration. So it is not clear to me if any of these are
valid in DT.

It seems to me, the amount of control transfers should be very small
compared to data transfers. So why not just set protection enable to
be true?

What is the effect of chunk payload size ? Is there a reason to use a
lower value than the default 64? I assume smaller sizes make data
transfer more expensive, since you need more DMA setup and completion
handing etc.

An Ethernet driver is allowed to have driver specific private
flags. See ethtool(1) --show-priv-flags and --set-priv-flags You could
maybe use these to configure cut through?

      Andrew
Krzysztof Kozlowski Oct. 24, 2023, 7:44 a.m. UTC | #3
On 23/10/2023 17:46, Parthiban Veerasooran wrote:
> Add DT bindings OPEN Alliance 10BASE-T1x MACPHY Serial Interface
> parameters. These are generic properties that can apply to any 10BASE-T1x
> MAC-PHY which uses OPEN Alliance TC6 specification.

Except that it was not tested at all few more issues.

> 
> Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
> ---
>  .../devicetree/bindings/net/oa-tc6.yaml       | 72 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  2 files changed, 73 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/net/oa-tc6.yaml
> 
> diff --git a/Documentation/devicetree/bindings/net/oa-tc6.yaml b/Documentation/devicetree/bindings/net/oa-tc6.yaml
> new file mode 100644
> index 000000000000..9f442fa6cace
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/oa-tc6.yaml

Filename based on compatible.

> @@ -0,0 +1,72 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/oa-tc6.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: OPEN Alliance 10BASE-T1x MAC-PHY Specification Common Properties
> +
> +maintainers:
> +  - Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
> +
> +description:
> +  These are generic properties that can apply to any 10BASE-T1x MAC-PHY
> +  which uses OPEN Alliance TC6 specification.
> +
> +  10BASE-T1x MAC-PHY Serial Interface Specification can be found at:
> +    https://opensig.org/about/specifications/
> +
> +properties:
> +  $nodename:
> +    pattern: "^oa-tc6(@.*)?"

Drop

> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 0

Why?

> +
> +  oa-cps:
> +    maxItems: 1
> +    description:
> +      Chunk Payload Size. Configures the data chunk payload size to 2^N,
> +      where N is the value of this bitfield. The minimum possible data
> +      chunk payload size is 8 bytes or N = 3. The default data chunk
> +      payload size is 64 bytes, or N = 6. The minimum supported data chunk
> +      payload size for this MAC-PHY device is indicated in the CPSMIN
> +      field of the CAPABILITY register. Valid values for this parameter
> +      are 8, 16, 32 and 64. All other values are reserved.
> +
> +  oa-txcte:
> +    maxItems: 1
> +    description:
> +      Transmit Cut-Through Enable. When supported by this MAC-PHY device,
> +      this bit enables the cut-through mode of frame transfer through the
> +      MAC-PHY device from the SPI host to the network.
> +
> +  oa-rxcte:
> +    maxItems: 1
> +    description:
> +      Receive Cut-Through Enable. When supported by this MAC-PHY device,
> +      this bit enables the cut-through mode of frame transfer through the
> +      MAC-PHY device from the network to the SPI host.
> +
> +  oa-prote:
> +    maxItems: 1
> +    description:
> +      Control data read/write Protection Enable. When set, all control
> +      data written to and read from the MAC-PHY will be transferred with
> +      its complement for detection of bit errors.
> +
> +additionalProperties: true
> +
> +examples:
> +  - |
> +    oa-tc6 {
> +        #address-cells = <1>;
> +	#size-cells = <0>;

That's some total mess in indentation.

> +	oa-cps = <64>;
> +	oa-txcte;
> +	oa-rxcte;
> +	oa-prote;
> +    };
Best regards,
Krzysztof
Parthiban Veerasooran Oct. 25, 2023, 12:28 p.m. UTC | #4
On 23/10/23 11:10 pm, Rob Herring wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On Mon, 23 Oct 2023 21:16:44 +0530, Parthiban Veerasooran wrote:
>> Add DT bindings OPEN Alliance 10BASE-T1x MACPHY Serial Interface
>> parameters. These are generic properties that can apply to any 10BASE-T1x
>> MAC-PHY which uses OPEN Alliance TC6 specification.
>>
>> Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
>> ---
>>   .../devicetree/bindings/net/oa-tc6.yaml       | 72 +++++++++++++++++++
>>   MAINTAINERS                                   |  1 +
>>   2 files changed, 73 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/net/oa-tc6.yaml
>>
> 
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
> 
> yamllint warnings/errors:
> ./Documentation/devicetree/bindings/net/oa-tc6.yaml:16:68: [error] syntax error: mapping values are not allowed here (syntax)
> 
> dtschema/dtc warnings/errors:
> make[2]: *** Deleting file 'Documentation/devicetree/bindings/net/oa-tc6.example.dts'
> Documentation/devicetree/bindings/net/oa-tc6.yaml:16:68: mapping values are not allowed in this context
> make[2]: *** [Documentation/devicetree/bindings/Makefile:26: Documentation/devicetree/bindings/net/oa-tc6.example.dts] Error 1
> make[2]: *** Waiting for unfinished jobs....
> ./Documentation/devicetree/bindings/net/oa-tc6.yaml:16:68: mapping values are not allowed in this context
> /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/net/oa-tc6.yaml: ignoring, error parsing file
> make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1427: dt_binding_check] Error 2
> make: *** [Makefile:234: __sub-make] Error 2
> 
> doc reference errors (make refcheckdocs):
> 
> See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20231023154649.45931-5-Parthiban.Veerasooran@microchip.com
> 
> The base for the series is generally the latest rc1. A different dependency
> should be noted in *this* patch.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit after running the above command yourself. Note
> that DT_SCHEMA_FILES can be set to your schema file to speed up checking
> your schema. However, it must be unset to test all examples with your schema.
> 
Sorry, somehow I missed doing this check. Will fix this in the next 
revision.

Best Regards,
Parthiban V
Parthiban Veerasooran Oct. 27, 2023, 9:12 a.m. UTC | #5
Hi Andrew,

On 24/10/23 6:07 am, Andrew Lunn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
>> +  oa-cps:
>> +    maxItems: 1
>> +    description:
>> +      Chunk Payload Size. Configures the data chunk payload size to 2^N,
>> +      where N is the value of this bitfield. The minimum possible data
>> +      chunk payload size is 8 bytes or N = 3. The default data chunk
>> +      payload size is 64 bytes, or N = 6. The minimum supported data chunk
>> +      payload size for this MAC-PHY device is indicated in the CPSMIN
>> +      field of the CAPABILITY register. Valid values for this parameter
>> +      are 8, 16, 32 and 64. All other values are reserved.
>> +
>> +  oa-txcte:
>> +    maxItems: 1
>> +    description:
>> +      Transmit Cut-Through Enable. When supported by this MAC-PHY device,
>> +      this bit enables the cut-through mode of frame transfer through the
>> +      MAC-PHY device from the SPI host to the network.
>> +
>> +  oa-rxcte:
>> +    maxItems: 1
>> +    description:
>> +      Receive Cut-Through Enable. When supported by this MAC-PHY device,
>> +      this bit enables the cut-through mode of frame transfer through the
>> +      MAC-PHY device from the network to the SPI host.
>> +
>> +  oa-prote:
>> +    maxItems: 1
>> +    description:
>> +      Control data read/write Protection Enable. When set, all control
>> +      data written to and read from the MAC-PHY will be transferred with
>> +      its complement for detection of bit errors.
> 
> Device tree described hardware. Its not supposed to be used to
> describe configuration. So it is not clear to me if any of these are
> valid in DT.
> 
> It seems to me, the amount of control transfers should be very small
> compared to data transfers. So why not just set protection enable to
> be true?
Yes having protection enabled for control transfer doesn't hurt 
anything. The only intention for keeping this as configurable is, it is 
defined in the OPEN Alliance specification to enable/disable.
> 
> What is the effect of chunk payload size ? Is there a reason to use a
> lower value than the default 64? I assume smaller sizes make data
> transfer more expensive, since you need more DMA setup and completion
> handing etc.
Again the intention for keeping this as configurable is, it is defined 
in the OPEN Alliance specification as user configurable. They can be 8, 
16, 32 and 64. And the default is 64. Also Microchip's LAN8650 supports 
for 32 and 64.
> 
> An Ethernet driver is allowed to have driver specific private
> flags. See ethtool(1) --show-priv-flags and --set-priv-flags You could
> maybe use these to configure cut through?
So you mean, we have to implement the support in the ethtool interface 
to enable/disable tx/rx cut through feature, isn't it?

If you feel like the above configurations are not needed, so by keeping 
protection true always, chunk payload size (cps) 64 always and moving 
tx/rx cut through to ethtool, we can get rid of this DT bindings?

Best Regards,
Parthiban V

> 
>        Andrew
> 
> 
>
Andrew Lunn Oct. 27, 2023, 12:32 p.m. UTC | #6
> > Device tree described hardware. Its not supposed to be used to
> > describe configuration. So it is not clear to me if any of these are
> > valid in DT.
> > 
> > It seems to me, the amount of control transfers should be very small
> > compared to data transfers. So why not just set protection enable to
> > be true?
> Yes having protection enabled for control transfer doesn't hurt 
> anything. The only intention for keeping this as configurable is, it is 
> defined in the OPEN Alliance specification to enable/disable.

Standards often have options which nobody ever use, or are only useful
in particular niches. Its often best to keep it simple, get the basic
feature working, and then add these optional features if anybody
actually needs them.

> > What is the effect of chunk payload size ? Is there a reason to use a
> > lower value than the default 64? I assume smaller sizes make data
> > transfer more expensive, since you need more DMA setup and completion
> > handing etc.
> Again the intention for keeping this as configurable is, it is defined 
> in the OPEN Alliance specification as user configurable. They can be 8, 
> 16, 32 and 64. And the default is 64. Also Microchip's LAN8650 supports 
> for 32 and 64.

Do you have any idea why the standard has different sizes? Why would
you want to use 32? If you can answer this, it helps decide how
important it is to support multiple sizes, or just hard code it to 64.

There are plenty of old research on Ethernet frame sizes, but they are
for LAN/Internet usage. You typically see two peeks, one around 64-80
bytes, and other around the full frame size. The small packets are TCP
ACKS, and the rest is TCP data. However, this is a T1S device for
automotive. I personally have no idea if the same traffic distribution
is seen in that application?

Are there protocols running which use a lot of frames smaller than 64
bytes? If so, 64 byte chunk size i assume could be wasteful, if there
are lots of 32 byte frames.

The other potential issue is latency and the way the SPI bus
works. Its a synchronised bi-directional bus. You can receive and
transmit at the same time, but you have to setup the transfer to do
that. If you are busy doing a receive only, and there is a new packet
to send, you have to wait for the chunk transfer to complete before
you can start a bi-directional chunk transfer. So a 32 byte chunk
might make your link more efficient if you have heavy but bursty
traffic. However, you have to consider the overheads of setting up the
transfer and running the completion handler afterwards. This can be
costly.

Do you have real use cases for using different chunks sizes? If not, i
probably would just hard code it to 64, until somebody comes along
needing something else.

> > An Ethernet driver is allowed to have driver specific private
> > flags. See ethtool(1) --show-priv-flags and --set-priv-flags You could
> > maybe use these to configure cut through?
> So you mean, we have to implement the support in the ethtool interface 
> to enable/disable tx/rx cut through feature, isn't it?
> 
> If you feel like the above configurations are not needed, so by keeping 
> protection true always, chunk payload size (cps) 64 always and moving 
> tx/rx cut through to ethtool, we can get rid of this DT bindings?

Again, do you have a real use case for cut through? Or maybe flip it
around, Why would you not use cut through?

	Andrew
Parthiban Veerasooran Oct. 30, 2023, 10:09 a.m. UTC | #7
Hi Andrew,

On 27/10/23 6:02 pm, Andrew Lunn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
>>> Device tree described hardware. Its not supposed to be used to
>>> describe configuration. So it is not clear to me if any of these are
>>> valid in DT.
>>>
>>> It seems to me, the amount of control transfers should be very small
>>> compared to data transfers. So why not just set protection enable to
>>> be true?
>> Yes having protection enabled for control transfer doesn't hurt
>> anything. The only intention for keeping this as configurable is, it is
>> defined in the OPEN Alliance specification to enable/disable.
> 
> Standards often have options which nobody ever use, or are only useful
> in particular niches. Its often best to keep it simple, get the basic
> feature working, and then add these optional features if anybody
> actually needs them.
> 
>>> What is the effect of chunk payload size ? Is there a reason to use a
>>> lower value than the default 64? I assume smaller sizes make data
>>> transfer more expensive, since you need more DMA setup and completion
>>> handing etc.
>> Again the intention for keeping this as configurable is, it is defined
>> in the OPEN Alliance specification as user configurable. They can be 8,
>> 16, 32 and 64. And the default is 64. Also Microchip's LAN8650 supports
>> for 32 and 64.
> 
> Do you have any idea why the standard has different sizes? Why would
> you want to use 32? If you can answer this, it helps decide how
> important it is to support multiple sizes, or just hard code it to 64.
> 
> There are plenty of old research on Ethernet frame sizes, but they are
> for LAN/Internet usage. You typically see two peeks, one around 64-80
> bytes, and other around the full frame size. The small packets are TCP
> ACKS, and the rest is TCP data. However, this is a T1S device for
> automotive. I personally have no idea if the same traffic distribution
> is seen in that application?
> 
> Are there protocols running which use a lot of frames smaller than 64
> bytes? If so, 64 byte chunk size i assume could be wasteful, if there
> are lots of 32 byte frames.
> 
> The other potential issue is latency and the way the SPI bus
> works. Its a synchronised bi-directional bus. You can receive and
> transmit at the same time, but you have to setup the transfer to do
> that. If you are busy doing a receive only, and there is a new packet
> to send, you have to wait for the chunk transfer to complete before
> you can start a bi-directional chunk transfer. So a 32 byte chunk
> might make your link more efficient if you have heavy but bursty
> traffic. However, you have to consider the overheads of setting up the
> transfer and running the completion handler afterwards. This can be
> costly.
> 
> Do you have real use cases for using different chunks sizes? If not, i
> probably would just hard code it to 64, until somebody comes along
> needing something else.
> 
>>> An Ethernet driver is allowed to have driver specific private
>>> flags. See ethtool(1) --show-priv-flags and --set-priv-flags You could
>>> maybe use these to configure cut through?
>> So you mean, we have to implement the support in the ethtool interface
>> to enable/disable tx/rx cut through feature, isn't it?
>>
>> If you feel like the above configurations are not needed, so by keeping
>> protection true always, chunk payload size (cps) 64 always and moving
>> tx/rx cut through to ethtool, we can get rid of this DT bindings?
> 
> Again, do you have a real use case for cut through? Or maybe flip it
> around, Why would you not use cut through?
Thanks a lot for your detailed explanation. From this what I understand is,

1. Will make protection enabled always for control transfer.
2. Keep the default chunk payload size (64) as it is.
3. Default tx/rx cut through modes are disabled. So will not touch them.

So that we don't need DT bindings.

Best Regards,
Parthiban V
> 
>          Andrew
Parthiban Veerasooran Oct. 31, 2023, 12:59 p.m. UTC | #8
Hi Krzysztof

As per the comments in the other email of this patch, this DT bindings 
are going to be removed.

Best Regards,
Parthiban V

On 24/10/23 1:14 pm, Krzysztof Kozlowski wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On 23/10/2023 17:46, Parthiban Veerasooran wrote:
>> Add DT bindings OPEN Alliance 10BASE-T1x MACPHY Serial Interface
>> parameters. These are generic properties that can apply to any 10BASE-T1x
>> MAC-PHY which uses OPEN Alliance TC6 specification.
> 
> Except that it was not tested at all few more issues.
> 
>>
>> Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
>> ---
>>   .../devicetree/bindings/net/oa-tc6.yaml       | 72 +++++++++++++++++++
>>   MAINTAINERS                                   |  1 +
>>   2 files changed, 73 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/net/oa-tc6.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/net/oa-tc6.yaml b/Documentation/devicetree/bindings/net/oa-tc6.yaml
>> new file mode 100644
>> index 000000000000..9f442fa6cace
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/oa-tc6.yaml
> 
> Filename based on compatible.
> 
>> @@ -0,0 +1,72 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/net/oa-tc6.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: OPEN Alliance 10BASE-T1x MAC-PHY Specification Common Properties
>> +
>> +maintainers:
>> +  - Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
>> +
>> +description:
>> +  These are generic properties that can apply to any 10BASE-T1x MAC-PHY
>> +  which uses OPEN Alliance TC6 specification.
>> +
>> +  10BASE-T1x MAC-PHY Serial Interface Specification can be found at:
>> +    https://opensig.org/about/specifications/
>> +
>> +properties:
>> +  $nodename:
>> +    pattern: "^oa-tc6(@.*)?"
> 
> Drop
> 
>> +
>> +  "#address-cells":
>> +    const: 1
>> +
>> +  "#size-cells":
>> +    const: 0
> 
> Why?
> 
>> +
>> +  oa-cps:
>> +    maxItems: 1
>> +    description:
>> +      Chunk Payload Size. Configures the data chunk payload size to 2^N,
>> +      where N is the value of this bitfield. The minimum possible data
>> +      chunk payload size is 8 bytes or N = 3. The default data chunk
>> +      payload size is 64 bytes, or N = 6. The minimum supported data chunk
>> +      payload size for this MAC-PHY device is indicated in the CPSMIN
>> +      field of the CAPABILITY register. Valid values for this parameter
>> +      are 8, 16, 32 and 64. All other values are reserved.
>> +
>> +  oa-txcte:
>> +    maxItems: 1
>> +    description:
>> +      Transmit Cut-Through Enable. When supported by this MAC-PHY device,
>> +      this bit enables the cut-through mode of frame transfer through the
>> +      MAC-PHY device from the SPI host to the network.
>> +
>> +  oa-rxcte:
>> +    maxItems: 1
>> +    description:
>> +      Receive Cut-Through Enable. When supported by this MAC-PHY device,
>> +      this bit enables the cut-through mode of frame transfer through the
>> +      MAC-PHY device from the network to the SPI host.
>> +
>> +  oa-prote:
>> +    maxItems: 1
>> +    description:
>> +      Control data read/write Protection Enable. When set, all control
>> +      data written to and read from the MAC-PHY will be transferred with
>> +      its complement for detection of bit errors.
>> +
>> +additionalProperties: true
>> +
>> +examples:
>> +  - |
>> +    oa-tc6 {
>> +        #address-cells = <1>;
>> +     #size-cells = <0>;
> 
> That's some total mess in indentation.
> 
>> +     oa-cps = <64>;
>> +     oa-txcte;
>> +     oa-rxcte;
>> +     oa-prote;
>> +    };
> Best regards,
> Krzysztof
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/oa-tc6.yaml b/Documentation/devicetree/bindings/net/oa-tc6.yaml
new file mode 100644
index 000000000000..9f442fa6cace
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/oa-tc6.yaml
@@ -0,0 +1,72 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/oa-tc6.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OPEN Alliance 10BASE-T1x MAC-PHY Specification Common Properties
+
+maintainers:
+  - Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
+
+description:
+  These are generic properties that can apply to any 10BASE-T1x MAC-PHY
+  which uses OPEN Alliance TC6 specification.
+
+  10BASE-T1x MAC-PHY Serial Interface Specification can be found at:
+    https://opensig.org/about/specifications/
+
+properties:
+  $nodename:
+    pattern: "^oa-tc6(@.*)?"
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  oa-cps:
+    maxItems: 1
+    description:
+      Chunk Payload Size. Configures the data chunk payload size to 2^N,
+      where N is the value of this bitfield. The minimum possible data
+      chunk payload size is 8 bytes or N = 3. The default data chunk
+      payload size is 64 bytes, or N = 6. The minimum supported data chunk
+      payload size for this MAC-PHY device is indicated in the CPSMIN
+      field of the CAPABILITY register. Valid values for this parameter
+      are 8, 16, 32 and 64. All other values are reserved.
+
+  oa-txcte:
+    maxItems: 1
+    description:
+      Transmit Cut-Through Enable. When supported by this MAC-PHY device,
+      this bit enables the cut-through mode of frame transfer through the
+      MAC-PHY device from the SPI host to the network.
+
+  oa-rxcte:
+    maxItems: 1
+    description:
+      Receive Cut-Through Enable. When supported by this MAC-PHY device,
+      this bit enables the cut-through mode of frame transfer through the
+      MAC-PHY device from the network to the SPI host.
+
+  oa-prote:
+    maxItems: 1
+    description:
+      Control data read/write Protection Enable. When set, all control
+      data written to and read from the MAC-PHY will be transferred with
+      its complement for detection of bit errors.
+
+additionalProperties: true
+
+examples:
+  - |
+    oa-tc6 {
+        #address-cells = <1>;
+	#size-cells = <0>;
+	oa-cps = <64>;
+	oa-txcte;
+	oa-rxcte;
+	oa-prote;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 1c165026bbd4..9580be91f5e9 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15975,6 +15975,7 @@  OPEN ALLIANCE 10BASE-T1S MACPHY SERIAL INTERFACE FRAMEWORK
 M:	Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
 L:	netdev@vger.kernel.org
 S:	Maintained
+F:	Documentation/devicetree/bindings/net/oa-tc6.yaml
 F:	Documentation/networking/oa-tc6-framework.rst
 F:	drivers/include/linux/oa_tc6.h
 F:	drivers/net/ethernet/oa_tc6.c