diff options
author | Alice Guo <alice.guo@nxp.com> | 2025-04-28 18:37:26 +0800 |
---|---|---|
committer | Fabio Estevam <festevam@gmail.com> | 2025-05-03 16:55:32 -0300 |
commit | 8706d383ad0ebcaf92b1dd1799b310f96cfb36f3 (patch) | |
tree | b10479fe7f2ae58e972978b96a7b5b30ae2b329e /include/scmi_protocols.h | |
parent | adff089cd4d5e45399348bc92c98d035ed7cc801 (diff) |
pinctrl: nxp: add a pin controller driver based on SCMI pin control protocol
This patch provides a pinctrl driver based on SCMI pin control protocol.
Currently, only the PINCTRL_CONFIG_SET command is implemented.
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Diffstat (limited to 'include/scmi_protocols.h')
-rw-r--r-- | include/scmi_protocols.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/scmi_protocols.h b/include/scmi_protocols.h index 7abb2a6f36b..279ebbad440 100644 --- a/include/scmi_protocols.h +++ b/include/scmi_protocols.h @@ -24,6 +24,7 @@ enum scmi_std_protocol { SCMI_PROTOCOL_ID_SENSOR = 0x15, SCMI_PROTOCOL_ID_RESET_DOMAIN = 0x16, SCMI_PROTOCOL_ID_VOLTAGE_DOMAIN = 0x17, + SCMI_PROTOCOL_ID_PINCTRL = 0x19, }; enum scmi_status_code { @@ -1005,4 +1006,39 @@ struct scmi_voltd_level_get_out { s32 voltage_level; }; +/* SCMI Pinctrl Protocol */ +enum scmi_pinctrl_message_id { + SCMI_MSG_PINCTRL_CONFIG_SET = 0x6 +}; + +struct scmi_pin_config { + u32 type; + u32 val; +}; + +/** + * struct scmi_pad_config_set_in - Message payload for PAD_CONFIG_SET command + * @identifier: Identifier for the pin or group. + * @function_id: Identifier for the function selected to be enabled + * for the selected pin or group. This field is set to + * 0xFFFFFFFF if no function should be enabled by the + * pin or group. + * @attributes: Bits[31:11] Reserved, must be zero. + * Bit[10] Function valid. + * Bits[9:2] Number of configurations to set. + * Bits[1:0] Selector: Whether the identifier field + * refers to a pin or a group. + * @configs: Array of configurations. + */ +struct scmi_pinctrl_config_set_in { + u32 identifier; + u32 function_id; + u32 attributes; + struct scmi_pin_config configs[4]; +}; + +struct scmi_pinctrl_config_set_out { + s32 status; +}; + #endif /* _SCMI_PROTOCOLS_H */ |