Skip to content

Commit

Permalink
usb: typec: add fwnode to tcpc
Browse files Browse the repository at this point in the history
Add fwnode handle to get the fwnode so we can get typec configs
it contains.

Suggested-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Li Jun authored and Greg Kroah-Hartman committed Jun 28, 2018
1 parent 4024208 commit 5e85a04
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/staging/typec/tcpci.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/property.h>
#include <linux/regmap.h>
#include <linux/usb/pd.h>
#include <linux/usb/tcpm.h>
Expand Down Expand Up @@ -474,6 +475,12 @@ static int tcpci_parse_config(struct tcpci *tcpci)

/* TODO: Populate struct tcpc_config from ACPI/device-tree */
tcpci->tcpc.config = &tcpci_tcpc_config;
tcpci->tcpc.fwnode = device_get_named_child_node(tcpci->dev,
"connector");
if (!tcpci->tcpc.fwnode) {
dev_err(tcpci->dev, "Can't find connector node.\n");
return -EINVAL;
}

return 0;
}
Expand Down
1 change: 1 addition & 0 deletions drivers/usb/typec/tcpm.c
Original file line number Diff line number Diff line change
Expand Up @@ -4576,6 +4576,7 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc)
else
port->try_role = TYPEC_NO_PREFERRED_ROLE;

port->typec_caps.fwnode = tcpc->fwnode;
port->typec_caps.prefer_role = tcpc->config->default_role;
port->typec_caps.type = tcpc->config->type;
port->typec_caps.data = tcpc->config->data;
Expand Down
2 changes: 2 additions & 0 deletions include/linux/usb/tcpm.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ enum tcpc_mux_mode {
/**
* struct tcpc_dev - Port configuration and callback functions
* @config: Pointer to port configuration
* @fwnode: Pointer to port fwnode
* @get_vbus: Called to read current VBUS state
* @get_current_limit:
* Optional; called by the tcpm core when configured as a snk
Expand Down Expand Up @@ -138,6 +139,7 @@ enum tcpc_mux_mode {
*/
struct tcpc_dev {
const struct tcpc_config *config;
struct fwnode_handle *fwnode;

int (*init)(struct tcpc_dev *dev);
int (*get_vbus)(struct tcpc_dev *dev);
Expand Down

0 comments on commit 5e85a04

Please sign in to comment.