summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-01-08 16:33:08 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-01-08 16:33:08 +0300
commit24d142d5be8f195b6c08ca1868885cf3a546444a (patch)
treedd4896b77606fc025dbdbe6b289daf75746f17f2 /include/linux
parent337ccce6674d37566dbc48f111fe94fdf3e0f6c3 (diff)
parentca90a64dc671f4a18958078a4bf2e31e2ef57db9 (diff)
downloadlinux-24d142d5be8f195b6c08ca1868885cf3a546444a.tar.xz
Merge tag 'extcon-next-for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next
Chanwoo writes: Update extcon for 4.16 Detailed description for this pull request: 1. Add support to notify USB connector for "ChromeOS Embedded Controller". - extcon-usbc-cros-ec driver detects the EXTCON_USB and EXTCON_USB_HOST connector type and then notify the state/properties to the consumer device. 2. Update the detection on probe time and clean-up code for "X-Power AXP288". - Detect the state of connector after a couple of seconds after probe() becasue extcon-axp288.c driver depends on other device driver like mux. In order to guarantee the correct state, the extcon-axp288.c uses the delayed_work. - Set EXTCON_CHG_USB_SDP type as the safe default type if unknown connector is attached because the data sheet of axp288 doesn't handle the all exception cases. - Remove unused code 3. Fix the minor issue of extcon driver - Fix platform get_irq's error checking for extcon-adc-jack. - Delete unneeded initialization for extcon-max8997/max77693.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mfd/axp20x.h5
-rw-r--r--include/linux/mfd/cros_ec_commands.h17
2 files changed, 17 insertions, 5 deletions
diff --git a/include/linux/mfd/axp20x.h b/include/linux/mfd/axp20x.h
index 78dc85365c4f..080798f17ece 100644
--- a/include/linux/mfd/axp20x.h
+++ b/include/linux/mfd/axp20x.h
@@ -645,11 +645,6 @@ struct axp20x_dev {
const struct regmap_irq_chip *regmap_irq_chip;
};
-struct axp288_extcon_pdata {
- /* GPIO pin control to switch D+/D- lines b/w PMIC and SOC */
- struct gpio_desc *gpio_mux_cntl;
-};
-
/* generic helper function for reading 9-16 bit wide regs */
static inline int axp20x_read_variable_width(struct regmap *regmap,
unsigned int reg, unsigned int width)
diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h
index 2b16e95b9bb8..a83f6498b95e 100644
--- a/include/linux/mfd/cros_ec_commands.h
+++ b/include/linux/mfd/cros_ec_commands.h
@@ -2904,16 +2904,33 @@ enum usb_pd_control_mux {
USB_PD_CTRL_MUX_AUTO = 5,
};
+enum usb_pd_control_swap {
+ USB_PD_CTRL_SWAP_NONE = 0,
+ USB_PD_CTRL_SWAP_DATA = 1,
+ USB_PD_CTRL_SWAP_POWER = 2,
+ USB_PD_CTRL_SWAP_VCONN = 3,
+ USB_PD_CTRL_SWAP_COUNT
+};
+
struct ec_params_usb_pd_control {
uint8_t port;
uint8_t role;
uint8_t mux;
+ uint8_t swap;
} __packed;
#define PD_CTRL_RESP_ENABLED_COMMS (1 << 0) /* Communication enabled */
#define PD_CTRL_RESP_ENABLED_CONNECTED (1 << 1) /* Device connected */
#define PD_CTRL_RESP_ENABLED_PD_CAPABLE (1 << 2) /* Partner is PD capable */
+#define PD_CTRL_RESP_ROLE_POWER BIT(0) /* 0=SNK/1=SRC */
+#define PD_CTRL_RESP_ROLE_DATA BIT(1) /* 0=UFP/1=DFP */
+#define PD_CTRL_RESP_ROLE_VCONN BIT(2) /* Vconn status */
+#define PD_CTRL_RESP_ROLE_DR_POWER BIT(3) /* Partner is dualrole power */
+#define PD_CTRL_RESP_ROLE_DR_DATA BIT(4) /* Partner is dualrole data */
+#define PD_CTRL_RESP_ROLE_USB_COMM BIT(5) /* Partner USB comm capable */
+#define PD_CTRL_RESP_ROLE_EXT_POWERED BIT(6) /* Partner externally powerd */
+
struct ec_response_usb_pd_control_v1 {
uint8_t enabled;
uint8_t role;