blob: 9323406acebb75f5f31aaf271cfd246021e3a500 [file] [log] [blame]
// 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_