diff options
Diffstat (limited to 'arch/arm/mach-kirkwood/include')
-rw-r--r-- | arch/arm/mach-kirkwood/include/mach/bridge-regs.h | 21 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/include/mach/io.h | 25 | ||||
-rw-r--r-- | arch/arm/mach-kirkwood/include/mach/kirkwood.h | 18 |
3 files changed, 61 insertions, 3 deletions
diff --git a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h index 4f7029f521cc..9e80d9232c83 100644 --- a/arch/arm/mach-kirkwood/include/mach/bridge-regs.h +++ b/arch/arm/mach-kirkwood/include/mach/bridge-regs.h | |||
@@ -17,12 +17,15 @@ | |||
17 | #define CPU_RESET 0x00000002 | 17 | #define CPU_RESET 0x00000002 |
18 | 18 | ||
19 | #define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108) | 19 | #define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108) |
20 | #define WDT_RESET_OUT_EN 0x00000002 | ||
20 | #define SOFT_RESET_OUT_EN 0x00000004 | 21 | #define SOFT_RESET_OUT_EN 0x00000004 |
21 | 22 | ||
22 | #define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c) | 23 | #define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c) |
23 | #define SOFT_RESET 0x00000001 | 24 | #define SOFT_RESET 0x00000001 |
24 | 25 | ||
25 | #define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110) | 26 | #define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110) |
27 | #define WDT_INT_REQ 0x0008 | ||
28 | |||
26 | #define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114) | 29 | #define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114) |
27 | #define BRIDGE_INT_TIMER0 0x0002 | 30 | #define BRIDGE_INT_TIMER0 0x0002 |
28 | #define BRIDGE_INT_TIMER1 0x0004 | 31 | #define BRIDGE_INT_TIMER1 0x0004 |
@@ -39,4 +42,22 @@ | |||
39 | #define L2_CONFIG_REG (BRIDGE_VIRT_BASE | 0x0128) | 42 | #define L2_CONFIG_REG (BRIDGE_VIRT_BASE | 0x0128) |
40 | #define L2_WRITETHROUGH 0x00000010 | 43 | #define L2_WRITETHROUGH 0x00000010 |
41 | 44 | ||
45 | #define CLOCK_GATING_CTRL (BRIDGE_VIRT_BASE | 0x11c) | ||
46 | #define CGC_GE0 (1 << 0) | ||
47 | #define CGC_PEX0 (1 << 2) | ||
48 | #define CGC_USB0 (1 << 3) | ||
49 | #define CGC_SDIO (1 << 4) | ||
50 | #define CGC_TSU (1 << 5) | ||
51 | #define CGC_DUNIT (1 << 6) | ||
52 | #define CGC_RUNIT (1 << 7) | ||
53 | #define CGC_XOR0 (1 << 8) | ||
54 | #define CGC_AUDIO (1 << 9) | ||
55 | #define CGC_SATA0 (1 << 14) | ||
56 | #define CGC_SATA1 (1 << 15) | ||
57 | #define CGC_XOR1 (1 << 16) | ||
58 | #define CGC_CRYPTO (1 << 17) | ||
59 | #define CGC_GE1 (1 << 19) | ||
60 | #define CGC_TDM (1 << 20) | ||
61 | #define CGC_RESERVED ((1 << 18) | (0x6 << 21)) | ||
62 | |||
42 | #endif | 63 | #endif |
diff --git a/arch/arm/mach-kirkwood/include/mach/io.h b/arch/arm/mach-kirkwood/include/mach/io.h index be07be0ef522..a643a846d5fb 100644 --- a/arch/arm/mach-kirkwood/include/mach/io.h +++ b/arch/arm/mach-kirkwood/include/mach/io.h | |||
@@ -19,6 +19,31 @@ static inline void __iomem *__io(unsigned long addr) | |||
19 | + KIRKWOOD_PCIE_IO_VIRT_BASE); | 19 | + KIRKWOOD_PCIE_IO_VIRT_BASE); |
20 | } | 20 | } |
21 | 21 | ||
22 | static inline void __iomem * | ||
23 | __arch_ioremap(unsigned long paddr, size_t size, unsigned int mtype) | ||
24 | { | ||
25 | void __iomem *retval; | ||
26 | unsigned long offs = paddr - KIRKWOOD_REGS_PHYS_BASE; | ||
27 | if (mtype == MT_DEVICE && size && offs < KIRKWOOD_REGS_SIZE && | ||
28 | size <= KIRKWOOD_REGS_SIZE && offs + size <= KIRKWOOD_REGS_SIZE) { | ||
29 | retval = (void __iomem *)KIRKWOOD_REGS_VIRT_BASE + offs; | ||
30 | } else { | ||
31 | retval = __arm_ioremap(paddr, size, mtype); | ||
32 | } | ||
33 | |||
34 | return retval; | ||
35 | } | ||
36 | |||
37 | static inline void | ||
38 | __arch_iounmap(void __iomem *addr) | ||
39 | { | ||
40 | if (addr < (void __iomem *)KIRKWOOD_REGS_VIRT_BASE || | ||
41 | addr >= (void __iomem *)(KIRKWOOD_REGS_VIRT_BASE + KIRKWOOD_REGS_SIZE)) | ||
42 | __iounmap(addr); | ||
43 | } | ||
44 | |||
45 | #define __arch_ioremap(p, s, m) __arch_ioremap(p, s, m) | ||
46 | #define __arch_iounmap(a) __arch_iounmap(a) | ||
22 | #define __io(a) __io(a) | 47 | #define __io(a) __io(a) |
23 | #define __mem_pci(a) (a) | 48 | #define __mem_pci(a) (a) |
24 | 49 | ||
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h index b3e13958821d..07af858814a0 100644 --- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h +++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h | |||
@@ -20,16 +20,18 @@ | |||
20 | * f1000000 on-chip peripheral registers | 20 | * f1000000 on-chip peripheral registers |
21 | * f2000000 PCIe I/O space | 21 | * f2000000 PCIe I/O space |
22 | * f3000000 NAND controller address window | 22 | * f3000000 NAND controller address window |
23 | * f4000000 Security Accelerator SRAM | ||
23 | * | 24 | * |
24 | * virt phys size | 25 | * virt phys size |
25 | * fee00000 f1000000 1M on-chip peripheral registers | 26 | * fee00000 f1000000 1M on-chip peripheral registers |
26 | * fef00000 f2000000 1M PCIe I/O space | 27 | * fef00000 f2000000 1M PCIe I/O space |
27 | */ | 28 | */ |
28 | 29 | ||
30 | #define KIRKWOOD_SRAM_PHYS_BASE 0xf4000000 | ||
31 | #define KIRKWOOD_SRAM_SIZE SZ_2K | ||
32 | |||
29 | #define KIRKWOOD_NAND_MEM_PHYS_BASE 0xf3000000 | 33 | #define KIRKWOOD_NAND_MEM_PHYS_BASE 0xf3000000 |
30 | #define KIRKWOOD_NAND_MEM_SIZE SZ_64K /* 1K is sufficient, but 64K | 34 | #define KIRKWOOD_NAND_MEM_SIZE SZ_1K |
31 | * is the minimal window size | ||
32 | */ | ||
33 | 35 | ||
34 | #define KIRKWOOD_PCIE_IO_PHYS_BASE 0xf2000000 | 36 | #define KIRKWOOD_PCIE_IO_PHYS_BASE 0xf2000000 |
35 | #define KIRKWOOD_PCIE_IO_VIRT_BASE 0xfef00000 | 37 | #define KIRKWOOD_PCIE_IO_VIRT_BASE 0xfef00000 |
@@ -48,6 +50,7 @@ | |||
48 | */ | 50 | */ |
49 | #define DDR_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x00000) | 51 | #define DDR_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x00000) |
50 | #define DDR_WINDOW_CPU_BASE (DDR_VIRT_BASE | 0x1500) | 52 | #define DDR_WINDOW_CPU_BASE (DDR_VIRT_BASE | 0x1500) |
53 | #define DDR_OPERATION_BASE (DDR_VIRT_BASE | 0x1418) | ||
51 | 54 | ||
52 | #define DEV_BUS_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x10000) | 55 | #define DEV_BUS_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x10000) |
53 | #define DEV_BUS_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x10000) | 56 | #define DEV_BUS_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x10000) |
@@ -63,7 +66,11 @@ | |||
63 | 66 | ||
64 | #define BRIDGE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x20000) | 67 | #define BRIDGE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x20000) |
65 | 68 | ||
69 | #define CRYPTO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x30000) | ||
70 | |||
66 | #define PCIE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x40000) | 71 | #define PCIE_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x40000) |
72 | #define PCIE_LINK_CTRL (PCIE_VIRT_BASE | 0x70) | ||
73 | #define PCIE_STATUS (PCIE_VIRT_BASE | 0x1a04) | ||
67 | 74 | ||
68 | #define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000) | 75 | #define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000) |
69 | 76 | ||
@@ -80,6 +87,11 @@ | |||
80 | #define GE01_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x74000) | 87 | #define GE01_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x74000) |
81 | 88 | ||
82 | #define SATA_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x80000) | 89 | #define SATA_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x80000) |
90 | #define SATA_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x80000) | ||
91 | #define SATA0_IF_CTRL (SATA_VIRT_BASE | 0x2050) | ||
92 | #define SATA0_PHY_MODE_2 (SATA_VIRT_BASE | 0x2330) | ||
93 | #define SATA1_IF_CTRL (SATA_VIRT_BASE | 0x4050) | ||
94 | #define SATA1_PHY_MODE_2 (SATA_VIRT_BASE | 0x4330) | ||
83 | 95 | ||
84 | #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000) | 96 | #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000) |
85 | 97 | ||