Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/arm/boot/dts/st/st-pincfg.h
29271 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
#ifndef _ST_PINCFG_H_
3
#define _ST_PINCFG_H_
4
5
/* Alternate functions */
6
#define ALT1 1
7
#define ALT2 2
8
#define ALT3 3
9
#define ALT4 4
10
#define ALT5 5
11
#define ALT6 6
12
#define ALT7 7
13
14
/* Output enable */
15
#define OE (1 << 27)
16
/* Pull Up */
17
#define PU (1 << 26)
18
/* Open Drain */
19
#define OD (1 << 25)
20
#define RT (1 << 23)
21
#define INVERTCLK (1 << 22)
22
#define CLKNOTDATA (1 << 21)
23
#define DOUBLE_EDGE (1 << 20)
24
#define CLK_A (0 << 18)
25
#define CLK_B (1 << 18)
26
#define CLK_C (2 << 18)
27
#define CLK_D (3 << 18)
28
29
/* User-frendly defines for Pin Direction */
30
/* oe = 0, pu = 0, od = 0 */
31
#define IN (0)
32
/* oe = 0, pu = 1, od = 0 */
33
#define IN_PU (PU)
34
/* oe = 1, pu = 0, od = 0 */
35
#define OUT (OE)
36
/* oe = 1, pu = 0, od = 1 */
37
#define BIDIR (OE | OD)
38
/* oe = 1, pu = 1, od = 1 */
39
#define BIDIR_PU (OE | PU | OD)
40
41
/* RETIME_TYPE */
42
/*
43
* B Mode
44
* Bypass retime with optional delay parameter
45
*/
46
#define BYPASS (0)
47
/*
48
* R0, R1, R0D, R1D modes
49
* single-edge data non inverted clock, retime data with clk
50
*/
51
#define SE_NICLK_IO (RT)
52
/*
53
* RIV0, RIV1, RIV0D, RIV1D modes
54
* single-edge data inverted clock, retime data with clk
55
*/
56
#define SE_ICLK_IO (RT | INVERTCLK)
57
/*
58
* R0E, R1E, R0ED, R1ED modes
59
* double-edge data, retime data with clk
60
*/
61
#define DE_IO (RT | DOUBLE_EDGE)
62
/*
63
* CIV0, CIV1 modes with inverted clock
64
* Retiming the clk pins will park clock & reduce the noise within the core.
65
*/
66
#define ICLK (RT | CLKNOTDATA | INVERTCLK)
67
/*
68
* CLK0, CLK1 modes with non-inverted clock
69
* Retiming the clk pins will park clock & reduce the noise within the core.
70
*/
71
#define NICLK (RT | CLKNOTDATA)
72
#endif /* _ST_PINCFG_H_ */
73
74