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