]> git.dujemihanovic.xyz Git - u-boot.git/commit
usb: onboard-hub: Add i2c initialization for usb5744 hub
authorVenkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Mon, 25 Nov 2024 04:12:01 +0000 (09:42 +0530)
committerMarek Vasut <marex@denx.de>
Mon, 25 Nov 2024 04:40:49 +0000 (05:40 +0100)
commit09f557e106ef0bddb3238d42c444aaac670b9354
treea79853e93e7489cb051f721a7f0586e54fe06bd3
parentf9d96095e4d3d30f266e4733d5dd003c5b596b75
usb: onboard-hub: Add i2c initialization for usb5744 hub

Add i2c initialization hook and set usb5744 platform
data with function having required i2c initialization sequence.

Apart from the USB command attach, prevent the hub from suspend.
when the “USB Attach with SMBUS (0xAA56)” command is issued to the hub,
the hub is getting enumerated and then it puts in a suspend mode.
This causes the hub to NAK any SMBUS access made by the SMBUS Master
during this period and not able to see the hub's slave address while
running the "i2c probe" command.

Prevent the MCU from the putting the HUB in suspend mode through register
write. The BYPASS_UDC_SUSPEND bit (Bit 3) of the RuntimeFlags2 register at
address 0x411D controls this aspect of the hub. The BYPASS_UDC_SUSPEND
bit in register 0x411Dh must be set to ensure that the MCU is always
enabled and ready to respond to SMBus runtime commands. This register
needs to be written before the USB attach command is issued.
The byte sequence is as follows:
Slave addr: 0x2d           00 00 05 00 01 41 1D 08
Slave addr: 0x2d           99 37 00
Slave addr: 0x2d           AA 56 00

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@amd.com>
Reviewed-by: Marek Vasut <marex@denx.de>
common/usb_onboard_hub.c