[PATCH 1/3] arm64: dts: mediatek: Introduce MT8195 LAPTOP and IOT's USB configurations

Macpaul Lin macpaul.lin at mediatek.com
Tue Jan 10 21:37:41 PST 2023



On 1/9/23 23:13, AngeloGioacchino Del Regno wrote:
> Il 05/01/23 10:28, Macpaul Lin ha scritto:
>> Introduce the split MT8195 laptop and iot USB configurations.
>> The hardware specifications for LAPTOP devices is different from IOT
>> devices. The major differences include some hardware constrains for
>> dual-role switch for USB controllers in different configurations,
>> especially for power management and other control flows as well.
>>
>> Here are some hardware specifiction differences listed:
>>    1. LAPTOP (Cherry Tomato boards) don't support USB gadget (device 
>> mode).
>>    2. IOT devices must support multiple gadget devices and host mode.
>>    3. Dual-role switch is not fully supported. Only USB PORT0 support
>>       dual-role switch.
>>    4. Power management is designed in primary and secondary dominator.
>>       For a dual-role port, the device controller is the primary 
>> controller
>>       for power management; while the host controller is the secondary.
>>       LAPTOP devices should remove device nodes for avoiding abnormal
>>       behavior.
>>
>> This modifcation is to add USB configurations "mt8195-laptop-usb.dtsi"
>> for LAPTOP devices, and add "mt8195-iot-usb.dtsi" for IOT devices.
>>
>> To remove common USB configurations for mt8195.dtsi and switch includes
>> dtsi these new files for the boards will come in next patch.
>>
>> Signed-off-by: Macpaul Lin <macpaul.lin at mediatek.com>
> 
> I'm mostly sure that there's no reason to split the two configurations.
>
> I agree in that Tomato doesn't support gadget mode on the Type-A port and I
> honestly don't currently know (and I'll test that later!) if it would be 
> possible
> to act as gadget on any of the two Type-C ports.
> Of course I agree on the fact that a laptop acting as a gadget may not 
> be useful,
> but that's not something that I want to judge, as someone may find a 
> usecase.
> 
> In any case, even if Tomato does *not* support gadget mode on *any* port 
> at all,
> I wonder why we wouldn't be able to probe MTU3 (and correctly describe 
> the SoC)
> on Chromebooks but only on MT8195-based IoT boards...
> ...and in case there's any real issue, we can always force host mode 
> (with a
> generic  devicetree property!) on the MTU3 on Tomato.

We are sorry it cannot be achieved by even setting "force host mode" to 
usb device node. At least, it cannot be done on MT8195.

The basic reason is the power requirements for USB host on a LAPTOP are 
different from those on an IoT device.

The main cause is low power management. The hardware of each device port 
is different on MT8195. Even the bit fields definition in registers were 
different.

Some details such as sequence need to be coordinated with the SPM 
firmware. When a device hardware is involved in runtime PM, function 
like remote wakeup and other suspend/resume behavior will be abnormal 
for a LAPTOP device. If we split the dtsi for different devices, people 
can choose different configuration in SPM firmware in coreboot or in 
TF-A to meet the requirement. Hence we'd better not to get more messy 
code in Linux driver.

> Finally, if we're able to add MTU3 to Tomato boards, this means that we 
> won't be
> seeing these two DTSI files and that USB nodes are still going to all 
> lie in the
> main `mt8195.dtsi` file, without all this duplication that I'm seeing here.
> 
> What do you think?
> 
> Regards,
> Angelo
> 

Thanks for the suggestion, we hope the next platform in the future could 
avoid this issue and reduce some duplicate dts.

Macpaul Lin



More information about the linux-arm-kernel mailing list