devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH resend 00/12] staging: typec: tcpci: move out of staging
@ 2017-09-26  4:05 Li Jun
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

This patch set attempts to move the tcpci driver out of staging by fix
some tcpci driver issues and verified on NXP PTN5110, which is a standard
tcpci typec port controller device with power delivery support, tested
power source and sink with drp config.

Li Jun (12):
  usb: typec: add API to get port type and preferred role
  usb: typec: add basic typec properties
  staging: typec: tcpci: add documentation for tcpci
  staging: typec: tcpci: support port config passed via dt
  staging: typec: tcpci: register port before request irq
  staging: typec: tcpci: enable vbus detection
  typec: tcpm: add starting value for drp toggling
  staging: typec: tcpci: correct drp toggling
  usb: typec: tcpm: only drives the connected cc line when attached
  staging: typec: tcpci: update set_cc for different state
  staging: typec: tcpci: Only touch target bit when enable vconn
  staging: typec: tcpci: move tcpci driver out of staging

 .../devicetree/bindings/usb/typec-tcpci.txt        |  36 ++++
 Documentation/devicetree/bindings/usb/typec.txt    |  46 +++++
 drivers/staging/Kconfig                            |   2 -
 drivers/staging/Makefile                           |   1 -
 drivers/staging/typec/Kconfig                      |  14 --
 drivers/staging/typec/Makefile                     |   1 -
 drivers/staging/typec/TODO                         |   5 -
 drivers/usb/typec/Kconfig                          |   7 +
 drivers/usb/typec/Makefile                         |   1 +
 drivers/{staging => usb}/typec/tcpci.c             | 185 ++++++++++++++++-----
 drivers/{staging => usb}/typec/tcpci.h             |   0
 drivers/usb/typec/tcpm.c                           |  22 ++-
 drivers/usb/typec/typec.c                          |  45 +++++
 include/linux/usb/tcpm.h                           |   9 +-
 include/linux/usb/typec.h                          |   2 +
 15 files changed, 306 insertions(+), 70 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/typec-tcpci.txt
 create mode 100644 Documentation/devicetree/bindings/usb/typec.txt
 delete mode 100644 drivers/staging/typec/Kconfig
 delete mode 100644 drivers/staging/typec/Makefile
 delete mode 100644 drivers/staging/typec/TODO
 rename drivers/{staging => usb}/typec/tcpci.c (73%)
 rename drivers/{staging => usb}/typec/tcpci.h (100%)

-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH resend 01/12] usb: typec: add API to get port type and preferred role
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 02/12] usb: typec: add basic typec properties Li Jun
                     ` (11 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

This patch add 2 APIs to get port type and preferred role from firmware
description.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/usb/typec/typec.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
 include/linux/usb/typec.h |  2 ++
 2 files changed, 47 insertions(+)

diff --git a/drivers/usb/typec/typec.c b/drivers/usb/typec/typec.c
index 24e355b..0c77cc4 100644
--- a/drivers/usb/typec/typec.c
+++ b/drivers/usb/typec/typec.c
@@ -12,6 +12,7 @@
 #include <linux/device.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/of.h>
 #include <linux/slab.h>
 #include <linux/usb/typec.h>
 
@@ -1249,6 +1250,50 @@ void typec_set_pwr_opmode(struct typec_port *port,
 }
 EXPORT_SYMBOL_GPL(typec_set_pwr_opmode);
 
+/**
+ * typec_get_port_type - Get the typec port type
+ * @dev: Device to get the property of
+ *
+ * This routine is used by typec hardware driver to read property port type
+ * from the device firmware description.
+ *
+ * Returns typec_port_type if success, otherwise negative error code.
+ */
+int typec_get_port_type(struct device *dev)
+{
+	const char *type_str;
+	int ret;
+
+	ret = device_property_read_string(dev, "port-type", &type_str);
+	if (ret < 0)
+		return ret;
+
+	return match_string(typec_port_types, ARRAY_SIZE(typec_port_types),
+								 type_str);
+}
+EXPORT_SYMBOL_GPL(typec_get_port_type);
+
+/**
+ * typec_get_power_role - Get the typec preferred role
+ * @dev: Device to get the property of
+ *
+ * This routine is used by typec hardware driver to read property default role
+ * from the device firmware description.
+ *
+ * Returns typec_role if success, otherwise negative error code.
+ */
+int typec_get_power_role(struct device *dev)
+{
+	const char *power_str;
+	int ret;
+
+	ret = device_property_read_string(dev, "default-role", &power_str);
+	if (ret < 0)
+		return ret;
+
+	return match_string(typec_roles, ARRAY_SIZE(typec_roles), power_str);
+}
+EXPORT_SYMBOL_GPL(typec_get_power_role);
 /* --------------------------------------- */
 
 /**
diff --git a/include/linux/usb/typec.h b/include/linux/usb/typec.h
index ffe7487..bfac685 100644
--- a/include/linux/usb/typec.h
+++ b/include/linux/usb/typec.h
@@ -243,5 +243,7 @@ void typec_set_data_role(struct typec_port *port, enum typec_data_role role);
 void typec_set_pwr_role(struct typec_port *port, enum typec_role role);
 void typec_set_vconn_role(struct typec_port *port, enum typec_role role);
 void typec_set_pwr_opmode(struct typec_port *port, enum typec_pwr_opmode mode);
+int typec_get_port_type(struct device *dev);
+int typec_get_power_role(struct device *dev);
 
 #endif /* __LINUX_USB_TYPEC_H */
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 02/12] usb: typec: add basic typec properties
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
  2017-09-26  4:05   ` [PATCH resend 01/12] usb: typec: add API to get port type and preferred role Li Jun
@ 2017-09-26  4:05   ` Li Jun
       [not found]     ` <1506398723-19359-3-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
  2017-09-26  4:05   ` [PATCH resend 03/12] staging: typec: tcpci: add documentation for tcpci Li Jun
                     ` (10 subsequent siblings)
  12 siblings, 1 reply; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

port-type is required for any typec port; default-role is only required
for drp; power source capable needs src-pdos; power sink capable needs
snk-pdos, max-snk-mv, max-snk-ma, op-snk-mw.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 Documentation/devicetree/bindings/usb/typec.txt | 46 +++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/typec.txt b/Documentation/devicetree/bindings/usb/typec.txt
new file mode 100644
index 0000000..36d4467
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/typec.txt
@@ -0,0 +1,46 @@
+Generic typec and power delivery properties
+-------------------------------------------
+
+Required properties:
+- port-type:    should be one of "source", "sink" or "dual".
+- default-role: preferred power role if drp, should be "sink" or "source".
+- src-pdos:     An array of u32 with each entry providing supported power
+                source data object(PDO), the detailed bit definitions of
+                PDO can be found in "Universal Serial Bus Power Delivery
+                Specification" chapter 6.4.1.2 Source_Capabilities Message,
+                the order of each entry(PDO) should follow the PD spec chapter
+                6.4.1. Required only for power source and power dual role with
+                power delivery support.
+- snk-pdos:     An array of u32 with each entry providing supported power
+                sink data object(PDO), the detailed bit definitions of PDO
+                can be found in "Universal Serial Bus Power Delivery
+                Specification" chapter 6.4.1.3 Sink Capabilities Message,
+                the order of each entry(PDO) should follow the PD spec chapter
+                6.4.1. Required only for power sink and power dual role with
+                power delivery support.
+- max-snk-mv:   The max voltage the sink can support in millivoltage, required
+                only for power sink and power dual role with power delivery
+                support.
+- max-snk-ma:   The max current the sink can support in milliampere, required
+                only for power sink and power dual role with power delivery
+                support.
+- op-snk-mw:    Sink required operating power in milliwatts, if source offered
+                power is less then it, Capability Mismatch is set, required
+                only for power sink and power dual role with power delivery
+                support.
+
+Example:
+
+ptn5110@50 {
+	compatible = "usb,tcpci";
+	reg = <0x50>;
+	interrupt-parent = <&gpio3>;
+	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+	port-type = "dual";
+	default-role = "sink";
+	src-pdos = <0x380190c8>;
+	snk-pdos = <0x380190c8 0x3802d0c8>;
+	max-snk-mv = <9000>;
+	max-snk-ma = <1000>;
+	op-snk-mw = <9000>;
+};
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 03/12] staging: typec: tcpci: add documentation for tcpci
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
  2017-09-26  4:05   ` [PATCH resend 01/12] usb: typec: add API to get port type and preferred role Li Jun
  2017-09-26  4:05   ` [PATCH resend 02/12] usb: typec: add basic typec properties Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 04/12] staging: typec: tcpci: support port config passed via dt Li Jun
                     ` (9 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

TCPCI stands for typec port controller interface, its implementation
has full typec port control with power delivery support, it's a
standard i2c slave with GPIO input as irq interface, detail see spec
"Universal Serial Bus Type-C Port Controller Interface Specification
Revision 1.0, Version 1.1"

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 .../devicetree/bindings/usb/typec-tcpci.txt        | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/typec-tcpci.txt b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
new file mode 100644
index 0000000..9268440
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/typec-tcpci.txt
@@ -0,0 +1,36 @@
+TCPCI(Typec port cotroller interface) binding
+---------------------------------------------
+
+Required properties:
+- compatible:       should be "usb,tcpci".
+- reg:              the i2c slave address of typec port controller device.
+- interrupt-parent: the phandle to the interrupt controller which provides
+                    the interrupt.
+- interrupts:       interrupt specification for tcpci alert.
+- port-type:        typec port type.
+- default-role:     preferred power role if port type is "dual".
+
+Required properties only for power source or drp:
+- src-pdos
+
+Required properties only for power sink or drp:
+- snk-pdos
+- max-snk-mv
+- max-snk-ma
+- op-snk-mw
+
+Example:
+
+ptn5110@50 {
+	compatible = "usb,tcpci";
+	reg = <0x50>;
+	interrupt-parent = <&gpio3>;
+	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+	port-type = "dual";
+	default-role = "sink";
+	src-pdos = <0x380190c8>;
+	snk-pdos = <0x380190c8 0x3802d0c8>;
+	max-snk-mv = <9000>;
+	max-snk-ma = <1000>;
+	op-snk-mw = <9000>;
+};
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 04/12] staging: typec: tcpci: support port config passed via dt
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (2 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 03/12] staging: typec: tcpci: add documentation for tcpci Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 05/12] staging: typec: tcpci: register port before request irq Li Jun
                     ` (8 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

User can define the typec port properties in tcpci node to setup
the port config.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/typec/tcpci.c | 89 +++++++++++++++++++++++++++++++++++++++----
 include/linux/usb/tcpm.h      |  6 +--
 2 files changed, 85 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
index 4636804..0119453 100644
--- a/drivers/staging/typec/tcpci.c
+++ b/drivers/staging/typec/tcpci.c
@@ -425,17 +425,92 @@ static const struct regmap_config tcpci_regmap_config = {
 	.max_register = 0x7F, /* 0x80 .. 0xFF are vendor defined */
 };
 
-static const struct tcpc_config tcpci_tcpc_config = {
-	.type = TYPEC_PORT_DFP,
-	.default_role = TYPEC_SINK,
-};
-
+/* Populate struct tcpc_config from device-tree */
 static int tcpci_parse_config(struct tcpci *tcpci)
 {
+	struct tcpc_config *tcfg;
+	int ret = -EINVAL;
+
 	tcpci->controls_vbus = true; /* XXX */
 
-	/* TODO: Populate struct tcpc_config from ACPI/device-tree */
-	tcpci->tcpc.config = &tcpci_tcpc_config;
+	tcpci->tcpc.config = devm_kzalloc(tcpci->dev, sizeof(*tcfg),
+					  GFP_KERNEL);
+	if (!tcpci->tcpc.config)
+		return -ENOMEM;
+
+	tcfg = tcpci->tcpc.config;
+
+	/* Get port-type */
+	ret = typec_get_port_type(tcpci->dev);
+	if (ret < 0) {
+		dev_err(tcpci->dev, "typec port type is NOT correct!\n");
+		return ret;
+	}
+	tcfg->type = ret;
+
+	if (tcfg->type == TYPEC_PORT_UFP)
+		goto sink;
+
+	/* Get source PDO */
+	tcfg->nr_src_pdo = device_property_read_u32_array(tcpci->dev,
+						"src-pdos", NULL, 0);
+	if (tcfg->nr_src_pdo <= 0) {
+		dev_err(tcpci->dev, "typec source pdo is missing!\n");
+		return -EINVAL;
+	}
+
+	tcfg->src_pdo = devm_kzalloc(tcpci->dev,
+		sizeof(*tcfg->src_pdo) * tcfg->nr_src_pdo, GFP_KERNEL);
+	if (!tcfg->src_pdo)
+		return -ENOMEM;
+
+	ret = device_property_read_u32_array(tcpci->dev, "src-pdos",
+				tcfg->src_pdo, tcfg->nr_src_pdo);
+	if (ret) {
+		dev_err(tcpci->dev, "Failed to read src pdo!\n");
+		return -EINVAL;
+	}
+
+	if (tcfg->type == TYPEC_PORT_DFP)
+		return 0;
+
+	/* Get the preferred power role for drp */
+	ret = typec_get_power_role(tcpci->dev);
+	if (ret < 0) {
+		dev_err(tcpci->dev, "typec preferred role is wrong!\n");
+		return ret;
+	}
+	tcfg->default_role = ret;
+sink:
+	/* Get sink power capability */
+	tcfg->nr_snk_pdo = device_property_read_u32_array(tcpci->dev,
+						"snk-pdos", NULL, 0);
+	if (tcfg->nr_snk_pdo <= 0) {
+		dev_err(tcpci->dev, "typec sink pdo is missing!\n");
+		return -EINVAL;
+	}
+
+	tcfg->snk_pdo = devm_kzalloc(tcpci->dev,
+		sizeof(*tcfg->snk_pdo) * tcfg->nr_snk_pdo, GFP_KERNEL);
+	if (!tcfg->snk_pdo)
+		return -ENOMEM;
+
+	ret = device_property_read_u32_array(tcpci->dev, "snk-pdos",
+				tcfg->snk_pdo, tcfg->nr_snk_pdo);
+	if (ret) {
+		dev_err(tcpci->dev, "Failed to read sink pdo!\n");
+		return -EINVAL;
+	}
+
+	if (device_property_read_u32(tcpci->dev, "max-snk-mv",
+				     &tcfg->max_snk_mv) ||
+		device_property_read_u32(tcpci->dev, "max-snk-ma",
+					 &tcfg->max_snk_ma) ||
+		device_property_read_u32(tcpci->dev, "op-snk-mw",
+					 &tcfg->operating_snk_mw)) {
+		dev_err(tcpci->dev, "Failed to read sink capability!\n");
+		return -EINVAL;
+	}
 
 	return 0;
 }
diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h
index 073197f..a67cf77 100644
--- a/include/linux/usb/tcpm.h
+++ b/include/linux/usb/tcpm.h
@@ -76,10 +76,10 @@ enum tcpm_transmit_type {
  * @alt_modes:	List of supported alternate modes
  */
 struct tcpc_config {
-	const u32 *src_pdo;
+	u32 *src_pdo;
 	unsigned int nr_src_pdo;
 
-	const u32 *snk_pdo;
+	u32 *snk_pdo;
 	unsigned int nr_snk_pdo;
 
 	const u32 *snk_vdo;
@@ -154,7 +154,7 @@ struct tcpc_mux_dev {
  * @mux:	Pointer to multiplexer data
  */
 struct tcpc_dev {
-	const struct tcpc_config *config;
+	struct tcpc_config *config;
 
 	int (*init)(struct tcpc_dev *dev);
 	int (*get_vbus)(struct tcpc_dev *dev);
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 05/12] staging: typec: tcpci: register port before request irq
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (3 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 04/12] staging: typec: tcpci: support port config passed via dt Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 06/12] staging: typec: tcpci: enable vbus detection Li Jun
                     ` (7 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

With that we can clear any pending events and the port is registered
so driver can be ready to handle typec events once we request irq.

Signed-off-by: Peter Chen <peter.chen-3arQi8VN3Tc@public.gmane.org>
Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/typec/tcpci.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
index 0119453..6d608b4 100644
--- a/drivers/staging/typec/tcpci.c
+++ b/drivers/staging/typec/tcpci.c
@@ -552,15 +552,14 @@ static int tcpci_probe(struct i2c_client *client,
 	/* Disable chip interrupts */
 	tcpci_write16(tcpci, TCPC_ALERT_MASK, 0);
 
-	err = devm_request_threaded_irq(tcpci->dev, client->irq, NULL,
+	tcpci->port = tcpm_register_port(tcpci->dev, &tcpci->tcpc);
+	if (IS_ERR(tcpci->port))
+		return PTR_ERR(tcpci->port);
+
+	return devm_request_threaded_irq(tcpci->dev, client->irq, NULL,
 					tcpci_irq,
 					IRQF_ONESHOT | IRQF_TRIGGER_LOW,
 					dev_name(tcpci->dev), tcpci);
-	if (err < 0)
-		return err;

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 06/12] staging: typec: tcpci: enable vbus detection
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (4 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 05/12] staging: typec: tcpci: register port before request irq Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 07/12] typec: tcpm: add starting value for drp toggling Li Jun
                     ` (6 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

TCPCI implementation may need SW to enable VBUS detection to generate
power status events.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/typec/tcpci.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
index 6d608b4..851d026 100644
--- a/drivers/staging/typec/tcpci.c
+++ b/drivers/staging/typec/tcpci.c
@@ -313,6 +313,26 @@ static int tcpci_pd_transmit(struct tcpc_dev *tcpc,
 	return 0;
 }
 
+static int tcpci_vbus_detect(struct tcpc_dev *tcpc, bool enable)
+{
+	struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
+	int ret;
+
+	if (enable) {
+		ret = regmap_write(tcpci->regmap, TCPC_COMMAND,
+				   TCPC_CMD_ENABLE_VBUS_DETECT);
+		if (ret < 0)
+			return ret;
+	} else {
+		ret = regmap_write(tcpci->regmap, TCPC_COMMAND,
+				   TCPC_CMD_DISABLE_VBUS_DETECT);
+		if (ret < 0)
+			return ret;
+	}
+
+	return 0;
+}
+
 static int tcpci_init(struct tcpc_dev *tcpc)
 {
 	struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
@@ -344,6 +364,9 @@ static int tcpci_init(struct tcpc_dev *tcpc)
 	if (ret < 0)
 		return ret;
 
+	/* Enable Vbus detection */
+	tcpci_vbus_detect(tcpc, true);
+
 	reg = TCPC_ALERT_TX_SUCCESS | TCPC_ALERT_TX_FAILED |
 		TCPC_ALERT_TX_DISCARDED | TCPC_ALERT_RX_STATUS |
 		TCPC_ALERT_RX_HARD_RST | TCPC_ALERT_CC_STATUS;
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 07/12] typec: tcpm: add starting value for drp toggling
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (5 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 06/12] staging: typec: tcpci: enable vbus detection Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 08/12] staging: typec: tcpci: correct " Li Jun
                     ` (5 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

As DRP port autonomously toggles the Rp/Rd need a start value to
begin with, so add one parameter for it in tcpm_start_drp_toggling.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/usb/typec/tcpm.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c
index 8483d3e..38a6223 100644
--- a/drivers/usb/typec/tcpm.c
+++ b/drivers/usb/typec/tcpm.c
@@ -1839,15 +1839,15 @@ static int tcpm_set_charge(struct tcpm_port *port, bool charge)
 	return 0;
 }
 
-static bool tcpm_start_drp_toggling(struct tcpm_port *port)
+static bool tcpm_start_drp_toggling(struct tcpm_port *port,
+				    enum typec_cc_status cc)
 {
 	int ret;
 
 	if (port->tcpc->start_drp_toggling &&
 	    port->port_type == TYPEC_PORT_DRP) {
 		tcpm_log_force(port, "Start DRP toggling");
-		ret = port->tcpc->start_drp_toggling(port->tcpc,
-						     tcpm_rp_cc(port));
+		ret = port->tcpc->start_drp_toggling(port->tcpc, cc);
 		if (!ret)
 			return true;
 	}
@@ -2156,7 +2156,7 @@ static void run_state_machine(struct tcpm_port *port)
 		if (!port->non_pd_role_swap)
 			tcpm_swap_complete(port, -ENOTCONN);
 		tcpm_src_detach(port);
-		if (tcpm_start_drp_toggling(port)) {
+		if (tcpm_start_drp_toggling(port, tcpm_rp_cc(port))) {
 			tcpm_set_state(port, DRP_TOGGLING, 0);
 			break;
 		}
@@ -2328,7 +2328,7 @@ static void run_state_machine(struct tcpm_port *port)
 		if (!port->non_pd_role_swap)
 			tcpm_swap_complete(port, -ENOTCONN);
 		tcpm_snk_detach(port);
-		if (tcpm_start_drp_toggling(port)) {
+		if (tcpm_start_drp_toggling(port, TYPEC_CC_RD)) {
 			tcpm_set_state(port, DRP_TOGGLING, 0);
 			break;
 		}
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 08/12] staging: typec: tcpci: correct drp toggling
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (6 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 07/12] typec: tcpm: add starting value for drp toggling Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 09/12] usb: typec: tcpm: only drives the connected cc line when attached Li Jun
                     ` (4 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Per tcpci spec 4.4.5.2 ROLE_CONTROL description: "the TCPM shall
write B6 (DRP) =1b and the starting value of Rp/Rd to B3..0 (CC1/CC2)
to indicate DRP autonomous toggling mode to the TCPC", so add CC1/CC2
setting, also we should issue COMMAND.Look4Connection to start it.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/typec/tcpci.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
index 851d026..cea67f9 100644
--- a/drivers/staging/typec/tcpci.c
+++ b/drivers/staging/typec/tcpci.c
@@ -109,6 +109,7 @@ static int tcpci_start_drp_toggling(struct tcpc_dev *tcpc,
 {
 	struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
 	unsigned int reg = TCPC_ROLE_CTRL_DRP;
+	int ret;
 
 	switch (cc) {
 	default:
@@ -126,7 +127,19 @@ static int tcpci_start_drp_toggling(struct tcpc_dev *tcpc,
 		break;
 	}
 
-	return regmap_write(tcpci->regmap, TCPC_ROLE_CTRL, reg);
+	if (cc == TYPEC_CC_RD)
+		reg |= (TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_CC1_SHIFT) |
+			(TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_CC2_SHIFT);
+	else
+		reg |= (TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT) |
+			(TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT);
+
+	ret = regmap_write(tcpci->regmap, TCPC_ROLE_CTRL, reg);
+	if (ret < 0)
+		return ret;
+
+	return regmap_write(tcpci->regmap, TCPC_COMMAND,
+				TCPC_CMD_LOOK4CONNECTION);
 }
 
 static enum typec_cc_status tcpci_to_typec_cc(unsigned int cc, bool sink)
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 09/12] usb: typec: tcpm: only drives the connected cc line when attached
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (7 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 08/12] staging: typec: tcpci: correct " Li Jun
@ 2017-09-26  4:05   ` Li Jun
       [not found]     ` <1506398723-19359-10-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
  2017-09-26  4:05   ` [PATCH resend 10/12] staging: typec: tcpci: update set_cc for different state Li Jun
                     ` (3 subsequent siblings)
  12 siblings, 1 reply; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

As we should only drive connected cc line to be the right state when
attached, and keeps the other one to be open, so update the set_cc
interface for that.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/usb/typec/tcpm.c | 12 +++++++++++-
 include/linux/usb/tcpm.h |  3 ++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/typec/tcpm.c b/drivers/usb/typec/tcpm.c
index 38a6223..c9966ee 100644
--- a/drivers/usb/typec/tcpm.c
+++ b/drivers/usb/typec/tcpm.c
@@ -1857,9 +1857,15 @@ static bool tcpm_start_drp_toggling(struct tcpm_port *port,
 
 static void tcpm_set_cc(struct tcpm_port *port, enum typec_cc_status cc)
 {
+	bool attached;
+
 	tcpm_log(port, "cc:=%d", cc);
 	port->cc_req = cc;
-	port->tcpc->set_cc(port->tcpc, cc);
+	if (port->state == SRC_ATTACHED || port->state == SNK_ATTACHED)
+		attached = true;
+	else
+		attached = false;
+	port->tcpc->set_cc(port->tcpc, cc, attached, port->polarity);
 }
 
 static int tcpm_init_vbus(struct tcpm_port *port)
@@ -1913,6 +1919,8 @@ static int tcpm_src_attach(struct tcpm_port *port)
 	if (ret < 0)
 		return ret;
 
+	tcpm_set_cc(port, tcpm_rp_cc(port));
+
 	ret = tcpm_set_roles(port, true, TYPEC_SOURCE, TYPEC_HOST);
 	if (ret < 0)
 		return ret;
@@ -2028,6 +2036,8 @@ static int tcpm_snk_attach(struct tcpm_port *port)
 	if (ret < 0)
 		return ret;
 
+	tcpm_set_cc(port, TYPEC_CC_RD);
+
 	ret = tcpm_set_roles(port, true, TYPEC_SINK, TYPEC_DEVICE);
 	if (ret < 0)
 		return ret;
diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h
index a67cf77..a007e2a1 100644
--- a/include/linux/usb/tcpm.h
+++ b/include/linux/usb/tcpm.h
@@ -159,7 +159,8 @@ struct tcpc_dev {
 	int (*init)(struct tcpc_dev *dev);
 	int (*get_vbus)(struct tcpc_dev *dev);
 	int (*get_current_limit)(struct tcpc_dev *dev);
-	int (*set_cc)(struct tcpc_dev *dev, enum typec_cc_status cc);
+	int (*set_cc)(struct tcpc_dev *dev, enum typec_cc_status cc,
+			bool attached, enum typec_cc_polarity polarity);
 	int (*get_cc)(struct tcpc_dev *dev, enum typec_cc_status *cc1,
 		      enum typec_cc_status *cc2);
 	int (*set_polarity)(struct tcpc_dev *dev,
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 10/12] staging: typec: tcpci: update set_cc for different state
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (8 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 09/12] usb: typec: tcpm: only drives the connected cc line when attached Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 11/12] staging: typec: tcpci: Only touch target bit when enable vconn Li Jun
                     ` (2 subsequent siblings)
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

As we should keep the disconnected cc line to be open when attached,
so update the set_cc interface accordingly for it.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/typec/tcpci.c | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
index cea67f9..c7c45da 100644
--- a/drivers/staging/typec/tcpci.c
+++ b/drivers/staging/typec/tcpci.c
@@ -57,10 +57,11 @@ static int tcpci_write16(struct tcpci *tcpci, unsigned int reg, u16 val)
 	return regmap_raw_write(tcpci->regmap, reg, &val, sizeof(u16));
 }
 
-static int tcpci_set_cc(struct tcpc_dev *tcpc, enum typec_cc_status cc)
+static int tcpci_set_cc(struct tcpc_dev *tcpc, enum typec_cc_status cc,
+			bool attached, enum typec_cc_polarity polarity)
 {
 	struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
-	unsigned int reg;
+	unsigned int reg = 0, reg_cc1 = 0, reg_cc2 = 0;
 	int ret;
 
 	switch (cc) {
@@ -69,26 +70,23 @@ static int tcpci_set_cc(struct tcpc_dev *tcpc, enum typec_cc_status cc)
 			(TCPC_ROLE_CTRL_CC_RA << TCPC_ROLE_CTRL_CC2_SHIFT);
 		break;
 	case TYPEC_CC_RD:
-		reg = (TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_CC1_SHIFT) |
-			(TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_CC2_SHIFT);
+		reg_cc1 = TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_CC1_SHIFT;
+		reg_cc2 = TCPC_ROLE_CTRL_CC_RD << TCPC_ROLE_CTRL_CC2_SHIFT;
 		break;
 	case TYPEC_CC_RP_DEF:
-		reg = (TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT) |
-			(TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT) |
-			(TCPC_ROLE_CTRL_RP_VAL_DEF <<
-			 TCPC_ROLE_CTRL_RP_VAL_SHIFT);
+		reg_cc1 = TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT;
+		reg_cc2 = TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT;
+		reg = TCPC_ROLE_CTRL_RP_VAL_DEF << TCPC_ROLE_CTRL_RP_VAL_SHIFT;
 		break;
 	case TYPEC_CC_RP_1_5:
-		reg = (TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT) |
-			(TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT) |
-			(TCPC_ROLE_CTRL_RP_VAL_1_5 <<
-			 TCPC_ROLE_CTRL_RP_VAL_SHIFT);
+		reg_cc1 = TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT;
+		reg_cc2 = TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT;
+		reg = TCPC_ROLE_CTRL_RP_VAL_1_5 << TCPC_ROLE_CTRL_RP_VAL_SHIFT;
 		break;
 	case TYPEC_CC_RP_3_0:
-		reg = (TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT) |
-			(TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT) |
-			(TCPC_ROLE_CTRL_RP_VAL_3_0 <<
-			 TCPC_ROLE_CTRL_RP_VAL_SHIFT);
+		reg_cc1 = TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC1_SHIFT;
+		reg_cc2 = TCPC_ROLE_CTRL_CC_RP << TCPC_ROLE_CTRL_CC2_SHIFT;
+		reg = TCPC_ROLE_CTRL_RP_VAL_3_0 << TCPC_ROLE_CTRL_RP_VAL_SHIFT;
 		break;
 	case TYPEC_CC_OPEN:
 	default:
@@ -97,6 +95,13 @@ static int tcpci_set_cc(struct tcpc_dev *tcpc, enum typec_cc_status cc)
 		break;
 	}
 
+	if (!attached)
+		reg |= reg_cc1 | reg_cc2;
+	else if (polarity == TYPEC_POLARITY_CC1)
+		reg |= reg_cc1;
+	else
+		reg |= reg_cc2;
+
 	ret = regmap_write(tcpci->regmap, TCPC_ROLE_CTRL, reg);
 	if (ret < 0)
 		return ret;
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 11/12] staging: typec: tcpci: Only touch target bit when enable vconn
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (9 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 10/12] staging: typec: tcpci: update set_cc for different state Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-09-26  4:05   ` [PATCH resend 12/12] staging: typec: tcpci: move tcpci driver out of staging Li Jun
  2017-10-27  0:42   ` [PATCH resend 00/12] staging: typec: tcpci: move " Guenter Roeck
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

We need regmap_update_bits to avoid touch any other bits when
enable or disable vconn.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/typec/tcpci.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
index c7c45da..293a07c 100644
--- a/drivers/staging/typec/tcpci.c
+++ b/drivers/staging/typec/tcpci.c
@@ -202,14 +202,10 @@ static int tcpci_set_polarity(struct tcpc_dev *tcpc,
 static int tcpci_set_vconn(struct tcpc_dev *tcpc, bool enable)
 {
 	struct tcpci *tcpci = tcpc_to_tcpci(tcpc);
-	int ret;
 
-	ret = regmap_write(tcpci->regmap, TCPC_POWER_CTRL,
-			   enable ? TCPC_POWER_CTRL_VCONN_ENABLE : 0);
-	if (ret < 0)
-		return ret;
-
-	return 0;
+	return regmap_update_bits(tcpci->regmap, TCPC_POWER_CTRL,
+				TCPC_POWER_CTRL_VCONN_ENABLE,
+				enable ? TCPC_POWER_CTRL_VCONN_ENABLE : 0);
 }
 
 static int tcpci_set_roles(struct tcpc_dev *tcpc, bool attached,
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH resend 12/12] staging: typec: tcpci: move tcpci driver out of staging
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (10 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 11/12] staging: typec: tcpci: Only touch target bit when enable vconn Li Jun
@ 2017-09-26  4:05   ` Li Jun
  2017-10-27  0:42   ` [PATCH resend 00/12] staging: typec: tcpci: move " Guenter Roeck
  12 siblings, 0 replies; 19+ messages in thread
From: Li Jun @ 2017-09-26  4:05 UTC (permalink / raw)
  To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

Move TCPCI(Typec port controller interface) driver out of staging.

Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
---
 drivers/staging/Kconfig                |  2 --
 drivers/staging/Makefile               |  1 -
 drivers/staging/typec/Kconfig          | 14 --------------
 drivers/staging/typec/Makefile         |  1 -
 drivers/staging/typec/TODO             |  5 -----
 drivers/usb/typec/Kconfig              |  7 +++++++
 drivers/usb/typec/Makefile             |  1 +
 drivers/{staging => usb}/typec/tcpci.c |  0
 drivers/{staging => usb}/typec/tcpci.h |  0
 9 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index 5546839..1e3d5d0 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -112,8 +112,6 @@ source "drivers/staging/vc04_services/Kconfig"
 
 source "drivers/staging/ccree/Kconfig"
 
-source "drivers/staging/typec/Kconfig"
-
 source "drivers/staging/vboxvideo/Kconfig"
 
 source "drivers/staging/pi433/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 8951c37..4d1ccb4 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -1,7 +1,6 @@
 # Makefile for staging directory
 
 obj-y				+= media/
-obj-y				+= typec/
 obj-$(CONFIG_IRDA)		+= irda/net/
 obj-$(CONFIG_IRDA)		+= irda/drivers/
 obj-$(CONFIG_PRISM2_USB)	+= wlan-ng/
diff --git a/drivers/staging/typec/Kconfig b/drivers/staging/typec/Kconfig
deleted file mode 100644
index 5359f55..0000000
--- a/drivers/staging/typec/Kconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-menu "USB Power Delivery and Type-C drivers"
-
-if TYPEC_TCPM
-
-config TYPEC_TCPCI
-	tristate "Type-C Port Controller Interface driver"
-	depends on I2C
-	select REGMAP_I2C
-	help
-	  Type-C Port Controller driver for TCPCI-compliant controller.
-
-endif
-
-endmenu
diff --git a/drivers/staging/typec/Makefile b/drivers/staging/typec/Makefile
deleted file mode 100644
index 53d649a..0000000
--- a/drivers/staging/typec/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_TYPEC_TCPCI)	+= tcpci.o
diff --git a/drivers/staging/typec/TODO b/drivers/staging/typec/TODO
deleted file mode 100644
index 53fe2f7..0000000
--- a/drivers/staging/typec/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
-tcpci:
-- Test with real hardware
-
-Please send patches to Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org> and copy
-Heikki Krogerus <heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>.
diff --git a/drivers/usb/typec/Kconfig b/drivers/usb/typec/Kconfig
index 819c0ed..33b04c4 100644
--- a/drivers/usb/typec/Kconfig
+++ b/drivers/usb/typec/Kconfig
@@ -14,6 +14,13 @@ config TYPEC_TCPM
 
 if TYPEC_TCPM
 
+config TYPEC_TCPCI
+	tristate "Type-C Port Controller Interface driver"
+	depends on I2C
+	select REGMAP_I2C
+	help
+	  Type-C Port Controller driver for TCPCI-compliant controller.
+
 source "drivers/usb/typec/fusb302/Kconfig"
 
 endif
diff --git a/drivers/usb/typec/Makefile b/drivers/usb/typec/Makefile
index b77688c..c2fbf17 100644
--- a/drivers/usb/typec/Makefile
+++ b/drivers/usb/typec/Makefile
@@ -3,3 +3,4 @@ obj-$(CONFIG_TYPEC_TCPM)	+= tcpm.o
 obj-y				+= fusb302/
 obj-$(CONFIG_TYPEC_WCOVE)	+= typec_wcove.o
 obj-$(CONFIG_TYPEC_UCSI)	+= ucsi/
+obj-$(CONFIG_TYPEC_TCPCI)	+= tcpci.o
diff --git a/drivers/staging/typec/tcpci.c b/drivers/usb/typec/tcpci.c
similarity index 100%
rename from drivers/staging/typec/tcpci.c
rename to drivers/usb/typec/tcpci.c
diff --git a/drivers/staging/typec/tcpci.h b/drivers/usb/typec/tcpci.h
similarity index 100%
rename from drivers/staging/typec/tcpci.h
rename to drivers/usb/typec/tcpci.h
-- 
2.6.6

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH resend 09/12] usb: typec: tcpm: only drives the connected cc line when attached
       [not found]     ` <1506398723-19359-10-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
@ 2017-09-27 14:30       ` kbuild test robot
  0 siblings, 0 replies; 19+ messages in thread
From: kbuild test robot @ 2017-09-27 14:30 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, robh+dt-DgEjT+Ai2ygdnm+yROfE0A,
	mark.rutland-5wv7dgnIgG8, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA,
	yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	jun.li-3arQi8VN3Tc, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 4816 bytes --]

Hi Li,

[auto build test ERROR on staging/staging-testing]
[also build test ERROR on v4.14-rc2 next-20170927]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Li-Jun/staging-typec-tcpci-move-out-of-staging/20170927-190852
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: the linux-review/Li-Jun/staging-typec-tcpci-move-out-of-staging/20170927-190852 HEAD 9e1467d3603f3cee8f039d52010dfb8d33e2b29c builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   drivers/staging/typec/tcpci.c: In function 'tcpci_probe':
>> drivers/staging/typec/tcpci.c:574:21: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
     tcpci->tcpc.set_cc = tcpci_set_cc;
                        ^
   cc1: some warnings being treated as errors

vim +574 drivers/staging/typec/tcpci.c

74e656d6 Guenter Roeck 2017-04-27  553  
74e656d6 Guenter Roeck 2017-04-27  554  static int tcpci_probe(struct i2c_client *client,
74e656d6 Guenter Roeck 2017-04-27  555  		       const struct i2c_device_id *i2c_id)
74e656d6 Guenter Roeck 2017-04-27  556  {
74e656d6 Guenter Roeck 2017-04-27  557  	struct tcpci *tcpci;
74e656d6 Guenter Roeck 2017-04-27  558  	int err;
74e656d6 Guenter Roeck 2017-04-27  559  
74e656d6 Guenter Roeck 2017-04-27  560  	tcpci = devm_kzalloc(&client->dev, sizeof(*tcpci), GFP_KERNEL);
74e656d6 Guenter Roeck 2017-04-27  561  	if (!tcpci)
74e656d6 Guenter Roeck 2017-04-27  562  		return -ENOMEM;
74e656d6 Guenter Roeck 2017-04-27  563  
74e656d6 Guenter Roeck 2017-04-27  564  	tcpci->client = client;
74e656d6 Guenter Roeck 2017-04-27  565  	tcpci->dev = &client->dev;
74e656d6 Guenter Roeck 2017-04-27  566  	i2c_set_clientdata(client, tcpci);
74e656d6 Guenter Roeck 2017-04-27  567  	tcpci->regmap = devm_regmap_init_i2c(client, &tcpci_regmap_config);
74e656d6 Guenter Roeck 2017-04-27  568  	if (IS_ERR(tcpci->regmap))
74e656d6 Guenter Roeck 2017-04-27  569  		return PTR_ERR(tcpci->regmap);
74e656d6 Guenter Roeck 2017-04-27  570  
74e656d6 Guenter Roeck 2017-04-27  571  	tcpci->tcpc.init = tcpci_init;
74e656d6 Guenter Roeck 2017-04-27  572  	tcpci->tcpc.get_vbus = tcpci_get_vbus;
74e656d6 Guenter Roeck 2017-04-27  573  	tcpci->tcpc.set_vbus = tcpci_set_vbus;
74e656d6 Guenter Roeck 2017-04-27 @574  	tcpci->tcpc.set_cc = tcpci_set_cc;
74e656d6 Guenter Roeck 2017-04-27  575  	tcpci->tcpc.get_cc = tcpci_get_cc;
74e656d6 Guenter Roeck 2017-04-27  576  	tcpci->tcpc.set_polarity = tcpci_set_polarity;
74e656d6 Guenter Roeck 2017-04-27  577  	tcpci->tcpc.set_vconn = tcpci_set_vconn;
74e656d6 Guenter Roeck 2017-04-27  578  	tcpci->tcpc.start_drp_toggling = tcpci_start_drp_toggling;
74e656d6 Guenter Roeck 2017-04-27  579  
74e656d6 Guenter Roeck 2017-04-27  580  	tcpci->tcpc.set_pd_rx = tcpci_set_pd_rx;
74e656d6 Guenter Roeck 2017-04-27  581  	tcpci->tcpc.set_roles = tcpci_set_roles;
74e656d6 Guenter Roeck 2017-04-27  582  	tcpci->tcpc.pd_transmit = tcpci_pd_transmit;
74e656d6 Guenter Roeck 2017-04-27  583  
74e656d6 Guenter Roeck 2017-04-27  584  	err = tcpci_parse_config(tcpci);
74e656d6 Guenter Roeck 2017-04-27  585  	if (err < 0)
74e656d6 Guenter Roeck 2017-04-27  586  		return err;
74e656d6 Guenter Roeck 2017-04-27  587  
74e656d6 Guenter Roeck 2017-04-27  588  	/* Disable chip interrupts */
74e656d6 Guenter Roeck 2017-04-27  589  	tcpci_write16(tcpci, TCPC_ALERT_MASK, 0);
74e656d6 Guenter Roeck 2017-04-27  590  
d94372b5 Li Jun        2017-09-26  591  	tcpci->port = tcpm_register_port(tcpci->dev, &tcpci->tcpc);
d94372b5 Li Jun        2017-09-26  592  	if (IS_ERR(tcpci->port))
d94372b5 Li Jun        2017-09-26  593  		return PTR_ERR(tcpci->port);
d94372b5 Li Jun        2017-09-26  594  
d94372b5 Li Jun        2017-09-26  595  	return devm_request_threaded_irq(tcpci->dev, client->irq, NULL,
74e656d6 Guenter Roeck 2017-04-27  596  					tcpci_irq,
74e656d6 Guenter Roeck 2017-04-27  597  					IRQF_ONESHOT | IRQF_TRIGGER_LOW,
74e656d6 Guenter Roeck 2017-04-27  598  					dev_name(tcpci->dev), tcpci);
74e656d6 Guenter Roeck 2017-04-27  599  }
74e656d6 Guenter Roeck 2017-04-27  600  

:::::: The code at line 574 was first introduced by commit
:::::: 74e656d6b0551999194b5ab1e45ff8b1e82b898e staging: typec: Type-C Port Controller Interface driver (tcpci)

:::::: TO: Guenter Roeck <groeck-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
:::::: CC: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 61784 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH resend 02/12] usb: typec: add basic typec properties
       [not found]     ` <1506398723-19359-3-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
@ 2017-10-05 20:44       ` Rob Herring
  2017-10-09 11:21         ` Jun Li
  0 siblings, 1 reply; 19+ messages in thread
From: Rob Herring @ 2017-10-05 20:44 UTC (permalink / raw)
  To: Li Jun
  Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-0h96xk9xTtrk1uMJSBkQmQ, mark.rutland-5wv7dgnIgG8,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA,
	yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Tue, Sep 26, 2017 at 12:05:13PM +0800, Li Jun wrote:
> port-type is required for any typec port; default-role is only required
> for drp; power source capable needs src-pdos; power sink capable needs
> snk-pdos, max-snk-mv, max-snk-ma, op-snk-mw.

"dt-bindings: usb: ..." for the subject prefix.

> 
> Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
> ---
>  Documentation/devicetree/bindings/usb/typec.txt | 46 +++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/typec.txt b/Documentation/devicetree/bindings/usb/typec.txt
> new file mode 100644
> index 0000000..36d4467
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/typec.txt
> @@ -0,0 +1,46 @@
> +Generic typec and power delivery properties
> +-------------------------------------------

What node do these apply to? A type C connector node? The PD 
microcontroller?

I'm reluctant to accept just a random list of properties without a more 
complete Type-C binding which I'd expect to have a connector node, OF 
graph ports to connect to video outputs, connection to USB controller, 
and connection to the PD controller.

> +
> +Required properties:
> +- port-type:    should be one of "source", "sink" or "dual".
> +- default-role: preferred power role if drp, should be "sink" or "source".
> +- src-pdos:     An array of u32 with each entry providing supported power
> +                source data object(PDO), the detailed bit definitions of
> +                PDO can be found in "Universal Serial Bus Power Delivery
> +                Specification" chapter 6.4.1.2 Source_Capabilities Message,
> +                the order of each entry(PDO) should follow the PD spec chapter
> +                6.4.1. Required only for power source and power dual role with
> +                power delivery support.
> +- snk-pdos:     An array of u32 with each entry providing supported power
> +                sink data object(PDO), the detailed bit definitions of PDO
> +                can be found in "Universal Serial Bus Power Delivery
> +                Specification" chapter 6.4.1.3 Sink Capabilities Message,
> +                the order of each entry(PDO) should follow the PD spec chapter
> +                6.4.1. Required only for power sink and power dual role with
> +                power delivery support.

> +- max-snk-mv:   The max voltage the sink can support in millivoltage, required
> +                only for power sink and power dual role with power delivery
> +                support.
> +- max-snk-ma:   The max current the sink can support in milliampere, required
> +                only for power sink and power dual role with power delivery
> +                support.
> +- op-snk-mw:    Sink required operating power in milliwatts, if source offered
> +                power is less then it, Capability Mismatch is set, required
> +                only for power sink and power dual role with power delivery
> +                support.

Use the standard unit suffixes as defined in property-units.txt

> +
> +Example:
> +
> +ptn5110@50 {
> +	compatible = "usb,tcpci";
> +	reg = <0x50>;
> +	interrupt-parent = <&gpio3>;
> +	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> +	port-type = "dual";
> +	default-role = "sink";
> +	src-pdos = <0x380190c8>;
> +	snk-pdos = <0x380190c8 0x3802d0c8>;
> +	max-snk-mv = <9000>;
> +	max-snk-ma = <1000>;
> +	op-snk-mw = <9000>;
> +};
> -- 
> 2.6.6
> 
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 19+ messages in thread

* RE: [PATCH resend 02/12] usb: typec: add basic typec properties
  2017-10-05 20:44       ` Rob Herring
@ 2017-10-09 11:21         ` Jun Li
       [not found]           ` <DB4PR04MB07683A52DD500A40C2B9047A89740-tLF+feb1Bz6HC8XOQgzeLs9NdZoXdze2vxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
  0 siblings, 1 reply; 19+ messages in thread
From: Jun Li @ 2017-10-09 11:21 UTC (permalink / raw)
  To: Rob Herring
  Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
	yueyao-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
	o_leveque-1tsiiZ//OF9QFI55V6+gNQ@public.gmane.org, Peter Chen,
	A.s. Dong, linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Hi Rob,

> -----Original Message-----
> From: Rob Herring [mailto:robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org]
> Sent: Friday, October 06, 2017 4:44 AM
> To: Jun Li <jun.li-3arQi8VN3Tc@public.gmane.org>
> Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org; linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org; mark.rutland-5wv7dgnIgG8@public.gmane.org;
> heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org; yueyao-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org; o_leveque-1tsiiZ//OF9QFI55V6+gNQ@public.gmane.org;
> Peter Chen <peter.chen-3arQi8VN3Tc@public.gmane.org>; A.s. Dong <aisheng.dong-3arQi8VN3Tc@public.gmane.org>; linux-
> usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Subject: Re: [PATCH resend 02/12] usb: typec: add basic typec properties
> 
> On Tue, Sep 26, 2017 at 12:05:13PM +0800, Li Jun wrote:
> > port-type is required for any typec port; default-role is only
> > required for drp; power source capable needs src-pdos; power sink
> > capable needs snk-pdos, max-snk-mv, max-snk-ma, op-snk-mw.
> 
> "dt-bindings: usb: ..." for the subject prefix.
> 

Will update in next version.

> >
> > Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
> > ---
> >  Documentation/devicetree/bindings/usb/typec.txt | 46
> > +++++++++++++++++++++++++
> >  1 file changed, 46 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/typec.txt
> > b/Documentation/devicetree/bindings/usb/typec.txt
> > new file mode 100644
> > index 0000000..36d4467
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/usb/typec.txt
> > @@ -0,0 +1,46 @@
> > +Generic typec and power delivery properties
> > +-------------------------------------------
> 
> What node do these apply to? A type C connector node? The PD microcontroller?
> 

My initial thinking is those are general type-c properties, which can be applied to
type-C connector or used by PD microcontroller directly (my example),  I want
to get inputs on how this can be handled properly, so do you think a separated
node(e.g. type-c connector) is required to describe all the capability of the type-c
port has, then a type-c related driver get the phandle of it? 

> I'm reluctant to accept just a random list of properties without a more complete
> Type-C binding which I'd expect to have a connector node, OF graph ports to
> connect to video outputs, connection to USB controller, and connection to the
> PD controller.
> 

As type-C with PD has many properties to complete the description for diff usage,
so this is just a first step to have the basic power related bindings.

> > +
> > +Required properties:
> > +- port-type:    should be one of "source", "sink" or "dual".
> > +- default-role: preferred power role if drp, should be "sink" or "source".
> > +- src-pdos:     An array of u32 with each entry providing supported power
> > +                source data object(PDO), the detailed bit definitions of
> > +                PDO can be found in "Universal Serial Bus Power Delivery
> > +                Specification" chapter 6.4.1.2 Source_Capabilities Message,
> > +                the order of each entry(PDO) should follow the PD spec chapter
> > +                6.4.1. Required only for power source and power dual role with
> > +                power delivery support.
> > +- snk-pdos:     An array of u32 with each entry providing supported power
> > +                sink data object(PDO), the detailed bit definitions of PDO
> > +                can be found in "Universal Serial Bus Power Delivery
> > +                Specification" chapter 6.4.1.3 Sink Capabilities Message,
> > +                the order of each entry(PDO) should follow the PD spec chapter
> > +                6.4.1. Required only for power sink and power dual role with
> > +                power delivery support.
> 
> > +- max-snk-mv:   The max voltage the sink can support in millivoltage, required
> > +                only for power sink and power dual role with power delivery
> > +                support.
> > +- max-snk-ma:   The max current the sink can support in milliampere, required
> > +                only for power sink and power dual role with power delivery
> > +                support.
> > +- op-snk-mw:    Sink required operating power in milliwatts, if source offered
> > +                power is less then it, Capability Mismatch is set, required
> > +                only for power sink and power dual role with power delivery
> > +                support.
> 
> Use the standard unit suffixes as defined in property-units.txt
> 

Thanks, will update in next version.

Li Jun
> > +
> > +Example:
> > +
> > +ptn5110@50 {
> > +	compatible = "usb,tcpci";
> > +	reg = <0x50>;
> > +	interrupt-parent = <&gpio3>;
> > +	interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> > +	port-type = "dual";
> > +	default-role = "sink";
> > +	src-pdos = <0x380190c8>;
> > +	snk-pdos = <0x380190c8 0x3802d0c8>;
> > +	max-snk-mv = <9000>;
> > +	max-snk-ma = <1000>;
> > +	op-snk-mw = <9000>;
> > +};
> > --
> > 2.6.6
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe devicetree"
> > in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo
> > info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH resend 02/12] usb: typec: add basic typec properties
       [not found]           ` <DB4PR04MB07683A52DD500A40C2B9047A89740-tLF+feb1Bz6HC8XOQgzeLs9NdZoXdze2vxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
@ 2017-10-09 13:12             ` Rob Herring
  0 siblings, 0 replies; 19+ messages in thread
From: Rob Herring @ 2017-10-09 13:12 UTC (permalink / raw)
  To: Jun Li, Andrzej Hajda
  Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
	yueyao-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
	o_leveque-1tsiiZ//OF9QFI55V6+gNQ@public.gmane.org, Peter Chen,
	A.s. Dong, linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

On Mon, Oct 9, 2017 at 6:21 AM, Jun Li <jun.li-3arQi8VN3Tc@public.gmane.org> wrote:
> Hi Rob,
>
>> -----Original Message-----
>> From: Rob Herring [mailto:robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org]
>> Sent: Friday, October 06, 2017 4:44 AM
>> To: Jun Li <jun.li-3arQi8VN3Tc@public.gmane.org>
>> Cc: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org; linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org; mark.rutland-5wv7dgnIgG8@public.gmane.org;
>> heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org; yueyao-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org; o_leveque-1tsiiZ//OF9QFI55V6+gNQ@public.gmane.org;
>> Peter Chen <peter.chen-3arQi8VN3Tc@public.gmane.org>; A.s. Dong <aisheng.dong-3arQi8VN3Tc@public.gmane.org>; linux-
>> usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> Subject: Re: [PATCH resend 02/12] usb: typec: add basic typec properties
>>
>> On Tue, Sep 26, 2017 at 12:05:13PM +0800, Li Jun wrote:
>> > port-type is required for any typec port; default-role is only
>> > required for drp; power source capable needs src-pdos; power sink
>> > capable needs snk-pdos, max-snk-mv, max-snk-ma, op-snk-mw.
>>
>> "dt-bindings: usb: ..." for the subject prefix.
>>
>
> Will update in next version.
>
>> >
>> > Signed-off-by: Li Jun <jun.li-3arQi8VN3Tc@public.gmane.org>
>> > ---
>> >  Documentation/devicetree/bindings/usb/typec.txt | 46
>> > +++++++++++++++++++++++++
>> >  1 file changed, 46 insertions(+)
>> >
>> > diff --git a/Documentation/devicetree/bindings/usb/typec.txt
>> > b/Documentation/devicetree/bindings/usb/typec.txt
>> > new file mode 100644
>> > index 0000000..36d4467
>> > --- /dev/null
>> > +++ b/Documentation/devicetree/bindings/usb/typec.txt
>> > @@ -0,0 +1,46 @@
>> > +Generic typec and power delivery properties
>> > +-------------------------------------------
>>
>> What node do these apply to? A type C connector node? The PD microcontroller?
>>
>
> My initial thinking is those are general type-c properties, which can be applied to
> type-C connector or used by PD microcontroller directly (my example),  I want
> to get inputs on how this can be handled properly, so do you think a separated
> node(e.g. type-c connector) is required to describe all the capability of the type-c
> port has, then a type-c related driver get the phandle of it?
>
>> I'm reluctant to accept just a random list of properties without a more complete
>> Type-C binding which I'd expect to have a connector node, OF graph ports to
>> connect to video outputs, connection to USB controller, and connection to the
>> PD controller.
>>
>
> As type-C with PD has many properties to complete the description for diff usage,
> so this is just a first step to have the basic power related bindings.

We need something more complete, not something that just evolves. At
least the basic relationships between connectors, PD controller,
alternate modes, and USB controllers needs to be defined.

Andrzej started on defining USB connectors[1]. That's where we need to
start for Type-C bindings. Work together on this.

Rob

>> > +Required properties:
>> > +- port-type:    should be one of "source", "sink" or "dual".
>> > +- default-role: preferred power role if drp, should be "sink" or "source".
>> > +- src-pdos:     An array of u32 with each entry providing supported power
>> > +                source data object(PDO), the detailed bit definitions of
>> > +                PDO can be found in "Universal Serial Bus Power Delivery
>> > +                Specification" chapter 6.4.1.2 Source_Capabilities Message,
>> > +                the order of each entry(PDO) should follow the PD spec chapter
>> > +                6.4.1. Required only for power source and power dual role with
>> > +                power delivery support.
>> > +- snk-pdos:     An array of u32 with each entry providing supported power
>> > +                sink data object(PDO), the detailed bit definitions of PDO
>> > +                can be found in "Universal Serial Bus Power Delivery
>> > +                Specification" chapter 6.4.1.3 Sink Capabilities Message,
>> > +                the order of each entry(PDO) should follow the PD spec chapter
>> > +                6.4.1. Required only for power sink and power dual role with
>> > +                power delivery support.
>>
>> > +- max-snk-mv:   The max voltage the sink can support in millivoltage, required
>> > +                only for power sink and power dual role with power delivery
>> > +                support.
>> > +- max-snk-ma:   The max current the sink can support in milliampere, required
>> > +                only for power sink and power dual role with power delivery
>> > +                support.
>> > +- op-snk-mw:    Sink required operating power in milliwatts, if source offered
>> > +                power is less then it, Capability Mismatch is set, required
>> > +                only for power sink and power dual role with power delivery
>> > +                support.
>>
>> Use the standard unit suffixes as defined in property-units.txt
>>
>
> Thanks, will update in next version.
>
> Li Jun
>> > +
>> > +Example:
>> > +
>> > +ptn5110@50 {
>> > +   compatible = "usb,tcpci";
>> > +   reg = <0x50>;
>> > +   interrupt-parent = <&gpio3>;
>> > +   interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
>> > +   port-type = "dual";
>> > +   default-role = "sink";
>> > +   src-pdos = <0x380190c8>;
>> > +   snk-pdos = <0x380190c8 0x3802d0c8>;
>> > +   max-snk-mv = <9000>;
>> > +   max-snk-ma = <1000>;
>> > +   op-snk-mw = <9000>;
>> > +};

[1] http://www.spinics.net/lists/devicetree/msg197601.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH resend 00/12] staging: typec: tcpci: move out of staging
       [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
                     ` (11 preceding siblings ...)
  2017-09-26  4:05   ` [PATCH resend 12/12] staging: typec: tcpci: move tcpci driver out of staging Li Jun
@ 2017-10-27  0:42   ` Guenter Roeck
       [not found]     ` <96d37f9b-f04d-f923-ec09-b25fd62a90be-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
  12 siblings, 1 reply; 19+ messages in thread
From: Guenter Roeck @ 2017-10-27  0:42 UTC (permalink / raw)
  To: Li Jun, gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA, o_leveque-1tsiiZ//OF9QFI55V6+gNQ,
	peter.chen-3arQi8VN3Tc, aisheng.dong-3arQi8VN3Tc,
	linux-usb-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

What happened with this series ? Did we all drop the ball ?

Guenter

On 09/25/2017 09:05 PM, Li Jun wrote:
> This patch set attempts to move the tcpci driver out of staging by fix
> some tcpci driver issues and verified on NXP PTN5110, which is a standard
> tcpci typec port controller device with power delivery support, tested
> power source and sink with drp config.
> 
> Li Jun (12):
>    usb: typec: add API to get port type and preferred role
>    usb: typec: add basic typec properties
>    staging: typec: tcpci: add documentation for tcpci
>    staging: typec: tcpci: support port config passed via dt
>    staging: typec: tcpci: register port before request irq
>    staging: typec: tcpci: enable vbus detection
>    typec: tcpm: add starting value for drp toggling
>    staging: typec: tcpci: correct drp toggling
>    usb: typec: tcpm: only drives the connected cc line when attached
>    staging: typec: tcpci: update set_cc for different state
>    staging: typec: tcpci: Only touch target bit when enable vconn
>    staging: typec: tcpci: move tcpci driver out of staging
> 
>   .../devicetree/bindings/usb/typec-tcpci.txt        |  36 ++++
>   Documentation/devicetree/bindings/usb/typec.txt    |  46 +++++
>   drivers/staging/Kconfig                            |   2 -
>   drivers/staging/Makefile                           |   1 -
>   drivers/staging/typec/Kconfig                      |  14 --
>   drivers/staging/typec/Makefile                     |   1 -
>   drivers/staging/typec/TODO                         |   5 -
>   drivers/usb/typec/Kconfig                          |   7 +
>   drivers/usb/typec/Makefile                         |   1 +
>   drivers/{staging => usb}/typec/tcpci.c             | 185 ++++++++++++++++-----
>   drivers/{staging => usb}/typec/tcpci.h             |   0
>   drivers/usb/typec/tcpm.c                           |  22 ++-
>   drivers/usb/typec/typec.c                          |  45 +++++
>   include/linux/usb/tcpm.h                           |   9 +-
>   include/linux/usb/typec.h                          |   2 +
>   15 files changed, 306 insertions(+), 70 deletions(-)
>   create mode 100644 Documentation/devicetree/bindings/usb/typec-tcpci.txt
>   create mode 100644 Documentation/devicetree/bindings/usb/typec.txt
>   delete mode 100644 drivers/staging/typec/Kconfig
>   delete mode 100644 drivers/staging/typec/Makefile
>   delete mode 100644 drivers/staging/typec/TODO
>   rename drivers/{staging => usb}/typec/tcpci.c (73%)
>   rename drivers/{staging => usb}/typec/tcpci.h (100%)
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 19+ messages in thread

* RE: [PATCH resend 00/12] staging: typec: tcpci: move out of staging
       [not found]     ` <96d37f9b-f04d-f923-ec09-b25fd62a90be-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
@ 2017-10-27  1:17       ` Jun Li
  0 siblings, 0 replies; 19+ messages in thread
From: Jun Li @ 2017-10-27  1:17 UTC (permalink / raw)
  To: Guenter Roeck,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	heikki.krogerus-VuQAYsv1563Yd54FQh9/CA@public.gmane.org
  Cc: yueyao-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
	o_leveque-1tsiiZ//OF9QFI55V6+gNQ@public.gmane.org, Peter Chen,
	A.s. Dong, linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org

Hi Guenter,

> -----Original Message-----
> From: Guenter Roeck [mailto:groeck7@gmail.com] On Behalf Of Guenter Roeck
> Sent: Friday, October 27, 2017 8:43 AM
> To: Jun Li <jun.li@nxp.com>; gregkh@linuxfoundation.org; robh+dt@kernel.org;
> mark.rutland@arm.com; heikki.krogerus@linux.intel.com
> Cc: yueyao@google.com; o_leveque@orange.fr; Peter Chen
> <peter.chen@nxp.com>; A.s. Dong <aisheng.dong@nxp.com>; linux-
> usb@vger.kernel.org; devicetree@vger.kernel.org
> Subject: Re: [PATCH resend 00/12] staging: typec: tcpci: move out of staging
> 
> What happened with this series ? Did we all drop the ball ?
> 

In [1] Rob needs the typec related dt bindings and properties should be more complete
and based on USB connector definition[2](which is still in discussion), so this series is
dependent on that, I am busy recently, I will check [2] to see how to move forward on
this, any comments/thought much appreciated.

[1] https://www.spinics.net/lists/linux-usb/msg161412.html
[2] http://www.spinics.net/lists/devicetree/msg197601.html
 
Thanks
Li Jun

> Guenter
> 
> On 09/25/2017 09:05 PM, Li Jun wrote:
> > This patch set attempts to move the tcpci driver out of staging by fix
> > some tcpci driver issues and verified on NXP PTN5110, which is a
> > standard tcpci typec port controller device with power delivery
> > support, tested power source and sink with drp config.
> >
> > Li Jun (12):
> >    usb: typec: add API to get port type and preferred role
> >    usb: typec: add basic typec properties
> >    staging: typec: tcpci: add documentation for tcpci
> >    staging: typec: tcpci: support port config passed via dt
> >    staging: typec: tcpci: register port before request irq
> >    staging: typec: tcpci: enable vbus detection
> >    typec: tcpm: add starting value for drp toggling
> >    staging: typec: tcpci: correct drp toggling
> >    usb: typec: tcpm: only drives the connected cc line when attached
> >    staging: typec: tcpci: update set_cc for different state
> >    staging: typec: tcpci: Only touch target bit when enable vconn
> >    staging: typec: tcpci: move tcpci driver out of staging
> >
> >   .../devicetree/bindings/usb/typec-tcpci.txt        |  36 ++++
> >   Documentation/devicetree/bindings/usb/typec.txt    |  46 +++++
> >   drivers/staging/Kconfig                            |   2 -
> >   drivers/staging/Makefile                           |   1 -
> >   drivers/staging/typec/Kconfig                      |  14 --
> >   drivers/staging/typec/Makefile                     |   1 -
> >   drivers/staging/typec/TODO                         |   5 -
> >   drivers/usb/typec/Kconfig                          |   7 +
> >   drivers/usb/typec/Makefile                         |   1 +
> >   drivers/{staging => usb}/typec/tcpci.c             | 185 ++++++++++++++++-----
> >   drivers/{staging => usb}/typec/tcpci.h             |   0
> >   drivers/usb/typec/tcpm.c                           |  22 ++-
> >   drivers/usb/typec/typec.c                          |  45 +++++
> >   include/linux/usb/tcpm.h                           |   9 +-
> >   include/linux/usb/typec.h                          |   2 +
> >   15 files changed, 306 insertions(+), 70 deletions(-)
> >   create mode 100644 Documentation/devicetree/bindings/usb/typec-tcpci.txt
> >   create mode 100644 Documentation/devicetree/bindings/usb/typec.txt
> >   delete mode 100644 drivers/staging/typec/Kconfig
> >   delete mode 100644 drivers/staging/typec/Makefile
> >   delete mode 100644 drivers/staging/typec/TODO
> >   rename drivers/{staging => usb}/typec/tcpci.c (73%)
> >   rename drivers/{staging => usb}/typec/tcpci.h (100%)
> >


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-10-27  1:17 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-26  4:05 [PATCH resend 00/12] staging: typec: tcpci: move out of staging Li Jun
     [not found] ` <1506398723-19359-1-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
2017-09-26  4:05   ` [PATCH resend 01/12] usb: typec: add API to get port type and preferred role Li Jun
2017-09-26  4:05   ` [PATCH resend 02/12] usb: typec: add basic typec properties Li Jun
     [not found]     ` <1506398723-19359-3-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
2017-10-05 20:44       ` Rob Herring
2017-10-09 11:21         ` Jun Li
     [not found]           ` <DB4PR04MB07683A52DD500A40C2B9047A89740-tLF+feb1Bz6HC8XOQgzeLs9NdZoXdze2vxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2017-10-09 13:12             ` Rob Herring
2017-09-26  4:05   ` [PATCH resend 03/12] staging: typec: tcpci: add documentation for tcpci Li Jun
2017-09-26  4:05   ` [PATCH resend 04/12] staging: typec: tcpci: support port config passed via dt Li Jun
2017-09-26  4:05   ` [PATCH resend 05/12] staging: typec: tcpci: register port before request irq Li Jun
2017-09-26  4:05   ` [PATCH resend 06/12] staging: typec: tcpci: enable vbus detection Li Jun
2017-09-26  4:05   ` [PATCH resend 07/12] typec: tcpm: add starting value for drp toggling Li Jun
2017-09-26  4:05   ` [PATCH resend 08/12] staging: typec: tcpci: correct " Li Jun
2017-09-26  4:05   ` [PATCH resend 09/12] usb: typec: tcpm: only drives the connected cc line when attached Li Jun
     [not found]     ` <1506398723-19359-10-git-send-email-jun.li-3arQi8VN3Tc@public.gmane.org>
2017-09-27 14:30       ` kbuild test robot
2017-09-26  4:05   ` [PATCH resend 10/12] staging: typec: tcpci: update set_cc for different state Li Jun
2017-09-26  4:05   ` [PATCH resend 11/12] staging: typec: tcpci: Only touch target bit when enable vconn Li Jun
2017-09-26  4:05   ` [PATCH resend 12/12] staging: typec: tcpci: move tcpci driver out of staging Li Jun
2017-10-27  0:42   ` [PATCH resend 00/12] staging: typec: tcpci: move " Guenter Roeck
     [not found]     ` <96d37f9b-f04d-f923-ec09-b25fd62a90be-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2017-10-27  1:17       ` Jun Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).