blob: 0f484273da0de43aaee899316c6a2e63f7dda15f [file] [log] [blame]
Tony Lindgrenb4d6df22015-12-22 16:00:33 -08001/*
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