Re: [PATCH V2 5/7] USB: serial: f81232: Set F81534A serial port with RS232 mode

From: Ji-Ze Hong (Peter Hong)
Date: Wed Jan 08 2020 - 21:37:27 EST


Hi Johan,

Johan Hovold æ 2020/1/8 äå 10:35 åé:
Yes, when 1 F81534A connect to Host, it'll report device as following.
virtual HUB
GPIO Device.
serial port 1
...
serial port n

Could you post lsusb -v output for this with a couple of UARTs enabled?

The following lsusb log is F81536 informations
2c42:1608 => HUB
2c42:16f8 => GPIO device
2c42:163x => UART (need driver enable)

*before insmod driver
Bus 002 Device 003: ID 05e3:0620 Genesys Logic, Inc.
Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0603:00f2 Novatek Microelectronics Corp. Keyboard (Labtec Ultra Flat Keyboard)
Bus 001 Device 005: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 001 Device 044: ID 2c42:16f8
Bus 001 Device 043: ID 2c42:1608
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

*after insmod driver and wait for complete
Bus 002 Device 003: ID 05e3:0620 Genesys Logic, Inc.
Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0603:00f2 Novatek Microelectronics Corp. Keyboard (Labtec Ultra Flat Keyboard)
Bus 001 Device 005: ID 046d:c05a Logitech, Inc. M90/M100 Optical Mouse
Bus 001 Device 052: ID 2c42:1636
Bus 001 Device 051: ID 2c42:1636
Bus 001 Device 050: ID 2c42:1636
Bus 001 Device 049: ID 2c42:1636
Bus 001 Device 048: ID 2c42:1636
Bus 001 Device 047: ID 2c42:1636
Bus 001 Device 046: ID 2c42:1636
Bus 001 Device 045: ID 2c42:1636
Bus 001 Device 056: ID 2c42:1636
Bus 001 Device 055: ID 2c42:1636
Bus 001 Device 054: ID 2c42:1636
Bus 001 Device 053: ID 2c42:1636
Bus 001 Device 044: ID 2c42:16f8
Bus 001 Device 043: ID 2c42:1608
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The link are F81534A pin-out:
https://imgur.com/a/AZHqQ1N

Do you have a datasheet for the device?

I think I'm starting to get an idea of how this work, but I really don't
like having to spend this much time on detective work just to understand
how the hw works.

The following link is F81536 spec:
https://drive.google.com/drive/folders/1oA8DvpevFXoTLCDfPZHzaBWKr32ch5xc?usp=sharing

So we can control F81534A series all GPIO pins via GPIO Device.
Serial ports are also control MODE0_x, MODE1_x, MODE2_x
(e.g. UART1 MODE0_1, MODE1_1, MODE2_1), but when Serial ports
is h/w disabled (DTR pull low), the mode pin will change to GPIO pin.

So you tie a ports DTR pin, even though it's normally an output, and use
that at boot to determine whether the UART should be enabled or not?

And the GPIO device can only control a pin if the corresponding port is
disabled?

Can you read back the enable state of each port?

DTR pin of the F81534A series are strap pin on power on, when IC detect
it pulled to low, the UART device can't enable and DTR change to input
mode.

I can read the UART enable state from GPIO Device, so I can do when the
GPIO is associated with UART enabled, change it as output only otherwise
can be set to input/output. Is this OK ??

What about devices using a different tranceiver? Should the state of the
mode pins ultimately be tied to VID/PID (can your customers change
VID/PID)?


Our device VID/PID is changeable, but we assume don't change it.

--
With Best Regards,
Peter Hong