Message ID | 20210409134056.18740-2-a-govindraju@ti.com |
---|---|
State | Superseded |
Headers | show |
Series | CAN TRANSCEIVER: Add support for CAN transceivers | expand |
On 4/9/21 3:40 PM, Aswath Govindraju wrote: > Add binding documentation for TI TCAN104x CAN transceivers. > > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> > --- > .../bindings/phy/ti,tcan104x-can.yaml | 56 +++++++++++++++++++ > 1 file changed, 56 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > new file mode 100644 > index 000000000000..4abfc30a97d0 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > @@ -0,0 +1,56 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/phy/ti,tcan104x-can.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: TCAN104x CAN TRANSCEIVER PHY > + > +maintainers: > + - Aswath Govindraju <a-govindraju@ti.com> > + > +properties: > + $nodename: > + pattern: "^tcan104x-phy" > + > + compatible: > + enum: > + - ti,tcan1042 > + - ti,tcan1043 Can you create a generic standby only and a generic standby and enable transceiver? > + > + '#phy-cells': > + const: 0 > + > + standby-gpios: > + description: > + gpio node to toggle standby signal on transceiver > + maxItems: 1 > + > + enable-gpios: > + description: > + gpio node to toggle enable signal on transceiver > + maxItems: 1 > + > + max-bitrate: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + max bit rate supported in bps > + minimum: 1 > + > +required: > + - compatible > + - '#phy-cells' > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + transceiver1: tcan104x-phy { > + compatible = "ti,tcan1043"; > + #phy-cells = <0>; > + max-bitrate = <5000000>; > + standby-gpios = <&wakeup_gpio1 16 GPIO_ACTIVE_LOW>; > + enable-gpios = <&main_gpio1 67 GPIO_ACTIVE_LOW>; > + }; >
On Mon, Apr 12, 2021 at 12:19:30PM +0200, Marc Kleine-Budde wrote: > On 4/9/21 3:40 PM, Aswath Govindraju wrote: > > Add binding documentation for TI TCAN104x CAN transceivers. > > > > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> > > --- > > .../bindings/phy/ti,tcan104x-can.yaml | 56 +++++++++++++++++++ > > 1 file changed, 56 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > > diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > new file mode 100644 > > index 000000000000..4abfc30a97d0 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > @@ -0,0 +1,56 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: "http://devicetree.org/schemas/phy/ti,tcan104x-can.yaml#" > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > + > > +title: TCAN104x CAN TRANSCEIVER PHY > > + > > +maintainers: > > + - Aswath Govindraju <a-govindraju@ti.com> > > + > > +properties: > > + $nodename: > > + pattern: "^tcan104x-phy" > > + > > + compatible: > > + enum: > > + - ti,tcan1042 > > + - ti,tcan1043 > > Can you create a generic standby only and a generic standby and enable transceiver? As a fallback compatible fine, but no generic binding please. A generic binding can't describe any timing requirements between the 2 GPIO as well as supplies when someone wants to add those (and they will). > > > + > > + '#phy-cells': > > + const: 0 > > + > > + standby-gpios: > > + description: > > + gpio node to toggle standby signal on transceiver > > + maxItems: 1 > > + > > + enable-gpios: > > + description: > > + gpio node to toggle enable signal on transceiver > > + maxItems: 1 > > + > > + max-bitrate: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: > > + max bit rate supported in bps We already have 'max-speed' for serial devices, use that. > > + minimum: 1 > > + > > +required: > > + - compatible > > + - '#phy-cells' > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/gpio/gpio.h> > > + > > + transceiver1: tcan104x-phy { > > + compatible = "ti,tcan1043"; > > + #phy-cells = <0>; > > + max-bitrate = <5000000>; > > + standby-gpios = <&wakeup_gpio1 16 GPIO_ACTIVE_LOW>; > > + enable-gpios = <&main_gpio1 67 GPIO_ACTIVE_LOW>; > > + }; > > > > > -- > Pengutronix e.K. | Marc Kleine-Budde | > Embedded Linux | https://www.pengutronix.de | > Vertretung West/Dortmund | Phone: +49-231-2826-924 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | >
On 12.04.2021 12:49:56, Rob Herring wrote: > On Mon, Apr 12, 2021 at 12:19:30PM +0200, Marc Kleine-Budde wrote: > > On 4/9/21 3:40 PM, Aswath Govindraju wrote: > > > Add binding documentation for TI TCAN104x CAN transceivers. > > > > > > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> > > > --- > > > .../bindings/phy/ti,tcan104x-can.yaml | 56 +++++++++++++++++++ > > > 1 file changed, 56 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > new file mode 100644 > > > index 000000000000..4abfc30a97d0 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > @@ -0,0 +1,56 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: "http://devicetree.org/schemas/phy/ti,tcan104x-can.yaml#" > > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > > + > > > +title: TCAN104x CAN TRANSCEIVER PHY > > > + > > > +maintainers: > > > + - Aswath Govindraju <a-govindraju@ti.com> > > > + > > > +properties: > > > + $nodename: > > > + pattern: "^tcan104x-phy" > > > + > > > + compatible: > > > + enum: > > > + - ti,tcan1042 > > > + - ti,tcan1043 > > > > Can you create a generic standby only and a generic standby and enable transceiver? > > As a fallback compatible fine, but no generic binding please. A generic > binding can't describe any timing requirements between the 2 GPIO as > well as supplies when someone wants to add those (and they will). Right - that makes sense. > > > + > > > + '#phy-cells': > > > + const: 0 > > > + > > > + standby-gpios: > > > + description: > > > + gpio node to toggle standby signal on transceiver > > > + maxItems: 1 > > > + > > > + enable-gpios: > > > + description: > > > + gpio node to toggle enable signal on transceiver > > > + maxItems: 1 > > > + > > > + max-bitrate: > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > + description: > > > + max bit rate supported in bps > > We already have 'max-speed' for serial devices, use that. There is already the neither Ethernet PHY (PHYLINK/PHYLIB) nor generic PHY (GENERIC_PHY) can-transceiver binding Documentation/devicetree/bindings/net/can/can-transceiver.yaml which specifies max-bitrate. I don't have strong feelings whether to use max-bitrate or max-speed. Speaking about Ethernet PHYs, what are to pros and cons to use the generic PHY compared to the Ethernet PHY infrastructure? regards, Marc
On Tue, Apr 13, 2021 at 2:41 AM Marc Kleine-Budde <mkl@pengutronix.de> wrote: > > On 12.04.2021 12:49:56, Rob Herring wrote: > > On Mon, Apr 12, 2021 at 12:19:30PM +0200, Marc Kleine-Budde wrote: > > > On 4/9/21 3:40 PM, Aswath Govindraju wrote: > > > > Add binding documentation for TI TCAN104x CAN transceivers. > > > > > > > > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> > > > > --- > > > > .../bindings/phy/ti,tcan104x-can.yaml | 56 +++++++++++++++++++ > > > > 1 file changed, 56 insertions(+) > > > > create mode 100644 Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > > > > > > diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > > new file mode 100644 > > > > index 000000000000..4abfc30a97d0 > > > > --- /dev/null > > > > +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml > > > > @@ -0,0 +1,56 @@ > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > +%YAML 1.2 > > > > +--- > > > > +$id: "http://devicetree.org/schemas/phy/ti,tcan104x-can.yaml#" > > > > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > > > > + > > > > +title: TCAN104x CAN TRANSCEIVER PHY > > > > + > > > > +maintainers: > > > > + - Aswath Govindraju <a-govindraju@ti.com> > > > > + > > > > +properties: > > > > + $nodename: > > > > + pattern: "^tcan104x-phy" > > > > + > > > > + compatible: > > > > + enum: > > > > + - ti,tcan1042 > > > > + - ti,tcan1043 > > > > > > Can you create a generic standby only and a generic standby and enable transceiver? > > > > As a fallback compatible fine, but no generic binding please. A generic > > binding can't describe any timing requirements between the 2 GPIO as > > well as supplies when someone wants to add those (and they will). > > Right - that makes sense. > > > > > + > > > > + '#phy-cells': > > > > + const: 0 > > > > + > > > > + standby-gpios: > > > > + description: > > > > + gpio node to toggle standby signal on transceiver > > > > + maxItems: 1 > > > > + > > > > + enable-gpios: > > > > + description: > > > > + gpio node to toggle enable signal on transceiver > > > > + maxItems: 1 > > > > + > > > > + max-bitrate: > > > > + $ref: /schemas/types.yaml#/definitions/uint32 > > > > + description: > > > > + max bit rate supported in bps > > > > We already have 'max-speed' for serial devices, use that. > > There is already the neither Ethernet PHY (PHYLINK/PHYLIB) nor generic > PHY (GENERIC_PHY) can-transceiver binding > Documentation/devicetree/bindings/net/can/can-transceiver.yaml which > specifies max-bitrate. I don't have strong feelings whether to use > max-bitrate or max-speed. Okay, max-bitrate is fine. > > Speaking about Ethernet PHYs, what are to pros and cons to use the > generic PHY compared to the Ethernet PHY infrastructure? For higher speed ethernet, both are used. There's the serdes phy and the ethernet phy with serdes phy using the generic phy binding. For CAN, it probably comes down to what's a better fit. Rob
Hi Marc, On 13/04/21 6:45 pm, Rob Herring wrote: > On Tue, Apr 13, 2021 at 2:41 AM Marc Kleine-Budde <mkl@pengutronix.de> wrote: >> >> On 12.04.2021 12:49:56, Rob Herring wrote: >>> On Mon, Apr 12, 2021 at 12:19:30PM +0200, Marc Kleine-Budde wrote: >>>> On 4/9/21 3:40 PM, Aswath Govindraju wrote: >>>>> Add binding documentation for TI TCAN104x CAN transceivers. >>>>> >>>>> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> >>>>> --- >>>>> .../bindings/phy/ti,tcan104x-can.yaml | 56 +++++++++++++++++++ >>>>> 1 file changed, 56 insertions(+) >>>>> create mode 100644 Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml >>>>> >>>>> diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml >>>>> new file mode 100644 >>>>> index 000000000000..4abfc30a97d0 >>>>> --- /dev/null >>>>> +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml >>>>> @@ -0,0 +1,56 @@ >>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>>> +%YAML 1.2 >>>>> +--- >>>>> +$id: "http://devicetree.org/schemas/phy/ti,tcan104x-can.yaml#" >>>>> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >>>>> + >>>>> +title: TCAN104x CAN TRANSCEIVER PHY >>>>> + >>>>> +maintainers: >>>>> + - Aswath Govindraju <a-govindraju@ti.com> >>>>> + >>>>> +properties: >>>>> + $nodename: >>>>> + pattern: "^tcan104x-phy" >>>>> + >>>>> + compatible: >>>>> + enum: >>>>> + - ti,tcan1042 >>>>> + - ti,tcan1043 >>>> >>>> Can you create a generic standby only and a generic standby and enable transceiver? >>> >>> As a fallback compatible fine, but no generic binding please. A generic >>> binding can't describe any timing requirements between the 2 GPIO as >>> well as supplies when someone wants to add those (and they will). >> >> Right - that makes sense. >> So, I need not add any new compatible strings right because as a fallback the existing compatible strings can be used, as there are no timing constraints on them. Thanks, Aswath >>>>> + >>>>> + '#phy-cells': >>>>> + const: 0 >>>>> + >>>>> + standby-gpios: >>>>> + description: >>>>> + gpio node to toggle standby signal on transceiver >>>>> + maxItems: 1 >>>>> + >>>>> + enable-gpios: >>>>> + description: >>>>> + gpio node to toggle enable signal on transceiver >>>>> + maxItems: 1 >>>>> + >>>>> + max-bitrate: >>>>> + $ref: /schemas/types.yaml#/definitions/uint32 >>>>> + description: >>>>> + max bit rate supported in bps >>> >>> We already have 'max-speed' for serial devices, use that. >> >> There is already the neither Ethernet PHY (PHYLINK/PHYLIB) nor generic >> PHY (GENERIC_PHY) can-transceiver binding >> Documentation/devicetree/bindings/net/can/can-transceiver.yaml which >> specifies max-bitrate. I don't have strong feelings whether to use >> max-bitrate or max-speed. > > Okay, max-bitrate is fine. > >> >> Speaking about Ethernet PHYs, what are to pros and cons to use the >> generic PHY compared to the Ethernet PHY infrastructure? > > For higher speed ethernet, both are used. There's the serdes phy and > the ethernet phy with serdes phy using the generic phy binding. For > CAN, it probably comes down to what's a better fit. > > Rob >
diff --git a/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml new file mode 100644 index 000000000000..4abfc30a97d0 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/phy/ti,tcan104x-can.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: TCAN104x CAN TRANSCEIVER PHY + +maintainers: + - Aswath Govindraju <a-govindraju@ti.com> + +properties: + $nodename: + pattern: "^tcan104x-phy" + + compatible: + enum: + - ti,tcan1042 + - ti,tcan1043 + + '#phy-cells': + const: 0 + + standby-gpios: + description: + gpio node to toggle standby signal on transceiver + maxItems: 1 + + enable-gpios: + description: + gpio node to toggle enable signal on transceiver + maxItems: 1 + + max-bitrate: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + max bit rate supported in bps + minimum: 1 + +required: + - compatible + - '#phy-cells' + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + transceiver1: tcan104x-phy { + compatible = "ti,tcan1043"; + #phy-cells = <0>; + max-bitrate = <5000000>; + standby-gpios = <&wakeup_gpio1 16 GPIO_ACTIVE_LOW>; + enable-gpios = <&main_gpio1 67 GPIO_ACTIVE_LOW>; + };
Add binding documentation for TI TCAN104x CAN transceivers. Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> --- .../bindings/phy/ti,tcan104x-can.yaml | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/ti,tcan104x-can.yaml