diff mbox series

[V2,1/2] dt-bindings: Add optional gpio property to uartps node to support rs485

Message ID 20231011145602.3619616-2-manikanta.guntupalli@amd.com
State New
Headers show
Series [V2,1/2] dt-bindings: Add optional gpio property to uartps node to support rs485 | expand

Commit Message

Manikanta Guntupalli Oct. 11, 2023, 2:56 p.m. UTC
Add optional gpio property to uartps node and reference to rs485.yaml

On Xilinx/AMD Kria SOM KD240 board rs485 connects via TI ISOW1432
Transceiver device, where one GPIO is used for driving DE/RE signals.
With rs485 half duplex configuration, DE and RE shorts to each other,
and at a time, any node acts as either a driver or a receiver.

Here,
DE - Driver enable. If pin is floating, driver is disabled.
RE - Receiver enable. If pin is floating, receiver buffer is disabled.

For more deatils, please find below link which contains Transceiver
device(ISOW1432) datasheet
https://www.ti.com/lit/ds/symlink/isow1432.pdf?ts=1682607122706&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FISOW1432%252Fpart-details%252FISOW1432DFMR%253FkeyMatch%253DISOW1432DFMR%2526tisearch%253Dsearch-everything%2526usecase%253DOPN

xlnx,phy-ctrl-gpios is optional property, because it is not required
for uart console node.

Signed-off-by: Manikanta Guntupalli <manikanta.guntupalli@amd.com>
---
Changes for V2:
Modify optional gpio name to xlnx,phy-ctrl-gpios.
Update commit description.
---
 Documentation/devicetree/bindings/serial/cdns,uart.yaml | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Maarten Brock Oct. 12, 2023, 6:35 p.m. UTC | #1
Manikanta Guntupalli wrote on 2023-10-11 16:56:
> Add optional gpio property to uartps node and reference to rs485.yaml
> 
> On Xilinx/AMD Kria SOM KD240 board rs485 connects via TI ISOW1432
> Transceiver device, where one GPIO is used for driving DE/RE signals.
> With rs485 half duplex configuration, DE and RE shorts to each other,

s/shorts/are connected

> and at a time, any node acts as either a driver or a receiver.
> 
> Here,
> DE - Driver enable. If pin is floating, driver is disabled.
> RE - Receiver enable. If pin is floating, receiver buffer is disabled.

Please use DE and /RE to indicate DE is active high and /RE is active 
low.

> xlnx,phy-ctrl-gpios is optional property, because it is not required
> for uart console node.

How about introducing an rs485 generic gpios property instead of xlnx
private one? See also rs485-term-gpios and rs485-rx-during-tx-gpios.

Also note that every kernel driver expects to use RTS for this purpose.
So why not give this driver the option to choose a gpio instead of its
native RTS? And from there on use the rts route?
What if someone wants to use normal (non-rs485) RTS on a GPIO instead
of the native pin?

@Rob Herring
I am curious to know how the rs485 maintainers look at this.

Maarten
Rob Herring (Arm) Oct. 12, 2023, 8:51 p.m. UTC | #2
On Thu, Oct 12, 2023 at 08:35:59PM +0200, m.brock@vanmierlo.com wrote:
> Manikanta Guntupalli wrote on 2023-10-11 16:56:
> > Add optional gpio property to uartps node and reference to rs485.yaml
> > 
> > On Xilinx/AMD Kria SOM KD240 board rs485 connects via TI ISOW1432
> > Transceiver device, where one GPIO is used for driving DE/RE signals.
> > With rs485 half duplex configuration, DE and RE shorts to each other,
> 
> s/shorts/are connected
> 
> > and at a time, any node acts as either a driver or a receiver.
> > 
> > Here,
> > DE - Driver enable. If pin is floating, driver is disabled.
> > RE - Receiver enable. If pin is floating, receiver buffer is disabled.
> 
> Please use DE and /RE to indicate DE is active high and /RE is active low.
> 
> > xlnx,phy-ctrl-gpios is optional property, because it is not required
> > for uart console node.
> 
> How about introducing an rs485 generic gpios property instead of xlnx
> private one? See also rs485-term-gpios and rs485-rx-during-tx-gpios.
> 
> Also note that every kernel driver expects to use RTS for this purpose.
> So why not give this driver the option to choose a gpio instead of its
> native RTS? And from there on use the rts route?
> What if someone wants to use normal (non-rs485) RTS on a GPIO instead
> of the native pin?
> 
> @Rob Herring
> I am curious to know how the rs485 maintainers look at this.

Ask them.

We already have 'rts-gpios'. If that's what's always used, then perhaps 
we should use that in the RS485 case too?

Rob
Maarten Brock Oct. 13, 2023, 11:17 a.m. UTC | #3
Rob Herring wrote on 2023-10-12 22:51:
>> How about introducing an rs485 generic gpios property instead of xlnx
>> private one? See also rs485-term-gpios and rs485-rx-during-tx-gpios.
>> 
>> Also note that every kernel driver expects to use RTS for this 
>> purpose.
>> So why not give this driver the option to choose a gpio instead of its
>> native RTS? And from there on use the rts route?
>> What if someone wants to use normal (non-rs485) RTS on a GPIO instead
>> of the native pin?
>> 
>> @Rob Herring
>> I am curious to know how the rs485 maintainers look at this.
> 
> Ask them.

Funny, your name is the only one listed under the maintainers in
Documentation/devicetree/bindings/serial/rs485.yaml

And there is no mention of (RS-)485 in MAINTAINERS.

> We already have 'rts-gpios'. If that's what's always used, then perhaps
> we should use that in the RS485 case too?
> 
> Rob

Sounds like a good idea.

Maarten
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/serial/cdns,uart.yaml b/Documentation/devicetree/bindings/serial/cdns,uart.yaml
index a8b323d7bf94..cf8ef55ba210 100644
--- a/Documentation/devicetree/bindings/serial/cdns,uart.yaml
+++ b/Documentation/devicetree/bindings/serial/cdns,uart.yaml
@@ -46,6 +46,11 @@  properties:
   power-domains:
     maxItems: 1
 
+  xlnx,phy-ctrl-gpios:
+    description: Optional GPIO to control transmit/receive on RS485 phy
+      in halfduplex mode.
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -55,6 +60,7 @@  required:
 
 allOf:
   - $ref: serial.yaml#
+  - $ref: rs485.yaml#
   - if:
       properties:
         compatible: