platform: x86: intel_cht_int33fe: Add connections for the USB Type-C port
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Thu, 20 Sep 2018 11:23:43 +0000 (14:23 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Apr 2019 04:26:30 +0000 (06:26 +0200)
commit 495965a1002a0b301bf4fbfd1aed3233f3e7db1b upstream.

Assigning the mux to the USB Type-C port on top of fusb302.
That will prepare this driver for the change in the USB
Type-C class code, where the class driver will assume the
muxes to be always assigned to the ports and not the
controllers.

Once the USB Type-C class driver has been updated, the
connections between the mux and fusb302 can be dropped.

Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/platform/x86/intel_cht_int33fe.c

index 4240641..419ce8c 100644 (file)
@@ -34,7 +34,7 @@ struct cht_int33fe_data {
        struct i2c_client *fusb302;
        struct i2c_client *pi3usb30532;
        /* Contain a list-head must be per device */
-       struct device_connection connections[5];
+       struct device_connection connections[8];
 };
 
 /*
@@ -187,6 +187,16 @@ static int cht_int33fe_probe(struct i2c_client *client)
        data->connections[3].endpoint[1] = "intel_xhci_usb_sw-role-switch";
        data->connections[3].id = "usb-role-switch";
 
+       data->connections[4].endpoint[0] = "port0";
+       data->connections[4].endpoint[1] = "i2c-pi3usb30532";
+       data->connections[4].id = "typec-switch";
+       data->connections[5].endpoint[0] = "port0";
+       data->connections[5].endpoint[1] = "i2c-pi3usb30532";
+       data->connections[5].id = "typec-mux";
+       data->connections[6].endpoint[0] = "port0";
+       data->connections[6].endpoint[1] = "i2c-pi3usb30532";
+       data->connections[6].id = "idff01m01";
+
        device_connections_add(data->connections);
 
        memset(&board_info, 0, sizeof(board_info));