1
0
Fork 0
mirror of https://github.com/CTCaer/hekate.git synced 2024-11-29 21:12:06 +00:00
hekate/bdk/soc/pinmux.h

135 lines
4.7 KiB
C
Raw Normal View History

2018-03-27 00:04:16 +01:00
/*
2018-08-05 12:40:32 +01:00
* Copyright (c) 2018 naehrwert
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
2018-03-27 00:04:16 +01:00
#ifndef _PINMUX_H_
#define _PINMUX_H_
#include <utils/types.h>
2018-05-01 06:15:48 +01:00
/*! APB MISC registers. */
#define APB_MISC_GP_SDMMC1_CLK_LPBK_CONTROL 0x8D4
#define APB_MISC_GP_SDMMC3_CLK_LPBK_CONTROL 0x8D8
2018-06-23 04:37:58 +01:00
#define APB_MISC_GP_SDMMC1_PAD_CFGPADCTRL 0xA98
#define APB_MISC_GP_VGPIO_GPIO_MUX_SEL 0xB74
2018-05-01 06:15:48 +01:00
2018-03-07 01:11:46 +00:00
/*! Pinmux registers. */
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_SDMMC1_CLK 0x00
#define PINMUX_AUX_SDMMC1_CMD 0x04
#define PINMUX_AUX_SDMMC1_DAT3 0x08
#define PINMUX_AUX_SDMMC1_DAT2 0x0C
#define PINMUX_AUX_SDMMC1_DAT1 0x10
#define PINMUX_AUX_SDMMC1_DAT0 0x14
#define PINMUX_AUX_SDMMC3_CLK 0x1C
#define PINMUX_AUX_SDMMC3_CMD 0x20
#define PINMUX_AUX_SDMMC3_DAT0 0x24
#define PINMUX_AUX_SDMMC3_DAT1 0x28
#define PINMUX_AUX_SDMMC3_DAT2 0x2C
#define PINMUX_AUX_SDMMC3_DAT3 0x30
#define PINMUX_AUX_SATA_LED_ACTIVE 0x4C
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_GPIO_PA5_T210B01 PINMUX_AUX_SATA_LED_ACTIVE
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_DMIC3_CLK 0xB4
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_DMIC3_DAT 0xB8
#define PINMUX_AUX_CAM_I2C_SCL 0xD4
#define PINMUX_AUX_CAM_I2C_SDA 0xD8
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_UART2_TX 0xF4
#define PINMUX_AUX_UART3_TX 0x104
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_DAP4_DIN 0x148
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_DAP4_DOUT 0x14C
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_DAP4_SCLK 0x150
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_CLK_32K_OUT 0x164
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_GPIO_X1_AUD 0x18C
#define PINMUX_AUX_GPIO_X3_AUD 0x190
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_SPDIF_IN 0x1A4
#define PINMUX_AUX_USB_VBUS_EN0 0x1A8
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_USB_VBUS_EN1 0x1AC
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_WIFI_EN 0x1B4
#define PINMUX_AUX_WIFI_RST 0x1B8
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_AP_WAKE_NFC 0x1CC
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_NFC_EN 0x1D0
#define PINMUX_AUX_NFC_INT 0x1D4
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_CAM_RST 0x1E0
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_CAM1_PWDN 0x1EC
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_CAM2_PWDN 0x1F0
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_CAM1_STROBE 0x1F4
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_LCD_BL_PWM 0x1FC
#define PINMUX_AUX_LCD_BL_EN 0x200
#define PINMUX_AUX_LCD_RST 0x204
2020-04-27 07:47:47 +01:00
#define PINMUX_AUX_LCD_GPIO1 0x208
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_LCD_GPIO2 0x20C
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_TOUCH_CLK 0x218
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_TOUCH_INT 0x220
#define PINMUX_AUX_MOTION_INT 0x224
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_ALS_PROX_INT 0x228
#define PINMUX_AUX_BUTTON_POWER_ON 0x230
2019-09-09 14:56:37 +01:00
#define PINMUX_AUX_BUTTON_HOME 0x240
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_GPIO_PE6 0x248
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_GPIO_PE7 0x24C
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_GPIO_PH6 0x250
#define PINMUX_AUX_GPIO_PK3 0x260
2022-05-08 03:22:41 +01:00
#define PINMUX_AUX_GPIO_PK7 0x270
2019-06-30 01:40:37 +01:00
#define PINMUX_AUX_GPIO_PZ1 0x280
/* Only in T210B01 */
#define PINMUX_AUX_SDMMC2_DAT0 0x294
#define PINMUX_AUX_SDMMC2_DAT1 0x298
#define PINMUX_AUX_SDMMC2_DAT2 0x29C
#define PINMUX_AUX_SDMMC2_DAT3 0x2A0
#define PINMUX_AUX_SDMMC2_DAT4 0x2A4
#define PINMUX_AUX_SDMMC2_DAT5 0x2A8
#define PINMUX_AUX_SDMMC2_DAT6 0x2AC
#define PINMUX_AUX_SDMMC2_DAT7 0x2B0
#define PINMUX_AUX_SDMMC2_CLK 0x2B4
#define PINMUX_AUX_SDMMC2_CMD 0x2BC
/*! 0:UART-A, 1:UART-B, 3:UART-C, 3:UART-D */
2018-06-23 04:37:58 +01:00
#define PINMUX_AUX_UARTX_TX(x) (0xE4 + 0x10 * (x))
#define PINMUX_AUX_UARTX_RX(x) (0xE8 + 0x10 * (x))
2018-03-07 01:11:46 +00:00
#define PINMUX_AUX_UARTX_RTS(x) (0xEC + 0x10 * (x))
#define PINMUX_AUX_UARTX_CTS(x) (0xF0 + 0x10 * (x))
/*! 0:GEN1, 1:GEN2, 2:GEN3, 3:CAM, 4:PWR */
#define PINMUX_AUX_X_I2C_SCL(x) (0xBC + 8 * (x))
#define PINMUX_AUX_X_I2C_SDA(x) (0xC0 + 8 * (x))
2018-06-23 04:37:58 +01:00
#define PINMUX_FUNC_MASK (3 << 0)
#define PINMUX_PULL_MASK (3 << 2)
#define PINMUX_PULL_NONE (0 << 2)
#define PINMUX_PULL_DOWN (1 << 2)
#define PINMUX_PULL_UP (2 << 2)
2020-11-25 23:41:45 +00:00
#define PINMUX_TRISTATE BIT(4)
#define PINMUX_PARKED BIT(5)
#define PINMUX_INPUT_ENABLE BIT(6)
#define PINMUX_LOCK BIT(7)
#define PINMUX_LPDR BIT(8)
#define PINMUX_HSM BIT(9)
2018-06-23 04:37:58 +01:00
2020-11-25 23:41:45 +00:00
#define PINMUX_IO_HV BIT(10)
#define PINMUX_OPEN_DRAIN BIT(11)
#define PINMUX_SCHMT BIT(12)
2018-06-23 04:37:58 +01:00
2020-11-25 23:41:45 +00:00
#define PINMUX_DRIVE_MASK (3 << 13)
#define PINMUX_DRIVE_1X (0 << 13)
2018-06-23 04:37:58 +01:00
#define PINMUX_DRIVE_2X (1 << 13)
#define PINMUX_DRIVE_3X (2 << 13)
#define PINMUX_DRIVE_4X (3 << 13)
2022-10-11 04:16:38 +01:00
#define PINMUX_PREEMP BIT(15)
void pinmux_config_uart(u32 idx);
void pinmux_config_i2c(u32 idx);
#endif