13#ifndef _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_PINCTRL_H_
14#define _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_PINCTRL_H_
25#define ARM_SCMI_PINCTRL_MAX_CONFIG_SIZE (10 * 2)
27#define SCMI_PINCTRL_NO_FUNCTION 0xFFFFFFFF
29#define SCMI_PINCTRL_CONFIG_ATTRIBUTES(fid_valid, cfg_num, selector) \
30 (SCMI_FIELD_MAKE(fid_valid, BIT(1), 10) | \
31 SCMI_FIELD_MAKE(cfg_num, GENMASK(7, 0), 2) | \
32 SCMI_FIELD_MAKE(selector, GENMASK(1, 0), 0))
34#define SCMI_PINCTRL_SELECTOR_PIN 0x0
35#define SCMI_PINCTRL_SELECTOR_GROUP 0x1
37#define SCMI_PINCTRL_ATTRIBUTES_CONFIG_NUM(attributes)\
38 (((attributes) & GENMASK(9, 2)) >> 2)
40#define SCMI_PIN_CONTROL_PROTOCOL_SUPPORTED_VERSION 0x10000
Header file for the SCMI (System Control and Management Interface) driver API.
scmi_pinctrl_message
Pinctrl protocol command message IDs.
Definition pinctrl.h:45
#define ARM_SCMI_PINCTRL_MAX_CONFIG_SIZE
Definition pinctrl.h:25
scmi_pinctrl_config
Pinctrl configurations.
Definition pinctrl.h:63
int scmi_pinctrl_settings_configure(struct scmi_pinctrl_settings *settings)
Send the PINCTRL_SETTINGS_CONFIGURE command and get its reply.
@ SCMI_PINCTRL_MSG_PINCTRL_SETTINGS_GET
Definition pinctrl.h:51
@ SCMI_PINCTRL_MSG_PROTOCOL_MESSAGE_ATTRIBUTES
Definition pinctrl.h:48
@ SCMI_PINCTRL_MSG_PINCTRL_SET_PERMISSIONS
Definition pinctrl.h:56
@ SCMI_PINCTRL_MSG_PINCTRL_RELEASE
Definition pinctrl.h:54
@ SCMI_PINCTRL_MSG_PINCTRL_ATTRIBUTES
Definition pinctrl.h:49
@ SCMI_PINCTRL_MSG_PROTOCOL_ATTRIBUTES
Definition pinctrl.h:47
@ SCMI_PINCTRL_MSG_PINCTRL_NAME_GET
Definition pinctrl.h:55
@ SCMI_PINCTRL_MSG_PINCTRL_LIST_ASSOCIATIONS
Definition pinctrl.h:50
@ SCMI_PINCTRL_MSG_PROTOCOL_VERSION
Definition pinctrl.h:46
@ SCMI_PINCTRL_MSG_NEGOTIATE_PROTOCOL_VERSION
Definition pinctrl.h:57
@ SCMI_PINCTRL_MSG_PINCTRL_REQUEST
Definition pinctrl.h:53
@ SCMI_PINCTRL_MSG_PINCTRL_SETTINGS_CONFIGURE
Definition pinctrl.h:52
@ SCMI_PINCTRL_BIAS_PULL_DEFAULT
Definition pinctrl.h:69
@ SCMI_PINCTRL_RESERVED_START
Definition pinctrl.h:85
@ SCMI_PINCTRL_VENDOR_START
Definition pinctrl.h:87
@ SCMI_PINCTRL_BIAS_HIGH_Z
Definition pinctrl.h:67
@ SCMI_PINCTRL_INPUT_MODE
Definition pinctrl.h:76
@ SCMI_PINCTRL_INPUT_VALUE
Definition pinctrl.h:78
@ SCMI_PINCTRL_RESERVED_END
Definition pinctrl.h:86
@ SCMI_PINCTRL_DEFAULT
Definition pinctrl.h:64
@ SCMI_PINCTRL_BIAS_BUS_HOLD
Definition pinctrl.h:65
@ SCMI_PINCTRL_POWER_SOURCE
Definition pinctrl.h:83
@ SCMI_PINCTRL_OUTPUT_MODE
Definition pinctrl.h:81
@ SCMI_PINCTRL_INPUT_DEBOUNCE
Definition pinctrl.h:75
@ SCMI_PINCTRL_LP_MODE
Definition pinctrl.h:80
@ SCMI_PINCTRL_BIAS_PULL_UP
Definition pinctrl.h:68
@ SCMI_PINCTRL_BIAS_DISABLE
Definition pinctrl.h:66
@ SCMI_PINCTRL_DRIVE_OPEN_SOURCE
Definition pinctrl.h:72
@ SCMI_PINCTRL_INPUT_SCHMITT
Definition pinctrl.h:79
@ SCMI_PINCTRL_OUTPUT_VALUE
Definition pinctrl.h:82
@ SCMI_PINCTRL_PULL_MODE
Definition pinctrl.h:77
@ SCMI_PINCTRL_BIAS_PULL_DOWN
Definition pinctrl.h:70
@ SCMI_PINCTRL_DRIVE_OPEN_DRAIN
Definition pinctrl.h:71
@ SCMI_PINCTRL_SLEW_RATE
Definition pinctrl.h:84
@ SCMI_PCINTRL_DRIVE_STRENGTH
Definition pinctrl.h:74
@ SCMI_PCINTRL_DRIVE_PUSH_PULL
Definition pinctrl.h:73
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Describes the parameters for the PINCTRL_SETTINGS_CONFIGURE command.
Definition pinctrl.h:96
uint32_t id
Definition pinctrl.h:97
uint32_t config[(10 *2)]
Definition pinctrl.h:100
uint32_t attributes
Definition pinctrl.h:99
uint32_t function
Definition pinctrl.h:98