• Hans de Goede's avatar
    platform/x86: Add new MeeGoPad ANX7428 Type-C Cross Switch driver · 2513563e
    Hans de Goede authored
    Some MeeGoPad top-set boxes have an ANX7428 Type-C Switch for USB3.1 Gen 1
    and DisplayPort over Type-C alternate mode support.
    
    The ANX7428 has a microcontroller which takes care of the PD negotiation
    and automatically sets the builtin Crosspoint Switch to send the right
    signal to the 4 highspeed pairs of the Type-C connector. It also takes
    care of HPD and AUX channel routing for DP alternate mode.
    
    IOW the ANX7428 operates fully autonomous and to the x5-Z8350 SoC
    things look like there simple is a USB-3 Type-A connector and a
    separate DisplayPort connector. Except that the BIOS does not
    power on the ANX7428 at boot (meh).
    
    Add a driver to power on the ANX7428. This driver is added under
    drivers/platform/x86 rather than under drivers/usb/typec for 2 reasons:
    
    1. This driver is specifically written to work with how the ANX7428 is
    described in the ACPI tables of the MeeGoPad x86 (Cherry Trail) devices.
    
    2. This driver only powers on the ANX7428 and does not do anything wrt
    its Type-C functionality. It should be possible to tell the controller
    which data- and/or power-role to negotiate and to swap the role(s) after
    negotiation but the MeeGoPad top-set boxes always draw their power from
    a separate power-connector and they only support USB host-mode. So this
    functionality is unnecessary and due to lack of documentation this is
    tricky to support.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20240514180343.70795-1-hdegoede@redhat.com
    2513563e
Kconfig 37.3 KB