ARM: dts: Add pinctrl macros for dm814x

Let's add the DM814X_IOPAD macro the same way as we have for dm816x and
am33xx as this allows comparing the registers with the documentation easily.
The pinctrl bits are yet again different on dm814x.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
Tony Lindgren 2015-12-22 16:00:33 -08:00
parent 124bfc66c5
commit b4d6df2a23
3 changed files with 50 additions and 1 deletions

View File

@ -5,7 +5,7 @@
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/omap.h>
#include <dt-bindings/pinctrl/dm814x.h>
#include "skeleton.dtsi"

View File

@ -0,0 +1,48 @@
/*
* This header provides constants specific to DM814X pinctrl bindings.
*/
#ifndef _DT_BINDINGS_PINCTRL_DM814X_H
#define _DT_BINDINGS_PINCTRL_DM814X_H
#include <dt-bindings/pinctrl/omap.h>
#undef INPUT_EN
#undef PULL_UP
#undef PULL_ENA
/*
* Note that dm814x silicon revision 2.1 and older require input enabled
* (bit 18 set) for all 3.3V I/Os to avoid cumulative hardware damage. For
* more info, see errata advisory 2.1.87. We leave bit 18 out of
* function-mask in dm814x.h and rely on the bootloader for it.
*/
#define INPUT_EN (1 << 18)
#define PULL_UP (1 << 17)
#define PULL_DISABLE (1 << 16)
/* update macro depending on INPUT_EN and PULL_ENA */
#undef PIN_OUTPUT
#undef PIN_OUTPUT_PULLUP
#undef PIN_OUTPUT_PULLDOWN
#undef PIN_INPUT
#undef PIN_INPUT_PULLUP
#undef PIN_INPUT_PULLDOWN
#define PIN_OUTPUT (PULL_DISABLE)
#define PIN_OUTPUT_PULLUP (PULL_UP)
#define PIN_OUTPUT_PULLDOWN 0
#define PIN_INPUT (INPUT_EN | PULL_DISABLE)
#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP)
#define PIN_INPUT_PULLDOWN (INPUT_EN)
/* undef non-existing modes */
#undef PIN_OFF_NONE
#undef PIN_OFF_OUTPUT_HIGH
#undef PIN_OFF_OUTPUT_LOW
#undef PIN_OFF_INPUT_PULLUP
#undef PIN_OFF_INPUT_PULLDOWN
#undef PIN_OFF_WAKEUPENABLE
#endif

View File

@ -61,6 +61,7 @@
#define OMAP3430_CORE2_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x25d8) (val)
#define OMAP3630_CORE2_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x25a0) (val)
#define OMAP3_WKUP_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x2a00) (val)
#define DM814X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
#define DM816X_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
#define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
#define AM4372_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)