Re: read() via USB bus

From: Oliver Neukum
Date: Tue Aug 10 2021 - 10:25:53 EST



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