You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
257 lines
11 KiB
257 lines
11 KiB
#ifndef _LS1A_H
|
|
#define _LS1A_H
|
|
|
|
#define LS1A_IO_REG_BASE 0xb2000000
|
|
|
|
/* CHIP CONFIG regs */
|
|
#define LS1A_CHIP_CFG_REG_BASE (LS1A_IO_REG_BASE + 0x00d00000)
|
|
#define LS1A_MSI_PORT_REG (LS1A_CHIP_CFG_REG_BASE + 0x0)
|
|
|
|
#define LS1A_INT_REG_BASE (LS1A_CHIP_CFG_REG_BASE + 0x0040)
|
|
|
|
#define LS1A_INT_ISR0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0040)
|
|
#define LS1A_INT_IEN0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0044)
|
|
#define LS1A_INT_SET0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0048)
|
|
#define LS1A_INT_CLR0_REG (LS1A_CHIP_CFG_REG_BASE + 0x004c)
|
|
#define LS1A_INT_POL0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0050)
|
|
#define LS1A_INT_EDGE0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0054)
|
|
//lxf add
|
|
#define LS1A_GPIO_CFG_REG0 (LS1A_CHIP_CFG_REG_BASE + 0x10c0)
|
|
#define LS1A_GPIO_CFG_REG1 (LS1A_CHIP_CFG_REG_BASE + 0x10c4)
|
|
#define LS1A_GPIO_CFG_REG2 (LS1A_CHIP_CFG_REG_BASE + 0x10c8)
|
|
|
|
#define LS1A_GPIO_IN_EN_REG0 (LS1A_CHIP_CFG_REG_BASE + 0x10d0)
|
|
#define LS1A_GPIO_IN_EN_REG1 (LS1A_CHIP_CFG_REG_BASE + 0x10d4)
|
|
#define LS1A_GPIO_IN_EN_REG2 (LS1A_CHIP_CFG_REG_BASE + 0x10d8)
|
|
|
|
#define LS1A_GPIO_IN_REG0 (LS1A_CHIP_CFG_REG_BASE + 0x10e0)
|
|
#define LS1A_GPIO_IN_REG1 (LS1A_CHIP_CFG_REG_BASE + 0x10e4)
|
|
#define LS1A_GPIO_IN_REG2 (LS1A_CHIP_CFG_REG_BASE + 0x10e8)
|
|
|
|
#define LS1A_GPIO_OUT_REG0 (LS1A_CHIP_CFG_REG_BASE + 0x10f0)
|
|
#define LS1A_GPIO_OUT_REG1 (LS1A_CHIP_CFG_REG_BASE + 0x10f4)
|
|
#define LS1A_GPIO_OUT_REG2 (LS1A_CHIP_CFG_REG_BASE + 0x10f8)
|
|
//end add
|
|
#define LS1A_DMA_ORDER_REG (LS1A_CHIP_CFG_REG_BASE + 0x0100)
|
|
#define LS1A_CHIP_CFG0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0200)
|
|
#define LS1A_CHIP_CFG1_REG (LS1A_CHIP_CFG_REG_BASE + 0x0204)
|
|
#define LS1A_CHIP_CFG2_REG (LS1A_CHIP_CFG_REG_BASE + 0x0208)
|
|
#define LS1A_CHIP_CFG3_REG (LS1A_CHIP_CFG_REG_BASE + 0x020c)
|
|
#define LS1A_CHIP_SAMP0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0210)
|
|
#define LS1A_CHIP_SAMP1_REG (LS1A_CHIP_CFG_REG_BASE + 0x0214)
|
|
#define LS1A_CHIP_SAMP2_REG (LS1A_CHIP_CFG_REG_BASE + 0x0218)
|
|
#define LS1A_CHIP_SAMP3_REG (LS1A_CHIP_CFG_REG_BASE + 0x021c)
|
|
#define LS1A_CHIP_SAMP4_REG (LS1A_CHIP_CFG_REG_BASE + 0x00d8)
|
|
#define LS1A_CHIP_SAMP5_REG (LS1A_CHIP_CFG_REG_BASE + 0x00e8)
|
|
|
|
#define LS1A_CLK_CTRL0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0220)
|
|
#define LS1A_CLK_CTRL1_REG (LS1A_CHIP_CFG_REG_BASE + 0x0224)
|
|
#define LS1A_CLK_CTRL2_REG (LS1A_CHIP_CFG_REG_BASE + 0x0228)
|
|
#define LS1A_CLK_CTRL3_REG (LS1A_CHIP_CFG_REG_BASE + 0x022c)
|
|
|
|
#define LS1A_PIXCLK0_CTRL0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0230)
|
|
#define LS1A_PIXCLK0_CTRL1_REG (LS1A_CHIP_CFG_REG_BASE + 0x0234)
|
|
#define LS1A_PIXCLK1_CTRL0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0238)
|
|
#define LS1A_PIXCLK1_CTRL1_REG (LS1A_CHIP_CFG_REG_BASE + 0x023c)
|
|
|
|
#define LS1A_CLOCK_CTRL0_REG (LS1A_CHIP_CFG_REG_BASE + 0x0220)
|
|
#define LS1A_CLOCK_CTRL1_REG (LS1A_CHIP_CFG_REG_BASE + 0x0224)
|
|
#define LS1A_CLOCK_CTRL2_REG (LS1A_CHIP_CFG_REG_BASE + 0x0228)
|
|
#define LS1A_CLOCK_CTRL3_REG (LS1A_CHIP_CFG_REG_BASE + 0x022c)
|
|
|
|
#define LS1A_WIN_CFG_BASE (LS1A_CHIP_CFG_REG_BASE + 0x80000)
|
|
#define LS1A_M4_WIN0_BASE_REG (LS1A_WIN_CFG_BASE + 0x0400)
|
|
#define LS1A_M4_WIN0_MASK_REG (LS1A_WIN_CFG_BASE + 0x0440)
|
|
#define LS1A_M4_WIN0_MMAP_REG (LS1A_WIN_CFG_BASE + 0x0480)
|
|
#define LS1A_QOS_CFG6_REG (LS1A_WIN_CFG_BASE + 0x0630)
|
|
|
|
/* USB regs */
|
|
#define LS1A_EHCI_REG_BASE (LS1A_IO_REG_BASE + 0x00e00000)
|
|
#define LS1A_OHCI_REG_BASE (LS1A_IO_REG_BASE + 0x00e08000)
|
|
|
|
/* GMAC regs */
|
|
#define LS1A_GMAC0_REG_BASE (LS1A_IO_REG_BASE + 0x00e10000)
|
|
#define LS1A_GMAC1_REG_BASE (LS1A_IO_REG_BASE + 0x00e20000)
|
|
|
|
/* HDA regs */
|
|
#define LS1A_HDA_REG_BASE (LS1A_IO_REG_BASE + 0x00e20000)
|
|
|
|
/* SATAregs */
|
|
#define LS1A_SATA_REG_BASE (LS1A_IO_REG_BASE + 0x00e30000)
|
|
#define LS1A_SATA_CLK_REG (LS1A_IO_REG_BASE + 0x00d00418)
|
|
|
|
/* GPU regs */
|
|
#define LS1A_GPU_REG_BASE (LS1A_IO_REG_BASE + 0x00e40000)
|
|
|
|
/* DC regs */
|
|
#define LS1A_DC_REG_BASE (LS1A_IO_REG_BASE + 0x00e50000)
|
|
|
|
#define LS1A_FB_CFG_DVO_REG (LS1A_DC_REG_BASE + 0x1240)
|
|
#define LS1A_FB_CFG_VGA_REG (LS1A_DC_REG_BASE + 0x1250)
|
|
#define LS1A_FB_ADDR0_DVO_REG (LS1A_DC_REG_BASE + 0x1260)
|
|
#define LS1A_FB_ADDR0_VGA_REG (LS1A_DC_REG_BASE + 0x1270)
|
|
#define LS1A_FB_ADDR1_DVO_REG (LS1A_DC_REG_BASE + 0x1580)
|
|
#define LS1A_FB_ADDR1_VGA_REG (LS1A_DC_REG_BASE + 0x1590)
|
|
#define LS1A_FB_STRI_DVO_REG (LS1A_DC_REG_BASE + 0x1280)
|
|
#define LS1A_FB_STRI_VGA_REG (LS1A_DC_REG_BASE + 0x1290)
|
|
|
|
#define LS1A_FB_CUR_CFG_REG (LS1A_DC_REG_BASE + 0x1520)
|
|
#define LS1A_FB_CUR_ADDR_REG (LS1A_DC_REG_BASE + 0x1530)
|
|
#define LS1A_FB_CUR_LOC_ADDR_REG (LS1A_DC_REG_BASE + 0x1540)
|
|
#define LS1A_FB_CUR_BACK_REG (LS1A_DC_REG_BASE + 0x1550)
|
|
#define LS1A_FB_CUR_FORE_REG (LS1A_DC_REG_BASE + 0x1560)
|
|
|
|
#define LS1A_FB_DAC_CTRL_REG (LS1A_DC_REG_BASE + 0x1600)
|
|
/* OTG regs */
|
|
#define LS1A_OTG_REG_BASE (LS1A_IO_REG_BASE + 0x00e60000)
|
|
|
|
/* SPI regs */
|
|
#define LS1A_SPI_REG_BASE (LS1A_IO_REG_BASE + 0x00e70000)
|
|
|
|
/* UART regs */
|
|
#define LS1A_UART0_REG_BASE (LS1A_IO_REG_BASE + 0x00e80000)
|
|
#define LS1A_UART1_REG_BASE (LS1A_IO_REG_BASE + 0x00e81000)
|
|
#define LS1A_UART2_REG_BASE (LS1A_IO_REG_BASE + 0x00e82000)
|
|
#define LS1A_UART3_REG_BASE (LS1A_IO_REG_BASE + 0x00e83000)
|
|
|
|
/* I2C regs */
|
|
#define LS1A_I2C0_REG_BASE (LS1A_IO_REG_BASE + 0x00e58000)
|
|
#define LS1A_I2C0_PRER_LO_REG (LS1A_I2C0_REG_BASE + (0x0 << 2))
|
|
#define LS1A_I2C0_PRER_HI_REG (LS1A_I2C0_REG_BASE + (0x1 << 2))
|
|
#define LS1A_I2C0_CTR_REG (LS1A_I2C0_REG_BASE + (0x2 << 2))
|
|
#define LS1A_I2C0_TXR_REG (LS1A_I2C0_REG_BASE + (0x3 << 2))
|
|
#define LS1A_I2C0_RXR_REG (LS1A_I2C0_REG_BASE + (0x3 << 2))
|
|
#define LS1A_I2C0_CR_REG (LS1A_I2C0_REG_BASE + (0x4 << 2))
|
|
#define LS1A_I2C0_SR_REG (LS1A_I2C0_REG_BASE + (0x4 << 2))
|
|
|
|
#define LS1A_I2C1_REG_BASE (LS1A_IO_REG_BASE + 0x00e91000)
|
|
#define LS1A_I2C1_PRER_LO_REG (LS1A_I2C1_REG_BASE + 0x0)
|
|
#define LS1A_I2C1_PRER_HI_REG (LS1A_I2C1_REG_BASE + 0x1)
|
|
#define LS1A_I2C1_CTR_REG (LS1A_I2C1_REG_BASE + 0x2)
|
|
#define LS1A_I2C1_TXR_REG (LS1A_I2C1_REG_BASE + 0x3)
|
|
#define LS1A_I2C1_RXR_REG (LS1A_I2C1_REG_BASE + 0x3)
|
|
#define LS1A_I2C1_CR_REG (LS1A_I2C1_REG_BASE + 0x4)
|
|
#define LS1A_I2C1_SR_REG (LS1A_I2C1_REG_BASE + 0x4)
|
|
|
|
#define CR_START 0x80
|
|
#define CR_STOP 0x40
|
|
#define CR_READ 0x20
|
|
#define CR_WRITE 0x10
|
|
#define CR_ACK 0x8
|
|
#define CR_IACK 0x1
|
|
|
|
#define SR_NOACK 0x80
|
|
#define SR_BUSY 0x40
|
|
#define SR_AL 0x20
|
|
#define SR_TIP 0x2
|
|
#define SR_IF 0x1
|
|
|
|
/* PWM regs */
|
|
#define LS1A_PWM_REG_BASE (LS1A_IO_REG_BASE + 0x00ea0000)
|
|
|
|
/* HPET regs */
|
|
#define LS1A_HPET_REG_BASE (LS1A_IO_REG_BASE + 0x00ec0000)
|
|
|
|
/* AC97 regs */
|
|
#define LS1A_AC97_REG_BASE (LS1A_IO_REG_BASE + 0x00ed0000)
|
|
|
|
/* NAND regs */
|
|
#define LS1A_NAND_REG_BASE (LS1A_IO_REG_BASE + 0x00ee0000)
|
|
#define LS1A_NAND_CMD_REG (LS1A_NAND_REG_BASE + 0x0000)
|
|
#define LS1A_NAND_ADDR_C_REG (LS1A_NAND_REG_BASE + 0x0004)
|
|
#define LS1A_NAND_ADDR_R_REG (LS1A_NAND_REG_BASE + 0x0008)
|
|
#define LS1A_NAND_TIMING_REG (LS1A_NAND_REG_BASE + 0x000c)
|
|
#define LS1A_NAND_IDL_REG (LS1A_NAND_REG_BASE + 0x0010)
|
|
#define LS1A_NAND_STA_IDH_REG (LS1A_NAND_REG_BASE + 0x0014)
|
|
#define LS1A_NAND_PARAM_REG (LS1A_NAND_REG_BASE + 0x0018)
|
|
#define LS1A_NAND_OP_NUM_REG (LS1A_NAND_REG_BASE + 0x001c)
|
|
#define LS1A_NAND_CSRDY_MAP_REG (LS1A_NAND_REG_BASE + 0x0020)
|
|
#define LS1A_NAND_DMA_ACC_REG (LS1A_NAND_REG_BASE + 0x0040)
|
|
|
|
/* ACPI regs *///lxf modify
|
|
#define LS1A_ACPI_REG_BASE (LS1A_IO_REG_BASE + 0x00e7c000)
|
|
#define LS1A_PM1_STS_REG (LS1A_ACPI_REG_BASE + 0x0000)
|
|
#define LS1A_PM1_EN_REG (LS1A_ACPI_REG_BASE + 0x0004)
|
|
#define LS1A_PM1_CNT_REG (LS1A_ACPI_REG_BASE + 0x0008)
|
|
#define LS1A_PM1_TMR_REG (LS1A_ACPI_REG_BASE + 0x000c)
|
|
#define LS1A_PROC_CNT_REG (LS1A_ACPI_REG_BASE + 0x0010)
|
|
#define LS1A_P_LVL2_REG (LS1A_ACPI_REG_BASE + 0x0014)
|
|
#define LS1A_P_LVL3_REG (LS1A_ACPI_REG_BASE + 0x0018)
|
|
#define LS1A_GPE0_STS_REG (LS1A_ACPI_REG_BASE + 0x0020)
|
|
#define LS1A_GPE0_EN_REG (LS1A_ACPI_REG_BASE + 0x0024)
|
|
#define LS1A_GEN_PMCON_1_REG (LS1A_ACPI_REG_BASE + 0x0030)
|
|
#define LS1A_GEN_PMCON_2_REG (LS1A_ACPI_REG_BASE + 0x0034)
|
|
#define LS1A_GEN_PMCON_3_REG (LS1A_ACPI_REG_BASE + 0x0038)
|
|
#define LS1A_RST_CNT_REG (LS1A_ACPI_REG_BASE + 0x0044)
|
|
#define LS1A_CPU_INIT_REG (LS1A_ACPI_REG_BASE + 0x0050)
|
|
|
|
/* RTC regs lxf modify*/
|
|
#define LS1A_RTC_REG_BASE (LS1A_IO_REG_BASE + 0x00e64000)
|
|
#define LS1A_TOY_TRIM_REG (LS1A_RTC_REG_BASE + 0x0020)
|
|
#define LS1A_TOY_WRITE0_REG (LS1A_RTC_REG_BASE + 0x0024)
|
|
#define LS1A_TOY_WRITE1_REG (LS1A_RTC_REG_BASE + 0x0028)
|
|
#define LS1A_TOY_READ0_REG (LS1A_RTC_REG_BASE + 0x002c)
|
|
#define LS1A_TOY_READ1_REG (LS1A_RTC_REG_BASE + 0x0030)
|
|
#define LS1A_TOY_MATCH0_REG (LS1A_RTC_REG_BASE + 0x0034)
|
|
#define LS1A_TOY_MATCH1_REG (LS1A_RTC_REG_BASE + 0x0038)
|
|
#define LS1A_TOY_MATCH2_REG (LS1A_RTC_REG_BASE + 0x003c)
|
|
#define LS1A_RTC_CTRL_REG (LS1A_RTC_REG_BASE + 0x0040)
|
|
#define LS1A_RTC_TRIM_REG (LS1A_RTC_REG_BASE + 0x0060)
|
|
#define LS1A_RTC_WRITE0_REG (LS1A_RTC_REG_BASE + 0x0064)
|
|
#define LS1A_RTC_READ0_REG (LS1A_RTC_REG_BASE + 0x0068)
|
|
#define LS1A_RTC_MATCH0_REG (LS1A_RTC_REG_BASE + 0x006c)
|
|
#define LS1A_RTC_MATCH1_REG (LS1A_RTC_REG_BASE + 0x0070)
|
|
#define LS1A_RTC_MATCH2_REG (LS1A_RTC_REG_BASE + 0x0074)
|
|
|
|
/* LPC regs */
|
|
#define LS1A_LPC_IO_BASE (LS1A_IO_REG_BASE + 0x00f00000)
|
|
#define LS1A_LPC_REG_BASE (LS1A_IO_REG_BASE + 0x00f10000)
|
|
#define LS1A_LPC_CFG0_REG (LS1A_LPC_REG_BASE + 0x0)
|
|
#define LS1A_LPC_CFG1_REG (LS1A_LPC_REG_BASE + 0x4)
|
|
#define LS1A_LPC_CFG2_REG (LS1A_LPC_REG_BASE + 0x8)
|
|
#define LS1A_LPC_CFG3_REG (LS1A_LPC_REG_BASE + 0xc)
|
|
|
|
|
|
#define LS1A_PCIE_MAX_PORTNUM 3
|
|
#define LS1A_PCIE_PORT0 0
|
|
#define LS1A_PCIE_PORT1 1
|
|
#define LS1A_PCIE_PORT2 2
|
|
#define LS1A_PCIE_PORT3 3
|
|
#define LS1A_PCIE_GET_PORTNUM(sysdata) \
|
|
((((struct pci_controller *)(sysdata))->mem_resource->start \
|
|
& ~LS1A_PCIE_MEM0_DOWN_MASK) >> 25)
|
|
|
|
#define LS1A_CHIP_CFG_REG_CLK_CTRL3 0x22c
|
|
#define LS1A_CLK_CTRL3_BIT_PEREF_EN(portnum) (1 << (24 + portnum))
|
|
|
|
#define LS1A_PCIE_MEM0_BASE_PORT(portnum) (0x10000000 + (portnum << 25))
|
|
#define LS1A_PCIE_IO_BASE_PORT(portnum) (0x18100000 + (portnum << 22))
|
|
|
|
#define LS1A_PCIE_REG_BASE_PORT(portnum) (0x18118000 + (portnum << 22))
|
|
#define LS1A_PCIE_PORT_REG_CTR0 0x0
|
|
#define LS1A_PCIE_REG_CTR0_BIT_LTSSM_EN (1 << 3)
|
|
#define LS1A_PCIE_REG_CTR0_BIT_REQ_L1 (1 << 12)
|
|
#define LS1A_PCIE_REG_CTR0_BIT_RDY_L23 (1 << 13)
|
|
#define LS1A_PCIE_PORT_REG_STAT1 0xC
|
|
#define LS1A_PCIE_REG_STAT1_MASK_LTSSM 0x0000003f
|
|
#define LS1A_PCIE_REG_STAT1_BIT_LINKUP (1 << 6)
|
|
#define LS1A_PCIE_PORT_REG_CFGADDR 0x24
|
|
#define LS1A_PCIE_PORT_REG_CTR_STAT 0x28
|
|
#define LS1A_PCIE_REG_CTR_STAT_BIT_ISX4 (1 << 26)
|
|
#define LS1A_PCIE_REG_CTR_STAT_BIT_ISRC (1 << 27)
|
|
|
|
#define LS1A_PCIE_PORT_HEAD_BASE_PORT(portnum) (0x18114000 + (portnum << 22))
|
|
#define LS1A_PCIE_DEV_HEAD_BASE_PORT(portnum) (0x18116000 + (portnum << 22))
|
|
|
|
#define LIE_IN_WINDOW(addr,base,mask) ((addr & mask) == base)
|
|
#define MAP_2_WINDOW(addr,mmap,mask) ((addr & (~(mask))) | (mmap & mask))
|
|
#define LS1A_PCIE_MEM0_DOWN_BASE 0x10000000
|
|
#define LS1A_PCIE_MEM0_DOWN_MASK 0xf8000000
|
|
#define LS1A_PCIE_MEM0_UP_BASE 0x10000000
|
|
#define LS1A_PCIE_MEM0_UP_MASK 0xfe000000
|
|
#define LS1A_PCIE_IO_DOWN_BASE 0x18100000
|
|
#define LS1A_PCIE_IO_DOWN_MASK 0xff3f0000
|
|
#define LS1A_PCIE_IO_UP_BASE 0x0
|
|
#define LS1A_PCIE_IO_UP_MASK 0xffff0000
|
|
|
|
#endif /*_LS1A_H*/
|
|
|