10#define SDRV_PINCTRL_H_
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_PINCTRL
Definition: sdrv_common.h:26
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
enum pin_input_select pin_input_select_e
Definition for pin input select. Only valid for PAD input signal. CMOS SCHMITT can generate a stable ...
status_t sdrv_pinctrl_ctrl_set_mux(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_mux_e mux)
Config mux function for specific pin.
struct pin_settings_config pin_settings_config_t
Definiction for pin initialize config.
status_t sdrv_pinctrl_set_mode_select(uint32_t pin_index, pin_mode_select_e mode_select)
Config mode select for specific pin.
status_t sdrv_pinctrl_ctrl_set_high_resistance(sdrv_pinctrl_t *pinctrl, struct sdrv_gpio *gpio, uint32_t pin_index)
Config pin to high resistance.
enum pin_drive_strength pin_drive_strength_e
Definition for pin current drive strength.
status_t sdrv_pinctrl_set_pull(uint32_t pin_index, pin_pull_config_e pull_config)
Config pull type for specific pin.
pin_level_type
Definition for pin initial output level, only valid for pin mux as gpio output.
Definition: sdrv_pinctrl.h:147
@ PIN_LEVEL_HIGH
Definition: sdrv_pinctrl.h:149
@ PIN_LEVEL_LOW
Definition: sdrv_pinctrl.h:148
status_t sdrv_pinctrl_clear_dispmux_config(void)
Clear display mux config.
enum pin_open_drain pin_open_drain_e
Definition for pin output type.
status_t sdrv_pinctrl_set_drive_strength(uint32_t pin_index, pin_drive_strength_e drive_strength)
Config drive strength for specific pin.
enum pin_level_type pin_level_type_e
Definition for pin initial output level, only valid for pin mux as gpio output.
status_t sdrv_pinctrl_set_opendrain(uint32_t pin_index, pin_open_drain_e open_drain)
Config output type for specific pin.
status_t sdrv_pinctrl_ctrl_set_pull(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_pull_config_e pull_config)
Config pull type for specific pin.
enum pin_mode_select pin_mode_select_e
Definition for pin mode select config.
pin_slew_rate
Definition for pin slew rate type.
Definition: sdrv_pinctrl.h:109
@ PIN_SR_SLOW
Definition: sdrv_pinctrl.h:111
@ PIN_SR_FAST
Definition: sdrv_pinctrl.h:110
status_t sdrv_pinctrl_ctrl_set_slew_rate(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_slew_rate_e slew_rate)
Config slew rate for specific pin.
status_t sdrv_pinctrl_set_mux(uint32_t pin_index, pin_mux_e mux)
Config mux function for specific pin.
status_t sdrv_pinctrl_set_force_input(uint32_t pin_index, pin_force_input_e force_input)
Config force input for specific pin.
enum pin_force_input pin_force_input_e
Definition for pin force input config.
pin_interrupt_config
Definition for pin interrupt type, only valid for pin mux as gpio.
Definition: sdrv_pinctrl.h:135
@ PIN_INTERRUPT_HIGH_LEVEL
Definition: sdrv_pinctrl.h:137
@ PIN_INTERRUPT_LOW_LEVEL
Definition: sdrv_pinctrl.h:138
@ PIN_INTERRUPT_BOTH_EDGE
Definition: sdrv_pinctrl.h:141
@ PIN_INTERRUPT_FALLING_EDGE
Definition: sdrv_pinctrl.h:140
@ PIN_INTERRUPT_RISING_EDGE
Definition: sdrv_pinctrl.h:139
@ PIN_INTERRUPT_DISABLED
Definition: sdrv_pinctrl.h:136
struct sdrv_input_select_t sdrv_input_select_t
Definition for INPUT SELECT REGISTER config.
status_t sdrv_pinctrl_init(uint32_t count, const pin_settings_config_t *configs)
Initialize pins as pre-defined.
struct sdrv_pinctrl sdrv_pinctrl_t
Definition for Pinctrl instance.
sdrv_pinctrl_error
PINCTRL status error code.
Definition: sdrv_pinctrl.h:29
@ SDRV_PINCTRL_BAD_PIN
Definition: sdrv_pinctrl.h:30
@ SDRV_PINCTRL_CTRL_NULL
Definition: sdrv_pinctrl.h:31
enum pin_data_direction pin_data_direction_e
Definition for pin data direction, only valid for pin mux as gpio.
status_t sdrv_pinctrl_ctrl_set_force_input(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_force_input_e force_input)
Config force input for specific pin.
pin_input_select
Definition for pin input select. Only valid for PAD input signal. CMOS SCHMITT can generate a stable ...
Definition: sdrv_pinctrl.h:119
@ PIN_IS_CMOS
Definition: sdrv_pinctrl.h:120
@ PIN_IS_CMOS_SCHMITT
Definition: sdrv_pinctrl.h:121
pin_force_input
Definition for pin force input config.
Definition: sdrv_pinctrl.h:160
@ PIN_FORCE_INPUT_HIGH
Definition: sdrv_pinctrl.h:163
@ PIN_FORCE_INPUT_NORMAL
Definition: sdrv_pinctrl.h:161
@ PIN_FORCE_INPUT_LOW
Definition: sdrv_pinctrl.h:164
@ PIN_FORCE_INPUT_ENABLE
Definition: sdrv_pinctrl.h:162
status_t sdrv_pinctrl_ctrl_set_input_select(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_input_select_e input_select)
Config input select for specific pin.
enum pin_slew_rate pin_slew_rate_e
Definition for pin slew rate type.
pin_mode_select
Definition for pin mode select config.
Definition: sdrv_pinctrl.h:174
@ PIN_MODE_DIGITAL
Definition: sdrv_pinctrl.h:175
@ PIN_MODE_DOWN_CONVERSION
Definition: sdrv_pinctrl.h:177
@ PIN_MODE_SELECT_NORMAL
Definition: sdrv_pinctrl.h:176
status_t sdrv_pinctrl_set_high_resistance(uint32_t pin_index)
Config pin to high resistance.
status_t sdrv_pinctrl_ctrl_set_drive_strength(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_drive_strength_e drive_strength)
Config drive strength for specific pin.
enum pin_interrupt_config pin_interrupt_config_e
Definition for pin interrupt type, only valid for pin mux as gpio.
pin_data_direction
Definition for pin data direction, only valid for pin mux as gpio.
Definition: sdrv_pinctrl.h:127
@ PIN_INPUT_DIRECTION
Definition: sdrv_pinctrl.h:128
@ PIN_OUTPUT_DIRECTION
Definition: sdrv_pinctrl.h:129
status_t sdrv_pinctrl_set_input_select(uint32_t pin_index, pin_input_select_e input_select)
Config input select for specific pin.
enum pin_pull_config pin_pull_config_e
Definition for pin internal pull type.
enum pin_mux pin_mux_e
Definition for pin mux function, each pin has different function, detail see datasheet.
status_t sdrv_pinctrl_ctrl_clear_dispmux_config(sdrv_pinctrl_t *pinctrl)
Clear display mux config.
status_t sdrv_pinctrl_ctrl_set_mode_select(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_mode_select_e mode_select)
Config mode select for specific pin.
pin_pull_config
Definition for pin internal pull type.
Definition: sdrv_pinctrl.h:90
@ PIN_PULL_UP
Definition: sdrv_pinctrl.h:93
@ PIN_NOPULL
Definition: sdrv_pinctrl.h:91
@ PIN_PULL_DOWN
Definition: sdrv_pinctrl.h:92
pin_open_drain
Definition for pin output type.
Definition: sdrv_pinctrl.h:82
@ PIN_OPEN_DRAIN
Definition: sdrv_pinctrl.h:83
@ PIN_PUSH_PULL
Definition: sdrv_pinctrl.h:84
status_t sdrv_pinctrl_set_slew_rate(uint32_t pin_index, pin_slew_rate_e slew_rate)
Config slew rate for specific pin.
pin_mux
Definition for pin mux function, each pin has different function, detail see datasheet.
Definition: sdrv_pinctrl.h:66
@ PIN_MUX_ALT8
Definition: sdrv_pinctrl.h:75
@ PIN_MUX_ALT9
Definition: sdrv_pinctrl.h:76
@ PIN_MUX_ALT6
Definition: sdrv_pinctrl.h:73
@ PIN_MUX_ALT3
Definition: sdrv_pinctrl.h:70
@ PIN_MUX_ALT0
Definition: sdrv_pinctrl.h:67
@ PIN_MUX_ALT2
Definition: sdrv_pinctrl.h:69
@ PIN_MUX_ALT1
Definition: sdrv_pinctrl.h:68
@ PIN_MUX_ALT7
Definition: sdrv_pinctrl.h:74
@ PIN_MUX_ALT4
Definition: sdrv_pinctrl.h:71
@ PIN_MUX_ALT5
Definition: sdrv_pinctrl.h:72
status_t sdrv_pinctrl_ctrl_init_pin(sdrv_pinctrl_t *pinctrl, struct sdrv_gpio *gpio, const pin_settings_config_t *pin_cfg)
Initialize one pin as pre-defined.
pin_drive_strength
Definition for pin current drive strength.
Definition: sdrv_pinctrl.h:99
@ PIN_DS_2MA
Definition: sdrv_pinctrl.h:100
@ PIN_DS_4MA
Definition: sdrv_pinctrl.h:102
@ PIN_DS_8MA
Definition: sdrv_pinctrl.h:101
@ PIN_DS_12MA
Definition: sdrv_pinctrl.h:103
status_t sdrv_pinctrl_ctrl_set_opendrain(sdrv_pinctrl_t *pinctrl, uint32_t pin_index, pin_open_drain_e open_drain)
Config output type for specific pin.
Definiction for pin initialize config.
Definition: sdrv_pinctrl.h:183
pin_data_direction_e data_direction
Definition: sdrv_pinctrl.h:191
pin_level_type_e initial_value
Definition: sdrv_pinctrl.h:193
pin_drive_strength_e drive_strength
Definition: sdrv_pinctrl.h:188
pin_slew_rate_e slew_rate
Definition: sdrv_pinctrl.h:189
uint32_t pin_index
Definition: sdrv_pinctrl.h:184
pin_interrupt_config_e interrupt_config
Definition: sdrv_pinctrl.h:192
pin_mux_e mux
Definition: sdrv_pinctrl.h:185
pin_open_drain_e open_drain
Definition: sdrv_pinctrl.h:186
pin_input_select_e input_select
Definition: sdrv_pinctrl.h:190
pin_mode_select_e mode_select
Definition: sdrv_pinctrl.h:195
pin_force_input_e force_input
Definition: sdrv_pinctrl.h:194
pin_pull_config_e pull_config
Definition: sdrv_pinctrl.h:187
GPIO Controller Instance.
Definition: sdrv_gpio.h:64
Definition for Pinctrl instance.
Definition: sdrv_pinctrl.h:50
const sdrv_input_select_t * input_select
Definition: sdrv_pinctrl.h:59
uint32_t disp_mux_base
Definition: sdrv_pinctrl.h:56
uint32_t input_select_size
Definition: sdrv_pinctrl.h:58
uint32_t pin_start
Definition: sdrv_pinctrl.h:54
uint32_t pin_num
Definition: sdrv_pinctrl.h:55
paddr_t base
Definition: sdrv_pinctrl.h:51
uint32_t mux_offset
Definition: sdrv_pinctrl.h:53
uint32_t pad_offset
Definition: sdrv_pinctrl.h:52