Commit 4dee13db authored by Chaoyi Chen's avatar Chaoyi Chen Committed by Greg Kroah-Hartman
Browse files

usb: typec: Export typec bus and typec altmode device type



The DRM may want to register a notifier on the typec bus to know when
a typec altmode device is added, and distinguish between different
types of typec altmode device.

Export these things.

Signed-off-by: default avatarChaoyi Chen <chaoyi.chen@rock-chips.com>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20251208015500.94-3-kernel@airkyi.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 67ab4542
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -569,3 +569,4 @@ const struct bus_type typec_bus = {
	.probe = typec_probe,
	.remove = typec_remove,
};
EXPORT_SYMBOL_GPL(typec_bus);
+0 −10
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@

#include <linux/usb/typec_altmode.h>

struct bus_type;
struct typec_mux;
struct typec_retimer;

@@ -28,13 +27,4 @@ struct altmode {

#define to_altmode(d) container_of(d, struct altmode, adev)

extern const struct bus_type typec_bus;
extern const struct device_type typec_port_altmode_dev_type;
extern const struct device_type typec_plug_altmode_dev_type;
extern const struct device_type typec_partner_altmode_dev_type;

#define is_typec_port_altmode(dev) ((dev)->type == &typec_port_altmode_dev_type)
#define is_typec_plug_altmode(dev) ((dev)->type == &typec_plug_altmode_dev_type)
#define is_typec_partner_altmode(dev) ((dev)->type == &typec_partner_altmode_dev_type)

#endif /* __USB_TYPEC_ALTMODE_H__ */
+3 −0
Original line number Diff line number Diff line
@@ -537,18 +537,21 @@ const struct device_type typec_port_altmode_dev_type = {
	.groups = typec_altmode_groups,
	.release = typec_altmode_release,
};
EXPORT_SYMBOL_GPL(typec_port_altmode_dev_type);

const struct device_type typec_plug_altmode_dev_type = {
	.name = "typec_plug_alternate_mode",
	.groups = typec_altmode_groups,
	.release = typec_altmode_release,
};
EXPORT_SYMBOL_GPL(typec_plug_altmode_dev_type);

const struct device_type typec_partner_altmode_dev_type = {
	.name = "typec_partner_alternate_mode",
	.groups = typec_altmode_groups,
	.release = typec_altmode_release,
};
EXPORT_SYMBOL_GPL(typec_partner_altmode_dev_type);

static struct typec_altmode *
typec_register_altmode(struct device *parent,
+3 −0
Original line number Diff line number Diff line
@@ -20,12 +20,15 @@ struct typec_port;
struct typec_altmode_ops;
struct typec_cable_ops;

struct bus_type;
struct fwnode_handle;
struct device;

struct usb_power_delivery;
struct usb_power_delivery_desc;

extern const struct bus_type typec_bus;

enum typec_port_type {
	TYPEC_PORT_SRC,
	TYPEC_PORT_SNK,
+8 −0
Original line number Diff line number Diff line
@@ -9,6 +9,14 @@

#define MODE_DISCOVERY_MAX	6

extern const struct device_type typec_port_altmode_dev_type;
extern const struct device_type typec_plug_altmode_dev_type;
extern const struct device_type typec_partner_altmode_dev_type;

#define is_typec_port_altmode(dev) ((dev)->type == &typec_port_altmode_dev_type)
#define is_typec_plug_altmode(dev) ((dev)->type == &typec_plug_altmode_dev_type)
#define is_typec_partner_altmode(dev) ((dev)->type == &typec_partner_altmode_dev_type)

struct typec_altmode_ops;

/**