iBoot/target/e88/pinconfig.c

581 lines
25 KiB
C

/*
* Copyright (C) 2014 Apple Inc. All rights reserved.
*
* This document is the property of Apple Inc.
* It is considered confidential and proprietary.
*
* This document may not be reproduced or transmitted in any form,
* in whole or in part, without the express written permission of
* Apple Inc.
*/
/* THIS FILE IS AUTOMATICALLY GENERATED BY tools/csvtopinconfig.py. DO NOT EDIT!
I/O Spreadsheet version: rev 0v4
I/O Spreadsheet tracker: <rdar://problem/19464609> E88: IO Spreadsheet Tracker
Conversion command: csvtopinconfig.py --soc h4a --radar '<rdar://problem/19464609> E88: IO Spreadsheet Tracker' --copyright 2014 <filename>
*/
#include <debug.h>
#include <drivers/apple/gpio.h>
#include <platform.h>
#include <platform/soc/hwregbase.h>
#include <stdint.h>
static const uint32_t pinconfig_ap_0[GPIO_GROUP_COUNT * GPIOPADPINS] = {
/* Port 0 */
CFG_IN | PULL_UP, // 0 : GPIO[0] -> MENU_KEY_L
CFG_IN | PULL_UP, // 1 : GPIO[1] -> HOLD_KEY_L
CFG_IN | PULL_UP, // 2 : GPIO[2] -> VOL_UP_L
CFG_IN | PULL_UP, // 3 : GPIO[3] -> VOL_DWN_L
CFG_OUT_1, // 4 : GPIO[4] -> ACC_UHPM_EN
CFG_DISABLED | PULL_DOWN, // 5 : GPIO[5] -> NC
CFG_DISABLED | PULL_DOWN, // 6 : GPIO[6] -> NC
CFG_OUT_0 | PULL_DOWN, // 7 : GPIO[7] -> BT_WAKE
/* Port 1 */
CFG_OUT_0, // 8 : GPIO[8] -> WLAN_HSIC_AP_RDY
CFG_IN | PULL_DOWN, // 9 : GPIO[9] -> WLAN_HSIC_DEV_RDY
CFG_DISABLED, // 10 : GPIO[10] -> NC
CFG_DISABLED, // 11 : GPIO[11] -> NC
CFG_OUT_0, // 12 : GPIO[12] -> EN_8VBOOST
CFG_IN | PULL_UP, // 13 : GPIO[13] -> PMU_IRQ_L
CFG_OUT_0, // 14 : GPIO[14] -> WLAN_HSIC_RESUME
CFG_OUT_1, // 15 : GPIO[15] -> SNAP_MCU_RESET_L
/* Port 2 */
CFG_IN, // 16 : GPIO[16] -> BRD_ID3
CFG_IN, // 17 : GPIO[17] -> BRD_REV3
CFG_IN | PULL_DOWN, // 18 : GPIO[18] -> BOOT_CFG0
CFG_OUT_0, // 19 : GPIO[19] -> KEEPACTIVE
CFG_IN, // 20 : GPIO[20] -> TRISTAR_INT
CFG_IN | PULL_UP, // 21 : GPIO[21] -> SNAP_INT_L
CFG_OUT_0 | PULL_DOWN, // 22 : GPIO[22] -> SNAP_ID0
CFG_IN | PULL_DOWN, // 23 : GPIO[23] -> SNAP_ID1
/* Port 3 */
CFG_OUT_0 | PULL_DOWN, // 24 : GPIO[24] -> PS_5VBOOST_L
CFG_IN | PULL_DOWN, // 25 : GPIO[25] -> BOOT_CFG1
CFG_IN | PULL_DOWN, // 26 : GPIO[26] -> FORCE_DFU
CFG_OUT_0, // 27 : GPIO[27] -> DUT_DFU_STATUS
CFG_IN, // 28 : GPIO[28] -> BOOT_CFG2
CFG_IN, // 29 : GPIO[29] -> BOOT_CFG3
CFG_OUT_0 | PULL_DOWN, // 30 : GPIO[30] -> CODEC_RESET_L
CFG_IN, // 31 : GPIO[31] -> VBUS_FAULT_L
/* Port 4 */
CFG_OUT_0, // 32 : GPIO[32] -> USB_SW_EN
CFG_IN | PULL_DOWN, // 33 : GPIO[33] -> GYRO_INT1
CFG_IN, // 34 : GPIO[34] -> ACC_UHPM_POK
CFG_OUT_1, // 35 : GPIO[35] -> EN_5VBOOST
CFG_IN, // 36 : GPIO[36] -> ACCEL_INT2_L
CFG_IN, // 37 : EHCI_PORT_PWR[0] -> BRD_REV[0]
CFG_IN, // 38 : EHCI_PORT_PWR[1] -> BRD_REV[1]
CFG_IN, // 39 : EHCI_PORT_PWR[2] -> BRD_REV[2]
/* Port 5 */
CFG_FUNC0, // 40 : UART1_TXD -> AP_DBG_UART_TXD
CFG_FUNC0, // 41 : UART1_RXD -> AP_DBG_UART_RXD
CFG_DISABLED | PULL_DOWN, // 42 : UART1_RTSN -> NC
CFG_IN, // 43 : UART1_CTSN -> SNAP_DET_L
CFG_FUNC0, // 44 : UART2_TXD -> ACC_UART_TXD
CFG_FUNC0, // 45 : UART2_RXD -> ACC_UART_RXD
CFG_DISABLED | PULL_DOWN, // 46 : UART2_RTSN -> NC
CFG_OUT_1, // 47 : UART2_CTSN -> USB_HUB_RST_L
/* Port 6 */
CFG_FUNC0, // 48 : UART3_TXD -> BT_UART_RXD
CFG_FUNC0, // 49 : UART3_RXD -> BT_UART_TXD
CFG_FUNC0, // 50 : UART3_RTSN -> BT_UART_CTS_L
CFG_FUNC0, // 51 : UART3_CTSN -> BT_UART_RTS_L
CFG_FUNC0, // 52 : I2C0_SDA -> I2C0_SDA_1V8
CFG_FUNC0, // 53 : I2C0_SCL -> I2C0_SCL_1V8
CFG_FUNC0, // 54 : I2C1_SDA -> SNAP_I2C_SDA
CFG_FUNC0, // 55 : I2C1_SCL -> SNAP_I2C_SCL
/* Port 7 */
CFG_FUNC0, // 56 : ISP0_SDA -> I2C_CAM_REAR_SDA_1V8
CFG_FUNC0, // 57 : ISP0_SCL -> I2C_CAM_REAR_SCL_1V8
CFG_DISABLED | PULL_DOWN, // 58 : ISP1_SDA -> NC
CFG_DISABLED | PULL_DOWN, // 59 : ISP1_SCL -> NC
CFG_FUNC0 | PULL_DOWN, // 60 : MIPI_VSYNC -> SNAP_MIPI_VSYNC
CFG_FUNC0 | PULL_DOWN, // 61 : TMR32_PWM0 -> GYRO_INT2
CFG_FUNC0 | PULL_DOWN, // 62 : TMR32_PWM1 -> ACCEL_INT1_L
CFG_FUNC0, // 63 : TMR32_PWM2 -> WLAN_TIMESYNC
/* Port 8 */
CFG_DISABLED, // 64 : SWI_DATA -> NC
CFG_FUNC0, // 65 : DWI_DI -> DWI_AP_DI
CFG_FUNC0, // 66 : DWI_DO -> DWI_AP_DO
CFG_FUNC0, // 67 : DWI_CLK -> DWI_AP_CLK
CFG_OUT_0, // 68 : SENSOR0_RST -> CAM_REAR_SHUTDOWN_L
CFG_FUNC0, // 69 : SENSOR0_CLK -> CAM_REAR_CLK
CFG_DISABLED | PULL_DOWN, // 70 : SENSOR1_RST -> NC
CFG_DISABLED | PULL_DOWN, // 71 : SENSOR1_CLK -> NC
/* Port 9 */
CFG_DISABLED | PULL_DOWN, // 72 : ISP0_PRE_FLASH -> NC
CFG_DISABLED | PULL_DOWN, // 73 : ISP0_FLASH -> NC
CFG_DISABLED, // 74 : ISP1_PRE_FLASH -> NC
CFG_DISABLED, // 75 : ISP1_FLASH -> NC
CFG_FUNC0, // 76 : I2S0_MCK -> CODEC_MCLK
CFG_FUNC0, // 77 : I2S0_LRCK -> CODEC_LRCLK
CFG_FUNC0, // 78 : I2S0_BCLK -> CODEC_BCLK
CFG_DISABLED | PULL_DOWN, // 79 : I2S0_DOUT -> NC
/* Port 10 */
CFG_FUNC0, // 80 : I2S0_DIN -> CODEC_TO_DUT_DIN
CFG_DISABLED, // 81 : I2S1_MCK -> NC
CFG_FUNC0, // 82 : I2S1_LRCK -> BT_PCM_SYNC
CFG_FUNC0, // 83 : I2S1_BCLK -> BT_PCM_CLK
CFG_FUNC0, // 84 : I2S1_DOUT -> BT_PCM_IN
CFG_FUNC0, // 85 : I2S1_DIN -> BT_PCM_OUT
CFG_DISABLED, // 86 : I2S2_MCK -> NC
CFG_FUNC0, // 87 : I2S2_LRCK -> SPKR_AMP_MCA_FSYNC
/* Port 11 */
CFG_FUNC0, // 88 : I2S2_BCLK -> SPKR_AMP_MCA_BCLK
CFG_FUNC0 | PULL_DOWN, // 89 : I2S2_DOUT -> SPKR_AMP_MCA_SDATA
CFG_DISABLED, // 90 : I2S2_DIN -> NC
CFG_FUNC0, // 91 : I2S3_MCK -> SNAP_I2S_MCLK_H4A
CFG_FUNC0, // 92 : I2S3_LRCK -> SNAP_I2S_LRCK
CFG_FUNC0, // 93 : I2S3_BCLK -> SNAP_I2S_BCLK
CFG_FUNC0, // 94 : I2S3_DOUT -> DUT_DOUT_TO_SNAP_I2S
CFG_FUNC0, // 95 : I2S3_DIN -> SNAP_TO_DUT_I2S_DIN
/* Port 12 */
CFG_IN, // 96 : SPI0_SCLK -> BRD_ID0
CFG_IN, // 97 : SPI0_MOSI -> BRD_ID1
CFG_IN, // 98 : SPI0_MISO -> BRD_ID2
CFG_DISABLED, // 99 : SPI0_SSIN -> NC
CFG_FUNC0, // 100 : SPI1_SCLK -> SNAP_SPI_CLK
CFG_FUNC0, // 101 : SPI1_MOSI -> SNAP_SPI_MOSI
CFG_FUNC0, // 102 : SPI1_MISO -> SNAP_SPI_MISO
CFG_FUNC0, // 103 : SPI1_SSIN -> SNAP_MCU_SPI_CS_L
/* Port 13 */
CFG_DISABLED, // 104 : SPI2_SCLK -> NC
CFG_DISABLED, // 105 : SPI2_MOSI -> NC
CFG_DISABLED, // 106 : SPI2_MISO -> NC
CFG_DISABLED, // 107 : SPI2_SSIN -> NC
CFG_DISABLED, // 108 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 109 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 110 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 111 : UNSPECIFIED -> UNSPECIFIED
/* Port 14 */
CFG_DISABLED, // 112 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 113 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 114 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 115 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 116 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 117 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 118 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 119 : UNSPECIFIED -> UNSPECIFIED
/* Port 15 */
CFG_DISABLED, // 120 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 121 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 122 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 123 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 124 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 125 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 126 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 127 : UNSPECIFIED -> UNSPECIFIED
/* Port 16 */
CFG_FUNC0, // 128 : UART4_TXD -> WLAN_DBG_UART_RXD
CFG_FUNC0, // 129 : UART4_RXD -> WLAN_DBG_UART_TXD
CFG_DISABLED | PULL_DOWN, // 130 : UART4_RTSN -> NC
CFG_IN, // 131 : UART4_CTSN -> PMU_AMUX_AY_CTRL
CFG_DISABLED | PULL_DOWN, // 132 : SDIO0_DATA[3] -> SDIO0_DATA[3]
CFG_DISABLED | PULL_DOWN, // 133 : SDIO0_DATA[2] -> SDIO0_DATA[2]
CFG_DISABLED | PULL_DOWN, // 134 : SDIO0_DATA[1] -> SDIO0_DATA[1]
CFG_DISABLED | PULL_DOWN, // 135 : SDIO0_DATA[0] -> SDIO0_DATA[0]
/* Port 17 */
CFG_DISABLED | PULL_DOWN, // 136 : SDIO0_CMD -> SDIO0_CMD
CFG_DISABLED | PULL_DOWN, // 137 : SDIO0_CLK -> SDIO0_CLK
CFG_DISABLED | PULL_DOWN, // 138 : FMI0_CEN[3] -> NC
CFG_DISABLED | PULL_DOWN, // 139 : FMI0_CEN[2] -> NC
CFG_DISABLED | PULL_DOWN, // 140 : FMI0_CEN[1] -> NC
CFG_FUNC0 | DRIVE_X2, // 141 : FMI0_CEN[0] -> F0CE0_L
CFG_FUNC0 | DRIVE_X2, // 142 : FMI0_CLE -> F0CLE
CFG_FUNC0 | DRIVE_X2, // 143 : FMI0_ALE -> F0ALE
/* Port 18 */
CFG_FUNC0 | DRIVE_X2, // 144 : FMI0_REN -> F0RE_L
CFG_FUNC0 | DRIVE_X2, // 145 : FMI0_WEN -> F0WE_L
CFG_FUNC0 | DRIVE_X2, // 146 : FMI0_IO[7] -> F0AD<7>
CFG_FUNC0 | DRIVE_X2, // 147 : FMI0_IO[6] -> F0AD<6>
CFG_FUNC0 | DRIVE_X2, // 148 : FMI0_IO[5] -> F0AD<5>
CFG_FUNC0 | DRIVE_X2, // 149 : FMI0_IO[4] -> F0AD<4>
CFG_DISABLED, // 150 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 151 : UNSPECIFIED -> UNSPECIFIED
/* Port 19 */
CFG_DISABLED, // 152 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 153 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 154 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 155 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 156 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 157 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 158 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 159 : UNSPECIFIED -> UNSPECIFIED
/* Port 20 */
CFG_FUNC0 | DRIVE_X2, // 160 : FMI0_DQS -> F0DQS
CFG_FUNC0 | DRIVE_X2, // 161 : FMI0_IO[3] -> F0AD<3>
CFG_FUNC0 | DRIVE_X2, // 162 : FMI0_IO[2] -> F0AD<2>
CFG_FUNC0 | DRIVE_X2, // 163 : FMI0_IO[1] -> F0AD<1>
CFG_FUNC0 | DRIVE_X2, // 164 : FMI0_IO[0] -> F0AD<0>
CFG_DISABLED | PULL_DOWN, // 165 : FMI1_CEN[3] ->
CFG_DISABLED | PULL_DOWN, // 166 : FMI1_CEN[2] ->
CFG_DISABLED | PULL_DOWN, // 167 : FMI1_CEN[1] ->
/* Port 21 */
CFG_FUNC0 | DRIVE_X2, // 168 : FMI1_CEN[0] -> F1CE0_L
CFG_FUNC0 | DRIVE_X2, // 169 : FMI1_CLE -> F1CLE
CFG_FUNC0 | DRIVE_X2, // 170 : FMI1_ALE -> F1ALE
CFG_FUNC0 | DRIVE_X2, // 171 : FMI1_REN -> F1RE_L
CFG_FUNC0 | DRIVE_X2, // 172 : FMI1_WEN -> F1WE_L
CFG_FUNC0 | DRIVE_X2, // 173 : FMI1_IO[7] -> F1AD<7>
CFG_FUNC0 | DRIVE_X2, // 174 : FMI1_IO[6] -> F1AD<6>
CFG_FUNC0 | DRIVE_X2, // 175 : FMI1_IO[5] -> F1AD<5>
/* Port 22 */
CFG_FUNC0 | DRIVE_X2, // 176 : FMI1_IO[4] -> F1AD<4>
CFG_FUNC0 | DRIVE_X2, // 177 : FMI1_DQS -> F1DQS
CFG_FUNC0 | DRIVE_X2, // 178 : FMI1_IO[3] -> F1AD<3>
CFG_FUNC0 | DRIVE_X2, // 179 : FMI1_IO[2] -> F1AD<2>
CFG_FUNC0 | DRIVE_X2, // 180 : FMI1_IO[1] -> F1AD<1>
CFG_FUNC0 | DRIVE_X2, // 181 : FMI1_IO[0] -> F1AD<0>
CFG_DISABLED, // 182 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 183 : UNSPECIFIED -> UNSPECIFIED
/* Port 23 */
CFG_DISABLED, // 184 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 185 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 186 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 187 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 188 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 189 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 190 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 191 : UNSPECIFIED -> UNSPECIFIED
/* Port 24 */
CFG_FUNC0, // 192 : I2C2_SDA -> I2C2_SDA_1V8
CFG_FUNC0, // 193 : I2C2_SCL -> I2C2_SCL_1V8
CFG_FUNC0, // 194 : UART0_TXD -> DUT_TXD
CFG_FUNC0 | PULL_DOWN, // 195 : UART0_RXD -> DUT_RXD
CFG_DISABLED | PULL_DOWN, // 196 : UART5_RTXD -> NC
CFG_DISABLED | PULL_DOWN, // 197 : DP_HPD -> GND
CFG_FUNC0 | PULL_DOWN, // 198 : TST_CLKOUT -> TST_CLKOUT
CFG_DISABLED | PULL_DOWN, // 199 : TST_STPCLK -> GND
/* Port 25 */
CFG_FUNC0, // 200 : WDOG -> H4A_WDOG
CFG_DISABLED, // 201 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 202 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 203 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 204 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 205 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 206 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 207 : UNSPECIFIED -> UNSPECIFIED
};
static const uint32_t pinconfig_dev_0[GPIO_GROUP_COUNT * GPIOPADPINS] = {
/* Port 0 */
CFG_IN | PULL_UP, // 0 : GPIO[0] -> MENU_KEY_L
CFG_IN | PULL_UP, // 1 : GPIO[1] -> HOLD_KEY_L
CFG_IN | PULL_UP, // 2 : GPIO[2] -> VOL_UP_L
CFG_IN | PULL_UP, // 3 : GPIO[3] -> VOL_DWN_L
CFG_OUT_1, // 4 : GPIO[4] -> ACC_UHPM_EN
CFG_DISABLED | PULL_DOWN, // 5 : GPIO[5] -> NC
CFG_DISABLED | PULL_DOWN, // 6 : GPIO[6] -> NC
CFG_OUT_0 | PULL_DOWN, // 7 : GPIO[7] -> BT_WAKE
/* Port 1 */
CFG_OUT_0, // 8 : GPIO[8] -> WLAN_HSIC_AP_RDY
CFG_IN | PULL_DOWN, // 9 : GPIO[9] -> WLAN_HSIC_DEV_RDY
CFG_DISABLED, // 10 : GPIO[10] -> NC
CFG_DISABLED, // 11 : GPIO[11] -> NC
CFG_OUT_0, // 12 : GPIO[12] -> EN_8VBOOST
CFG_IN | PULL_UP, // 13 : GPIO[13] -> PMU_IRQ_L
CFG_OUT_0, // 14 : GPIO[14] -> WLAN_HSIC_RESUME
CFG_OUT_1, // 15 : GPIO[15] -> SNAP_MCU_RESET_L
/* Port 2 */
CFG_IN, // 16 : GPIO[16] -> BRD_ID3
CFG_IN, // 17 : GPIO[17] -> BRD_REV3
CFG_IN | PULL_DOWN, // 18 : GPIO[18] -> BOOT_CFG0
CFG_OUT_0, // 19 : GPIO[19] -> KEEPACTIVE
CFG_IN, // 20 : GPIO[20] -> TRISTAR_INT
CFG_IN | PULL_UP, // 21 : GPIO[21] -> SNAP_INT_L
CFG_OUT_0 | PULL_DOWN, // 22 : GPIO[22] -> SNAP_ID0
CFG_IN | PULL_DOWN, // 23 : GPIO[23] -> SNAP_ID1
/* Port 3 */
CFG_OUT_0 | PULL_DOWN, // 24 : GPIO[24] -> PS_5VBOOST_L
CFG_IN | PULL_DOWN, // 25 : GPIO[25] -> BOOT_CFG1
CFG_IN | PULL_DOWN, // 26 : GPIO[26] -> FORCE_DFU
CFG_OUT_0, // 27 : GPIO[27] -> DUT_DFU_STATUS
CFG_IN, // 28 : GPIO[28] -> BOOT_CFG2
CFG_IN, // 29 : GPIO[29] -> BOOT_CFG3
CFG_OUT_0 | PULL_DOWN, // 30 : GPIO[30] -> CODEC_RESET_L
CFG_IN, // 31 : GPIO[31] -> VBUS_FAULT_L
/* Port 4 */
CFG_OUT_0, // 32 : GPIO[32] -> USB_SW_EN
CFG_IN | PULL_DOWN, // 33 : GPIO[33] -> GYRO_INT1
CFG_IN, // 34 : GPIO[34] -> ACC_UHPM_POK
CFG_OUT_1, // 35 : GPIO[35] -> EN_5VBOOST
CFG_IN, // 36 : GPIO[36] -> ACCEL_INT2_L
CFG_IN, // 37 : EHCI_PORT_PWR[0] -> BRD_REV[0]
CFG_IN, // 38 : EHCI_PORT_PWR[1] -> BRD_REV[1]
CFG_IN, // 39 : EHCI_PORT_PWR[2] -> BRD_REV[2]
/* Port 5 */
CFG_FUNC0, // 40 : UART1_TXD -> AP_DBG_UART_TXD
CFG_FUNC0, // 41 : UART1_RXD -> AP_DBG_UART_RXD
CFG_DISABLED | PULL_DOWN, // 42 : UART1_RTSN -> NC
CFG_IN, // 43 : UART1_CTSN -> SNAP_DET_L
CFG_FUNC0, // 44 : UART2_TXD -> ACC_UART_TXD
CFG_FUNC0, // 45 : UART2_RXD -> ACC_UART_RXD
CFG_DISABLED | PULL_DOWN, // 46 : UART2_RTSN -> NC
CFG_OUT_1, // 47 : UART2_CTSN -> USB_HUB_RST_L
/* Port 6 */
CFG_FUNC0, // 48 : UART3_TXD -> BT_UART_RXD
CFG_FUNC0, // 49 : UART3_RXD -> BT_UART_TXD
CFG_FUNC0, // 50 : UART3_RTSN -> BT_UART_CTS_L
CFG_FUNC0, // 51 : UART3_CTSN -> BT_UART_RTS_L
CFG_FUNC0, // 52 : I2C0_SDA -> I2C0_SDA_1V8
CFG_FUNC0, // 53 : I2C0_SCL -> I2C0_SCL_1V8
CFG_FUNC0, // 54 : I2C1_SDA -> SNAP_I2C_SDA
CFG_FUNC0, // 55 : I2C1_SCL -> SNAP_I2C_SCL
/* Port 7 */
CFG_FUNC0, // 56 : ISP0_SDA -> I2C_CAM_REAR_SDA_1V8
CFG_FUNC0, // 57 : ISP0_SCL -> I2C_CAM_REAR_SCL_1V8
CFG_DISABLED | PULL_DOWN, // 58 : ISP1_SDA -> NC
CFG_DISABLED | PULL_DOWN, // 59 : ISP1_SCL -> NC
CFG_FUNC0 | PULL_DOWN, // 60 : MIPI_VSYNC -> SNAP_MIPI_VSYNC
CFG_FUNC0 | PULL_DOWN, // 61 : TMR32_PWM0 -> GYRO_INT2
CFG_FUNC0 | PULL_DOWN, // 62 : TMR32_PWM1 -> ACCEL_INT1_L
CFG_FUNC0, // 63 : TMR32_PWM2 -> WLAN_TIMESYNC
/* Port 8 */
CFG_DISABLED, // 64 : SWI_DATA -> NC
CFG_FUNC0, // 65 : DWI_DI -> DWI_AP_DI
CFG_FUNC0, // 66 : DWI_DO -> DWI_AP_DO
CFG_FUNC0, // 67 : DWI_CLK -> DWI_AP_CLK
CFG_OUT_0, // 68 : SENSOR0_RST -> CAM_REAR_SHUTDOWN_L
CFG_FUNC0, // 69 : SENSOR0_CLK -> CAM_REAR_CLK
CFG_DISABLED | PULL_DOWN, // 70 : SENSOR1_RST -> NC
CFG_DISABLED | PULL_DOWN, // 71 : SENSOR1_CLK -> NC
/* Port 9 */
CFG_DISABLED | PULL_DOWN, // 72 : ISP0_PRE_FLASH -> NC
CFG_DISABLED | PULL_DOWN, // 73 : ISP0_FLASH -> NC
CFG_DISABLED, // 74 : ISP1_PRE_FLASH -> NC
CFG_DISABLED, // 75 : ISP1_FLASH -> NC
CFG_FUNC0, // 76 : I2S0_MCK -> CODEC_MCLK
CFG_FUNC0, // 77 : I2S0_LRCK -> CODEC_LRCLK
CFG_FUNC0, // 78 : I2S0_BCLK -> CODEC_BCLK
CFG_DISABLED | PULL_DOWN, // 79 : I2S0_DOUT -> NC
/* Port 10 */
CFG_FUNC0, // 80 : I2S0_DIN -> CODEC_TO_DUT_DIN
CFG_DISABLED, // 81 : I2S1_MCK -> NC
CFG_FUNC0, // 82 : I2S1_LRCK -> BT_PCM_SYNC
CFG_FUNC0, // 83 : I2S1_BCLK -> BT_PCM_CLK
CFG_FUNC0, // 84 : I2S1_DOUT -> BT_PCM_IN
CFG_FUNC0, // 85 : I2S1_DIN -> BT_PCM_OUT
CFG_DISABLED, // 86 : I2S2_MCK -> NC
CFG_FUNC0, // 87 : I2S2_LRCK -> SPKR_AMP_MCA_FSYNC
/* Port 11 */
CFG_FUNC0, // 88 : I2S2_BCLK -> SPKR_AMP_MCA_BCLK
CFG_FUNC0 | PULL_DOWN, // 89 : I2S2_DOUT -> SPKR_AMP_MCA_SDATA
CFG_DISABLED, // 90 : I2S2_DIN -> NC
CFG_FUNC0, // 91 : I2S3_MCK -> SNAP_I2S_MCLK_H4A
CFG_FUNC0, // 92 : I2S3_LRCK -> SNAP_I2S_LRCK
CFG_FUNC0, // 93 : I2S3_BCLK -> SNAP_I2S_BCLK
CFG_FUNC0, // 94 : I2S3_DOUT -> DUT_DOUT_TO_SNAP_I2S
CFG_FUNC0, // 95 : I2S3_DIN -> SNAP_TO_DUT_I2S_DIN
/* Port 12 */
CFG_IN, // 96 : SPI0_SCLK -> BRD_ID0
CFG_IN, // 97 : SPI0_MOSI -> BRD_ID1
CFG_IN, // 98 : SPI0_MISO -> BRD_ID2
CFG_DISABLED, // 99 : SPI0_SSIN -> NC
CFG_FUNC0, // 100 : SPI1_SCLK -> SNAP_SPI_CLK
CFG_FUNC0, // 101 : SPI1_MOSI -> SNAP_SPI_MOSI
CFG_FUNC0, // 102 : SPI1_MISO -> SNAP_SPI_MISO
CFG_FUNC0, // 103 : SPI1_SSIN -> SNAP_MCU_SPI_CS_L
/* Port 13 */
CFG_DISABLED, // 104 : SPI2_SCLK -> NC
CFG_DISABLED, // 105 : SPI2_MOSI -> NC
CFG_DISABLED, // 106 : SPI2_MISO -> NC
CFG_DISABLED, // 107 : SPI2_SSIN -> NC
CFG_DISABLED, // 108 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 109 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 110 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 111 : UNSPECIFIED -> UNSPECIFIED
/* Port 14 */
CFG_DISABLED, // 112 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 113 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 114 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 115 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 116 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 117 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 118 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 119 : UNSPECIFIED -> UNSPECIFIED
/* Port 15 */
CFG_DISABLED, // 120 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 121 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 122 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 123 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 124 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 125 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 126 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 127 : UNSPECIFIED -> UNSPECIFIED
/* Port 16 */
CFG_FUNC0, // 128 : UART4_TXD -> WLAN_DBG_UART_RXD
CFG_FUNC0, // 129 : UART4_RXD -> WLAN_DBG_UART_TXD
CFG_DISABLED | PULL_DOWN, // 130 : UART4_RTSN -> NC
CFG_IN, // 131 : UART4_CTSN -> PMU_AMUX_AY_CTRL
CFG_DISABLED | PULL_DOWN, // 132 : SDIO0_DATA[3] -> SDIO0_DATA[3]
CFG_DISABLED | PULL_DOWN, // 133 : SDIO0_DATA[2] -> SDIO0_DATA[2]
CFG_DISABLED | PULL_DOWN, // 134 : SDIO0_DATA[1] -> SDIO0_DATA[1]
CFG_DISABLED | PULL_DOWN, // 135 : SDIO0_DATA[0] -> SDIO0_DATA[0]
/* Port 17 */
CFG_DISABLED | PULL_DOWN, // 136 : SDIO0_CMD -> SDIO0_CMD
CFG_DISABLED | PULL_DOWN, // 137 : SDIO0_CLK -> SDIO0_CLK
CFG_DISABLED | PULL_DOWN, // 138 : FMI0_CEN[3] -> NC
CFG_DISABLED | PULL_DOWN, // 139 : FMI0_CEN[2] -> NC
CFG_DISABLED | PULL_DOWN, // 140 : FMI0_CEN[1] -> NC
CFG_FUNC0, // 141 : FMI0_CEN[0] -> F0CE0_L
CFG_FUNC0, // 142 : FMI0_CLE -> F0CLE
CFG_FUNC0, // 143 : FMI0_ALE -> F0ALE
/* Port 18 */
CFG_FUNC0, // 144 : FMI0_REN -> F0RE_L
CFG_FUNC0, // 145 : FMI0_WEN -> F0WE_L
CFG_FUNC0, // 146 : FMI0_IO[7] -> F0AD<7>
CFG_FUNC0, // 147 : FMI0_IO[6] -> F0AD<6>
CFG_FUNC0, // 148 : FMI0_IO[5] -> F0AD<5>
CFG_FUNC0, // 149 : FMI0_IO[4] -> F0AD<4>
CFG_DISABLED, // 150 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 151 : UNSPECIFIED -> UNSPECIFIED
/* Port 19 */
CFG_DISABLED, // 152 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 153 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 154 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 155 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 156 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 157 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 158 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 159 : UNSPECIFIED -> UNSPECIFIED
/* Port 20 */
CFG_FUNC0, // 160 : FMI0_DQS -> F0DQS
CFG_FUNC0, // 161 : FMI0_IO[3] -> F0AD<3>
CFG_FUNC0, // 162 : FMI0_IO[2] -> F0AD<2>
CFG_FUNC0, // 163 : FMI0_IO[1] -> F0AD<1>
CFG_FUNC0, // 164 : FMI0_IO[0] -> F0AD<0>
CFG_DISABLED | PULL_DOWN, // 165 : FMI1_CEN[3] ->
CFG_DISABLED | PULL_DOWN, // 166 : FMI1_CEN[2] ->
CFG_DISABLED | PULL_DOWN, // 167 : FMI1_CEN[1] ->
/* Port 21 */
CFG_FUNC0, // 168 : FMI1_CEN[0] -> F1CE0_L
CFG_FUNC0, // 169 : FMI1_CLE -> F1CLE
CFG_FUNC0, // 170 : FMI1_ALE -> F1ALE
CFG_FUNC0, // 171 : FMI1_REN -> F1RE_L
CFG_FUNC0, // 172 : FMI1_WEN -> F1WE_L
CFG_FUNC0, // 173 : FMI1_IO[7] -> F1AD<7>
CFG_FUNC0, // 174 : FMI1_IO[6] -> F1AD<6>
CFG_FUNC0, // 175 : FMI1_IO[5] -> F1AD<5>
/* Port 22 */
CFG_FUNC0, // 176 : FMI1_IO[4] -> F1AD<4>
CFG_FUNC0, // 177 : FMI1_DQS -> F1DQS
CFG_FUNC0, // 178 : FMI1_IO[3] -> F1AD<3>
CFG_FUNC0, // 179 : FMI1_IO[2] -> F1AD<2>
CFG_FUNC0, // 180 : FMI1_IO[1] -> F1AD<1>
CFG_FUNC0, // 181 : FMI1_IO[0] -> F1AD<0>
CFG_DISABLED, // 182 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 183 : UNSPECIFIED -> UNSPECIFIED
/* Port 23 */
CFG_DISABLED, // 184 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 185 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 186 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 187 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 188 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 189 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 190 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 191 : UNSPECIFIED -> UNSPECIFIED
/* Port 24 */
CFG_FUNC0, // 192 : I2C2_SDA -> I2C2_SDA_1V8
CFG_FUNC0, // 193 : I2C2_SCL -> I2C2_SCL_1V8
CFG_FUNC0, // 194 : UART0_TXD -> DUT_TXD
CFG_FUNC0 | PULL_DOWN, // 195 : UART0_RXD -> DUT_RXD
CFG_DISABLED | PULL_DOWN, // 196 : UART5_RTXD -> NC
CFG_DISABLED | PULL_DOWN, // 197 : DP_HPD -> GND
CFG_FUNC0 | PULL_DOWN, // 198 : TST_CLKOUT -> TST_CLKOUT
CFG_DISABLED | PULL_DOWN, // 199 : TST_STPCLK -> GND
/* Port 25 */
CFG_FUNC0, // 200 : WDOG -> H4A_WDOG
CFG_DISABLED, // 201 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 202 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 203 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 204 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 205 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 206 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 207 : UNSPECIFIED -> UNSPECIFIED
};
struct pinconfig_map {
uint32_t board_id;
uint32_t board_id_mask;
const uint32_t *pinconfigs[GPIOC_COUNT];
};
static const struct pinconfig_map cfg_map[] = {
{ 0, 1, { pinconfig_ap_0 } },
{ 1, 1, { pinconfig_dev_0 } },
};
const uint32_t * target_get_default_gpio_cfg(uint32_t gpioc)
{
static const struct pinconfig_map *selected_map = NULL;
if (selected_map == NULL) {
uint32_t board_id = platform_get_board_id();
for (unsigned i = 0; i < sizeof(cfg_map)/sizeof(cfg_map[0]); i++) {
if ((board_id & cfg_map[i].board_id_mask) == cfg_map[i].board_id) {
selected_map = &cfg_map[i];
break;
}
}
if (selected_map == NULL)
panic("no default pinconfig for board id %u", board_id);
}
ASSERT(gpioc < GPIOC_COUNT);
return selected_map->pinconfigs[gpioc];
}