On 10.08.21 16:13, Muni Sekhar wrote: > On Mon, Aug 9, 2021 at 1:45 PM Oliver Neukum <oneukum@xxxxxxxx> wrote: >> >> On 09.08.21 09:58, Muni Sekhar wrote: >>> Hi all, >>> >>> PCIe memory mapped registers can be read via readb(), readw(), readl() >>> kernel API's. Similarly what are the kernel API to read the device >>> registers via USB bus >>> >> Hi, >> >> I am afraid this is based on a fundamental misunderstanding on how >> USB works. It is based on passing messages, not reading and writing >> registers. > I am referring to the code mentioned in > https://patchwork.kernel.org/project/linux-arm-msm/patch/1534464348-8227-3-git-send-email-pheragu@xxxxxxxxxxxxxx/ > > As per this driver gets access to the Qcomm’s USB h/w device registers > via devm_extcon_dev_allocate(), devm_extcon_dev_register(), > platform_get_resource() and devm_ioremap_resource API’s. > > What does the USB external connector EXTCON_USB \ EXTCON_USB_HOST > devices means? Are these different from normal USB devices? > Hi, those are not USB devices. Those are devices associated with a USB bus and are to be found on the host's CPU's bus. This is like a graphics card is from the driver's view not a DisplayPort device or a SCSI controller is not a SCSI device for its driver. A host controller and associated devices can be on any bus. Such controllers follow their separate specifications and how they are to be driven is strictly speaking not part of USB: Regards Oliver