Ok, thanks your reply. Here is my question, we must modify the driver "onboard_usb_hub.c" if we want to use it. But it's hard to complete because it's an opensource code. My suggestion is can we use a common compatible string for onboard_hub_driver which is a platform_driver, and read compatible string from device tree for onboard_hub_usbdev_driver which is a usb_device_driver. If so, we only need to modify our device tree if we want to use the driver. Best regards, Wangtao 13709202879 -----邮件原件----- 发件人: mka@xxxxxxxxxxxx <mka@xxxxxxxxxxxx> 发送时间: 2022年2月23日 0:37 收件人: Tao Wang (Consultant) (QUIC) <quic_wat@xxxxxxxxxxx> 抄送: balbi@xxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; dianders@xxxxxxxxxxxx; frowand.list@xxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; hadess@xxxxxxxxxx; krzk@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; mathias.nyman@xxxxxxxxx; michal.simek@xxxxxxxxxx; peter.chen@xxxxxxxxxx; ravisadineni@xxxxxxxxxxxx; robh+dt@xxxxxxxxxx; rogerq@xxxxxxxxxx; stern@xxxxxxxxxxxxxxxxxxx; swboyd@xxxxxxxxxxxx; Linyu Yuan (QUIC) <quic_linyyuan@xxxxxxxxxxx> 主题: Re: 回复: Re: [PATCH v20 3/5] usb: misc: Add onboard_usb_hub driver On Mon, Feb 21, 2022 at 06:20:00AM +0000, Tao Wang (Consultant) (QUIC) wrote: > Hi, > > > > Regarding on board hub driver, > > [1]https://lore.kernel.org/linux-usb/20220119124327.v20.3.I7c9a1f1d6ced > 41dd8310e8a03da666a32364e790@changeid/#R > > > I have one comment below, > > > +static const struct usb_device_id onboard_hub_id_table[] = { > > + { USB_DEVICE(VENDOR_ID_REALTEK, 0x0411) }, /* RTS5411 USB 3.1 > */ > > + { USB_DEVICE(VENDOR_ID_REALTEK, 0x5411) }, /* RTS5411 USB 2.1 > */ > > + { USB_DEVICE(VENDOR_ID_REALTEK, 0x0414) }, /* RTS5414 USB 3.2 > */ > > + { USB_DEVICE(VENDOR_ID_REALTEK, 0x5414) }, /* RTS5414 USB 2.1 > */ > > + {} > > +}; > > +MODULE_DEVICE_TABLE(usb, onboard_hub_id_table); > > > Can we support read VID/PID from device tree which provide platfrom > device info? As far as I understand the kernel exclusively uses the VID/PID reported by the USB device, the compatible string in the device tree is purely informational (though this driver uses it for the platform device).