Commit c620f4d5 authored by Saranya Gopal's avatar Saranya Gopal Committed by Greg Kroah-Hartman
Browse files

usb: typec: pd: Add higher capability sysfs for sink PDO



28th bit of fixed supply sink PDO represents higher capability.
When this bit is set, the sink device needs more than vsafe5V
(eg: 12 V) to provide full functionality. This patch adds
this higher capability sysfs interface for sink PDO.
28th bit of fixed supply source PDO represents usb_suspend_supported
attribute. This usb_suspend_supported sysfs is already exposed for
source PDOs. This patch adds 'source-capabilities' in
usb_suspend_supported sysfs documentation for additional clarity.

Signed-off-by: default avatarSaranya Gopal <saranya.gopal@intel.com>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20230214114543.205103-2-saranya.gopal@intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e4e7b2dc
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ Description:
		This file contains boolean value that tells does the device
		support both source and sink power roles.

What:		/sys/class/usb_power_delivery/.../<capability>/1:fixed_supply/usb_suspend_supported
What:		/sys/class/usb_power_delivery/.../source-capabilities/1:fixed_supply/usb_suspend_supported
Date:		May 2022
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
@@ -78,6 +78,15 @@ Description:
		will follow the USB 2.0 and USB 3.2 rules for suspend and
		resume.

What:		/sys/class/usb_power_delivery/.../sink-capabilities/1:fixed_supply/higher_capability
Date:		February 2023
Contact:	Saranya Gopal <saranya.gopal@linux.intel.com>
Description:
		This file shows the value of the Higher capability bit in
		vsafe5V Fixed Supply Object. If the bit is set, then the sink
		needs more than vsafe5V(eg. 12 V) to provide full functionality.
		Valid values: 0, 1

What:		/sys/class/usb_power_delivery/.../<capability>/1:fixed_supply/unconstrained_power
Date:		May 2022
Contact:	Heikki Krogerus <heikki.krogerus@linux.intel.com>
+8 −0
Original line number Diff line number Diff line
@@ -48,6 +48,13 @@ usb_suspend_supported_show(struct device *dev, struct device_attribute *attr, ch
}
static DEVICE_ATTR_RO(usb_suspend_supported);

static ssize_t
higher_capability_show(struct device *dev, struct device_attribute *attr, char *buf)
{
	return sysfs_emit(buf, "%u\n", !!(to_pdo(dev)->pdo & PDO_FIXED_HIGHER_CAP));
}
static DEVICE_ATTR_RO(higher_capability);

static ssize_t
unconstrained_power_show(struct device *dev, struct device_attribute *attr, char *buf)
{
@@ -161,6 +168,7 @@ static struct device_type source_fixed_supply_type = {

static struct attribute *sink_fixed_supply_attrs[] = {
	&dev_attr_dual_role_power.attr,
	&dev_attr_higher_capability.attr,
	&dev_attr_unconstrained_power.attr,
	&dev_attr_usb_communication_capable.attr,
	&dev_attr_dual_role_data.attr,