All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: MyungJoo Ham <myungjoo.ham@samsung.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Darren Hart <dvhart@infradead.org>,
	Andy Shevchenko <andy@infradead.org>,
	Peter Rosin <peda@axentia.se>,
	Mathias Nyman <mathias.nyman@intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>,
	linux-kernel@vger.kernel.org,
	platform-driver-x86@vger.kernel.org, devel@driverdev.osuosl.org,
	Kuppuswamy Sathyanarayanan 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	Sathyanarayanan Kuppuswamy Natarajan <sathyaosid@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org
Subject: [PATCH v3 14/14] platform/x86: intel_cht_int33fe: Add mux mappings for the Type-C port
Date: Fri, 22 Sep 2017 20:38:03 +0200	[thread overview]
Message-ID: <20170922183803.10701-14-hdegoede@redhat.com> (raw)
In-Reply-To: <20170922183803.10701-1-hdegoede@redhat.com>

We need to add mappings for the mux subsys to be able to find the
muxes for the fusb302 driver to be able to control the PI3USB30532
Type-C mux and the device/host mux integrated in the CHT SoC.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
 drivers/platform/x86/Kconfig             |  1 +
 drivers/platform/x86/intel_cht_int33fe.c | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 312d2472b8b3..830ff8d0a1eb 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -794,6 +794,7 @@ config ACPI_CMPC
 config INTEL_CHT_INT33FE
 	tristate "Intel Cherry Trail ACPI INT33FE Driver"
 	depends on X86 && ACPI && I2C && REGULATOR
+	select MULTIPLEXER
 	---help---
 	  This driver add support for the INT33FE ACPI device found on
 	  some Intel Cherry Trail devices.
diff --git a/drivers/platform/x86/intel_cht_int33fe.c b/drivers/platform/x86/intel_cht_int33fe.c
index b2925d996613..89ba510dac78 100644
--- a/drivers/platform/x86/intel_cht_int33fe.c
+++ b/drivers/platform/x86/intel_cht_int33fe.c
@@ -24,6 +24,7 @@
 #include <linux/i2c.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
+#include <linux/mux/consumer.h>
 #include <linux/regulator/consumer.h>
 #include <linux/slab.h>
 
@@ -35,6 +36,19 @@ struct cht_int33fe_data {
 	struct i2c_client *pi3usb30532;
 };
 
+static struct mux_lookup cht_int33fe_mux_lookup[] = {
+	{
+		.provider = "i2c-pi3usb30532",
+		.dev_id   = "i2c-fusb302",
+		.mux_name = "type-c-mode-mux",
+	},
+	{
+		.provider = "intel_cht_usb_mux",
+		.dev_id   = "i2c-fusb302",
+		.mux_name = "usb-role-mux",
+	},
+};
+
 /*
  * Grrr I severly dislike buggy BIOS-es. At least one BIOS enumerates
  * the max17047 both through the INT33FE ACPI device (it is right there
@@ -177,6 +191,9 @@ static int cht_int33fe_probe(struct i2c_client *client)
 	board_info.properties = fusb302_props;
 	board_info.irq = fusb302_irq;
 
+	mux_add_table(cht_int33fe_mux_lookup,
+		      ARRAY_SIZE(cht_int33fe_mux_lookup));
+
 	data->fusb302 = i2c_acpi_new_device(dev, 2, &board_info);
 	if (!data->fusb302)
 		goto out_unregister_max17047;
@@ -200,6 +217,9 @@ static int cht_int33fe_probe(struct i2c_client *client)
 	if (data->max17047)
 		i2c_unregister_device(data->max17047);
 
+	mux_remove_table(cht_int33fe_mux_lookup,
+		      ARRAY_SIZE(cht_int33fe_mux_lookup));
+
 	return -EPROBE_DEFER; /* Wait for the i2c-adapter to load */
 }
 
@@ -212,6 +232,9 @@ static int cht_int33fe_remove(struct i2c_client *i2c)
 	if (data->max17047)
 		i2c_unregister_device(data->max17047);
 
+	mux_remove_table(cht_int33fe_mux_lookup,
+		      ARRAY_SIZE(cht_int33fe_mux_lookup));
+
 	return 0;
 }
 
-- 
2.14.1

  parent reply	other threads:[~2017-09-22 18:39 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-22 18:37 [PATCH v3 01/14] mux: core: Add mux_control_get_optional() API Hans de Goede
2017-09-22 18:37 ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 02/14] mux: core: Add explicit hook to leave the mux as-is on init/registration Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 03/14] mux: core: Add of_mux_control_get helper function Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 04/14] mux: core: Add support for getting a mux controller on a non DT platform Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 05/14] mux: core: Add usb.h header with MUX_USB_* and and MUX_TYPEC_* state constants Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-26  7:45   ` Heikki Krogerus
2017-09-26  7:45     ` Heikki Krogerus
2017-09-22 18:37 ` [PATCH v3 06/14] xhci: Add option to get next extended capability in list by passing id = 0 Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 07/14] xhci: Add Intel cherrytrail extended cap / otg phy mux handling Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-10-05 11:13   ` Mathias Nyman
2017-10-05 11:13     ` Mathias Nyman
2017-09-22 18:37 ` [PATCH v3 08/14] mux: Add Intel Cherrytrail USB mux driver Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 09/14] mux: Add Pericom PI3USB30532 Type-C " Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-09-22 18:37 ` [PATCH v3 10/14] extcon: intel-int3496: Add support for controlling the USB-role mux Hans de Goede
2017-09-22 18:37   ` Hans de Goede
2017-10-18  2:33   ` Chanwoo Choi
2017-10-18  2:33     ` Chanwoo Choi
2017-10-18  9:14     ` Hans de Goede
2017-10-18  9:14       ` Hans de Goede
2017-10-18  9:40       ` Chanwoo Choi
2017-10-18  9:40         ` Chanwoo Choi
2017-09-22 18:38 ` [PATCH v3 11/14] staging: typec: tcpm: Set mux to device mode when configured as such Hans de Goede
2017-09-22 18:38   ` Hans de Goede
2017-09-22 18:38 ` [PATCH v3 12/14] staging: typec: Add Generic TCPC mux driver using the mux subsys Hans de Goede
2017-09-22 18:38   ` Hans de Goede
2017-09-22 18:38 ` [PATCH v3 13/14] staging: typec: fusb302: Hook up mux support using tcpc_gen_mux support Hans de Goede
2017-09-22 18:38   ` Hans de Goede
2017-09-22 18:38 ` Hans de Goede [this message]
2017-09-22 18:38   ` [PATCH v3 14/14] platform/x86: intel_cht_int33fe: Add mux mappings for the Type-C port Hans de Goede

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170922183803.10701-14-hdegoede@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=andy@infradead.org \
    --cc=cw00.choi@samsung.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=dvhart@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mathias.nyman@intel.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=peda@axentia.se \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=sathyaosid@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.