Message ID | 20240807-v6-10-topic-usb-serial-serdev-v1-0-ed2cc5da591f@pengutronix.de |
---|---|
Headers | show |
Series | USB-Serial serdev support | expand |
On Wed, Aug 07, 2024 at 04:08:47PM +0200, Marco Felsch wrote: > this patchset is based on Johan's patches [1] but dropped the need of > the special 'serial' of-node [2]. That's great that you found and referenced my proof-of-concept patches, but it doesn't seem like you tried to understand why this hasn't been merged yet. First, as the commit message you refer to below explain, we need some way to describe multiport controllers. Just dropping the 'serial' node does not make that issue go away. Second, and more importantly, you do not address the main obstacle for enabling serdev for USB serial which is that the serdev cannot handle hotplugging. > [1] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/log/?h=usb-serial-of > [2] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-serial-of&id=b19239022c92567a6a9ed40e8522e84972b0997f Johan
Hi Johan, On 24-09-09, Johan Hovold wrote: > On Wed, Aug 07, 2024 at 04:08:47PM +0200, Marco Felsch wrote: > > this patchset is based on Johan's patches [1] but dropped the need of > > the special 'serial' of-node [2]. > > That's great that you found and referenced my proof-of-concept patches, > but it doesn't seem like you tried to understand why this hasn't been > merged yet. I'm glad for your input. > First, as the commit message you refer to below explain, we need some > way to describe multiport controllers. Just dropping the 'serial' node > does not make that issue go away. Sorry for asking but isn't the current OF abstraction [1] enough? As far as I understood we can describe the whole USB tree within OF. I used [1] and the this patchset to describe the following hierarchy: usb-root -> usb-hub port-1 -> usb-serial interface-0 -> serial bt-module [1] Documentation/devicetree/bindings/usb/usb-device.yaml > Second, and more importantly, you do not address the main obstacle for > enabling serdev for USB serial which is that the serdev cannot handle > hotplugging. Hotplugging is a good point but out-of-scope IMHO (at least for now) since the current serdev implementation rely on additional firmware information e.g OF node to be present. E.g. if the above mentioned setup would connect the "serial bt-module" directly to the UART port you still need an OF node to bind the serdev driver. If the node isn't present user-space would need to do the hci handling. So from my POV the serdev abstraction is for manufacturers which make use of "onboard" usb-devices which are always present at the same USB tree location. Serdev is not made for general purpose USB ports (yet) where a user can plug-in all types of USB devices. Regards, Marco > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/log/?h=usb-serial-of > > [2] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-serial-of&id=b19239022c92567a6a9ed40e8522e84972b0997f > > Johan >
Hi, this patchset is based on Johan's patches [1] but dropped the need of the special 'serial' of-node [2]. With the patches in place and the usb hierarchy described in properly we can use serdev on-top of usb-serial. The below example adds the support for the following hierarchy: - host->usb-hub->ftdi-usb-uart->bt/wlan-module: &usb_dwc3_1 { dr_mode = "host"; status = "okay"; hub@1 { compatible = "usb424,2514"; reg = <1>; vdd-supply = <®>; reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>; #address-cells = <1>; #size-cells = <0>; device@1 { compatible = "usb403,6010"; reg = <1>; #address-cells = <2>; #size-cells = <0>; interface@0 { compatible = "usbif403,6010.config1.0"; reg = <0 1>; #address-cells = <1>; #size-cells = <0>; bluetooth { compatible = "nxp,88w8987-bt"; fw-init-baudrate = <3000000>; }; }; }; }; }; If no serdev node is found the usb-serial is exposed as usual and can be accessed via /dev/ttyUSBx. Regards, Marco [1] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/log/?h=usb-serial-of [2] https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-serial-of&id=b19239022c92567a6a9ed40e8522e84972b0997f Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> --- Marco Felsch (3): serdev: ttyport: make use of tty_kopen_exclusive USB: serial: cosmetic cleanup <space><tab> mix USB: serial: enable serdev support drivers/tty/serdev/serdev-ttyport.c | 9 ++++++--- drivers/usb/serial/bus.c | 10 ++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) --- base-commit: 0c3836482481200ead7b416ca80c68a29cfdaabd change-id: 20240807-v6-10-topic-usb-serial-serdev-83a7f8f86432 Best regards,