Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / include / dt-bindings / pinctrl / am43xx.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * This header provides constants specific to AM43XX pinctrl bindings.
4  */
5
6 #ifndef _DT_BINDINGS_PINCTRL_AM43XX_H
7 #define _DT_BINDINGS_PINCTRL_AM43XX_H
8
9 #define MUX_MODE0       0
10 #define MUX_MODE1       1
11 #define MUX_MODE2       2
12 #define MUX_MODE3       3
13 #define MUX_MODE4       4
14 #define MUX_MODE5       5
15 #define MUX_MODE6       6
16 #define MUX_MODE7       7
17 #define MUX_MODE8       8
18 #define MUX_MODE9       9
19
20 #define PULL_DISABLE            (1 << 16)
21 #define PULL_UP                 (1 << 17)
22 #define INPUT_EN                (1 << 18)
23 #define SLEWCTRL_SLOW           (1 << 19)
24 #define SLEWCTRL_FAST           0
25 #define DS0_FORCE_OFF_MODE      (1 << 24)
26 #define DS0_INPUT               (1 << 25)
27 #define DS0_FORCE_OUT_HIGH      (1 << 26)
28 #define DS0_PULL_UP_DOWN_EN     (0 << 27)
29 #define DS0_PULL_UP_DOWN_DIS    (1 << 27)
30 #define DS0_PULL_UP_SEL         (1 << 28)
31 #define WAKEUP_ENABLE           (1 << 29)
32
33 #define DS0_PIN_OUTPUT          (DS0_FORCE_OFF_MODE)
34 #define DS0_PIN_OUTPUT_HIGH     (DS0_FORCE_OFF_MODE | DS0_FORCE_OUT_HIGH)
35 #define DS0_PIN_OUTPUT_PULLUP   (DS0_FORCE_OFF_MODE | DS0_PULL_UP_DOWN_EN | DS0_PULL_UP_SEL)
36 #define DS0_PIN_OUTPUT_PULLDOWN (DS0_FORCE_OFF_MODE | DS0_PULL_UP_DOWN_EN)
37 #define DS0_PIN_INPUT           (DS0_FORCE_OFF_MODE | DS0_INPUT)
38 #define DS0_PIN_INPUT_PULLUP    (DS0_FORCE_OFF_MODE | DS0_INPUT | DS0_PULL_UP_DOWN_EN | DS0_PULL_UP_SEL)
39 #define DS0_PIN_INPUT_PULLDOWN  (DS0_FORCE_OFF_MODE | DS0_INPUT | DS0_PULL_UP_DOWN_EN)
40
41 #define PIN_OUTPUT              (PULL_DISABLE)
42 #define PIN_OUTPUT_PULLUP       (PULL_UP)
43 #define PIN_OUTPUT_PULLDOWN     0
44 #define PIN_INPUT               (INPUT_EN | PULL_DISABLE)
45 #define PIN_INPUT_PULLUP        (INPUT_EN | PULL_UP)
46 #define PIN_INPUT_PULLDOWN      (INPUT_EN)
47
48 /*
49  * Macro to allow using the absolute physical address instead of the
50  * padconf registers instead of the offset from padconf base.
51  */
52 #define AM4372_IOPAD(pa, val)   (((pa) & 0xffff) - 0x0800) (val)
53
54 #endif
55