Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
ifx_cat1-pinctrl.h
Go to the documentation of this file.
1/* Copyright 2022 Cypress Semiconductor Corporation (an Infineon company) or
2 * an affiliate of Cypress Semiconductor Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_IFX_CAT1_PINCTRL_H_
7#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_IFX_CAT1_PINCTRL_H_
11
15#define SOC_PINMUX_PORT_POS (0)
16#define SOC_PINMUX_PORT_MASK (0xFFul << SOC_PINMUX_PORT_POS)
17#define SOC_PINMUX_PIN_POS (8)
18#define SOC_PINMUX_PIN_MASK (0xFFul << SOC_PINMUX_PIN_POS)
19#define SOC_PINMUX_HSIOM_FUNC_POS (16)
20#define SOC_PINMUX_HSIOM_MASK (0xFFul << SOC_PINMUX_HSIOM_FUNC_POS)
21#define SOC_PINMUX_SIGNAL_POS (24)
22#define SOC_PINMUX_SIGNAL_MASK (0xFFul << SOC_PINMUX_SIGNAL_POS)
23
27#define HSIOM_SEL_GPIO (0)
28#define HSIOM_SEL_GPIO_DSI (1)
29#define HSIOM_SEL_DSI_DSI (2)
30#define HSIOM_SEL_DSI_GPIO (3)
31#define HSIOM_SEL_AMUXA (4)
32#define HSIOM_SEL_AMUXB (5)
33#define HSIOM_SEL_AMUXA_DSI (6)
34#define HSIOM_SEL_AMUXB_DSI (7)
35#define HSIOM_SEL_ACT_0 (8)
36#define HSIOM_SEL_ACT_1 (9)
37#define HSIOM_SEL_ACT_2 (10)
38#define HSIOM_SEL_ACT_3 (11)
39#define HSIOM_SEL_DS_0 (12)
40#define HSIOM_SEL_DS_1 (13)
41#define HSIOM_SEL_DS_2 (14)
42#define HSIOM_SEL_DS_3 (15)
43#define HSIOM_SEL_ACT_4 (16)
44#define HSIOM_SEL_ACT_5 (17)
45#define HSIOM_SEL_ACT_6 (18)
46#define HSIOM_SEL_ACT_7 (19)
47#define HSIOM_SEL_ACT_8 (20)
48#define HSIOM_SEL_ACT_9 (21)
49#define HSIOM_SEL_ACT_10 (22)
50#define HSIOM_SEL_ACT_11 (23)
51#define HSIOM_SEL_ACT_12 (24)
52#define HSIOM_SEL_ACT_13 (25)
53#define HSIOM_SEL_ACT_14 (26)
54#define HSIOM_SEL_ACT_15 (27)
55#define HSIOM_SEL_DS_4 (28)
56#define HSIOM_SEL_DS_5 (29)
57#define HSIOM_SEL_DS_6 (30)
58#define HSIOM_SEL_DS_7 (31)
59
63#define DT_CAT1_DRIVE_MODE_INFO(peripheral_signal) \
64 CAT1_PIN_MAP_DRIVE_MODE_##peripheral_signal
65
69#define DT_CAT1_PINMUX(port, pin, hsiom) \
70 ((port << SOC_PINMUX_PORT_POS) | \
71 (pin << SOC_PINMUX_PIN_POS) | \
72 (hsiom << SOC_PINMUX_HSIOM_FUNC_POS))
73
83#define IFX_SMIF0_PORT0 (22)
84#define IFX_SMIF0_PORT1 (23)
85#define IFX_SMIF0_PORT2 (24)
86#define IFX_SMIF1_PORT0 (25)
87#define IFX_SMIF1_PORT1 (26)
88#define IFX_SMIF1_PORT2 (27)
89
90/* Redefine DT GPIO label (Px) to CYHAL port macros (CYHAL_PORT_x) */
91#define P0 CYHAL_PORT_0
92#define P1 CYHAL_PORT_1
93#define P2 CYHAL_PORT_2
94#define P3 CYHAL_PORT_3
95#define P4 CYHAL_PORT_4
96#define P5 CYHAL_PORT_5
97#define P6 CYHAL_PORT_6
98#define P7 CYHAL_PORT_7
99#define P8 CYHAL_PORT_8
100#define P9 CYHAL_PORT_9
101#define P10 CYHAL_PORT_10
102#define P11 CYHAL_PORT_11
103#define P12 CYHAL_PORT_12
104#define P13 CYHAL_PORT_13
105#define P14 CYHAL_PORT_14
106#define P15 CYHAL_PORT_15
107#define P16 CYHAL_PORT_16
108#define P17 CYHAL_PORT_17
109#define P18 CYHAL_PORT_18
110#define P19 CYHAL_PORT_19
111#define P20 CYHAL_PORT_20
112
113/* Returns CYHAL GPIO from Board device tree GPIO configuration
114 * CYHAL_GET_GPIO(port_number, pin_number),
115 * port_number = ((REG ADDR of node) - (REG ADDR of gpio_prt0)) / (REG SIZE of gpio_prt0)
116 * pin_number = DT_PHA_BY_IDX(node, gpios_prop, 0, pin)
117 */
118#define DT_GET_CYHAL_GPIO_FROM_DT_GPIOS(node, gpios_prop) \
119 CYHAL_GET_GPIO( \
120 (DT_REG_ADDR_BY_IDX(DT_GPIO_CTLR_BY_IDX(node, gpios_prop, 0), 0) - \
121 DT_REG_ADDR_BY_IDX(DT_NODELABEL(gpio_prt0), 0)) / \
122 DT_REG_ADDR_BY_IDX(DT_NODELABEL(gpio_prt0), 1), \
123 DT_PHA_BY_IDX(node, gpios_prop, 0, pin) \
124 )
125
126#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_IFX_CAT1_PINCTRL_H_ */