Zephyr API Documentation
4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
bcm2711-pinctrl.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2025 Muhammad Waleed Badar
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_BCM2711_PINCTRL_H_
8
#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_BCM2711_PINCTRL_H_
9
10
/* BCM2711 number of GPIO (GPIOs 0–57) */
11
#define BCM2711_NUM_GPIO 58
12
13
/* BCM2711 Pin Functions */
14
#define BCM2711_FSEL_GPIO_IN 0
15
#define BCM2711_FSEL_GPIO_OUT 1
16
#define BCM2711_FSEL_ALT0 4
17
#define BCM2711_FSEL_ALT1 5
18
#define BCM2711_FSEL_ALT2 6
19
#define BCM2711_FSEL_ALT3 7
20
#define BCM2711_FSEL_ALT4 3
21
#define BCM2711_FSEL_ALT5 2
22
23
/* BCM2711 Pull Configuration */
24
#define BCM2711_PULL_NONE 0
25
#define BCM2711_PULL_UP 1
26
#define BCM2711_PULL_DOWN 2
27
28
/* BCM2711 pinmux configuration macro */
29
#define BCM2711_PINMUX(pin, func) \
30
(((pin) & 0xFF) | (((func) & 0x7) << 8))
31
32
/* Extract pin number from BCM2711 pinmux value */
33
#define BCM2711_GET_PIN(pinmux) \
34
((pinmux) & 0xFF)
35
36
/* Extract function from BCM2711 pinmux value */
37
#define BCM2711_GET_FUNC(pinmux) \
38
(((pinmux) >> 8) & 0x7)
39
40
/* UART0 pinmux definitions */
41
#define UART0_TX_GPIO14 BCM2711_PINMUX(14, BCM2711_FSEL_ALT0)
42
#define UART0_RX_GPIO15 BCM2711_PINMUX(15, BCM2711_FSEL_ALT0)
43
44
#define UART0_TX_GPIO32 BCM2711_PINMUX(32, BCM2711_FSEL_ALT3)
45
#define UART0_RX_GPIO33 BCM2711_PINMUX(33, BCM2711_FSEL_ALT3)
46
47
#define UART0_TX_GPIO36 BCM2711_PINMUX(36, BCM2711_FSEL_ALT2)
48
#define UART0_RX_GPIO37 BCM2711_PINMUX(37, BCM2711_FSEL_ALT2)
49
50
#define UART0_CTS_GPIO16 BCM2711_PINMUX(16, BCM2711_FSEL_ALT3)
51
#define UART0_RTS_GPIO17 BCM2711_PINMUX(17, BCM2711_FSEL_ALT3)
52
53
#define UART0_CTS_GPIO30 BCM2711_PINMUX(30, BCM2711_FSEL_ALT3)
54
#define UART0_RTS_GPIO31 BCM2711_PINMUX(31, BCM2711_FSEL_ALT3)
55
56
#define UART0_CTS_GPIO38 BCM2711_PINMUX(38, BCM2711_FSEL_ALT2)
57
#define UART0_RTS_GPIO39 BCM2711_PINMUX(39, BCM2711_FSEL_ALT2)
58
59
/* UART1 pinmux definitions */
60
#define UART1_TX_GPIO14 BCM2711_PINMUX(14, BCM2711_FSEL_ALT5)
61
#define UART1_RX_GPIO15 BCM2711_PINMUX(15, BCM2711_FSEL_ALT5)
62
63
#define UART1_TX_GPIO32 BCM2711_PINMUX(32, BCM2711_FSEL_ALT5)
64
#define UART1_RX_GPIO33 BCM2711_PINMUX(33, BCM2711_FSEL_ALT5)
65
66
#define UART1_TX_GPIO40 BCM2711_PINMUX(40, BCM2711_FSEL_ALT5)
67
#define UART1_RX_GPIO41 BCM2711_PINMUX(41, BCM2711_FSEL_ALT5)
68
69
#define UART1_CTS_GPIO16 BCM2711_PINMUX(16, BCM2711_FSEL_ALT5)
70
#define UART1_RTS_GPIO17 BCM2711_PINMUX(17, BCM2711_FSEL_ALT5)
71
72
#define UART1_CTS_GPIO30 BCM2711_PINMUX(30, BCM2711_FSEL_ALT5)
73
#define UART1_RTS_GPIO31 BCM2711_PINMUX(31, BCM2711_FSEL_ALT5)
74
75
#define UART1_CTS_GPIO42 BCM2711_PINMUX(42, BCM2711_FSEL_ALT5)
76
#define UART1_RTS_GPIO43 BCM2711_PINMUX(43, BCM2711_FSEL_ALT5)
77
78
/* UART2 pinmux definitions */
79
#define UART2_TX_GPIO0 BCM2711_PINMUX(0, BCM2711_FSEL_ALT4)
80
#define UART2_RX_GPIO1 BCM2711_PINMUX(1, BCM2711_FSEL_ALT4)
81
82
#define UART2_CTS_GPIO2 BCM2711_PINMUX(2, BCM2711_FSEL_ALT4)
83
#define UART2_RTS_GPIO3 BCM2711_PINMUX(3, BCM2711_FSEL_ALT4)
84
85
/* UART3 pinmux definitions */
86
#define UART3_TX_GPIO4 BCM2711_PINMUX(4, BCM2711_FSEL_ALT4)
87
#define UART3_RX_GPIO5 BCM2711_PINMUX(5, BCM2711_FSEL_ALT4)
88
89
#define UART3_CTS_GPIO6 BCM2711_PINMUX(6, BCM2711_FSEL_ALT4)
90
#define UART3_RTS_GPIO7 BCM2711_PINMUX(7, BCM2711_FSEL_ALT4)
91
92
/* UART4 pinmux definitions */
93
#define UART4_TX_GPIO8 BCM2711_PINMUX(8, BCM2711_FSEL_ALT4)
94
#define UART4_RX_GPIO9 BCM2711_PINMUX(9, BCM2711_FSEL_ALT4)
95
96
#define UART4_CTS_GPIO10 BCM2711_PINMUX(10, BCM2711_FSEL_ALT4)
97
#define UART4_RTS_GPIO11 BCM2711_PINMUX(11, BCM2711_FSEL_ALT4)
98
99
/* UART5 pinmux definitions */
100
#define UART5_TX_GPIO12 BCM2711_PINMUX(12, BCM2711_FSEL_ALT4)
101
#define UART5_RX_GPIO13 BCM2711_PINMUX(13, BCM2711_FSEL_ALT4)
102
103
#define UART5_CTS_GPIO14 BCM2711_PINMUX(14, BCM2711_FSEL_ALT4)
104
#define UART5_RTS_GPIO15 BCM2711_PINMUX(15, BCM2711_FSEL_ALT4)
105
106
/* I2C0 pinmux definitions */
107
#define I2C0_SDA_GPIO0 BCM2711_PINMUX(0, BCM2711_FSEL_ALT0)
108
#define I2C0_SCL_GPIO1 BCM2711_PINMUX(1, BCM2711_FSEL_ALT0)
109
110
#define I2C0_SDA_GPIO28 BCM2711_PINMUX(28, BCM2711_FSEL_ALT0)
111
#define I2C0_SCL_GPIO29 BCM2711_PINMUX(29, BCM2711_FSEL_ALT0)
112
113
#define I2C0_SDA_GPIO44 BCM2711_PINMUX(44, BCM2711_FSEL_ALT1)
114
#define I2C0_SCL_GPIO45 BCM2711_PINMUX(45, BCM2711_FSEL_ALT1)
115
116
/* I2C1 pinmux definitions */
117
#define I2C1_SDA_GPIO2 BCM2711_PINMUX(2, BCM2711_FSEL_ALT0)
118
#define I2C1_SCL_GPIO3 BCM2711_PINMUX(3, BCM2711_FSEL_ALT0)
119
120
#define I2C1_SDA_GPIO44 BCM2711_PINMUX(44, BCM2711_FSEL_ALT2)
121
#define I2C1_SCL_GPIO45 BCM2711_PINMUX(45, BCM2711_FSEL_ALT2)
122
123
/* I2C3 pinmux definitions */
124
#define I2C3_SDA_GPIO2 BCM2711_PINMUX(2, BCM2711_FSEL_ALT5)
125
#define I2C3_SCL_GPIO3 BCM2711_PINMUX(3, BCM2711_FSEL_ALT5)
126
127
#define I2C3_SDA_GPIO4 BCM2711_PINMUX(4, BCM2711_FSEL_ALT5)
128
#define I2C3_SCL_GPIO5 BCM2711_PINMUX(5, BCM2711_FSEL_ALT5)
129
130
/* I2C4 pinmux definitions */
131
#define I2C4_SDA_GPIO6 BCM2711_PINMUX(6, BCM2711_FSEL_ALT5)
132
#define I2C4_SCL_GPIO7 BCM2711_PINMUX(7, BCM2711_FSEL_ALT5)
133
134
#define I2C4_SDA_GPIO8 BCM2711_PINMUX(8, BCM2711_FSEL_ALT5)
135
#define I2C4_SCL_GPIO9 BCM2711_PINMUX(9, BCM2711_FSEL_ALT5)
136
137
/* I2C5 pinmux definitions */
138
#define I2C5_SDA_GPIO10 BCM2711_PINMUX(10, BCM2711_FSEL_ALT5)
139
#define I2C5_SCL_GPIO11 BCM2711_PINMUX(11, BCM2711_FSEL_ALT5)
140
141
#define I2C5_SDA_GPIO12 BCM2711_PINMUX(12, BCM2711_FSEL_ALT5)
142
#define I2C5_SCL_GPIO13 BCM2711_PINMUX(13, BCM2711_FSEL_ALT5)
143
144
/* I2C6 pinmux definitions */
145
#define I2C6_SDA_GPIO0 BCM2711_PINMUX(0, BCM2711_FSEL_ALT5)
146
#define I2C6_SCL_GPIO1 BCM2711_PINMUX(1, BCM2711_FSEL_ALT5)
147
148
#define I2C6_SDA_GPIO22 BCM2711_PINMUX(22, BCM2711_FSEL_ALT5)
149
#define I2C6_SCL_GPIO23 BCM2711_PINMUX(23, BCM2711_FSEL_ALT5)
150
151
#endif
/* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_BCM2711_PINCTRL_H_ */
zephyr
dt-bindings
pinctrl
bcm2711-pinctrl.h
Generated on
for Zephyr API Documentation by
1.15.0