iBoot/target/ipad5/pinconfig.c

1110 lines
47 KiB
C

/*
* Copyright (C) 2013-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 3.0.0
I/O Spreadsheet tracker: <rdar://problem/14957338> J96-J97 IO spreadsheet tracker
Conversion command: csvtopinconfig.py --soc fiji --radar '<rdar://problem/14957338> J96-J97 IO spreadsheet tracker' --copyright 2013-2014 --config-column 'j96:j96 config' --config-column 'j97:j97 config' --pupd-column 'j96:j96 pu/pd' --pupd-column 'j97:j97 pu/pd' <filename>
*/
#include <debug.h>
#include <drivers/apple/gpio.h>
#include <platform.h>
#include <platform/soc/hwregbase.h>
#include <stdint.h>
#include <target/boardid.h>
static const uint32_t pinconfig_j96ap_0[GPIO_GROUP_COUNT * GPIOPADPINS] = {
/* Port 0 */
CFG_DISABLED, // 0 : ULPI_DIR -> nc_soc_gpio_0
CFG_DISABLED, // 1 : ULPI_STP ->
CFG_IN | PULL_UP, // 2 : ULPI_NXT -> gpio_spkamp_left_irq_l
CFG_DISABLED, // 3 : ULPI_DATA[7] ->
CFG_IN | PULL_UP, // 4 : ULPI_DATA[6] -> gpio_spkamp_right_irq_l
CFG_DISABLED, // 5 : ULPI_DATA[5] ->
CFG_OUT_0 | SLOW_SLEW, // 6 : ULPI_DATA[4] -> gpio_spkamp_keepalive
CFG_DISABLED, // 7 : ULPI_CLK ->
/* Port 1 */
CFG_DISABLED, // 8 : ULPI_DATA[3] ->
CFG_DISABLED, // 9 : ULPI_DATA[2] ->
CFG_DISABLED, // 10 : ULPI_DATA[1] -> i2c1_soc2oscar_swdio_1v8
CFG_DISABLED, // 11 : ULPI_DATA[0] -> i2c1_soc2oscar_swdclk_1v8
CFG_FUNC0 | SLOW_SLEW, // 12 : SPI1_SCLK -> spi1_grape_sclk
CFG_FUNC0 | SLOW_SLEW, // 13 : SPI1_MOSI -> spi1_grape_mosi
CFG_FUNC0, // 14 : SPI1_MISO -> spi1_grape_miso
CFG_OUT_1 | SLOW_SLEW, // 15 : SPI1_SSIN -> spi1_grape_cs_l
/* Port 2 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 3 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 4 */
CFG_IN, // 32 : GPIO[11] -> gpio_btn_home_l
CFG_IN, // 33 : GPIO[12] -> gpio_btn_onoff_l
CFG_DISABLED, // 34 : I2S3_MCK ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 35 : I2S3_LRCK -> i2s3_soc2bt_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 36 : I2S3_BCLK -> i2s3_soc2bt_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 37 : I2S3_DOUT -> i2s3_soc2bt_data
CFG_FUNC0, // 38 : I2S3_DIN -> i2s3_bt2soc_data
CFG_FUNC0 | SLOW_SLEW, // 39 : CLK32K_OUT -> clk_32k_soc2cumulus
/* Port 5 */
CFG_DISABLED, // 40 : PCIE_CLKREQ0_N ->
CFG_FUNC0 | SLOW_SLEW | INPUT_SCHMITT, // 41 : PCIE_CLKREQ1_N -> pcie1_wlan2soc_clkreq_l
CFG_DISABLED, // 42 : NAND_SYS_CLK ->
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 43 : GPIO[0] -> gpio_soc2bb_wake_modem
CFG_IN | PULL_UP, // 44 : GPIO[1] -> gpio_codec_irq_l
CFG_IN | PULL_UP, // 45 : GPIO[2] -> gpio_btn_vol_up_l
CFG_IN | PULL_UP, // 46 : GPIO[3] -> gpio_btn_vol_down_l
CFG_OUT_0 | SLOW_SLEW, // 47 : GPIO[4] -> gpio_soc2grape_1v8_en
/* Port 6 */
CFG_DISABLED, // 48 : GPIO[5] -> GPIO_SOC2CODEC_RST_L
CFG_OUT_0 | SLOW_SLEW, // 49 : GPIO[6] -> gpio_soc2aj_hs4_shunt_en
CFG_OUT_0 | SLOW_SLEW, // 50 : GPIO[7] -> gpio_soc2aj_hs3_shunt_en
CFG_DISABLED | PULL_DOWN, // 51 : GPIO[14] -> bb_ipc_gpio
CFG_DISABLED, // 52 : GPIO[16] -> gpio_board_id3
CFG_DISABLED | PULL_DOWN, // 53 : GPIO[17] -> gpio_bb2soc_reset_det_l
CFG_DISABLED, // 54 : GPIO[18] -> gpio_boot_config0
CFG_OUT_0 | SLOW_SLEW, // 55 : GPIO[20] -> gpio_soc2pmu_keepact
/* Port 7 */
CFG_OUT_0 | SLOW_SLEW, // 56 : GPIO[21] -> gpio_grape_rst_l
CFG_FUNC0 | SLOW_SLEW, // 57 : UART5_RTXD -> uart5_batt_rtxd
CFG_DISABLED, // 58 : UART8_TXD ->
CFG_IN, // 59 : UART8_RXD -> pmu_gpio_oscar2pmu_host_wake
CFG_DISABLED, // 60 : SPI0_SCLK -> gpio_board_id0
CFG_DISABLED, // 61 : SPI0_MOSI -> gpio_board_id1
CFG_DISABLED, // 62 : SPI0_MISO -> gpio_board_id2
CFG_OUT_0 | SLOW_SLEW, // 63 : SPI0_SSIN -> gpio_soc2wlan_pcie_dev_wake
/* Port 8 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 64 : I2C2_SDA -> i2c2_sda_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 65 : I2C2_SCL -> i2c2_scl_1v8
CFG_DISABLED | PULL_DOWN, // 66 : GPIO[22] -> gpio_bb2soc_gps_sync
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 67 : GPIO[23] -> gpio_soc2bb_radio_on_l
CFG_DISABLED, // 68 : GPIO[25] -> gpio_boot_config1
CFG_DISABLED, // 69 : GPIO[28] -> gpio_boot_config2
CFG_DISABLED, // 70 : GPIO[29] ->
CFG_DISABLED, // 71 : GPIO[34] ->
/* Port 9 */
CFG_OUT_0 | SLOW_SLEW, // 72 : GPIO[35] -> gpio_soc2bt_wake
CFG_IN, // 73 : GPIO[36] -> gpio_ts2soc2pmu_int
CFG_DISABLED, // 74 : GPIO[37] ->
CFG_DISABLED, // 75 : GPIO[39]/PCIE_PERST0_N ->
CFG_DISABLED, // 76 : GPIO[42] ->
CFG_IN | SLOW_SLEW, // 77 : GPIO[43]/PCIE_PERST1_N -> pcie1_soc2wlan_rst_l
CFG_OUT_0 | PULL_DOWN, // 78 : DISP_VSYNC -> display_sync
CFG_FUNC0 | SLOW_SLEW, // 79 : UART0_TXD -> uart0_soc_txd
/* Port 10 */
CFG_FUNC0, // 80 : UART0_RXD -> uart0_soc_rxd
CFG_OUT_0 | SLOW_SLEW, // 81 : TMR32_PWM0 -> oscar_time_sync_host_int
CFG_DISABLED, // 82 : TMR32_PWM1 ->
CFG_DISABLED, // 83 : TMR32_PWM2 ->
CFG_FUNC0 | SLOW_SLEW, // 84 : UART6_TXD -> uart6_ts_acc_txd
CFG_FUNC0, // 85 : UART6_RXD -> uart6_ts_acc_rxd
CFG_FUNC0 | SLOW_SLEW, // 86 : I2C3_SDA -> i2c3_sda_1v8
CFG_FUNC0 | SLOW_SLEW, // 87 : I2C3_SCL -> i2c3_scl_1v8
/* Port 11 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 12 */
CFG_FUNC0 | SLOW_SLEW, // 96 : I2C0_SDA -> i2c0_sda_1v8
CFG_FUNC0 | SLOW_SLEW, // 97 : I2C0_SCL -> i2c0_scl_1v8
CFG_DISABLED, // 98 : GPIO[38] ->
CFG_FUNC0 | SLOW_SLEW, // 99 : UART2_TXD -> uart2_soc2wlan_tx
CFG_FUNC0, // 100 : UART2_RXD -> uart2_wlan2soc_tx
CFG_OUT_1 | SLOW_SLEW, // 101 : UART2_RTSN -> uart2_soc2wlan_rts_l
CFG_FUNC0, // 102 : UART2_CTSN -> uart2_wlan2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 103 : DWI_DO -> dwi_ap_do
/* Port 13 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 104 : DWI_CLK -> dwi_ap_clk
CFG_FUNC0 | SLOW_SLEW, // 105 : WDOG -> wdog_soc
CFG_IN | PULL_UP, // 106 : GPIO[13] -> gpio_grape_irq_l
CFG_IN | PULL_UP, // 107 : GPIO[19] -> gpio_pmu2soc_irq_l
CFG_IN, // 108 : GPIO[26] -> gpio_force_dfu
CFG_DISABLED, // 109 : GPIO[27] -> tp_gpio_dfu_status
CFG_FUNC0 | SLOW_SLEW, // 110 : SOCHOT0 -> sochot0_l
CFG_FUNC0 | SLOW_SLEW, // 111 : SOCHOT1 -> sochot1_l
/* Port 14 */
CFG_DISABLED, // 112 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 113 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 114 : GPIO[8] -> gpio_board_rev0
CFG_DISABLED, // 115 : GPIO[9] -> gpio_board_rev1
CFG_DISABLED, // 116 : GPIO[10] -> gpio_board_rev2
CFG_IN | PULL_UP, // 117 : GPIO[15] -> gpio_als1_irq_l
CFG_IN | PULL_UP | SLOW_SLEW, // 118 : UART4_TXD -> uart4_soc2oslo_tx
CFG_FUNC0, // 119 : UART4_RXD -> uart4_oslo2soc_tx
/* Port 15 */
CFG_IN | PULL_UP | SLOW_SLEW, // 120 : UART4_RTSN -> uart4_soc2oslo_rts_l
CFG_FUNC0, // 121 : UART4_CTSN -> uart4_oslo2soc_rts_l
CFG_FUNC0 | SLOW_SLEW, // 122 : SPI3_MOSI -> spi_mesa_mosi
CFG_FUNC0, // 123 : SPI3_MISO -> spi_mesa_miso
CFG_FUNC0 | SLOW_SLEW | INPUT_SCHMITT, // 124 : SPI3_SCLK -> spi_mesa_sclk_r
CFG_IN | PULL_DOWN, // 125 : SPI3_SSIN -> gpio_mesa2soc_int
CFG_DISABLED, // 126 : GPIO[24] -> bb_jtag_tms
CFG_DISABLED | PULL_DOWN, // 127 : GPIO[30] -> hsic1_bb2soc_device_rdy
/* Port 16 */
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 128 : GPIO[31] -> gpio_soc2bb_rst_l
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 129 : GPIO[32] -> hsic1_soc2bb_host_rdy
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 130 : GPIO[33] -> gpio_soc2bb_coredump
CFG_IN | PULL_UP, // 131 : GPIO[40] -> gpio_als2_irq_l
CFG_IN | PULL_DOWN | SLOW_SLEW, // 132 : GPIO[41] -> gpio_soc2oslo_fw_dwl_req
CFG_DISABLED, // 133 : I2S4_MCK -> bb_jtag_tck
CFG_DISABLED, // 134 : I2S4_LRCK ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 135 : I2S4_BCLK -> gpio_soc2oslo_en
/* Port 17 */
CFG_DISABLED, // 136 : I2S4_DOUT ->
CFG_DISABLED, // 137 : I2S4_DIN ->
CFG_DISABLED, // 138 : I2C1_SDA ->
CFG_DISABLED, // 139 : I2C1_SCL ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 18 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 19 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 20 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 160 : I2S0_LRCK -> i2s0_codec_asp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 161 : I2S0_BCLK -> i2s0_codec_asp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 162 : I2S0_DOUT -> i2s0_codec_asp_dout
CFG_FUNC0, // 163 : I2S0_DIN -> i2s0_codec_asp_din
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 164 : I2S1_MCK -> i2s1_spkamp_mck_r
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 165 : I2S1_LRCK -> i2s1_spkamp_lrck
CFG_FUNC0 | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 166 : I2S1_BCLK -> i2s1_spkamp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 167 : I2S1_DOUT -> i2s1_spkamp_dout
/* Port 21 */
CFG_FUNC0, // 168 : I2S1_DIN -> i2s1_spkamp_din
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 169 : I2S2_LRCK -> i2s2_codec_xsp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 170 : I2S2_BCLK -> i2s2_codec_xsp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 171 : I2S2_DOUT -> i2s2_codec_xsp_dout
CFG_FUNC0, // 172 : I2S2_DIN -> i2s2_codec_xsp_din
CFG_FUNC0 | SLOW_SLEW, // 173 : UART1_TXD -> uart1_soc2bt_tx
CFG_FUNC0, // 174 : UART1_RXD -> uart1_bt2soc_tx
CFG_OUT_1 | SLOW_SLEW, // 175 : UART1_RTSN -> uart1_soc2bt_rts_l
/* Port 22 */
CFG_FUNC0, // 176 : UART1_CTSN -> uart1_bt2soc_rts_l
CFG_FUNC0, // 177 : EDP_HPD -> edp_hpd
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 178 : UART3_TXD -> uart3_soc2bb_tx
CFG_DISABLED | PULL_DOWN, // 179 : UART3_RXD -> uart3_bb2soc_tx
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 180 : UART3_RTSN -> uart3_soc2bb_rts_l
CFG_DISABLED | PULL_DOWN, // 181 : UART3_CTSN -> uart3_bb2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 182 : SPI2_SCLK -> spi2_codec_sclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 183 : SPI2_MOSI -> spi2_codec_mosi
/* Port 23 */
CFG_FUNC0, // 184 : SPI2_MISO -> spi2_codec_miso
CFG_OUT_1 | SLOW_SLEW, // 185 : SPI2_SSIN -> spi2_codec_cs_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 186 : ISP0_SDA -> isp0_cam_rear_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 187 : ISP0_SCL -> isp0_cam_rear_scl
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 188 : ISP1_SDA -> isp1_cam_front_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 189 : ISP1_SCL -> isp1_cam_front_scl
CFG_OUT_0 | SLOW_SLEW, // 190 : SENSOR0_RST -> isp0_cam_rear_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 191 : SENSOR0_CLK -> isp0_cam_rear_clk_r
/* Port 24 */
CFG_DISABLED, // 192 : SENSOR0_XSHUTDOWN ->
CFG_DISABLED, // 193 : SENSOR0_ISTRB ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 194 : ISP_UART0_TXD -> soc2oscar_isp_uart_txd
CFG_FUNC0, // 195 : ISP_UART0_RXD -> oscar2soc_isp_uart_rxd
CFG_OUT_0 | SLOW_SLEW, // 196 : SENSOR1_RST -> isp1_cam_front_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 197 : SENSOR1_CLK -> isp1_cam_front_clk_r
CFG_DISABLED, // 198 : SENSOR1_XSHUTDOWN ->
CFG_DISABLED, // 199 : SENSOR1_ISTRB ->
/* Port 25 */
CFG_IN | PULL_DOWN | SLOW_SLEW, // 200 : UART7_TXD -> uart7_soc2oscar_txd
CFG_FUNC0, // 201 : UART7_RXD -> uart7_oscar2soc_rxd
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 202 : I2S0_MCK -> i2s0_codec_asp_mck_r
CFG_DISABLED, // 203 : I2S2_MCK ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
};
static const uint32_t pinconfig_j96dev_0[GPIO_GROUP_COUNT * GPIOPADPINS] = {
/* Port 0 */
CFG_DISABLED, // 0 : ULPI_DIR -> nc_soc_gpio_0
CFG_DISABLED, // 1 : ULPI_STP ->
CFG_IN | PULL_UP, // 2 : ULPI_NXT -> gpio_spkamp_left_irq_l
CFG_DISABLED, // 3 : ULPI_DATA[7] ->
CFG_IN | PULL_UP, // 4 : ULPI_DATA[6] -> gpio_spkamp_right_irq_l
CFG_DISABLED, // 5 : ULPI_DATA[5] ->
CFG_OUT_0 | SLOW_SLEW, // 6 : ULPI_DATA[4] -> gpio_spkamp_keepalive
CFG_DISABLED, // 7 : ULPI_CLK ->
/* Port 1 */
CFG_DISABLED, // 8 : ULPI_DATA[3] ->
CFG_DISABLED, // 9 : ULPI_DATA[2] ->
CFG_DISABLED, // 10 : ULPI_DATA[1] -> i2c1_soc2oscar_swdio_1v8
CFG_DISABLED, // 11 : ULPI_DATA[0] -> i2c1_soc2oscar_swdclk_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 12 : SPI1_SCLK -> spi1_grape_sclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 13 : SPI1_MOSI -> spi1_grape_mosi
CFG_FUNC0, // 14 : SPI1_MISO -> spi1_grape_miso
CFG_OUT_1 | SLOW_SLEW, // 15 : SPI1_SSIN -> spi1_grape_cs_l
/* Port 2 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 3 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 4 */
CFG_IN, // 32 : GPIO[11] -> gpio_btn_home_l
CFG_IN, // 33 : GPIO[12] -> gpio_btn_onoff_l
CFG_DISABLED, // 34 : I2S3_MCK ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 35 : I2S3_LRCK -> i2s3_soc2bt_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 36 : I2S3_BCLK -> i2s3_soc2bt_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 37 : I2S3_DOUT -> i2s3_soc2bt_data
CFG_FUNC0, // 38 : I2S3_DIN -> i2s3_bt2soc_data
CFG_FUNC0 | SLOW_SLEW, // 39 : CLK32K_OUT -> clk_32k_soc2cumulus
/* Port 5 */
CFG_DISABLED, // 40 : PCIE_CLKREQ0_N ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW | INPUT_SCHMITT, // 41 : PCIE_CLKREQ1_N -> pcie1_wlan2soc_clkreq_l
CFG_DISABLED, // 42 : NAND_SYS_CLK ->
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 43 : GPIO[0] -> gpio_soc2bb_wake_modem
CFG_IN | PULL_UP, // 44 : GPIO[1] -> gpio_codec_irq_l
CFG_IN | PULL_UP, // 45 : GPIO[2] -> gpio_btn_vol_up_l
CFG_IN | PULL_UP, // 46 : GPIO[3] -> gpio_btn_vol_down_l
CFG_OUT_0 | SLOW_SLEW, // 47 : GPIO[4] -> gpio_soc2grape_1v8_en
/* Port 6 */
CFG_DISABLED, // 48 : GPIO[5] -> GPIO_SOC2CODEC_RST_L
CFG_OUT_0 | SLOW_SLEW, // 49 : GPIO[6] -> gpio_soc2aj_hs4_shunt_en
CFG_OUT_0 | SLOW_SLEW, // 50 : GPIO[7] -> gpio_soc2aj_hs3_shunt_en
CFG_DISABLED | PULL_DOWN, // 51 : GPIO[14] -> bb_ipc_gpio
CFG_DISABLED, // 52 : GPIO[16] -> gpio_board_id3
CFG_DISABLED | PULL_DOWN, // 53 : GPIO[17] -> gpio_bb2soc_reset_det_l
CFG_DISABLED, // 54 : GPIO[18] -> gpio_boot_config0
CFG_OUT_0 | SLOW_SLEW, // 55 : GPIO[20] -> gpio_soc2pmu_keepact
/* Port 7 */
CFG_OUT_0 | SLOW_SLEW, // 56 : GPIO[21] -> gpio_grape_rst_l
CFG_FUNC0 | SLOW_SLEW, // 57 : UART5_RTXD -> uart5_batt_rtxd
CFG_DISABLED, // 58 : UART8_TXD ->
CFG_IN, // 59 : UART8_RXD -> pmu_gpio_oscar2pmu_host_wake
CFG_DISABLED, // 60 : SPI0_SCLK -> gpio_board_id0
CFG_DISABLED, // 61 : SPI0_MOSI -> gpio_board_id1
CFG_DISABLED, // 62 : SPI0_MISO -> gpio_board_id2
CFG_OUT_0 | SLOW_SLEW, // 63 : SPI0_SSIN -> gpio_soc2wlan_pcie_dev_wake
/* Port 8 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 64 : I2C2_SDA -> i2c2_sda_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 65 : I2C2_SCL -> i2c2_scl_1v8
CFG_DISABLED | PULL_DOWN, // 66 : GPIO[22] -> gpio_bb2soc_gps_sync
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 67 : GPIO[23] -> gpio_soc2bb_radio_on_l
CFG_DISABLED, // 68 : GPIO[25] -> gpio_boot_config1
CFG_DISABLED, // 69 : GPIO[28] -> gpio_boot_config2
CFG_DISABLED, // 70 : GPIO[29] ->
CFG_DISABLED, // 71 : GPIO[34] ->
/* Port 9 */
CFG_OUT_0 | SLOW_SLEW, // 72 : GPIO[35] -> gpio_soc2bt_wake
CFG_IN, // 73 : GPIO[36] -> gpio_ts2soc2pmu_int
CFG_DISABLED, // 74 : GPIO[37] ->
CFG_DISABLED, // 75 : GPIO[39]/PCIE_PERST0_N ->
CFG_DISABLED, // 76 : GPIO[42] ->
CFG_IN | DRIVE_X2 | SLOW_SLEW, // 77 : GPIO[43]/PCIE_PERST1_N -> pcie1_soc2wlan_rst_l
CFG_OUT_0 | PULL_DOWN, // 78 : DISP_VSYNC -> display_sync
CFG_FUNC0 | SLOW_SLEW, // 79 : UART0_TXD -> uart0_soc_txd
/* Port 10 */
CFG_FUNC0, // 80 : UART0_RXD -> uart0_soc_rxd
CFG_OUT_0 | SLOW_SLEW, // 81 : TMR32_PWM0 -> oscar_time_sync_host_int
CFG_DISABLED, // 82 : TMR32_PWM1 ->
CFG_DISABLED, // 83 : TMR32_PWM2 ->
CFG_FUNC0 | SLOW_SLEW, // 84 : UART6_TXD -> uart6_ts_acc_txd
CFG_FUNC0, // 85 : UART6_RXD -> uart6_ts_acc_rxd
CFG_FUNC0 | SLOW_SLEW, // 86 : I2C3_SDA -> i2c3_sda_1v8
CFG_FUNC0 | SLOW_SLEW, // 87 : I2C3_SCL -> i2c3_scl_1v8
/* Port 11 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 12 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 96 : I2C0_SDA -> i2c0_sda_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 97 : I2C0_SCL -> i2c0_scl_1v8
CFG_DISABLED, // 98 : GPIO[38] ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 99 : UART2_TXD -> uart2_soc2wlan_tx
CFG_FUNC0, // 100 : UART2_RXD -> uart2_wlan2soc_tx
CFG_OUT_1 | DRIVE_X2 | SLOW_SLEW, // 101 : UART2_RTSN -> uart2_soc2wlan_rts_l
CFG_FUNC0, // 102 : UART2_CTSN -> uart2_wlan2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 103 : DWI_DO -> dwi_ap_do
/* Port 13 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 104 : DWI_CLK -> dwi_ap_clk
CFG_FUNC0 | SLOW_SLEW, // 105 : WDOG -> wdog_soc
CFG_IN | PULL_UP, // 106 : GPIO[13] -> gpio_grape_irq_l
CFG_IN | PULL_UP, // 107 : GPIO[19] -> gpio_pmu2soc_irq_l
CFG_IN, // 108 : GPIO[26] -> gpio_force_dfu
CFG_DISABLED, // 109 : GPIO[27] -> tp_gpio_dfu_status
CFG_FUNC0 | SLOW_SLEW, // 110 : SOCHOT0 -> sochot0_l
CFG_FUNC0 | SLOW_SLEW, // 111 : SOCHOT1 -> sochot1_l
/* Port 14 */
CFG_DISABLED, // 112 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 113 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 114 : GPIO[8] -> gpio_board_rev0
CFG_DISABLED, // 115 : GPIO[9] -> gpio_board_rev1
CFG_DISABLED, // 116 : GPIO[10] -> gpio_board_rev2
CFG_IN | PULL_UP, // 117 : GPIO[15] -> gpio_als1_irq_l
CFG_IN | PULL_UP | DRIVE_X2 | SLOW_SLEW, // 118 : UART4_TXD -> uart4_soc2oslo_tx
CFG_FUNC0, // 119 : UART4_RXD -> uart4_oslo2soc_tx
/* Port 15 */
CFG_IN | PULL_UP | DRIVE_X2 | SLOW_SLEW, // 120 : UART4_RTSN -> uart4_soc2oslo_rts_l
CFG_FUNC0, // 121 : UART4_CTSN -> uart4_oslo2soc_rts_l
CFG_FUNC0 | SLOW_SLEW, // 122 : SPI3_MOSI -> spi_mesa_mosi
CFG_FUNC0, // 123 : SPI3_MISO -> spi_mesa_miso
CFG_FUNC0 | SLOW_SLEW | INPUT_SCHMITT, // 124 : SPI3_SCLK -> spi_mesa_sclk_r
CFG_IN | PULL_DOWN, // 125 : SPI3_SSIN -> gpio_mesa2soc_int
CFG_DISABLED, // 126 : GPIO[24] -> bb_jtag_tms
CFG_DISABLED | PULL_DOWN, // 127 : GPIO[30] -> hsic1_bb2soc_device_rdy
/* Port 16 */
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 128 : GPIO[31] -> gpio_soc2bb_rst_l
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 129 : GPIO[32] -> hsic1_soc2bb_host_rdy
CFG_DISABLED | PULL_DOWN | SLOW_SLEW, // 130 : GPIO[33] -> gpio_soc2bb_coredump
CFG_IN | PULL_UP, // 131 : GPIO[40] -> gpio_als2_irq_l
CFG_IN | PULL_DOWN | SLOW_SLEW, // 132 : GPIO[41] -> gpio_soc2oslo_fw_dwl_req
CFG_DISABLED, // 133 : I2S4_MCK -> bb_jtag_tck
CFG_DISABLED, // 134 : I2S4_LRCK ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 135 : I2S4_BCLK -> gpio_soc2oslo_en
/* Port 17 */
CFG_DISABLED, // 136 : I2S4_DOUT ->
CFG_DISABLED, // 137 : I2S4_DIN ->
CFG_DISABLED, // 138 : I2C1_SDA ->
CFG_DISABLED, // 139 : I2C1_SCL ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 18 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 19 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 20 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 160 : I2S0_LRCK -> i2s0_codec_asp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 161 : I2S0_BCLK -> i2s0_codec_asp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 162 : I2S0_DOUT -> i2s0_codec_asp_dout
CFG_FUNC0, // 163 : I2S0_DIN -> i2s0_codec_asp_din
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 164 : I2S1_MCK -> i2s1_spkamp_mck_r
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 165 : I2S1_LRCK -> i2s1_spkamp_lrck
CFG_FUNC0 | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 166 : I2S1_BCLK -> i2s1_spkamp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 167 : I2S1_DOUT -> i2s1_spkamp_dout
/* Port 21 */
CFG_FUNC0, // 168 : I2S1_DIN -> i2s1_spkamp_din
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 169 : I2S2_LRCK -> i2s2_codec_xsp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 170 : I2S2_BCLK -> i2s2_codec_xsp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 171 : I2S2_DOUT -> i2s2_codec_xsp_dout
CFG_FUNC0, // 172 : I2S2_DIN -> i2s2_codec_xsp_din
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 173 : UART1_TXD -> uart1_soc2bt_tx
CFG_FUNC0, // 174 : UART1_RXD -> uart1_bt2soc_tx
CFG_OUT_1 | DRIVE_X2 | SLOW_SLEW, // 175 : UART1_RTSN -> uart1_soc2bt_rts_l
/* Port 22 */
CFG_FUNC0, // 176 : UART1_CTSN -> uart1_bt2soc_rts_l
CFG_FUNC0, // 177 : EDP_HPD -> edp_hpd
CFG_DISABLED | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 178 : UART3_TXD -> uart3_soc2bb_tx
CFG_DISABLED | PULL_DOWN, // 179 : UART3_RXD -> uart3_bb2soc_tx
CFG_DISABLED | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 180 : UART3_RTSN -> uart3_soc2bb_rts_l
CFG_DISABLED | PULL_DOWN, // 181 : UART3_CTSN -> uart3_bb2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 182 : SPI2_SCLK -> spi2_codec_sclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 183 : SPI2_MOSI -> spi2_codec_mosi
/* Port 23 */
CFG_FUNC0, // 184 : SPI2_MISO -> spi2_codec_miso
CFG_OUT_1 | SLOW_SLEW, // 185 : SPI2_SSIN -> spi2_codec_cs_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 186 : ISP0_SDA -> isp0_cam_rear_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 187 : ISP0_SCL -> isp0_cam_rear_scl
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 188 : ISP1_SDA -> isp1_cam_front_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 189 : ISP1_SCL -> isp1_cam_front_scl
CFG_OUT_0 | SLOW_SLEW, // 190 : SENSOR0_RST -> isp0_cam_rear_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 191 : SENSOR0_CLK -> isp0_cam_rear_clk_r
/* Port 24 */
CFG_DISABLED, // 192 : SENSOR0_XSHUTDOWN ->
CFG_DISABLED, // 193 : SENSOR0_ISTRB ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 194 : ISP_UART0_TXD -> soc2oscar_isp_uart_txd
CFG_FUNC0, // 195 : ISP_UART0_RXD -> oscar2soc_isp_uart_rxd
CFG_OUT_0 | SLOW_SLEW, // 196 : SENSOR1_RST -> isp1_cam_front_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 197 : SENSOR1_CLK -> isp1_cam_front_clk_r
CFG_DISABLED, // 198 : SENSOR1_XSHUTDOWN ->
CFG_DISABLED, // 199 : SENSOR1_ISTRB ->
/* Port 25 */
CFG_IN | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 200 : UART7_TXD -> uart7_soc2oscar_txd
CFG_FUNC0, // 201 : UART7_RXD -> uart7_oscar2soc_rxd
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 202 : I2S0_MCK -> i2s0_codec_asp_mck_r
CFG_DISABLED, // 203 : I2S2_MCK ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
};
static const uint32_t pinconfig_j97ap_0[GPIO_GROUP_COUNT * GPIOPADPINS] = {
/* Port 0 */
CFG_DISABLED, // 0 : ULPI_DIR -> nc_soc_gpio_0
CFG_DISABLED, // 1 : ULPI_STP ->
CFG_IN | PULL_UP, // 2 : ULPI_NXT -> gpio_spkamp_left_irq_l
CFG_DISABLED, // 3 : ULPI_DATA[7] ->
CFG_IN | PULL_UP, // 4 : ULPI_DATA[6] -> gpio_spkamp_right_irq_l
CFG_DISABLED, // 5 : ULPI_DATA[5] ->
CFG_OUT_0 | SLOW_SLEW, // 6 : ULPI_DATA[4] -> gpio_spkamp_keepalive
CFG_DISABLED, // 7 : ULPI_CLK ->
/* Port 1 */
CFG_DISABLED, // 8 : ULPI_DATA[3] ->
CFG_DISABLED, // 9 : ULPI_DATA[2] ->
CFG_DISABLED, // 10 : ULPI_DATA[1] -> i2c1_soc2oscar_swdio_1v8
CFG_DISABLED, // 11 : ULPI_DATA[0] -> i2c1_soc2oscar_swdclk_1v8
CFG_FUNC0 | SLOW_SLEW, // 12 : SPI1_SCLK -> spi1_grape_sclk
CFG_FUNC0 | SLOW_SLEW, // 13 : SPI1_MOSI -> spi1_grape_mosi
CFG_FUNC0, // 14 : SPI1_MISO -> spi1_grape_miso
CFG_OUT_1 | SLOW_SLEW, // 15 : SPI1_SSIN -> spi1_grape_cs_l
/* Port 2 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 3 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 4 */
CFG_IN, // 32 : GPIO[11] -> gpio_btn_home_l
CFG_IN, // 33 : GPIO[12] -> gpio_btn_onoff_l
CFG_DISABLED, // 34 : I2S3_MCK ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 35 : I2S3_LRCK -> i2s3_soc2bt_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 36 : I2S3_BCLK -> i2s3_soc2bt_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 37 : I2S3_DOUT -> i2s3_soc2bt_data
CFG_FUNC0, // 38 : I2S3_DIN -> i2s3_bt2soc_data
CFG_FUNC0 | SLOW_SLEW, // 39 : CLK32K_OUT -> clk_32k_soc2cumulus
/* Port 5 */
CFG_DISABLED, // 40 : PCIE_CLKREQ0_N ->
CFG_FUNC0 | SLOW_SLEW | INPUT_SCHMITT, // 41 : PCIE_CLKREQ1_N -> pcie1_wlan2soc_clkreq_l
CFG_DISABLED, // 42 : NAND_SYS_CLK ->
CFG_OUT_0 | SLOW_SLEW, // 43 : GPIO[0] -> gpio_soc2bb_wake_modem
CFG_IN | PULL_UP, // 44 : GPIO[1] -> gpio_codec_irq_l
CFG_IN | PULL_UP, // 45 : GPIO[2] -> gpio_btn_vol_up_l
CFG_IN | PULL_UP, // 46 : GPIO[3] -> gpio_btn_vol_down_l
CFG_OUT_0 | SLOW_SLEW, // 47 : GPIO[4] -> gpio_soc2grape_1v8_en
/* Port 6 */
CFG_DISABLED, // 48 : GPIO[5] -> GPIO_SOC2CODEC_RST_L
CFG_OUT_0 | SLOW_SLEW, // 49 : GPIO[6] -> gpio_soc2aj_hs4_shunt_en
CFG_OUT_0 | SLOW_SLEW, // 50 : GPIO[7] -> gpio_soc2aj_hs3_shunt_en
CFG_DISABLED, // 51 : GPIO[14] -> bb_ipc_gpio
CFG_DISABLED, // 52 : GPIO[16] -> gpio_board_id3
CFG_IN | PULL_DOWN, // 53 : GPIO[17] -> gpio_bb2soc_reset_det_l
CFG_DISABLED, // 54 : GPIO[18] -> gpio_boot_config0
CFG_OUT_0 | SLOW_SLEW, // 55 : GPIO[20] -> gpio_soc2pmu_keepact
/* Port 7 */
CFG_OUT_0 | SLOW_SLEW, // 56 : GPIO[21] -> gpio_grape_rst_l
CFG_FUNC0 | SLOW_SLEW, // 57 : UART5_RTXD -> uart5_batt_rtxd
CFG_DISABLED, // 58 : UART8_TXD ->
CFG_IN, // 59 : UART8_RXD -> pmu_gpio_oscar2pmu_host_wake
CFG_DISABLED, // 60 : SPI0_SCLK -> gpio_board_id0
CFG_DISABLED, // 61 : SPI0_MOSI -> gpio_board_id1
CFG_DISABLED, // 62 : SPI0_MISO -> gpio_board_id2
CFG_OUT_0 | SLOW_SLEW, // 63 : SPI0_SSIN -> gpio_soc2wlan_pcie_dev_wake
/* Port 8 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 64 : I2C2_SDA -> i2c2_sda_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 65 : I2C2_SCL -> i2c2_scl_1v8
CFG_DISABLED, // 66 : GPIO[22] -> gpio_bb2soc_gps_sync
CFG_IN | SLOW_SLEW, // 67 : GPIO[23] -> gpio_soc2bb_radio_on_l
CFG_DISABLED, // 68 : GPIO[25] -> gpio_boot_config1
CFG_DISABLED, // 69 : GPIO[28] -> gpio_boot_config2
CFG_DISABLED, // 70 : GPIO[29] ->
CFG_DISABLED, // 71 : GPIO[34] ->
/* Port 9 */
CFG_OUT_0 | SLOW_SLEW, // 72 : GPIO[35] -> gpio_soc2bt_wake
CFG_IN, // 73 : GPIO[36] -> gpio_ts2soc2pmu_int
CFG_DISABLED, // 74 : GPIO[37] ->
CFG_DISABLED, // 75 : GPIO[39]/PCIE_PERST0_N ->
CFG_DISABLED, // 76 : GPIO[42] ->
CFG_IN | SLOW_SLEW, // 77 : GPIO[43]/PCIE_PERST1_N -> pcie1_soc2wlan_rst_l
CFG_OUT_0 | PULL_DOWN, // 78 : DISP_VSYNC -> display_sync
CFG_FUNC0 | SLOW_SLEW, // 79 : UART0_TXD -> uart0_soc_txd
/* Port 10 */
CFG_FUNC0, // 80 : UART0_RXD -> uart0_soc_rxd
CFG_OUT_0 | SLOW_SLEW, // 81 : TMR32_PWM0 -> oscar_time_sync_host_int
CFG_DISABLED, // 82 : TMR32_PWM1 ->
CFG_DISABLED, // 83 : TMR32_PWM2 ->
CFG_FUNC0 | SLOW_SLEW, // 84 : UART6_TXD -> uart6_ts_acc_txd
CFG_FUNC0, // 85 : UART6_RXD -> uart6_ts_acc_rxd
CFG_FUNC0 | SLOW_SLEW, // 86 : I2C3_SDA -> i2c3_sda_1v8
CFG_FUNC0 | SLOW_SLEW, // 87 : I2C3_SCL -> i2c3_scl_1v8
/* Port 11 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 12 */
CFG_FUNC0 | SLOW_SLEW, // 96 : I2C0_SDA -> i2c0_sda_1v8
CFG_FUNC0 | SLOW_SLEW, // 97 : I2C0_SCL -> i2c0_scl_1v8
CFG_DISABLED, // 98 : GPIO[38] ->
CFG_FUNC0 | SLOW_SLEW, // 99 : UART2_TXD -> uart2_soc2wlan_tx
CFG_FUNC0, // 100 : UART2_RXD -> uart2_wlan2soc_tx
CFG_OUT_1 | SLOW_SLEW, // 101 : UART2_RTSN -> uart2_soc2wlan_rts_l
CFG_FUNC0, // 102 : UART2_CTSN -> uart2_wlan2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 103 : DWI_DO -> dwi_ap_do
/* Port 13 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 104 : DWI_CLK -> dwi_ap_clk
CFG_FUNC0 | SLOW_SLEW, // 105 : WDOG -> wdog_soc
CFG_IN | PULL_UP, // 106 : GPIO[13] -> gpio_grape_irq_l
CFG_IN | PULL_UP, // 107 : GPIO[19] -> gpio_pmu2soc_irq_l
CFG_IN, // 108 : GPIO[26] -> gpio_force_dfu
CFG_DISABLED, // 109 : GPIO[27] -> tp_gpio_dfu_status
CFG_FUNC0 | SLOW_SLEW, // 110 : SOCHOT0 -> sochot0_l
CFG_FUNC0 | SLOW_SLEW, // 111 : SOCHOT1 -> sochot1_l
/* Port 14 */
CFG_DISABLED, // 112 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 113 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 114 : GPIO[8] -> gpio_board_rev0
CFG_DISABLED, // 115 : GPIO[9] -> gpio_board_rev1
CFG_DISABLED, // 116 : GPIO[10] -> gpio_board_rev2
CFG_IN | PULL_UP, // 117 : GPIO[15] -> gpio_als1_irq_l
CFG_IN | PULL_UP | SLOW_SLEW, // 118 : UART4_TXD -> uart4_soc2oslo_tx
CFG_FUNC0, // 119 : UART4_RXD -> uart4_oslo2soc_tx
/* Port 15 */
CFG_IN | PULL_UP | SLOW_SLEW, // 120 : UART4_RTSN -> uart4_soc2oslo_rts_l
CFG_FUNC0, // 121 : UART4_CTSN -> uart4_oslo2soc_rts_l
CFG_FUNC0 | SLOW_SLEW, // 122 : SPI3_MOSI -> spi_mesa_mosi
CFG_FUNC0, // 123 : SPI3_MISO -> spi_mesa_miso
CFG_FUNC0 | SLOW_SLEW | INPUT_SCHMITT, // 124 : SPI3_SCLK -> spi_mesa_sclk_r
CFG_IN | PULL_DOWN, // 125 : SPI3_SSIN -> gpio_mesa2soc_int
CFG_DISABLED, // 126 : GPIO[24] -> bb_jtag_tms
CFG_IN | PULL_DOWN, // 127 : GPIO[30] -> hsic1_bb2soc_device_rdy
/* Port 16 */
CFG_IN | SLOW_SLEW, // 128 : GPIO[31] -> gpio_soc2bb_rst_l
CFG_OUT_0 | SLOW_SLEW, // 129 : GPIO[32] -> hsic1_soc2bb_host_rdy
CFG_OUT_0 | SLOW_SLEW, // 130 : GPIO[33] -> gpio_soc2bb_coredump
CFG_IN | PULL_UP, // 131 : GPIO[40] -> gpio_als2_irq_l
CFG_IN | PULL_DOWN | SLOW_SLEW, // 132 : GPIO[41] -> gpio_soc2oslo_fw_dwl_req
CFG_DISABLED, // 133 : I2S4_MCK -> bb_jtag_tck
CFG_DISABLED, // 134 : I2S4_LRCK ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 135 : I2S4_BCLK -> gpio_soc2oslo_en
/* Port 17 */
CFG_DISABLED, // 136 : I2S4_DOUT ->
CFG_DISABLED, // 137 : I2S4_DIN ->
CFG_DISABLED, // 138 : I2C1_SDA ->
CFG_DISABLED, // 139 : I2C1_SCL ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 18 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 19 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 20 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 160 : I2S0_LRCK -> i2s0_codec_asp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 161 : I2S0_BCLK -> i2s0_codec_asp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 162 : I2S0_DOUT -> i2s0_codec_asp_dout
CFG_FUNC0, // 163 : I2S0_DIN -> i2s0_codec_asp_din
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 164 : I2S1_MCK -> i2s1_spkamp_mck_r
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 165 : I2S1_LRCK -> i2s1_spkamp_lrck
CFG_FUNC0 | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 166 : I2S1_BCLK -> i2s1_spkamp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 167 : I2S1_DOUT -> i2s1_spkamp_dout
/* Port 21 */
CFG_FUNC0, // 168 : I2S1_DIN -> i2s1_spkamp_din
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 169 : I2S2_LRCK -> i2s2_codec_xsp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 170 : I2S2_BCLK -> i2s2_codec_xsp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 171 : I2S2_DOUT -> i2s2_codec_xsp_dout
CFG_FUNC0, // 172 : I2S2_DIN -> i2s2_codec_xsp_din
CFG_FUNC0 | SLOW_SLEW, // 173 : UART1_TXD -> uart1_soc2bt_tx
CFG_FUNC0, // 174 : UART1_RXD -> uart1_bt2soc_tx
CFG_OUT_1 | SLOW_SLEW, // 175 : UART1_RTSN -> uart1_soc2bt_rts_l
/* Port 22 */
CFG_FUNC0, // 176 : UART1_CTSN -> uart1_bt2soc_rts_l
CFG_FUNC0, // 177 : EDP_HPD -> edp_hpd
CFG_IN | SLOW_SLEW, // 178 : UART3_TXD -> uart3_soc2bb_tx
CFG_FUNC0, // 179 : UART3_RXD -> uart3_bb2soc_tx
CFG_IN | SLOW_SLEW, // 180 : UART3_RTSN -> uart3_soc2bb_rts_l
CFG_FUNC0, // 181 : UART3_CTSN -> uart3_bb2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 182 : SPI2_SCLK -> spi2_codec_sclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 183 : SPI2_MOSI -> spi2_codec_mosi
/* Port 23 */
CFG_FUNC0, // 184 : SPI2_MISO -> spi2_codec_miso
CFG_OUT_1 | SLOW_SLEW, // 185 : SPI2_SSIN -> spi2_codec_cs_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 186 : ISP0_SDA -> isp0_cam_rear_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 187 : ISP0_SCL -> isp0_cam_rear_scl
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 188 : ISP1_SDA -> isp1_cam_front_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 189 : ISP1_SCL -> isp1_cam_front_scl
CFG_OUT_0 | SLOW_SLEW, // 190 : SENSOR0_RST -> isp0_cam_rear_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 191 : SENSOR0_CLK -> isp0_cam_rear_clk_r
/* Port 24 */
CFG_DISABLED, // 192 : SENSOR0_XSHUTDOWN ->
CFG_DISABLED, // 193 : SENSOR0_ISTRB ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 194 : ISP_UART0_TXD -> soc2oscar_isp_uart_txd
CFG_FUNC0, // 195 : ISP_UART0_RXD -> oscar2soc_isp_uart_rxd
CFG_OUT_0 | SLOW_SLEW, // 196 : SENSOR1_RST -> isp1_cam_front_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 197 : SENSOR1_CLK -> isp1_cam_front_clk_r
CFG_DISABLED, // 198 : SENSOR1_XSHUTDOWN ->
CFG_DISABLED, // 199 : SENSOR1_ISTRB ->
/* Port 25 */
CFG_IN | PULL_DOWN | SLOW_SLEW, // 200 : UART7_TXD -> uart7_soc2oscar_txd
CFG_FUNC0, // 201 : UART7_RXD -> uart7_oscar2soc_rxd
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 202 : I2S0_MCK -> i2s0_codec_asp_mck_r
CFG_DISABLED, // 203 : I2S2_MCK ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
};
static const uint32_t pinconfig_j97dev_0[GPIO_GROUP_COUNT * GPIOPADPINS] = {
/* Port 0 */
CFG_DISABLED, // 0 : ULPI_DIR -> nc_soc_gpio_0
CFG_DISABLED, // 1 : ULPI_STP ->
CFG_IN | PULL_UP, // 2 : ULPI_NXT -> gpio_spkamp_left_irq_l
CFG_DISABLED, // 3 : ULPI_DATA[7] ->
CFG_IN | PULL_UP, // 4 : ULPI_DATA[6] -> gpio_spkamp_right_irq_l
CFG_DISABLED, // 5 : ULPI_DATA[5] ->
CFG_OUT_0 | SLOW_SLEW, // 6 : ULPI_DATA[4] -> gpio_spkamp_keepalive
CFG_DISABLED, // 7 : ULPI_CLK ->
/* Port 1 */
CFG_DISABLED, // 8 : ULPI_DATA[3] ->
CFG_DISABLED, // 9 : ULPI_DATA[2] ->
CFG_DISABLED, // 10 : ULPI_DATA[1] -> i2c1_soc2oscar_swdio_1v8
CFG_DISABLED, // 11 : ULPI_DATA[0] -> i2c1_soc2oscar_swdclk_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 12 : SPI1_SCLK -> spi1_grape_sclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 13 : SPI1_MOSI -> spi1_grape_mosi
CFG_FUNC0, // 14 : SPI1_MISO -> spi1_grape_miso
CFG_OUT_1 | SLOW_SLEW, // 15 : SPI1_SSIN -> spi1_grape_cs_l
/* Port 2 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 3 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 4 */
CFG_IN, // 32 : GPIO[11] -> gpio_btn_home_l
CFG_IN, // 33 : GPIO[12] -> gpio_btn_onoff_l
CFG_DISABLED, // 34 : I2S3_MCK ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 35 : I2S3_LRCK -> i2s3_soc2bt_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 36 : I2S3_BCLK -> i2s3_soc2bt_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 37 : I2S3_DOUT -> i2s3_soc2bt_data
CFG_FUNC0, // 38 : I2S3_DIN -> i2s3_bt2soc_data
CFG_FUNC0 | SLOW_SLEW, // 39 : CLK32K_OUT -> clk_32k_soc2cumulus
/* Port 5 */
CFG_DISABLED, // 40 : PCIE_CLKREQ0_N ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW | INPUT_SCHMITT, // 41 : PCIE_CLKREQ1_N -> pcie1_wlan2soc_clkreq_l
CFG_DISABLED, // 42 : NAND_SYS_CLK ->
CFG_OUT_0 | SLOW_SLEW, // 43 : GPIO[0] -> gpio_soc2bb_wake_modem
CFG_IN | PULL_UP, // 44 : GPIO[1] -> gpio_codec_irq_l
CFG_IN | PULL_UP, // 45 : GPIO[2] -> gpio_btn_vol_up_l
CFG_IN | PULL_UP, // 46 : GPIO[3] -> gpio_btn_vol_down_l
CFG_OUT_0 | SLOW_SLEW, // 47 : GPIO[4] -> gpio_soc2grape_1v8_en
/* Port 6 */
CFG_DISABLED, // 48 : GPIO[5] -> GPIO_SOC2CODEC_RST_L
CFG_OUT_0 | SLOW_SLEW, // 49 : GPIO[6] -> gpio_soc2aj_hs4_shunt_en
CFG_OUT_0 | SLOW_SLEW, // 50 : GPIO[7] -> gpio_soc2aj_hs3_shunt_en
CFG_DISABLED, // 51 : GPIO[14] -> bb_ipc_gpio
CFG_DISABLED, // 52 : GPIO[16] -> gpio_board_id3
CFG_IN | PULL_DOWN, // 53 : GPIO[17] -> gpio_bb2soc_reset_det_l
CFG_DISABLED, // 54 : GPIO[18] -> gpio_boot_config0
CFG_OUT_0 | SLOW_SLEW, // 55 : GPIO[20] -> gpio_soc2pmu_keepact
/* Port 7 */
CFG_OUT_0 | SLOW_SLEW, // 56 : GPIO[21] -> gpio_grape_rst_l
CFG_FUNC0 | SLOW_SLEW, // 57 : UART5_RTXD -> uart5_batt_rtxd
CFG_DISABLED, // 58 : UART8_TXD ->
CFG_IN, // 59 : UART8_RXD -> pmu_gpio_oscar2pmu_host_wake
CFG_DISABLED, // 60 : SPI0_SCLK -> gpio_board_id0
CFG_DISABLED, // 61 : SPI0_MOSI -> gpio_board_id1
CFG_DISABLED, // 62 : SPI0_MISO -> gpio_board_id2
CFG_OUT_0 | SLOW_SLEW, // 63 : SPI0_SSIN -> gpio_soc2wlan_pcie_dev_wake
/* Port 8 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 64 : I2C2_SDA -> i2c2_sda_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 65 : I2C2_SCL -> i2c2_scl_1v8
CFG_DISABLED, // 66 : GPIO[22] -> gpio_bb2soc_gps_sync
CFG_IN | SLOW_SLEW, // 67 : GPIO[23] -> gpio_soc2bb_radio_on_l
CFG_DISABLED, // 68 : GPIO[25] -> gpio_boot_config1
CFG_DISABLED, // 69 : GPIO[28] -> gpio_boot_config2
CFG_DISABLED, // 70 : GPIO[29] ->
CFG_DISABLED, // 71 : GPIO[34] ->
/* Port 9 */
CFG_OUT_0 | SLOW_SLEW, // 72 : GPIO[35] -> gpio_soc2bt_wake
CFG_IN, // 73 : GPIO[36] -> gpio_ts2soc2pmu_int
CFG_DISABLED, // 74 : GPIO[37] ->
CFG_DISABLED, // 75 : GPIO[39]/PCIE_PERST0_N ->
CFG_DISABLED, // 76 : GPIO[42] ->
CFG_IN | DRIVE_X2 | SLOW_SLEW, // 77 : GPIO[43]/PCIE_PERST1_N -> pcie1_soc2wlan_rst_l
CFG_OUT_0 | PULL_DOWN, // 78 : DISP_VSYNC -> display_sync
CFG_FUNC0 | SLOW_SLEW, // 79 : UART0_TXD -> uart0_soc_txd
/* Port 10 */
CFG_FUNC0, // 80 : UART0_RXD -> uart0_soc_rxd
CFG_OUT_0 | SLOW_SLEW, // 81 : TMR32_PWM0 -> oscar_time_sync_host_int
CFG_DISABLED, // 82 : TMR32_PWM1 ->
CFG_DISABLED, // 83 : TMR32_PWM2 ->
CFG_FUNC0 | SLOW_SLEW, // 84 : UART6_TXD -> uart6_ts_acc_txd
CFG_FUNC0, // 85 : UART6_RXD -> uart6_ts_acc_rxd
CFG_FUNC0 | SLOW_SLEW, // 86 : I2C3_SDA -> i2c3_sda_1v8
CFG_FUNC0 | SLOW_SLEW, // 87 : I2C3_SCL -> i2c3_scl_1v8
/* Port 11 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 12 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 96 : I2C0_SDA -> i2c0_sda_1v8
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 97 : I2C0_SCL -> i2c0_scl_1v8
CFG_DISABLED, // 98 : GPIO[38] ->
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 99 : UART2_TXD -> uart2_soc2wlan_tx
CFG_FUNC0, // 100 : UART2_RXD -> uart2_wlan2soc_tx
CFG_OUT_1 | DRIVE_X2 | SLOW_SLEW, // 101 : UART2_RTSN -> uart2_soc2wlan_rts_l
CFG_FUNC0, // 102 : UART2_CTSN -> uart2_wlan2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 103 : DWI_DO -> dwi_ap_do
/* Port 13 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 104 : DWI_CLK -> dwi_ap_clk
CFG_FUNC0 | SLOW_SLEW, // 105 : WDOG -> wdog_soc
CFG_IN | PULL_UP, // 106 : GPIO[13] -> gpio_grape_irq_l
CFG_IN | PULL_UP, // 107 : GPIO[19] -> gpio_pmu2soc_irq_l
CFG_IN, // 108 : GPIO[26] -> gpio_force_dfu
CFG_DISABLED, // 109 : GPIO[27] -> tp_gpio_dfu_status
CFG_FUNC0 | SLOW_SLEW, // 110 : SOCHOT0 -> sochot0_l
CFG_FUNC0 | SLOW_SLEW, // 111 : SOCHOT1 -> sochot1_l
/* Port 14 */
CFG_DISABLED, // 112 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 113 : UNSPECIFIED -> UNSPECIFIED
CFG_DISABLED, // 114 : GPIO[8] -> gpio_board_rev0
CFG_DISABLED, // 115 : GPIO[9] -> gpio_board_rev1
CFG_DISABLED, // 116 : GPIO[10] -> gpio_board_rev2
CFG_IN | PULL_UP, // 117 : GPIO[15] -> gpio_als1_irq_l
CFG_IN | PULL_UP | DRIVE_X2 | SLOW_SLEW, // 118 : UART4_TXD -> uart4_soc2oslo_tx
CFG_FUNC0, // 119 : UART4_RXD -> uart4_oslo2soc_tx
/* Port 15 */
CFG_IN | PULL_UP | DRIVE_X2 | SLOW_SLEW, // 120 : UART4_RTSN -> uart4_soc2oslo_rts_l
CFG_FUNC0, // 121 : UART4_CTSN -> uart4_oslo2soc_rts_l
CFG_FUNC0 | SLOW_SLEW, // 122 : SPI3_MOSI -> spi_mesa_mosi
CFG_FUNC0, // 123 : SPI3_MISO -> spi_mesa_miso
CFG_FUNC0 | SLOW_SLEW | INPUT_SCHMITT, // 124 : SPI3_SCLK -> spi_mesa_sclk_r
CFG_IN | PULL_DOWN, // 125 : SPI3_SSIN -> gpio_mesa2soc_int
CFG_DISABLED, // 126 : GPIO[24] -> bb_jtag_tms
CFG_IN | PULL_DOWN, // 127 : GPIO[30] -> hsic1_bb2soc_device_rdy
/* Port 16 */
CFG_IN | SLOW_SLEW, // 128 : GPIO[31] -> gpio_soc2bb_rst_l
CFG_OUT_0 | SLOW_SLEW, // 129 : GPIO[32] -> hsic1_soc2bb_host_rdy
CFG_OUT_0 | SLOW_SLEW, // 130 : GPIO[33] -> gpio_soc2bb_coredump
CFG_IN | PULL_UP, // 131 : GPIO[40] -> gpio_als2_irq_l
CFG_IN | PULL_DOWN | SLOW_SLEW, // 132 : GPIO[41] -> gpio_soc2oslo_fw_dwl_req
CFG_DISABLED, // 133 : I2S4_MCK -> bb_jtag_tck
CFG_DISABLED, // 134 : I2S4_LRCK ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 135 : I2S4_BCLK -> gpio_soc2oslo_en
/* Port 17 */
CFG_DISABLED, // 136 : I2S4_DOUT ->
CFG_DISABLED, // 137 : I2S4_DIN ->
CFG_DISABLED, // 138 : I2C1_SDA ->
CFG_DISABLED, // 139 : I2C1_SCL ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 18 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 19 */
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
/* Port 20 */
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 160 : I2S0_LRCK -> i2s0_codec_asp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 161 : I2S0_BCLK -> i2s0_codec_asp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 162 : I2S0_DOUT -> i2s0_codec_asp_dout
CFG_FUNC0, // 163 : I2S0_DIN -> i2s0_codec_asp_din
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 164 : I2S1_MCK -> i2s1_spkamp_mck_r
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 165 : I2S1_LRCK -> i2s1_spkamp_lrck
CFG_FUNC0 | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 166 : I2S1_BCLK -> i2s1_spkamp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 167 : I2S1_DOUT -> i2s1_spkamp_dout
/* Port 21 */
CFG_FUNC0, // 168 : I2S1_DIN -> i2s1_spkamp_din
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 169 : I2S2_LRCK -> i2s2_codec_xsp_lrck
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 170 : I2S2_BCLK -> i2s2_codec_xsp_bclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 171 : I2S2_DOUT -> i2s2_codec_xsp_dout
CFG_FUNC0, // 172 : I2S2_DIN -> i2s2_codec_xsp_din
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 173 : UART1_TXD -> uart1_soc2bt_tx
CFG_FUNC0, // 174 : UART1_RXD -> uart1_bt2soc_tx
CFG_OUT_1 | DRIVE_X2 | SLOW_SLEW, // 175 : UART1_RTSN -> uart1_soc2bt_rts_l
/* Port 22 */
CFG_FUNC0, // 176 : UART1_CTSN -> uart1_bt2soc_rts_l
CFG_FUNC0, // 177 : EDP_HPD -> edp_hpd
CFG_IN | DRIVE_X2 | SLOW_SLEW, // 178 : UART3_TXD -> uart3_soc2bb_tx
CFG_FUNC0, // 179 : UART3_RXD -> uart3_bb2soc_tx
CFG_IN | DRIVE_X2 | SLOW_SLEW, // 180 : UART3_RTSN -> uart3_soc2bb_rts_l
CFG_FUNC0, // 181 : UART3_CTSN -> uart3_bb2soc_rts_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 182 : SPI2_SCLK -> spi2_codec_sclk
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 183 : SPI2_MOSI -> spi2_codec_mosi
/* Port 23 */
CFG_FUNC0, // 184 : SPI2_MISO -> spi2_codec_miso
CFG_OUT_1 | SLOW_SLEW, // 185 : SPI2_SSIN -> spi2_codec_cs_l
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 186 : ISP0_SDA -> isp0_cam_rear_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 187 : ISP0_SCL -> isp0_cam_rear_scl
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 188 : ISP1_SDA -> isp1_cam_front_sda
CFG_FUNC0 | DRIVE_X2 | SLOW_SLEW, // 189 : ISP1_SCL -> isp1_cam_front_scl
CFG_OUT_0 | SLOW_SLEW, // 190 : SENSOR0_RST -> isp0_cam_rear_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 191 : SENSOR0_CLK -> isp0_cam_rear_clk_r
/* Port 24 */
CFG_DISABLED, // 192 : SENSOR0_XSHUTDOWN ->
CFG_DISABLED, // 193 : SENSOR0_ISTRB ->
CFG_IN | PULL_DOWN | SLOW_SLEW, // 194 : ISP_UART0_TXD -> soc2oscar_isp_uart_txd
CFG_FUNC0, // 195 : ISP_UART0_RXD -> oscar2soc_isp_uart_rxd
CFG_OUT_0 | SLOW_SLEW, // 196 : SENSOR1_RST -> isp1_cam_front_shutdown_l
CFG_OUT_0 | DRIVE_X4 | SLOW_SLEW, // 197 : SENSOR1_CLK -> isp1_cam_front_clk_r
CFG_DISABLED, // 198 : SENSOR1_XSHUTDOWN ->
CFG_DISABLED, // 199 : SENSOR1_ISTRB ->
/* Port 25 */
CFG_IN | PULL_DOWN | DRIVE_X2 | SLOW_SLEW, // 200 : UART7_TXD -> uart7_soc2oscar_txd
CFG_FUNC0, // 201 : UART7_RXD -> uart7_oscar2soc_rxd
CFG_FUNC0 | DRIVE_X4 | SLOW_SLEW, // 202 : I2S0_MCK -> i2s0_codec_asp_mck_r
CFG_DISABLED, // 203 : I2S2_MCK ->
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
CFG_DISABLED,
};
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[] = {
{ TARGET_BOARD_ID_J96AP, ~0, { pinconfig_j96ap_0 } },
{ TARGET_BOARD_ID_J96DEV, ~0, { pinconfig_j96dev_0 } },
{ TARGET_BOARD_ID_J97AP, ~0, { pinconfig_j97ap_0 } },
{ TARGET_BOARD_ID_J97DEV, ~0, { pinconfig_j97dev_0 } },
};
const uint32_t * target_get_default_gpio_cfg(int 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];
}