2018-03-27 00:04:16 +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-07 01:11:46 +00:00
|
|
|
#ifndef _T210_H_
|
|
|
|
#define _T210_H_
|
|
|
|
|
2018-08-13 09:58:24 +01:00
|
|
|
#include "../utils/types.h"
|
2018-03-07 01:11:46 +00:00
|
|
|
|
2018-09-18 21:38:54 +01:00
|
|
|
#define BOOTROM_BASE 0x100000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define HOST1X_BASE 0x50000000
|
2018-08-21 02:26:14 +01:00
|
|
|
#define BPMP_CACHE_BASE 0x50040000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define DISPLAY_A_BASE 0x54200000
|
|
|
|
#define DSI_BASE 0x54300000
|
|
|
|
#define VIC_BASE 0x54340000
|
2018-03-14 23:26:19 +00:00
|
|
|
#define TSEC_BASE 0x54500000
|
|
|
|
#define SOR1_BASE 0x54580000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define TMR_BASE 0x60005000
|
|
|
|
#define CLOCK_BASE 0x60006000
|
2018-03-14 23:26:19 +00:00
|
|
|
#define FLOW_CTLR_BASE 0x60007000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define SYSREG_BASE 0x6000C000
|
2018-03-14 23:26:19 +00:00
|
|
|
#define SB_BASE (SYSREG_BASE + 0x200)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define GPIO_BASE 0x6000D000
|
|
|
|
#define GPIO_1_BASE (GPIO_BASE)
|
|
|
|
#define GPIO_2_BASE (GPIO_BASE + 0x100)
|
|
|
|
#define GPIO_3_BASE (GPIO_BASE + 0x200)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define GPIO_4_BASE (GPIO_BASE + 0x300)
|
|
|
|
#define GPIO_5_BASE (GPIO_BASE + 0x400)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define GPIO_6_BASE (GPIO_BASE + 0x500)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define GPIO_7_BASE (GPIO_BASE + 0x600)
|
|
|
|
#define GPIO_8_BASE (GPIO_BASE + 0x700)
|
2018-03-14 23:26:19 +00:00
|
|
|
#define EXCP_VEC_BASE 0x6000F000
|
2018-09-09 23:44:04 +01:00
|
|
|
#define IPATCH_BASE 0x6001DC00
|
2018-05-01 06:15:48 +01:00
|
|
|
#define APB_MISC_BASE 0x70000000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define PINMUX_AUX_BASE 0x70003000
|
|
|
|
#define UART_BASE 0x70006000
|
2018-09-18 21:38:54 +01:00
|
|
|
#define PWM_BASE 0x7000A000
|
2018-06-26 17:00:46 +01:00
|
|
|
#define RTC_BASE 0x7000E000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define PMC_BASE 0x7000E400
|
2018-09-18 21:38:54 +01:00
|
|
|
#define SYSCTR0_BASE 0x700F0000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define FUSE_BASE 0x7000F800
|
2018-05-01 06:15:48 +01:00
|
|
|
#define KFUSE_BASE 0x7000FC00
|
|
|
|
#define SE_BASE 0x70012000
|
2018-03-07 01:11:46 +00:00
|
|
|
#define MC_BASE 0x70019000
|
|
|
|
#define EMC_BASE 0x7001B000
|
|
|
|
#define MIPI_CAL_BASE 0x700E3000
|
|
|
|
#define I2S_BASE 0x702D1000
|
2018-09-18 21:38:54 +01:00
|
|
|
#define CL_DVFS_BASE 0x70110000
|
2018-03-07 01:11:46 +00:00
|
|
|
|
|
|
|
#define _REG(base, off) *(vu32 *)((base) + (off))
|
|
|
|
|
|
|
|
#define HOST1X(off) _REG(HOST1X_BASE, off)
|
2018-08-21 02:26:14 +01:00
|
|
|
#define BPMP_CACHE_CTRL(off) _REG(BPMP_CACHE_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define DISPLAY_A(off) _REG(DISPLAY_A_BASE, off)
|
|
|
|
#define DSI(off) _REG(DSI_BASE, off)
|
|
|
|
#define VIC(off) _REG(VIC_BASE, off)
|
2018-03-14 23:26:19 +00:00
|
|
|
#define TSEC(off) _REG(TSEC_BASE, off)
|
|
|
|
#define SOR1(off) _REG(SOR1_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define TMR(off) _REG(TMR_BASE, off)
|
|
|
|
#define CLOCK(off) _REG(CLOCK_BASE, off)
|
2018-03-14 23:26:19 +00:00
|
|
|
#define FLOW_CTLR(off) _REG(FLOW_CTLR_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define SYSREG(off) _REG(SYSREG_BASE, off)
|
2018-03-14 23:26:19 +00:00
|
|
|
#define SB(off) _REG(SB_BASE, off)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define GPIO(off) _REG(GPIO_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define GPIO_1(off) _REG(GPIO_1_BASE, off)
|
|
|
|
#define GPIO_2(off) _REG(GPIO_2_BASE, off)
|
|
|
|
#define GPIO_3(off) _REG(GPIO_3_BASE, off)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define GPIO_4(off) _REG(GPIO_4_BASE, off)
|
|
|
|
#define GPIO_5(off) _REG(GPIO_5_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define GPIO_6(off) _REG(GPIO_6_BASE, off)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define GPIO_7(off) _REG(GPIO_7_BASE, off)
|
|
|
|
#define GPIO_8(off) _REG(GPIO_8_BASE, off)
|
2018-03-14 23:26:19 +00:00
|
|
|
#define EXCP_VEC(off) _REG(EXCP_VEC_BASE, off)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define APB_MISC(off) _REG(APB_MISC_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define PINMUX_AUX(off) _REG(PINMUX_AUX_BASE, off)
|
2018-09-18 22:01:42 +01:00
|
|
|
#define PWM(off) _REG(PWM_BASE, off)
|
2018-06-26 17:00:46 +01:00
|
|
|
#define RTC(off) _REG(RTC_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define PMC(off) _REG(PMC_BASE, off)
|
|
|
|
#define SYSCTR0(off) _REG(SYSCTR0_BASE, off)
|
|
|
|
#define FUSE(off) _REG(FUSE_BASE, off)
|
2018-05-01 06:15:48 +01:00
|
|
|
#define KFUSE(off) _REG(KFUSE_BASE, off)
|
|
|
|
#define SE(off) _REG(SE_BASE, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
#define MC(off) _REG(MC_BASE, off)
|
|
|
|
#define EMC(off) _REG(EMC_BASE, off)
|
|
|
|
#define MIPI_CAL(off) _REG(MIPI_CAL_BASE, off)
|
|
|
|
#define I2S(off) _REG(I2S_BASE, off)
|
2018-09-18 21:38:54 +01:00
|
|
|
#define CL_DVFS(off) _REG(CL_DVFS_BASE, off)
|
|
|
|
#define TEST_REG(off) _REG(0x0, off)
|
2018-03-07 01:11:46 +00:00
|
|
|
|
2018-07-22 13:18:30 +01:00
|
|
|
/*! Misc registers. */
|
2018-09-18 22:11:18 +01:00
|
|
|
#define APB_MISC_PP_STRAPPING_OPT_A 0x08
|
2018-07-22 13:18:30 +01:00
|
|
|
#define APB_MISC_PP_PINMUX_GLOBAL 0x40
|
2018-09-18 22:01:42 +01:00
|
|
|
#define APB_MISC_GP_LCD_BL_PWM_CFGPADCTRL 0xA34
|
2018-08-05 12:40:32 +01:00
|
|
|
#define APB_MISC_GP_WIFI_EN_CFGPADCTRL 0xB64
|
|
|
|
#define APB_MISC_GP_WIFI_RST_CFGPADCTRL 0xB68
|
2018-07-22 13:18:30 +01:00
|
|
|
|
2018-03-07 01:11:46 +00:00
|
|
|
/*! System registers. */
|
|
|
|
#define AHB_ARBITRATION_XBAR_CTRL 0xE0
|
2018-07-22 13:18:30 +01:00
|
|
|
#define AHB_AHB_SPARE_REG 0x110
|
2018-03-07 01:11:46 +00:00
|
|
|
|
2018-03-14 23:26:19 +00:00
|
|
|
/*! Secure boot registers. */
|
2018-05-01 06:15:48 +01:00
|
|
|
#define SB_CSR 0x0
|
2018-03-14 23:26:19 +00:00
|
|
|
#define SB_AA64_RESET_LOW 0x30
|
|
|
|
#define SB_AA64_RESET_HIGH 0x34
|
|
|
|
|
2018-03-07 01:11:46 +00:00
|
|
|
/*! SYSCTR0 registers. */
|
|
|
|
#define SYSCTR0_CNTFID0 0x20
|
|
|
|
|
|
|
|
#endif
|