1/*
2 * This header provides constants specific to DM814X pinctrl bindings.
3 */
4
5#ifndef _DT_BINDINGS_PINCTRL_DM814X_H
6#define _DT_BINDINGS_PINCTRL_DM814X_H
7
8#include <dt-bindings/pinctrl/omap.h>
9
10#undef INPUT_EN
11#undef PULL_UP
12#undef PULL_ENA
13
14/*
15 * Note that dm814x silicon revision 2.1 and older require input enabled
16 * (bit 18 set) for all 3.3V I/Os to avoid cumulative hardware damage. For
17 * more info, see errata advisory 2.1.87. We leave bit 18 out of
18 * function-mask in dm814x.h and rely on the bootloader for it.
19 */
20#define INPUT_EN		(1 << 18)
21#define PULL_UP			(1 << 17)
22#define PULL_DISABLE		(1 << 16)
23
24/* update macro depending on INPUT_EN and PULL_ENA */
25#undef PIN_OUTPUT
26#undef PIN_OUTPUT_PULLUP
27#undef PIN_OUTPUT_PULLDOWN
28#undef PIN_INPUT
29#undef PIN_INPUT_PULLUP
30#undef PIN_INPUT_PULLDOWN
31
32#define PIN_OUTPUT		(PULL_DISABLE)
33#define PIN_OUTPUT_PULLUP	(PULL_UP)
34#define PIN_OUTPUT_PULLDOWN	0
35#define PIN_INPUT		(INPUT_EN | PULL_DISABLE)
36#define PIN_INPUT_PULLUP	(INPUT_EN | PULL_UP)
37#define PIN_INPUT_PULLDOWN	(INPUT_EN)
38
39/* undef non-existing modes */
40#undef PIN_OFF_NONE
41#undef PIN_OFF_OUTPUT_HIGH
42#undef PIN_OFF_OUTPUT_LOW
43#undef PIN_OFF_INPUT_PULLUP
44#undef PIN_OFF_INPUT_PULLDOWN
45#undef PIN_OFF_WAKEUPENABLE
46
47#endif
48
49