13#ifndef _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_PINCTRL_H_
14#define _INCLUDE_ZEPHYR_DRIVERS_FIRMWARE_SCMI_PINCTRL_H_
26#define ARM_SCMI_PINCTRL_MAX_CONFIG_SIZE (10 * 2)
29#define SCMI_PINCTRL_NO_FUNCTION 0xFFFFFFFF
38#define SCMI_PINCTRL_CONFIG_ATTRIBUTES(fid_valid, cfg_num, selector) \
39 (SCMI_FIELD_MAKE(fid_valid, BIT(0), 10) | \
40 SCMI_FIELD_MAKE(cfg_num, GENMASK(7, 0), 2) | \
41 SCMI_FIELD_MAKE(selector, GENMASK(1, 0), 0))
44#define SCMI_PINCTRL_SELECTOR_PIN 0x0
46#define SCMI_PINCTRL_SELECTOR_GROUP 0x1
49#define SCMI_PINCTRL_ATTRIBUTES_CONFIG_NUM(attributes)\
50 (((attributes) & GENMASK(9, 2)) >> 2)
56#define SCMI_PINCTRL_ATTRIBUTES_FID_VALID(attributes)\
57 FIELD_GET(BIT(10), attributes)
60#define SCMI_PIN_CONTROL_PROTOCOL_SUPPORTED_VERSION 0x10000
Header file for the SCMI (System Control and Management Interface) driver API.
#define ARM_SCMI_PINCTRL_MAX_CONFIG_SIZE
Maximum number of config words carried by a PINCTRL_SETTINGS_CONFIGURE command.
Definition pinctrl.h:26
scmi_pinctrl_config
Pinctrl configurations.
Definition pinctrl.h:65
int scmi_pinctrl_settings_configure(struct scmi_pinctrl_settings *settings)
Send the PINCTRL_SETTINGS_CONFIGURE command and get its reply.
@ SCMI_PINCTRL_BIAS_PULL_DEFAULT
Apply the default pull bias.
Definition pinctrl.h:77
@ SCMI_PINCTRL_RESERVED_START
First reserved configuration type.
Definition pinctrl.h:109
@ SCMI_PINCTRL_VENDOR_START
First vendor-specific configuration type.
Definition pinctrl.h:113
@ SCMI_PINCTRL_BIAS_HIGH_Z
High-impedance (floating) bias.
Definition pinctrl.h:73
@ SCMI_PINCTRL_INPUT_MODE
Input mode enable.
Definition pinctrl.h:91
@ SCMI_PINCTRL_INPUT_VALUE
Input value.
Definition pinctrl.h:95
@ SCMI_PINCTRL_RESERVED_END
Last reserved configuration type.
Definition pinctrl.h:111
@ SCMI_PINCTRL_DEFAULT
Default configuration.
Definition pinctrl.h:67
@ SCMI_PINCTRL_BIAS_BUS_HOLD
Bias the pin using a bus hold (keeper) circuit.
Definition pinctrl.h:69
@ SCMI_PINCTRL_POWER_SOURCE
Power source selection.
Definition pinctrl.h:105
@ SCMI_PINCTRL_OUTPUT_MODE
Output mode enable.
Definition pinctrl.h:101
@ SCMI_PINCTRL_INPUT_DEBOUNCE
Input debounce time.
Definition pinctrl.h:89
@ SCMI_PINCTRL_LP_MODE
Low-power mode.
Definition pinctrl.h:99
@ SCMI_PINCTRL_BIAS_PULL_UP
Pull the pin up.
Definition pinctrl.h:75
@ SCMI_PINCTRL_BIAS_DISABLE
Disable all biasing.
Definition pinctrl.h:71
@ SCMI_PINCTRL_DRIVE_OPEN_SOURCE
Open-source output drive.
Definition pinctrl.h:83
@ SCMI_PINCTRL_INPUT_SCHMITT
Input Schmitt-trigger enable.
Definition pinctrl.h:97
@ SCMI_PINCTRL_OUTPUT_VALUE
Output value.
Definition pinctrl.h:103
@ SCMI_PINCTRL_PULL_MODE
Pull mode selection.
Definition pinctrl.h:93
@ SCMI_PINCTRL_BIAS_PULL_DOWN
Pull the pin down.
Definition pinctrl.h:79
@ SCMI_PINCTRL_DRIVE_OPEN_DRAIN
Open-drain output drive.
Definition pinctrl.h:81
@ SCMI_PINCTRL_SLEW_RATE
Output slew rate.
Definition pinctrl.h:107
@ SCMI_PCINTRL_DRIVE_STRENGTH
Output drive strength (note: name kept for ABI compatibility).
Definition pinctrl.h:87
@ SCMI_PCINTRL_DRIVE_PUSH_PULL
Push-pull output drive (note: name kept for ABI compatibility).
Definition pinctrl.h:85
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Describes the parameters for the PINCTRL_SETTINGS_CONFIGURE command.
Definition pinctrl.h:122
uint32_t id
Identifier of the pin or group being configured.
Definition pinctrl.h:124
uint32_t config[(10 *2)]
Array of {type, value} configuration pairs.
Definition pinctrl.h:130
uint32_t attributes
Attributes word (see SCMI_PINCTRL_CONFIG_ATTRIBUTES).
Definition pinctrl.h:128
uint32_t function
Function to multiplex, or SCMI_PINCTRL_NO_FUNCTION.
Definition pinctrl.h:126