From: Badhri Jagan Sridharan <badhri@google.com> To: Guenter Roeck <linux@roeck-us.net>, Heikki Krogerus <heikki.krogerus@linux.intel.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rob Herring <robh+dt@kernel.org>, Lee Jones <lee.jones@linaro.org>, Mark Brown <broonie@kernel.org>, Maxime Ripard <mripard@kernel.org>, Alexandre Belloni <alexandre.belloni@bootlin.com>, Thierry Reding <treding@nvidia.com>, Prashant Malani <pmalani@chromium.org>, Badhri Jagan Sridharan <badhri@google.com> Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v9 09/15] usb: typec: tcpm: frs sourcing vbus callback Date: Mon, 28 Sep 2020 19:39:58 -0700 Message-ID: <20200929024004.244992-10-badhri@google.com> (raw) In-Reply-To: <20200929024004.244992-1-badhri@google.com> During FRS hardware autonomously starts to source vbus. Provide callback to perform chip specific operations. Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> --- drivers/usb/typec/tcpm/tcpm.c | 9 +++++++++ include/linux/usb/tcpm.h | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index 55535c4f66bf..02b7f623f584 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -4090,7 +4090,16 @@ static void _tcpm_pd_vbus_on(struct tcpm_port *port) case SRC_TRY_DEBOUNCE: /* Do nothing, waiting for sink detection */ break; + case FR_SWAP_SEND: + case FR_SWAP_SEND_TIMEOUT: + case FR_SWAP_SNK_SRC_TRANSITION_TO_OFF: + case FR_SWAP_SNK_SRC_SOURCE_VBUS_APPLIED: + if (port->tcpc->frs_sourcing_vbus) + port->tcpc->frs_sourcing_vbus(port->tcpc); + break; case FR_SWAP_SNK_SRC_NEW_SINK_READY: + if (port->tcpc->frs_sourcing_vbus) + port->tcpc->frs_sourcing_vbus(port->tcpc); tcpm_set_state(port, FR_SWAP_SNK_SRC_SOURCE_VBUS_APPLIED, 0); break; diff --git a/include/linux/usb/tcpm.h b/include/linux/usb/tcpm.h index 09762d26fa0c..7303f518ba49 100644 --- a/include/linux/usb/tcpm.h +++ b/include/linux/usb/tcpm.h @@ -83,6 +83,9 @@ enum tcpm_transmit_type { * Optional; Called to enable/disable PD 3.0 fast role swap. * Enabling frs is accessory dependent as not all PD3.0 * accessories support fast role swap. + * @frs_sourcing_vbus: + * Optional; Called to notify that vbus is now being sourced. + * Low level drivers can perform chip specific operations, if any. */ struct tcpc_dev { struct fwnode_handle *fwnode; @@ -109,6 +112,7 @@ struct tcpc_dev { const struct pd_message *msg); int (*set_bist_data)(struct tcpc_dev *dev, bool on); int (*enable_frs)(struct tcpc_dev *dev, bool enable); + void (*frs_sourcing_vbus)(struct tcpc_dev *dev); }; struct tcpm_port; -- 2.28.0.709.gb0816b6eb0-goog
next prev parent reply index Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-29 2:39 [PATCH v9 00/15] TCPM support for FRS and AutoDischarge Disconnect Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 01/15] usb: typec: tcpci: Add a getter method to retrieve tcpm_port reference Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 02/15] usb: typec: tcpci: Add set_vbus tcpci callback Badhri Jagan Sridharan 2020-10-02 13:39 ` Greg Kroah-Hartman 2020-10-02 13:40 ` Greg Kroah-Hartman 2020-10-02 16:08 ` Badhri Jagan Sridharan 2020-10-03 15:57 ` Greg Kroah-Hartman 2020-10-08 6:32 ` Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 03/15] dt-bindings: usb: Maxim type-c controller device tree binding document Badhri Jagan Sridharan 2020-10-05 14:46 ` Rob Herring 2020-10-08 0:42 ` Badhri Jagan Sridharan 2020-10-13 13:43 ` Rob Herring 2020-10-13 13:50 ` Rob Herring 2020-10-20 6:16 ` Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 04/15] usb: typec: tcpci_maxim: Chip level TCPC driver Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 05/15] dt-bindings: connector: Add property to set initial current cap for FRS Badhri Jagan Sridharan 2020-10-06 18:29 ` Rob Herring 2020-10-08 1:06 ` Badhri Jagan Sridharan 2020-10-13 14:15 ` Rob Herring 2020-10-20 9:43 ` Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 06/15] usb: typec: tcpm: Add support for Sink Fast Role SWAP(FRS) Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 07/15] usb: typec: tcpci: Implement callbacks for FRS Badhri Jagan Sridharan 2020-09-29 2:39 ` [PATCH v9 08/15] usb: typec: tcpci_maxim: Add support for Sink FRS Badhri Jagan Sridharan 2020-09-29 2:39 ` Badhri Jagan Sridharan [this message] 2020-09-29 2:39 ` [PATCH v9 10/15] usb: typec: tcpci: frs sourcing vbus callback Badhri Jagan Sridharan 2020-09-29 2:40 ` [PATCH v9 11/15] usb: typec: tcpci_max77759: Fix vbus stuck on upon diconnecting sink Badhri Jagan Sridharan 2020-09-29 2:40 ` [PATCH v9 12/15] usb: typec: tcpm: Parse frs type-c current from device tree Badhri Jagan Sridharan 2020-09-29 2:40 ` [PATCH v9 13/15] usb: typec: tcpm: Implement enabling Auto Discharge disconnect support Badhri Jagan Sridharan 2020-09-29 2:40 ` [PATCH v9 14/15] usb: typec: tcpci: Implement Auto discharge disconnect callbacks Badhri Jagan Sridharan 2020-09-29 2:40 ` [PATCH v9 15/15] usb: typec: tcpci_maxim: Enable auto discharge disconnect Badhri Jagan Sridharan
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=20200929024004.244992-10-badhri@google.com \ --to=badhri@google.com \ --cc=alexandre.belloni@bootlin.com \ --cc=broonie@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=heikki.krogerus@linux.intel.com \ --cc=lee.jones@linaro.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=mripard@kernel.org \ --cc=pmalani@chromium.org \ --cc=robh+dt@kernel.org \ --cc=treding@nvidia.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
Linux-USB Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \ linux-usb@vger.kernel.org public-inbox-index linux-usb Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb AGPL code for this site: git clone https://public-inbox.org/public-inbox.git