Commit 20906ece authored by Scott Wood's avatar Scott Wood Committed by Kumar Gala

[POWERPC] 8xx: mpc885ads cleanup

It now uses the new CPM binding and the generic pin/clock functions, and
has assorted fixes and cleanup.
Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent 96fca1de
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* MPC885 ADS Device Tree Source * MPC885 ADS Device Tree Source
* *
* Copyright 2006 MontaVista Software, Inc. * Copyright 2006 MontaVista Software, Inc.
* Copyright 2007 Freescale Semiconductor, Inc.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the * under the terms of the GNU General Public License as published by the
...@@ -12,7 +13,7 @@ ...@@ -12,7 +13,7 @@
/ { / {
model = "MPC885ADS"; model = "MPC885ADS";
compatible = "mpc8xx"; compatible = "fsl,mpc885ads";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
...@@ -23,156 +24,188 @@ ...@@ -23,156 +24,188 @@
PowerPC,885@0 { PowerPC,885@0 {
device_type = "cpu"; device_type = "cpu";
reg = <0>; reg = <0>;
d-cache-line-size = <20>; // 32 bytes d-cache-line-size = <d#16>;
i-cache-line-size = <20>; // 32 bytes i-cache-line-size = <d#16>;
d-cache-size = <2000>; // L1, 8K d-cache-size = <d#8192>;
i-cache-size = <2000>; // L1, 8K i-cache-size = <d#8192>;
timebase-frequency = <0>; timebase-frequency = <0>;
bus-frequency = <0>; bus-frequency = <0>;
clock-frequency = <0>; clock-frequency = <0>;
interrupts = <f 2>; // decrementer interrupt interrupts = <f 2>; // decrementer interrupt
interrupt-parent = <&Mpc8xx_pic>; interrupt-parent = <&PIC>;
}; };
}; };
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <00000000 800000>; reg = <0 0>;
}; };
soc885@ff000000 { localbus@ff000100 {
compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <ff000100 40>;
ranges = <
0 0 fe000000 00800000
1 0 ff080000 00008000
5 0 ff0a0000 00008000
>;
flash@0,0 {
compatible = "jedec-flash";
reg = <0 0 800000>;
bank-width = <4>;
device-width = <1>;
};
board-control@1,0 {
reg = <1 0 20 5 300 4>;
compatible = "fsl,mpc885ads-bcsr";
};
};
soc@ff000000 {
compatible = "fsl,mpc885", "fsl,pq1-soc";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "soc"; device_type = "soc";
ranges = <0 ff000000 00100000>; ranges = <0 ff000000 00004000>;
reg = <ff000000 00000200>;
bus-frequency = <0>; bus-frequency = <0>;
mdio@e80 {
device_type = "mdio"; // Temporary -- will go away once kernel uses ranges for get_immrbase().
compatible = "fs_enet"; reg = <ff000000 4000>;
reg = <e80 8>;
mdio@e00 {
compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio";
reg = <e00 188>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
Phy0: ethernet-phy@0 {
PHY0: ethernet-phy@0 {
reg = <0>; reg = <0>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
Phy1: ethernet-phy@1 {
PHY1: ethernet-phy@1 {
reg = <1>; reg = <1>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
Phy2: ethernet-phy@2 {
PHY2: ethernet-phy@2 {
reg = <2>; reg = <2>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
}; };
}; };
fec@e00 { ethernet@e00 {
device_type = "network"; device_type = "network";
compatible = "fs_enet"; compatible = "fsl,mpc885-fec-enet",
model = "FEC"; "fsl,pq1-fec-enet";
device-id = <1>;
reg = <e00 188>; reg = <e00 188>;
mac-address = [ 00 00 0C 00 01 FD ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <3 1>; interrupts = <3 1>;
interrupt-parent = <&Mpc8xx_pic>; interrupt-parent = <&PIC>;
phy-handle = <&Phy1>; phy-handle = <&PHY0>;
linux,network-index = <0>;
}; };
fec@1e00 { ethernet@1e00 {
device_type = "network"; device_type = "network";
compatible = "fs_enet"; compatible = "fsl,mpc885-fec-enet",
model = "FEC"; "fsl,pq1-fec-enet";
device-id = <2>;
reg = <1e00 188>; reg = <1e00 188>;
mac-address = [ 00 00 0C 00 02 FD ]; local-mac-address = [ 00 00 00 00 00 00 ];
interrupts = <7 1>; interrupts = <7 1>;
interrupt-parent = <&Mpc8xx_pic>; interrupt-parent = <&PIC>;
phy-handle = <&Phy2>; phy-handle = <&PHY1>;
linux,network-index = <1>;
}; };
Mpc8xx_pic: pic@ff000000 { PIC: interrupt-controller@0 {
interrupt-controller; interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
reg = <0 24>; reg = <0 24>;
device_type = "mpc8xx-pic"; compatible = "fsl,mpc885-pic", "fsl,pq1-pic";
compatible = "CPM";
}; };
pcmcia@0080 { pcmcia@80 {
#address-cells = <3>; #address-cells = <3>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
compatible = "fsl,pq-pcmcia"; compatible = "fsl,pq-pcmcia";
device_type = "pcmcia"; device_type = "pcmcia";
reg = <80 80>; reg = <80 80>;
interrupt-parent = <&Mpc8xx_pic>; interrupt-parent = <&PIC>;
interrupts = <d 1>; interrupts = <d 1>;
}; };
cpm@ff000000 { cpm@9c0 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
device_type = "cpm"; compatible = "fsl,mpc885-cpm", "fsl,cpm1";
model = "CPM";
ranges = <0 0 4000>;
reg = <860 f0>;
command-proc = <9c0>; command-proc = <9c0>;
brg-frequency = <0>; interrupts = <0>; // cpm error interrupt
interrupts = <0 2>; // cpm error interrupt interrupt-parent = <&CPM_PIC>;
interrupt-parent = <&Cpm_pic>; reg = <9c0 40 2000 1c00>;
ranges;
Cpm_pic: pic@930 { brg@9f0 {
compatible = "fsl,mpc885-brg",
"fsl,cpm1-brg",
"fsl,cpm-brg";
reg = <9f0 10>;
};
CPM_PIC: interrupt-controller@930 {
interrupt-controller; interrupt-controller;
#address-cells = <0>; #interrupt-cells = <1>;
#interrupt-cells = <2>;
interrupts = <5 2 0 2>; interrupts = <5 2 0 2>;
interrupt-parent = <&Mpc8xx_pic>; interrupt-parent = <&PIC>;
reg = <930 20>; reg = <930 20>;
device_type = "cpm-pic"; compatible = "fsl,mpc885-cpm-pic",
compatible = "CPM"; "fsl,cpm1-pic";
}; };
smc@a80 { serial@a80 {
device_type = "serial"; device_type = "serial";
compatible = "cpm_uart"; compatible = "fsl,mpc885-smc-uart",
model = "SMC"; "fsl,cpm1-smc-uart";
device-id = <1>;
reg = <a80 10 3e80 40>; reg = <a80 10 3e80 40>;
clock-setup = <00ffffff 0>; interrupts = <4>;
rx-clock = <1>; interrupt-parent = <&CPM_PIC>;
tx-clock = <1>; fsl,cpm-brg = <1>;
current-speed = <0>; fsl,cpm-command = <0090>;
interrupts = <4 3>;
interrupt-parent = <&Cpm_pic>;
}; };
smc@a90 { serial@a90 {
device_type = "serial"; device_type = "serial";
compatible = "cpm_uart"; compatible = "fsl,mpc885-smc-uart",
model = "SMC"; "fsl,cpm1-smc-uart";
device-id = <2>; reg = <a90 10 3f80 40>;
reg = <a90 20 3f80 40>; interrupts = <3>;
clock-setup = <ff00ffff 90000>; interrupt-parent = <&CPM_PIC>;
rx-clock = <2>; fsl,cpm-brg = <2>;
tx-clock = <2>; fsl,cpm-command = <00d0>;
current-speed = <0>;
interrupts = <3 3>;
interrupt-parent = <&Cpm_pic>;
}; };
scc@a40 { ethernet@a40 {
device_type = "network"; device_type = "network";
compatible = "fs_enet"; compatible = "fsl,mpc885-scc-enet",
model = "SCC"; "fsl,cpm1-scc-enet";
device-id = <3>; reg = <a40 18 3e00 100>;
reg = <a40 18 3e00 80>; local-mac-address = [ 00 00 00 00 00 00 ];
mac-address = [ 00 00 0C 00 03 FD ]; interrupts = <1c>;
interrupts = <1c 3>; interrupt-parent = <&CPM_PIC>;
interrupt-parent = <&Cpm_pic>; phy-handle = <&PHY2>;
phy-handle = <&Phy2>; fsl,cpm-command = <0080>;
linux,network-index = <2>;
}; };
}; };
}; };
chosen {
linux,stdout-path = "/soc/cpm/serial@a80";
};
}; };
This diff is collapsed.
...@@ -26,6 +26,7 @@ config MPC86XADS ...@@ -26,6 +26,7 @@ config MPC86XADS
config MPC885ADS config MPC885ADS
bool "MPC885ADS" bool "MPC885ADS"
select CPM1 select CPM1
select PPC_CPM_NEW_BINDING
help help
Freescale Semiconductor MPC885 Application Development System (ADS). Freescale Semiconductor MPC885 Application Development System (ADS).
Also known as DUET. Also known as DUET.
......
...@@ -17,25 +17,10 @@ ...@@ -17,25 +17,10 @@
#include <sysdev/fsl_soc.h> #include <sysdev/fsl_soc.h>
/* U-Boot maps BCSR to 0xff080000 */
#define BCSR_ADDR ((uint)0xff080000)
#define BCSR_SIZE ((uint)32)
#define BCSR0 ((uint)(BCSR_ADDR + 0x00))
#define BCSR1 ((uint)(BCSR_ADDR + 0x04))
#define BCSR2 ((uint)(BCSR_ADDR + 0x08))
#define BCSR3 ((uint)(BCSR_ADDR + 0x0c))
#define BCSR4 ((uint)(BCSR_ADDR + 0x10))
#define CFG_PHYDEV_ADDR ((uint)0xff0a0000)
#define BCSR5 ((uint)(CFG_PHYDEV_ADDR + 0x300))
#define MPC8xx_CPM_OFFSET (0x9c0) #define MPC8xx_CPM_OFFSET (0x9c0)
#define CPM_MAP_ADDR (get_immrbase() + MPC8xx_CPM_OFFSET) #define CPM_MAP_ADDR (get_immrbase() + MPC8xx_CPM_OFFSET)
#define CPM_IRQ_OFFSET 16 // for compability with cpm_uart driver #define CPM_IRQ_OFFSET 16 // for compability with cpm_uart driver
#define PCMCIA_MEM_ADDR ((uint)0xff020000)
#define PCMCIA_MEM_SIZE ((uint)(64 * 1024))
/* Bits of interest in the BCSRs. /* Bits of interest in the BCSRs.
*/ */
#define BCSR1_ETHEN ((uint)0x20000000) #define BCSR1_ETHEN ((uint)0x20000000)
...@@ -64,28 +49,5 @@ ...@@ -64,28 +49,5 @@
#define BCSR5_MII1_EN 0x02 #define BCSR5_MII1_EN 0x02
#define BCSR5_MII1_RST 0x01 #define BCSR5_MII1_RST 0x01
/* Interrupt level assignments */
#define PHY_INTERRUPT SIU_IRQ7 /* PHY link change interrupt */
#define SIU_INT_FEC1 SIU_LEVEL1 /* FEC1 interrupt */
#define SIU_INT_FEC2 SIU_LEVEL3 /* FEC2 interrupt */
#define FEC_INTERRUPT SIU_INT_FEC1 /* FEC interrupt */
/* We don't use the 8259 */
#define NR_8259_INTS 0
/* CPM Ethernet through SCC3 */
#define PA_ENET_RXD ((ushort)0x0040)
#define PA_ENET_TXD ((ushort)0x0080)
#define PE_ENET_TCLK ((uint)0x00004000)
#define PE_ENET_RCLK ((uint)0x00008000)
#define PE_ENET_TENA ((uint)0x00000010)
#define PC_ENET_CLSN ((ushort)0x0400)
#define PC_ENET_RENA ((ushort)0x0800)
/* Control bits in the SICR to route TCLK (CLK5) and RCLK (CLK6) to
* SCC3. Also, make sure GR3 (bit 8) and SC3 (bit 9) are zero */
#define SICR_ENET_MASK ((uint)0x00ff0000)
#define SICR_ENET_CLKRT ((uint)0x002c0000)
#endif /* __ASM_MPC885ADS_H__ */ #endif /* __ASM_MPC885ADS_H__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment