Commit b08b4f8e63e60a64f81e194269be14afee396f33
1 parent
fa7499ef77
Exists in
master
and in
7 other branches
unicore32 machine related files: hardware registers
This patch adds all hardware registers definitions. Signed-off-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
Showing 20 changed files with 1615 additions and 0 deletions Side-by-side Diff
- arch/unicore32/include/mach/PKUnity.h
- arch/unicore32/include/mach/bitfield.h
- arch/unicore32/include/mach/hardware.h
- arch/unicore32/include/mach/regs-ac97.h
- arch/unicore32/include/mach/regs-dmac.h
- arch/unicore32/include/mach/regs-gpio.h
- arch/unicore32/include/mach/regs-i2c.h
- arch/unicore32/include/mach/regs-intc.h
- arch/unicore32/include/mach/regs-nand.h
- arch/unicore32/include/mach/regs-ost.h
- arch/unicore32/include/mach/regs-pci.h
- arch/unicore32/include/mach/regs-pm.h
- arch/unicore32/include/mach/regs-ps2.h
- arch/unicore32/include/mach/regs-resetc.h
- arch/unicore32/include/mach/regs-rtc.h
- arch/unicore32/include/mach/regs-sdc.h
- arch/unicore32/include/mach/regs-spi.h
- arch/unicore32/include/mach/regs-uart.h
- arch/unicore32/include/mach/regs-umal.h
- arch/unicore32/include/mach/regs-unigfx.h
arch/unicore32/include/mach/PKUnity.h
1 | +/* | |
2 | + * linux/arch/unicore32/include/mach/PKUnity.h | |
3 | + * | |
4 | + * Code specific to PKUnity SoC and UniCore ISA | |
5 | + * | |
6 | + * Copyright (C) 2001-2010 GUAN Xue-tao | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or modify | |
9 | + * it under the terms of the GNU General Public License version 2 as | |
10 | + * published by the Free Software Foundation. | |
11 | + */ | |
12 | + | |
13 | +/* Be sure that virtual mapping is defined right */ | |
14 | +#ifndef __MACH_PUV3_HARDWARE_H__ | |
15 | +#error You must include hardware.h not PKUnity.h | |
16 | +#endif | |
17 | + | |
18 | +#include "bitfield.h" | |
19 | + | |
20 | +/* | |
21 | + * Memory Definitions | |
22 | + */ | |
23 | +#define PKUNITY_SDRAM_BASE 0x00000000 /* 0x00000000 - 0x7FFFFFFF 2GB */ | |
24 | +#define PKUNITY_IOSPACE_BASE 0x80000000 /* 0x80000000 - 0xFFFFFFFF 2GB */ | |
25 | +#define PKUNITY_PCI_BASE 0x80000000 /* 0x80000000 - 0xBFFFFFFF 1GB */ | |
26 | +#include "regs-pci.h" | |
27 | +#define PKUNITY_BOOT_ROM2_BASE 0xF4000000 /* 0xF4000000 - 0xF7FFFFFF 64MB */ | |
28 | +#define PKUNITY_BOOT_SRAM2_BASE 0xF8000000 /* 0xF8000000 - 0xFBFFFFFF 64MB */ | |
29 | +#define PKUNITY_BOOT_FLASH_BASE 0xFC000000 /* 0xFC000000 - 0xFFFFFFFF 64MB */ | |
30 | + | |
31 | +/* | |
32 | + * PKUNITY Memory Map Addresses: 0x0D000000 - 0x0EFFFFFF (32MB) | |
33 | + */ | |
34 | +#define PKUNITY_UVC_MMAP_BASE 0x0D000000 /* 0x0D000000 - 0x0DFFFFFF 16MB */ | |
35 | +#define PKUNITY_UVC_MMAP_SIZE 0x01000000 /* 16MB */ | |
36 | +#define PKUNITY_UNIGFX_MMAP_BASE 0x0E000000 /* 0x0E000000 - 0x0EFFFFFF 16MB */ | |
37 | +#define PKUNITY_UNIGFX_MMAP_SIZE 0x01000000 /* 16MB */ | |
38 | + | |
39 | +/* | |
40 | + * PKUNITY System Bus Addresses (PCI): 0x80000000 - 0xBFFFFFFF (1GB) | |
41 | + */ | |
42 | +/* PCI Configuration regs */ | |
43 | +#define PKUNITY_PCICFG_BASE 0x80000000 /* 0x80000000 - 0x8000000B 12B */ | |
44 | +/* PCI Bridge Base */ | |
45 | +#define PKUNITY_PCIBRI_BASE 0x80010000 /* 0x80010000 - 0x80010250 592B */ | |
46 | +/* PCI Legacy IO */ | |
47 | +#define PKUNITY_PCILIO_BASE 0x80030000 /* 0x80030000 - 0x8003FFFF 64KB */ | |
48 | +/* PCI AHB-PCI MEM-mapping */ | |
49 | +#define PKUNITY_PCIMEM_BASE 0x90000000 /* 0x90000000 - 0x97FFFFFF 128MB */ | |
50 | +/* PCI PCI-AHB MEM-mapping */ | |
51 | +#define PKUNITY_PCIAHB_BASE 0x98000000 /* 0x98000000 - 0x9FFFFFFF 128MB */ | |
52 | + | |
53 | +/* | |
54 | + * PKUNITY System Bus Addresses (AHB): 0xC0000000 - 0xEDFFFFFF (640MB) | |
55 | + */ | |
56 | +/* AHB-0 is DDR2 SDRAM */ | |
57 | +/* AHB-1 is PCI Space */ | |
58 | +#define PKUNITY_ARBITER_BASE 0xC0000000 /* AHB-2 */ | |
59 | +#define PKUNITY_DDR2CTRL_BASE 0xC0100000 /* AHB-3 */ | |
60 | +#define PKUNITY_DMAC_BASE 0xC0200000 /* AHB-4 */ | |
61 | +#include "regs-dmac.h" | |
62 | +#define PKUNITY_UMAL_BASE 0xC0300000 /* AHB-5 */ | |
63 | +#include "regs-umal.h" | |
64 | +#define PKUNITY_USB_BASE 0xC0400000 /* AHB-6 */ | |
65 | +#define PKUNITY_SATA_BASE 0xC0500000 /* AHB-7 */ | |
66 | +#define PKUNITY_SMC_BASE 0xC0600000 /* AHB-8 */ | |
67 | +/* AHB-9 is for APB bridge */ | |
68 | +#define PKUNITY_MME_BASE 0xC0700000 /* AHB-10 */ | |
69 | +#define PKUNITY_UNIGFX_BASE 0xC0800000 /* AHB-11 */ | |
70 | +#include "regs-unigfx.h" | |
71 | +#define PKUNITY_NAND_BASE 0xC0900000 /* AHB-12 */ | |
72 | +#include "regs-nand.h" | |
73 | +#define PKUNITY_H264D_BASE 0xC0A00000 /* AHB-13 */ | |
74 | +#define PKUNITY_H264E_BASE 0xC0B00000 /* AHB-14 */ | |
75 | + | |
76 | +/* | |
77 | + * PKUNITY Peripheral Bus Addresses (APB): 0xEE000000 - 0xEFFFFFFF (128MB) | |
78 | + */ | |
79 | +#define PKUNITY_UART0_BASE 0xEE000000 /* APB-0 */ | |
80 | +#define PKUNITY_UART1_BASE 0xEE100000 /* APB-1 */ | |
81 | +#include "regs-uart.h" | |
82 | +#define PKUNITY_I2C_BASE 0xEE200000 /* APB-2 */ | |
83 | +#include "regs-i2c.h" | |
84 | +#define PKUNITY_SPI_BASE 0xEE300000 /* APB-3 */ | |
85 | +#include "regs-spi.h" | |
86 | +#define PKUNITY_AC97_BASE 0xEE400000 /* APB-4 */ | |
87 | +#include "regs-ac97.h" | |
88 | +#define PKUNITY_GPIO_BASE 0xEE500000 /* APB-5 */ | |
89 | +#include "regs-gpio.h" | |
90 | +#define PKUNITY_INTC_BASE 0xEE600000 /* APB-6 */ | |
91 | +#include "regs-intc.h" | |
92 | +#define PKUNITY_RTC_BASE 0xEE700000 /* APB-7 */ | |
93 | +#include "regs-rtc.h" | |
94 | +#define PKUNITY_OST_BASE 0xEE800000 /* APB-8 */ | |
95 | +#include "regs-ost.h" | |
96 | +#define PKUNITY_RESETC_BASE 0xEE900000 /* APB-9 */ | |
97 | +#include "regs-resetc.h" | |
98 | +#define PKUNITY_PM_BASE 0xEEA00000 /* APB-10 */ | |
99 | +#include "regs-pm.h" | |
100 | +#define PKUNITY_PS2_BASE 0xEEB00000 /* APB-11 */ | |
101 | +#include "regs-ps2.h" | |
102 | +#define PKUNITY_SDC_BASE 0xEEC00000 /* APB-12 */ | |
103 | +#include "regs-sdc.h" |
arch/unicore32/include/mach/bitfield.h
1 | +/* | |
2 | + * linux/arch/unicore32/include/mach/bitfield.h | |
3 | + * | |
4 | + * Code specific to PKUnity SoC and UniCore ISA | |
5 | + * | |
6 | + * Copyright (C) 2001-2010 GUAN Xue-tao | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or modify | |
9 | + * it under the terms of the GNU General Public License version 2 as | |
10 | + * published by the Free Software Foundation. | |
11 | + */ | |
12 | +#ifndef __MACH_PUV3_BITFIELD_H__ | |
13 | +#define __MACH_PUV3_BITFIELD_H__ | |
14 | + | |
15 | +#ifndef __ASSEMBLY__ | |
16 | +#define UData(Data) ((unsigned long) (Data)) | |
17 | +#else | |
18 | +#define UData(Data) (Data) | |
19 | +#endif | |
20 | + | |
21 | +#define FIELD(val, vmask, vshift) (((val) & ((UData(1) << (vmask)) - 1)) << (vshift)) | |
22 | +#define FMASK(vmask, vshift) (((UData(1) << (vmask)) - 1) << (vshift)) | |
23 | + | |
24 | +#endif /* __MACH_PUV3_BITFIELD_H__ */ |
arch/unicore32/include/mach/hardware.h
1 | +/* | |
2 | + * linux/arch/unicore32/include/mach/hardware.h | |
3 | + * | |
4 | + * Code specific to PKUnity SoC and UniCore ISA | |
5 | + * | |
6 | + * Copyright (C) 2001-2010 GUAN Xue-tao | |
7 | + * | |
8 | + * This program is free software; you can redistribute it and/or modify | |
9 | + * it under the terms of the GNU General Public License version 2 as | |
10 | + * published by the Free Software Foundation. | |
11 | + * | |
12 | + * This file contains the hardware definitions for PKUnity architecture | |
13 | + */ | |
14 | + | |
15 | +#ifndef __MACH_PUV3_HARDWARE_H__ | |
16 | +#define __MACH_PUV3_HARDWARE_H__ | |
17 | + | |
18 | +#include "PKUnity.h" | |
19 | + | |
20 | +#define io_p2v(x) ((x) - PKUNITY_IOSPACE_BASE) | |
21 | +#define io_v2p(x) ((x) + PKUNITY_IOSPACE_BASE) | |
22 | + | |
23 | +#ifndef __ASSEMBLY__ | |
24 | + | |
25 | +# define __REG(x) (*((volatile unsigned long *)io_p2v(x))) | |
26 | +# define __PREG(x) (io_v2p((unsigned long)&(x))) | |
27 | + | |
28 | +#else | |
29 | + | |
30 | +# define __REG(x) io_p2v(x) | |
31 | +# define __PREG(x) io_v2p(x) | |
32 | + | |
33 | +#endif | |
34 | + | |
35 | +#define PCIBIOS_MIN_IO 0x4000 /* should lower than 64KB */ | |
36 | +#define PCIBIOS_MIN_MEM PKUNITY_PCIMEM_BASE | |
37 | + | |
38 | +/* | |
39 | + * We override the standard dma-mask routines for bouncing. | |
40 | + */ | |
41 | +#define HAVE_ARCH_PCI_SET_DMA_MASK | |
42 | + | |
43 | +#define pcibios_assign_all_busses() 1 | |
44 | + | |
45 | +#endif /* __MACH_PUV3_HARDWARE_H__ */ |
arch/unicore32/include/mach/regs-ac97.h
1 | +/* | |
2 | + * PKUnity AC97 Registers | |
3 | + */ | |
4 | + | |
5 | +#define PKUNITY_AC97_CONR __REG(PKUNITY_AC97_BASE + 0x0000) | |
6 | +#define PKUNITY_AC97_OCR __REG(PKUNITY_AC97_BASE + 0x0004) | |
7 | +#define PKUNITY_AC97_ICR __REG(PKUNITY_AC97_BASE + 0x0008) | |
8 | +#define PKUNITY_AC97_CRAC __REG(PKUNITY_AC97_BASE + 0x000C) | |
9 | +#define PKUNITY_AC97_INTR __REG(PKUNITY_AC97_BASE + 0x0010) | |
10 | +#define PKUNITY_AC97_INTRSTAT __REG(PKUNITY_AC97_BASE + 0x0014) | |
11 | +#define PKUNITY_AC97_INTRCLEAR __REG(PKUNITY_AC97_BASE + 0x0018) | |
12 | +#define PKUNITY_AC97_ENABLE __REG(PKUNITY_AC97_BASE + 0x001C) | |
13 | +#define PKUNITY_AC97_OUT_FIFO __REG(PKUNITY_AC97_BASE + 0x0020) | |
14 | +#define PKUNITY_AC97_IN_FIFO __REG(PKUNITY_AC97_BASE + 0x0030) | |
15 | + | |
16 | +#define AC97_CODEC_REG(v) FIELD((v), 7, 16) | |
17 | +#define AC97_CODEC_VAL(v) FIELD((v), 16, 0) | |
18 | +#define AC97_CODEC_WRITECOMPLETE FIELD(1, 1, 2) | |
19 | + | |
20 | +/* | |
21 | + * VAR PLAY SAMPLE RATE | |
22 | + */ | |
23 | +#define AC97_CMD_VPSAMPLE (FIELD(3, 2, 16) | FIELD(3, 2, 0)) | |
24 | + | |
25 | +/* | |
26 | + * FIX CAPTURE SAMPLE RATE | |
27 | + */ | |
28 | +#define AC97_CMD_FCSAMPLE FIELD(7, 3, 0) | |
29 | + | |
30 | +#define AC97_CMD_RESET FIELD(1, 1, 0) | |
31 | +#define AC97_CMD_ENABLE FIELD(1, 1, 0) | |
32 | +#define AC97_CMD_DISABLE FIELD(0, 1, 0) |
arch/unicore32/include/mach/regs-dmac.h
1 | +/* | |
2 | + * PKUnity Direct Memory Access Controller (DMAC) | |
3 | + */ | |
4 | + | |
5 | +/* | |
6 | + * Interrupt Status Reg DMAC_ISR. | |
7 | + */ | |
8 | +#define DMAC_ISR __REG(PKUNITY_DMAC_BASE + 0x0020) | |
9 | +/* | |
10 | + * Interrupt Transfer Complete Status Reg DMAC_ITCSR. | |
11 | + */ | |
12 | +#define DMAC_ITCSR __REG(PKUNITY_DMAC_BASE + 0x0050) | |
13 | +/* | |
14 | + * Interrupt Transfer Complete Clear Reg DMAC_ITCCR. | |
15 | + */ | |
16 | +#define DMAC_ITCCR __REG(PKUNITY_DMAC_BASE + 0x0060) | |
17 | +/* | |
18 | + * Interrupt Error Status Reg DMAC_IESR. | |
19 | + */ | |
20 | +#define DMAC_IESR __REG(PKUNITY_DMAC_BASE + 0x0080) | |
21 | +/* | |
22 | + * Interrupt Error Clear Reg DMAC_IECR. | |
23 | + */ | |
24 | +#define DMAC_IECR __REG(PKUNITY_DMAC_BASE + 0x0090) | |
25 | +/* | |
26 | + * Enable Channels Reg DMAC_ENCH. | |
27 | + */ | |
28 | +#define DMAC_ENCH __REG(PKUNITY_DMAC_BASE + 0x00B0) | |
29 | + | |
30 | +/* | |
31 | + * DMA control reg. Space [byte] | |
32 | + */ | |
33 | +#define DMASp 0x00000100 | |
34 | + | |
35 | +/* | |
36 | + * Source Addr DMAC_SRCADDR(ch). | |
37 | + */ | |
38 | +#define DMAC_SRCADDR(ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x00) | |
39 | +/* | |
40 | + * Destination Addr DMAC_DESTADDR(ch). | |
41 | + */ | |
42 | +#define DMAC_DESTADDR(ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x04) | |
43 | +/* | |
44 | + * Control Reg DMAC_CONTROL(ch). | |
45 | + */ | |
46 | +#define DMAC_CONTROL(ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x0C) | |
47 | +/* | |
48 | + * Configuration Reg DMAC_CONFIG(ch). | |
49 | + */ | |
50 | +#define DMAC_CONFIG(ch) __REG(PKUNITY_DMAC_BASE + (ch)*DMASp + 0x10) | |
51 | + | |
52 | +#define DMAC_IR_MASK FMASK(6, 0) | |
53 | +/* | |
54 | + * select channel (ch) | |
55 | + */ | |
56 | +#define DMAC_CHANNEL(ch) FIELD(1, 1, (ch)) | |
57 | + | |
58 | +#define DMAC_CONTROL_SIZE_BYTE(v) (FIELD((v), 12, 14) | \ | |
59 | + FIELD(0, 3, 9) | FIELD(0, 3, 6)) | |
60 | +#define DMAC_CONTROL_SIZE_HWORD(v) (FIELD((v) >> 1, 12, 14) | \ | |
61 | + FIELD(1, 3, 9) | FIELD(1, 3, 6)) | |
62 | +#define DMAC_CONTROL_SIZE_WORD(v) (FIELD((v) >> 2, 12, 14) | \ | |
63 | + FIELD(2, 3, 9) | FIELD(2, 3, 6)) | |
64 | +#define DMAC_CONTROL_DI FIELD(1, 1, 13) | |
65 | +#define DMAC_CONTROL_SI FIELD(1, 1, 12) | |
66 | +#define DMAC_CONTROL_BURST_1BYTE (FIELD(0, 3, 3) | FIELD(0, 3, 0)) | |
67 | +#define DMAC_CONTROL_BURST_4BYTE (FIELD(3, 3, 3) | FIELD(3, 3, 0)) | |
68 | +#define DMAC_CONTROL_BURST_8BYTE (FIELD(5, 3, 3) | FIELD(5, 3, 0)) | |
69 | +#define DMAC_CONTROL_BURST_16BYTE (FIELD(7, 3, 3) | FIELD(7, 3, 0)) | |
70 | + | |
71 | +#define DMAC_CONFIG_UART0_WR (FIELD(2, 4, 11) | FIELD(1, 2, 1)) | |
72 | +#define DMAC_CONFIG_UART0_RD (FIELD(2, 4, 7) | FIELD(2, 2, 1)) | |
73 | +#define DMAC_CONFIG_UART1_WR (FIELD(3, 4, 11) | FIELD(1, 2, 1)) | |
74 | +#define DMAC_CONFIG_UART1RD (FIELD(3, 4, 7) | FIELD(2, 2, 1)) | |
75 | +#define DMAC_CONFIG_AC97WR (FIELD(4, 4, 11) | FIELD(1, 2, 1)) | |
76 | +#define DMAC_CONFIG_AC97RD (FIELD(4, 4, 7) | FIELD(2, 2, 1)) | |
77 | +#define DMAC_CONFIG_MMCWR (FIELD(7, 4, 11) | FIELD(1, 2, 1)) | |
78 | +#define DMAC_CONFIG_MMCRD (FIELD(7, 4, 7) | FIELD(2, 2, 1)) | |
79 | +#define DMAC_CONFIG_MASKITC FIELD(1, 1, 4) | |
80 | +#define DMAC_CONFIG_MASKIE FIELD(1, 1, 3) | |
81 | +#define DMAC_CONFIG_EN FIELD(1, 1, 0) |
arch/unicore32/include/mach/regs-gpio.h
1 | +/* | |
2 | + * PKUnity General-Purpose Input/Output (GPIO) Registers | |
3 | + */ | |
4 | + | |
5 | +/* | |
6 | + * Voltage Status Reg GPIO_GPLR. | |
7 | + */ | |
8 | +#define GPIO_GPLR __REG(PKUNITY_GPIO_BASE + 0x0000) | |
9 | +/* | |
10 | + * Pin Direction Reg GPIO_GPDR. | |
11 | + */ | |
12 | +#define GPIO_GPDR __REG(PKUNITY_GPIO_BASE + 0x0004) | |
13 | +/* | |
14 | + * Output Pin Set Reg GPIO_GPSR. | |
15 | + */ | |
16 | +#define GPIO_GPSR __REG(PKUNITY_GPIO_BASE + 0x0008) | |
17 | +/* | |
18 | + * Output Pin Clear Reg GPIO_GPCR. | |
19 | + */ | |
20 | +#define GPIO_GPCR __REG(PKUNITY_GPIO_BASE + 0x000C) | |
21 | +/* | |
22 | + * Raise Edge Detect Reg GPIO_GRER. | |
23 | + */ | |
24 | +#define GPIO_GRER __REG(PKUNITY_GPIO_BASE + 0x0010) | |
25 | +/* | |
26 | + * Fall Edge Detect Reg GPIO_GFER. | |
27 | + */ | |
28 | +#define GPIO_GFER __REG(PKUNITY_GPIO_BASE + 0x0014) | |
29 | +/* | |
30 | + * Edge Status Reg GPIO_GEDR. | |
31 | + */ | |
32 | +#define GPIO_GEDR __REG(PKUNITY_GPIO_BASE + 0x0018) | |
33 | +/* | |
34 | + * Sepcial Voltage Detect Reg GPIO_GPIR. | |
35 | + */ | |
36 | +#define GPIO_GPIR __REG(PKUNITY_GPIO_BASE + 0x0020) | |
37 | + | |
38 | +#define GPIO_MIN (0) | |
39 | +#define GPIO_MAX (27) | |
40 | + | |
41 | +#define GPIO_GPIO(Nb) (0x00000001 << (Nb)) /* GPIO [0..27] */ | |
42 | +#define GPIO_GPIO0 GPIO_GPIO(0) /* GPIO [0] */ | |
43 | +#define GPIO_GPIO1 GPIO_GPIO(1) /* GPIO [1] */ | |
44 | +#define GPIO_GPIO2 GPIO_GPIO(2) /* GPIO [2] */ | |
45 | +#define GPIO_GPIO3 GPIO_GPIO(3) /* GPIO [3] */ | |
46 | +#define GPIO_GPIO4 GPIO_GPIO(4) /* GPIO [4] */ | |
47 | +#define GPIO_GPIO5 GPIO_GPIO(5) /* GPIO [5] */ | |
48 | +#define GPIO_GPIO6 GPIO_GPIO(6) /* GPIO [6] */ | |
49 | +#define GPIO_GPIO7 GPIO_GPIO(7) /* GPIO [7] */ | |
50 | +#define GPIO_GPIO8 GPIO_GPIO(8) /* GPIO [8] */ | |
51 | +#define GPIO_GPIO9 GPIO_GPIO(9) /* GPIO [9] */ | |
52 | +#define GPIO_GPIO10 GPIO_GPIO(10) /* GPIO [10] */ | |
53 | +#define GPIO_GPIO11 GPIO_GPIO(11) /* GPIO [11] */ | |
54 | +#define GPIO_GPIO12 GPIO_GPIO(12) /* GPIO [12] */ | |
55 | +#define GPIO_GPIO13 GPIO_GPIO(13) /* GPIO [13] */ | |
56 | +#define GPIO_GPIO14 GPIO_GPIO(14) /* GPIO [14] */ | |
57 | +#define GPIO_GPIO15 GPIO_GPIO(15) /* GPIO [15] */ | |
58 | +#define GPIO_GPIO16 GPIO_GPIO(16) /* GPIO [16] */ | |
59 | +#define GPIO_GPIO17 GPIO_GPIO(17) /* GPIO [17] */ | |
60 | +#define GPIO_GPIO18 GPIO_GPIO(18) /* GPIO [18] */ | |
61 | +#define GPIO_GPIO19 GPIO_GPIO(19) /* GPIO [19] */ | |
62 | +#define GPIO_GPIO20 GPIO_GPIO(20) /* GPIO [20] */ | |
63 | +#define GPIO_GPIO21 GPIO_GPIO(21) /* GPIO [21] */ | |
64 | +#define GPIO_GPIO22 GPIO_GPIO(22) /* GPIO [22] */ | |
65 | +#define GPIO_GPIO23 GPIO_GPIO(23) /* GPIO [23] */ | |
66 | +#define GPIO_GPIO24 GPIO_GPIO(24) /* GPIO [24] */ | |
67 | +#define GPIO_GPIO25 GPIO_GPIO(25) /* GPIO [25] */ | |
68 | +#define GPIO_GPIO26 GPIO_GPIO(26) /* GPIO [26] */ | |
69 | +#define GPIO_GPIO27 GPIO_GPIO(27) /* GPIO [27] */ |
arch/unicore32/include/mach/regs-i2c.h
1 | +/* | |
2 | + * PKUnity Inter-integrated Circuit (I2C) Registers | |
3 | + */ | |
4 | + | |
5 | +/* | |
6 | + * Control Reg I2C_CON. | |
7 | + */ | |
8 | +#define I2C_CON __REG(PKUNITY_I2C_BASE + 0x0000) | |
9 | +/* | |
10 | + * Target Address Reg I2C_TAR. | |
11 | + */ | |
12 | +#define I2C_TAR __REG(PKUNITY_I2C_BASE + 0x0004) | |
13 | +/* | |
14 | + * Data buffer and command Reg I2C_DATACMD. | |
15 | + */ | |
16 | +#define I2C_DATACMD __REG(PKUNITY_I2C_BASE + 0x0010) | |
17 | +/* | |
18 | + * Enable Reg I2C_ENABLE. | |
19 | + */ | |
20 | +#define I2C_ENABLE __REG(PKUNITY_I2C_BASE + 0x006C) | |
21 | +/* | |
22 | + * Status Reg I2C_STATUS. | |
23 | + */ | |
24 | +#define I2C_STATUS __REG(PKUNITY_I2C_BASE + 0x0070) | |
25 | +/* | |
26 | + * Tx FIFO Length Reg I2C_TXFLR. | |
27 | + */ | |
28 | +#define I2C_TXFLR __REG(PKUNITY_I2C_BASE + 0x0074) | |
29 | +/* | |
30 | + * Rx FIFO Length Reg I2C_RXFLR. | |
31 | + */ | |
32 | +#define I2C_RXFLR __REG(PKUNITY_I2C_BASE + 0x0078) | |
33 | +/* | |
34 | + * Enable Status Reg I2C_ENSTATUS. | |
35 | + */ | |
36 | +#define I2C_ENSTATUS __REG(PKUNITY_I2C_BASE + 0x009C) | |
37 | + | |
38 | +#define I2C_CON_MASTER FIELD(1, 1, 0) | |
39 | +#define I2C_CON_SPEED_STD FIELD(1, 2, 1) | |
40 | +#define I2C_CON_SPEED_FAST FIELD(2, 2, 1) | |
41 | +#define I2C_CON_RESTART FIELD(1, 1, 5) | |
42 | +#define I2C_CON_SLAVEDISABLE FIELD(1, 1, 6) | |
43 | + | |
44 | +#define I2C_DATACMD_READ FIELD(1, 1, 8) | |
45 | +#define I2C_DATACMD_WRITE FIELD(0, 1, 8) | |
46 | +#define I2C_DATACMD_DAT_MASK FMASK(8, 0) | |
47 | +#define I2C_DATACMD_DAT(v) FIELD((v), 8, 0) | |
48 | + | |
49 | +#define I2C_ENABLE_ENABLE FIELD(1, 1, 0) | |
50 | +#define I2C_ENABLE_DISABLE FIELD(0, 1, 0) | |
51 | + | |
52 | +#define I2C_STATUS_RFF FIELD(1, 1, 4) | |
53 | +#define I2C_STATUS_RFNE FIELD(1, 1, 3) | |
54 | +#define I2C_STATUS_TFE FIELD(1, 1, 2) | |
55 | +#define I2C_STATUS_TFNF FIELD(1, 1, 1) | |
56 | +#define I2C_STATUS_ACTIVITY FIELD(1, 1, 0) | |
57 | + | |
58 | +#define I2C_ENSTATUS_ENABLE FIELD(1, 1, 0) | |
59 | + | |
60 | +#define I2C_TAR_THERMAL 0x4f | |
61 | +#define I2C_TAR_SPD 0x50 | |
62 | +#define I2C_TAR_PWIC 0x55 | |
63 | +#define I2C_TAR_EEPROM 0x57 |
arch/unicore32/include/mach/regs-intc.h
1 | +/* | |
2 | + * PKUNITY Interrupt Controller (INTC) Registers | |
3 | + */ | |
4 | +/* | |
5 | + * INTC Level Reg INTC_ICLR. | |
6 | + */ | |
7 | +#define INTC_ICLR __REG(PKUNITY_INTC_BASE + 0x0000) | |
8 | +/* | |
9 | + * INTC Mask Reg INTC_ICMR. | |
10 | + */ | |
11 | +#define INTC_ICMR __REG(PKUNITY_INTC_BASE + 0x0004) | |
12 | +/* | |
13 | + * INTC Pending Reg INTC_ICPR. | |
14 | + */ | |
15 | +#define INTC_ICPR __REG(PKUNITY_INTC_BASE + 0x0008) | |
16 | +/* | |
17 | + * INTC IRQ Pending Reg INTC_ICIP. | |
18 | + */ | |
19 | +#define INTC_ICIP __REG(PKUNITY_INTC_BASE + 0x000C) | |
20 | +/* | |
21 | + * INTC REAL Pending Reg INTC_ICFP. | |
22 | + */ | |
23 | +#define INTC_ICFP __REG(PKUNITY_INTC_BASE + 0x0010) | |
24 | +/* | |
25 | + * INTC Control Reg INTC_ICCR. | |
26 | + */ | |
27 | +#define INTC_ICCR __REG(PKUNITY_INTC_BASE + 0x0014) |
arch/unicore32/include/mach/regs-nand.h
1 | +/* | |
2 | + * PKUnity NAND Controller Registers | |
3 | + */ | |
4 | +/* | |
5 | + * ID Reg. 0 NAND_IDR0 | |
6 | + */ | |
7 | +#define NAND_IDR0 __REG(PKUNITY_NAND_BASE + 0x0000) | |
8 | +/* | |
9 | + * ID Reg. 1 NAND_IDR1 | |
10 | + */ | |
11 | +#define NAND_IDR1 __REG(PKUNITY_NAND_BASE + 0x0004) | |
12 | +/* | |
13 | + * ID Reg. 2 NAND_IDR2 | |
14 | + */ | |
15 | +#define NAND_IDR2 __REG(PKUNITY_NAND_BASE + 0x0008) | |
16 | +/* | |
17 | + * ID Reg. 3 NAND_IDR3 | |
18 | + */ | |
19 | +#define NAND_IDR3 __REG(PKUNITY_NAND_BASE + 0x000C) | |
20 | +/* | |
21 | + * Page Address Reg 0 NAND_PAR0 | |
22 | + */ | |
23 | +#define NAND_PAR0 __REG(PKUNITY_NAND_BASE + 0x0010) | |
24 | +/* | |
25 | + * Page Address Reg 1 NAND_PAR1 | |
26 | + */ | |
27 | +#define NAND_PAR1 __REG(PKUNITY_NAND_BASE + 0x0014) | |
28 | +/* | |
29 | + * Page Address Reg 2 NAND_PAR2 | |
30 | + */ | |
31 | +#define NAND_PAR2 __REG(PKUNITY_NAND_BASE + 0x0018) | |
32 | +/* | |
33 | + * ECC Enable Reg NAND_ECCEN | |
34 | + */ | |
35 | +#define NAND_ECCEN __REG(PKUNITY_NAND_BASE + 0x001C) | |
36 | +/* | |
37 | + * Buffer Reg NAND_BUF | |
38 | + */ | |
39 | +#define NAND_BUF __REG(PKUNITY_NAND_BASE + 0x0020) | |
40 | +/* | |
41 | + * ECC Status Reg NAND_ECCSR | |
42 | + */ | |
43 | +#define NAND_ECCSR __REG(PKUNITY_NAND_BASE + 0x0024) | |
44 | +/* | |
45 | + * Command Reg NAND_CMD | |
46 | + */ | |
47 | +#define NAND_CMD __REG(PKUNITY_NAND_BASE + 0x0028) | |
48 | +/* | |
49 | + * DMA Configure Reg NAND_DMACR | |
50 | + */ | |
51 | +#define NAND_DMACR __REG(PKUNITY_NAND_BASE + 0x002C) | |
52 | +/* | |
53 | + * Interrupt Reg NAND_IR | |
54 | + */ | |
55 | +#define NAND_IR __REG(PKUNITY_NAND_BASE + 0x0030) | |
56 | +/* | |
57 | + * Interrupt Mask Reg NAND_IMR | |
58 | + */ | |
59 | +#define NAND_IMR __REG(PKUNITY_NAND_BASE + 0x0034) | |
60 | +/* | |
61 | + * Chip Enable Reg NAND_CHIPEN | |
62 | + */ | |
63 | +#define NAND_CHIPEN __REG(PKUNITY_NAND_BASE + 0x0038) | |
64 | +/* | |
65 | + * Address Reg NAND_ADDR | |
66 | + */ | |
67 | +#define NAND_ADDR __REG(PKUNITY_NAND_BASE + 0x003C) | |
68 | + | |
69 | +/* | |
70 | + * Command bits NAND_CMD_CMD_MASK | |
71 | + */ | |
72 | +#define NAND_CMD_CMD_MASK FMASK(4, 4) | |
73 | +#define NAND_CMD_CMD_READPAGE FIELD(0x0, 4, 4) | |
74 | +#define NAND_CMD_CMD_ERASEBLOCK FIELD(0x6, 4, 4) | |
75 | +#define NAND_CMD_CMD_READSTATUS FIELD(0x7, 4, 4) | |
76 | +#define NAND_CMD_CMD_WRITEPAGE FIELD(0x8, 4, 4) | |
77 | +#define NAND_CMD_CMD_READID FIELD(0x9, 4, 4) | |
78 | +#define NAND_CMD_CMD_RESET FIELD(0xf, 4, 4) |
arch/unicore32/include/mach/regs-ost.h
1 | +/* | |
2 | + * PKUnity Operating System Timer (OST) Registers | |
3 | + */ | |
4 | +/* | |
5 | + * Match Reg 0 OST_OSMR0 | |
6 | + */ | |
7 | +#define OST_OSMR0 __REG(PKUNITY_OST_BASE + 0x0000) | |
8 | +/* | |
9 | + * Match Reg 1 OST_OSMR1 | |
10 | + */ | |
11 | +#define OST_OSMR1 __REG(PKUNITY_OST_BASE + 0x0004) | |
12 | +/* | |
13 | + * Match Reg 2 OST_OSMR2 | |
14 | + */ | |
15 | +#define OST_OSMR2 __REG(PKUNITY_OST_BASE + 0x0008) | |
16 | +/* | |
17 | + * Match Reg 3 OST_OSMR3 | |
18 | + */ | |
19 | +#define OST_OSMR3 __REG(PKUNITY_OST_BASE + 0x000C) | |
20 | +/* | |
21 | + * Counter Reg OST_OSCR | |
22 | + */ | |
23 | +#define OST_OSCR __REG(PKUNITY_OST_BASE + 0x0010) | |
24 | +/* | |
25 | + * Status Reg OST_OSSR | |
26 | + */ | |
27 | +#define OST_OSSR __REG(PKUNITY_OST_BASE + 0x0014) | |
28 | +/* | |
29 | + * Watchdog Enable Reg OST_OWER | |
30 | + */ | |
31 | +#define OST_OWER __REG(PKUNITY_OST_BASE + 0x0018) | |
32 | +/* | |
33 | + * Interrupt Enable Reg OST_OIER | |
34 | + */ | |
35 | +#define OST_OIER __REG(PKUNITY_OST_BASE + 0x001C) | |
36 | +/* | |
37 | + * PWM Pulse Width Control Reg OST_PWMPWCR | |
38 | + */ | |
39 | +#define OST_PWMPWCR __REG(PKUNITY_OST_BASE + 0x0080) | |
40 | +/* | |
41 | + * PWM Duty Cycle Control Reg OST_PWMDCCR | |
42 | + */ | |
43 | +#define OST_PWMDCCR __REG(PKUNITY_OST_BASE + 0x0084) | |
44 | +/* | |
45 | + * PWM Period Control Reg OST_PWMPCR | |
46 | + */ | |
47 | +#define OST_PWMPCR __REG(PKUNITY_OST_BASE + 0x0088) | |
48 | + | |
49 | +/* | |
50 | + * Match detected 0 OST_OSSR_M0 | |
51 | + */ | |
52 | +#define OST_OSSR_M0 FIELD(1, 1, 0) | |
53 | +/* | |
54 | + * Match detected 1 OST_OSSR_M1 | |
55 | + */ | |
56 | +#define OST_OSSR_M1 FIELD(1, 1, 1) | |
57 | +/* | |
58 | + * Match detected 2 OST_OSSR_M2 | |
59 | + */ | |
60 | +#define OST_OSSR_M2 FIELD(1, 1, 2) | |
61 | +/* | |
62 | + * Match detected 3 OST_OSSR_M3 | |
63 | + */ | |
64 | +#define OST_OSSR_M3 FIELD(1, 1, 3) | |
65 | + | |
66 | +/* | |
67 | + * Interrupt enable 0 OST_OIER_E0 | |
68 | + */ | |
69 | +#define OST_OIER_E0 FIELD(1, 1, 0) | |
70 | +/* | |
71 | + * Interrupt enable 1 OST_OIER_E1 | |
72 | + */ | |
73 | +#define OST_OIER_E1 FIELD(1, 1, 1) | |
74 | +/* | |
75 | + * Interrupt enable 2 OST_OIER_E2 | |
76 | + */ | |
77 | +#define OST_OIER_E2 FIELD(1, 1, 2) | |
78 | +/* | |
79 | + * Interrupt enable 3 OST_OIER_E3 | |
80 | + */ | |
81 | +#define OST_OIER_E3 FIELD(1, 1, 3) | |
82 | + | |
83 | +/* | |
84 | + * Watchdog Match Enable OST_OWER_WME | |
85 | + */ | |
86 | +#define OST_OWER_WME FIELD(1, 1, 0) | |
87 | + | |
88 | +/* | |
89 | + * PWM Full Duty Cycle OST_PWMDCCR_FDCYCLE | |
90 | + */ | |
91 | +#define OST_PWMDCCR_FDCYCLE FIELD(1, 1, 10) |
arch/unicore32/include/mach/regs-pci.h
1 | +/* | |
2 | + * PKUnity AHB-PCI Bridge Registers | |
3 | + */ | |
4 | + | |
5 | +/* | |
6 | + * AHB/PCI fixed physical address for pci addess configuration | |
7 | + */ | |
8 | +/* | |
9 | + * PCICFG Bridge Base Reg. | |
10 | + */ | |
11 | +#define PCICFG_BRIBASE __REG(PKUNITY_PCICFG_BASE + 0x0000) | |
12 | +/* | |
13 | + * PCICFG Address Reg. | |
14 | + */ | |
15 | +#define PCICFG_ADDR __REG(PKUNITY_PCICFG_BASE + 0x0004) | |
16 | +/* | |
17 | + * PCICFG Address Reg. | |
18 | + */ | |
19 | +#define PCICFG_DATA __REG(PKUNITY_PCICFG_BASE + 0x0008) | |
20 | + | |
21 | +/* | |
22 | + * PCI Bridge configuration space | |
23 | + */ | |
24 | +#define PCIBRI_ID __REG(PKUNITY_PCIBRI_BASE + 0x0000) | |
25 | +#define PCIBRI_CMD __REG(PKUNITY_PCIBRI_BASE + 0x0004) | |
26 | +#define PCIBRI_CLASS __REG(PKUNITY_PCIBRI_BASE + 0x0008) | |
27 | +#define PCIBRI_LTR __REG(PKUNITY_PCIBRI_BASE + 0x000C) | |
28 | +#define PCIBRI_BAR0 __REG(PKUNITY_PCIBRI_BASE + 0x0010) | |
29 | +#define PCIBRI_BAR1 __REG(PKUNITY_PCIBRI_BASE + 0x0014) | |
30 | +#define PCIBRI_BAR2 __REG(PKUNITY_PCIBRI_BASE + 0x0018) | |
31 | +#define PCIBRI_BAR3 __REG(PKUNITY_PCIBRI_BASE + 0x001C) | |
32 | +#define PCIBRI_BAR4 __REG(PKUNITY_PCIBRI_BASE + 0x0020) | |
33 | +#define PCIBRI_BAR5 __REG(PKUNITY_PCIBRI_BASE + 0x0024) | |
34 | + | |
35 | +#define PCIBRI_PCICTL0 __REG(PKUNITY_PCIBRI_BASE + 0x0100) | |
36 | +#define PCIBRI_PCIBAR0 __REG(PKUNITY_PCIBRI_BASE + 0x0104) | |
37 | +#define PCIBRI_PCIAMR0 __REG(PKUNITY_PCIBRI_BASE + 0x0108) | |
38 | +#define PCIBRI_PCITAR0 __REG(PKUNITY_PCIBRI_BASE + 0x010C) | |
39 | +#define PCIBRI_PCICTL1 __REG(PKUNITY_PCIBRI_BASE + 0x0110) | |
40 | +#define PCIBRI_PCIBAR1 __REG(PKUNITY_PCIBRI_BASE + 0x0114) | |
41 | +#define PCIBRI_PCIAMR1 __REG(PKUNITY_PCIBRI_BASE + 0x0118) | |
42 | +#define PCIBRI_PCITAR1 __REG(PKUNITY_PCIBRI_BASE + 0x011C) | |
43 | +#define PCIBRI_PCICTL2 __REG(PKUNITY_PCIBRI_BASE + 0x0120) | |
44 | +#define PCIBRI_PCIBAR2 __REG(PKUNITY_PCIBRI_BASE + 0x0124) | |
45 | +#define PCIBRI_PCIAMR2 __REG(PKUNITY_PCIBRI_BASE + 0x0128) | |
46 | +#define PCIBRI_PCITAR2 __REG(PKUNITY_PCIBRI_BASE + 0x012C) | |
47 | +#define PCIBRI_PCICTL3 __REG(PKUNITY_PCIBRI_BASE + 0x0130) | |
48 | +#define PCIBRI_PCIBAR3 __REG(PKUNITY_PCIBRI_BASE + 0x0134) | |
49 | +#define PCIBRI_PCIAMR3 __REG(PKUNITY_PCIBRI_BASE + 0x0138) | |
50 | +#define PCIBRI_PCITAR3 __REG(PKUNITY_PCIBRI_BASE + 0x013C) | |
51 | +#define PCIBRI_PCICTL4 __REG(PKUNITY_PCIBRI_BASE + 0x0140) | |
52 | +#define PCIBRI_PCIBAR4 __REG(PKUNITY_PCIBRI_BASE + 0x0144) | |
53 | +#define PCIBRI_PCIAMR4 __REG(PKUNITY_PCIBRI_BASE + 0x0148) | |
54 | +#define PCIBRI_PCITAR4 __REG(PKUNITY_PCIBRI_BASE + 0x014C) | |
55 | +#define PCIBRI_PCICTL5 __REG(PKUNITY_PCIBRI_BASE + 0x0150) | |
56 | +#define PCIBRI_PCIBAR5 __REG(PKUNITY_PCIBRI_BASE + 0x0154) | |
57 | +#define PCIBRI_PCIAMR5 __REG(PKUNITY_PCIBRI_BASE + 0x0158) | |
58 | +#define PCIBRI_PCITAR5 __REG(PKUNITY_PCIBRI_BASE + 0x015C) | |
59 | + | |
60 | +#define PCIBRI_AHBCTL0 __REG(PKUNITY_PCIBRI_BASE + 0x0180) | |
61 | +#define PCIBRI_AHBBAR0 __REG(PKUNITY_PCIBRI_BASE + 0x0184) | |
62 | +#define PCIBRI_AHBAMR0 __REG(PKUNITY_PCIBRI_BASE + 0x0188) | |
63 | +#define PCIBRI_AHBTAR0 __REG(PKUNITY_PCIBRI_BASE + 0x018C) | |
64 | +#define PCIBRI_AHBCTL1 __REG(PKUNITY_PCIBRI_BASE + 0x0190) | |
65 | +#define PCIBRI_AHBBAR1 __REG(PKUNITY_PCIBRI_BASE + 0x0194) | |
66 | +#define PCIBRI_AHBAMR1 __REG(PKUNITY_PCIBRI_BASE + 0x0198) | |
67 | +#define PCIBRI_AHBTAR1 __REG(PKUNITY_PCIBRI_BASE + 0x019C) | |
68 | +#define PCIBRI_AHBCTL2 __REG(PKUNITY_PCIBRI_BASE + 0x01A0) | |
69 | +#define PCIBRI_AHBBAR2 __REG(PKUNITY_PCIBRI_BASE + 0x01A4) | |
70 | +#define PCIBRI_AHBAMR2 __REG(PKUNITY_PCIBRI_BASE + 0x01A8) | |
71 | +#define PCIBRI_AHBTAR2 __REG(PKUNITY_PCIBRI_BASE + 0x01AC) | |
72 | +#define PCIBRI_AHBCTL3 __REG(PKUNITY_PCIBRI_BASE + 0x01B0) | |
73 | +#define PCIBRI_AHBBAR3 __REG(PKUNITY_PCIBRI_BASE + 0x01B4) | |
74 | +#define PCIBRI_AHBAMR3 __REG(PKUNITY_PCIBRI_BASE + 0x01B8) | |
75 | +#define PCIBRI_AHBTAR3 __REG(PKUNITY_PCIBRI_BASE + 0x01BC) | |
76 | +#define PCIBRI_AHBCTL4 __REG(PKUNITY_PCIBRI_BASE + 0x01C0) | |
77 | +#define PCIBRI_AHBBAR4 __REG(PKUNITY_PCIBRI_BASE + 0x01C4) | |
78 | +#define PCIBRI_AHBAMR4 __REG(PKUNITY_PCIBRI_BASE + 0x01C8) | |
79 | +#define PCIBRI_AHBTAR4 __REG(PKUNITY_PCIBRI_BASE + 0x01CC) | |
80 | +#define PCIBRI_AHBCTL5 __REG(PKUNITY_PCIBRI_BASE + 0x01D0) | |
81 | +#define PCIBRI_AHBBAR5 __REG(PKUNITY_PCIBRI_BASE + 0x01D4) | |
82 | +#define PCIBRI_AHBAMR5 __REG(PKUNITY_PCIBRI_BASE + 0x01D8) | |
83 | +#define PCIBRI_AHBTAR5 __REG(PKUNITY_PCIBRI_BASE + 0x01DC) | |
84 | + | |
85 | +#define PCIBRI_CTLx_AT FIELD(1, 1, 2) | |
86 | +#define PCIBRI_CTLx_PREF FIELD(1, 1, 1) | |
87 | +#define PCIBRI_CTLx_MRL FIELD(1, 1, 0) | |
88 | + | |
89 | +#define PCIBRI_BARx_ADDR FIELD(0xFFFFFFFC, 30, 2) | |
90 | +#define PCIBRI_BARx_IO FIELD(1, 1, 0) | |
91 | +#define PCIBRI_BARx_MEM FIELD(0, 1, 0) | |
92 | + | |
93 | +#define PCIBRI_CMD_IO FIELD(1, 1, 0) | |
94 | +#define PCIBRI_CMD_MEM FIELD(1, 1, 1) |
arch/unicore32/include/mach/regs-pm.h
1 | +/* | |
2 | + * PKUNITY Power Manager (PM) Registers | |
3 | + */ | |
4 | +/* | |
5 | + * PM Control Reg PM_PMCR | |
6 | + */ | |
7 | +#define PM_PMCR __REG(PKUNITY_PM_BASE + 0x0000) | |
8 | +/* | |
9 | + * PM General Conf. Reg PM_PGCR | |
10 | + */ | |
11 | +#define PM_PGCR __REG(PKUNITY_PM_BASE + 0x0004) | |
12 | +/* | |
13 | + * PM PLL Conf. Reg PM_PPCR | |
14 | + */ | |
15 | +#define PM_PPCR __REG(PKUNITY_PM_BASE + 0x0008) | |
16 | +/* | |
17 | + * PM Wakeup Enable Reg PM_PWER | |
18 | + */ | |
19 | +#define PM_PWER __REG(PKUNITY_PM_BASE + 0x000C) | |
20 | +/* | |
21 | + * PM GPIO Sleep Status Reg PM_PGSR | |
22 | + */ | |
23 | +#define PM_PGSR __REG(PKUNITY_PM_BASE + 0x0010) | |
24 | +/* | |
25 | + * PM Clock Gate Reg PM_PCGR | |
26 | + */ | |
27 | +#define PM_PCGR __REG(PKUNITY_PM_BASE + 0x0014) | |
28 | +/* | |
29 | + * PM SYS PLL Conf. Reg PM_PLLSYSCFG | |
30 | + */ | |
31 | +#define PM_PLLSYSCFG __REG(PKUNITY_PM_BASE + 0x0018) | |
32 | +/* | |
33 | + * PM DDR PLL Conf. Reg PM_PLLDDRCFG | |
34 | + */ | |
35 | +#define PM_PLLDDRCFG __REG(PKUNITY_PM_BASE + 0x001C) | |
36 | +/* | |
37 | + * PM VGA PLL Conf. Reg PM_PLLVGACFG | |
38 | + */ | |
39 | +#define PM_PLLVGACFG __REG(PKUNITY_PM_BASE + 0x0020) | |
40 | +/* | |
41 | + * PM Div Conf. Reg PM_DIVCFG | |
42 | + */ | |
43 | +#define PM_DIVCFG __REG(PKUNITY_PM_BASE + 0x0024) | |
44 | +/* | |
45 | + * PM SYS PLL Status Reg PM_PLLSYSSTATUS | |
46 | + */ | |
47 | +#define PM_PLLSYSSTATUS __REG(PKUNITY_PM_BASE + 0x0028) | |
48 | +/* | |
49 | + * PM DDR PLL Status Reg PM_PLLDDRSTATUS | |
50 | + */ | |
51 | +#define PM_PLLDDRSTATUS __REG(PKUNITY_PM_BASE + 0x002C) | |
52 | +/* | |
53 | + * PM VGA PLL Status Reg PM_PLLVGASTATUS | |
54 | + */ | |
55 | +#define PM_PLLVGASTATUS __REG(PKUNITY_PM_BASE + 0x0030) | |
56 | +/* | |
57 | + * PM Div Status Reg PM_DIVSTATUS | |
58 | + */ | |
59 | +#define PM_DIVSTATUS __REG(PKUNITY_PM_BASE + 0x0034) | |
60 | +/* | |
61 | + * PM Software Reset Reg PM_SWRESET | |
62 | + */ | |
63 | +#define PM_SWRESET __REG(PKUNITY_PM_BASE + 0x0038) | |
64 | +/* | |
65 | + * PM DDR2 PAD Start Reg PM_DDR2START | |
66 | + */ | |
67 | +#define PM_DDR2START __REG(PKUNITY_PM_BASE + 0x003C) | |
68 | +/* | |
69 | + * PM DDR2 PAD Status Reg PM_DDR2CAL0 | |
70 | + */ | |
71 | +#define PM_DDR2CAL0 __REG(PKUNITY_PM_BASE + 0x0040) | |
72 | +/* | |
73 | + * PM PLL DFC Done Reg PM_PLLDFCDONE | |
74 | + */ | |
75 | +#define PM_PLLDFCDONE __REG(PKUNITY_PM_BASE + 0x0044) | |
76 | + | |
77 | +#define PM_PMCR_SFB FIELD(1, 1, 0) | |
78 | +#define PM_PMCR_IFB FIELD(1, 1, 1) | |
79 | +#define PM_PMCR_CFBSYS FIELD(1, 1, 2) | |
80 | +#define PM_PMCR_CFBDDR FIELD(1, 1, 3) | |
81 | +#define PM_PMCR_CFBVGA FIELD(1, 1, 4) | |
82 | +#define PM_PMCR_CFBDIVBCLK FIELD(1, 1, 5) | |
83 | + | |
84 | +/* | |
85 | + * GPIO 8~27 wake-up enable PM_PWER_GPIOHIGH | |
86 | + */ | |
87 | +#define PM_PWER_GPIOHIGH FIELD(1, 1, 8) | |
88 | +/* | |
89 | + * RTC alarm wake-up enable PM_PWER_RTC | |
90 | + */ | |
91 | +#define PM_PWER_RTC FIELD(1, 1, 31) | |
92 | + | |
93 | +#define PM_PCGR_BCLK64DDR FIELD(1, 1, 0) | |
94 | +#define PM_PCGR_BCLK64VGA FIELD(1, 1, 1) | |
95 | +#define PM_PCGR_BCLKDDR FIELD(1, 1, 2) | |
96 | +#define PM_PCGR_BCLKPCI FIELD(1, 1, 4) | |
97 | +#define PM_PCGR_BCLKDMAC FIELD(1, 1, 5) | |
98 | +#define PM_PCGR_BCLKUMAL FIELD(1, 1, 6) | |
99 | +#define PM_PCGR_BCLKUSB FIELD(1, 1, 7) | |
100 | +#define PM_PCGR_BCLKMME FIELD(1, 1, 10) | |
101 | +#define PM_PCGR_BCLKNAND FIELD(1, 1, 11) | |
102 | +#define PM_PCGR_BCLKH264E FIELD(1, 1, 12) | |
103 | +#define PM_PCGR_BCLKVGA FIELD(1, 1, 13) | |
104 | +#define PM_PCGR_BCLKH264D FIELD(1, 1, 14) | |
105 | +#define PM_PCGR_VECLK FIELD(1, 1, 15) | |
106 | +#define PM_PCGR_HECLK FIELD(1, 1, 16) | |
107 | +#define PM_PCGR_HDCLK FIELD(1, 1, 17) | |
108 | +#define PM_PCGR_NANDCLK FIELD(1, 1, 18) | |
109 | +#define PM_PCGR_GECLK FIELD(1, 1, 19) | |
110 | +#define PM_PCGR_VGACLK FIELD(1, 1, 20) | |
111 | +#define PM_PCGR_PCICLK FIELD(1, 1, 21) | |
112 | +#define PM_PCGR_SATACLK FIELD(1, 1, 25) | |
113 | + | |
114 | +/* | |
115 | + * [23:20]PM_DIVCFG_VGACLK(v) | |
116 | + */ | |
117 | +#define PM_DIVCFG_VGACLK_MASK FMASK(4, 20) | |
118 | +#define PM_DIVCFG_VGACLK(v) FIELD((v), 4, 20) | |
119 | + | |
120 | +#define PM_SWRESET_USB FIELD(1, 1, 6) | |
121 | +#define PM_SWRESET_VGADIV FIELD(1, 1, 26) | |
122 | +#define PM_SWRESET_GEDIV FIELD(1, 1, 27) | |
123 | + | |
124 | +#define PM_PLLDFCDONE_SYSDFC FIELD(1, 1, 0) | |
125 | +#define PM_PLLDFCDONE_DDRDFC FIELD(1, 1, 1) | |
126 | +#define PM_PLLDFCDONE_VGADFC FIELD(1, 1, 2) |
arch/unicore32/include/mach/regs-ps2.h
1 | +/* | |
2 | + * PKUnity PS2 Controller Registers | |
3 | + */ | |
4 | +/* | |
5 | + * the same as I8042_DATA_REG PS2_DATA | |
6 | + */ | |
7 | +#define PS2_DATA __REG(PKUNITY_PS2_BASE + 0x0060) | |
8 | +/* | |
9 | + * the same as I8042_COMMAND_REG PS2_COMMAND | |
10 | + */ | |
11 | +#define PS2_COMMAND __REG(PKUNITY_PS2_BASE + 0x0064) | |
12 | +/* | |
13 | + * the same as I8042_STATUS_REG PS2_STATUS | |
14 | + */ | |
15 | +#define PS2_STATUS __REG(PKUNITY_PS2_BASE + 0x0064) | |
16 | +/* | |
17 | + * counter reg PS2_CNT | |
18 | + */ | |
19 | +#define PS2_CNT __REG(PKUNITY_PS2_BASE + 0x0068) |
arch/unicore32/include/mach/regs-resetc.h
1 | +/* | |
2 | + * PKUnity Reset Controller (RC) Registers | |
3 | + */ | |
4 | +/* | |
5 | + * Software Reset Register | |
6 | + */ | |
7 | +#define RESETC_SWRR __REG(PKUNITY_RESETC_BASE + 0x0000) | |
8 | +/* | |
9 | + * Reset Status Register | |
10 | + */ | |
11 | +#define RESETC_RSSR __REG(PKUNITY_RESETC_BASE + 0x0004) | |
12 | + | |
13 | +/* | |
14 | + * Software Reset Bit | |
15 | + */ | |
16 | +#define RESETC_SWRR_SRB FIELD(1, 1, 0) | |
17 | + | |
18 | +/* | |
19 | + * Hardware Reset | |
20 | + */ | |
21 | +#define RESETC_RSSR_HWR FIELD(1, 1, 0) | |
22 | +/* | |
23 | + * Software Reset | |
24 | + */ | |
25 | +#define RESETC_RSSR_SWR FIELD(1, 1, 1) | |
26 | +/* | |
27 | + * Watchdog Reset | |
28 | + */ | |
29 | +#define RESETC_RSSR_WDR FIELD(1, 1, 2) | |
30 | +/* | |
31 | + * Sleep Mode Reset | |
32 | + */ | |
33 | +#define RESETC_RSSR_SMR FIELD(1, 1, 3) |
arch/unicore32/include/mach/regs-rtc.h
1 | +/* | |
2 | + * PKUnity Real-Time Clock (RTC) control registers | |
3 | + */ | |
4 | +/* | |
5 | + * RTC Alarm Reg RTC_RTAR | |
6 | + */ | |
7 | +#define RTC_RTAR __REG(PKUNITY_RTC_BASE + 0x0000) | |
8 | +/* | |
9 | + * RTC Count Reg RTC_RCNR | |
10 | + */ | |
11 | +#define RTC_RCNR __REG(PKUNITY_RTC_BASE + 0x0004) | |
12 | +/* | |
13 | + * RTC Trim Reg RTC_RTTR | |
14 | + */ | |
15 | +#define RTC_RTTR __REG(PKUNITY_RTC_BASE + 0x0008) | |
16 | +/* | |
17 | + * RTC Status Reg RTC_RTSR | |
18 | + */ | |
19 | +#define RTC_RTSR __REG(PKUNITY_RTC_BASE + 0x0010) | |
20 | + | |
21 | +/* | |
22 | + * ALarm detected RTC_RTSR_AL | |
23 | + */ | |
24 | +#define RTC_RTSR_AL FIELD(1, 1, 0) | |
25 | +/* | |
26 | + * 1 Hz clock detected RTC_RTSR_HZ | |
27 | + */ | |
28 | +#define RTC_RTSR_HZ FIELD(1, 1, 1) | |
29 | +/* | |
30 | + * ALarm interrupt Enable RTC_RTSR_ALE | |
31 | + */ | |
32 | +#define RTC_RTSR_ALE FIELD(1, 1, 2) | |
33 | +/* | |
34 | + * 1 Hz clock interrupt Enable RTC_RTSR_HZE | |
35 | + */ | |
36 | +#define RTC_RTSR_HZE FIELD(1, 1, 3) |
arch/unicore32/include/mach/regs-sdc.h
1 | +/* | |
2 | + * PKUnity Multi-Media Card and Security Digital Card (MMC/SD) Registers | |
3 | + */ | |
4 | +/* | |
5 | + * Clock Control Reg SDC_CCR | |
6 | + */ | |
7 | +#define SDC_CCR __REG(PKUNITY_SDC_BASE + 0x0000) | |
8 | +/* | |
9 | + * Software Reset Reg SDC_SRR | |
10 | + */ | |
11 | +#define SDC_SRR __REG(PKUNITY_SDC_BASE + 0x0004) | |
12 | +/* | |
13 | + * Argument Reg SDC_ARGUMENT | |
14 | + */ | |
15 | +#define SDC_ARGUMENT __REG(PKUNITY_SDC_BASE + 0x0008) | |
16 | +/* | |
17 | + * Command Reg SDC_COMMAND | |
18 | + */ | |
19 | +#define SDC_COMMAND __REG(PKUNITY_SDC_BASE + 0x000C) | |
20 | +/* | |
21 | + * Block Size Reg SDC_BLOCKSIZE | |
22 | + */ | |
23 | +#define SDC_BLOCKSIZE __REG(PKUNITY_SDC_BASE + 0x0010) | |
24 | +/* | |
25 | + * Block Cound Reg SDC_BLOCKCOUNT | |
26 | + */ | |
27 | +#define SDC_BLOCKCOUNT __REG(PKUNITY_SDC_BASE + 0x0014) | |
28 | +/* | |
29 | + * Transfer Mode Reg SDC_TMR | |
30 | + */ | |
31 | +#define SDC_TMR __REG(PKUNITY_SDC_BASE + 0x0018) | |
32 | +/* | |
33 | + * Response Reg. 0 SDC_RES0 | |
34 | + */ | |
35 | +#define SDC_RES0 __REG(PKUNITY_SDC_BASE + 0x001C) | |
36 | +/* | |
37 | + * Response Reg. 1 SDC_RES1 | |
38 | + */ | |
39 | +#define SDC_RES1 __REG(PKUNITY_SDC_BASE + 0x0020) | |
40 | +/* | |
41 | + * Response Reg. 2 SDC_RES2 | |
42 | + */ | |
43 | +#define SDC_RES2 __REG(PKUNITY_SDC_BASE + 0x0024) | |
44 | +/* | |
45 | + * Response Reg. 3 SDC_RES3 | |
46 | + */ | |
47 | +#define SDC_RES3 __REG(PKUNITY_SDC_BASE + 0x0028) | |
48 | +/* | |
49 | + * Read Timeout Control Reg SDC_RTCR | |
50 | + */ | |
51 | +#define SDC_RTCR __REG(PKUNITY_SDC_BASE + 0x002C) | |
52 | +/* | |
53 | + * Interrupt Status Reg SDC_ISR | |
54 | + */ | |
55 | +#define SDC_ISR __REG(PKUNITY_SDC_BASE + 0x0030) | |
56 | +/* | |
57 | + * Interrupt Status Mask Reg SDC_ISMR | |
58 | + */ | |
59 | +#define SDC_ISMR __REG(PKUNITY_SDC_BASE + 0x0034) | |
60 | +/* | |
61 | + * RX FIFO SDC_RXFIFO | |
62 | + */ | |
63 | +#define SDC_RXFIFO __REG(PKUNITY_SDC_BASE + 0x0038) | |
64 | +/* | |
65 | + * TX FIFO SDC_TXFIFO | |
66 | + */ | |
67 | +#define SDC_TXFIFO __REG(PKUNITY_SDC_BASE + 0x003C) | |
68 | + | |
69 | +/* | |
70 | + * SD Clock Enable SDC_CCR_CLKEN | |
71 | + */ | |
72 | +#define SDC_CCR_CLKEN FIELD(1, 1, 2) | |
73 | +/* | |
74 | + * [15:8] SDC_CCR_PDIV(v) | |
75 | + */ | |
76 | +#define SDC_CCR_PDIV(v) FIELD((v), 8, 8) | |
77 | + | |
78 | +/* | |
79 | + * Software reset enable SDC_SRR_ENABLE | |
80 | + */ | |
81 | +#define SDC_SRR_ENABLE FIELD(0, 1, 0) | |
82 | +/* | |
83 | + * Software reset disable SDC_SRR_DISABLE | |
84 | + */ | |
85 | +#define SDC_SRR_DISABLE FIELD(1, 1, 0) | |
86 | + | |
87 | +/* | |
88 | + * Response type SDC_COMMAND_RESTYPE_MASK | |
89 | + */ | |
90 | +#define SDC_COMMAND_RESTYPE_MASK FMASK(2, 0) | |
91 | +/* | |
92 | + * No response SDC_COMMAND_RESTYPE_NONE | |
93 | + */ | |
94 | +#define SDC_COMMAND_RESTYPE_NONE FIELD(0, 2, 0) | |
95 | +/* | |
96 | + * 136-bit long response SDC_COMMAND_RESTYPE_LONG | |
97 | + */ | |
98 | +#define SDC_COMMAND_RESTYPE_LONG FIELD(1, 2, 0) | |
99 | +/* | |
100 | + * 48-bit short response SDC_COMMAND_RESTYPE_SHORT | |
101 | + */ | |
102 | +#define SDC_COMMAND_RESTYPE_SHORT FIELD(2, 2, 0) | |
103 | +/* | |
104 | + * 48-bit short and test if busy response SDC_COMMAND_RESTYPE_SHORTBUSY | |
105 | + */ | |
106 | +#define SDC_COMMAND_RESTYPE_SHORTBUSY FIELD(3, 2, 0) | |
107 | +/* | |
108 | + * data ready SDC_COMMAND_DATAREADY | |
109 | + */ | |
110 | +#define SDC_COMMAND_DATAREADY FIELD(1, 1, 2) | |
111 | +#define SDC_COMMAND_CMDEN FIELD(1, 1, 3) | |
112 | +/* | |
113 | + * [10:5] SDC_COMMAND_CMDINDEX(v) | |
114 | + */ | |
115 | +#define SDC_COMMAND_CMDINDEX(v) FIELD((v), 6, 5) | |
116 | + | |
117 | +/* | |
118 | + * [10:0] SDC_BLOCKSIZE_BSMASK(v) | |
119 | + */ | |
120 | +#define SDC_BLOCKSIZE_BSMASK(v) FIELD((v), 11, 0) | |
121 | +/* | |
122 | + * [11:0] SDC_BLOCKCOUNT_BCMASK(v) | |
123 | + */ | |
124 | +#define SDC_BLOCKCOUNT_BCMASK(v) FIELD((v), 12, 0) | |
125 | + | |
126 | +/* | |
127 | + * Data Width 1bit SDC_TMR_WTH_1BIT | |
128 | + */ | |
129 | +#define SDC_TMR_WTH_1BIT FIELD(0, 1, 0) | |
130 | +/* | |
131 | + * Data Width 4bit SDC_TMR_WTH_4BIT | |
132 | + */ | |
133 | +#define SDC_TMR_WTH_4BIT FIELD(1, 1, 0) | |
134 | +/* | |
135 | + * Read SDC_TMR_DIR_READ | |
136 | + */ | |
137 | +#define SDC_TMR_DIR_READ FIELD(0, 1, 1) | |
138 | +/* | |
139 | + * Write SDC_TMR_DIR_WRITE | |
140 | + */ | |
141 | +#define SDC_TMR_DIR_WRITE FIELD(1, 1, 1) | |
142 | + | |
143 | +#define SDC_IR_MASK FMASK(13, 0) | |
144 | +#define SDC_IR_RESTIMEOUT FIELD(1, 1, 0) | |
145 | +#define SDC_IR_WRITECRC FIELD(1, 1, 1) | |
146 | +#define SDC_IR_READCRC FIELD(1, 1, 2) | |
147 | +#define SDC_IR_TXFIFOREAD FIELD(1, 1, 3) | |
148 | +#define SDC_IR_RXFIFOWRITE FIELD(1, 1, 4) | |
149 | +#define SDC_IR_READTIMEOUT FIELD(1, 1, 5) | |
150 | +#define SDC_IR_DATACOMPLETE FIELD(1, 1, 6) | |
151 | +#define SDC_IR_CMDCOMPLETE FIELD(1, 1, 7) | |
152 | +#define SDC_IR_RXFIFOFULL FIELD(1, 1, 8) | |
153 | +#define SDC_IR_RXFIFOEMPTY FIELD(1, 1, 9) | |
154 | +#define SDC_IR_TXFIFOFULL FIELD(1, 1, 10) | |
155 | +#define SDC_IR_TXFIFOEMPTY FIELD(1, 1, 11) | |
156 | +#define SDC_IR_ENDCMDWITHRES FIELD(1, 1, 12) |
arch/unicore32/include/mach/regs-spi.h
1 | +/* | |
2 | + * PKUnity Serial Peripheral Interface (SPI) Registers | |
3 | + */ | |
4 | +/* | |
5 | + * Control reg. 0 SPI_CR0 | |
6 | + */ | |
7 | +#define SPI_CR0 __REG(PKUNITY_SPI_BASE + 0x0000) | |
8 | +/* | |
9 | + * Control reg. 1 SPI_CR1 | |
10 | + */ | |
11 | +#define SPI_CR1 __REG(PKUNITY_SPI_BASE + 0x0004) | |
12 | +/* | |
13 | + * Enable reg SPI_SSIENR | |
14 | + */ | |
15 | +#define SPI_SSIENR __REG(PKUNITY_SPI_BASE + 0x0008) | |
16 | +/* | |
17 | + * Status reg SPI_SR | |
18 | + */ | |
19 | +#define SPI_SR __REG(PKUNITY_SPI_BASE + 0x0028) | |
20 | +/* | |
21 | + * Interrupt Mask reg SPI_IMR | |
22 | + */ | |
23 | +#define SPI_IMR __REG(PKUNITY_SPI_BASE + 0x002C) | |
24 | +/* | |
25 | + * Interrupt Status reg SPI_ISR | |
26 | + */ | |
27 | +#define SPI_ISR __REG(PKUNITY_SPI_BASE + 0x0030) | |
28 | + | |
29 | +/* | |
30 | + * Enable SPI Controller SPI_SSIENR_EN | |
31 | + */ | |
32 | +#define SPI_SSIENR_EN FIELD(1, 1, 0) | |
33 | + | |
34 | +/* | |
35 | + * SPI Busy SPI_SR_BUSY | |
36 | + */ | |
37 | +#define SPI_SR_BUSY FIELD(1, 1, 0) | |
38 | +/* | |
39 | + * Transmit FIFO Not Full SPI_SR_TFNF | |
40 | + */ | |
41 | +#define SPI_SR_TFNF FIELD(1, 1, 1) | |
42 | +/* | |
43 | + * Transmit FIFO Empty SPI_SR_TFE | |
44 | + */ | |
45 | +#define SPI_SR_TFE FIELD(1, 1, 2) | |
46 | +/* | |
47 | + * Receive FIFO Not Empty SPI_SR_RFNE | |
48 | + */ | |
49 | +#define SPI_SR_RFNE FIELD(1, 1, 3) | |
50 | +/* | |
51 | + * Receive FIFO Full SPI_SR_RFF | |
52 | + */ | |
53 | +#define SPI_SR_RFF FIELD(1, 1, 4) | |
54 | + | |
55 | +/* | |
56 | + * Trans. FIFO Empty Interrupt Status SPI_ISR_TXEIS | |
57 | + */ | |
58 | +#define SPI_ISR_TXEIS FIELD(1, 1, 0) | |
59 | +/* | |
60 | + * Trans. FIFO Overflow Interrupt Status SPI_ISR_TXOIS | |
61 | + */ | |
62 | +#define SPI_ISR_TXOIS FIELD(1, 1, 1) | |
63 | +/* | |
64 | + * Receiv. FIFO Underflow Interrupt Status SPI_ISR_RXUIS | |
65 | + */ | |
66 | +#define SPI_ISR_RXUIS FIELD(1, 1, 2) | |
67 | +/* | |
68 | + * Receiv. FIFO Overflow Interrupt Status SPI_ISR_RXOIS | |
69 | + */ | |
70 | +#define SPI_ISR_RXOIS FIELD(1, 1, 3) | |
71 | +/* | |
72 | + * Receiv. FIFO Full Interrupt Status SPI_ISR_RXFIS | |
73 | + */ | |
74 | +#define SPI_ISR_RXFIS FIELD(1, 1, 4) | |
75 | +#define SPI_ISR_MSTIS FIELD(1, 1, 5) | |
76 | + | |
77 | +/* | |
78 | + * Trans. FIFO Empty Interrupt Mask SPI_IMR_TXEIM | |
79 | + */ | |
80 | +#define SPI_IMR_TXEIM FIELD(1, 1, 0) | |
81 | +/* | |
82 | + * Trans. FIFO Overflow Interrupt Mask SPI_IMR_TXOIM | |
83 | + */ | |
84 | +#define SPI_IMR_TXOIM FIELD(1, 1, 1) | |
85 | +/* | |
86 | + * Receiv. FIFO Underflow Interrupt Mask SPI_IMR_RXUIM | |
87 | + */ | |
88 | +#define SPI_IMR_RXUIM FIELD(1, 1, 2) | |
89 | +/* | |
90 | + * Receiv. FIFO Overflow Interrupt Mask SPI_IMR_RXOIM | |
91 | + */ | |
92 | +#define SPI_IMR_RXOIM FIELD(1, 1, 3) | |
93 | +/* | |
94 | + * Receiv. FIFO Full Interrupt Mask SPI_IMR_RXFIM | |
95 | + */ | |
96 | +#define SPI_IMR_RXFIM FIELD(1, 1, 4) | |
97 | +#define SPI_IMR_MSTIM FIELD(1, 1, 5) |
arch/unicore32/include/mach/regs-uart.h
arch/unicore32/include/mach/regs-umal.h
1 | +/* | |
2 | + * PKUnity Ultra Media Access Layer (UMAL) Ethernet MAC Registers | |
3 | + */ | |
4 | + | |
5 | +/* MAC module of UMAL */ | |
6 | +/* UMAL's MAC module includes G/MII interface, several additional PHY | |
7 | + * interfaces, and MAC control sub-layer, which provides support for control | |
8 | + * frames (e.g. PAUSE frames). | |
9 | + */ | |
10 | +/* | |
11 | + * TX/RX reset and control UMAL_CFG1 | |
12 | + */ | |
13 | +#define UMAL_CFG1 __REG(PKUNITY_UMAL_BASE + 0x0000) | |
14 | +/* | |
15 | + * MAC interface mode control UMAL_CFG2 | |
16 | + */ | |
17 | +#define UMAL_CFG2 __REG(PKUNITY_UMAL_BASE + 0x0004) | |
18 | +/* | |
19 | + * Inter Packet/Frame Gap UMAL_IPGIFG | |
20 | + */ | |
21 | +#define UMAL_IPGIFG __REG(PKUNITY_UMAL_BASE + 0x0008) | |
22 | +/* | |
23 | + * Collision retry or backoff UMAL_HALFDUPLEX | |
24 | + */ | |
25 | +#define UMAL_HALFDUPLEX __REG(PKUNITY_UMAL_BASE + 0x000c) | |
26 | +/* | |
27 | + * Maximum Frame Length UMAL_MAXFRAME | |
28 | + */ | |
29 | +#define UMAL_MAXFRAME __REG(PKUNITY_UMAL_BASE + 0x0010) | |
30 | +/* | |
31 | + * Test Regsiter UMAL_TESTREG | |
32 | + */ | |
33 | +#define UMAL_TESTREG __REG(PKUNITY_UMAL_BASE + 0x001c) | |
34 | +/* | |
35 | + * MII Management Configure UMAL_MIICFG | |
36 | + */ | |
37 | +#define UMAL_MIICFG __REG(PKUNITY_UMAL_BASE + 0x0020) | |
38 | +/* | |
39 | + * MII Management Command UMAL_MIICMD | |
40 | + */ | |
41 | +#define UMAL_MIICMD __REG(PKUNITY_UMAL_BASE + 0x0024) | |
42 | +/* | |
43 | + * MII Management Address UMAL_MIIADDR | |
44 | + */ | |
45 | +#define UMAL_MIIADDR __REG(PKUNITY_UMAL_BASE + 0x0028) | |
46 | +/* | |
47 | + * MII Management Control UMAL_MIICTRL | |
48 | + */ | |
49 | +#define UMAL_MIICTRL __REG(PKUNITY_UMAL_BASE + 0x002c) | |
50 | +/* | |
51 | + * MII Management Status UMAL_MIISTATUS | |
52 | + */ | |
53 | +#define UMAL_MIISTATUS __REG(PKUNITY_UMAL_BASE + 0x0030) | |
54 | +/* | |
55 | + * MII Managment Indicator UMAL_MIIIDCT | |
56 | + */ | |
57 | +#define UMAL_MIIIDCT __REG(PKUNITY_UMAL_BASE + 0x0034) | |
58 | +/* | |
59 | + * Interface Control UMAL_IFCTRL | |
60 | + */ | |
61 | +#define UMAL_IFCTRL __REG(PKUNITY_UMAL_BASE + 0x0038) | |
62 | +/* | |
63 | + * Interface Status UMAL_IFSTATUS | |
64 | + */ | |
65 | +#define UMAL_IFSTATUS __REG(PKUNITY_UMAL_BASE + 0x003c) | |
66 | +/* | |
67 | + * MAC address (high 4 bytes) UMAL_STADDR1 | |
68 | + */ | |
69 | +#define UMAL_STADDR1 __REG(PKUNITY_UMAL_BASE + 0x0040) | |
70 | +/* | |
71 | + * MAC address (low 2 bytes) UMAL_STADDR2 | |
72 | + */ | |
73 | +#define UMAL_STADDR2 __REG(PKUNITY_UMAL_BASE + 0x0044) | |
74 | + | |
75 | +/* FIFO MODULE OF UMAL */ | |
76 | +/* UMAL's FIFO module provides data queuing for increased system level | |
77 | + * throughput | |
78 | + */ | |
79 | +#define UMAL_FIFOCFG0 __REG(PKUNITY_UMAL_BASE + 0x0048) | |
80 | +#define UMAL_FIFOCFG1 __REG(PKUNITY_UMAL_BASE + 0x004c) | |
81 | +#define UMAL_FIFOCFG2 __REG(PKUNITY_UMAL_BASE + 0x0050) | |
82 | +#define UMAL_FIFOCFG3 __REG(PKUNITY_UMAL_BASE + 0x0054) | |
83 | +#define UMAL_FIFOCFG4 __REG(PKUNITY_UMAL_BASE + 0x0058) | |
84 | +#define UMAL_FIFOCFG5 __REG(PKUNITY_UMAL_BASE + 0x005c) | |
85 | +#define UMAL_FIFORAM0 __REG(PKUNITY_UMAL_BASE + 0x0060) | |
86 | +#define UMAL_FIFORAM1 __REG(PKUNITY_UMAL_BASE + 0x0064) | |
87 | +#define UMAL_FIFORAM2 __REG(PKUNITY_UMAL_BASE + 0x0068) | |
88 | +#define UMAL_FIFORAM3 __REG(PKUNITY_UMAL_BASE + 0x006c) | |
89 | +#define UMAL_FIFORAM4 __REG(PKUNITY_UMAL_BASE + 0x0070) | |
90 | +#define UMAL_FIFORAM5 __REG(PKUNITY_UMAL_BASE + 0x0074) | |
91 | +#define UMAL_FIFORAM6 __REG(PKUNITY_UMAL_BASE + 0x0078) | |
92 | +#define UMAL_FIFORAM7 __REG(PKUNITY_UMAL_BASE + 0x007c) | |
93 | + | |
94 | +/* MAHBE MODUEL OF UMAL */ | |
95 | +/* UMAL's MAHBE module interfaces to the host system through 32-bit AHB Master | |
96 | + * and Slave ports.Registers within the M-AHBE provide Control and Status | |
97 | + * information concerning these transfers. | |
98 | + */ | |
99 | +/* | |
100 | + * Transmit Control UMAL_DMATxCtrl | |
101 | + */ | |
102 | +#define UMAL_DMATxCtrl __REG(PKUNITY_UMAL_BASE + 0x0180) | |
103 | +/* | |
104 | + * Pointer to TX Descripter UMAL_DMATxDescriptor | |
105 | + */ | |
106 | +#define UMAL_DMATxDescriptor __REG(PKUNITY_UMAL_BASE + 0x0184) | |
107 | +/* | |
108 | + * Status of Tx Packet Transfers UMAL_DMATxStatus | |
109 | + */ | |
110 | +#define UMAL_DMATxStatus __REG(PKUNITY_UMAL_BASE + 0x0188) | |
111 | +/* | |
112 | + * Receive Control UMAL_DMARxCtrl | |
113 | + */ | |
114 | +#define UMAL_DMARxCtrl __REG(PKUNITY_UMAL_BASE + 0x018c) | |
115 | +/* | |
116 | + * Pointer to Rx Descriptor UMAL_DMARxDescriptor | |
117 | + */ | |
118 | +#define UMAL_DMARxDescriptor __REG(PKUNITY_UMAL_BASE + 0x0190) | |
119 | +/* | |
120 | + * Status of Rx Packet Transfers UMAL_DMARxStatus | |
121 | + */ | |
122 | +#define UMAL_DMARxStatus __REG(PKUNITY_UMAL_BASE + 0x0194) | |
123 | +/* | |
124 | + * Interrupt Mask UMAL_DMAIntrMask | |
125 | + */ | |
126 | +#define UMAL_DMAIntrMask __REG(PKUNITY_UMAL_BASE + 0x0198) | |
127 | +/* | |
128 | + * Interrupts, read only UMAL_DMAInterrupt | |
129 | + */ | |
130 | +#define UMAL_DMAInterrupt __REG(PKUNITY_UMAL_BASE + 0x019c) | |
131 | + | |
132 | +/* | |
133 | + * Commands for UMAL_CFG1 register | |
134 | + */ | |
135 | +#define UMAL_CFG1_TXENABLE FIELD(1, 1, 0) | |
136 | +#define UMAL_CFG1_RXENABLE FIELD(1, 1, 2) | |
137 | +#define UMAL_CFG1_TXFLOWCTL FIELD(1, 1, 4) | |
138 | +#define UMAL_CFG1_RXFLOWCTL FIELD(1, 1, 5) | |
139 | +#define UMAL_CFG1_CONFLPBK FIELD(1, 1, 8) | |
140 | +#define UMAL_CFG1_RESET FIELD(1, 1, 31) | |
141 | +#define UMAL_CFG1_CONFFLCTL (MAC_TX_FLOW_CTL | MAC_RX_FLOW_CTL) | |
142 | + | |
143 | +/* | |
144 | + * Commands for UMAL_CFG2 register | |
145 | + */ | |
146 | +#define UMAL_CFG2_FULLDUPLEX FIELD(1, 1, 0) | |
147 | +#define UMAL_CFG2_CRCENABLE FIELD(1, 1, 1) | |
148 | +#define UMAL_CFG2_PADCRC FIELD(1, 1, 2) | |
149 | +#define UMAL_CFG2_LENGTHCHECK FIELD(1, 1, 4) | |
150 | +#define UMAL_CFG2_MODEMASK FMASK(2, 8) | |
151 | +#define UMAL_CFG2_NIBBLEMODE FIELD(1, 2, 8) | |
152 | +#define UMAL_CFG2_BYTEMODE FIELD(2, 2, 8) | |
153 | +#define UMAL_CFG2_PREAMBLENMASK FMASK(4, 12) | |
154 | +#define UMAL_CFG2_DEFPREAMBLEN FIELD(7, 4, 12) | |
155 | +#define UMAL_CFG2_FD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \ | |
156 | + | UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \ | |
157 | + | UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX) | |
158 | +#define UMAL_CFG2_FD1000 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_BYTEMODE \ | |
159 | + | UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \ | |
160 | + | UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX) | |
161 | +#define UMAL_CFG2_HD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \ | |
162 | + | UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \ | |
163 | + | UMAL_CFG2_CRCENABLE) | |
164 | + | |
165 | +/* | |
166 | + * Command for UMAL_IFCTRL register | |
167 | + */ | |
168 | +#define UMAL_IFCTRL_RESET FIELD(1, 1, 31) | |
169 | + | |
170 | +/* | |
171 | + * Command for UMAL_MIICFG register | |
172 | + */ | |
173 | +#define UMAL_MIICFG_RESET FIELD(1, 1, 31) | |
174 | + | |
175 | +/* | |
176 | + * Command for UMAL_MIICMD register | |
177 | + */ | |
178 | +#define UMAL_MIICMD_READ FIELD(1, 1, 0) | |
179 | + | |
180 | +/* | |
181 | + * Command for UMAL_MIIIDCT register | |
182 | + */ | |
183 | +#define UMAL_MIIIDCT_BUSY FIELD(1, 1, 0) | |
184 | +#define UMAL_MIIIDCT_NOTVALID FIELD(1, 1, 2) | |
185 | + | |
186 | +/* | |
187 | + * Commands for DMATxCtrl regesters | |
188 | + */ | |
189 | +#define UMAL_DMA_Enable FIELD(1, 1, 0) | |
190 | + | |
191 | +/* | |
192 | + * Commands for DMARxCtrl regesters | |
193 | + */ | |
194 | +#define UMAL_DMAIntrMask_ENABLEHALFWORD FIELD(1, 1, 16) | |
195 | + | |
196 | +/* | |
197 | + * Command for DMARxStatus | |
198 | + */ | |
199 | +#define CLR_RX_BUS_ERR FIELD(1, 1, 3) | |
200 | +#define CLR_RX_OVERFLOW FIELD(1, 1, 2) | |
201 | +#define CLR_RX_PKT FIELD(1, 1, 0) | |
202 | + | |
203 | +/* | |
204 | + * Command for DMATxStatus | |
205 | + */ | |
206 | +#define CLR_TX_BUS_ERR FIELD(1, 1, 3) | |
207 | +#define CLR_TX_UNDERRUN FIELD(1, 1, 1) | |
208 | +#define CLR_TX_PKT FIELD(1, 1, 0) | |
209 | + | |
210 | +/* | |
211 | + * Commands for DMAIntrMask and DMAInterrupt register | |
212 | + */ | |
213 | +#define INT_RX_MASK FIELD(0xd, 4, 4) | |
214 | +#define INT_TX_MASK FIELD(0xb, 4, 0) | |
215 | + | |
216 | +#define INT_RX_BUS_ERR FIELD(1, 1, 7) | |
217 | +#define INT_RX_OVERFLOW FIELD(1, 1, 6) | |
218 | +#define INT_RX_PKT FIELD(1, 1, 4) | |
219 | +#define INT_TX_BUS_ERR FIELD(1, 1, 3) | |
220 | +#define INT_TX_UNDERRUN FIELD(1, 1, 1) | |
221 | +#define INT_TX_PKT FIELD(1, 1, 0) | |
222 | + | |
223 | +/* | |
224 | + * MARCOS of UMAL's descriptors | |
225 | + */ | |
226 | +#define UMAL_DESC_PACKETSIZE_EMPTY FIELD(1, 1, 31) | |
227 | +#define UMAL_DESC_PACKETSIZE_NONEMPTY FIELD(0, 1, 31) | |
228 | +#define UMAL_DESC_PACKETSIZE_SIZEMASK FMASK(12, 0) |
arch/unicore32/include/mach/regs-unigfx.h
1 | +/* | |
2 | + * PKUnity UNIGFX Registers | |
3 | + */ | |
4 | + | |
5 | +#define UDE_BASE (PKUNITY_UNIGFX_BASE + 0x1400) | |
6 | +#define UGE_BASE (PKUNITY_UNIGFX_BASE + 0x0000) | |
7 | + | |
8 | +/* | |
9 | + * command reg for UNIGFX DE | |
10 | + */ | |
11 | +/* | |
12 | + * control reg UDE_CFG | |
13 | + */ | |
14 | +#define UDE_CFG __REG(UDE_BASE + 0x0000) | |
15 | +/* | |
16 | + * framebuffer start address reg UDE_FSA | |
17 | + */ | |
18 | +#define UDE_FSA __REG(UDE_BASE + 0x0004) | |
19 | +/* | |
20 | + * line size reg UDE_LS | |
21 | + */ | |
22 | +#define UDE_LS __REG(UDE_BASE + 0x0008) | |
23 | +/* | |
24 | + * pitch size reg UDE_PS | |
25 | + */ | |
26 | +#define UDE_PS __REG(UDE_BASE + 0x000C) | |
27 | +/* | |
28 | + * horizontal active time reg UDE_HAT | |
29 | + */ | |
30 | +#define UDE_HAT __REG(UDE_BASE + 0x0010) | |
31 | +/* | |
32 | + * horizontal blank time reg UDE_HBT | |
33 | + */ | |
34 | +#define UDE_HBT __REG(UDE_BASE + 0x0014) | |
35 | +/* | |
36 | + * horizontal sync time reg UDE_HST | |
37 | + */ | |
38 | +#define UDE_HST __REG(UDE_BASE + 0x0018) | |
39 | +/* | |
40 | + * vertival active time reg UDE_VAT | |
41 | + */ | |
42 | +#define UDE_VAT __REG(UDE_BASE + 0x001C) | |
43 | +/* | |
44 | + * vertival blank time reg UDE_VBT | |
45 | + */ | |
46 | +#define UDE_VBT __REG(UDE_BASE + 0x0020) | |
47 | +/* | |
48 | + * vertival sync time reg UDE_VST | |
49 | + */ | |
50 | +#define UDE_VST __REG(UDE_BASE + 0x0024) | |
51 | +/* | |
52 | + * cursor position UDE_CXY | |
53 | + */ | |
54 | +#define UDE_CXY __REG(UDE_BASE + 0x0028) | |
55 | +/* | |
56 | + * cursor front color UDE_CC0 | |
57 | + */ | |
58 | +#define UDE_CC0 __REG(UDE_BASE + 0x002C) | |
59 | +/* | |
60 | + * cursor background color UDE_CC1 | |
61 | + */ | |
62 | +#define UDE_CC1 __REG(UDE_BASE + 0x0030) | |
63 | +/* | |
64 | + * video position UDE_VXY | |
65 | + */ | |
66 | +#define UDE_VXY __REG(UDE_BASE + 0x0034) | |
67 | +/* | |
68 | + * video start address reg UDE_VSA | |
69 | + */ | |
70 | +#define UDE_VSA __REG(UDE_BASE + 0x0040) | |
71 | +/* | |
72 | + * video size reg UDE_VS | |
73 | + */ | |
74 | +#define UDE_VS __REG(UDE_BASE + 0x004C) | |
75 | + | |
76 | +/* | |
77 | + * command reg for UNIGFX GE | |
78 | + */ | |
79 | +/* | |
80 | + * src xy reg UGE_SRCXY | |
81 | + */ | |
82 | +#define UGE_SRCXY __REG(UGE_BASE + 0x0000) | |
83 | +/* | |
84 | + * dst xy reg UGE_DSTXY | |
85 | + */ | |
86 | +#define UGE_DSTXY __REG(UGE_BASE + 0x0004) | |
87 | +/* | |
88 | + * pitch reg UGE_PITCH | |
89 | + */ | |
90 | +#define UGE_PITCH __REG(UGE_BASE + 0x0008) | |
91 | +/* | |
92 | + * src start reg UGE_SRCSTART | |
93 | + */ | |
94 | +#define UGE_SRCSTART __REG(UGE_BASE + 0x000C) | |
95 | +/* | |
96 | + * dst start reg UGE_DSTSTART | |
97 | + */ | |
98 | +#define UGE_DSTSTART __REG(UGE_BASE + 0x0010) | |
99 | +/* | |
100 | + * width height reg UGE_WIDHEIGHT | |
101 | + */ | |
102 | +#define UGE_WIDHEIGHT __REG(UGE_BASE + 0x0014) | |
103 | +/* | |
104 | + * rop alpah reg UGE_ROPALPHA | |
105 | + */ | |
106 | +#define UGE_ROPALPHA __REG(UGE_BASE + 0x0018) | |
107 | +/* | |
108 | + * front color UGE_FCOLOR | |
109 | + */ | |
110 | +#define UGE_FCOLOR __REG(UGE_BASE + 0x001C) | |
111 | +/* | |
112 | + * background color UGE_BCOLOR | |
113 | + */ | |
114 | +#define UGE_BCOLOR __REG(UGE_BASE + 0x0020) | |
115 | +/* | |
116 | + * src color key for high value UGE_SCH | |
117 | + */ | |
118 | +#define UGE_SCH __REG(UGE_BASE + 0x0024) | |
119 | +/* | |
120 | + * dst color key for high value UGE_DCH | |
121 | + */ | |
122 | +#define UGE_DCH __REG(UGE_BASE + 0x0028) | |
123 | +/* | |
124 | + * src color key for low value UGE_SCL | |
125 | + */ | |
126 | +#define UGE_SCL __REG(UGE_BASE + 0x002C) | |
127 | +/* | |
128 | + * dst color key for low value UGE_DCL | |
129 | + */ | |
130 | +#define UGE_DCL __REG(UGE_BASE + 0x0030) | |
131 | +/* | |
132 | + * clip 0 reg UGE_CLIP0 | |
133 | + */ | |
134 | +#define UGE_CLIP0 __REG(UGE_BASE + 0x0034) | |
135 | +/* | |
136 | + * clip 1 reg UGE_CLIP1 | |
137 | + */ | |
138 | +#define UGE_CLIP1 __REG(UGE_BASE + 0x0038) | |
139 | +/* | |
140 | + * command reg UGE_COMMAND | |
141 | + */ | |
142 | +#define UGE_COMMAND __REG(UGE_BASE + 0x003C) | |
143 | +/* | |
144 | + * pattern 0 UGE_P0 | |
145 | + */ | |
146 | +#define UGE_P0 __REG(UGE_BASE + 0x0040) | |
147 | +#define UGE_P1 __REG(UGE_BASE + 0x0044) | |
148 | +#define UGE_P2 __REG(UGE_BASE + 0x0048) | |
149 | +#define UGE_P3 __REG(UGE_BASE + 0x004C) | |
150 | +#define UGE_P4 __REG(UGE_BASE + 0x0050) | |
151 | +#define UGE_P5 __REG(UGE_BASE + 0x0054) | |
152 | +#define UGE_P6 __REG(UGE_BASE + 0x0058) | |
153 | +#define UGE_P7 __REG(UGE_BASE + 0x005C) | |
154 | +#define UGE_P8 __REG(UGE_BASE + 0x0060) | |
155 | +#define UGE_P9 __REG(UGE_BASE + 0x0064) | |
156 | +#define UGE_P10 __REG(UGE_BASE + 0x0068) | |
157 | +#define UGE_P11 __REG(UGE_BASE + 0x006C) | |
158 | +#define UGE_P12 __REG(UGE_BASE + 0x0070) | |
159 | +#define UGE_P13 __REG(UGE_BASE + 0x0074) | |
160 | +#define UGE_P14 __REG(UGE_BASE + 0x0078) | |
161 | +#define UGE_P15 __REG(UGE_BASE + 0x007C) | |
162 | +#define UGE_P16 __REG(UGE_BASE + 0x0080) | |
163 | +#define UGE_P17 __REG(UGE_BASE + 0x0084) | |
164 | +#define UGE_P18 __REG(UGE_BASE + 0x0088) | |
165 | +#define UGE_P19 __REG(UGE_BASE + 0x008C) | |
166 | +#define UGE_P20 __REG(UGE_BASE + 0x0090) | |
167 | +#define UGE_P21 __REG(UGE_BASE + 0x0094) | |
168 | +#define UGE_P22 __REG(UGE_BASE + 0x0098) | |
169 | +#define UGE_P23 __REG(UGE_BASE + 0x009C) | |
170 | +#define UGE_P24 __REG(UGE_BASE + 0x00A0) | |
171 | +#define UGE_P25 __REG(UGE_BASE + 0x00A4) | |
172 | +#define UGE_P26 __REG(UGE_BASE + 0x00A8) | |
173 | +#define UGE_P27 __REG(UGE_BASE + 0x00AC) | |
174 | +#define UGE_P28 __REG(UGE_BASE + 0x00B0) | |
175 | +#define UGE_P29 __REG(UGE_BASE + 0x00B4) | |
176 | +#define UGE_P30 __REG(UGE_BASE + 0x00B8) | |
177 | +#define UGE_P31 __REG(UGE_BASE + 0x00BC) | |
178 | + | |
179 | +#define UDE_CFG_DST_MASK FMASK(2, 8) | |
180 | +#define UDE_CFG_DST8 FIELD(0x0, 2, 8) | |
181 | +#define UDE_CFG_DST16 FIELD(0x1, 2, 8) | |
182 | +#define UDE_CFG_DST24 FIELD(0x2, 2, 8) | |
183 | +#define UDE_CFG_DST32 FIELD(0x3, 2, 8) | |
184 | + | |
185 | +/* | |
186 | + * GDEN enable UDE_CFG_GDEN_ENABLE | |
187 | + */ | |
188 | +#define UDE_CFG_GDEN_ENABLE FIELD(1, 1, 3) | |
189 | +/* | |
190 | + * VDEN enable UDE_CFG_VDEN_ENABLE | |
191 | + */ | |
192 | +#define UDE_CFG_VDEN_ENABLE FIELD(1, 1, 4) | |
193 | +/* | |
194 | + * CDEN enable UDE_CFG_CDEN_ENABLE | |
195 | + */ | |
196 | +#define UDE_CFG_CDEN_ENABLE FIELD(1, 1, 5) | |
197 | +/* | |
198 | + * TIMEUP enable UDE_CFG_TIMEUP_ENABLE | |
199 | + */ | |
200 | +#define UDE_CFG_TIMEUP_ENABLE FIELD(1, 1, 6) |