8#ifndef ZEPHYR_SOC_ARM_RENESAS_RCAR_X5H_COMMON_PINCTRL_SOC_H_
9#define ZEPHYR_SOC_ARM_RENESAS_RCAR_X5H_COMMON_PINCTRL_SOC_H_
27#define RCAR_PIN_FLAGS_PULL_SET BIT(0)
28#define RCAR_PIN_FLAGS_PUEN BIT(1)
29#define RCAR_PIN_FLAGS_PUD BIT(2)
30#define RCAR_PIN_FLAGS_FUNC_SET BIT(3)
33#define RCAR_PIN_PULL_UP (RCAR_PIN_FLAGS_PULL_SET | RCAR_PIN_FLAGS_PUEN | RCAR_PIN_FLAGS_PUD)
35#define RCAR_PIN_PULL_DOWN (RCAR_PIN_FLAGS_PULL_SET | RCAR_PIN_FLAGS_PUEN)
37#define RCAR_PIN_PULL_DISABLE RCAR_PIN_FLAGS_PULL_SET
52#define RCAR_ALTSEL(node_id) DT_PROP_BY_IDX(node_id, pin, 1)
59#define RCAR_HAS_ALTSEL(node_id) DT_PROP_HAS_IDX(node_id, pin, 1)
68#define RCAR_PIN_FUNC(node_id) { \
69 ((RCAR_ALTSEL(node_id) >> 10U) & 0xFU), \
70 ((RCAR_ALTSEL(node_id) >> 14U) & 0x1FU), \
71 ((RCAR_ALTSEL(node_id) & 0xFU))}
78#define RCAR_PIN_FLAGS(node_id) \
79 DT_PROP(node_id, bias_pull_up) * RCAR_PIN_PULL_UP | \
80 DT_PROP(node_id, bias_pull_down) * RCAR_PIN_PULL_DOWN | \
81 DT_PROP(node_id, bias_disable) * RCAR_PIN_PULL_DISABLE | \
82 RCAR_HAS_ALTSEL(node_id) * RCAR_PIN_FLAGS_FUNC_SET
89#define RCAR_DT_PIN(node_id) { \
90 .pin = DT_PROP_BY_IDX(node_id, pin, 0), \
91 .func = COND_CODE_1(RCAR_HAS_ALTSEL(node_id), \
92 (RCAR_PIN_FUNC(node_id)), ({0})), \
93 .flags = RCAR_PIN_FLAGS(node_id), \
94 .drive_strength_microamp = \
95 COND_CODE_1(DT_NODE_HAS_PROP(node_id, drive_strength_microamp), \
96 (DT_PROP(node_id, drive_strength_microamp)), (0))},
105#define Z_PINCTRL_STATE_PIN_INIT(node_id, state_prop, idx) \
106 RCAR_DT_PIN(DT_PROP_BY_IDX(node_id, state_prop, idx))
114#define Z_PINCTRL_STATE_PINS_INIT(node_id, prop) \
115 {DT_FOREACH_PROP_ELEM(node_id, prop, Z_PINCTRL_STATE_PIN_INIT)}
flags
Definition parser.h:97
struct pinctrl_soc_pin pinctrl_soc_pin_t
Type for R-Car pin.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Type for R-Car bias registers.
Definition pinctrl_rcar_common.h:114
const uint16_t pins[32]
Pull-up/down or pull-down control register.
Definition pinctrl_rcar_common.h:117
uint32_t pud
Pull-enable or pull-up control register.
Definition pinctrl_rcar_common.h:116
uint32_t puen
Pull-enable register.
Definition pinctrl_rcar_common.h:115
Type for R-Car DRVCTRLn registers.
Definition pinctrl_rcar_common.h:109
uint32_t drvctrl2
Driving control register 2.
Definition pinctrl_rcar_x5h_common.h:121
uint32_t drvctrl1
Driving control register 1.
Definition pinctrl_rcar_x5h_common.h:120
const uint16_t pins[32]
Pin IDs.
Definition pinctrl_rcar_x5h_common.h:122
uint32_t drvctrl0
Driving control register 0.
Definition pinctrl_rcar_x5h_common.h:119
Type for R-Car pin.
Definition pinctrl_rcar_common.h:38
uint16_t pin
Pin ID.
Definition pinctrl_rcar_common.h:39
struct rcar_pin_func func
Pin function.
Definition pinctrl_rcar_common.h:40
uint16_t drive_strength_microamp
Drive strength (if output).
Definition pinctrl_rcar_x5h_common.h:44
Type for R-Car pin function.
Definition pinctrl_rcar_common.h:16
uint8_t bit
Bit i.e.
Definition pinctrl_rcar_x5h_common.h:23
uint8_t group
GPIO group 0 - 10.
Definition pinctrl_rcar_x5h_common.h:22
uint8_t func
Alternate function 0 - 15.
Definition pinctrl_rcar_common.h:19