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