root/sys/arch/arm/nvidia/tegra_mpioreg.h
/* $NetBSD: tegra_mpioreg.h,v 1.1 2015/05/07 23:55:11 jmcneill Exp $ */

/*-
 * Copyright (c) 2015 Jared D. McNeill <jmcneill@invisible.ca>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifndef _ARM_TEGRA_MPIOREG_H
#define _ARM_TEGRA_MPIOREG_H

#define PADGRP_GMACFG_REG                       0x0900
#define PADGRP_SDIO1CFG_REG                     0x08ec
#define PADGRP_SDIO3CFG_REG                     0x08b0
#define PADGRP_SDIO4CFG_REG                     0x09c4
#define PADGRP_AOCFG0_REG                       0x09b0
#define PADGRP_AOCFG1_REG                       0x0868
#define PADGRP_AOCFG2_REG                       0x086c
#define PADGRP_AOCFG3_REG                       0x09a8
#define PADGRP_AOCFG4_REG                       0x09c8
#define PADGRP_CDEV1CFG_REG                     0x0884
#define PADGRP_CDEV2CFG_REG                     0x0888
#define PADGRP_CECCFG_REG                       0x0938
#define PADGRP_DAP1CFG_REG                      0x0890
#define PADGRP_DAP2CFG_REG                      0x0898
#define PADGRP_DAP3CFG_REG                      0x0890
#define PADGRP_DAP4CFG_REG                      0x089c
#define PADGRP_DAP5CFG_REG                      0x0998
#define PADGRP_DBGCFG_REG                       0x08a0
#define PADGRP_DDCCFG_REG                       0x08fc
#define PADGRP_DEV3CFG_REG                      0x092c
#define PADGRP_OWRCFG_REG                       0x0920
#define PADGRP_SPICFG_REG                       0x08b4
#define PADGRP_UAACFG_REG                       0x08b8
#define PADGRP_UABCFG_REG                       0x08bc
#define PADGRP_UART2CFG_REG                     0x08c0
#define PADGRP_UART3CFG_REG                     0x08c4
#define PADGRP_UDACFG_REG                       0x0924
#define PADGRP_ATCFG1_REG                       0x0870
#define PADGRP_ATCFG2_REG                       0x0874
#define PADGRP_ATCFG3_REG                       0x0878
#define PADGRP_ATCFG4_REG                       0x087c
#define PADGRP_ATCFG5_REG                       0x0880
#define PADGRP_ATCFG6_REG                       0x0894
#define PADGRP_GMECFG_REG                       0x0910
#define PADGRP_GMFCFG_REG                       0x0914
#define PADGRP_GMGCFG_REG                       0x0918
#define PADGRP_GMHCFG_REG                       0x091c
#define PADGRP_HVCFG0_REG                       0x09b4
#define PADGRP_GPVCFG_REG                       0x0928
#define PADGRP_USB_VBUS_EN_CFG_REG              0x099c

#define PINMUX_AUX_ULPI_DATA0_REG               0x3000
#define PINMUX_AUX_ULPI_DATA1_REG               0x3004
#define PINMUX_AUX_ULPI_DATA2_REG               0x3008
#define PINMUX_AUX_ULPI_DATA3_REG               0x300c
#define PINMUX_AUX_ULPI_DATA4_REG               0x3010
#define PINMUX_AUX_ULPI_DATA5_REG               0x3014
#define PINMUX_AUX_ULPI_DATA6_REG               0x3018
#define PINMUX_AUX_ULPI_DATA7_REG               0x301c
#define PINMUX_AUX_ULPI_CLK_REG                 0x3020
#define PINMUX_AUX_ULPI_DIR_REG                 0x3024
#define PINMUX_AUX_ULPI_NXT_REG                 0x3028
#define PINMUX_AUX_ULPI_STP_REG                 0x302c
#define PINMUX_AUX_DAP3_FS_REG                  0x3030
#define PINMUX_AUX_DAP3_DIN_REG                 0x3034
#define PINMUX_AUX_DAP3_DOUT_REG                0x3038
#define PINMUX_AUX_DAP3_SCLK_REG                0x303c
#define PINMUX_AUX_GPIO_PV0_REG                 0x3040
#define PINMUX_AUX_GPIO_PV1_REG                 0x3044
#define PINMUX_AUX_SDMMC1_CLK_REG               0x3048
#define PINMUX_AUX_SDMMC1_CMD_REG               0x304c
#define PINMUX_AUX_SDMMC1_DAT3_REG              0x3050
#define PINMUX_AUX_SDMMC1_DAT2_REG              0x3054
#define PINMUX_AUX_SDMMC1_DAT1_REG              0x3058
#define PINMUX_AUX_SDMMC1_DAT0_REG              0x305c
#define PINMUX_AUX_CLK2_OUT_REG                 0x3068
#define PINMUX_AUX_CLK2_REQ_REG                 0x306c
#define PINMUX_AUX_HDMI_INT_REG                 0x3110
#define PINMUX_AUX_DDC_SCL_REG                  0x3114
#define PINMUX_AUX_DDC_SDA_REG                  0x3118
#define PINMUX_AUX_UART2_RXD_REG                0x3164
#define PINMUX_AUX_UART2_TXD_REG                0x3168
#define PINMUX_AUX_UART2_RTS_N_REG              0x316c
#define PINMUX_AUX_UART2_CTS_N_REG              0x3170
#define PINMUX_AUX_UART3_TXD_REG                0x3174
#define PINMUX_AUX_UART3_RXD_REG                0x3178
#define PINMUX_AUX_UART3_CTS_N_REG              0x317c
#define PINMUX_AUX_UART3_RTS_N_REG              0x3180
#define PINMUX_AUX_GPIO_PU0_REG                 0x3184
#define PINMUX_AUX_GPIO_PU1_REG                 0x3188
#define PINMUX_AUX_GPIO_PU2_REG                 0x318c
#define PINMUX_AUX_GPIO_PU3_REG                 0x3190
#define PINMUX_AUX_GPIO_PU4_REG                 0x3194
#define PINMUX_AUX_GPIO_PU5_REG                 0x3198
#define PINMUX_AUX_GPIO_PU6_REG                 0x319c
#define PINMUX_AUX_GEN1_I2C_SDA_REG             0x31a0
#define PINMUX_AUX_GEN1_I2C_SCL_REG             0x31a4
#define PINMUX_AUX_DAP4_FS_REG                  0x31a8
#define PINMUX_AUX_DAP4_DIN_REG                 0x31ac
#define PINMUX_AUX_DAP4_DOUT_REG                0x31b0
#define PINMUX_AUX_DAP4_SCLK_REG                0x31b4
#define PINMUX_AUX_CLK3_OUT_REG                 0x31b8
#define PINMUX_AUX_CLK3_REQ_REG                 0x31bc
#define PINMUX_AUX_GPIO_PC7_REG                 0x31c0
#define PINMUX_AUX_GPIO_PI5_REG                 0x31c4
#define PINMUX_AUX_GPIO_PI7_REG                 0x31c8
#define PINMUX_AUX_GPIO_PK0_REG                 0x31cc
#define PINMUX_AUX_GPIO_PK1_REG                 0x31d0
#define PINMUX_AUX_GPIO_PJ0_REG                 0x31d4
#define PINMUX_AUX_GPIO_PJ2_REG                 0x31d8
#define PINMUX_AUX_GPIO_PK3_REG                 0x31dc
#define PINMUX_AUX_GPIO_PK4_REG                 0x31e0
#define PINMUX_AUX_GPIO_PK2_REG                 0x31e4
#define PINMUX_AUX_GPIO_PI3_REG                 0x31e8
#define PINMUX_AUX_GPIO_PI6_REG                 0x31ec
#define PINMUX_AUX_GPIO_PG0_REG                 0x31f0
#define PINMUX_AUX_GPIO_PG1_REG                 0x31f4
#define PINMUX_AUX_GPIO_PG2_REG                 0x31f8
#define PINMUX_AUX_GPIO_PG3_REG                 0x31fc
#define PINMUX_AUX_GPIO_PG4_REG                 0x3200
#define PINMUX_AUX_GPIO_PG5_REG                 0x3204
#define PINMUX_AUX_GPIO_PG6_REG                 0x3208
#define PINMUX_AUX_GPIO_PG7_REG                 0x320c
#define PINMUX_AUX_GPIO_PH0_REG                 0x3210
#define PINMUX_AUX_GPIO_PH1_REG                 0x3214
#define PINMUX_AUX_GPIO_PH2_REG                 0x3218
#define PINMUX_AUX_GPIO_PH3_REG                 0x321c
#define PINMUX_AUX_GPIO_PH4_REG                 0x3220
#define PINMUX_AUX_GPIO_PH5_REG                 0x3224
#define PINMUX_AUX_GPIO_PH6_REG                 0x3228
#define PINMUX_AUX_GPIO_PH7_REG                 0x322c
#define PINMUX_AUX_GPIO_PJ7_REG                 0x3230
#define PINMUX_AUX_GPIO_PB0_REG                 0x3234
#define PINMUX_AUX_GPIO_PB1_REG                 0x3238
#define PINMUX_AUX_GPIO_PK7_REG                 0x323c
#define PINMUX_AUX_GPIO_PI0_REG                 0x3240
#define PINMUX_AUX_GPIO_PI1_REG                 0x3244
#define PINMUX_AUX_GPIO_PI2_REG                 0x3248
#define PINMUX_AUX_GPIO_PI4_REG                 0x324c
#define PINMUX_AUX_GEN2_I2C_SCL_REG             0x3250
#define PINMUX_AUX_GEN2_I2C_SDA_REG             0x3254
#define PINMUX_AUX_SDMMC4_CLK_REG               0x3258
#define PINMUX_AUX_SDMMC4_CMD_REG               0x325c
#define PINMUX_AUX_SDMMC4_DAT0_REG              0x3260
#define PINMUX_AUX_SDMMC4_DAT1_REG              0x3264
#define PINMUX_AUX_SDMMC4_DAT2_REG              0x3268
#define PINMUX_AUX_SDMMC4_DAT3_REG              0x326c
#define PINMUX_AUX_SDMMC4_DAT4_REG              0x3270
#define PINMUX_AUX_SDMMC4_DAT5_REG              0x3274
#define PINMUX_AUX_SDMMC4_DAT6_REG              0x3278
#define PINMUX_AUX_SDMMC4_DAT7_REG              0x327c
#define PINMUX_AUX_CAM_MCLK_REG                 0x3284
#define PINMUX_AUX_GPIO_PCC1_REG                0x3288
#define PINMUX_AUX_GPIO_PBB0_REG                0x328c
#define PINMUX_AUX_CAM_I2C_SCL_REG              0x3290
#define PINMUX_AUX_CAM_I2C_SDA_REG              0x3294
#define PINMUX_AUX_GPIO_PBB3_REG                0x3298
#define PINMUX_AUX_GPIO_PBB4_REG                0x329c
#define PINMUX_AUX_GPIO_PBB5_REG                0x32a0
#define PINMUX_AUX_GPIO_PBB6_REG                0x32a4
#define PINMUX_AUX_GPIO_PBB7_REG                0x32a8
#define PINMUX_AUX_GPIO_PCC2_REG                0x32ac
#define PINMUX_AUX_JTAG_RTCK_REG                0x32b0
#define PINMUX_AUX_PWR_I2C_SCL_REG              0x32b4
#define PINMUX_AUX_PWR_I2C_SDA_REG              0x32b8
#define PINMUX_AUX_KB_ROW0_REG                  0x32bc
#define PINMUX_AUX_KB_ROW1_REG                  0x32c0
#define PINMUX_AUX_KB_ROW2_REG                  0x32c4
#define PINMUX_AUX_KB_ROW3_REG                  0x32c8
#define PINMUX_AUX_KB_ROW4_REG                  0x32cc
#define PINMUX_AUX_KB_ROW5_REG                  0x32d0
#define PINMUX_AUX_KB_ROW6_REG                  0x32d4
#define PINMUX_AUX_KB_ROW7_REG                  0x32d8
#define PINMUX_AUX_KB_ROW8_REG                  0x32dc
#define PINMUX_AUX_KB_ROW9_REG                  0x32e0
#define PINMUX_AUX_KB_ROW10_REG                 0x32e4
#define PINMUX_AUX_KB_ROW11_REG                 0x32e8
#define PINMUX_AUX_KB_ROW12_REG                 0x32ec
#define PINMUX_AUX_KB_ROW13_REG                 0x32f0
#define PINMUX_AUX_KB_ROW14_REG                 0x32f4
#define PINMUX_AUX_KB_ROW15_REG                 0x32f8
#define PINMUX_AUX_KB_COL0_REG                  0x32fc
#define PINMUX_AUX_KB_COL1_REG                  0x3300
#define PINMUX_AUX_KB_COL2_REG                  0x3304
#define PINMUX_AUX_KB_COL3_REG                  0x3308
#define PINMUX_AUX_KB_COL4_REG                  0x330c
#define PINMUX_AUX_KB_COL5_REG                  0x3310
#define PINMUX_AUX_KB_COL6_REG                  0x3314
#define PINMUX_AUX_KB_COL7_REG                  0x3318
#define PINMUX_AUX_CLK_32K_OUT_REG              0x331c
#define PINMUX_AUX_CORE_PWR_REQ_REG             0x3324
#define PINMUX_AUX_CPU_PWR_REQ_REG              0x3328
#define PINMUX_AUX_PWR_INT_N_REG                0x332c
#define PINMUX_AUX_CLK_32K_IN_REG               0x3330
#define PINMUX_AUX_OWR_REG                      0x3334
#define PINMUX_AUX_DAP1_FS_REG                  0x3338
#define PINMUX_AUX_DAP1_DIN_REG                 0x333c
#define PINMUX_AUX_DAP1_DOUT_REG                0x3340
#define PINMUX_AUX_DAP1_SCLK_REG                0x3344
#define PINMUX_AUX_DAP_MCLK1_REQ_REG            0x3348
#define PINMUX_AUX_DAP_MCLK1_REG                0x334c
#define PINMUX_AUX_SPDIF_IN_REG                 0x3350
#define PINMUX_AUX_SPDIF_OUT_REG                0x3354
#define PINMUX_AUX_DAP2_FS_REG                  0x3358
#define PINMUX_AUX_DAP2_DIN_REG                 0x335c
#define PINMUX_AUX_DAP2_DOUT_REG                0x3360
#define PINMUX_AUX_DAP2_SCLK_REG                0x3364
#define PINMUX_AUX_DVFS_PWM_REG                 0x3368
#define PINMUX_AUX_GPIO_X1_AUD_REG              0x336c
#define PINMUX_AUX_GPIO_X3_AUD_REG              0x3370
#define PINMUX_AUX_DVFS_CLK_REG                 0x3374
#define PINMUX_AUX_GPIO_X4_AUD_REG              0x3378
#define PINMUX_AUX_GPIO_X5_AUD_REG              0x337c
#define PINMUX_AUX_GPIO_X6_AUD_REG              0x3380
#define PINMUX_AUX_GPIO_X7_AUD_REG              0x3384
#define PINMUX_AUX_SDMMC3_CLK_REG               0x3390
#define PINMUX_AUX_SDMMC3_CMD_REG               0x3394
#define PINMUX_AUX_SDMMC3_DAT0_REG              0x3398
#define PINMUX_AUX_SDMMC3_DAT1_REG              0x339c
#define PINMUX_AUX_SDMMC3_DAT2_REG              0x33a0
#define PINMUX_AUX_SDMMC3_DAT3_REG              0x33a4
#define PINMUX_AUX_PEX_L0_RST_N_REG             0x33bc
#define PINMUX_AUX_PEX_L0_CLKREQ_N_REG          0x33c0
#define PINMUX_AUX_PEX_WAKE_N_REG               0x33c4
#define PINMUX_AUX_PEX_L1_RST_N_REG             0x33cc
#define PINMUX_AUX_PEX_L1_CLKREQ_N_REG          0x33d0
#define PINMUX_AUX_HDMI_CEC_REG                 0x33e0
#define PINMUX_AUX_SDMMC1_WP_N_REG              0x33e4
#define PINMUX_AUX_SDMMC3_CD_N_REG              0x33e8
#define PINMUX_AUX_GPIO_W2_AUD_REG              0x33ec
#define PINMUX_AUX_GPIO_W3_AUD_REG              0x33f0
#define PINMUX_AUX_USB_VBUS_EN0_REG             0x33f4
#define PINMUX_AUX_USB_VBUS_EN1_REG             0x33f8
#define PINMUX_AUX_SDMMC3_CLK_LB_IN_REG         0x33fc
#define PINMUX_AUX_SDMMC3_CLK_LB_OUT_REG        0x3400
#define PINMUX_AUX_GMI_CLK_LB_REG               0x3404
#define PINMUX_AUX_RESET_OUT_N_REG              0x3408
#define PINMUX_AUX_KB_ROW16_REG                 0x340c
#define PINMUX_AUX_KB_ROW17_REG                 0x3410
#define PINMUX_AUX_USB_VBUS_EN2_REG             0x3414
#define PINMUX_AUX_GPIO_PFF2_REG                0x3418
#define PINMUX_AUX_DP_HPD_REG                   0x3430

#define PINMUX_AUX_RCV_SEL                      __BIT(9)
#define PINMUX_AUX_IO_RESET                     __BIT(8)
#define PINMUX_AUX_LOCK                         __BIT(7)
#define PINMUX_AUX_OD                           __BIT(6)
#define PINMUX_AUX_E_INPUT                      __BIT(5)
#define PINMUX_AUX_TRISTATE                     __BIT(4)
#define PINMUX_AUX_PUPD                         __BITS(3,2)
#define PINMUX_AUX_PUPD_NORMAL                  0
#define PINMUX_AUX_PUPD_PULL_DOWN               1
#define PINMUX_AUX_PUPD_PULL_UP                 2
#define PINMUX_AUX_PM                           __BITS(1,0)

#endif /* _ARM_TEGRA_MPIOREG_H */