Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * This header provides constants for OMAP pinctrl bindings.
0004  *
0005  * Copyright (C) 2009 Nokia
0006  * Copyright (C) 2009-2010 Texas Instruments
0007  */
0008 
0009 #ifndef _DT_BINDINGS_PINCTRL_OMAP_H
0010 #define _DT_BINDINGS_PINCTRL_OMAP_H
0011 
0012 /* 34xx mux mode options for each pin. See TRM for options */
0013 #define MUX_MODE0   0
0014 #define MUX_MODE1   1
0015 #define MUX_MODE2   2
0016 #define MUX_MODE3   3
0017 #define MUX_MODE4   4
0018 #define MUX_MODE5   5
0019 #define MUX_MODE6   6
0020 #define MUX_MODE7   7
0021 
0022 /* 24xx/34xx mux bit defines */
0023 #define PULL_ENA        (1 << 3)
0024 #define PULL_UP         (1 << 4)
0025 #define ALTELECTRICALSEL    (1 << 5)
0026 
0027 /* omap3/4/5 specific mux bit defines */
0028 #define INPUT_EN        (1 << 8)
0029 #define OFF_EN          (1 << 9)
0030 #define OFFOUT_EN       (1 << 10)
0031 #define OFFOUT_VAL      (1 << 11)
0032 #define OFF_PULL_EN     (1 << 12)
0033 #define OFF_PULL_UP     (1 << 13)
0034 #define WAKEUP_EN       (1 << 14)
0035 #define WAKEUP_EVENT        (1 << 15)
0036 
0037 /* Active pin states */
0038 #define PIN_OUTPUT      0
0039 #define PIN_OUTPUT_PULLUP   (PIN_OUTPUT | PULL_ENA | PULL_UP)
0040 #define PIN_OUTPUT_PULLDOWN (PIN_OUTPUT | PULL_ENA)
0041 #define PIN_INPUT       INPUT_EN
0042 #define PIN_INPUT_PULLUP    (PULL_ENA | INPUT_EN | PULL_UP)
0043 #define PIN_INPUT_PULLDOWN  (PULL_ENA | INPUT_EN)
0044 
0045 /* Off mode states */
0046 #define PIN_OFF_NONE        0
0047 #define PIN_OFF_OUTPUT_HIGH (OFF_EN | OFFOUT_EN | OFFOUT_VAL)
0048 #define PIN_OFF_OUTPUT_LOW  (OFF_EN | OFFOUT_EN)
0049 #define PIN_OFF_INPUT_PULLUP    (OFF_EN | OFFOUT_EN | OFF_PULL_EN | OFF_PULL_UP)
0050 #define PIN_OFF_INPUT_PULLDOWN  (OFF_EN | OFFOUT_EN | OFF_PULL_EN)
0051 #define PIN_OFF_WAKEUPENABLE    WAKEUP_EN
0052 
0053 /*
0054  * Macros to allow using the absolute physical address instead of the
0055  * padconf registers instead of the offset from padconf base.
0056  */
0057 #define OMAP_IOPAD_OFFSET(pa, offset)   (((pa) & 0xffff) - (offset))
0058 
0059 #define OMAP2420_CORE_IOPAD(pa, val)    OMAP_IOPAD_OFFSET((pa), 0x0030) (val)
0060 #define OMAP2430_CORE_IOPAD(pa, val)    OMAP_IOPAD_OFFSET((pa), 0x2030) (val)
0061 #define OMAP3_CORE1_IOPAD(pa, val)  OMAP_IOPAD_OFFSET((pa), 0x2030) (val)
0062 #define OMAP3430_CORE2_IOPAD(pa, val)   OMAP_IOPAD_OFFSET((pa), 0x25d8) (val)
0063 #define OMAP3630_CORE2_IOPAD(pa, val)   OMAP_IOPAD_OFFSET((pa), 0x25a0) (val)
0064 #define OMAP3_WKUP_IOPAD(pa, val)   OMAP_IOPAD_OFFSET((pa), 0x2a00) (val)
0065 #define DM814X_IOPAD(pa, val)       OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
0066 #define DM816X_IOPAD(pa, val)       OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
0067 #define AM33XX_IOPAD(pa, val)       OMAP_IOPAD_OFFSET((pa), 0x0800) (val) (0)
0068 #define AM33XX_PADCONF(pa, conf, mux)   OMAP_IOPAD_OFFSET((pa), 0x0800) (conf) (mux)
0069 
0070 /*
0071  * Macros to allow using the offset from the padconf physical address
0072  * instead  of the offset from padconf base.
0073  */
0074 #define OMAP_PADCONF_OFFSET(offset, base_offset)    ((offset) - (base_offset))
0075 
0076 #define OMAP4_IOPAD(offset, val)    OMAP_PADCONF_OFFSET((offset), 0x0040) (val)
0077 #define OMAP5_IOPAD(offset, val)    OMAP_PADCONF_OFFSET((offset), 0x0040) (val)
0078 
0079 /*
0080  * Define some commonly used pins configured by the boards.
0081  * Note that some boards use alternative pins, so check
0082  * the schematics before using these.
0083  */
0084 #define OMAP3_UART1_RX      0x152
0085 #define OMAP3_UART2_RX      0x14a
0086 #define OMAP3_UART3_RX      0x16e
0087 #define OMAP4_UART2_RX      0xdc
0088 #define OMAP4_UART3_RX      0x104
0089 #define OMAP4_UART4_RX      0x11c
0090 
0091 #endif
0092