read() via USB bus

Oliver Neukum oneukum at
Tue Aug 10 10:20:03 EDT 2021

On 10.08.21 16:13, Muni Sekhar wrote:
> On Mon, Aug 9, 2021 at 1:45 PM Oliver Neukum <oneukum at> 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
> 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?

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
not part of USB:


More information about the Kernelnewbies mailing list