313 lines
9.6 KiB
C
313 lines
9.6 KiB
C
/*
|
|
* Copyright (C) 2013 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.
|
|
*/
|
|
#include <debug.h>
|
|
#include <drivers/apple/gpio.h>
|
|
#include <platform/soc/hwregbase.h>
|
|
#include <target.h>
|
|
|
|
/* S7002 Target Pin Configuration */
|
|
|
|
static const uint32_t gpio_default_cfg[GPIO_0_GROUP_COUNT * GPIOPADPINS] = {
|
|
/* Port 0 */
|
|
CFG_DISABLED, // I2S0_MCK ->
|
|
CFG_DISABLED, // I2S1_MCK ->
|
|
CFG_DISABLED, // SD_CLKOUT ->
|
|
CFG_DISABLED, // SD_CMD_IO ->
|
|
CFG_DISABLED, // SD_DATA_IO[0] ->
|
|
CFG_DISABLED, // SD_DATA_IO[1] ->
|
|
CFG_DISABLED, // SD_DATA_IO[2] ->
|
|
CFG_DISABLED, // SD_DATA_IO[3] ->
|
|
|
|
/* Port 1 */
|
|
CFG_DISABLED, // SDIO_IRQ ->
|
|
CFG_DISABLED, // WL_HOST_WAKE ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 2 */
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 3 */
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 4 */
|
|
CFG_DISABLED, // GPIO0 ->
|
|
CFG_DISABLED, // GPIO1 ->
|
|
CFG_DISABLED, // GPIO2 -> BOOT_CONFIG[0]
|
|
CFG_DISABLED, // GPIO3 -> BOOT_CONFIG[1]
|
|
CFG_DISABLED, // GPIO4 -> BOOT_CONFIG[2]
|
|
CFG_DISABLED, // GPIO5 -> BOOT_CONFIG[3]
|
|
CFG_DISABLED, // GPIO6 -> BOARD_ID[3]
|
|
CFG_DISABLED, // GPIO7 ->
|
|
|
|
/* Port 5 */
|
|
CFG_DISABLED, // GPIO8 ->
|
|
CFG_DISABLED, // GPIO9 ->
|
|
CFG_DISABLED, // GPIO10 ->
|
|
CFG_DISABLED, // GPIO11 ->
|
|
CFG_DISABLED, // GPIO12 ->
|
|
CFG_DISABLED, // GPIO13 ->
|
|
CFG_DISABLED, // GPIO14 ->
|
|
CFG_DISABLED, // GPIO15 ->
|
|
|
|
/* Port 6 */
|
|
CFG_DISABLED, // I2C1_SDA ->
|
|
CFG_DISABLED, // I2C1_SCL ->
|
|
CFG_DISABLED, // I2S0_LRCK ->
|
|
CFG_DISABLED, // I2S0_BCLK ->
|
|
CFG_DISABLED, // I2S0_DOUT ->
|
|
CFG_DISABLED, // I2S0_DIN ->
|
|
CFG_DISABLED, // I2S1_LRCK ->
|
|
CFG_DISABLED, // I2S1_BCLK ->
|
|
|
|
/* Port 7 */
|
|
CFG_DISABLED, // I2S1_DOUT ->
|
|
CFG_DISABLED, // I2S1_DIN ->
|
|
CFG_DISABLED, // UART1_TXD ->
|
|
CFG_DISABLED, // UART1_RXD ->
|
|
CFG_DISABLED, // UART1_RTSN ->
|
|
CFG_DISABLED, // UART1_CTSN ->
|
|
CFG_DISABLED, // UART2_TXD ->
|
|
CFG_DISABLED, // UART2_RXD ->
|
|
|
|
/* Port 8 */
|
|
CFG_DISABLED, // UART2_RTSN ->
|
|
CFG_DISABLED, // UART2_CTSN ->
|
|
CFG_DISABLED, // UART4_TXD ->
|
|
CFG_DISABLED, // UART4_RXD ->
|
|
CFG_DISABLED, // UART3_RTXD ->
|
|
CFG_DISABLED, // CLK32K_OUT ->
|
|
CFG_DISABLED, // TEST_CLKOUT ->
|
|
CFG_DISABLED, // GPIO16 ->
|
|
|
|
/* Port 9 */
|
|
CFG_DISABLED, // GPIO17 ->
|
|
CFG_DISABLED, // GPIO18 ->
|
|
CFG_DISABLED, // TMR32_PWM1 ->
|
|
CFG_DISABLED, // TMR32_PWM2 ->
|
|
CFG_DISABLED, // TMR32_PWM3 ->
|
|
CFG_DISABLED, // DISP_TE ->
|
|
CFG_DISABLED, // GPIO19 ->
|
|
CFG_DISABLED, // NAND_CEN[0] ->
|
|
|
|
/* Port 10 */
|
|
CFG_DISABLED, // NAND_CEN[1] ->
|
|
CFG_DISABLED, // NAND_IO[7] ->
|
|
CFG_DISABLED, // NAND_IO[6] ->
|
|
CFG_DISABLED, // NAND_IO[5] ->
|
|
CFG_DISABLED, // NAND_IO[4] ->
|
|
CFG_DISABLED, // NAND_DQS ->
|
|
CFG_DISABLED, // NAND_REN ->
|
|
CFG_DISABLED, // NAND_IO[3] ->
|
|
|
|
/* Port 11 */
|
|
CFG_DISABLED, // NAND_IO[2] ->
|
|
CFG_DISABLED, // NAND_IO[1] ->
|
|
CFG_DISABLED, // NAND_IO[0] ->
|
|
CFG_DISABLED, // NAND_WEN ->
|
|
CFG_DISABLED, // NAND_CLE ->
|
|
CFG_DISABLED, // NAND_ALE ->
|
|
CFG_DISABLED, // I2C0_SDA ->
|
|
CFG_DISABLED, // I2C0_SCL ->
|
|
|
|
/* Port 12 */
|
|
CFG_DISABLED, // DISPLAY_SYNC ->
|
|
CFG_DISABLED, // SPI0_SCLK -> SPI0_SCLK/BOARD_ID[0]
|
|
CFG_DISABLED, // SPI0_MOSI -> SPI0_MOSI/BOARD_ID[1]
|
|
CFG_DISABLED, // SPI0_MISO -> SPI0_MISO/BOARD_ID[2]
|
|
CFG_DISABLED, // SPI0_SSIN ->
|
|
CFG_DISABLED, // UART0_TXD ->
|
|
CFG_DISABLED, // UART0_RXD ->
|
|
CFG_DISABLED, // SPI1_SCLK ->
|
|
|
|
/* Port 13 */
|
|
CFG_DISABLED, // SPI1_MOSI ->
|
|
CFG_DISABLED, // SPI1_MISO ->
|
|
CFG_DISABLED, // SPI1_SSIN ->
|
|
CFG_DISABLED, // GPIO20 ->
|
|
CFG_DISABLED, // GPIO21 ->
|
|
CFG_DISABLED, // GPIO22 ->
|
|
CFG_DISABLED, // GPIO23 ->
|
|
CFG_DISABLED, // GPIO24 ->
|
|
|
|
/* Port 14 */
|
|
CFG_DISABLED, // GPIO25 ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 15 */
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 16 */
|
|
CFG_DISABLED, // ENET_MDC ->
|
|
CFG_DISABLED, // ENET_MDIO ->
|
|
CFG_DISABLED, // RMII_RXER ->
|
|
CFG_DISABLED, // RMII_TXEN ->
|
|
CFG_DISABLED, // RMII_CLK ->
|
|
CFG_DISABLED, // RMII_TXD[0] ->
|
|
CFG_DISABLED, // RMII_TXD[1] ->
|
|
CFG_DISABLED, // RMII_RXD[0] ->
|
|
|
|
/* Port 17 */
|
|
CFG_DISABLED, // RMII_RXD[1] ->
|
|
CFG_DISABLED, // RMII_RXD[0] ->
|
|
CFG_DISABLED, // RMII_CRSDV ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
};
|
|
|
|
static const uint32_t gpio_1_default_cfg[GPIO_1_GROUP_COUNT * GPIOPADPINS] = {
|
|
/* Port 0 */
|
|
CFG_DISABLED, // REQUEST_DFU1 ->
|
|
CFG_DISABLED, // REQUEST_DFU2 ->
|
|
CFG_DISABLED, // DOCK_CONNECT ->
|
|
CFG_DISABLED, // CLK32K_IN ->
|
|
CFG_DISABLED, // SPU_UART0_TXD ->
|
|
CFG_DISABLED, // SPU_UART0_RXD ->
|
|
CFG_DISABLED, // SPU_UART0_RTSN ->
|
|
CFG_DISABLED, // SPU_UART0_CTSN ->
|
|
|
|
/* Port 1 */
|
|
CFG_DISABLED, // SPU_UART1_TXD ->
|
|
CFG_DISABLED, // SPU_UART1_RXD ->
|
|
CFG_DISABLED, // SPU_UART1_RTSN ->
|
|
CFG_DISABLED, // SPU_UART1_CTSN ->
|
|
CFG_DISABLED, // SPU_GPIO[0] ->
|
|
CFG_DISABLED, // SPU_GPIO[1] ->
|
|
CFG_DISABLED, // SPU_GPIO[2] ->
|
|
CFG_DISABLED, // SPU_GPIO[3] ->
|
|
|
|
/* Port 2 */
|
|
CFG_DISABLED, // SPU_GPIO[4] ->
|
|
CFG_DISABLED, // SPU_GPIO[5] ->
|
|
CFG_DISABLED, // SPU_GPIO[6] ->
|
|
CFG_DISABLED, // SPU_GPIO[7] ->
|
|
CFG_DISABLED, // SPU_GPIO[8] ->
|
|
CFG_DISABLED, // DFU_STATUS ->
|
|
CFG_DISABLED, // FORCE_DFU ->
|
|
CFG_DISABLED, // POWER_GOOD ->
|
|
|
|
/* Port 3 */
|
|
CFG_DISABLED, // SOC_VDD_HI_LO ->
|
|
CFG_DISABLED, // SOC_VDD_ALL_ON ->
|
|
CFG_DISABLED, // DOCK_ATTENTION ->
|
|
CFG_DISABLED, // PMU_HOST_WAKE ->
|
|
CFG_DISABLED, // SPU_SPI_SCLK ->
|
|
CFG_DISABLED, // SPU_SPI_MOSI ->
|
|
CFG_DISABLED, // SPU_SPI_MISO ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[0] ->
|
|
|
|
/* Port 4 */
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[1] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[2] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[3] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[4] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[5] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[6] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[7] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[8] ->
|
|
|
|
/* Port 5 */
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[9] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[10] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[11] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[12] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[13] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[14] ->
|
|
CFG_DISABLED, // SPU_SPI_CS_TRIG[15] ->
|
|
CFG_DISABLED, // SPU_GPIO[9] ->
|
|
|
|
/* Port 6 */
|
|
CFG_DISABLED, // SPU_I2C_SDA ->
|
|
CFG_DISABLED, // SPU_I2C_SCL ->
|
|
CFG_DISABLED, // WDOG ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 7 */
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
|
|
/* Port 8 */
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // RESETN -> RESET_L
|
|
CFG_DISABLED, // JTAG_TRSTN ->
|
|
CFG_DISABLED, // JTAG_SEL ->
|
|
CFG_DISABLED, // JTAG_TCK ->
|
|
CFG_DISABLED, // JTAG_TMS ->
|
|
CFG_DISABLED, // JTAG_TRTCK ->
|
|
CFG_DISABLED, // JTAG_TDO ->
|
|
|
|
/* Port 9 */
|
|
CFG_DISABLED, // JTAG_TDI ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
CFG_DISABLED, // NULL ->
|
|
};
|
|
|
|
const uint32_t *target_get_default_gpio_cfg(uint32_t gpioc)
|
|
{
|
|
switch (gpioc) {
|
|
case 0:
|
|
return gpio_default_cfg;
|
|
case 1:
|
|
return gpio_1_default_cfg;
|
|
default:
|
|
panic("unknown GPIO controller");
|
|
}
|
|
}
|