| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef SRC_DEVICES_BOARD_DRIVERS_VIM3_VIM3_GPIOS_H_ |
| #define SRC_DEVICES_BOARD_DRIVERS_VIM3_VIM3_GPIOS_H_ |
| |
| #include <soc/aml-a311d/a311d-gpio.h> |
| |
| // VIM3 specific assignments should be placed in this file. |
| // SoC specific definitions should be placed in soc/aml-a311d-gpio.h |
| |
| // Ethernet |
| #define VIM3_ETH_MAC_INTR A311D_GPIOZ(14) |
| |
| // 40-pin J4 header |
| #define VIM3_J4_PIN_39 A311D_GPIOZ(15) |
| |
| // SDIO |
| #define A311D_SDIO_D0 A311D_GPIOX(0) |
| #define A311D_SDIO_D1 A311D_GPIOX(1) |
| #define A311D_SDIO_D2 A311D_GPIOX(2) |
| #define A311D_SDIO_D3 A311D_GPIOX(3) |
| #define A311D_SDIO_CLK A311D_GPIOX(4) |
| #define A311D_SDIO_CMD A311D_GPIOX(5) |
| |
| // Audio |
| #define VIM3_I2SB_SCLK A311D_GPIOA(1) |
| #define VIM3_I2SB_LRCLK A311D_GPIOA(2) |
| #define VIM3_I2SB_SDO A311D_GPIOA(3) |
| #define VIM3_I2SB_SDI A311D_GPIOA(4) |
| |
| #define VIM3_BTPCM_CLK A311D_GPIOX(11) |
| #define VIM3_BTPCM_SYNC A311D_GPIOX(10) |
| #define VIM3_BTPCM_OUT A311D_GPIOX(9) |
| #define VIM3_BTPCM_IN A311D_GPIOX(8) |
| |
| // Display |
| #define VIM3_HPD_IN A311D_GPIOH(2) |
| |
| // USB Power Delivery (Fusb302) |
| #define VIM3_FUSB302_INT A311D_GPIOAO(8) |
| |
| #define VIM3_TOUCH_PANEL_INTERRUPT A311D_GPIOA(5) |
| |
| #define VIM3_POWER_BUTTON A311D_GPIOAO(7) |
| |
| // USB Power Enable for USB 2.0 and USB 3.0 ports |
| #define VIM3_USB_PWR A311D_GPIOA(6) |
| |
| // WIFI |
| #define VIM3_WIFI_WAKE_HOST A311D_GPIOX(7) |
| #define VIM3_WIFI_32K A311D_GPIOX(16) |
| |
| // BT |
| #define VIM3_BT_EN A311D_GPIOX(17) |
| |
| // Pin alternate functions |
| #define A311D_GPIOA_1_TDMB_SCLK_FN 1 |
| #define A311D_GPIOA_1_TDMB_SLV_SCLK_FN 2 |
| #define A311D_GPIOA_2_TDMB_FS_FN 1 |
| #define A311D_GPIOA_2_TDMB_SLV_FS_FN 2 |
| #define A311D_GPIOA_3_TDMB_D0_FN 1 |
| #define A311D_GPIOA_3_TDMB_DIN0_FN 2 |
| #define A311D_GPIOA_4_TDMB_D1_FN 1 |
| #define A311D_GPIOA_4_TDMB_DIN1_FN 2 |
| #define A311D_GPIOX_8_TDMA_D1_FN 1 |
| #define A311D_GPIOX_8_TDMA_DIN1_FN 2 |
| #define A311D_GPIOX_9_TDMA_D0_FN 1 |
| #define A311D_GPIOX_9_TDMA_DIN0_FN 2 |
| #define A311D_GPIOX_10_TDMA_FS_FN 1 |
| #define A311D_GPIOX_11_TDMA_SCLK_FN 1 |
| |
| #define VIM3_GPIO_ID 1u |
| #define VIM3_EXPANDER_GPIO_ID 2u |
| |
| #define VIM3_EXPANDER_GPIO(n) (n) |
| |
| #define VIM3_LCD_RESET VIM3_EXPANDER_GPIO(0) |
| |
| // This pin is named LCD_EN on VIM3 V14 Schematics [1] (Page 6). Though per |
| // the TS050 touchscreen V13 schematics [2], the pin actually only controls the |
| // power of the backlight module; the LCD panel is always powered. Thus, we |
| // rename the pin based on its actual behavior. |
| // |
| // [1] https://dl.khadas.com/products/vim3/schematic/vim3_sch_v14.pdf |
| // [1] https://dl.khadas.com/hardware/Accessories/TS050/TS050_V13_Sch.pdf |
| #define VIM3_LCD_BACKLIGHT_ENABLE VIM3_EXPANDER_GPIO(1) |
| #define VIM3_TOUCH_PANEL_RESET VIM3_EXPANDER_GPIO(6) |
| #define VIM3_SD_MODE VIM3_EXPANDER_GPIO(7) |
| |
| #endif // SRC_DEVICES_BOARD_DRIVERS_VIM3_VIM3_GPIOS_H_ |