123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2020, The Linux Foundation. All rights reserved.
- */
- #ifndef __ALTMODE_H__
- #define __ALTMODE_H__
- #include <linux/types.h>
- /**
- * struct altmode_client_data
- * Uniquely define altmode client while registering with altmode framework.
- *
- * @svid: Unique ID for Type-C Altmode client devices
- * @name: Short descriptive name to identify client
- * @priv: Pointer to client driver's internal top level structure
- * @callback: Callback function to receive PMIC GLINK message data
- */
- struct altmode_client_data {
- u16 svid;
- const char *name;
- void *priv;
- int (*callback)(void *priv, void *data, size_t len);
- };
- struct altmode_client;
- enum altmode_send_msg_type {
- ALTMODE_PAN_EN = 0x10,
- ALTMODE_PAN_ACK,
- };
- struct altmode_pan_ack_msg {
- u32 cmd_type;
- u8 port_index;
- };
- #if IS_ENABLED(CONFIG_QTI_ALTMODE_GLINK)
- struct device;
- int altmode_register_notifier(struct device *client_dev, void (*cb)(void *),
- void *priv);
- int altmode_deregister_notifier(struct device *client_dev, void *priv);
- struct altmode_client *altmode_register_client(struct device *dev,
- const struct altmode_client_data *client_data);
- int altmode_deregister_client(struct altmode_client *client);
- int altmode_send_data(struct altmode_client *client, void *data, size_t len);
- #else
- static inline int altmode_register_notifier(struct device *client_dev,
- void (*cb)(void *), void *priv)
- {
- return -ENODEV;
- }
- static inline int altmode_deregister_notifier(struct device *client_dev,
- void *priv)
- {
- return -ENODEV;
- }
- static inline struct altmode_client *altmode_register_client(struct device *dev,
- const struct altmode_client_data *client_data)
- {
- return ERR_PTR(-ENODEV);
- }
- static inline int altmode_deregister_client(struct altmode_client *client)
- {
- return -ENODEV;
- }
- static inline int altmode_send_data(struct altmode_client *client, void *data,
- size_t len)
- {
- return -ENODEV;
- }
- #endif
- #endif
|