diff options
author | Matt Porter <mporter@kernel.crashing.org> | 2005-08-01 01:34:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-08-01 22:14:01 -0400 |
commit | c9cf73aee140baa425429902aaed2c758401343f (patch) | |
tree | 7e28361e87950e7e66a453e4218745a4b0912119 /arch/ppc/syslib | |
parent | e8be1c8e065691c332fd8e9bae70c7096a69c31d (diff) |
[PATCH] ppc32: add 440ep support
Add PPC440EP core support. PPC440EP is a PPC440-based SoC with a classic PPC
FPU and another set of peripherals.
Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc/syslib')
-rw-r--r-- | arch/ppc/syslib/Makefile | 2 | ||||
-rw-r--r-- | arch/ppc/syslib/ibm440gx_common.c | 15 | ||||
-rw-r--r-- | arch/ppc/syslib/ibm44x_common.h | 4 |
3 files changed, 21 insertions, 0 deletions
diff --git a/arch/ppc/syslib/Makefile b/arch/ppc/syslib/Makefile index dec5bf4f6879..220a65ab0a51 100644 --- a/arch/ppc/syslib/Makefile +++ b/arch/ppc/syslib/Makefile | |||
@@ -11,6 +11,7 @@ obj-$(CONFIG_PPCBUG_NVRAM) += prep_nvram.o | |||
11 | obj-$(CONFIG_PPC_OCP) += ocp.o | 11 | obj-$(CONFIG_PPC_OCP) += ocp.o |
12 | obj-$(CONFIG_IBM_OCP) += ibm_ocp.o | 12 | obj-$(CONFIG_IBM_OCP) += ibm_ocp.o |
13 | obj-$(CONFIG_44x) += ibm44x_common.o | 13 | obj-$(CONFIG_44x) += ibm44x_common.o |
14 | obj-$(CONFIG_440EP) += ibm440gx_common.o | ||
14 | obj-$(CONFIG_440GP) += ibm440gp_common.o | 15 | obj-$(CONFIG_440GP) += ibm440gp_common.o |
15 | obj-$(CONFIG_440GX) += ibm440gx_common.o | 16 | obj-$(CONFIG_440GX) += ibm440gx_common.o |
16 | obj-$(CONFIG_440SP) += ibm440gx_common.o ibm440sp_common.o | 17 | obj-$(CONFIG_440SP) += ibm440gx_common.o ibm440sp_common.o |
@@ -44,6 +45,7 @@ obj-$(CONFIG_PPC_CHRP) += open_pic.o indirect_pci.o i8259.o | |||
44 | obj-$(CONFIG_PPC_PREP) += open_pic.o indirect_pci.o i8259.o todc_time.o | 45 | obj-$(CONFIG_PPC_PREP) += open_pic.o indirect_pci.o i8259.o todc_time.o |
45 | obj-$(CONFIG_ADIR) += i8259.o indirect_pci.o pci_auto.o \ | 46 | obj-$(CONFIG_ADIR) += i8259.o indirect_pci.o pci_auto.o \ |
46 | todc_time.o | 47 | todc_time.o |
48 | obj-$(CONFIG_BAMBOO) += indirect_pci.o pci_auto.o todc_time.o | ||
47 | obj-$(CONFIG_CPCI690) += todc_time.o pci_auto.o | 49 | obj-$(CONFIG_CPCI690) += todc_time.o pci_auto.o |
48 | obj-$(CONFIG_EBONY) += indirect_pci.o pci_auto.o todc_time.o | 50 | obj-$(CONFIG_EBONY) += indirect_pci.o pci_auto.o todc_time.o |
49 | obj-$(CONFIG_EV64260) += todc_time.o pci_auto.o | 51 | obj-$(CONFIG_EV64260) += todc_time.o pci_auto.o |
diff --git a/arch/ppc/syslib/ibm440gx_common.c b/arch/ppc/syslib/ibm440gx_common.c index 4ad85e0e0234..d4776af6a3ca 100644 --- a/arch/ppc/syslib/ibm440gx_common.c +++ b/arch/ppc/syslib/ibm440gx_common.c | |||
@@ -34,6 +34,10 @@ void __init ibm440gx_get_clocks(struct ibm44x_clocks* p, unsigned int sys_clk, | |||
34 | u32 plld = CPR_READ(DCRN_CPR_PLLD); | 34 | u32 plld = CPR_READ(DCRN_CPR_PLLD); |
35 | u32 uart0 = SDR_READ(DCRN_SDR_UART0); | 35 | u32 uart0 = SDR_READ(DCRN_SDR_UART0); |
36 | u32 uart1 = SDR_READ(DCRN_SDR_UART1); | 36 | u32 uart1 = SDR_READ(DCRN_SDR_UART1); |
37 | #ifdef CONFIG_440EP | ||
38 | u32 uart2 = SDR_READ(DCRN_SDR_UART2); | ||
39 | u32 uart3 = SDR_READ(DCRN_SDR_UART3); | ||
40 | #endif | ||
37 | 41 | ||
38 | /* Dividers */ | 42 | /* Dividers */ |
39 | u32 fbdv = __fix_zero((plld >> 24) & 0x1f, 32); | 43 | u32 fbdv = __fix_zero((plld >> 24) & 0x1f, 32); |
@@ -96,6 +100,17 @@ bypass: | |||
96 | p->uart1 = ser_clk; | 100 | p->uart1 = ser_clk; |
97 | else | 101 | else |
98 | p->uart1 = p->plb / __fix_zero(uart1 & 0xff, 256); | 102 | p->uart1 = p->plb / __fix_zero(uart1 & 0xff, 256); |
103 | #ifdef CONFIG_440EP | ||
104 | if (uart2 & 0x00800000) | ||
105 | p->uart2 = ser_clk; | ||
106 | else | ||
107 | p->uart2 = p->plb / __fix_zero(uart2 & 0xff, 256); | ||
108 | |||
109 | if (uart3 & 0x00800000) | ||
110 | p->uart3 = ser_clk; | ||
111 | else | ||
112 | p->uart3 = p->plb / __fix_zero(uart3 & 0xff, 256); | ||
113 | #endif | ||
99 | } | 114 | } |
100 | 115 | ||
101 | /* Issue L2C diagnostic command */ | 116 | /* Issue L2C diagnostic command */ |
diff --git a/arch/ppc/syslib/ibm44x_common.h b/arch/ppc/syslib/ibm44x_common.h index b14eb603ce01..c16b6a5ac6ab 100644 --- a/arch/ppc/syslib/ibm44x_common.h +++ b/arch/ppc/syslib/ibm44x_common.h | |||
@@ -29,6 +29,10 @@ struct ibm44x_clocks { | |||
29 | unsigned int ebc; /* PerClk */ | 29 | unsigned int ebc; /* PerClk */ |
30 | unsigned int uart0; | 30 | unsigned int uart0; |
31 | unsigned int uart1; | 31 | unsigned int uart1; |
32 | #ifdef CONFIG_440EP | ||
33 | unsigned int uart2; | ||
34 | unsigned int uart3; | ||
35 | #endif | ||
32 | }; | 36 | }; |
33 | 37 | ||
34 | /* common 44x platform init */ | 38 | /* common 44x platform init */ |