diff options
88 files changed, 6220 insertions, 1183 deletions
diff --git a/Documentation/kprobes.txt b/Documentation/kprobes.txt index 6877e7187113..a79633d702bf 100644 --- a/Documentation/kprobes.txt +++ b/Documentation/kprobes.txt | |||
@@ -172,6 +172,7 @@ architectures: | |||
172 | - ia64 (Does not support probes on instruction slot1.) | 172 | - ia64 (Does not support probes on instruction slot1.) |
173 | - sparc64 (Return probes not yet implemented.) | 173 | - sparc64 (Return probes not yet implemented.) |
174 | - arm | 174 | - arm |
175 | - ppc | ||
175 | 176 | ||
176 | 3. Configuring Kprobes | 177 | 3. Configuring Kprobes |
177 | 178 | ||
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt index 948f6417a40b..b68684d39f96 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
@@ -61,6 +61,7 @@ Table of Contents | |||
61 | r) Freescale Display Interface Unit | 61 | r) Freescale Display Interface Unit |
62 | s) Freescale on board FPGA | 62 | s) Freescale on board FPGA |
63 | t) Freescael MSI interrupt controller | 63 | t) Freescael MSI interrupt controller |
64 | u) Freescale General-purpose Timers Module | ||
64 | 65 | ||
65 | VII - Marvell Discovery mv64[345]6x System Controller chips | 66 | VII - Marvell Discovery mv64[345]6x System Controller chips |
66 | 1) The /system-controller node | 67 | 1) The /system-controller node |
@@ -1735,6 +1736,33 @@ platforms are moved over to use the flattened-device-tree model. | |||
1735 | ...... | 1736 | ...... |
1736 | }; | 1737 | }; |
1737 | 1738 | ||
1739 | Note that "par_io" nodes are obsolete, and should not be used for | ||
1740 | the new device trees. Instead, each Par I/O bank should be represented | ||
1741 | via its own gpio-controller node: | ||
1742 | |||
1743 | Required properties: | ||
1744 | - #gpio-cells : should be "2". | ||
1745 | - compatible : should be "fsl,<chip>-qe-pario-bank", | ||
1746 | "fsl,mpc8323-qe-pario-bank". | ||
1747 | - reg : offset to the register set and its length. | ||
1748 | - gpio-controller : node to identify gpio controllers. | ||
1749 | |||
1750 | Example: | ||
1751 | qe_pio_a: gpio-controller@1400 { | ||
1752 | #gpio-cells = <2>; | ||
1753 | compatible = "fsl,mpc8360-qe-pario-bank", | ||
1754 | "fsl,mpc8323-qe-pario-bank"; | ||
1755 | reg = <0x1400 0x18>; | ||
1756 | gpio-controller; | ||
1757 | }; | ||
1758 | |||
1759 | qe_pio_e: gpio-controller@1460 { | ||
1760 | #gpio-cells = <2>; | ||
1761 | compatible = "fsl,mpc8360-qe-pario-bank", | ||
1762 | "fsl,mpc8323-qe-pario-bank"; | ||
1763 | reg = <0x1460 0x18>; | ||
1764 | gpio-controller; | ||
1765 | }; | ||
1738 | 1766 | ||
1739 | vi) Pin configuration nodes | 1767 | vi) Pin configuration nodes |
1740 | 1768 | ||
@@ -2907,6 +2935,37 @@ platforms are moved over to use the flattened-device-tree model. | |||
2907 | interrupt-parent = <&mpic>; | 2935 | interrupt-parent = <&mpic>; |
2908 | }; | 2936 | }; |
2909 | 2937 | ||
2938 | u) Freescale General-purpose Timers Module | ||
2939 | |||
2940 | Required properties: | ||
2941 | - compatible : should be | ||
2942 | "fsl,<chip>-gtm", "fsl,gtm" for SOC GTMs | ||
2943 | "fsl,<chip>-qe-gtm", "fsl,qe-gtm", "fsl,gtm" for QE GTMs | ||
2944 | "fsl,<chip>-cpm2-gtm", "fsl,cpm2-gtm", "fsl,gtm" for CPM2 GTMs | ||
2945 | - reg : should contain gtm registers location and length (0x40). | ||
2946 | - interrupts : should contain four interrupts. | ||
2947 | - interrupt-parent : interrupt source phandle. | ||
2948 | - clock-frequency : specifies the frequency driving the timer. | ||
2949 | |||
2950 | Example: | ||
2951 | |||
2952 | timer@500 { | ||
2953 | compatible = "fsl,mpc8360-gtm", "fsl,gtm"; | ||
2954 | reg = <0x500 0x40>; | ||
2955 | interrupts = <90 8 78 8 84 8 72 8>; | ||
2956 | interrupt-parent = <&ipic>; | ||
2957 | /* filled by u-boot */ | ||
2958 | clock-frequency = <0>; | ||
2959 | }; | ||
2960 | |||
2961 | timer@440 { | ||
2962 | compatible = "fsl,mpc8360-qe-gtm", "fsl,qe-gtm", "fsl,gtm"; | ||
2963 | reg = <0x440 0x40>; | ||
2964 | interrupts = <12 13 14 15>; | ||
2965 | interrupt-parent = <&qeic>; | ||
2966 | /* filled by u-boot */ | ||
2967 | clock-frequency = <0>; | ||
2968 | }; | ||
2910 | 2969 | ||
2911 | VII - Marvell Discovery mv64[345]6x System Controller chips | 2970 | VII - Marvell Discovery mv64[345]6x System Controller chips |
2912 | =========================================================== | 2971 | =========================================================== |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 3934e2659407..2cde4e333fd5 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -538,6 +538,12 @@ config FSL_LBC | |||
538 | help | 538 | help |
539 | Freescale Localbus support | 539 | Freescale Localbus support |
540 | 540 | ||
541 | config FSL_GTM | ||
542 | bool | ||
543 | depends on PPC_83xx || QUICC_ENGINE || CPM2 | ||
544 | help | ||
545 | Freescale General-purpose Timers support | ||
546 | |||
541 | # Yes MCA RS/6000s exist but Linux-PPC does not currently support any | 547 | # Yes MCA RS/6000s exist but Linux-PPC does not currently support any |
542 | config MCA | 548 | config MCA |
543 | bool | 549 | bool |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index e98841d60330..3463253893f2 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -256,6 +256,7 @@ image-$(CONFIG_MPC85xx_DS) += cuImage.mpc8544ds \ | |||
256 | cuImage.mpc8572ds | 256 | cuImage.mpc8572ds |
257 | image-$(CONFIG_TQM8540) += cuImage.tqm8540 | 257 | image-$(CONFIG_TQM8540) += cuImage.tqm8540 |
258 | image-$(CONFIG_TQM8541) += cuImage.tqm8541 | 258 | image-$(CONFIG_TQM8541) += cuImage.tqm8541 |
259 | image-$(CONFIG_TQM8548) += cuImage.tqm8548 | ||
259 | image-$(CONFIG_TQM8555) += cuImage.tqm8555 | 260 | image-$(CONFIG_TQM8555) += cuImage.tqm8555 |
260 | image-$(CONFIG_TQM8560) += cuImage.tqm8560 | 261 | image-$(CONFIG_TQM8560) += cuImage.tqm8560 |
261 | image-$(CONFIG_SBC8548) += cuImage.sbc8548 | 262 | image-$(CONFIG_SBC8548) += cuImage.sbc8548 |
diff --git a/arch/powerpc/boot/dts/asp834x-redboot.dts b/arch/powerpc/boot/dts/asp834x-redboot.dts index 972cf78fff65..8b1bb0e41905 100644 --- a/arch/powerpc/boot/dts/asp834x-redboot.dts +++ b/arch/powerpc/boot/dts/asp834x-redboot.dts | |||
@@ -118,6 +118,41 @@ | |||
118 | mode = "cpu"; | 118 | mode = "cpu"; |
119 | }; | 119 | }; |
120 | 120 | ||
121 | dma@82a8 { | ||
122 | #address-cells = <1>; | ||
123 | #size-cells = <1>; | ||
124 | compatible = "fsl,mpc8347-dma", "fsl,elo-dma"; | ||
125 | reg = <0x82a8 4>; | ||
126 | ranges = <0 0x8100 0x1a8>; | ||
127 | interrupt-parent = <&ipic>; | ||
128 | interrupts = <71 8>; | ||
129 | cell-index = <0>; | ||
130 | dma-channel@0 { | ||
131 | compatible = "fsl,mpc8347-dma-channel", "fsl,elo-dma-channel"; | ||
132 | reg = <0 0x80>; | ||
133 | interrupt-parent = <&ipic>; | ||
134 | interrupts = <71 8>; | ||
135 | }; | ||
136 | dma-channel@80 { | ||
137 | compatible = "fsl,mpc8347-dma-channel", "fsl,elo-dma-channel"; | ||
138 | reg = <0x80 0x80>; | ||
139 | interrupt-parent = <&ipic>; | ||
140 | interrupts = <71 8>; | ||
141 | }; | ||
142 | dma-channel@100 { | ||
143 | compatible = "fsl,mpc8347-dma-channel", "fsl,elo-dma-channel"; | ||
144 | reg = <0x100 0x80>; | ||
145 | interrupt-parent = <&ipic>; | ||
146 | interrupts = <71 8>; | ||
147 | }; | ||
148 | dma-channel@180 { | ||
149 | compatible = "fsl,mpc8347-dma-channel", "fsl,elo-dma-channel"; | ||
150 | reg = <0x180 0x28>; | ||
151 | interrupt-parent = <&ipic>; | ||
152 | interrupts = <71 8>; | ||
153 | }; | ||
154 | }; | ||
155 | |||
121 | /* phy type (ULPI or SERIAL) are only types supported for MPH */ | 156 | /* phy type (ULPI or SERIAL) are only types supported for MPH */ |
122 | /* port = 0 or 1 */ | 157 | /* port = 0 or 1 */ |
123 | usb@22000 { | 158 | usb@22000 { |
diff --git a/arch/powerpc/boot/dts/ksi8560.dts b/arch/powerpc/boot/dts/ksi8560.dts index 6eb7c771f6a4..fd5804398417 100644 --- a/arch/powerpc/boot/dts/ksi8560.dts +++ b/arch/powerpc/boot/dts/ksi8560.dts | |||
@@ -83,6 +83,47 @@ | |||
83 | dfsrr; | 83 | dfsrr; |
84 | }; | 84 | }; |
85 | 85 | ||
86 | dma@21300 { | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <1>; | ||
89 | compatible = "fsl,mpc8560-dma", "fsl,eloplus-dma"; | ||
90 | reg = <0x21300 0x4>; | ||
91 | ranges = <0x0 0x21100 0x200>; | ||
92 | cell-index = <0>; | ||
93 | dma-channel@0 { | ||
94 | compatible = "fsl,mpc8560-dma-channel", | ||
95 | "fsl,eloplus-dma-channel"; | ||
96 | reg = <0x0 0x80>; | ||
97 | cell-index = <0>; | ||
98 | interrupt-parent = <&mpic>; | ||
99 | interrupts = <20 2>; | ||
100 | }; | ||
101 | dma-channel@80 { | ||
102 | compatible = "fsl,mpc8560-dma-channel", | ||
103 | "fsl,eloplus-dma-channel"; | ||
104 | reg = <0x80 0x80>; | ||
105 | cell-index = <1>; | ||
106 | interrupt-parent = <&mpic>; | ||
107 | interrupts = <21 2>; | ||
108 | }; | ||
109 | dma-channel@100 { | ||
110 | compatible = "fsl,mpc8560-dma-channel", | ||
111 | "fsl,eloplus-dma-channel"; | ||
112 | reg = <0x100 0x80>; | ||
113 | cell-index = <2>; | ||
114 | interrupt-parent = <&mpic>; | ||
115 | interrupts = <22 2>; | ||
116 | }; | ||
117 | dma-channel@180 { | ||
118 | compatible = "fsl,mpc8560-dma-channel", | ||
119 | "fsl,eloplus-dma-channel"; | ||
120 | reg = <0x180 0x80>; | ||
121 | cell-index = <3>; | ||
122 | interrupt-parent = <&mpic>; | ||
123 | interrupts = <23 2>; | ||
124 | }; | ||
125 | }; | ||
126 | |||
86 | mdio@24520 { /* For TSECs */ | 127 | mdio@24520 { /* For TSECs */ |
87 | #address-cells = <1>; | 128 | #address-cells = <1>; |
88 | #size-cells = <0>; | 129 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8313erdb.dts b/arch/powerpc/boot/dts/mpc8313erdb.dts index e1f0dca8ac39..b2068430a06d 100644 --- a/arch/powerpc/boot/dts/mpc8313erdb.dts +++ b/arch/powerpc/boot/dts/mpc8313erdb.dts | |||
@@ -144,6 +144,41 @@ | |||
144 | mode = "cpu"; | 144 | mode = "cpu"; |
145 | }; | 145 | }; |
146 | 146 | ||
147 | dma@82a8 { | ||
148 | #address-cells = <1>; | ||
149 | #size-cells = <1>; | ||
150 | compatible = "fsl,mpc8313-dma", "fsl,elo-dma"; | ||
151 | reg = <0x82a8 4>; | ||
152 | ranges = <0 0x8100 0x1a8>; | ||
153 | interrupt-parent = <&ipic>; | ||
154 | interrupts = <71 8>; | ||
155 | cell-index = <0>; | ||
156 | dma-channel@0 { | ||
157 | compatible = "fsl,mpc8313-dma-channel", "fsl,elo-dma-channel"; | ||
158 | reg = <0 0x80>; | ||
159 | interrupt-parent = <&ipic>; | ||
160 | interrupts = <71 8>; | ||
161 | }; | ||
162 | dma-channel@80 { | ||
163 | compatible = "fsl,mpc8313-dma-channel", "fsl,elo-dma-channel"; | ||
164 | reg = <0x80 0x80>; | ||
165 | interrupt-parent = <&ipic>; | ||
166 | interrupts = <71 8>; | ||
167 | }; | ||
168 | dma-channel@100 { | ||
169 | compatible = "fsl,mpc8313-dma-channel", "fsl,elo-dma-channel"; | ||
170 | reg = <0x100 0x80>; | ||
171 | interrupt-parent = <&ipic>; | ||
172 | interrupts = <71 8>; | ||
173 | }; | ||
174 | dma-channel@180 { | ||
175 | compatible = "fsl,mpc8313-dma-channel", "fsl,elo-dma-channel"; | ||
176 | reg = <0x180 0x28>; | ||
177 | interrupt-parent = <&ipic>; | ||
178 | interrupts = <71 8>; | ||
179 | }; | ||
180 | }; | ||
181 | |||
147 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ | 182 | /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */ |
148 | usb@23000 { | 183 | usb@23000 { |
149 | compatible = "fsl-usb2-dr"; | 184 | compatible = "fsl-usb2-dr"; |
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts index d7a1ececa30f..a40e8064d429 100644 --- a/arch/powerpc/boot/dts/mpc8315erdb.dts +++ b/arch/powerpc/boot/dts/mpc8315erdb.dts | |||
@@ -132,6 +132,41 @@ | |||
132 | mode = "cpu"; | 132 | mode = "cpu"; |
133 | }; | 133 | }; |
134 | 134 | ||
135 | dma@82a8 { | ||
136 | #address-cells = <1>; | ||
137 | #size-cells = <1>; | ||
138 | compatible = "fsl,mpc8315-dma", "fsl,elo-dma"; | ||
139 | reg = <0x82a8 4>; | ||
140 | ranges = <0 0x8100 0x1a8>; | ||
141 | interrupt-parent = <&ipic>; | ||
142 | interrupts = <71 8>; | ||
143 | cell-index = <0>; | ||
144 | dma-channel@0 { | ||
145 | compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; | ||
146 | reg = <0 0x80>; | ||
147 | interrupt-parent = <&ipic>; | ||
148 | interrupts = <71 8>; | ||
149 | }; | ||
150 | dma-channel@80 { | ||
151 | compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; | ||
152 | reg = <0x80 0x80>; | ||
153 | interrupt-parent = <&ipic>; | ||
154 | interrupts = <71 8>; | ||
155 | }; | ||
156 | dma-channel@100 { | ||
157 | compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; | ||
158 | reg = <0x100 0x80>; | ||
159 | interrupt-parent = <&ipic>; | ||
160 | interrupts = <71 8>; | ||
161 | }; | ||
162 | dma-channel@180 { | ||
163 | compatible = "fsl,mpc8315-dma-channel", "fsl,elo-dma-channel"; | ||
164 | reg = <0x180 0x28>; | ||
165 | interrupt-parent = <&ipic>; | ||
166 | interrupts = <71 8>; | ||
167 | }; | ||
168 | }; | ||
169 | |||
135 | usb@23000 { | 170 | usb@23000 { |
136 | compatible = "fsl-usb2-dr"; | 171 | compatible = "fsl-usb2-dr"; |
137 | reg = <0x23000 0x1000>; | 172 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc832x_mds.dts b/arch/powerpc/boot/dts/mpc832x_mds.dts index 539e02fb3526..b5968b6c8a29 100644 --- a/arch/powerpc/boot/dts/mpc832x_mds.dts +++ b/arch/powerpc/boot/dts/mpc832x_mds.dts | |||
@@ -114,6 +114,41 @@ | |||
114 | interrupt-parent = <&ipic>; | 114 | interrupt-parent = <&ipic>; |
115 | }; | 115 | }; |
116 | 116 | ||
117 | dma@82a8 { | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <1>; | ||
120 | compatible = "fsl,mpc8323-dma", "fsl,elo-dma"; | ||
121 | reg = <0x82a8 4>; | ||
122 | ranges = <0 0x8100 0x1a8>; | ||
123 | interrupt-parent = <&ipic>; | ||
124 | interrupts = <71 8>; | ||
125 | cell-index = <0>; | ||
126 | dma-channel@0 { | ||
127 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
128 | reg = <0 0x80>; | ||
129 | interrupt-parent = <&ipic>; | ||
130 | interrupts = <71 8>; | ||
131 | }; | ||
132 | dma-channel@80 { | ||
133 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
134 | reg = <0x80 0x80>; | ||
135 | interrupt-parent = <&ipic>; | ||
136 | interrupts = <71 8>; | ||
137 | }; | ||
138 | dma-channel@100 { | ||
139 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
140 | reg = <0x100 0x80>; | ||
141 | interrupt-parent = <&ipic>; | ||
142 | interrupts = <71 8>; | ||
143 | }; | ||
144 | dma-channel@180 { | ||
145 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
146 | reg = <0x180 0x28>; | ||
147 | interrupt-parent = <&ipic>; | ||
148 | interrupts = <71 8>; | ||
149 | }; | ||
150 | }; | ||
151 | |||
117 | crypto@30000 { | 152 | crypto@30000 { |
118 | device_type = "crypto"; | 153 | device_type = "crypto"; |
119 | model = "SEC2"; | 154 | model = "SEC2"; |
diff --git a/arch/powerpc/boot/dts/mpc832x_rdb.dts b/arch/powerpc/boot/dts/mpc832x_rdb.dts index 179c81c6a7ac..a798d8639a7d 100644 --- a/arch/powerpc/boot/dts/mpc832x_rdb.dts +++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts | |||
@@ -68,7 +68,7 @@ | |||
68 | compatible = "fsl-i2c"; | 68 | compatible = "fsl-i2c"; |
69 | reg = <0x3000 0x100>; | 69 | reg = <0x3000 0x100>; |
70 | interrupts = <14 0x8>; | 70 | interrupts = <14 0x8>; |
71 | interrupt-parent = <&pic>; | 71 | interrupt-parent = <&ipic>; |
72 | dfsrr; | 72 | dfsrr; |
73 | }; | 73 | }; |
74 | 74 | ||
@@ -79,7 +79,7 @@ | |||
79 | reg = <0x4500 0x100>; | 79 | reg = <0x4500 0x100>; |
80 | clock-frequency = <0>; | 80 | clock-frequency = <0>; |
81 | interrupts = <9 0x8>; | 81 | interrupts = <9 0x8>; |
82 | interrupt-parent = <&pic>; | 82 | interrupt-parent = <&ipic>; |
83 | }; | 83 | }; |
84 | 84 | ||
85 | serial1: serial@4600 { | 85 | serial1: serial@4600 { |
@@ -89,7 +89,42 @@ | |||
89 | reg = <0x4600 0x100>; | 89 | reg = <0x4600 0x100>; |
90 | clock-frequency = <0>; | 90 | clock-frequency = <0>; |
91 | interrupts = <10 0x8>; | 91 | interrupts = <10 0x8>; |
92 | interrupt-parent = <&pic>; | 92 | interrupt-parent = <&ipic>; |
93 | }; | ||
94 | |||
95 | dma@82a8 { | ||
96 | #address-cells = <1>; | ||
97 | #size-cells = <1>; | ||
98 | compatible = "fsl,mpc8323-dma", "fsl,elo-dma"; | ||
99 | reg = <0x82a8 4>; | ||
100 | ranges = <0 0x8100 0x1a8>; | ||
101 | interrupt-parent = <&ipic>; | ||
102 | interrupts = <71 8>; | ||
103 | cell-index = <0>; | ||
104 | dma-channel@0 { | ||
105 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
106 | reg = <0 0x80>; | ||
107 | interrupt-parent = <&ipic>; | ||
108 | interrupts = <71 8>; | ||
109 | }; | ||
110 | dma-channel@80 { | ||
111 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
112 | reg = <0x80 0x80>; | ||
113 | interrupt-parent = <&ipic>; | ||
114 | interrupts = <71 8>; | ||
115 | }; | ||
116 | dma-channel@100 { | ||
117 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
118 | reg = <0x100 0x80>; | ||
119 | interrupt-parent = <&ipic>; | ||
120 | interrupts = <71 8>; | ||
121 | }; | ||
122 | dma-channel@180 { | ||
123 | compatible = "fsl,mpc8323-dma-channel", "fsl,elo-dma-channel"; | ||
124 | reg = <0x180 0x28>; | ||
125 | interrupt-parent = <&ipic>; | ||
126 | interrupts = <71 8>; | ||
127 | }; | ||
93 | }; | 128 | }; |
94 | 129 | ||
95 | crypto@30000 { | 130 | crypto@30000 { |
@@ -98,7 +133,7 @@ | |||
98 | compatible = "talitos"; | 133 | compatible = "talitos"; |
99 | reg = <0x30000 0x7000>; | 134 | reg = <0x30000 0x7000>; |
100 | interrupts = <11 0x8>; | 135 | interrupts = <11 0x8>; |
101 | interrupt-parent = <&pic>; | 136 | interrupt-parent = <&ipic>; |
102 | /* Rev. 2.2 */ | 137 | /* Rev. 2.2 */ |
103 | num-channels = <1>; | 138 | num-channels = <1>; |
104 | channel-fifo-len = <24>; | 139 | channel-fifo-len = <24>; |
@@ -106,7 +141,7 @@ | |||
106 | descriptor-types-mask = <0x0122003f>; | 141 | descriptor-types-mask = <0x0122003f>; |
107 | }; | 142 | }; |
108 | 143 | ||
109 | pic:pic@700 { | 144 | ipic:pic@700 { |
110 | interrupt-controller; | 145 | interrupt-controller; |
111 | #address-cells = <0>; | 146 | #address-cells = <0>; |
112 | #interrupt-cells = <2>; | 147 | #interrupt-cells = <2>; |
@@ -240,13 +275,13 @@ | |||
240 | compatible = "fsl,ucc-mdio"; | 275 | compatible = "fsl,ucc-mdio"; |
241 | 276 | ||
242 | phy00:ethernet-phy@00 { | 277 | phy00:ethernet-phy@00 { |
243 | interrupt-parent = <&pic>; | 278 | interrupt-parent = <&ipic>; |
244 | interrupts = <0>; | 279 | interrupts = <0>; |
245 | reg = <0x0>; | 280 | reg = <0x0>; |
246 | device_type = "ethernet-phy"; | 281 | device_type = "ethernet-phy"; |
247 | }; | 282 | }; |
248 | phy04:ethernet-phy@04 { | 283 | phy04:ethernet-phy@04 { |
249 | interrupt-parent = <&pic>; | 284 | interrupt-parent = <&ipic>; |
250 | interrupts = <0>; | 285 | interrupts = <0>; |
251 | reg = <0x4>; | 286 | reg = <0x4>; |
252 | device_type = "ethernet-phy"; | 287 | device_type = "ethernet-phy"; |
@@ -261,7 +296,7 @@ | |||
261 | reg = <0x80 0x80>; | 296 | reg = <0x80 0x80>; |
262 | big-endian; | 297 | big-endian; |
263 | interrupts = <32 0x8 33 0x8>; //high:32 low:33 | 298 | interrupts = <32 0x8 33 0x8>; //high:32 low:33 |
264 | interrupt-parent = <&pic>; | 299 | interrupt-parent = <&ipic>; |
265 | }; | 300 | }; |
266 | }; | 301 | }; |
267 | 302 | ||
@@ -270,21 +305,21 @@ | |||
270 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | 305 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; |
271 | interrupt-map = < | 306 | interrupt-map = < |
272 | /* IDSEL 0x10 AD16 (USB) */ | 307 | /* IDSEL 0x10 AD16 (USB) */ |
273 | 0x8000 0x0 0x0 0x1 &pic 17 0x8 | 308 | 0x8000 0x0 0x0 0x1 &ipic 17 0x8 |
274 | 309 | ||
275 | /* IDSEL 0x11 AD17 (Mini1)*/ | 310 | /* IDSEL 0x11 AD17 (Mini1)*/ |
276 | 0x8800 0x0 0x0 0x1 &pic 18 0x8 | 311 | 0x8800 0x0 0x0 0x1 &ipic 18 0x8 |
277 | 0x8800 0x0 0x0 0x2 &pic 19 0x8 | 312 | 0x8800 0x0 0x0 0x2 &ipic 19 0x8 |
278 | 0x8800 0x0 0x0 0x3 &pic 20 0x8 | 313 | 0x8800 0x0 0x0 0x3 &ipic 20 0x8 |
279 | 0x8800 0x0 0x0 0x4 &pic 48 0x8 | 314 | 0x8800 0x0 0x0 0x4 &ipic 48 0x8 |
280 | 315 | ||
281 | /* IDSEL 0x12 AD18 (PCI/Mini2) */ | 316 | /* IDSEL 0x12 AD18 (PCI/Mini2) */ |
282 | 0x9000 0x0 0x0 0x1 &pic 19 0x8 | 317 | 0x9000 0x0 0x0 0x1 &ipic 19 0x8 |
283 | 0x9000 0x0 0x0 0x2 &pic 20 0x8 | 318 | 0x9000 0x0 0x0 0x2 &ipic 20 0x8 |
284 | 0x9000 0x0 0x0 0x3 &pic 48 0x8 | 319 | 0x9000 0x0 0x0 0x3 &ipic 48 0x8 |
285 | 0x9000 0x0 0x0 0x4 &pic 17 0x8>; | 320 | 0x9000 0x0 0x0 0x4 &ipic 17 0x8>; |
286 | 321 | ||
287 | interrupt-parent = <&pic>; | 322 | interrupt-parent = <&ipic>; |
288 | interrupts = <66 0x8>; | 323 | interrupts = <66 0x8>; |
289 | bus-range = <0x0 0x0>; | 324 | bus-range = <0x0 0x0>; |
290 | ranges = <0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 | 325 | ranges = <0x42000000 0x0 0x80000000 0x80000000 0x0 0x10000000 |
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts index 9426676b0b7d..fc0f4c918c76 100644 --- a/arch/powerpc/boot/dts/mpc8349emitx.dts +++ b/arch/powerpc/boot/dts/mpc8349emitx.dts | |||
@@ -93,6 +93,41 @@ | |||
93 | mode = "cpu"; | 93 | mode = "cpu"; |
94 | }; | 94 | }; |
95 | 95 | ||
96 | dma@82a8 { | ||
97 | #address-cells = <1>; | ||
98 | #size-cells = <1>; | ||
99 | compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; | ||
100 | reg = <0x82a8 4>; | ||
101 | ranges = <0 0x8100 0x1a8>; | ||
102 | interrupt-parent = <&ipic>; | ||
103 | interrupts = <71 8>; | ||
104 | cell-index = <0>; | ||
105 | dma-channel@0 { | ||
106 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
107 | reg = <0 0x80>; | ||
108 | interrupt-parent = <&ipic>; | ||
109 | interrupts = <71 8>; | ||
110 | }; | ||
111 | dma-channel@80 { | ||
112 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
113 | reg = <0x80 0x80>; | ||
114 | interrupt-parent = <&ipic>; | ||
115 | interrupts = <71 8>; | ||
116 | }; | ||
117 | dma-channel@100 { | ||
118 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
119 | reg = <0x100 0x80>; | ||
120 | interrupt-parent = <&ipic>; | ||
121 | interrupts = <71 8>; | ||
122 | }; | ||
123 | dma-channel@180 { | ||
124 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
125 | reg = <0x180 0x28>; | ||
126 | interrupt-parent = <&ipic>; | ||
127 | interrupts = <71 8>; | ||
128 | }; | ||
129 | }; | ||
130 | |||
96 | usb@22000 { | 131 | usb@22000 { |
97 | compatible = "fsl-usb2-mph"; | 132 | compatible = "fsl-usb2-mph"; |
98 | reg = <0x22000 0x1000>; | 133 | reg = <0x22000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc8349emitxgp.dts b/arch/powerpc/boot/dts/mpc8349emitxgp.dts index f81d735e6e72..e6afb1d1e19e 100644 --- a/arch/powerpc/boot/dts/mpc8349emitxgp.dts +++ b/arch/powerpc/boot/dts/mpc8349emitxgp.dts | |||
@@ -91,6 +91,41 @@ | |||
91 | mode = "cpu"; | 91 | mode = "cpu"; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | dma@82a8 { | ||
95 | #address-cells = <1>; | ||
96 | #size-cells = <1>; | ||
97 | compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; | ||
98 | reg = <0x82a8 4>; | ||
99 | ranges = <0 0x8100 0x1a8>; | ||
100 | interrupt-parent = <&ipic>; | ||
101 | interrupts = <71 8>; | ||
102 | cell-index = <0>; | ||
103 | dma-channel@0 { | ||
104 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
105 | reg = <0 0x80>; | ||
106 | interrupt-parent = <&ipic>; | ||
107 | interrupts = <71 8>; | ||
108 | }; | ||
109 | dma-channel@80 { | ||
110 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
111 | reg = <0x80 0x80>; | ||
112 | interrupt-parent = <&ipic>; | ||
113 | interrupts = <71 8>; | ||
114 | }; | ||
115 | dma-channel@100 { | ||
116 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
117 | reg = <0x100 0x80>; | ||
118 | interrupt-parent = <&ipic>; | ||
119 | interrupts = <71 8>; | ||
120 | }; | ||
121 | dma-channel@180 { | ||
122 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
123 | reg = <0x180 0x28>; | ||
124 | interrupt-parent = <&ipic>; | ||
125 | interrupts = <71 8>; | ||
126 | }; | ||
127 | }; | ||
128 | |||
94 | usb@23000 { | 129 | usb@23000 { |
95 | compatible = "fsl-usb2-dr"; | 130 | compatible = "fsl-usb2-dr"; |
96 | reg = <0x23000 0x1000>; | 131 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc834x_mds.dts b/arch/powerpc/boot/dts/mpc834x_mds.dts index 0199c5c548d8..9c75c7c69e21 100644 --- a/arch/powerpc/boot/dts/mpc834x_mds.dts +++ b/arch/powerpc/boot/dts/mpc834x_mds.dts | |||
@@ -103,6 +103,41 @@ | |||
103 | mode = "cpu"; | 103 | mode = "cpu"; |
104 | }; | 104 | }; |
105 | 105 | ||
106 | dma@82a8 { | ||
107 | #address-cells = <1>; | ||
108 | #size-cells = <1>; | ||
109 | compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; | ||
110 | reg = <0x82a8 4>; | ||
111 | ranges = <0 0x8100 0x1a8>; | ||
112 | interrupt-parent = <&ipic>; | ||
113 | interrupts = <71 8>; | ||
114 | cell-index = <0>; | ||
115 | dma-channel@0 { | ||
116 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
117 | reg = <0 0x80>; | ||
118 | interrupt-parent = <&ipic>; | ||
119 | interrupts = <71 8>; | ||
120 | }; | ||
121 | dma-channel@80 { | ||
122 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
123 | reg = <0x80 0x80>; | ||
124 | interrupt-parent = <&ipic>; | ||
125 | interrupts = <71 8>; | ||
126 | }; | ||
127 | dma-channel@100 { | ||
128 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
129 | reg = <0x100 0x80>; | ||
130 | interrupt-parent = <&ipic>; | ||
131 | interrupts = <71 8>; | ||
132 | }; | ||
133 | dma-channel@180 { | ||
134 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
135 | reg = <0x180 0x28>; | ||
136 | interrupt-parent = <&ipic>; | ||
137 | interrupts = <71 8>; | ||
138 | }; | ||
139 | }; | ||
140 | |||
106 | /* phy type (ULPI or SERIAL) are only types supported for MPH */ | 141 | /* phy type (ULPI or SERIAL) are only types supported for MPH */ |
107 | /* port = 0 or 1 */ | 142 | /* port = 0 or 1 */ |
108 | usb@22000 { | 143 | usb@22000 { |
diff --git a/arch/powerpc/boot/dts/mpc836x_mds.dts b/arch/powerpc/boot/dts/mpc836x_mds.dts index 8160ff24e87e..8e33b155f112 100644 --- a/arch/powerpc/boot/dts/mpc836x_mds.dts +++ b/arch/powerpc/boot/dts/mpc836x_mds.dts | |||
@@ -118,6 +118,41 @@ | |||
118 | interrupt-parent = <&ipic>; | 118 | interrupt-parent = <&ipic>; |
119 | }; | 119 | }; |
120 | 120 | ||
121 | dma@82a8 { | ||
122 | #address-cells = <1>; | ||
123 | #size-cells = <1>; | ||
124 | compatible = "fsl,mpc8360-dma", "fsl,elo-dma"; | ||
125 | reg = <0x82a8 4>; | ||
126 | ranges = <0 0x8100 0x1a8>; | ||
127 | interrupt-parent = <&ipic>; | ||
128 | interrupts = <71 8>; | ||
129 | cell-index = <0>; | ||
130 | dma-channel@0 { | ||
131 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
132 | reg = <0 0x80>; | ||
133 | interrupt-parent = <&ipic>; | ||
134 | interrupts = <71 8>; | ||
135 | }; | ||
136 | dma-channel@80 { | ||
137 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
138 | reg = <0x80 0x80>; | ||
139 | interrupt-parent = <&ipic>; | ||
140 | interrupts = <71 8>; | ||
141 | }; | ||
142 | dma-channel@100 { | ||
143 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
144 | reg = <0x100 0x80>; | ||
145 | interrupt-parent = <&ipic>; | ||
146 | interrupts = <71 8>; | ||
147 | }; | ||
148 | dma-channel@180 { | ||
149 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
150 | reg = <0x180 0x28>; | ||
151 | interrupt-parent = <&ipic>; | ||
152 | interrupts = <71 8>; | ||
153 | }; | ||
154 | }; | ||
155 | |||
121 | crypto@30000 { | 156 | crypto@30000 { |
122 | device_type = "crypto"; | 157 | device_type = "crypto"; |
123 | model = "SEC2"; | 158 | model = "SEC2"; |
diff --git a/arch/powerpc/boot/dts/mpc836x_rdk.dts b/arch/powerpc/boot/dts/mpc836x_rdk.dts new file mode 100644 index 000000000000..8acd1d6577f2 --- /dev/null +++ b/arch/powerpc/boot/dts/mpc836x_rdk.dts | |||
@@ -0,0 +1,432 @@ | |||
1 | /* | ||
2 | * MPC8360E RDK Device Tree Source | ||
3 | * | ||
4 | * Copyright 2006 Freescale Semiconductor Inc. | ||
5 | * Copyright 2007-2008 MontaVista Software, Inc. | ||
6 | * | ||
7 | * Author: Anton Vorontsov <avorontsov@ru.mvista.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License as published by the | ||
11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
12 | * option) any later version. | ||
13 | */ | ||
14 | |||
15 | /dts-v1/; | ||
16 | |||
17 | / { | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <1>; | ||
20 | compatible = "fsl,mpc8360rdk"; | ||
21 | |||
22 | aliases { | ||
23 | serial0 = &serial0; | ||
24 | serial1 = &serial1; | ||
25 | serial2 = &serial2; | ||
26 | serial3 = &serial3; | ||
27 | ethernet0 = &enet0; | ||
28 | ethernet1 = &enet1; | ||
29 | ethernet2 = &enet2; | ||
30 | ethernet3 = &enet3; | ||
31 | pci0 = &pci0; | ||
32 | }; | ||
33 | |||
34 | cpus { | ||
35 | #address-cells = <1>; | ||
36 | #size-cells = <0>; | ||
37 | |||
38 | PowerPC,8360@0 { | ||
39 | device_type = "cpu"; | ||
40 | reg = <0>; | ||
41 | d-cache-line-size = <32>; | ||
42 | i-cache-line-size = <32>; | ||
43 | d-cache-size = <32768>; | ||
44 | i-cache-size = <32768>; | ||
45 | /* filled by u-boot */ | ||
46 | timebase-frequency = <0>; | ||
47 | bus-frequency = <0>; | ||
48 | clock-frequency = <0>; | ||
49 | }; | ||
50 | }; | ||
51 | |||
52 | memory { | ||
53 | device_type = "memory"; | ||
54 | /* filled by u-boot */ | ||
55 | reg = <0 0>; | ||
56 | }; | ||
57 | |||
58 | soc@e0000000 { | ||
59 | #address-cells = <1>; | ||
60 | #size-cells = <1>; | ||
61 | device_type = "soc"; | ||
62 | compatible = "fsl,mpc8360-immr", "fsl,immr", "fsl,soc", | ||
63 | "simple-bus"; | ||
64 | ranges = <0 0xe0000000 0x200000>; | ||
65 | reg = <0xe0000000 0x200>; | ||
66 | /* filled by u-boot */ | ||
67 | bus-frequency = <0>; | ||
68 | |||
69 | wdt@200 { | ||
70 | compatible = "mpc83xx_wdt"; | ||
71 | reg = <0x200 0x100>; | ||
72 | }; | ||
73 | |||
74 | i2c@3000 { | ||
75 | #address-cells = <1>; | ||
76 | #size-cells = <0>; | ||
77 | cell-index = <0>; | ||
78 | compatible = "fsl-i2c"; | ||
79 | reg = <0x3000 0x100>; | ||
80 | interrupts = <14 8>; | ||
81 | interrupt-parent = <&ipic>; | ||
82 | dfsrr; | ||
83 | }; | ||
84 | |||
85 | i2c@3100 { | ||
86 | #address-cells = <1>; | ||
87 | #size-cells = <0>; | ||
88 | cell-index = <1>; | ||
89 | compatible = "fsl-i2c"; | ||
90 | reg = <0x3100 0x100>; | ||
91 | interrupts = <16 8>; | ||
92 | interrupt-parent = <&ipic>; | ||
93 | dfsrr; | ||
94 | }; | ||
95 | |||
96 | serial0: serial@4500 { | ||
97 | device_type = "serial"; | ||
98 | compatible = "ns16550"; | ||
99 | reg = <0x4500 0x100>; | ||
100 | interrupts = <9 8>; | ||
101 | interrupt-parent = <&ipic>; | ||
102 | /* filled by u-boot */ | ||
103 | clock-frequency = <0>; | ||
104 | }; | ||
105 | |||
106 | serial1: serial@4600 { | ||
107 | device_type = "serial"; | ||
108 | compatible = "ns16550"; | ||
109 | reg = <0x4600 0x100>; | ||
110 | interrupts = <10 8>; | ||
111 | interrupt-parent = <&ipic>; | ||
112 | /* filled by u-boot */ | ||
113 | clock-frequency = <0>; | ||
114 | }; | ||
115 | |||
116 | dma@82a8 { | ||
117 | #address-cells = <1>; | ||
118 | #size-cells = <1>; | ||
119 | compatible = "fsl,mpc8360-dma", "fsl,elo-dma"; | ||
120 | reg = <0x82a8 4>; | ||
121 | ranges = <0 0x8100 0x1a8>; | ||
122 | interrupt-parent = <&ipic>; | ||
123 | interrupts = <71 8>; | ||
124 | cell-index = <0>; | ||
125 | dma-channel@0 { | ||
126 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
127 | reg = <0 0x80>; | ||
128 | interrupt-parent = <&ipic>; | ||
129 | interrupts = <71 8>; | ||
130 | }; | ||
131 | dma-channel@80 { | ||
132 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
133 | reg = <0x80 0x80>; | ||
134 | interrupt-parent = <&ipic>; | ||
135 | interrupts = <71 8>; | ||
136 | }; | ||
137 | dma-channel@100 { | ||
138 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
139 | reg = <0x100 0x80>; | ||
140 | interrupt-parent = <&ipic>; | ||
141 | interrupts = <71 8>; | ||
142 | }; | ||
143 | dma-channel@180 { | ||
144 | compatible = "fsl,mpc8360-dma-channel", "fsl,elo-dma-channel"; | ||
145 | reg = <0x180 0x28>; | ||
146 | interrupt-parent = <&ipic>; | ||
147 | interrupts = <71 8>; | ||
148 | }; | ||
149 | }; | ||
150 | |||
151 | crypto@30000 { | ||
152 | compatible = "fsl,sec2-crypto"; | ||
153 | reg = <0x30000 0x10000>; | ||
154 | interrupts = <11 8>; | ||
155 | interrupt-parent = <&ipic>; | ||
156 | num-channels = <4>; | ||
157 | channel-fifo-len = <24>; | ||
158 | exec-units-mask = <0x7e>; | ||
159 | /* | ||
160 | * desc mask is for rev1.x, we need runtime fixup | ||
161 | * for >=2.x | ||
162 | */ | ||
163 | descriptor-types-mask = <0x1010ebf>; | ||
164 | }; | ||
165 | |||
166 | ipic: interrupt-controller@700 { | ||
167 | #address-cells = <0>; | ||
168 | #interrupt-cells = <2>; | ||
169 | compatible = "fsl,pq2pro-pic", "fsl,ipic"; | ||
170 | interrupt-controller; | ||
171 | reg = <0x700 0x100>; | ||
172 | }; | ||
173 | |||
174 | qe_pio_b: gpio-controller@1418 { | ||
175 | #gpio-cells = <2>; | ||
176 | compatible = "fsl,mpc8360-qe-pario-bank", | ||
177 | "fsl,mpc8323-qe-pario-bank"; | ||
178 | reg = <0x1418 0x18>; | ||
179 | gpio-controller; | ||
180 | }; | ||
181 | |||
182 | qe_pio_e: gpio-controller@1460 { | ||
183 | #gpio-cells = <2>; | ||
184 | compatible = "fsl,mpc8360-qe-pario-bank", | ||
185 | "fsl,mpc8323-qe-pario-bank"; | ||
186 | reg = <0x1460 0x18>; | ||
187 | gpio-controller; | ||
188 | }; | ||
189 | |||
190 | qe@100000 { | ||
191 | #address-cells = <1>; | ||
192 | #size-cells = <1>; | ||
193 | device_type = "qe"; | ||
194 | compatible = "fsl,qe", "simple-bus"; | ||
195 | ranges = <0 0x100000 0x100000>; | ||
196 | reg = <0x100000 0x480>; | ||
197 | /* filled by u-boot */ | ||
198 | clock-frequency = <0>; | ||
199 | bus-frequency = <0>; | ||
200 | brg-frequency = <0>; | ||
201 | |||
202 | muram@10000 { | ||
203 | #address-cells = <1>; | ||
204 | #size-cells = <1>; | ||
205 | compatible = "fsl,qe-muram", "fsl,cpm-muram"; | ||
206 | ranges = <0 0x10000 0xc000>; | ||
207 | |||
208 | data-only@0 { | ||
209 | compatible = "fsl,qe-muram-data", | ||
210 | "fsl,cpm-muram-data"; | ||
211 | reg = <0 0xc000>; | ||
212 | }; | ||
213 | }; | ||
214 | |||
215 | timer@440 { | ||
216 | compatible = "fsl,mpc8360-qe-gtm", | ||
217 | "fsl,qe-gtm", "fsl,gtm"; | ||
218 | reg = <0x440 0x40>; | ||
219 | interrupts = <12 13 14 15>; | ||
220 | interrupt-parent = <&qeic>; | ||
221 | /* filled by u-boot */ | ||
222 | clock-frequency = <0>; | ||
223 | }; | ||
224 | |||
225 | spi@4c0 { | ||
226 | cell-index = <0>; | ||
227 | compatible = "fsl,spi"; | ||
228 | reg = <0x4c0 0x40>; | ||
229 | interrupts = <2>; | ||
230 | interrupt-parent = <&qeic>; | ||
231 | mode = "cpu-qe"; | ||
232 | }; | ||
233 | |||
234 | spi@500 { | ||
235 | cell-index = <1>; | ||
236 | compatible = "fsl,spi"; | ||
237 | reg = <0x500 0x40>; | ||
238 | interrupts = <1>; | ||
239 | interrupt-parent = <&qeic>; | ||
240 | mode = "cpu-qe"; | ||
241 | }; | ||
242 | |||
243 | enet0: ucc@2000 { | ||
244 | device_type = "network"; | ||
245 | compatible = "ucc_geth"; | ||
246 | cell-index = <1>; | ||
247 | reg = <0x2000 0x200>; | ||
248 | interrupts = <32>; | ||
249 | interrupt-parent = <&qeic>; | ||
250 | rx-clock-name = "none"; | ||
251 | tx-clock-name = "clk9"; | ||
252 | phy-handle = <&phy2>; | ||
253 | phy-connection-type = "rgmii-rxid"; | ||
254 | /* filled by u-boot */ | ||
255 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
256 | }; | ||
257 | |||
258 | enet1: ucc@3000 { | ||
259 | device_type = "network"; | ||
260 | compatible = "ucc_geth"; | ||
261 | cell-index = <2>; | ||
262 | reg = <0x3000 0x200>; | ||
263 | interrupts = <33>; | ||
264 | interrupt-parent = <&qeic>; | ||
265 | rx-clock-name = "none"; | ||
266 | tx-clock-name = "clk4"; | ||
267 | phy-handle = <&phy4>; | ||
268 | phy-connection-type = "rgmii-rxid"; | ||
269 | /* filled by u-boot */ | ||
270 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
271 | }; | ||
272 | |||
273 | enet2: ucc@2600 { | ||
274 | device_type = "network"; | ||
275 | compatible = "ucc_geth"; | ||
276 | cell-index = <7>; | ||
277 | reg = <0x2600 0x200>; | ||
278 | interrupts = <42>; | ||
279 | interrupt-parent = <&qeic>; | ||
280 | rx-clock-name = "clk20"; | ||
281 | tx-clock-name = "clk19"; | ||
282 | phy-handle = <&phy1>; | ||
283 | phy-connection-type = "mii"; | ||
284 | /* filled by u-boot */ | ||
285 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
286 | }; | ||
287 | |||
288 | enet3: ucc@3200 { | ||
289 | device_type = "network"; | ||
290 | compatible = "ucc_geth"; | ||
291 | cell-index = <4>; | ||
292 | reg = <0x3200 0x200>; | ||
293 | interrupts = <35>; | ||
294 | interrupt-parent = <&qeic>; | ||
295 | rx-clock-name = "clk8"; | ||
296 | tx-clock-name = "clk7"; | ||
297 | phy-handle = <&phy3>; | ||
298 | phy-connection-type = "mii"; | ||
299 | /* filled by u-boot */ | ||
300 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
301 | }; | ||
302 | |||
303 | mdio@2120 { | ||
304 | #address-cells = <1>; | ||
305 | #size-cells = <0>; | ||
306 | compatible = "fsl,ucc-mdio"; | ||
307 | reg = <0x2120 0x18>; | ||
308 | |||
309 | phy1: ethernet-phy@1 { | ||
310 | device_type = "ethernet-phy"; | ||
311 | compatible = "national,DP83848VV"; | ||
312 | reg = <1>; | ||
313 | }; | ||
314 | |||
315 | phy2: ethernet-phy@2 { | ||
316 | device_type = "ethernet-phy"; | ||
317 | compatible = "broadcom,BCM5481UA2KMLG"; | ||
318 | reg = <2>; | ||
319 | }; | ||
320 | |||
321 | phy3: ethernet-phy@3 { | ||
322 | device_type = "ethernet-phy"; | ||
323 | compatible = "national,DP83848VV"; | ||
324 | reg = <3>; | ||
325 | }; | ||
326 | |||
327 | phy4: ethernet-phy@4 { | ||
328 | device_type = "ethernet-phy"; | ||
329 | compatible = "broadcom,BCM5481UA2KMLG"; | ||
330 | reg = <4>; | ||
331 | }; | ||
332 | }; | ||
333 | |||
334 | serial2: ucc@2400 { | ||
335 | device_type = "serial"; | ||
336 | compatible = "ucc_uart"; | ||
337 | reg = <0x2400 0x200>; | ||
338 | cell-index = <5>; | ||
339 | port-number = <0>; | ||
340 | rx-clock-name = "brg7"; | ||
341 | tx-clock-name = "brg8"; | ||
342 | interrupts = <40>; | ||
343 | interrupt-parent = <&qeic>; | ||
344 | soft-uart; | ||
345 | }; | ||
346 | |||
347 | serial3: ucc@3400 { | ||
348 | device_type = "serial"; | ||
349 | compatible = "ucc_uart"; | ||
350 | reg = <0x3400 0x200>; | ||
351 | cell-index = <6>; | ||
352 | port-number = <1>; | ||
353 | rx-clock-name = "brg13"; | ||
354 | tx-clock-name = "brg14"; | ||
355 | interrupts = <41>; | ||
356 | interrupt-parent = <&qeic>; | ||
357 | soft-uart; | ||
358 | }; | ||
359 | |||
360 | qeic: interrupt-controller@80 { | ||
361 | #address-cells = <0>; | ||
362 | #interrupt-cells = <1>; | ||
363 | compatible = "fsl,qe-ic"; | ||
364 | interrupt-controller; | ||
365 | reg = <0x80 0x80>; | ||
366 | big-endian; | ||
367 | interrupts = <32 8 33 8>; | ||
368 | interrupt-parent = <&ipic>; | ||
369 | }; | ||
370 | }; | ||
371 | }; | ||
372 | |||
373 | localbus@e0005000 { | ||
374 | #address-cells = <2>; | ||
375 | #size-cells = <1>; | ||
376 | compatible = "fsl,mpc8360-localbus", "fsl,pq2pro-localbus", | ||
377 | "simple-bus"; | ||
378 | reg = <0xe0005000 0xd8>; | ||
379 | ranges = <0 0 0xff800000 0x0800000 | ||
380 | 1 0 0x60000000 0x0001000 | ||
381 | 2 0 0x70000000 0x4000000>; | ||
382 | |||
383 | flash@0,0 { | ||
384 | compatible = "intel,PC28F640P30T85", "cfi-flash"; | ||
385 | reg = <0 0 0x800000>; | ||
386 | bank-width = <2>; | ||
387 | device-width = <1>; | ||
388 | }; | ||
389 | |||
390 | display@2,0 { | ||
391 | device_type = "display"; | ||
392 | compatible = "fujitsu,MB86277", "fujitsu,mint"; | ||
393 | reg = <2 0 0x4000000>; | ||
394 | fujitsu,sh3; | ||
395 | little-endian; | ||
396 | /* filled by u-boot */ | ||
397 | address = <0>; | ||
398 | depth = <0>; | ||
399 | width = <0>; | ||
400 | height = <0>; | ||
401 | linebytes = <0>; | ||
402 | /* linux,opened; - added by uboot */ | ||
403 | }; | ||
404 | }; | ||
405 | |||
406 | pci0: pci@e0008500 { | ||
407 | #address-cells = <3>; | ||
408 | #size-cells = <2>; | ||
409 | #interrupt-cells = <1>; | ||
410 | device_type = "pci"; | ||
411 | compatible = "fsl,mpc8360-pci", "fsl,mpc8349-pci"; | ||
412 | reg = <0xe0008500 0x100>; | ||
413 | ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000 | ||
414 | 0x42000000 0 0x80000000 0x80000000 0 0x10000000 | ||
415 | 0x01000000 0 0xe0300000 0xe0300000 0 0x00100000>; | ||
416 | interrupts = <66 8>; | ||
417 | interrupt-parent = <&ipic>; | ||
418 | interrupt-map-mask = <0xf800 0 0 7>; | ||
419 | interrupt-map = </* miniPCI0 IDSEL 0x14 AD20 */ | ||
420 | 0xa000 0 0 1 &ipic 18 8 | ||
421 | 0xa000 0 0 2 &ipic 19 8 | ||
422 | |||
423 | /* PCI1 IDSEL 0x15 AD21 */ | ||
424 | 0xa800 0 0 1 &ipic 19 8 | ||
425 | 0xa800 0 0 2 &ipic 20 8 | ||
426 | 0xa800 0 0 3 &ipic 21 8 | ||
427 | 0xa800 0 0 4 &ipic 18 8>; | ||
428 | /* filled by u-boot */ | ||
429 | bus-range = <0 0>; | ||
430 | clock-frequency = <0>; | ||
431 | }; | ||
432 | }; | ||
diff --git a/arch/powerpc/boot/dts/mpc8377_mds.dts b/arch/powerpc/boot/dts/mpc8377_mds.dts index fea592574004..49a38cb95b52 100644 --- a/arch/powerpc/boot/dts/mpc8377_mds.dts +++ b/arch/powerpc/boot/dts/mpc8377_mds.dts | |||
@@ -233,41 +233,6 @@ | |||
233 | interrupt-parent = <&ipic>; | 233 | interrupt-parent = <&ipic>; |
234 | }; | 234 | }; |
235 | 235 | ||
236 | crypto@30000 { | ||
237 | model = "SEC3"; | ||
238 | compatible = "talitos"; | ||
239 | reg = <0x30000 0x10000>; | ||
240 | interrupts = <11 0x8>; | ||
241 | interrupt-parent = <&ipic>; | ||
242 | /* Rev. 3.0 geometry */ | ||
243 | num-channels = <4>; | ||
244 | channel-fifo-len = <24>; | ||
245 | exec-units-mask = <0x000001fe>; | ||
246 | descriptor-types-mask = <0x03ab0ebf>; | ||
247 | }; | ||
248 | |||
249 | sdhc@2e000 { | ||
250 | model = "eSDHC"; | ||
251 | compatible = "fsl,esdhc"; | ||
252 | reg = <0x2e000 0x1000>; | ||
253 | interrupts = <42 0x8>; | ||
254 | interrupt-parent = <&ipic>; | ||
255 | }; | ||
256 | |||
257 | sata@18000 { | ||
258 | compatible = "fsl,mpc8379-sata", "fsl,pq-sata"; | ||
259 | reg = <0x18000 0x1000>; | ||
260 | interrupts = <44 0x8>; | ||
261 | interrupt-parent = <&ipic>; | ||
262 | }; | ||
263 | |||
264 | sata@19000 { | ||
265 | compatible = "fsl,mpc8379-sata", "fsl,pq-sata"; | ||
266 | reg = <0x19000 0x1000>; | ||
267 | interrupts = <45 0x8>; | ||
268 | interrupt-parent = <&ipic>; | ||
269 | }; | ||
270 | |||
271 | dma@82a8 { | 236 | dma@82a8 { |
272 | #address-cells = <1>; | 237 | #address-cells = <1>; |
273 | #size-cells = <1>; | 238 | #size-cells = <1>; |
@@ -303,6 +268,41 @@ | |||
303 | }; | 268 | }; |
304 | }; | 269 | }; |
305 | 270 | ||
271 | crypto@30000 { | ||
272 | model = "SEC3"; | ||
273 | compatible = "talitos"; | ||
274 | reg = <0x30000 0x10000>; | ||
275 | interrupts = <11 0x8>; | ||
276 | interrupt-parent = <&ipic>; | ||
277 | /* Rev. 3.0 geometry */ | ||
278 | num-channels = <4>; | ||
279 | channel-fifo-len = <24>; | ||
280 | exec-units-mask = <0x000001fe>; | ||
281 | descriptor-types-mask = <0x03ab0ebf>; | ||
282 | }; | ||
283 | |||
284 | sdhc@2e000 { | ||
285 | model = "eSDHC"; | ||
286 | compatible = "fsl,esdhc"; | ||
287 | reg = <0x2e000 0x1000>; | ||
288 | interrupts = <42 0x8>; | ||
289 | interrupt-parent = <&ipic>; | ||
290 | }; | ||
291 | |||
292 | sata@18000 { | ||
293 | compatible = "fsl,mpc8379-sata", "fsl,pq-sata"; | ||
294 | reg = <0x18000 0x1000>; | ||
295 | interrupts = <44 0x8>; | ||
296 | interrupt-parent = <&ipic>; | ||
297 | }; | ||
298 | |||
299 | sata@19000 { | ||
300 | compatible = "fsl,mpc8379-sata", "fsl,pq-sata"; | ||
301 | reg = <0x19000 0x1000>; | ||
302 | interrupts = <45 0x8>; | ||
303 | interrupt-parent = <&ipic>; | ||
304 | }; | ||
305 | |||
306 | /* IPIC | 306 | /* IPIC |
307 | * interrupts cell = <intr #, sense> | 307 | * interrupts cell = <intr #, sense> |
308 | * sense values match linux IORESOURCE_IRQ_* defines: | 308 | * sense values match linux IORESOURCE_IRQ_* defines: |
diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts index 5bc09ad016f5..e05743ad7b3f 100644 --- a/arch/powerpc/boot/dts/mpc8377_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts | |||
@@ -143,6 +143,41 @@ | |||
143 | mode = "cpu"; | 143 | mode = "cpu"; |
144 | }; | 144 | }; |
145 | 145 | ||
146 | dma@82a8 { | ||
147 | #address-cells = <1>; | ||
148 | #size-cells = <1>; | ||
149 | compatible = "fsl,mpc8377-dma", "fsl,elo-dma"; | ||
150 | reg = <0x82a8 4>; | ||
151 | ranges = <0 0x8100 0x1a8>; | ||
152 | interrupt-parent = <&ipic>; | ||
153 | interrupts = <71 8>; | ||
154 | cell-index = <0>; | ||
155 | dma-channel@0 { | ||
156 | compatible = "fsl,mpc8377-dma-channel", "fsl,elo-dma-channel"; | ||
157 | reg = <0 0x80>; | ||
158 | interrupt-parent = <&ipic>; | ||
159 | interrupts = <71 8>; | ||
160 | }; | ||
161 | dma-channel@80 { | ||
162 | compatible = "fsl,mpc8377-dma-channel", "fsl,elo-dma-channel"; | ||
163 | reg = <0x80 0x80>; | ||
164 | interrupt-parent = <&ipic>; | ||
165 | interrupts = <71 8>; | ||
166 | }; | ||
167 | dma-channel@100 { | ||
168 | compatible = "fsl,mpc8377-dma-channel", "fsl,elo-dma-channel"; | ||
169 | reg = <0x100 0x80>; | ||
170 | interrupt-parent = <&ipic>; | ||
171 | interrupts = <71 8>; | ||
172 | }; | ||
173 | dma-channel@180 { | ||
174 | compatible = "fsl,mpc8377-dma-channel", "fsl,elo-dma-channel"; | ||
175 | reg = <0x180 0x28>; | ||
176 | interrupt-parent = <&ipic>; | ||
177 | interrupts = <71 8>; | ||
178 | }; | ||
179 | }; | ||
180 | |||
146 | usb@23000 { | 181 | usb@23000 { |
147 | compatible = "fsl-usb2-dr"; | 182 | compatible = "fsl-usb2-dr"; |
148 | reg = <0x23000 0x1000>; | 183 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc8378_mds.dts b/arch/powerpc/boot/dts/mpc8378_mds.dts index 1d6ea080ad73..99ad49d4f13f 100644 --- a/arch/powerpc/boot/dts/mpc8378_mds.dts +++ b/arch/powerpc/boot/dts/mpc8378_mds.dts | |||
@@ -157,6 +157,41 @@ | |||
157 | mode = "cpu"; | 157 | mode = "cpu"; |
158 | }; | 158 | }; |
159 | 159 | ||
160 | dma@82a8 { | ||
161 | #address-cells = <1>; | ||
162 | #size-cells = <1>; | ||
163 | compatible = "fsl,mpc8378-dma", "fsl,elo-dma"; | ||
164 | reg = <0x82a8 4>; | ||
165 | ranges = <0 0x8100 0x1a8>; | ||
166 | interrupt-parent = <&ipic>; | ||
167 | interrupts = <71 8>; | ||
168 | cell-index = <0>; | ||
169 | dma-channel@0 { | ||
170 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
171 | reg = <0 0x80>; | ||
172 | interrupt-parent = <&ipic>; | ||
173 | interrupts = <71 8>; | ||
174 | }; | ||
175 | dma-channel@80 { | ||
176 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
177 | reg = <0x80 0x80>; | ||
178 | interrupt-parent = <&ipic>; | ||
179 | interrupts = <71 8>; | ||
180 | }; | ||
181 | dma-channel@100 { | ||
182 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
183 | reg = <0x100 0x80>; | ||
184 | interrupt-parent = <&ipic>; | ||
185 | interrupts = <71 8>; | ||
186 | }; | ||
187 | dma-channel@180 { | ||
188 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
189 | reg = <0x180 0x28>; | ||
190 | interrupt-parent = <&ipic>; | ||
191 | interrupts = <71 8>; | ||
192 | }; | ||
193 | }; | ||
194 | |||
160 | usb@23000 { | 195 | usb@23000 { |
161 | compatible = "fsl-usb2-dr"; | 196 | compatible = "fsl-usb2-dr"; |
162 | reg = <0x23000 0x1000>; | 197 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts index 711f9a30f9ab..a8bdbaa975c9 100644 --- a/arch/powerpc/boot/dts/mpc8378_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts | |||
@@ -143,6 +143,41 @@ | |||
143 | mode = "cpu"; | 143 | mode = "cpu"; |
144 | }; | 144 | }; |
145 | 145 | ||
146 | dma@82a8 { | ||
147 | #address-cells = <1>; | ||
148 | #size-cells = <1>; | ||
149 | compatible = "fsl,mpc8378-dma", "fsl,elo-dma"; | ||
150 | reg = <0x82a8 4>; | ||
151 | ranges = <0 0x8100 0x1a8>; | ||
152 | interrupt-parent = <&ipic>; | ||
153 | interrupts = <71 8>; | ||
154 | cell-index = <0>; | ||
155 | dma-channel@0 { | ||
156 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
157 | reg = <0 0x80>; | ||
158 | interrupt-parent = <&ipic>; | ||
159 | interrupts = <71 8>; | ||
160 | }; | ||
161 | dma-channel@80 { | ||
162 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
163 | reg = <0x80 0x80>; | ||
164 | interrupt-parent = <&ipic>; | ||
165 | interrupts = <71 8>; | ||
166 | }; | ||
167 | dma-channel@100 { | ||
168 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
169 | reg = <0x100 0x80>; | ||
170 | interrupt-parent = <&ipic>; | ||
171 | interrupts = <71 8>; | ||
172 | }; | ||
173 | dma-channel@180 { | ||
174 | compatible = "fsl,mpc8378-dma-channel", "fsl,elo-dma-channel"; | ||
175 | reg = <0x180 0x28>; | ||
176 | interrupt-parent = <&ipic>; | ||
177 | interrupts = <71 8>; | ||
178 | }; | ||
179 | }; | ||
180 | |||
146 | usb@23000 { | 181 | usb@23000 { |
147 | compatible = "fsl-usb2-dr"; | 182 | compatible = "fsl-usb2-dr"; |
148 | reg = <0x23000 0x1000>; | 183 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc8379_mds.dts b/arch/powerpc/boot/dts/mpc8379_mds.dts index 6f78a9fd9826..980be8136276 100644 --- a/arch/powerpc/boot/dts/mpc8379_mds.dts +++ b/arch/powerpc/boot/dts/mpc8379_mds.dts | |||
@@ -157,6 +157,41 @@ | |||
157 | mode = "cpu"; | 157 | mode = "cpu"; |
158 | }; | 158 | }; |
159 | 159 | ||
160 | dma@82a8 { | ||
161 | #address-cells = <1>; | ||
162 | #size-cells = <1>; | ||
163 | compatible = "fsl,mpc8379-dma", "fsl,elo-dma"; | ||
164 | reg = <0x82a8 4>; | ||
165 | ranges = <0 0x8100 0x1a8>; | ||
166 | interrupt-parent = <&ipic>; | ||
167 | interrupts = <71 8>; | ||
168 | cell-index = <0>; | ||
169 | dma-channel@0 { | ||
170 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
171 | reg = <0 0x80>; | ||
172 | interrupt-parent = <&ipic>; | ||
173 | interrupts = <71 8>; | ||
174 | }; | ||
175 | dma-channel@80 { | ||
176 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
177 | reg = <0x80 0x80>; | ||
178 | interrupt-parent = <&ipic>; | ||
179 | interrupts = <71 8>; | ||
180 | }; | ||
181 | dma-channel@100 { | ||
182 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
183 | reg = <0x100 0x80>; | ||
184 | interrupt-parent = <&ipic>; | ||
185 | interrupts = <71 8>; | ||
186 | }; | ||
187 | dma-channel@180 { | ||
188 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
189 | reg = <0x180 0x28>; | ||
190 | interrupt-parent = <&ipic>; | ||
191 | interrupts = <71 8>; | ||
192 | }; | ||
193 | }; | ||
194 | |||
160 | usb@23000 { | 195 | usb@23000 { |
161 | compatible = "fsl-usb2-dr"; | 196 | compatible = "fsl-usb2-dr"; |
162 | reg = <0x23000 0x1000>; | 197 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts index c11ceb7d3299..9d636e39f23f 100644 --- a/arch/powerpc/boot/dts/mpc8379_rdb.dts +++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts | |||
@@ -143,6 +143,41 @@ | |||
143 | mode = "cpu"; | 143 | mode = "cpu"; |
144 | }; | 144 | }; |
145 | 145 | ||
146 | dma@82a8 { | ||
147 | #address-cells = <1>; | ||
148 | #size-cells = <1>; | ||
149 | compatible = "fsl,mpc8379-dma", "fsl,elo-dma"; | ||
150 | reg = <0x82a8 4>; | ||
151 | ranges = <0 0x8100 0x1a8>; | ||
152 | interrupt-parent = <&ipic>; | ||
153 | interrupts = <71 8>; | ||
154 | cell-index = <0>; | ||
155 | dma-channel@0 { | ||
156 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
157 | reg = <0 0x80>; | ||
158 | interrupt-parent = <&ipic>; | ||
159 | interrupts = <71 8>; | ||
160 | }; | ||
161 | dma-channel@80 { | ||
162 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
163 | reg = <0x80 0x80>; | ||
164 | interrupt-parent = <&ipic>; | ||
165 | interrupts = <71 8>; | ||
166 | }; | ||
167 | dma-channel@100 { | ||
168 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
169 | reg = <0x100 0x80>; | ||
170 | interrupt-parent = <&ipic>; | ||
171 | interrupts = <71 8>; | ||
172 | }; | ||
173 | dma-channel@180 { | ||
174 | compatible = "fsl,mpc8379-dma-channel", "fsl,elo-dma-channel"; | ||
175 | reg = <0x180 0x28>; | ||
176 | interrupt-parent = <&ipic>; | ||
177 | interrupts = <71 8>; | ||
178 | }; | ||
179 | }; | ||
180 | |||
146 | usb@23000 { | 181 | usb@23000 { |
147 | compatible = "fsl-usb2-dr"; | 182 | compatible = "fsl-usb2-dr"; |
148 | reg = <0x23000 0x1000>; | 183 | reg = <0x23000 0x1000>; |
diff --git a/arch/powerpc/boot/dts/mpc8540ads.dts b/arch/powerpc/boot/dts/mpc8540ads.dts index 79881a1fb8aa..f2273a872b11 100644 --- a/arch/powerpc/boot/dts/mpc8540ads.dts +++ b/arch/powerpc/boot/dts/mpc8540ads.dts | |||
@@ -84,6 +84,47 @@ | |||
84 | dfsrr; | 84 | dfsrr; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | dma@21300 { | ||
88 | #address-cells = <1>; | ||
89 | #size-cells = <1>; | ||
90 | compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma"; | ||
91 | reg = <0x21300 0x4>; | ||
92 | ranges = <0x0 0x21100 0x200>; | ||
93 | cell-index = <0>; | ||
94 | dma-channel@0 { | ||
95 | compatible = "fsl,mpc8540-dma-channel", | ||
96 | "fsl,eloplus-dma-channel"; | ||
97 | reg = <0x0 0x80>; | ||
98 | cell-index = <0>; | ||
99 | interrupt-parent = <&mpic>; | ||
100 | interrupts = <20 2>; | ||
101 | }; | ||
102 | dma-channel@80 { | ||
103 | compatible = "fsl,mpc8540-dma-channel", | ||
104 | "fsl,eloplus-dma-channel"; | ||
105 | reg = <0x80 0x80>; | ||
106 | cell-index = <1>; | ||
107 | interrupt-parent = <&mpic>; | ||
108 | interrupts = <21 2>; | ||
109 | }; | ||
110 | dma-channel@100 { | ||
111 | compatible = "fsl,mpc8540-dma-channel", | ||
112 | "fsl,eloplus-dma-channel"; | ||
113 | reg = <0x100 0x80>; | ||
114 | cell-index = <2>; | ||
115 | interrupt-parent = <&mpic>; | ||
116 | interrupts = <22 2>; | ||
117 | }; | ||
118 | dma-channel@180 { | ||
119 | compatible = "fsl,mpc8540-dma-channel", | ||
120 | "fsl,eloplus-dma-channel"; | ||
121 | reg = <0x180 0x80>; | ||
122 | cell-index = <3>; | ||
123 | interrupt-parent = <&mpic>; | ||
124 | interrupts = <23 2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
87 | mdio@24520 { | 128 | mdio@24520 { |
88 | #address-cells = <1>; | 129 | #address-cells = <1>; |
89 | #size-cells = <0>; | 130 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts index 66192aa0f311..21ad71b825c1 100644 --- a/arch/powerpc/boot/dts/mpc8541cds.dts +++ b/arch/powerpc/boot/dts/mpc8541cds.dts | |||
@@ -84,6 +84,47 @@ | |||
84 | dfsrr; | 84 | dfsrr; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | dma@21300 { | ||
88 | #address-cells = <1>; | ||
89 | #size-cells = <1>; | ||
90 | compatible = "fsl,mpc8541-dma", "fsl,eloplus-dma"; | ||
91 | reg = <0x21300 0x4>; | ||
92 | ranges = <0x0 0x21100 0x200>; | ||
93 | cell-index = <0>; | ||
94 | dma-channel@0 { | ||
95 | compatible = "fsl,mpc8541-dma-channel", | ||
96 | "fsl,eloplus-dma-channel"; | ||
97 | reg = <0x0 0x80>; | ||
98 | cell-index = <0>; | ||
99 | interrupt-parent = <&mpic>; | ||
100 | interrupts = <20 2>; | ||
101 | }; | ||
102 | dma-channel@80 { | ||
103 | compatible = "fsl,mpc8541-dma-channel", | ||
104 | "fsl,eloplus-dma-channel"; | ||
105 | reg = <0x80 0x80>; | ||
106 | cell-index = <1>; | ||
107 | interrupt-parent = <&mpic>; | ||
108 | interrupts = <21 2>; | ||
109 | }; | ||
110 | dma-channel@100 { | ||
111 | compatible = "fsl,mpc8541-dma-channel", | ||
112 | "fsl,eloplus-dma-channel"; | ||
113 | reg = <0x100 0x80>; | ||
114 | cell-index = <2>; | ||
115 | interrupt-parent = <&mpic>; | ||
116 | interrupts = <22 2>; | ||
117 | }; | ||
118 | dma-channel@180 { | ||
119 | compatible = "fsl,mpc8541-dma-channel", | ||
120 | "fsl,eloplus-dma-channel"; | ||
121 | reg = <0x180 0x80>; | ||
122 | cell-index = <3>; | ||
123 | interrupt-parent = <&mpic>; | ||
124 | interrupts = <23 2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
87 | mdio@24520 { | 128 | mdio@24520 { |
88 | #address-cells = <1>; | 129 | #address-cells = <1>; |
89 | #size-cells = <0>; | 130 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts index 205598d51f25..621388db3c9e 100644 --- a/arch/powerpc/boot/dts/mpc8548cds.dts +++ b/arch/powerpc/boot/dts/mpc8548cds.dts | |||
@@ -100,6 +100,47 @@ | |||
100 | dfsrr; | 100 | dfsrr; |
101 | }; | 101 | }; |
102 | 102 | ||
103 | dma@21300 { | ||
104 | #address-cells = <1>; | ||
105 | #size-cells = <1>; | ||
106 | compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; | ||
107 | reg = <0x21300 0x4>; | ||
108 | ranges = <0x0 0x21100 0x200>; | ||
109 | cell-index = <0>; | ||
110 | dma-channel@0 { | ||
111 | compatible = "fsl,mpc8548-dma-channel", | ||
112 | "fsl,eloplus-dma-channel"; | ||
113 | reg = <0x0 0x80>; | ||
114 | cell-index = <0>; | ||
115 | interrupt-parent = <&mpic>; | ||
116 | interrupts = <20 2>; | ||
117 | }; | ||
118 | dma-channel@80 { | ||
119 | compatible = "fsl,mpc8548-dma-channel", | ||
120 | "fsl,eloplus-dma-channel"; | ||
121 | reg = <0x80 0x80>; | ||
122 | cell-index = <1>; | ||
123 | interrupt-parent = <&mpic>; | ||
124 | interrupts = <21 2>; | ||
125 | }; | ||
126 | dma-channel@100 { | ||
127 | compatible = "fsl,mpc8548-dma-channel", | ||
128 | "fsl,eloplus-dma-channel"; | ||
129 | reg = <0x100 0x80>; | ||
130 | cell-index = <2>; | ||
131 | interrupt-parent = <&mpic>; | ||
132 | interrupts = <22 2>; | ||
133 | }; | ||
134 | dma-channel@180 { | ||
135 | compatible = "fsl,mpc8548-dma-channel", | ||
136 | "fsl,eloplus-dma-channel"; | ||
137 | reg = <0x180 0x80>; | ||
138 | cell-index = <3>; | ||
139 | interrupt-parent = <&mpic>; | ||
140 | interrupts = <23 2>; | ||
141 | }; | ||
142 | }; | ||
143 | |||
103 | mdio@24520 { | 144 | mdio@24520 { |
104 | #address-cells = <1>; | 145 | #address-cells = <1>; |
105 | #size-cells = <0>; | 146 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts index 7c9d0b16d7e5..6fc8059b5a01 100644 --- a/arch/powerpc/boot/dts/mpc8555cds.dts +++ b/arch/powerpc/boot/dts/mpc8555cds.dts | |||
@@ -84,6 +84,47 @@ | |||
84 | dfsrr; | 84 | dfsrr; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | dma@21300 { | ||
88 | #address-cells = <1>; | ||
89 | #size-cells = <1>; | ||
90 | compatible = "fsl,mpc8555-dma", "fsl,eloplus-dma"; | ||
91 | reg = <0x21300 0x4>; | ||
92 | ranges = <0x0 0x21100 0x200>; | ||
93 | cell-index = <0>; | ||
94 | dma-channel@0 { | ||
95 | compatible = "fsl,mpc8555-dma-channel", | ||
96 | "fsl,eloplus-dma-channel"; | ||
97 | reg = <0x0 0x80>; | ||
98 | cell-index = <0>; | ||
99 | interrupt-parent = <&mpic>; | ||
100 | interrupts = <20 2>; | ||
101 | }; | ||
102 | dma-channel@80 { | ||
103 | compatible = "fsl,mpc8555-dma-channel", | ||
104 | "fsl,eloplus-dma-channel"; | ||
105 | reg = <0x80 0x80>; | ||
106 | cell-index = <1>; | ||
107 | interrupt-parent = <&mpic>; | ||
108 | interrupts = <21 2>; | ||
109 | }; | ||
110 | dma-channel@100 { | ||
111 | compatible = "fsl,mpc8555-dma-channel", | ||
112 | "fsl,eloplus-dma-channel"; | ||
113 | reg = <0x100 0x80>; | ||
114 | cell-index = <2>; | ||
115 | interrupt-parent = <&mpic>; | ||
116 | interrupts = <22 2>; | ||
117 | }; | ||
118 | dma-channel@180 { | ||
119 | compatible = "fsl,mpc8555-dma-channel", | ||
120 | "fsl,eloplus-dma-channel"; | ||
121 | reg = <0x180 0x80>; | ||
122 | cell-index = <3>; | ||
123 | interrupt-parent = <&mpic>; | ||
124 | interrupts = <23 2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
87 | mdio@24520 { | 128 | mdio@24520 { |
88 | #address-cells = <1>; | 129 | #address-cells = <1>; |
89 | #size-cells = <0>; | 130 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8560ads.dts b/arch/powerpc/boot/dts/mpc8560ads.dts index 5d9f3c4b5b71..ba8159de040b 100644 --- a/arch/powerpc/boot/dts/mpc8560ads.dts +++ b/arch/powerpc/boot/dts/mpc8560ads.dts | |||
@@ -73,6 +73,47 @@ | |||
73 | interrupts = <16 2>; | 73 | interrupts = <16 2>; |
74 | }; | 74 | }; |
75 | 75 | ||
76 | dma@21300 { | ||
77 | #address-cells = <1>; | ||
78 | #size-cells = <1>; | ||
79 | compatible = "fsl,mpc8560-dma", "fsl,eloplus-dma"; | ||
80 | reg = <0x21300 0x4>; | ||
81 | ranges = <0x0 0x21100 0x200>; | ||
82 | cell-index = <0>; | ||
83 | dma-channel@0 { | ||
84 | compatible = "fsl,mpc8560-dma-channel", | ||
85 | "fsl,eloplus-dma-channel"; | ||
86 | reg = <0x0 0x80>; | ||
87 | cell-index = <0>; | ||
88 | interrupt-parent = <&mpic>; | ||
89 | interrupts = <20 2>; | ||
90 | }; | ||
91 | dma-channel@80 { | ||
92 | compatible = "fsl,mpc8560-dma-channel", | ||
93 | "fsl,eloplus-dma-channel"; | ||
94 | reg = <0x80 0x80>; | ||
95 | cell-index = <1>; | ||
96 | interrupt-parent = <&mpic>; | ||
97 | interrupts = <21 2>; | ||
98 | }; | ||
99 | dma-channel@100 { | ||
100 | compatible = "fsl,mpc8560-dma-channel", | ||
101 | "fsl,eloplus-dma-channel"; | ||
102 | reg = <0x100 0x80>; | ||
103 | cell-index = <2>; | ||
104 | interrupt-parent = <&mpic>; | ||
105 | interrupts = <22 2>; | ||
106 | }; | ||
107 | dma-channel@180 { | ||
108 | compatible = "fsl,mpc8560-dma-channel", | ||
109 | "fsl,eloplus-dma-channel"; | ||
110 | reg = <0x180 0x80>; | ||
111 | cell-index = <3>; | ||
112 | interrupt-parent = <&mpic>; | ||
113 | interrupts = <23 2>; | ||
114 | }; | ||
115 | }; | ||
116 | |||
76 | mdio@24520 { | 117 | mdio@24520 { |
77 | #address-cells = <1>; | 118 | #address-cells = <1>; |
78 | #size-cells = <0>; | 119 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index d7af8db1a22f..be9a289c0d62 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts | |||
@@ -107,6 +107,47 @@ | |||
107 | dfsrr; | 107 | dfsrr; |
108 | }; | 108 | }; |
109 | 109 | ||
110 | dma@21300 { | ||
111 | #address-cells = <1>; | ||
112 | #size-cells = <1>; | ||
113 | compatible = "fsl,mpc8568-dma", "fsl,eloplus-dma"; | ||
114 | reg = <0x21300 0x4>; | ||
115 | ranges = <0x0 0x21100 0x200>; | ||
116 | cell-index = <0>; | ||
117 | dma-channel@0 { | ||
118 | compatible = "fsl,mpc8568-dma-channel", | ||
119 | "fsl,eloplus-dma-channel"; | ||
120 | reg = <0x0 0x80>; | ||
121 | cell-index = <0>; | ||
122 | interrupt-parent = <&mpic>; | ||
123 | interrupts = <20 2>; | ||
124 | }; | ||
125 | dma-channel@80 { | ||
126 | compatible = "fsl,mpc8568-dma-channel", | ||
127 | "fsl,eloplus-dma-channel"; | ||
128 | reg = <0x80 0x80>; | ||
129 | cell-index = <1>; | ||
130 | interrupt-parent = <&mpic>; | ||
131 | interrupts = <21 2>; | ||
132 | }; | ||
133 | dma-channel@100 { | ||
134 | compatible = "fsl,mpc8568-dma-channel", | ||
135 | "fsl,eloplus-dma-channel"; | ||
136 | reg = <0x100 0x80>; | ||
137 | cell-index = <2>; | ||
138 | interrupt-parent = <&mpic>; | ||
139 | interrupts = <22 2>; | ||
140 | }; | ||
141 | dma-channel@180 { | ||
142 | compatible = "fsl,mpc8568-dma-channel", | ||
143 | "fsl,eloplus-dma-channel"; | ||
144 | reg = <0x180 0x80>; | ||
145 | cell-index = <3>; | ||
146 | interrupt-parent = <&mpic>; | ||
147 | interrupts = <23 2>; | ||
148 | }; | ||
149 | }; | ||
150 | |||
110 | mdio@24520 { | 151 | mdio@24520 { |
111 | #address-cells = <1>; | 152 | #address-cells = <1>; |
112 | #size-cells = <0>; | 153 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts index a444e6a2387d..cb06325f0b79 100644 --- a/arch/powerpc/boot/dts/mpc8572ds.dts +++ b/arch/powerpc/boot/dts/mpc8572ds.dts | |||
@@ -117,6 +117,88 @@ | |||
117 | dfsrr; | 117 | dfsrr; |
118 | }; | 118 | }; |
119 | 119 | ||
120 | dma@c300 { | ||
121 | #address-cells = <1>; | ||
122 | #size-cells = <1>; | ||
123 | compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; | ||
124 | reg = <0xc300 0x4>; | ||
125 | ranges = <0x0 0xc100 0x200>; | ||
126 | cell-index = <1>; | ||
127 | dma-channel@0 { | ||
128 | compatible = "fsl,mpc8572-dma-channel", | ||
129 | "fsl,eloplus-dma-channel"; | ||
130 | reg = <0x0 0x80>; | ||
131 | cell-index = <0>; | ||
132 | interrupt-parent = <&mpic>; | ||
133 | interrupts = <76 2>; | ||
134 | }; | ||
135 | dma-channel@80 { | ||
136 | compatible = "fsl,mpc8572-dma-channel", | ||
137 | "fsl,eloplus-dma-channel"; | ||
138 | reg = <0x80 0x80>; | ||
139 | cell-index = <1>; | ||
140 | interrupt-parent = <&mpic>; | ||
141 | interrupts = <77 2>; | ||
142 | }; | ||
143 | dma-channel@100 { | ||
144 | compatible = "fsl,mpc8572-dma-channel", | ||
145 | "fsl,eloplus-dma-channel"; | ||
146 | reg = <0x100 0x80>; | ||
147 | cell-index = <2>; | ||
148 | interrupt-parent = <&mpic>; | ||
149 | interrupts = <78 2>; | ||
150 | }; | ||
151 | dma-channel@180 { | ||
152 | compatible = "fsl,mpc8572-dma-channel", | ||
153 | "fsl,eloplus-dma-channel"; | ||
154 | reg = <0x180 0x80>; | ||
155 | cell-index = <3>; | ||
156 | interrupt-parent = <&mpic>; | ||
157 | interrupts = <79 2>; | ||
158 | }; | ||
159 | }; | ||
160 | |||
161 | dma@21300 { | ||
162 | #address-cells = <1>; | ||
163 | #size-cells = <1>; | ||
164 | compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma"; | ||
165 | reg = <0x21300 0x4>; | ||
166 | ranges = <0x0 0x21100 0x200>; | ||
167 | cell-index = <0>; | ||
168 | dma-channel@0 { | ||
169 | compatible = "fsl,mpc8572-dma-channel", | ||
170 | "fsl,eloplus-dma-channel"; | ||
171 | reg = <0x0 0x80>; | ||
172 | cell-index = <0>; | ||
173 | interrupt-parent = <&mpic>; | ||
174 | interrupts = <20 2>; | ||
175 | }; | ||
176 | dma-channel@80 { | ||
177 | compatible = "fsl,mpc8572-dma-channel", | ||
178 | "fsl,eloplus-dma-channel"; | ||
179 | reg = <0x80 0x80>; | ||
180 | cell-index = <1>; | ||
181 | interrupt-parent = <&mpic>; | ||
182 | interrupts = <21 2>; | ||
183 | }; | ||
184 | dma-channel@100 { | ||
185 | compatible = "fsl,mpc8572-dma-channel", | ||
186 | "fsl,eloplus-dma-channel"; | ||
187 | reg = <0x100 0x80>; | ||
188 | cell-index = <2>; | ||
189 | interrupt-parent = <&mpic>; | ||
190 | interrupts = <22 2>; | ||
191 | }; | ||
192 | dma-channel@180 { | ||
193 | compatible = "fsl,mpc8572-dma-channel", | ||
194 | "fsl,eloplus-dma-channel"; | ||
195 | reg = <0x180 0x80>; | ||
196 | cell-index = <3>; | ||
197 | interrupt-parent = <&mpic>; | ||
198 | interrupts = <23 2>; | ||
199 | }; | ||
200 | }; | ||
201 | |||
120 | mdio@24520 { | 202 | mdio@24520 { |
121 | #address-cells = <1>; | 203 | #address-cells = <1>; |
122 | #size-cells = <0>; | 204 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts index 14f718d5e50b..ae08761ffff1 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts | |||
@@ -134,6 +134,47 @@ | |||
134 | dfsrr; | 134 | dfsrr; |
135 | }; | 135 | }; |
136 | 136 | ||
137 | dma@21300 { | ||
138 | #address-cells = <1>; | ||
139 | #size-cells = <1>; | ||
140 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
141 | reg = <0x21300 0x4>; | ||
142 | ranges = <0x0 0x21100 0x200>; | ||
143 | cell-index = <0>; | ||
144 | dma-channel@0 { | ||
145 | compatible = "fsl,mpc8641-dma-channel", | ||
146 | "fsl,eloplus-dma-channel"; | ||
147 | reg = <0x0 0x80>; | ||
148 | cell-index = <0>; | ||
149 | interrupt-parent = <&mpic>; | ||
150 | interrupts = <20 2>; | ||
151 | }; | ||
152 | dma-channel@80 { | ||
153 | compatible = "fsl,mpc8641-dma-channel", | ||
154 | "fsl,eloplus-dma-channel"; | ||
155 | reg = <0x80 0x80>; | ||
156 | cell-index = <1>; | ||
157 | interrupt-parent = <&mpic>; | ||
158 | interrupts = <21 2>; | ||
159 | }; | ||
160 | dma-channel@100 { | ||
161 | compatible = "fsl,mpc8641-dma-channel", | ||
162 | "fsl,eloplus-dma-channel"; | ||
163 | reg = <0x100 0x80>; | ||
164 | cell-index = <2>; | ||
165 | interrupt-parent = <&mpic>; | ||
166 | interrupts = <22 2>; | ||
167 | }; | ||
168 | dma-channel@180 { | ||
169 | compatible = "fsl,mpc8641-dma-channel", | ||
170 | "fsl,eloplus-dma-channel"; | ||
171 | reg = <0x180 0x80>; | ||
172 | cell-index = <3>; | ||
173 | interrupt-parent = <&mpic>; | ||
174 | interrupts = <23 2>; | ||
175 | }; | ||
176 | }; | ||
177 | |||
137 | mdio@24520 { | 178 | mdio@24520 { |
138 | #address-cells = <1>; | 179 | #address-cells = <1>; |
139 | #size-cells = <0>; | 180 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/sbc8349.dts b/arch/powerpc/boot/dts/sbc8349.dts index 3839d4b7d6a7..5b76bb26085a 100644 --- a/arch/powerpc/boot/dts/sbc8349.dts +++ b/arch/powerpc/boot/dts/sbc8349.dts | |||
@@ -95,6 +95,41 @@ | |||
95 | mode = "cpu"; | 95 | mode = "cpu"; |
96 | }; | 96 | }; |
97 | 97 | ||
98 | dma@82a8 { | ||
99 | #address-cells = <1>; | ||
100 | #size-cells = <1>; | ||
101 | compatible = "fsl,mpc8349-dma", "fsl,elo-dma"; | ||
102 | reg = <0x82a8 4>; | ||
103 | ranges = <0 0x8100 0x1a8>; | ||
104 | interrupt-parent = <&ipic>; | ||
105 | interrupts = <71 8>; | ||
106 | cell-index = <0>; | ||
107 | dma-channel@0 { | ||
108 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
109 | reg = <0 0x80>; | ||
110 | interrupt-parent = <&ipic>; | ||
111 | interrupts = <71 8>; | ||
112 | }; | ||
113 | dma-channel@80 { | ||
114 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
115 | reg = <0x80 0x80>; | ||
116 | interrupt-parent = <&ipic>; | ||
117 | interrupts = <71 8>; | ||
118 | }; | ||
119 | dma-channel@100 { | ||
120 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
121 | reg = <0x100 0x80>; | ||
122 | interrupt-parent = <&ipic>; | ||
123 | interrupts = <71 8>; | ||
124 | }; | ||
125 | dma-channel@180 { | ||
126 | compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel"; | ||
127 | reg = <0x180 0x28>; | ||
128 | interrupt-parent = <&ipic>; | ||
129 | interrupts = <71 8>; | ||
130 | }; | ||
131 | }; | ||
132 | |||
98 | /* phy type (ULPI or SERIAL) are only types supported for MPH */ | 133 | /* phy type (ULPI or SERIAL) are only types supported for MPH */ |
99 | /* port = 0 or 1 */ | 134 | /* port = 0 or 1 */ |
100 | usb@22000 { | 135 | usb@22000 { |
diff --git a/arch/powerpc/boot/dts/sbc8548.dts b/arch/powerpc/boot/dts/sbc8548.dts index d252e38283e7..21cbacb1000c 100644 --- a/arch/powerpc/boot/dts/sbc8548.dts +++ b/arch/powerpc/boot/dts/sbc8548.dts | |||
@@ -193,6 +193,47 @@ | |||
193 | dfsrr; | 193 | dfsrr; |
194 | }; | 194 | }; |
195 | 195 | ||
196 | dma@21300 { | ||
197 | #address-cells = <1>; | ||
198 | #size-cells = <1>; | ||
199 | compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; | ||
200 | reg = <0x21300 0x4>; | ||
201 | ranges = <0x0 0x21100 0x200>; | ||
202 | cell-index = <0>; | ||
203 | dma-channel@0 { | ||
204 | compatible = "fsl,mpc8548-dma-channel", | ||
205 | "fsl,eloplus-dma-channel"; | ||
206 | reg = <0x0 0x80>; | ||
207 | cell-index = <0>; | ||
208 | interrupt-parent = <&mpic>; | ||
209 | interrupts = <20 2>; | ||
210 | }; | ||
211 | dma-channel@80 { | ||
212 | compatible = "fsl,mpc8548-dma-channel", | ||
213 | "fsl,eloplus-dma-channel"; | ||
214 | reg = <0x80 0x80>; | ||
215 | cell-index = <1>; | ||
216 | interrupt-parent = <&mpic>; | ||
217 | interrupts = <21 2>; | ||
218 | }; | ||
219 | dma-channel@100 { | ||
220 | compatible = "fsl,mpc8548-dma-channel", | ||
221 | "fsl,eloplus-dma-channel"; | ||
222 | reg = <0x100 0x80>; | ||
223 | cell-index = <2>; | ||
224 | interrupt-parent = <&mpic>; | ||
225 | interrupts = <22 2>; | ||
226 | }; | ||
227 | dma-channel@180 { | ||
228 | compatible = "fsl,mpc8548-dma-channel", | ||
229 | "fsl,eloplus-dma-channel"; | ||
230 | reg = <0x180 0x80>; | ||
231 | cell-index = <3>; | ||
232 | interrupt-parent = <&mpic>; | ||
233 | interrupts = <23 2>; | ||
234 | }; | ||
235 | }; | ||
236 | |||
196 | mdio@24520 { | 237 | mdio@24520 { |
197 | #address-cells = <1>; | 238 | #address-cells = <1>; |
198 | #size-cells = <0>; | 239 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/sbc8560.dts b/arch/powerpc/boot/dts/sbc8560.dts index e556c5a4cf95..db3632ef9888 100644 --- a/arch/powerpc/boot/dts/sbc8560.dts +++ b/arch/powerpc/boot/dts/sbc8560.dts | |||
@@ -98,6 +98,47 @@ | |||
98 | dfsrr; | 98 | dfsrr; |
99 | }; | 99 | }; |
100 | 100 | ||
101 | dma@21300 { | ||
102 | #address-cells = <1>; | ||
103 | #size-cells = <1>; | ||
104 | compatible = "fsl,mpc8560-dma", "fsl,eloplus-dma"; | ||
105 | reg = <0x21300 0x4>; | ||
106 | ranges = <0x0 0x21100 0x200>; | ||
107 | cell-index = <0>; | ||
108 | dma-channel@0 { | ||
109 | compatible = "fsl,mpc8560-dma-channel", | ||
110 | "fsl,eloplus-dma-channel"; | ||
111 | reg = <0x0 0x80>; | ||
112 | cell-index = <0>; | ||
113 | interrupt-parent = <&mpic>; | ||
114 | interrupts = <20 2>; | ||
115 | }; | ||
116 | dma-channel@80 { | ||
117 | compatible = "fsl,mpc8560-dma-channel", | ||
118 | "fsl,eloplus-dma-channel"; | ||
119 | reg = <0x80 0x80>; | ||
120 | cell-index = <1>; | ||
121 | interrupt-parent = <&mpic>; | ||
122 | interrupts = <21 2>; | ||
123 | }; | ||
124 | dma-channel@100 { | ||
125 | compatible = "fsl,mpc8560-dma-channel", | ||
126 | "fsl,eloplus-dma-channel"; | ||
127 | reg = <0x100 0x80>; | ||
128 | cell-index = <2>; | ||
129 | interrupt-parent = <&mpic>; | ||
130 | interrupts = <22 2>; | ||
131 | }; | ||
132 | dma-channel@180 { | ||
133 | compatible = "fsl,mpc8560-dma-channel", | ||
134 | "fsl,eloplus-dma-channel"; | ||
135 | reg = <0x180 0x80>; | ||
136 | cell-index = <3>; | ||
137 | interrupt-parent = <&mpic>; | ||
138 | interrupts = <23 2>; | ||
139 | }; | ||
140 | }; | ||
141 | |||
101 | mdio@24520 { | 142 | mdio@24520 { |
102 | #address-cells = <1>; | 143 | #address-cells = <1>; |
103 | #size-cells = <0>; | 144 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/sbc8641d.dts b/arch/powerpc/boot/dts/sbc8641d.dts index 3eebeec157b3..9652456158fb 100644 --- a/arch/powerpc/boot/dts/sbc8641d.dts +++ b/arch/powerpc/boot/dts/sbc8641d.dts | |||
@@ -151,6 +151,47 @@ | |||
151 | dfsrr; | 151 | dfsrr; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | dma@21300 { | ||
155 | #address-cells = <1>; | ||
156 | #size-cells = <1>; | ||
157 | compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma"; | ||
158 | reg = <0x21300 0x4>; | ||
159 | ranges = <0x0 0x21100 0x200>; | ||
160 | cell-index = <0>; | ||
161 | dma-channel@0 { | ||
162 | compatible = "fsl,mpc8641-dma-channel", | ||
163 | "fsl,eloplus-dma-channel"; | ||
164 | reg = <0x0 0x80>; | ||
165 | cell-index = <0>; | ||
166 | interrupt-parent = <&mpic>; | ||
167 | interrupts = <20 2>; | ||
168 | }; | ||
169 | dma-channel@80 { | ||
170 | compatible = "fsl,mpc8641-dma-channel", | ||
171 | "fsl,eloplus-dma-channel"; | ||
172 | reg = <0x80 0x80>; | ||
173 | cell-index = <1>; | ||
174 | interrupt-parent = <&mpic>; | ||
175 | interrupts = <21 2>; | ||
176 | }; | ||
177 | dma-channel@100 { | ||
178 | compatible = "fsl,mpc8641-dma-channel", | ||
179 | "fsl,eloplus-dma-channel"; | ||
180 | reg = <0x100 0x80>; | ||
181 | cell-index = <2>; | ||
182 | interrupt-parent = <&mpic>; | ||
183 | interrupts = <22 2>; | ||
184 | }; | ||
185 | dma-channel@180 { | ||
186 | compatible = "fsl,mpc8641-dma-channel", | ||
187 | "fsl,eloplus-dma-channel"; | ||
188 | reg = <0x180 0x80>; | ||
189 | cell-index = <3>; | ||
190 | interrupt-parent = <&mpic>; | ||
191 | interrupts = <23 2>; | ||
192 | }; | ||
193 | }; | ||
194 | |||
154 | mdio@24520 { | 195 | mdio@24520 { |
155 | #address-cells = <1>; | 196 | #address-cells = <1>; |
156 | #size-cells = <0>; | 197 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/stx_gp3_8560.dts b/arch/powerpc/boot/dts/stx_gp3_8560.dts index 1e612836b248..fcd1db6ca0a8 100644 --- a/arch/powerpc/boot/dts/stx_gp3_8560.dts +++ b/arch/powerpc/boot/dts/stx_gp3_8560.dts | |||
@@ -83,6 +83,47 @@ | |||
83 | dfsrr; | 83 | dfsrr; |
84 | }; | 84 | }; |
85 | 85 | ||
86 | dma@21300 { | ||
87 | #address-cells = <1>; | ||
88 | #size-cells = <1>; | ||
89 | compatible = "fsl,mpc8560-dma", "fsl,eloplus-dma"; | ||
90 | reg = <0x21300 0x4>; | ||
91 | ranges = <0x0 0x21100 0x200>; | ||
92 | cell-index = <0>; | ||
93 | dma-channel@0 { | ||
94 | compatible = "fsl,mpc8560-dma-channel", | ||
95 | "fsl,eloplus-dma-channel"; | ||
96 | reg = <0x0 0x80>; | ||
97 | cell-index = <0>; | ||
98 | interrupt-parent = <&mpic>; | ||
99 | interrupts = <20 2>; | ||
100 | }; | ||
101 | dma-channel@80 { | ||
102 | compatible = "fsl,mpc8560-dma-channel", | ||
103 | "fsl,eloplus-dma-channel"; | ||
104 | reg = <0x80 0x80>; | ||
105 | cell-index = <1>; | ||
106 | interrupt-parent = <&mpic>; | ||
107 | interrupts = <21 2>; | ||
108 | }; | ||
109 | dma-channel@100 { | ||
110 | compatible = "fsl,mpc8560-dma-channel", | ||
111 | "fsl,eloplus-dma-channel"; | ||
112 | reg = <0x100 0x80>; | ||
113 | cell-index = <2>; | ||
114 | interrupt-parent = <&mpic>; | ||
115 | interrupts = <22 2>; | ||
116 | }; | ||
117 | dma-channel@180 { | ||
118 | compatible = "fsl,mpc8560-dma-channel", | ||
119 | "fsl,eloplus-dma-channel"; | ||
120 | reg = <0x180 0x80>; | ||
121 | cell-index = <3>; | ||
122 | interrupt-parent = <&mpic>; | ||
123 | interrupts = <23 2>; | ||
124 | }; | ||
125 | }; | ||
126 | |||
86 | mdio@24520 { | 127 | mdio@24520 { |
87 | #address-cells = <1>; | 128 | #address-cells = <1>; |
88 | #size-cells = <0>; | 129 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/tqm8540.dts b/arch/powerpc/boot/dts/tqm8540.dts index 7b653a583a2d..e1d260b9085e 100644 --- a/arch/powerpc/boot/dts/tqm8540.dts +++ b/arch/powerpc/boot/dts/tqm8540.dts | |||
@@ -12,8 +12,8 @@ | |||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | 13 | ||
14 | / { | 14 | / { |
15 | model = "tqm,8540"; | 15 | model = "tqc,tqm8540"; |
16 | compatible = "tqm,8540", "tqm,85xx"; | 16 | compatible = "tqc,tqm8540"; |
17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
19 | 19 | ||
@@ -90,6 +90,47 @@ | |||
90 | }; | 90 | }; |
91 | }; | 91 | }; |
92 | 92 | ||
93 | dma@21300 { | ||
94 | #address-cells = <1>; | ||
95 | #size-cells = <1>; | ||
96 | compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma"; | ||
97 | reg = <0x21300 0x4>; | ||
98 | ranges = <0x0 0x21100 0x200>; | ||
99 | cell-index = <0>; | ||
100 | dma-channel@0 { | ||
101 | compatible = "fsl,mpc8540-dma-channel", | ||
102 | "fsl,eloplus-dma-channel"; | ||
103 | reg = <0x0 0x80>; | ||
104 | cell-index = <0>; | ||
105 | interrupt-parent = <&mpic>; | ||
106 | interrupts = <20 2>; | ||
107 | }; | ||
108 | dma-channel@80 { | ||
109 | compatible = "fsl,mpc8540-dma-channel", | ||
110 | "fsl,eloplus-dma-channel"; | ||
111 | reg = <0x80 0x80>; | ||
112 | cell-index = <1>; | ||
113 | interrupt-parent = <&mpic>; | ||
114 | interrupts = <21 2>; | ||
115 | }; | ||
116 | dma-channel@100 { | ||
117 | compatible = "fsl,mpc8540-dma-channel", | ||
118 | "fsl,eloplus-dma-channel"; | ||
119 | reg = <0x100 0x80>; | ||
120 | cell-index = <2>; | ||
121 | interrupt-parent = <&mpic>; | ||
122 | interrupts = <22 2>; | ||
123 | }; | ||
124 | dma-channel@180 { | ||
125 | compatible = "fsl,mpc8540-dma-channel", | ||
126 | "fsl,eloplus-dma-channel"; | ||
127 | reg = <0x180 0x80>; | ||
128 | cell-index = <3>; | ||
129 | interrupt-parent = <&mpic>; | ||
130 | interrupts = <23 2>; | ||
131 | }; | ||
132 | }; | ||
133 | |||
93 | mdio@24520 { | 134 | mdio@24520 { |
94 | #address-cells = <1>; | 135 | #address-cells = <1>; |
95 | #size-cells = <0>; | 136 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/tqm8541.dts b/arch/powerpc/boot/dts/tqm8541.dts index 8fe73ef34195..d083a648a81d 100644 --- a/arch/powerpc/boot/dts/tqm8541.dts +++ b/arch/powerpc/boot/dts/tqm8541.dts | |||
@@ -12,8 +12,8 @@ | |||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | 13 | ||
14 | / { | 14 | / { |
15 | model = "tqm,8541"; | 15 | model = "tqc,tqm8541"; |
16 | compatible = "tqm,8541", "tqm,85xx"; | 16 | compatible = "tqc,tqm8541"; |
17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
19 | 19 | ||
@@ -89,6 +89,47 @@ | |||
89 | }; | 89 | }; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | dma@21300 { | ||
93 | #address-cells = <1>; | ||
94 | #size-cells = <1>; | ||
95 | compatible = "fsl,mpc8541-dma", "fsl,eloplus-dma"; | ||
96 | reg = <0x21300 0x4>; | ||
97 | ranges = <0x0 0x21100 0x200>; | ||
98 | cell-index = <0>; | ||
99 | dma-channel@0 { | ||
100 | compatible = "fsl,mpc8541-dma-channel", | ||
101 | "fsl,eloplus-dma-channel"; | ||
102 | reg = <0x0 0x80>; | ||
103 | cell-index = <0>; | ||
104 | interrupt-parent = <&mpic>; | ||
105 | interrupts = <20 2>; | ||
106 | }; | ||
107 | dma-channel@80 { | ||
108 | compatible = "fsl,mpc8541-dma-channel", | ||
109 | "fsl,eloplus-dma-channel"; | ||
110 | reg = <0x80 0x80>; | ||
111 | cell-index = <1>; | ||
112 | interrupt-parent = <&mpic>; | ||
113 | interrupts = <21 2>; | ||
114 | }; | ||
115 | dma-channel@100 { | ||
116 | compatible = "fsl,mpc8541-dma-channel", | ||
117 | "fsl,eloplus-dma-channel"; | ||
118 | reg = <0x100 0x80>; | ||
119 | cell-index = <2>; | ||
120 | interrupt-parent = <&mpic>; | ||
121 | interrupts = <22 2>; | ||
122 | }; | ||
123 | dma-channel@180 { | ||
124 | compatible = "fsl,mpc8541-dma-channel", | ||
125 | "fsl,eloplus-dma-channel"; | ||
126 | reg = <0x180 0x80>; | ||
127 | cell-index = <3>; | ||
128 | interrupt-parent = <&mpic>; | ||
129 | interrupts = <23 2>; | ||
130 | }; | ||
131 | }; | ||
132 | |||
92 | mdio@24520 { | 133 | mdio@24520 { |
93 | #address-cells = <1>; | 134 | #address-cells = <1>; |
94 | #size-cells = <0>; | 135 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/tqm8548-bigflash.dts b/arch/powerpc/boot/dts/tqm8548-bigflash.dts new file mode 100644 index 000000000000..64d2d5bbcdf1 --- /dev/null +++ b/arch/powerpc/boot/dts/tqm8548-bigflash.dts | |||
@@ -0,0 +1,406 @@ | |||
1 | /* | ||
2 | * TQM8548 Device Tree Source | ||
3 | * | ||
4 | * Copyright 2006 Freescale Semiconductor Inc. | ||
5 | * Copyright 2008 Wolfgang Grandegger <wg@denx.de> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | |||
15 | / { | ||
16 | model = "tqc,tqm8548"; | ||
17 | compatible = "tqc,tqm8548"; | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <1>; | ||
20 | |||
21 | aliases { | ||
22 | ethernet0 = &enet0; | ||
23 | ethernet1 = &enet1; | ||
24 | ethernet2 = &enet2; | ||
25 | ethernet3 = &enet3; | ||
26 | |||
27 | serial0 = &serial0; | ||
28 | serial1 = &serial1; | ||
29 | pci0 = &pci0; | ||
30 | pci1 = &pci1; | ||
31 | }; | ||
32 | |||
33 | cpus { | ||
34 | #address-cells = <1>; | ||
35 | #size-cells = <0>; | ||
36 | |||
37 | PowerPC,8548@0 { | ||
38 | device_type = "cpu"; | ||
39 | reg = <0>; | ||
40 | d-cache-line-size = <32>; // 32 bytes | ||
41 | i-cache-line-size = <32>; // 32 bytes | ||
42 | d-cache-size = <0x8000>; // L1, 32K | ||
43 | i-cache-size = <0x8000>; // L1, 32K | ||
44 | next-level-cache = <&L2>; | ||
45 | }; | ||
46 | }; | ||
47 | |||
48 | memory { | ||
49 | device_type = "memory"; | ||
50 | reg = <0x00000000 0x00000000>; // Filled in by U-Boot | ||
51 | }; | ||
52 | |||
53 | soc8548@a0000000 { | ||
54 | #address-cells = <1>; | ||
55 | #size-cells = <1>; | ||
56 | device_type = "soc"; | ||
57 | ranges = <0x0 0xa0000000 0x100000>; | ||
58 | reg = <0xa0000000 0x1000>; // CCSRBAR | ||
59 | bus-frequency = <0>; | ||
60 | |||
61 | memory-controller@2000 { | ||
62 | compatible = "fsl,mpc8548-memory-controller"; | ||
63 | reg = <0x2000 0x1000>; | ||
64 | interrupt-parent = <&mpic>; | ||
65 | interrupts = <18 2>; | ||
66 | }; | ||
67 | |||
68 | L2: l2-cache-controller@20000 { | ||
69 | compatible = "fsl,mpc8548-l2-cache-controller"; | ||
70 | reg = <0x20000 0x1000>; | ||
71 | cache-line-size = <32>; // 32 bytes | ||
72 | cache-size = <0x80000>; // L2, 512K | ||
73 | interrupt-parent = <&mpic>; | ||
74 | interrupts = <16 2>; | ||
75 | }; | ||
76 | |||
77 | i2c@3000 { | ||
78 | #address-cells = <1>; | ||
79 | #size-cells = <0>; | ||
80 | cell-index = <0>; | ||
81 | compatible = "fsl-i2c"; | ||
82 | reg = <0x3000 0x100>; | ||
83 | interrupts = <43 2>; | ||
84 | interrupt-parent = <&mpic>; | ||
85 | dfsrr; | ||
86 | }; | ||
87 | |||
88 | i2c@3100 { | ||
89 | #address-cells = <1>; | ||
90 | #size-cells = <0>; | ||
91 | cell-index = <1>; | ||
92 | compatible = "fsl-i2c"; | ||
93 | reg = <0x3100 0x100>; | ||
94 | interrupts = <43 2>; | ||
95 | interrupt-parent = <&mpic>; | ||
96 | dfsrr; | ||
97 | }; | ||
98 | |||
99 | dma@21300 { | ||
100 | #address-cells = <1>; | ||
101 | #size-cells = <1>; | ||
102 | compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; | ||
103 | reg = <0x21300 0x4>; | ||
104 | ranges = <0x0 0x21100 0x200>; | ||
105 | cell-index = <0>; | ||
106 | dma-channel@0 { | ||
107 | compatible = "fsl,mpc8548-dma-channel", | ||
108 | "fsl,eloplus-dma-channel"; | ||
109 | reg = <0x0 0x80>; | ||
110 | cell-index = <0>; | ||
111 | interrupt-parent = <&mpic>; | ||
112 | interrupts = <20 2>; | ||
113 | }; | ||
114 | dma-channel@80 { | ||
115 | compatible = "fsl,mpc8548-dma-channel", | ||
116 | "fsl,eloplus-dma-channel"; | ||
117 | reg = <0x80 0x80>; | ||
118 | cell-index = <1>; | ||
119 | interrupt-parent = <&mpic>; | ||
120 | interrupts = <21 2>; | ||
121 | }; | ||
122 | dma-channel@100 { | ||
123 | compatible = "fsl,mpc8548-dma-channel", | ||
124 | "fsl,eloplus-dma-channel"; | ||
125 | reg = <0x100 0x80>; | ||
126 | cell-index = <2>; | ||
127 | interrupt-parent = <&mpic>; | ||
128 | interrupts = <22 2>; | ||
129 | }; | ||
130 | dma-channel@180 { | ||
131 | compatible = "fsl,mpc8548-dma-channel", | ||
132 | "fsl,eloplus-dma-channel"; | ||
133 | reg = <0x180 0x80>; | ||
134 | cell-index = <3>; | ||
135 | interrupt-parent = <&mpic>; | ||
136 | interrupts = <23 2>; | ||
137 | }; | ||
138 | }; | ||
139 | |||
140 | mdio@24520 { | ||
141 | #address-cells = <1>; | ||
142 | #size-cells = <0>; | ||
143 | compatible = "fsl,gianfar-mdio"; | ||
144 | reg = <0x24520 0x20>; | ||
145 | |||
146 | phy1: ethernet-phy@0 { | ||
147 | interrupt-parent = <&mpic>; | ||
148 | interrupts = <8 1>; | ||
149 | reg = <1>; | ||
150 | device_type = "ethernet-phy"; | ||
151 | }; | ||
152 | phy2: ethernet-phy@1 { | ||
153 | interrupt-parent = <&mpic>; | ||
154 | interrupts = <8 1>; | ||
155 | reg = <2>; | ||
156 | device_type = "ethernet-phy"; | ||
157 | }; | ||
158 | phy3: ethernet-phy@3 { | ||
159 | interrupt-parent = <&mpic>; | ||
160 | interrupts = <8 1>; | ||
161 | reg = <3>; | ||
162 | device_type = "ethernet-phy"; | ||
163 | }; | ||
164 | phy4: ethernet-phy@4 { | ||
165 | interrupt-parent = <&mpic>; | ||
166 | interrupts = <8 1>; | ||
167 | reg = <4>; | ||
168 | device_type = "ethernet-phy"; | ||
169 | }; | ||
170 | phy5: ethernet-phy@5 { | ||
171 | interrupt-parent = <&mpic>; | ||
172 | interrupts = <8 1>; | ||
173 | reg = <5>; | ||
174 | device_type = "ethernet-phy"; | ||
175 | }; | ||
176 | }; | ||
177 | |||
178 | enet0: ethernet@24000 { | ||
179 | cell-index = <0>; | ||
180 | device_type = "network"; | ||
181 | model = "eTSEC"; | ||
182 | compatible = "gianfar"; | ||
183 | reg = <0x24000 0x1000>; | ||
184 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
185 | interrupts = <29 2 30 2 34 2>; | ||
186 | interrupt-parent = <&mpic>; | ||
187 | phy-handle = <&phy2>; | ||
188 | }; | ||
189 | |||
190 | enet1: ethernet@25000 { | ||
191 | cell-index = <1>; | ||
192 | device_type = "network"; | ||
193 | model = "eTSEC"; | ||
194 | compatible = "gianfar"; | ||
195 | reg = <0x25000 0x1000>; | ||
196 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
197 | interrupts = <35 2 36 2 40 2>; | ||
198 | interrupt-parent = <&mpic>; | ||
199 | phy-handle = <&phy1>; | ||
200 | }; | ||
201 | |||
202 | enet2: ethernet@26000 { | ||
203 | cell-index = <2>; | ||
204 | device_type = "network"; | ||
205 | model = "eTSEC"; | ||
206 | compatible = "gianfar"; | ||
207 | reg = <0x26000 0x1000>; | ||
208 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
209 | interrupts = <31 2 32 2 33 2>; | ||
210 | interrupt-parent = <&mpic>; | ||
211 | phy-handle = <&phy3>; | ||
212 | }; | ||
213 | |||
214 | enet3: ethernet@27000 { | ||
215 | cell-index = <3>; | ||
216 | device_type = "network"; | ||
217 | model = "eTSEC"; | ||
218 | compatible = "gianfar"; | ||
219 | reg = <0x27000 0x1000>; | ||
220 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
221 | interrupts = <37 2 38 2 39 2>; | ||
222 | interrupt-parent = <&mpic>; | ||
223 | phy-handle = <&phy4>; | ||
224 | }; | ||
225 | |||
226 | serial0: serial@4500 { | ||
227 | cell-index = <0>; | ||
228 | device_type = "serial"; | ||
229 | compatible = "ns16550"; | ||
230 | reg = <0x4500 0x100>; // reg base, size | ||
231 | clock-frequency = <0>; // should we fill in in uboot? | ||
232 | current-speed = <115200>; | ||
233 | interrupts = <42 2>; | ||
234 | interrupt-parent = <&mpic>; | ||
235 | }; | ||
236 | |||
237 | serial1: serial@4600 { | ||
238 | cell-index = <1>; | ||
239 | device_type = "serial"; | ||
240 | compatible = "ns16550"; | ||
241 | reg = <0x4600 0x100>; // reg base, size | ||
242 | clock-frequency = <0>; // should we fill in in uboot? | ||
243 | current-speed = <115200>; | ||
244 | interrupts = <42 2>; | ||
245 | interrupt-parent = <&mpic>; | ||
246 | }; | ||
247 | |||
248 | global-utilities@e0000 { // global utilities reg | ||
249 | compatible = "fsl,mpc8548-guts"; | ||
250 | reg = <0xe0000 0x1000>; | ||
251 | fsl,has-rstcr; | ||
252 | }; | ||
253 | |||
254 | mpic: pic@40000 { | ||
255 | interrupt-controller; | ||
256 | #address-cells = <0>; | ||
257 | #interrupt-cells = <2>; | ||
258 | reg = <0x40000 0x40000>; | ||
259 | compatible = "chrp,open-pic"; | ||
260 | device_type = "open-pic"; | ||
261 | }; | ||
262 | }; | ||
263 | |||
264 | localbus@a0005000 { | ||
265 | compatible = "fsl,mpc8548-localbus", "fsl,pq3-localbus", | ||
266 | "simple-bus"; | ||
267 | #address-cells = <2>; | ||
268 | #size-cells = <1>; | ||
269 | reg = <0xa0005000 0x100>; // BRx, ORx, etc. | ||
270 | |||
271 | ranges = < | ||
272 | 0 0x0 0xfc000000 0x04000000 // NOR FLASH bank 1 | ||
273 | 1 0x0 0xf8000000 0x08000000 // NOR FLASH bank 0 | ||
274 | 2 0x0 0xa3000000 0x00008000 // CAN (2 x i82527) | ||
275 | 3 0x0 0xa3010000 0x00008000 // NAND FLASH | ||
276 | |||
277 | >; | ||
278 | |||
279 | flash@1,0 { | ||
280 | #address-cells = <1>; | ||
281 | #size-cells = <1>; | ||
282 | compatible = "cfi-flash"; | ||
283 | reg = <1 0x0 0x8000000>; | ||
284 | bank-width = <4>; | ||
285 | device-width = <1>; | ||
286 | |||
287 | partition@0 { | ||
288 | label = "kernel"; | ||
289 | reg = <0x00000000 0x00200000>; | ||
290 | }; | ||
291 | partition@200000 { | ||
292 | label = "root"; | ||
293 | reg = <0x00200000 0x00300000>; | ||
294 | }; | ||
295 | partition@500000 { | ||
296 | label = "user"; | ||
297 | reg = <0x00500000 0x07a00000>; | ||
298 | }; | ||
299 | partition@7f00000 { | ||
300 | label = "env1"; | ||
301 | reg = <0x07f00000 0x00040000>; | ||
302 | }; | ||
303 | partition@7f40000 { | ||
304 | label = "env2"; | ||
305 | reg = <0x07f40000 0x00040000>; | ||
306 | }; | ||
307 | partition@7f80000 { | ||
308 | label = "u-boot"; | ||
309 | reg = <0x07f80000 0x00080000>; | ||
310 | read-only; | ||
311 | }; | ||
312 | }; | ||
313 | |||
314 | /* Note: CAN support needs be enabled in U-Boot */ | ||
315 | can0@2,0 { | ||
316 | compatible = "intel,82527"; // Bosch CC770 | ||
317 | reg = <2 0x0 0x100>; | ||
318 | interrupts = <4 0>; | ||
319 | interrupt-parent = <&mpic>; | ||
320 | }; | ||
321 | |||
322 | can1@2,100 { | ||
323 | compatible = "intel,82527"; // Bosch CC770 | ||
324 | reg = <2 0x100 0x100>; | ||
325 | interrupts = <4 0>; | ||
326 | interrupt-parent = <&mpic>; | ||
327 | }; | ||
328 | |||
329 | /* Note: NAND support needs to be enabled in U-Boot */ | ||
330 | upm@3,0 { | ||
331 | #address-cells = <0>; | ||
332 | #size-cells = <0>; | ||
333 | compatible = "fsl,upm-nand"; | ||
334 | reg = <3 0x0 0x800>; | ||
335 | fsl,upm-addr-offset = <0x10>; | ||
336 | fsl,upm-cmd-offset = <0x08>; | ||
337 | chip-delay = <25>; // in micro-seconds | ||
338 | |||
339 | nand@0 { | ||
340 | #address-cells = <1>; | ||
341 | #size-cells = <1>; | ||
342 | |||
343 | partition@0 { | ||
344 | label = "fs"; | ||
345 | reg = <0x00000000 0x01000000>; | ||
346 | }; | ||
347 | }; | ||
348 | }; | ||
349 | }; | ||
350 | |||
351 | pci0: pci@a0008000 { | ||
352 | cell-index = <0>; | ||
353 | #interrupt-cells = <1>; | ||
354 | #size-cells = <2>; | ||
355 | #address-cells = <3>; | ||
356 | compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; | ||
357 | device_type = "pci"; | ||
358 | reg = <0xa0008000 0x1000>; | ||
359 | clock-frequency = <33333333>; | ||
360 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
361 | interrupt-map = < | ||
362 | /* IDSEL 28 */ | ||
363 | 0xe000 0 0 1 &mpic 2 1 | ||
364 | 0xe000 0 0 2 &mpic 3 1>; | ||
365 | |||
366 | interrupt-parent = <&mpic>; | ||
367 | interrupts = <24 2>; | ||
368 | bus-range = <0 0>; | ||
369 | ranges = <0x02000000 0 0x80000000 0x80000000 0 0x20000000 | ||
370 | 0x01000000 0 0x00000000 0xa2000000 0 0x01000000>; | ||
371 | }; | ||
372 | |||
373 | pci1: pcie@a000a000 { | ||
374 | cell-index = <2>; | ||
375 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
376 | interrupt-map = < | ||
377 | /* IDSEL 0x0 (PEX) */ | ||
378 | 0x00000 0 0 1 &mpic 0 1 | ||
379 | 0x00000 0 0 2 &mpic 1 1 | ||
380 | 0x00000 0 0 3 &mpic 2 1 | ||
381 | 0x00000 0 0 4 &mpic 3 1>; | ||
382 | |||
383 | interrupt-parent = <&mpic>; | ||
384 | interrupts = <26 2>; | ||
385 | bus-range = <0 0xff>; | ||
386 | ranges = <0x02000000 0 0xb0000000 0xb0000000 0 0x10000000 | ||
387 | 0x01000000 0 0x00000000 0xaf000000 0 0x08000000>; | ||
388 | clock-frequency = <33333333>; | ||
389 | #interrupt-cells = <1>; | ||
390 | #size-cells = <2>; | ||
391 | #address-cells = <3>; | ||
392 | reg = <0xa000a000 0x1000>; | ||
393 | compatible = "fsl,mpc8548-pcie"; | ||
394 | device_type = "pci"; | ||
395 | pcie@0 { | ||
396 | reg = <0 0 0 0 0>; | ||
397 | #size-cells = <2>; | ||
398 | #address-cells = <3>; | ||
399 | device_type = "pci"; | ||
400 | ranges = <0x02000000 0 0xb0000000 0x02000000 0 | ||
401 | 0xb0000000 0 0x10000000 | ||
402 | 0x01000000 0 0x00000000 0x01000000 0 | ||
403 | 0x00000000 0 0x08000000>; | ||
404 | }; | ||
405 | }; | ||
406 | }; | ||
diff --git a/arch/powerpc/boot/dts/tqm8548.dts b/arch/powerpc/boot/dts/tqm8548.dts new file mode 100644 index 000000000000..13cd7280cb26 --- /dev/null +++ b/arch/powerpc/boot/dts/tqm8548.dts | |||
@@ -0,0 +1,406 @@ | |||
1 | /* | ||
2 | * TQM8548 Device Tree Source | ||
3 | * | ||
4 | * Copyright 2006 Freescale Semiconductor Inc. | ||
5 | * Copyright 2008 Wolfgang Grandegger <wg@denx.de> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | |||
15 | / { | ||
16 | model = "tqc,tqm8548"; | ||
17 | compatible = "tqc,tqm8548"; | ||
18 | #address-cells = <1>; | ||
19 | #size-cells = <1>; | ||
20 | |||
21 | aliases { | ||
22 | ethernet0 = &enet0; | ||
23 | ethernet1 = &enet1; | ||
24 | ethernet2 = &enet2; | ||
25 | ethernet3 = &enet3; | ||
26 | |||
27 | serial0 = &serial0; | ||
28 | serial1 = &serial1; | ||
29 | pci0 = &pci0; | ||
30 | pci1 = &pci1; | ||
31 | }; | ||
32 | |||
33 | cpus { | ||
34 | #address-cells = <1>; | ||
35 | #size-cells = <0>; | ||
36 | |||
37 | PowerPC,8548@0 { | ||
38 | device_type = "cpu"; | ||
39 | reg = <0>; | ||
40 | d-cache-line-size = <32>; // 32 bytes | ||
41 | i-cache-line-size = <32>; // 32 bytes | ||
42 | d-cache-size = <0x8000>; // L1, 32K | ||
43 | i-cache-size = <0x8000>; // L1, 32K | ||
44 | next-level-cache = <&L2>; | ||
45 | }; | ||
46 | }; | ||
47 | |||
48 | memory { | ||
49 | device_type = "memory"; | ||
50 | reg = <0x00000000 0x00000000>; // Filled in by U-Boot | ||
51 | }; | ||
52 | |||
53 | soc8548@e0000000 { | ||
54 | #address-cells = <1>; | ||
55 | #size-cells = <1>; | ||
56 | device_type = "soc"; | ||
57 | ranges = <0x0 0xe0000000 0x100000>; | ||
58 | reg = <0xe0000000 0x1000>; // CCSRBAR | ||
59 | bus-frequency = <0>; | ||
60 | |||
61 | memory-controller@2000 { | ||
62 | compatible = "fsl,mpc8548-memory-controller"; | ||
63 | reg = <0x2000 0x1000>; | ||
64 | interrupt-parent = <&mpic>; | ||
65 | interrupts = <18 2>; | ||
66 | }; | ||
67 | |||
68 | L2: l2-cache-controller@20000 { | ||
69 | compatible = "fsl,mpc8548-l2-cache-controller"; | ||
70 | reg = <0x20000 0x1000>; | ||
71 | cache-line-size = <32>; // 32 bytes | ||
72 | cache-size = <0x80000>; // L2, 512K | ||
73 | interrupt-parent = <&mpic>; | ||
74 | interrupts = <16 2>; | ||
75 | }; | ||
76 | |||
77 | i2c@3000 { | ||
78 | #address-cells = <1>; | ||
79 | #size-cells = <0>; | ||
80 | cell-index = <0>; | ||
81 | compatible = "fsl-i2c"; | ||
82 | reg = <0x3000 0x100>; | ||
83 | interrupts = <43 2>; | ||
84 | interrupt-parent = <&mpic>; | ||
85 | dfsrr; | ||
86 | }; | ||
87 | |||
88 | i2c@3100 { | ||
89 | #address-cells = <1>; | ||
90 | #size-cells = <0>; | ||
91 | cell-index = <1>; | ||
92 | compatible = "fsl-i2c"; | ||
93 | reg = <0x3100 0x100>; | ||
94 | interrupts = <43 2>; | ||
95 | interrupt-parent = <&mpic>; | ||
96 | dfsrr; | ||
97 | }; | ||
98 | |||
99 | dma@21300 { | ||
100 | #address-cells = <1>; | ||
101 | #size-cells = <1>; | ||
102 | compatible = "fsl,mpc8548-dma", "fsl,eloplus-dma"; | ||
103 | reg = <0x21300 0x4>; | ||
104 | ranges = <0x0 0x21100 0x200>; | ||
105 | cell-index = <0>; | ||
106 | dma-channel@0 { | ||
107 | compatible = "fsl,mpc8548-dma-channel", | ||
108 | "fsl,eloplus-dma-channel"; | ||
109 | reg = <0x0 0x80>; | ||
110 | cell-index = <0>; | ||
111 | interrupt-parent = <&mpic>; | ||
112 | interrupts = <20 2>; | ||
113 | }; | ||
114 | dma-channel@80 { | ||
115 | compatible = "fsl,mpc8548-dma-channel", | ||
116 | "fsl,eloplus-dma-channel"; | ||
117 | reg = <0x80 0x80>; | ||
118 | cell-index = <1>; | ||
119 | interrupt-parent = <&mpic>; | ||
120 | interrupts = <21 2>; | ||
121 | }; | ||
122 | dma-channel@100 { | ||
123 | compatible = "fsl,mpc8548-dma-channel", | ||
124 | "fsl,eloplus-dma-channel"; | ||
125 | reg = <0x100 0x80>; | ||
126 | cell-index = <2>; | ||
127 | interrupt-parent = <&mpic>; | ||
128 | interrupts = <22 2>; | ||
129 | }; | ||
130 | dma-channel@180 { | ||
131 | compatible = "fsl,mpc8548-dma-channel", | ||
132 | "fsl,eloplus-dma-channel"; | ||
133 | reg = <0x180 0x80>; | ||
134 | cell-index = <3>; | ||
135 | interrupt-parent = <&mpic>; | ||
136 | interrupts = <23 2>; | ||
137 | }; | ||
138 | }; | ||
139 | |||
140 | mdio@24520 { | ||
141 | #address-cells = <1>; | ||
142 | #size-cells = <0>; | ||
143 | compatible = "fsl,gianfar-mdio"; | ||
144 | reg = <0x24520 0x20>; | ||
145 | |||
146 | phy1: ethernet-phy@0 { | ||
147 | interrupt-parent = <&mpic>; | ||
148 | interrupts = <8 1>; | ||
149 | reg = <1>; | ||
150 | device_type = "ethernet-phy"; | ||
151 | }; | ||
152 | phy2: ethernet-phy@1 { | ||
153 | interrupt-parent = <&mpic>; | ||
154 | interrupts = <8 1>; | ||
155 | reg = <2>; | ||
156 | device_type = "ethernet-phy"; | ||
157 | }; | ||
158 | phy3: ethernet-phy@3 { | ||
159 | interrupt-parent = <&mpic>; | ||
160 | interrupts = <8 1>; | ||
161 | reg = <3>; | ||
162 | device_type = "ethernet-phy"; | ||
163 | }; | ||
164 | phy4: ethernet-phy@4 { | ||
165 | interrupt-parent = <&mpic>; | ||
166 | interrupts = <8 1>; | ||
167 | reg = <4>; | ||
168 | device_type = "ethernet-phy"; | ||
169 | }; | ||
170 | phy5: ethernet-phy@5 { | ||
171 | interrupt-parent = <&mpic>; | ||
172 | interrupts = <8 1>; | ||
173 | reg = <5>; | ||
174 | device_type = "ethernet-phy"; | ||
175 | }; | ||
176 | }; | ||
177 | |||
178 | enet0: ethernet@24000 { | ||
179 | cell-index = <0>; | ||
180 | device_type = "network"; | ||
181 | model = "eTSEC"; | ||
182 | compatible = "gianfar"; | ||
183 | reg = <0x24000 0x1000>; | ||
184 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
185 | interrupts = <29 2 30 2 34 2>; | ||
186 | interrupt-parent = <&mpic>; | ||
187 | phy-handle = <&phy2>; | ||
188 | }; | ||
189 | |||
190 | enet1: ethernet@25000 { | ||
191 | cell-index = <1>; | ||
192 | device_type = "network"; | ||
193 | model = "eTSEC"; | ||
194 | compatible = "gianfar"; | ||
195 | reg = <0x25000 0x1000>; | ||
196 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
197 | interrupts = <35 2 36 2 40 2>; | ||
198 | interrupt-parent = <&mpic>; | ||
199 | phy-handle = <&phy1>; | ||
200 | }; | ||
201 | |||
202 | enet2: ethernet@26000 { | ||
203 | cell-index = <2>; | ||
204 | device_type = "network"; | ||
205 | model = "eTSEC"; | ||
206 | compatible = "gianfar"; | ||
207 | reg = <0x26000 0x1000>; | ||
208 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
209 | interrupts = <31 2 32 2 33 2>; | ||
210 | interrupt-parent = <&mpic>; | ||
211 | phy-handle = <&phy3>; | ||
212 | }; | ||
213 | |||
214 | enet3: ethernet@27000 { | ||
215 | cell-index = <3>; | ||
216 | device_type = "network"; | ||
217 | model = "eTSEC"; | ||
218 | compatible = "gianfar"; | ||
219 | reg = <0x27000 0x1000>; | ||
220 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
221 | interrupts = <37 2 38 2 39 2>; | ||
222 | interrupt-parent = <&mpic>; | ||
223 | phy-handle = <&phy4>; | ||
224 | }; | ||
225 | |||
226 | serial0: serial@4500 { | ||
227 | cell-index = <0>; | ||
228 | device_type = "serial"; | ||
229 | compatible = "ns16550"; | ||
230 | reg = <0x4500 0x100>; // reg base, size | ||
231 | clock-frequency = <0>; // should we fill in in uboot? | ||
232 | current-speed = <115200>; | ||
233 | interrupts = <42 2>; | ||
234 | interrupt-parent = <&mpic>; | ||
235 | }; | ||
236 | |||
237 | serial1: serial@4600 { | ||
238 | cell-index = <1>; | ||
239 | device_type = "serial"; | ||
240 | compatible = "ns16550"; | ||
241 | reg = <0x4600 0x100>; // reg base, size | ||
242 | clock-frequency = <0>; // should we fill in in uboot? | ||
243 | current-speed = <115200>; | ||
244 | interrupts = <42 2>; | ||
245 | interrupt-parent = <&mpic>; | ||
246 | }; | ||
247 | |||
248 | global-utilities@e0000 { // global utilities reg | ||
249 | compatible = "fsl,mpc8548-guts"; | ||
250 | reg = <0xe0000 0x1000>; | ||
251 | fsl,has-rstcr; | ||
252 | }; | ||
253 | |||
254 | mpic: pic@40000 { | ||
255 | interrupt-controller; | ||
256 | #address-cells = <0>; | ||
257 | #interrupt-cells = <2>; | ||
258 | reg = <0x40000 0x40000>; | ||
259 | compatible = "chrp,open-pic"; | ||
260 | device_type = "open-pic"; | ||
261 | }; | ||
262 | }; | ||
263 | |||
264 | localbus@e0005000 { | ||
265 | compatible = "fsl,mpc8548-localbus", "fsl,pq3-localbus", | ||
266 | "simple-bus"; | ||
267 | #address-cells = <2>; | ||
268 | #size-cells = <1>; | ||
269 | reg = <0xe0005000 0x100>; // BRx, ORx, etc. | ||
270 | |||
271 | ranges = < | ||
272 | 0 0x0 0xfc000000 0x04000000 // NOR FLASH bank 1 | ||
273 | 1 0x0 0xf8000000 0x08000000 // NOR FLASH bank 0 | ||
274 | 2 0x0 0xe3000000 0x00008000 // CAN (2 x i82527) | ||
275 | 3 0x0 0xe3010000 0x00008000 // NAND FLASH | ||
276 | |||
277 | >; | ||
278 | |||
279 | flash@1,0 { | ||
280 | #address-cells = <1>; | ||
281 | #size-cells = <1>; | ||
282 | compatible = "cfi-flash"; | ||
283 | reg = <1 0x0 0x8000000>; | ||
284 | bank-width = <4>; | ||
285 | device-width = <1>; | ||
286 | |||
287 | partition@0 { | ||
288 | label = "kernel"; | ||
289 | reg = <0x00000000 0x00200000>; | ||
290 | }; | ||
291 | partition@200000 { | ||
292 | label = "root"; | ||
293 | reg = <0x00200000 0x00300000>; | ||
294 | }; | ||
295 | partition@500000 { | ||
296 | label = "user"; | ||
297 | reg = <0x00500000 0x07a00000>; | ||
298 | }; | ||
299 | partition@7f00000 { | ||
300 | label = "env1"; | ||
301 | reg = <0x07f00000 0x00040000>; | ||
302 | }; | ||
303 | partition@7f40000 { | ||
304 | label = "env2"; | ||
305 | reg = <0x07f40000 0x00040000>; | ||
306 | }; | ||
307 | partition@7f80000 { | ||
308 | label = "u-boot"; | ||
309 | reg = <0x07f80000 0x00080000>; | ||
310 | read-only; | ||
311 | }; | ||
312 | }; | ||
313 | |||
314 | /* Note: CAN support needs be enabled in U-Boot */ | ||
315 | can0@2,0 { | ||
316 | compatible = "intel,82527"; // Bosch CC770 | ||
317 | reg = <2 0x0 0x100>; | ||
318 | interrupts = <4 0>; | ||
319 | interrupt-parent = <&mpic>; | ||
320 | }; | ||
321 | |||
322 | can1@2,100 { | ||
323 | compatible = "intel,82527"; // Bosch CC770 | ||
324 | reg = <2 0x100 0x100>; | ||
325 | interrupts = <4 0>; | ||
326 | interrupt-parent = <&mpic>; | ||
327 | }; | ||
328 | |||
329 | /* Note: NAND support needs to be enabled in U-Boot */ | ||
330 | upm@3,0 { | ||
331 | #address-cells = <0>; | ||
332 | #size-cells = <0>; | ||
333 | compatible = "fsl,upm-nand"; | ||
334 | reg = <3 0x0 0x800>; | ||
335 | fsl,upm-addr-offset = <0x10>; | ||
336 | fsl,upm-cmd-offset = <0x08>; | ||
337 | chip-delay = <25>; // in micro-seconds | ||
338 | |||
339 | nand@0 { | ||
340 | #address-cells = <1>; | ||
341 | #size-cells = <1>; | ||
342 | |||
343 | partition@0 { | ||
344 | label = "fs"; | ||
345 | reg = <0x00000000 0x01000000>; | ||
346 | }; | ||
347 | }; | ||
348 | }; | ||
349 | }; | ||
350 | |||
351 | pci0: pci@e0008000 { | ||
352 | cell-index = <0>; | ||
353 | #interrupt-cells = <1>; | ||
354 | #size-cells = <2>; | ||
355 | #address-cells = <3>; | ||
356 | compatible = "fsl,mpc8540-pcix", "fsl,mpc8540-pci"; | ||
357 | device_type = "pci"; | ||
358 | reg = <0xe0008000 0x1000>; | ||
359 | clock-frequency = <33333333>; | ||
360 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
361 | interrupt-map = < | ||
362 | /* IDSEL 28 */ | ||
363 | 0xe000 0 0 1 &mpic 2 1 | ||
364 | 0xe000 0 0 2 &mpic 3 1>; | ||
365 | |||
366 | interrupt-parent = <&mpic>; | ||
367 | interrupts = <24 2>; | ||
368 | bus-range = <0 0>; | ||
369 | ranges = <0x02000000 0 0x80000000 0x80000000 0 0x20000000 | ||
370 | 0x01000000 0 0x00000000 0xe2000000 0 0x01000000>; | ||
371 | }; | ||
372 | |||
373 | pci1: pcie@e000a000 { | ||
374 | cell-index = <2>; | ||
375 | interrupt-map-mask = <0xf800 0x0 0x0 0x7>; | ||
376 | interrupt-map = < | ||
377 | /* IDSEL 0x0 (PEX) */ | ||
378 | 0x00000 0 0 1 &mpic 0 1 | ||
379 | 0x00000 0 0 2 &mpic 1 1 | ||
380 | 0x00000 0 0 3 &mpic 2 1 | ||
381 | 0x00000 0 0 4 &mpic 3 1>; | ||
382 | |||
383 | interrupt-parent = <&mpic>; | ||
384 | interrupts = <26 2>; | ||
385 | bus-range = <0 0xff>; | ||
386 | ranges = <0x02000000 0 0xc0000000 0xc0000000 0 0x20000000 | ||
387 | 0x01000000 0 0x00000000 0xef000000 0 0x08000000>; | ||
388 | clock-frequency = <33333333>; | ||
389 | #interrupt-cells = <1>; | ||
390 | #size-cells = <2>; | ||
391 | #address-cells = <3>; | ||
392 | reg = <0xe000a000 0x1000>; | ||
393 | compatible = "fsl,mpc8548-pcie"; | ||
394 | device_type = "pci"; | ||
395 | pcie@0 { | ||
396 | reg = <0 0 0 0 0>; | ||
397 | #size-cells = <2>; | ||
398 | #address-cells = <3>; | ||
399 | device_type = "pci"; | ||
400 | ranges = <0x02000000 0 0xc0000000 0x02000000 0 | ||
401 | 0xc0000000 0 0x20000000 | ||
402 | 0x01000000 0 0x00000000 0x01000000 0 | ||
403 | 0x00000000 0 0x08000000>; | ||
404 | }; | ||
405 | }; | ||
406 | }; | ||
diff --git a/arch/powerpc/boot/dts/tqm8555.dts b/arch/powerpc/boot/dts/tqm8555.dts index 0a53bb9ce76f..96b0b94ad925 100644 --- a/arch/powerpc/boot/dts/tqm8555.dts +++ b/arch/powerpc/boot/dts/tqm8555.dts | |||
@@ -12,8 +12,8 @@ | |||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | 13 | ||
14 | / { | 14 | / { |
15 | model = "tqm,8555"; | 15 | model = "tqc,tqm8555"; |
16 | compatible = "tqm,8555", "tqm,85xx"; | 16 | compatible = "tqc,tqm8555"; |
17 | #address-cells = <1>; | 17 | #address-cells = <1>; |
18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
19 | 19 | ||
@@ -89,6 +89,47 @@ | |||
89 | }; | 89 | }; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | dma@21300 { | ||
93 | #address-cells = <1>; | ||
94 | #size-cells = <1>; | ||
95 | compatible = "fsl,mpc8555-dma", "fsl,eloplus-dma"; | ||
96 | reg = <0x21300 0x4>; | ||
97 | ranges = <0x0 0x21100 0x200>; | ||
98 | cell-index = <0>; | ||
99 | dma-channel@0 { | ||
100 | compatible = "fsl,mpc8555-dma-channel", | ||
101 | "fsl,eloplus-dma-channel"; | ||
102 | reg = <0x0 0x80>; | ||
103 | cell-index = <0>; | ||
104 | interrupt-parent = <&mpic>; | ||
105 | interrupts = <20 2>; | ||
106 | }; | ||
107 | dma-channel@80 { | ||
108 | compatible = "fsl,mpc8555-dma-channel", | ||
109 | "fsl,eloplus-dma-channel"; | ||
110 | reg = <0x80 0x80>; | ||
111 | cell-index = <1>; | ||
112 | interrupt-parent = <&mpic>; | ||
113 | interrupts = <21 2>; | ||
114 | }; | ||
115 | dma-channel@100 { | ||
116 | compatible = "fsl,mpc8555-dma-channel", | ||
117 | "fsl,eloplus-dma-channel"; | ||
118 | reg = <0x100 0x80>; | ||
119 | cell-index = <2>; | ||
120 | interrupt-parent = <&mpic>; | ||
121 | interrupts = <22 2>; | ||
122 | }; | ||
123 | dma-channel@180 { | ||
124 | compatible = "fsl,mpc8555-dma-channel", | ||
125 | "fsl,eloplus-dma-channel"; | ||
126 | reg = <0x180 0x80>; | ||
127 | cell-index = <3>; | ||
128 | interrupt-parent = <&mpic>; | ||
129 | interrupts = <23 2>; | ||
130 | }; | ||
131 | }; | ||
132 | |||
92 | mdio@24520 { | 133 | mdio@24520 { |
93 | #address-cells = <1>; | 134 | #address-cells = <1>; |
94 | #size-cells = <0>; | 135 | #size-cells = <0>; |
diff --git a/arch/powerpc/boot/dts/tqm8560.dts b/arch/powerpc/boot/dts/tqm8560.dts index a4ee596e97bc..3fe35208907b 100644 --- a/arch/powerpc/boot/dts/tqm8560.dts +++ b/arch/powerpc/boot/dts/tqm8560.dts | |||
@@ -2,6 +2,7 @@ | |||
2 | * TQM 8560 Device Tree Source | 2 | * TQM 8560 Device Tree Source |
3 | * | 3 | * |
4 | * Copyright 2008 Freescale Semiconductor Inc. | 4 | * Copyright 2008 Freescale Semiconductor Inc. |
5 | * Copyright 2008 Wolfgang Grandegger <wg@grandegger.com> | ||
5 | * | 6 | * |
6 | * This program is free software; you can redistribute it and/or modify it | 7 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms of the GNU General Public License as published by the | 8 | * under the terms of the GNU General Public License as published by the |
@@ -12,8 +13,8 @@ | |||
12 | /dts-v1/; | 13 | /dts-v1/; |
13 | 14 | ||
14 | / { | 15 | / { |
15 | model = "tqm,8560"; | 16 | model = "tqc,tqm8560"; |
16 | compatible = "tqm,8560", "tqm,85xx"; | 17 | compatible = "tqc,tqm8560"; |
17 | #address-cells = <1>; | 18 | #address-cells = <1>; |
18 | #size-cells = <1>; | 19 | #size-cells = <1>; |
19 | 20 | ||
@@ -90,6 +91,47 @@ | |||
90 | }; | 91 | }; |
91 | }; | 92 | }; |
92 | 93 | ||
94 | dma@21300 { | ||
95 | #address-cells = <1>; | ||
96 | #size-cells = <1>; | ||
97 | compatible = "fsl,mpc8560-dma", "fsl,eloplus-dma"; | ||
98 | reg = <0x21300 0x4>; | ||
99 | ranges = <0x0 0x21100 0x200>; | ||
100 | cell-index = <0>; | ||
101 | dma-channel@0 { | ||
102 | compatible = "fsl,mpc8560-dma-channel", | ||
103 | "fsl,eloplus-dma-channel"; | ||
104 | reg = <0x0 0x80>; | ||
105 | cell-index = <0>; | ||
106 | interrupt-parent = <&mpic>; | ||
107 | interrupts = <20 2>; | ||
108 | }; | ||
109 | dma-channel@80 { | ||
110 | compatible = "fsl,mpc8560-dma-channel", | ||
111 | "fsl,eloplus-dma-channel"; | ||
112 | reg = <0x80 0x80>; | ||
113 | cell-index = <1>; | ||
114 | interrupt-parent = <&mpic>; | ||
115 | interrupts = <21 2>; | ||
116 | }; | ||
117 | dma-channel@100 { | ||
118 | compatible = "fsl,mpc8560-dma-channel", | ||
119 | "fsl,eloplus-dma-channel"; | ||
120 | reg = <0x100 0x80>; | ||
121 | cell-index = <2>; | ||
122 | interrupt-parent = <&mpic>; | ||
123 | interrupts = <22 2>; | ||
124 | }; | ||
125 | dma-channel@180 { | ||
126 | compatible = "fsl,mpc8560-dma-channel", | ||
127 | "fsl,eloplus-dma-channel"; | ||
128 | reg = <0x180 0x80>; | ||
129 | cell-index = <3>; | ||
130 | interrupt-parent = <&mpic>; | ||
131 | interrupts = <23 2>; | ||
132 | }; | ||
133 | }; | ||
134 | |||
93 | mdio@24520 { | 135 | mdio@24520 { |
94 | #address-cells = <1>; | 136 | #address-cells = <1>; |
95 | #size-cells = <0>; | 137 | #size-cells = <0>; |
@@ -223,6 +265,70 @@ | |||
223 | }; | 265 | }; |
224 | }; | 266 | }; |
225 | 267 | ||
268 | localbus@e0005000 { | ||
269 | compatible = "fsl,mpc8560-localbus", "fsl,pq3-localbus", | ||
270 | "simple-bus"; | ||
271 | #address-cells = <2>; | ||
272 | #size-cells = <1>; | ||
273 | reg = <0xe0005000 0x100>; // BRx, ORx, etc. | ||
274 | |||
275 | ranges = < | ||
276 | 0 0x0 0xfc000000 0x04000000 // NOR FLASH bank 1 | ||
277 | 1 0x0 0xf8000000 0x08000000 // NOR FLASH bank 0 | ||
278 | 2 0x0 0xe3000000 0x00008000 // CAN (2 x i82527) | ||
279 | >; | ||
280 | |||
281 | flash@1,0 { | ||
282 | #address-cells = <1>; | ||
283 | #size-cells = <1>; | ||
284 | compatible = "cfi-flash"; | ||
285 | reg = <1 0x0 0x8000000>; | ||
286 | bank-width = <4>; | ||
287 | device-width = <1>; | ||
288 | |||
289 | partition@0 { | ||
290 | label = "kernel"; | ||
291 | reg = <0x00000000 0x00200000>; | ||
292 | }; | ||
293 | partition@200000 { | ||
294 | label = "root"; | ||
295 | reg = <0x00200000 0x00300000>; | ||
296 | }; | ||
297 | partition@500000 { | ||
298 | label = "user"; | ||
299 | reg = <0x00500000 0x07a00000>; | ||
300 | }; | ||
301 | partition@7f00000 { | ||
302 | label = "env1"; | ||
303 | reg = <0x07f00000 0x00040000>; | ||
304 | }; | ||
305 | partition@7f40000 { | ||
306 | label = "env2"; | ||
307 | reg = <0x07f40000 0x00040000>; | ||
308 | }; | ||
309 | partition@7f80000 { | ||
310 | label = "u-boot"; | ||
311 | reg = <0x07f80000 0x00080000>; | ||
312 | read-only; | ||
313 | }; | ||
314 | }; | ||
315 | |||
316 | /* Note: CAN support needs be enabled in U-Boot */ | ||
317 | can0@2,0 { | ||
318 | compatible = "intel,82527"; // Bosch CC770 | ||
319 | reg = <2 0x0 0x100>; | ||
320 | interrupts = <4 0>; | ||
321 | interrupt-parent = <&mpic>; | ||
322 | }; | ||
323 | |||
324 | can1@2,100 { | ||
325 | compatible = "intel,82527"; // Bosch CC770 | ||
326 | reg = <2 0x100 0x100>; | ||
327 | interrupts = <4 0>; | ||
328 | interrupt-parent = <&mpic>; | ||
329 | }; | ||
330 | }; | ||
331 | |||
226 | pci0: pci@e0008000 { | 332 | pci0: pci@e0008000 { |
227 | cell-index = <0>; | 333 | cell-index = <0>; |
228 | #interrupt-cells = <1>; | 334 | #interrupt-cells = <1>; |
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index 4832be880998..cb87a015be7c 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -177,7 +177,7 @@ cuboot*) | |||
177 | *-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555|*-ksi8560*) | 177 | *-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555|*-ksi8560*) |
178 | platformo=$object/cuboot-85xx-cpm2.o | 178 | platformo=$object/cuboot-85xx-cpm2.o |
179 | ;; | 179 | ;; |
180 | *-mpc85*|*-tqm8540|*-sbc85*) | 180 | *-mpc85*|*-tqm85*|*-sbc85*) |
181 | platformo=$object/cuboot-85xx.o | 181 | platformo=$object/cuboot-85xx.o |
182 | ;; | 182 | ;; |
183 | esac | 183 | esac |
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig new file mode 100644 index 000000000000..d2c435f0da42 --- /dev/null +++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig | |||
@@ -0,0 +1,1128 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.26-rc2 | ||
4 | # Mon May 19 21:12:32 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | CONFIG_6xx=y | ||
12 | # CONFIG_PPC_85xx is not set | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | # CONFIG_40x is not set | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_PPC_FPU=y | ||
18 | # CONFIG_FSL_EMB_PERFMON is not set | ||
19 | CONFIG_PPC_STD_MMU=y | ||
20 | CONFIG_PPC_STD_MMU_32=y | ||
21 | # CONFIG_PPC_MM_SLICES is not set | ||
22 | # CONFIG_SMP is not set | ||
23 | CONFIG_PPC32=y | ||
24 | CONFIG_WORD_SIZE=32 | ||
25 | CONFIG_PPC_MERGE=y | ||
26 | CONFIG_MMU=y | ||
27 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
28 | CONFIG_GENERIC_TIME=y | ||
29 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
30 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
31 | CONFIG_GENERIC_HARDIRQS=y | ||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
33 | CONFIG_IRQ_PER_CPU=y | ||
34 | CONFIG_STACKTRACE_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | ||
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
38 | CONFIG_GENERIC_HWEIGHT=y | ||
39 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
40 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
41 | CONFIG_GENERIC_GPIO=y | ||
42 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
43 | CONFIG_PPC=y | ||
44 | CONFIG_EARLY_PRINTK=y | ||
45 | CONFIG_GENERIC_NVRAM=y | ||
46 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
47 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
48 | CONFIG_PPC_OF=y | ||
49 | CONFIG_OF=y | ||
50 | CONFIG_PPC_UDBG_16550=y | ||
51 | # CONFIG_GENERIC_TBSYNC is not set | ||
52 | CONFIG_AUDIT_ARCH=y | ||
53 | CONFIG_GENERIC_BUG=y | ||
54 | CONFIG_DEFAULT_UIMAGE=y | ||
55 | # CONFIG_PPC_DCR_NATIVE is not set | ||
56 | # CONFIG_PPC_DCR_MMIO is not set | ||
57 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
58 | |||
59 | # | ||
60 | # General setup | ||
61 | # | ||
62 | CONFIG_EXPERIMENTAL=y | ||
63 | CONFIG_BROKEN_ON_SMP=y | ||
64 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
65 | CONFIG_LOCALVERSION="" | ||
66 | CONFIG_LOCALVERSION_AUTO=y | ||
67 | CONFIG_SWAP=y | ||
68 | CONFIG_SYSVIPC=y | ||
69 | CONFIG_SYSVIPC_SYSCTL=y | ||
70 | # CONFIG_POSIX_MQUEUE is not set | ||
71 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
72 | # CONFIG_TASKSTATS is not set | ||
73 | # CONFIG_AUDIT is not set | ||
74 | # CONFIG_IKCONFIG is not set | ||
75 | CONFIG_LOG_BUF_SHIFT=14 | ||
76 | # CONFIG_CGROUPS is not set | ||
77 | CONFIG_GROUP_SCHED=y | ||
78 | CONFIG_FAIR_GROUP_SCHED=y | ||
79 | # CONFIG_RT_GROUP_SCHED is not set | ||
80 | CONFIG_USER_SCHED=y | ||
81 | # CONFIG_CGROUP_SCHED is not set | ||
82 | CONFIG_SYSFS_DEPRECATED=y | ||
83 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
84 | # CONFIG_RELAY is not set | ||
85 | # CONFIG_NAMESPACES is not set | ||
86 | CONFIG_BLK_DEV_INITRD=y | ||
87 | CONFIG_INITRAMFS_SOURCE="" | ||
88 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
89 | CONFIG_SYSCTL=y | ||
90 | CONFIG_EMBEDDED=y | ||
91 | CONFIG_SYSCTL_SYSCALL=y | ||
92 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
93 | # CONFIG_KALLSYMS is not set | ||
94 | CONFIG_HOTPLUG=y | ||
95 | CONFIG_PRINTK=y | ||
96 | CONFIG_BUG=y | ||
97 | CONFIG_ELF_CORE=y | ||
98 | CONFIG_COMPAT_BRK=y | ||
99 | CONFIG_BASE_FULL=y | ||
100 | CONFIG_FUTEX=y | ||
101 | CONFIG_ANON_INODES=y | ||
102 | # CONFIG_EPOLL is not set | ||
103 | CONFIG_SIGNALFD=y | ||
104 | CONFIG_TIMERFD=y | ||
105 | CONFIG_EVENTFD=y | ||
106 | CONFIG_SHMEM=y | ||
107 | CONFIG_VM_EVENT_COUNTERS=y | ||
108 | CONFIG_SLUB_DEBUG=y | ||
109 | # CONFIG_SLAB is not set | ||
110 | CONFIG_SLUB=y | ||
111 | # CONFIG_SLOB is not set | ||
112 | # CONFIG_PROFILING is not set | ||
113 | # CONFIG_MARKERS is not set | ||
114 | CONFIG_HAVE_OPROFILE=y | ||
115 | CONFIG_HAVE_KPROBES=y | ||
116 | CONFIG_HAVE_KRETPROBES=y | ||
117 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
118 | CONFIG_PROC_PAGE_MONITOR=y | ||
119 | CONFIG_SLABINFO=y | ||
120 | CONFIG_RT_MUTEXES=y | ||
121 | # CONFIG_TINY_SHMEM is not set | ||
122 | CONFIG_BASE_SMALL=0 | ||
123 | CONFIG_MODULES=y | ||
124 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
125 | CONFIG_MODULE_UNLOAD=y | ||
126 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
127 | # CONFIG_MODVERSIONS is not set | ||
128 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
129 | # CONFIG_KMOD is not set | ||
130 | CONFIG_BLOCK=y | ||
131 | # CONFIG_LBD is not set | ||
132 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
133 | # CONFIG_LSF is not set | ||
134 | # CONFIG_BLK_DEV_BSG is not set | ||
135 | |||
136 | # | ||
137 | # IO Schedulers | ||
138 | # | ||
139 | CONFIG_IOSCHED_NOOP=y | ||
140 | CONFIG_IOSCHED_AS=y | ||
141 | CONFIG_IOSCHED_DEADLINE=y | ||
142 | CONFIG_IOSCHED_CFQ=y | ||
143 | CONFIG_DEFAULT_AS=y | ||
144 | # CONFIG_DEFAULT_DEADLINE is not set | ||
145 | # CONFIG_DEFAULT_CFQ is not set | ||
146 | # CONFIG_DEFAULT_NOOP is not set | ||
147 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
148 | CONFIG_CLASSIC_RCU=y | ||
149 | |||
150 | # | ||
151 | # Platform support | ||
152 | # | ||
153 | # CONFIG_PPC_MULTIPLATFORM is not set | ||
154 | # CONFIG_PPC_82xx is not set | ||
155 | CONFIG_PPC_83xx=y | ||
156 | # CONFIG_PPC_86xx is not set | ||
157 | # CONFIG_PPC_MPC512x is not set | ||
158 | # CONFIG_PPC_MPC5121 is not set | ||
159 | # CONFIG_PPC_CELL is not set | ||
160 | # CONFIG_PPC_CELL_NATIVE is not set | ||
161 | # CONFIG_PQ2ADS is not set | ||
162 | CONFIG_MPC83xx=y | ||
163 | # CONFIG_MPC831x_RDB is not set | ||
164 | # CONFIG_MPC832x_MDS is not set | ||
165 | # CONFIG_MPC832x_RDB is not set | ||
166 | # CONFIG_MPC834x_MDS is not set | ||
167 | # CONFIG_MPC834x_ITX is not set | ||
168 | # CONFIG_MPC836x_MDS is not set | ||
169 | CONFIG_MPC836x_RDK=y | ||
170 | # CONFIG_MPC837x_MDS is not set | ||
171 | # CONFIG_MPC837x_RDB is not set | ||
172 | # CONFIG_SBC834x is not set | ||
173 | CONFIG_IPIC=y | ||
174 | # CONFIG_MPIC is not set | ||
175 | # CONFIG_MPIC_WEIRD is not set | ||
176 | # CONFIG_PPC_I8259 is not set | ||
177 | # CONFIG_PPC_RTAS is not set | ||
178 | # CONFIG_MMIO_NVRAM is not set | ||
179 | # CONFIG_PPC_MPC106 is not set | ||
180 | # CONFIG_PPC_970_NAP is not set | ||
181 | # CONFIG_PPC_INDIRECT_IO is not set | ||
182 | # CONFIG_GENERIC_IOMAP is not set | ||
183 | # CONFIG_CPU_FREQ is not set | ||
184 | CONFIG_QUICC_ENGINE=y | ||
185 | # CONFIG_FSL_ULI1575 is not set | ||
186 | |||
187 | # | ||
188 | # Kernel options | ||
189 | # | ||
190 | # CONFIG_HIGHMEM is not set | ||
191 | # CONFIG_TICK_ONESHOT is not set | ||
192 | # CONFIG_NO_HZ is not set | ||
193 | # CONFIG_HIGH_RES_TIMERS is not set | ||
194 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
195 | # CONFIG_HZ_100 is not set | ||
196 | CONFIG_HZ_250=y | ||
197 | # CONFIG_HZ_300 is not set | ||
198 | # CONFIG_HZ_1000 is not set | ||
199 | CONFIG_HZ=250 | ||
200 | # CONFIG_SCHED_HRTICK is not set | ||
201 | CONFIG_PREEMPT_NONE=y | ||
202 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
203 | # CONFIG_PREEMPT is not set | ||
204 | CONFIG_BINFMT_ELF=y | ||
205 | # CONFIG_BINFMT_MISC is not set | ||
206 | # CONFIG_IOMMU_HELPER is not set | ||
207 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
208 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
209 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
210 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
211 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
212 | CONFIG_SELECT_MEMORY_MODEL=y | ||
213 | CONFIG_FLATMEM_MANUAL=y | ||
214 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
215 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
216 | CONFIG_FLATMEM=y | ||
217 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
218 | # CONFIG_SPARSEMEM_STATIC is not set | ||
219 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
220 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
221 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
222 | # CONFIG_RESOURCES_64BIT is not set | ||
223 | CONFIG_ZONE_DMA_FLAG=1 | ||
224 | CONFIG_BOUNCE=y | ||
225 | CONFIG_VIRT_TO_BUS=y | ||
226 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
227 | CONFIG_PROC_DEVICETREE=y | ||
228 | # CONFIG_CMDLINE_BOOL is not set | ||
229 | # CONFIG_PM is not set | ||
230 | CONFIG_SECCOMP=y | ||
231 | CONFIG_ISA_DMA_API=y | ||
232 | |||
233 | # | ||
234 | # Bus options | ||
235 | # | ||
236 | CONFIG_ZONE_DMA=y | ||
237 | CONFIG_GENERIC_ISA_DMA=y | ||
238 | CONFIG_PPC_INDIRECT_PCI=y | ||
239 | CONFIG_FSL_SOC=y | ||
240 | CONFIG_FSL_LBC=y | ||
241 | CONFIG_FSL_GTM=y | ||
242 | CONFIG_PCI=y | ||
243 | CONFIG_PCI_DOMAINS=y | ||
244 | CONFIG_PCI_SYSCALL=y | ||
245 | # CONFIG_PCIEPORTBUS is not set | ||
246 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
247 | # CONFIG_PCI_MSI is not set | ||
248 | CONFIG_PCI_LEGACY=y | ||
249 | # CONFIG_PCCARD is not set | ||
250 | # CONFIG_HOTPLUG_PCI is not set | ||
251 | # CONFIG_HAS_RAPIDIO is not set | ||
252 | |||
253 | # | ||
254 | # Advanced setup | ||
255 | # | ||
256 | # CONFIG_ADVANCED_OPTIONS is not set | ||
257 | |||
258 | # | ||
259 | # Default settings for advanced configuration options are used | ||
260 | # | ||
261 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
262 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
263 | CONFIG_KERNEL_START=0xc0000000 | ||
264 | CONFIG_PHYSICAL_START=0x00000000 | ||
265 | CONFIG_TASK_SIZE=0xc0000000 | ||
266 | |||
267 | # | ||
268 | # Networking | ||
269 | # | ||
270 | CONFIG_NET=y | ||
271 | |||
272 | # | ||
273 | # Networking options | ||
274 | # | ||
275 | CONFIG_PACKET=y | ||
276 | # CONFIG_PACKET_MMAP is not set | ||
277 | CONFIG_UNIX=y | ||
278 | CONFIG_XFRM=y | ||
279 | # CONFIG_XFRM_USER is not set | ||
280 | # CONFIG_XFRM_SUB_POLICY is not set | ||
281 | # CONFIG_XFRM_MIGRATE is not set | ||
282 | # CONFIG_XFRM_STATISTICS is not set | ||
283 | # CONFIG_NET_KEY is not set | ||
284 | CONFIG_INET=y | ||
285 | CONFIG_IP_MULTICAST=y | ||
286 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
287 | CONFIG_IP_FIB_HASH=y | ||
288 | CONFIG_IP_PNP=y | ||
289 | CONFIG_IP_PNP_DHCP=y | ||
290 | CONFIG_IP_PNP_BOOTP=y | ||
291 | # CONFIG_IP_PNP_RARP is not set | ||
292 | # CONFIG_NET_IPIP is not set | ||
293 | # CONFIG_NET_IPGRE is not set | ||
294 | # CONFIG_IP_MROUTE is not set | ||
295 | # CONFIG_ARPD is not set | ||
296 | CONFIG_SYN_COOKIES=y | ||
297 | # CONFIG_INET_AH is not set | ||
298 | # CONFIG_INET_ESP is not set | ||
299 | # CONFIG_INET_IPCOMP is not set | ||
300 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
301 | # CONFIG_INET_TUNNEL is not set | ||
302 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
303 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
304 | CONFIG_INET_XFRM_MODE_BEET=y | ||
305 | # CONFIG_INET_LRO is not set | ||
306 | CONFIG_INET_DIAG=y | ||
307 | CONFIG_INET_TCP_DIAG=y | ||
308 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
309 | CONFIG_TCP_CONG_CUBIC=y | ||
310 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
311 | # CONFIG_TCP_MD5SIG is not set | ||
312 | # CONFIG_IPV6 is not set | ||
313 | # CONFIG_NETWORK_SECMARK is not set | ||
314 | # CONFIG_NETFILTER is not set | ||
315 | # CONFIG_IP_DCCP is not set | ||
316 | # CONFIG_IP_SCTP is not set | ||
317 | # CONFIG_TIPC is not set | ||
318 | # CONFIG_ATM is not set | ||
319 | # CONFIG_BRIDGE is not set | ||
320 | # CONFIG_VLAN_8021Q is not set | ||
321 | # CONFIG_DECNET is not set | ||
322 | # CONFIG_LLC2 is not set | ||
323 | # CONFIG_IPX is not set | ||
324 | # CONFIG_ATALK is not set | ||
325 | # CONFIG_X25 is not set | ||
326 | # CONFIG_LAPB is not set | ||
327 | # CONFIG_ECONET is not set | ||
328 | # CONFIG_WAN_ROUTER is not set | ||
329 | # CONFIG_NET_SCHED is not set | ||
330 | |||
331 | # | ||
332 | # Network testing | ||
333 | # | ||
334 | # CONFIG_NET_PKTGEN is not set | ||
335 | # CONFIG_HAMRADIO is not set | ||
336 | # CONFIG_CAN is not set | ||
337 | # CONFIG_IRDA is not set | ||
338 | # CONFIG_BT is not set | ||
339 | # CONFIG_AF_RXRPC is not set | ||
340 | |||
341 | # | ||
342 | # Wireless | ||
343 | # | ||
344 | # CONFIG_CFG80211 is not set | ||
345 | # CONFIG_WIRELESS_EXT is not set | ||
346 | # CONFIG_MAC80211 is not set | ||
347 | # CONFIG_IEEE80211 is not set | ||
348 | # CONFIG_RFKILL is not set | ||
349 | # CONFIG_NET_9P is not set | ||
350 | |||
351 | # | ||
352 | # Device Drivers | ||
353 | # | ||
354 | |||
355 | # | ||
356 | # Generic Driver Options | ||
357 | # | ||
358 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
359 | CONFIG_STANDALONE=y | ||
360 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
361 | CONFIG_FW_LOADER=y | ||
362 | # CONFIG_SYS_HYPERVISOR is not set | ||
363 | # CONFIG_CONNECTOR is not set | ||
364 | CONFIG_MTD=y | ||
365 | # CONFIG_MTD_DEBUG is not set | ||
366 | # CONFIG_MTD_CONCAT is not set | ||
367 | CONFIG_MTD_PARTITIONS=y | ||
368 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
369 | CONFIG_MTD_CMDLINE_PARTS=y | ||
370 | # CONFIG_MTD_OF_PARTS is not set | ||
371 | # CONFIG_MTD_AR7_PARTS is not set | ||
372 | |||
373 | # | ||
374 | # User Modules And Translation Layers | ||
375 | # | ||
376 | CONFIG_MTD_CHAR=y | ||
377 | CONFIG_MTD_BLKDEVS=y | ||
378 | CONFIG_MTD_BLOCK=y | ||
379 | # CONFIG_FTL is not set | ||
380 | # CONFIG_NFTL is not set | ||
381 | # CONFIG_INFTL is not set | ||
382 | # CONFIG_RFD_FTL is not set | ||
383 | # CONFIG_SSFDC is not set | ||
384 | # CONFIG_MTD_OOPS is not set | ||
385 | |||
386 | # | ||
387 | # RAM/ROM/Flash chip drivers | ||
388 | # | ||
389 | CONFIG_MTD_CFI=y | ||
390 | # CONFIG_MTD_JEDECPROBE is not set | ||
391 | CONFIG_MTD_GEN_PROBE=y | ||
392 | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||
393 | CONFIG_MTD_CFI_NOSWAP=y | ||
394 | # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set | ||
395 | # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set | ||
396 | # CONFIG_MTD_CFI_GEOMETRY is not set | ||
397 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
398 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
399 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
400 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
401 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
402 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
403 | CONFIG_MTD_CFI_I1=y | ||
404 | CONFIG_MTD_CFI_I2=y | ||
405 | # CONFIG_MTD_CFI_I4 is not set | ||
406 | # CONFIG_MTD_CFI_I8 is not set | ||
407 | # CONFIG_MTD_OTP is not set | ||
408 | CONFIG_MTD_CFI_INTELEXT=y | ||
409 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
410 | # CONFIG_MTD_CFI_STAA is not set | ||
411 | CONFIG_MTD_CFI_UTIL=y | ||
412 | # CONFIG_MTD_RAM is not set | ||
413 | # CONFIG_MTD_ROM is not set | ||
414 | # CONFIG_MTD_ABSENT is not set | ||
415 | |||
416 | # | ||
417 | # Mapping drivers for chip access | ||
418 | # | ||
419 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
420 | # CONFIG_MTD_PHYSMAP is not set | ||
421 | CONFIG_MTD_PHYSMAP_OF=y | ||
422 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
423 | # CONFIG_MTD_PLATRAM is not set | ||
424 | |||
425 | # | ||
426 | # Self-contained MTD device drivers | ||
427 | # | ||
428 | # CONFIG_MTD_PMC551 is not set | ||
429 | # CONFIG_MTD_DATAFLASH is not set | ||
430 | # CONFIG_MTD_M25P80 is not set | ||
431 | # CONFIG_MTD_SLRAM is not set | ||
432 | # CONFIG_MTD_PHRAM is not set | ||
433 | # CONFIG_MTD_MTDRAM is not set | ||
434 | # CONFIG_MTD_BLOCK2MTD is not set | ||
435 | |||
436 | # | ||
437 | # Disk-On-Chip Device Drivers | ||
438 | # | ||
439 | # CONFIG_MTD_DOC2000 is not set | ||
440 | # CONFIG_MTD_DOC2001 is not set | ||
441 | # CONFIG_MTD_DOC2001PLUS is not set | ||
442 | # CONFIG_MTD_NAND is not set | ||
443 | # CONFIG_MTD_ONENAND is not set | ||
444 | |||
445 | # | ||
446 | # UBI - Unsorted block images | ||
447 | # | ||
448 | # CONFIG_MTD_UBI is not set | ||
449 | CONFIG_OF_DEVICE=y | ||
450 | CONFIG_OF_GPIO=y | ||
451 | CONFIG_OF_I2C=y | ||
452 | # CONFIG_PARPORT is not set | ||
453 | CONFIG_BLK_DEV=y | ||
454 | # CONFIG_BLK_DEV_FD is not set | ||
455 | # CONFIG_BLK_CPQ_DA is not set | ||
456 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
457 | # CONFIG_BLK_DEV_DAC960 is not set | ||
458 | # CONFIG_BLK_DEV_UMEM is not set | ||
459 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
460 | CONFIG_BLK_DEV_LOOP=y | ||
461 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
462 | # CONFIG_BLK_DEV_NBD is not set | ||
463 | # CONFIG_BLK_DEV_SX8 is not set | ||
464 | CONFIG_BLK_DEV_RAM=y | ||
465 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
466 | CONFIG_BLK_DEV_RAM_SIZE=32768 | ||
467 | # CONFIG_BLK_DEV_XIP is not set | ||
468 | # CONFIG_CDROM_PKTCDVD is not set | ||
469 | # CONFIG_ATA_OVER_ETH is not set | ||
470 | CONFIG_MISC_DEVICES=y | ||
471 | # CONFIG_PHANTOM is not set | ||
472 | # CONFIG_EEPROM_93CX6 is not set | ||
473 | # CONFIG_SGI_IOC4 is not set | ||
474 | # CONFIG_TIFM_CORE is not set | ||
475 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
476 | CONFIG_HAVE_IDE=y | ||
477 | # CONFIG_IDE is not set | ||
478 | |||
479 | # | ||
480 | # SCSI device support | ||
481 | # | ||
482 | # CONFIG_RAID_ATTRS is not set | ||
483 | # CONFIG_SCSI is not set | ||
484 | # CONFIG_SCSI_DMA is not set | ||
485 | # CONFIG_SCSI_NETLINK is not set | ||
486 | # CONFIG_ATA is not set | ||
487 | # CONFIG_MD is not set | ||
488 | # CONFIG_FUSION is not set | ||
489 | |||
490 | # | ||
491 | # IEEE 1394 (FireWire) support | ||
492 | # | ||
493 | # CONFIG_FIREWIRE is not set | ||
494 | # CONFIG_IEEE1394 is not set | ||
495 | # CONFIG_I2O is not set | ||
496 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
497 | CONFIG_NETDEVICES=y | ||
498 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
499 | # CONFIG_DUMMY is not set | ||
500 | # CONFIG_BONDING is not set | ||
501 | # CONFIG_MACVLAN is not set | ||
502 | # CONFIG_EQUALIZER is not set | ||
503 | # CONFIG_TUN is not set | ||
504 | # CONFIG_VETH is not set | ||
505 | # CONFIG_ARCNET is not set | ||
506 | CONFIG_PHYLIB=y | ||
507 | |||
508 | # | ||
509 | # MII PHY device drivers | ||
510 | # | ||
511 | # CONFIG_MARVELL_PHY is not set | ||
512 | # CONFIG_DAVICOM_PHY is not set | ||
513 | # CONFIG_QSEMI_PHY is not set | ||
514 | # CONFIG_LXT_PHY is not set | ||
515 | # CONFIG_CICADA_PHY is not set | ||
516 | # CONFIG_VITESSE_PHY is not set | ||
517 | # CONFIG_SMSC_PHY is not set | ||
518 | CONFIG_BROADCOM_PHY=y | ||
519 | # CONFIG_ICPLUS_PHY is not set | ||
520 | # CONFIG_REALTEK_PHY is not set | ||
521 | # CONFIG_FIXED_PHY is not set | ||
522 | # CONFIG_MDIO_BITBANG is not set | ||
523 | # CONFIG_NET_ETHERNET is not set | ||
524 | CONFIG_NETDEV_1000=y | ||
525 | # CONFIG_ACENIC is not set | ||
526 | # CONFIG_DL2K is not set | ||
527 | # CONFIG_E1000 is not set | ||
528 | # CONFIG_E1000E is not set | ||
529 | # CONFIG_E1000E_ENABLED is not set | ||
530 | # CONFIG_IP1000 is not set | ||
531 | # CONFIG_IGB is not set | ||
532 | # CONFIG_NS83820 is not set | ||
533 | # CONFIG_HAMACHI is not set | ||
534 | # CONFIG_YELLOWFIN is not set | ||
535 | # CONFIG_R8169 is not set | ||
536 | # CONFIG_SIS190 is not set | ||
537 | # CONFIG_SKGE is not set | ||
538 | # CONFIG_SKY2 is not set | ||
539 | # CONFIG_VIA_VELOCITY is not set | ||
540 | # CONFIG_TIGON3 is not set | ||
541 | # CONFIG_BNX2 is not set | ||
542 | # CONFIG_GIANFAR is not set | ||
543 | CONFIG_UCC_GETH=y | ||
544 | CONFIG_UGETH_NAPI=y | ||
545 | # CONFIG_UGETH_MAGIC_PACKET is not set | ||
546 | # CONFIG_UGETH_FILTERING is not set | ||
547 | # CONFIG_UGETH_TX_ON_DEMAND is not set | ||
548 | # CONFIG_QLA3XXX is not set | ||
549 | # CONFIG_ATL1 is not set | ||
550 | # CONFIG_NETDEV_10000 is not set | ||
551 | # CONFIG_TR is not set | ||
552 | |||
553 | # | ||
554 | # Wireless LAN | ||
555 | # | ||
556 | # CONFIG_WLAN_PRE80211 is not set | ||
557 | # CONFIG_WLAN_80211 is not set | ||
558 | # CONFIG_IWLWIFI_LEDS is not set | ||
559 | # CONFIG_WAN is not set | ||
560 | # CONFIG_FDDI is not set | ||
561 | # CONFIG_HIPPI is not set | ||
562 | # CONFIG_PPP is not set | ||
563 | # CONFIG_SLIP is not set | ||
564 | # CONFIG_NETCONSOLE is not set | ||
565 | # CONFIG_NETPOLL is not set | ||
566 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
567 | # CONFIG_ISDN is not set | ||
568 | # CONFIG_PHONE is not set | ||
569 | |||
570 | # | ||
571 | # Input device support | ||
572 | # | ||
573 | CONFIG_INPUT=y | ||
574 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
575 | # CONFIG_INPUT_POLLDEV is not set | ||
576 | |||
577 | # | ||
578 | # Userland interfaces | ||
579 | # | ||
580 | # CONFIG_INPUT_MOUSEDEV is not set | ||
581 | # CONFIG_INPUT_JOYDEV is not set | ||
582 | # CONFIG_INPUT_EVDEV is not set | ||
583 | # CONFIG_INPUT_EVBUG is not set | ||
584 | |||
585 | # | ||
586 | # Input Device Drivers | ||
587 | # | ||
588 | # CONFIG_INPUT_KEYBOARD is not set | ||
589 | # CONFIG_INPUT_MOUSE is not set | ||
590 | # CONFIG_INPUT_JOYSTICK is not set | ||
591 | # CONFIG_INPUT_TABLET is not set | ||
592 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
593 | # CONFIG_INPUT_MISC is not set | ||
594 | |||
595 | # | ||
596 | # Hardware I/O ports | ||
597 | # | ||
598 | # CONFIG_SERIO is not set | ||
599 | # CONFIG_GAMEPORT is not set | ||
600 | |||
601 | # | ||
602 | # Character devices | ||
603 | # | ||
604 | CONFIG_VT=y | ||
605 | CONFIG_VT_CONSOLE=y | ||
606 | CONFIG_HW_CONSOLE=y | ||
607 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
608 | # CONFIG_DEVKMEM is not set | ||
609 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
610 | # CONFIG_NOZOMI is not set | ||
611 | |||
612 | # | ||
613 | # Serial drivers | ||
614 | # | ||
615 | CONFIG_SERIAL_8250=y | ||
616 | CONFIG_SERIAL_8250_CONSOLE=y | ||
617 | CONFIG_SERIAL_8250_PCI=y | ||
618 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
619 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
620 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
621 | |||
622 | # | ||
623 | # Non-8250 serial port support | ||
624 | # | ||
625 | # CONFIG_SERIAL_UARTLITE is not set | ||
626 | CONFIG_SERIAL_CORE=y | ||
627 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
628 | # CONFIG_SERIAL_JSM is not set | ||
629 | # CONFIG_SERIAL_OF_PLATFORM is not set | ||
630 | CONFIG_SERIAL_QE=y | ||
631 | CONFIG_UNIX98_PTYS=y | ||
632 | CONFIG_LEGACY_PTYS=y | ||
633 | CONFIG_LEGACY_PTY_COUNT=256 | ||
634 | # CONFIG_IPMI_HANDLER is not set | ||
635 | CONFIG_HW_RANDOM=y | ||
636 | # CONFIG_NVRAM is not set | ||
637 | # CONFIG_GEN_RTC is not set | ||
638 | # CONFIG_R3964 is not set | ||
639 | # CONFIG_APPLICOM is not set | ||
640 | # CONFIG_RAW_DRIVER is not set | ||
641 | # CONFIG_TCG_TPM is not set | ||
642 | CONFIG_DEVPORT=y | ||
643 | CONFIG_I2C=y | ||
644 | CONFIG_I2C_BOARDINFO=y | ||
645 | CONFIG_I2C_CHARDEV=y | ||
646 | |||
647 | # | ||
648 | # I2C Hardware Bus support | ||
649 | # | ||
650 | # CONFIG_I2C_ALI1535 is not set | ||
651 | # CONFIG_I2C_ALI1563 is not set | ||
652 | # CONFIG_I2C_ALI15X3 is not set | ||
653 | # CONFIG_I2C_AMD756 is not set | ||
654 | # CONFIG_I2C_AMD8111 is not set | ||
655 | # CONFIG_I2C_GPIO is not set | ||
656 | # CONFIG_I2C_I801 is not set | ||
657 | # CONFIG_I2C_I810 is not set | ||
658 | # CONFIG_I2C_PIIX4 is not set | ||
659 | CONFIG_I2C_MPC=y | ||
660 | # CONFIG_I2C_NFORCE2 is not set | ||
661 | # CONFIG_I2C_OCORES is not set | ||
662 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
663 | # CONFIG_I2C_PROSAVAGE is not set | ||
664 | # CONFIG_I2C_SAVAGE4 is not set | ||
665 | # CONFIG_I2C_SIMTEC is not set | ||
666 | # CONFIG_I2C_SIS5595 is not set | ||
667 | # CONFIG_I2C_SIS630 is not set | ||
668 | # CONFIG_I2C_SIS96X is not set | ||
669 | # CONFIG_I2C_TAOS_EVM is not set | ||
670 | # CONFIG_I2C_STUB is not set | ||
671 | # CONFIG_I2C_VIA is not set | ||
672 | # CONFIG_I2C_VIAPRO is not set | ||
673 | # CONFIG_I2C_VOODOO3 is not set | ||
674 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
675 | |||
676 | # | ||
677 | # Miscellaneous I2C Chip support | ||
678 | # | ||
679 | # CONFIG_DS1682 is not set | ||
680 | # CONFIG_SENSORS_EEPROM is not set | ||
681 | # CONFIG_SENSORS_PCF8574 is not set | ||
682 | # CONFIG_PCF8575 is not set | ||
683 | # CONFIG_SENSORS_PCF8591 is not set | ||
684 | # CONFIG_TPS65010 is not set | ||
685 | # CONFIG_SENSORS_MAX6875 is not set | ||
686 | # CONFIG_SENSORS_TSL2550 is not set | ||
687 | # CONFIG_I2C_DEBUG_CORE is not set | ||
688 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
689 | # CONFIG_I2C_DEBUG_BUS is not set | ||
690 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
691 | CONFIG_SPI=y | ||
692 | CONFIG_SPI_MASTER=y | ||
693 | |||
694 | # | ||
695 | # SPI Master Controller Drivers | ||
696 | # | ||
697 | CONFIG_SPI_BITBANG=y | ||
698 | CONFIG_SPI_MPC83xx=y | ||
699 | |||
700 | # | ||
701 | # SPI Protocol Masters | ||
702 | # | ||
703 | # CONFIG_SPI_AT25 is not set | ||
704 | CONFIG_SPI_SPIDEV=y | ||
705 | # CONFIG_SPI_TLE62X0 is not set | ||
706 | CONFIG_HAVE_GPIO_LIB=y | ||
707 | |||
708 | # | ||
709 | # GPIO Support | ||
710 | # | ||
711 | |||
712 | # | ||
713 | # I2C GPIO expanders: | ||
714 | # | ||
715 | # CONFIG_GPIO_PCA953X is not set | ||
716 | # CONFIG_GPIO_PCF857X is not set | ||
717 | |||
718 | # | ||
719 | # SPI GPIO expanders: | ||
720 | # | ||
721 | # CONFIG_GPIO_MCP23S08 is not set | ||
722 | # CONFIG_W1 is not set | ||
723 | # CONFIG_POWER_SUPPLY is not set | ||
724 | # CONFIG_HWMON is not set | ||
725 | # CONFIG_THERMAL is not set | ||
726 | CONFIG_WATCHDOG=y | ||
727 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
728 | |||
729 | # | ||
730 | # Watchdog Device Drivers | ||
731 | # | ||
732 | # CONFIG_SOFT_WATCHDOG is not set | ||
733 | CONFIG_83xx_WDT=y | ||
734 | |||
735 | # | ||
736 | # PCI-based Watchdog Cards | ||
737 | # | ||
738 | # CONFIG_PCIPCWATCHDOG is not set | ||
739 | # CONFIG_WDTPCI is not set | ||
740 | |||
741 | # | ||
742 | # Sonics Silicon Backplane | ||
743 | # | ||
744 | CONFIG_SSB_POSSIBLE=y | ||
745 | # CONFIG_SSB is not set | ||
746 | |||
747 | # | ||
748 | # Multifunction device drivers | ||
749 | # | ||
750 | # CONFIG_MFD_SM501 is not set | ||
751 | # CONFIG_HTC_EGPIO is not set | ||
752 | # CONFIG_HTC_PASIC3 is not set | ||
753 | |||
754 | # | ||
755 | # Multimedia devices | ||
756 | # | ||
757 | |||
758 | # | ||
759 | # Multimedia core support | ||
760 | # | ||
761 | # CONFIG_VIDEO_DEV is not set | ||
762 | # CONFIG_DVB_CORE is not set | ||
763 | # CONFIG_VIDEO_MEDIA is not set | ||
764 | |||
765 | # | ||
766 | # Multimedia drivers | ||
767 | # | ||
768 | CONFIG_DAB=y | ||
769 | |||
770 | # | ||
771 | # Graphics support | ||
772 | # | ||
773 | # CONFIG_AGP is not set | ||
774 | # CONFIG_DRM is not set | ||
775 | # CONFIG_VGASTATE is not set | ||
776 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
777 | CONFIG_FB=y | ||
778 | # CONFIG_FIRMWARE_EDID is not set | ||
779 | # CONFIG_FB_DDC is not set | ||
780 | CONFIG_FB_CFB_FILLRECT=y | ||
781 | CONFIG_FB_CFB_COPYAREA=y | ||
782 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
783 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
784 | # CONFIG_FB_SYS_FILLRECT is not set | ||
785 | # CONFIG_FB_SYS_COPYAREA is not set | ||
786 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
787 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
788 | # CONFIG_FB_SYS_FOPS is not set | ||
789 | # CONFIG_FB_SVGALIB is not set | ||
790 | CONFIG_FB_MACMODES=y | ||
791 | # CONFIG_FB_BACKLIGHT is not set | ||
792 | # CONFIG_FB_MODE_HELPERS is not set | ||
793 | # CONFIG_FB_TILEBLITTING is not set | ||
794 | |||
795 | # | ||
796 | # Frame buffer hardware drivers | ||
797 | # | ||
798 | # CONFIG_FB_CIRRUS is not set | ||
799 | # CONFIG_FB_PM2 is not set | ||
800 | # CONFIG_FB_CYBER2000 is not set | ||
801 | CONFIG_FB_OF=y | ||
802 | # CONFIG_FB_CT65550 is not set | ||
803 | # CONFIG_FB_ASILIANT is not set | ||
804 | # CONFIG_FB_IMSTT is not set | ||
805 | # CONFIG_FB_VGA16 is not set | ||
806 | # CONFIG_FB_S1D13XXX is not set | ||
807 | # CONFIG_FB_NVIDIA is not set | ||
808 | # CONFIG_FB_RIVA is not set | ||
809 | # CONFIG_FB_MATROX is not set | ||
810 | # CONFIG_FB_RADEON is not set | ||
811 | # CONFIG_FB_ATY128 is not set | ||
812 | # CONFIG_FB_ATY is not set | ||
813 | # CONFIG_FB_S3 is not set | ||
814 | # CONFIG_FB_SAVAGE is not set | ||
815 | # CONFIG_FB_SIS is not set | ||
816 | # CONFIG_FB_NEOMAGIC is not set | ||
817 | # CONFIG_FB_KYRO is not set | ||
818 | # CONFIG_FB_3DFX is not set | ||
819 | # CONFIG_FB_VOODOO1 is not set | ||
820 | # CONFIG_FB_VT8623 is not set | ||
821 | # CONFIG_FB_TRIDENT is not set | ||
822 | # CONFIG_FB_ARK is not set | ||
823 | # CONFIG_FB_PM3 is not set | ||
824 | # CONFIG_FB_FSL_DIU is not set | ||
825 | # CONFIG_FB_IBM_GXT4500 is not set | ||
826 | # CONFIG_FB_VIRTUAL is not set | ||
827 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
828 | |||
829 | # | ||
830 | # Display device support | ||
831 | # | ||
832 | # CONFIG_DISPLAY_SUPPORT is not set | ||
833 | |||
834 | # | ||
835 | # Console display driver support | ||
836 | # | ||
837 | # CONFIG_VGA_CONSOLE is not set | ||
838 | CONFIG_DUMMY_CONSOLE=y | ||
839 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
840 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
841 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
842 | # CONFIG_FONTS is not set | ||
843 | CONFIG_FONT_8x8=y | ||
844 | CONFIG_FONT_8x16=y | ||
845 | CONFIG_LOGO=y | ||
846 | # CONFIG_LOGO_LINUX_MONO is not set | ||
847 | CONFIG_LOGO_LINUX_VGA16=y | ||
848 | CONFIG_LOGO_LINUX_CLUT224=y | ||
849 | |||
850 | # | ||
851 | # Sound | ||
852 | # | ||
853 | # CONFIG_SOUND is not set | ||
854 | CONFIG_HID_SUPPORT=y | ||
855 | CONFIG_HID=y | ||
856 | # CONFIG_HID_DEBUG is not set | ||
857 | # CONFIG_HIDRAW is not set | ||
858 | # CONFIG_USB_SUPPORT is not set | ||
859 | # CONFIG_MMC is not set | ||
860 | # CONFIG_MEMSTICK is not set | ||
861 | # CONFIG_NEW_LEDS is not set | ||
862 | # CONFIG_ACCESSIBILITY is not set | ||
863 | # CONFIG_INFINIBAND is not set | ||
864 | # CONFIG_EDAC is not set | ||
865 | # CONFIG_RTC_CLASS is not set | ||
866 | # CONFIG_DMADEVICES is not set | ||
867 | # CONFIG_UIO is not set | ||
868 | |||
869 | # | ||
870 | # File systems | ||
871 | # | ||
872 | CONFIG_EXT2_FS=y | ||
873 | # CONFIG_EXT2_FS_XATTR is not set | ||
874 | # CONFIG_EXT2_FS_XIP is not set | ||
875 | CONFIG_EXT3_FS=y | ||
876 | CONFIG_EXT3_FS_XATTR=y | ||
877 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
878 | # CONFIG_EXT3_FS_SECURITY is not set | ||
879 | # CONFIG_EXT4DEV_FS is not set | ||
880 | CONFIG_JBD=y | ||
881 | CONFIG_FS_MBCACHE=y | ||
882 | # CONFIG_REISERFS_FS is not set | ||
883 | # CONFIG_JFS_FS is not set | ||
884 | # CONFIG_FS_POSIX_ACL is not set | ||
885 | # CONFIG_XFS_FS is not set | ||
886 | # CONFIG_OCFS2_FS is not set | ||
887 | CONFIG_DNOTIFY=y | ||
888 | CONFIG_INOTIFY=y | ||
889 | CONFIG_INOTIFY_USER=y | ||
890 | # CONFIG_QUOTA is not set | ||
891 | # CONFIG_AUTOFS_FS is not set | ||
892 | # CONFIG_AUTOFS4_FS is not set | ||
893 | # CONFIG_FUSE_FS is not set | ||
894 | |||
895 | # | ||
896 | # CD-ROM/DVD Filesystems | ||
897 | # | ||
898 | # CONFIG_ISO9660_FS is not set | ||
899 | # CONFIG_UDF_FS is not set | ||
900 | |||
901 | # | ||
902 | # DOS/FAT/NT Filesystems | ||
903 | # | ||
904 | # CONFIG_MSDOS_FS is not set | ||
905 | # CONFIG_VFAT_FS is not set | ||
906 | # CONFIG_NTFS_FS is not set | ||
907 | |||
908 | # | ||
909 | # Pseudo filesystems | ||
910 | # | ||
911 | CONFIG_PROC_FS=y | ||
912 | CONFIG_PROC_KCORE=y | ||
913 | CONFIG_PROC_SYSCTL=y | ||
914 | CONFIG_SYSFS=y | ||
915 | CONFIG_TMPFS=y | ||
916 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
917 | # CONFIG_HUGETLB_PAGE is not set | ||
918 | # CONFIG_CONFIGFS_FS is not set | ||
919 | |||
920 | # | ||
921 | # Miscellaneous filesystems | ||
922 | # | ||
923 | # CONFIG_ADFS_FS is not set | ||
924 | # CONFIG_AFFS_FS is not set | ||
925 | # CONFIG_HFS_FS is not set | ||
926 | # CONFIG_HFSPLUS_FS is not set | ||
927 | # CONFIG_BEFS_FS is not set | ||
928 | # CONFIG_BFS_FS is not set | ||
929 | # CONFIG_EFS_FS is not set | ||
930 | CONFIG_JFFS2_FS=y | ||
931 | CONFIG_JFFS2_FS_DEBUG=0 | ||
932 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
933 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
934 | # CONFIG_JFFS2_SUMMARY is not set | ||
935 | # CONFIG_JFFS2_FS_XATTR is not set | ||
936 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
937 | CONFIG_JFFS2_ZLIB=y | ||
938 | # CONFIG_JFFS2_LZO is not set | ||
939 | CONFIG_JFFS2_RTIME=y | ||
940 | # CONFIG_JFFS2_RUBIN is not set | ||
941 | # CONFIG_CRAMFS is not set | ||
942 | # CONFIG_VXFS_FS is not set | ||
943 | # CONFIG_MINIX_FS is not set | ||
944 | # CONFIG_HPFS_FS is not set | ||
945 | # CONFIG_QNX4FS_FS is not set | ||
946 | # CONFIG_ROMFS_FS is not set | ||
947 | # CONFIG_SYSV_FS is not set | ||
948 | # CONFIG_UFS_FS is not set | ||
949 | CONFIG_NETWORK_FILESYSTEMS=y | ||
950 | CONFIG_NFS_FS=y | ||
951 | CONFIG_NFS_V3=y | ||
952 | # CONFIG_NFS_V3_ACL is not set | ||
953 | CONFIG_NFS_V4=y | ||
954 | # CONFIG_NFSD is not set | ||
955 | CONFIG_ROOT_NFS=y | ||
956 | CONFIG_LOCKD=y | ||
957 | CONFIG_LOCKD_V4=y | ||
958 | CONFIG_NFS_COMMON=y | ||
959 | CONFIG_SUNRPC=y | ||
960 | CONFIG_SUNRPC_GSS=y | ||
961 | # CONFIG_SUNRPC_BIND34 is not set | ||
962 | CONFIG_RPCSEC_GSS_KRB5=y | ||
963 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
964 | # CONFIG_SMB_FS is not set | ||
965 | # CONFIG_CIFS is not set | ||
966 | # CONFIG_NCP_FS is not set | ||
967 | # CONFIG_CODA_FS is not set | ||
968 | # CONFIG_AFS_FS is not set | ||
969 | |||
970 | # | ||
971 | # Partition Types | ||
972 | # | ||
973 | CONFIG_PARTITION_ADVANCED=y | ||
974 | # CONFIG_ACORN_PARTITION is not set | ||
975 | # CONFIG_OSF_PARTITION is not set | ||
976 | # CONFIG_AMIGA_PARTITION is not set | ||
977 | # CONFIG_ATARI_PARTITION is not set | ||
978 | # CONFIG_MAC_PARTITION is not set | ||
979 | # CONFIG_MSDOS_PARTITION is not set | ||
980 | # CONFIG_LDM_PARTITION is not set | ||
981 | # CONFIG_SGI_PARTITION is not set | ||
982 | # CONFIG_ULTRIX_PARTITION is not set | ||
983 | # CONFIG_SUN_PARTITION is not set | ||
984 | # CONFIG_KARMA_PARTITION is not set | ||
985 | # CONFIG_EFI_PARTITION is not set | ||
986 | # CONFIG_SYSV68_PARTITION is not set | ||
987 | # CONFIG_NLS is not set | ||
988 | # CONFIG_DLM is not set | ||
989 | CONFIG_UCC_SLOW=y | ||
990 | CONFIG_UCC_FAST=y | ||
991 | CONFIG_UCC=y | ||
992 | CONFIG_QE_GPIO=y | ||
993 | |||
994 | # | ||
995 | # Library routines | ||
996 | # | ||
997 | CONFIG_BITREVERSE=y | ||
998 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
999 | # CONFIG_CRC_CCITT is not set | ||
1000 | # CONFIG_CRC16 is not set | ||
1001 | # CONFIG_CRC_ITU_T is not set | ||
1002 | CONFIG_CRC32=y | ||
1003 | # CONFIG_CRC7 is not set | ||
1004 | # CONFIG_LIBCRC32C is not set | ||
1005 | CONFIG_ZLIB_INFLATE=y | ||
1006 | CONFIG_ZLIB_DEFLATE=y | ||
1007 | CONFIG_PLIST=y | ||
1008 | CONFIG_HAS_IOMEM=y | ||
1009 | CONFIG_HAS_IOPORT=y | ||
1010 | CONFIG_HAS_DMA=y | ||
1011 | CONFIG_HAVE_LMB=y | ||
1012 | |||
1013 | # | ||
1014 | # Kernel hacking | ||
1015 | # | ||
1016 | # CONFIG_PRINTK_TIME is not set | ||
1017 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1018 | CONFIG_ENABLE_MUST_CHECK=y | ||
1019 | CONFIG_FRAME_WARN=1024 | ||
1020 | # CONFIG_MAGIC_SYSRQ is not set | ||
1021 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1022 | # CONFIG_DEBUG_FS is not set | ||
1023 | # CONFIG_HEADERS_CHECK is not set | ||
1024 | # CONFIG_DEBUG_KERNEL is not set | ||
1025 | # CONFIG_SLUB_DEBUG_ON is not set | ||
1026 | # CONFIG_SLUB_STATS is not set | ||
1027 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
1028 | # CONFIG_SAMPLES is not set | ||
1029 | # CONFIG_IRQSTACKS is not set | ||
1030 | CONFIG_PPC_EARLY_DEBUG=y | ||
1031 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
1032 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
1033 | # CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set | ||
1034 | # CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set | ||
1035 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
1036 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
1037 | # CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set | ||
1038 | # CONFIG_PPC_EARLY_DEBUG_BEAT is not set | ||
1039 | # CONFIG_PPC_EARLY_DEBUG_44x is not set | ||
1040 | # CONFIG_PPC_EARLY_DEBUG_40x is not set | ||
1041 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set | ||
1042 | |||
1043 | # | ||
1044 | # Security options | ||
1045 | # | ||
1046 | # CONFIG_KEYS is not set | ||
1047 | # CONFIG_SECURITY is not set | ||
1048 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1049 | CONFIG_CRYPTO=y | ||
1050 | |||
1051 | # | ||
1052 | # Crypto core or helper | ||
1053 | # | ||
1054 | CONFIG_CRYPTO_ALGAPI=y | ||
1055 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1056 | CONFIG_CRYPTO_MANAGER=y | ||
1057 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1058 | # CONFIG_CRYPTO_NULL is not set | ||
1059 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1060 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1061 | # CONFIG_CRYPTO_TEST is not set | ||
1062 | |||
1063 | # | ||
1064 | # Authenticated Encryption with Associated Data | ||
1065 | # | ||
1066 | # CONFIG_CRYPTO_CCM is not set | ||
1067 | # CONFIG_CRYPTO_GCM is not set | ||
1068 | # CONFIG_CRYPTO_SEQIV is not set | ||
1069 | |||
1070 | # | ||
1071 | # Block modes | ||
1072 | # | ||
1073 | CONFIG_CRYPTO_CBC=y | ||
1074 | # CONFIG_CRYPTO_CTR is not set | ||
1075 | # CONFIG_CRYPTO_CTS is not set | ||
1076 | # CONFIG_CRYPTO_ECB is not set | ||
1077 | # CONFIG_CRYPTO_LRW is not set | ||
1078 | # CONFIG_CRYPTO_PCBC is not set | ||
1079 | # CONFIG_CRYPTO_XTS is not set | ||
1080 | |||
1081 | # | ||
1082 | # Hash modes | ||
1083 | # | ||
1084 | # CONFIG_CRYPTO_HMAC is not set | ||
1085 | # CONFIG_CRYPTO_XCBC is not set | ||
1086 | |||
1087 | # | ||
1088 | # Digest | ||
1089 | # | ||
1090 | # CONFIG_CRYPTO_CRC32C is not set | ||
1091 | # CONFIG_CRYPTO_MD4 is not set | ||
1092 | CONFIG_CRYPTO_MD5=y | ||
1093 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1094 | # CONFIG_CRYPTO_SHA1 is not set | ||
1095 | # CONFIG_CRYPTO_SHA256 is not set | ||
1096 | # CONFIG_CRYPTO_SHA512 is not set | ||
1097 | # CONFIG_CRYPTO_TGR192 is not set | ||
1098 | # CONFIG_CRYPTO_WP512 is not set | ||
1099 | |||
1100 | # | ||
1101 | # Ciphers | ||
1102 | # | ||
1103 | # CONFIG_CRYPTO_AES is not set | ||
1104 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1105 | # CONFIG_CRYPTO_ARC4 is not set | ||
1106 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1107 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1108 | # CONFIG_CRYPTO_CAST5 is not set | ||
1109 | # CONFIG_CRYPTO_CAST6 is not set | ||
1110 | CONFIG_CRYPTO_DES=y | ||
1111 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1112 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1113 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1114 | # CONFIG_CRYPTO_SEED is not set | ||
1115 | # CONFIG_CRYPTO_SERPENT is not set | ||
1116 | # CONFIG_CRYPTO_TEA is not set | ||
1117 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1118 | |||
1119 | # | ||
1120 | # Compression | ||
1121 | # | ||
1122 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1123 | # CONFIG_CRYPTO_LZO is not set | ||
1124 | CONFIG_CRYPTO_HW=y | ||
1125 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1126 | # CONFIG_PPC_CLOCK is not set | ||
1127 | CONFIG_PPC_LIB_RHEAP=y | ||
1128 | # CONFIG_VIRTUALIZATION is not set | ||
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig new file mode 100644 index 000000000000..5d5b898767a3 --- /dev/null +++ b/arch/powerpc/configs/85xx/tqm8548_defconfig | |||
@@ -0,0 +1,1094 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.26-rc4 | ||
4 | # Tue Jun 3 14:39:30 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | # CONFIG_6xx is not set | ||
12 | CONFIG_PPC_85xx=y | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | # CONFIG_40x is not set | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_E500=y | ||
18 | CONFIG_BOOKE=y | ||
19 | CONFIG_FSL_BOOKE=y | ||
20 | CONFIG_FSL_EMB_PERFMON=y | ||
21 | # CONFIG_PHYS_64BIT is not set | ||
22 | CONFIG_SPE=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | ||
24 | CONFIG_PPC32=y | ||
25 | CONFIG_WORD_SIZE=32 | ||
26 | CONFIG_PPC_MERGE=y | ||
27 | CONFIG_MMU=y | ||
28 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
29 | CONFIG_GENERIC_TIME=y | ||
30 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
31 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
32 | CONFIG_GENERIC_HARDIRQS=y | ||
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
34 | CONFIG_IRQ_PER_CPU=y | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | ||
36 | CONFIG_LOCKDEP_SUPPORT=y | ||
37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
38 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
39 | CONFIG_GENERIC_HWEIGHT=y | ||
40 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
41 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
42 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
43 | CONFIG_PPC=y | ||
44 | CONFIG_EARLY_PRINTK=y | ||
45 | CONFIG_GENERIC_NVRAM=y | ||
46 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
47 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
48 | CONFIG_PPC_OF=y | ||
49 | CONFIG_OF=y | ||
50 | CONFIG_PPC_UDBG_16550=y | ||
51 | # CONFIG_GENERIC_TBSYNC is not set | ||
52 | CONFIG_AUDIT_ARCH=y | ||
53 | CONFIG_GENERIC_BUG=y | ||
54 | CONFIG_DEFAULT_UIMAGE=y | ||
55 | # CONFIG_PPC_DCR_NATIVE is not set | ||
56 | # CONFIG_PPC_DCR_MMIO is not set | ||
57 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
58 | |||
59 | # | ||
60 | # General setup | ||
61 | # | ||
62 | CONFIG_EXPERIMENTAL=y | ||
63 | CONFIG_BROKEN_ON_SMP=y | ||
64 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
65 | CONFIG_LOCALVERSION="" | ||
66 | CONFIG_LOCALVERSION_AUTO=y | ||
67 | CONFIG_SWAP=y | ||
68 | CONFIG_SYSVIPC=y | ||
69 | CONFIG_SYSVIPC_SYSCTL=y | ||
70 | # CONFIG_POSIX_MQUEUE is not set | ||
71 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
72 | # CONFIG_TASKSTATS is not set | ||
73 | # CONFIG_AUDIT is not set | ||
74 | # CONFIG_IKCONFIG is not set | ||
75 | CONFIG_LOG_BUF_SHIFT=14 | ||
76 | # CONFIG_CGROUPS is not set | ||
77 | CONFIG_GROUP_SCHED=y | ||
78 | # CONFIG_FAIR_GROUP_SCHED is not set | ||
79 | # CONFIG_RT_GROUP_SCHED is not set | ||
80 | CONFIG_USER_SCHED=y | ||
81 | # CONFIG_CGROUP_SCHED is not set | ||
82 | CONFIG_SYSFS_DEPRECATED=y | ||
83 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
84 | # CONFIG_RELAY is not set | ||
85 | # CONFIG_NAMESPACES is not set | ||
86 | CONFIG_BLK_DEV_INITRD=y | ||
87 | CONFIG_INITRAMFS_SOURCE="" | ||
88 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
89 | CONFIG_SYSCTL=y | ||
90 | CONFIG_EMBEDDED=y | ||
91 | CONFIG_SYSCTL_SYSCALL=y | ||
92 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
93 | CONFIG_KALLSYMS=y | ||
94 | # CONFIG_KALLSYMS_ALL is not set | ||
95 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
96 | CONFIG_HOTPLUG=y | ||
97 | CONFIG_PRINTK=y | ||
98 | CONFIG_BUG=y | ||
99 | CONFIG_ELF_CORE=y | ||
100 | CONFIG_COMPAT_BRK=y | ||
101 | CONFIG_BASE_FULL=y | ||
102 | CONFIG_FUTEX=y | ||
103 | CONFIG_ANON_INODES=y | ||
104 | CONFIG_EPOLL=y | ||
105 | CONFIG_SIGNALFD=y | ||
106 | CONFIG_TIMERFD=y | ||
107 | CONFIG_EVENTFD=y | ||
108 | CONFIG_SHMEM=y | ||
109 | CONFIG_VM_EVENT_COUNTERS=y | ||
110 | CONFIG_SLUB_DEBUG=y | ||
111 | # CONFIG_SLAB is not set | ||
112 | CONFIG_SLUB=y | ||
113 | # CONFIG_SLOB is not set | ||
114 | # CONFIG_PROFILING is not set | ||
115 | # CONFIG_MARKERS is not set | ||
116 | CONFIG_HAVE_OPROFILE=y | ||
117 | # CONFIG_KPROBES is not set | ||
118 | CONFIG_HAVE_KPROBES=y | ||
119 | CONFIG_HAVE_KRETPROBES=y | ||
120 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
121 | CONFIG_PROC_PAGE_MONITOR=y | ||
122 | CONFIG_SLABINFO=y | ||
123 | CONFIG_RT_MUTEXES=y | ||
124 | # CONFIG_TINY_SHMEM is not set | ||
125 | CONFIG_BASE_SMALL=0 | ||
126 | CONFIG_MODULES=y | ||
127 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
128 | CONFIG_MODULE_UNLOAD=y | ||
129 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
130 | # CONFIG_MODVERSIONS is not set | ||
131 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
132 | # CONFIG_KMOD is not set | ||
133 | CONFIG_BLOCK=y | ||
134 | # CONFIG_LBD is not set | ||
135 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
136 | # CONFIG_LSF is not set | ||
137 | # CONFIG_BLK_DEV_BSG is not set | ||
138 | |||
139 | # | ||
140 | # IO Schedulers | ||
141 | # | ||
142 | CONFIG_IOSCHED_NOOP=y | ||
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | ||
145 | CONFIG_IOSCHED_CFQ=y | ||
146 | CONFIG_DEFAULT_AS=y | ||
147 | # CONFIG_DEFAULT_DEADLINE is not set | ||
148 | # CONFIG_DEFAULT_CFQ is not set | ||
149 | # CONFIG_DEFAULT_NOOP is not set | ||
150 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
151 | CONFIG_CLASSIC_RCU=y | ||
152 | |||
153 | # | ||
154 | # Platform support | ||
155 | # | ||
156 | # CONFIG_PPC_MPC512x is not set | ||
157 | # CONFIG_PPC_MPC5121 is not set | ||
158 | # CONFIG_PPC_CELL is not set | ||
159 | # CONFIG_PPC_CELL_NATIVE is not set | ||
160 | # CONFIG_PQ2ADS is not set | ||
161 | CONFIG_MPC85xx=y | ||
162 | # CONFIG_MPC8540_ADS is not set | ||
163 | # CONFIG_MPC8560_ADS is not set | ||
164 | # CONFIG_MPC85xx_CDS is not set | ||
165 | # CONFIG_MPC85xx_MDS is not set | ||
166 | # CONFIG_MPC85xx_DS is not set | ||
167 | # CONFIG_KSI8560 is not set | ||
168 | # CONFIG_STX_GP3 is not set | ||
169 | # CONFIG_TQM8540 is not set | ||
170 | # CONFIG_TQM8541 is not set | ||
171 | CONFIG_TQM8548=y | ||
172 | # CONFIG_TQM8555 is not set | ||
173 | # CONFIG_TQM8560 is not set | ||
174 | # CONFIG_SBC8548 is not set | ||
175 | # CONFIG_SBC8560 is not set | ||
176 | CONFIG_TQM85xx=y | ||
177 | # CONFIG_IPIC is not set | ||
178 | CONFIG_MPIC=y | ||
179 | # CONFIG_MPIC_WEIRD is not set | ||
180 | # CONFIG_PPC_I8259 is not set | ||
181 | # CONFIG_PPC_RTAS is not set | ||
182 | # CONFIG_MMIO_NVRAM is not set | ||
183 | # CONFIG_PPC_MPC106 is not set | ||
184 | # CONFIG_PPC_970_NAP is not set | ||
185 | # CONFIG_PPC_INDIRECT_IO is not set | ||
186 | # CONFIG_GENERIC_IOMAP is not set | ||
187 | # CONFIG_CPU_FREQ is not set | ||
188 | # CONFIG_CPM2 is not set | ||
189 | CONFIG_PPC_CPM_NEW_BINDING=y | ||
190 | # CONFIG_FSL_ULI1575 is not set | ||
191 | |||
192 | # | ||
193 | # Kernel options | ||
194 | # | ||
195 | # CONFIG_HIGHMEM is not set | ||
196 | CONFIG_TICK_ONESHOT=y | ||
197 | CONFIG_NO_HZ=y | ||
198 | CONFIG_HIGH_RES_TIMERS=y | ||
199 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
200 | # CONFIG_HZ_100 is not set | ||
201 | CONFIG_HZ_250=y | ||
202 | # CONFIG_HZ_300 is not set | ||
203 | # CONFIG_HZ_1000 is not set | ||
204 | CONFIG_HZ=250 | ||
205 | # CONFIG_SCHED_HRTICK is not set | ||
206 | CONFIG_PREEMPT_NONE=y | ||
207 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
208 | # CONFIG_PREEMPT is not set | ||
209 | CONFIG_BINFMT_ELF=y | ||
210 | CONFIG_BINFMT_MISC=y | ||
211 | CONFIG_MATH_EMULATION=y | ||
212 | # CONFIG_IOMMU_HELPER is not set | ||
213 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
214 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
215 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
216 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
217 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
218 | CONFIG_SELECT_MEMORY_MODEL=y | ||
219 | CONFIG_FLATMEM_MANUAL=y | ||
220 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
221 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
222 | CONFIG_FLATMEM=y | ||
223 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
224 | # CONFIG_SPARSEMEM_STATIC is not set | ||
225 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
226 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
227 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
228 | # CONFIG_RESOURCES_64BIT is not set | ||
229 | CONFIG_ZONE_DMA_FLAG=1 | ||
230 | CONFIG_BOUNCE=y | ||
231 | CONFIG_VIRT_TO_BUS=y | ||
232 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
233 | CONFIG_PROC_DEVICETREE=y | ||
234 | # CONFIG_CMDLINE_BOOL is not set | ||
235 | # CONFIG_PM is not set | ||
236 | # CONFIG_SECCOMP is not set | ||
237 | CONFIG_ISA_DMA_API=y | ||
238 | |||
239 | # | ||
240 | # Bus options | ||
241 | # | ||
242 | CONFIG_ZONE_DMA=y | ||
243 | CONFIG_PPC_INDIRECT_PCI=y | ||
244 | CONFIG_FSL_SOC=y | ||
245 | CONFIG_FSL_PCI=y | ||
246 | CONFIG_FSL_LBC=y | ||
247 | CONFIG_PCI=y | ||
248 | CONFIG_PCI_DOMAINS=y | ||
249 | CONFIG_PCI_SYSCALL=y | ||
250 | CONFIG_PCIEPORTBUS=y | ||
251 | CONFIG_PCIEAER=y | ||
252 | # CONFIG_PCIEASPM is not set | ||
253 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
254 | # CONFIG_PCI_MSI is not set | ||
255 | CONFIG_PCI_LEGACY=y | ||
256 | # CONFIG_PCI_DEBUG is not set | ||
257 | # CONFIG_PCCARD is not set | ||
258 | # CONFIG_HOTPLUG_PCI is not set | ||
259 | # CONFIG_HAS_RAPIDIO is not set | ||
260 | |||
261 | # | ||
262 | # Advanced setup | ||
263 | # | ||
264 | # CONFIG_ADVANCED_OPTIONS is not set | ||
265 | |||
266 | # | ||
267 | # Default settings for advanced configuration options are used | ||
268 | # | ||
269 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
270 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
271 | CONFIG_KERNEL_START=0xc0000000 | ||
272 | CONFIG_PHYSICAL_START=0x00000000 | ||
273 | CONFIG_PHYSICAL_ALIGN=0x10000000 | ||
274 | CONFIG_TASK_SIZE=0xc0000000 | ||
275 | |||
276 | # | ||
277 | # Networking | ||
278 | # | ||
279 | CONFIG_NET=y | ||
280 | |||
281 | # | ||
282 | # Networking options | ||
283 | # | ||
284 | CONFIG_PACKET=y | ||
285 | # CONFIG_PACKET_MMAP is not set | ||
286 | CONFIG_UNIX=y | ||
287 | CONFIG_XFRM=y | ||
288 | CONFIG_XFRM_USER=y | ||
289 | # CONFIG_XFRM_SUB_POLICY is not set | ||
290 | # CONFIG_XFRM_MIGRATE is not set | ||
291 | # CONFIG_XFRM_STATISTICS is not set | ||
292 | # CONFIG_NET_KEY is not set | ||
293 | CONFIG_INET=y | ||
294 | CONFIG_IP_MULTICAST=y | ||
295 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
296 | CONFIG_IP_FIB_HASH=y | ||
297 | CONFIG_IP_PNP=y | ||
298 | CONFIG_IP_PNP_DHCP=y | ||
299 | CONFIG_IP_PNP_BOOTP=y | ||
300 | # CONFIG_IP_PNP_RARP is not set | ||
301 | # CONFIG_NET_IPIP is not set | ||
302 | # CONFIG_NET_IPGRE is not set | ||
303 | # CONFIG_IP_MROUTE is not set | ||
304 | # CONFIG_ARPD is not set | ||
305 | CONFIG_SYN_COOKIES=y | ||
306 | # CONFIG_INET_AH is not set | ||
307 | # CONFIG_INET_ESP is not set | ||
308 | # CONFIG_INET_IPCOMP is not set | ||
309 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
310 | # CONFIG_INET_TUNNEL is not set | ||
311 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
312 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
313 | CONFIG_INET_XFRM_MODE_BEET=y | ||
314 | # CONFIG_INET_LRO is not set | ||
315 | CONFIG_INET_DIAG=y | ||
316 | CONFIG_INET_TCP_DIAG=y | ||
317 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
318 | CONFIG_TCP_CONG_CUBIC=y | ||
319 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
320 | # CONFIG_TCP_MD5SIG is not set | ||
321 | # CONFIG_IPV6 is not set | ||
322 | # CONFIG_NETWORK_SECMARK is not set | ||
323 | # CONFIG_NETFILTER is not set | ||
324 | # CONFIG_IP_DCCP is not set | ||
325 | # CONFIG_IP_SCTP is not set | ||
326 | # CONFIG_TIPC is not set | ||
327 | # CONFIG_ATM is not set | ||
328 | # CONFIG_BRIDGE is not set | ||
329 | # CONFIG_VLAN_8021Q is not set | ||
330 | # CONFIG_DECNET is not set | ||
331 | # CONFIG_LLC2 is not set | ||
332 | # CONFIG_IPX is not set | ||
333 | # CONFIG_ATALK is not set | ||
334 | # CONFIG_X25 is not set | ||
335 | # CONFIG_LAPB is not set | ||
336 | # CONFIG_ECONET is not set | ||
337 | # CONFIG_WAN_ROUTER is not set | ||
338 | # CONFIG_NET_SCHED is not set | ||
339 | |||
340 | # | ||
341 | # Network testing | ||
342 | # | ||
343 | # CONFIG_NET_PKTGEN is not set | ||
344 | # CONFIG_HAMRADIO is not set | ||
345 | # CONFIG_CAN is not set | ||
346 | # CONFIG_IRDA is not set | ||
347 | # CONFIG_BT is not set | ||
348 | # CONFIG_AF_RXRPC is not set | ||
349 | |||
350 | # | ||
351 | # Wireless | ||
352 | # | ||
353 | # CONFIG_CFG80211 is not set | ||
354 | # CONFIG_WIRELESS_EXT is not set | ||
355 | # CONFIG_MAC80211 is not set | ||
356 | # CONFIG_IEEE80211 is not set | ||
357 | # CONFIG_RFKILL is not set | ||
358 | # CONFIG_NET_9P is not set | ||
359 | |||
360 | # | ||
361 | # Device Drivers | ||
362 | # | ||
363 | |||
364 | # | ||
365 | # Generic Driver Options | ||
366 | # | ||
367 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
368 | CONFIG_STANDALONE=y | ||
369 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
370 | # CONFIG_FW_LOADER is not set | ||
371 | # CONFIG_DEBUG_DRIVER is not set | ||
372 | # CONFIG_DEBUG_DEVRES is not set | ||
373 | # CONFIG_SYS_HYPERVISOR is not set | ||
374 | # CONFIG_CONNECTOR is not set | ||
375 | CONFIG_MTD=y | ||
376 | # CONFIG_MTD_DEBUG is not set | ||
377 | # CONFIG_MTD_CONCAT is not set | ||
378 | CONFIG_MTD_PARTITIONS=y | ||
379 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
380 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
381 | CONFIG_MTD_OF_PARTS=y | ||
382 | # CONFIG_MTD_AR7_PARTS is not set | ||
383 | |||
384 | # | ||
385 | # User Modules And Translation Layers | ||
386 | # | ||
387 | CONFIG_MTD_CHAR=y | ||
388 | CONFIG_MTD_BLKDEVS=y | ||
389 | # CONFIG_MTD_BLOCK is not set | ||
390 | # CONFIG_MTD_BLOCK_RO is not set | ||
391 | # CONFIG_FTL is not set | ||
392 | # CONFIG_NFTL is not set | ||
393 | # CONFIG_INFTL is not set | ||
394 | # CONFIG_RFD_FTL is not set | ||
395 | # CONFIG_SSFDC is not set | ||
396 | # CONFIG_MTD_OOPS is not set | ||
397 | |||
398 | # | ||
399 | # RAM/ROM/Flash chip drivers | ||
400 | # | ||
401 | CONFIG_MTD_CFI=y | ||
402 | # CONFIG_MTD_JEDECPROBE is not set | ||
403 | CONFIG_MTD_GEN_PROBE=y | ||
404 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
405 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
406 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
407 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
408 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
409 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
410 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
411 | CONFIG_MTD_CFI_I1=y | ||
412 | CONFIG_MTD_CFI_I2=y | ||
413 | # CONFIG_MTD_CFI_I4 is not set | ||
414 | # CONFIG_MTD_CFI_I8 is not set | ||
415 | # CONFIG_MTD_CFI_INTELEXT is not set | ||
416 | CONFIG_MTD_CFI_AMDSTD=y | ||
417 | # CONFIG_MTD_CFI_STAA is not set | ||
418 | CONFIG_MTD_CFI_UTIL=y | ||
419 | # CONFIG_MTD_RAM is not set | ||
420 | # CONFIG_MTD_ROM is not set | ||
421 | # CONFIG_MTD_ABSENT is not set | ||
422 | |||
423 | # | ||
424 | # Mapping drivers for chip access | ||
425 | # | ||
426 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
427 | # CONFIG_MTD_PHYSMAP is not set | ||
428 | CONFIG_MTD_PHYSMAP_OF=y | ||
429 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
430 | # CONFIG_MTD_PLATRAM is not set | ||
431 | |||
432 | # | ||
433 | # Self-contained MTD device drivers | ||
434 | # | ||
435 | # CONFIG_MTD_PMC551 is not set | ||
436 | # CONFIG_MTD_SLRAM is not set | ||
437 | # CONFIG_MTD_PHRAM is not set | ||
438 | # CONFIG_MTD_MTDRAM is not set | ||
439 | # CONFIG_MTD_BLOCK2MTD is not set | ||
440 | |||
441 | # | ||
442 | # Disk-On-Chip Device Drivers | ||
443 | # | ||
444 | # CONFIG_MTD_DOC2000 is not set | ||
445 | # CONFIG_MTD_DOC2001 is not set | ||
446 | # CONFIG_MTD_DOC2001PLUS is not set | ||
447 | CONFIG_MTD_NAND=y | ||
448 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
449 | CONFIG_MTD_NAND_ECC_SMC=y | ||
450 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
451 | CONFIG_MTD_NAND_IDS=y | ||
452 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
453 | # CONFIG_MTD_NAND_CAFE is not set | ||
454 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
455 | # CONFIG_MTD_NAND_PLATFORM is not set | ||
456 | # CONFIG_MTD_NAND_FSL_ELBC is not set | ||
457 | CONFIG_MTD_NAND_FSL_UPM=y | ||
458 | # CONFIG_MTD_ONENAND is not set | ||
459 | |||
460 | # | ||
461 | # UBI - Unsorted block images | ||
462 | # | ||
463 | CONFIG_MTD_UBI=m | ||
464 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | ||
465 | CONFIG_MTD_UBI_BEB_RESERVE=1 | ||
466 | # CONFIG_MTD_UBI_GLUEBI is not set | ||
467 | |||
468 | # | ||
469 | # UBI debugging options | ||
470 | # | ||
471 | # CONFIG_MTD_UBI_DEBUG is not set | ||
472 | CONFIG_OF_DEVICE=y | ||
473 | # CONFIG_PARPORT is not set | ||
474 | CONFIG_BLK_DEV=y | ||
475 | # CONFIG_BLK_DEV_FD is not set | ||
476 | # CONFIG_BLK_CPQ_DA is not set | ||
477 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
478 | # CONFIG_BLK_DEV_DAC960 is not set | ||
479 | # CONFIG_BLK_DEV_UMEM is not set | ||
480 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
481 | CONFIG_BLK_DEV_LOOP=y | ||
482 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
483 | # CONFIG_BLK_DEV_NBD is not set | ||
484 | # CONFIG_BLK_DEV_SX8 is not set | ||
485 | CONFIG_BLK_DEV_RAM=y | ||
486 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
487 | CONFIG_BLK_DEV_RAM_SIZE=32768 | ||
488 | # CONFIG_BLK_DEV_XIP is not set | ||
489 | # CONFIG_CDROM_PKTCDVD is not set | ||
490 | # CONFIG_ATA_OVER_ETH is not set | ||
491 | CONFIG_MISC_DEVICES=y | ||
492 | # CONFIG_PHANTOM is not set | ||
493 | # CONFIG_EEPROM_93CX6 is not set | ||
494 | # CONFIG_SGI_IOC4 is not set | ||
495 | # CONFIG_TIFM_CORE is not set | ||
496 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
497 | CONFIG_HAVE_IDE=y | ||
498 | CONFIG_IDE=y | ||
499 | CONFIG_IDE_MAX_HWIFS=4 | ||
500 | CONFIG_BLK_DEV_IDE=y | ||
501 | |||
502 | # | ||
503 | # Please see Documentation/ide/ide.txt for help/info on IDE drives | ||
504 | # | ||
505 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
506 | # CONFIG_BLK_DEV_IDEDISK is not set | ||
507 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
508 | # CONFIG_BLK_DEV_IDECD is not set | ||
509 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
510 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
511 | # CONFIG_IDE_TASK_IOCTL is not set | ||
512 | CONFIG_IDE_PROC_FS=y | ||
513 | |||
514 | # | ||
515 | # IDE chipset support/bugfixes | ||
516 | # | ||
517 | CONFIG_IDE_GENERIC=y | ||
518 | # CONFIG_BLK_DEV_PLATFORM is not set | ||
519 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
520 | |||
521 | # | ||
522 | # PCI IDE chipsets support | ||
523 | # | ||
524 | CONFIG_BLK_DEV_IDEPCI=y | ||
525 | CONFIG_IDEPCI_PCIBUS_ORDER=y | ||
526 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
527 | CONFIG_BLK_DEV_GENERIC=y | ||
528 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
529 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
530 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
531 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
532 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
533 | # CONFIG_BLK_DEV_CMD64X is not set | ||
534 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
535 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
536 | # CONFIG_BLK_DEV_CS5520 is not set | ||
537 | # CONFIG_BLK_DEV_CS5530 is not set | ||
538 | # CONFIG_BLK_DEV_HPT34X is not set | ||
539 | # CONFIG_BLK_DEV_HPT366 is not set | ||
540 | # CONFIG_BLK_DEV_JMICRON is not set | ||
541 | # CONFIG_BLK_DEV_SC1200 is not set | ||
542 | # CONFIG_BLK_DEV_PIIX is not set | ||
543 | # CONFIG_BLK_DEV_IT8213 is not set | ||
544 | # CONFIG_BLK_DEV_IT821X is not set | ||
545 | # CONFIG_BLK_DEV_NS87415 is not set | ||
546 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
547 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
548 | # CONFIG_BLK_DEV_SVWKS is not set | ||
549 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
550 | # CONFIG_BLK_DEV_SL82C105 is not set | ||
551 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
552 | # CONFIG_BLK_DEV_TRM290 is not set | ||
553 | CONFIG_BLK_DEV_VIA82CXXX=y | ||
554 | # CONFIG_BLK_DEV_TC86C001 is not set | ||
555 | CONFIG_BLK_DEV_IDEDMA=y | ||
556 | # CONFIG_BLK_DEV_HD_ONLY is not set | ||
557 | # CONFIG_BLK_DEV_HD is not set | ||
558 | |||
559 | # | ||
560 | # SCSI device support | ||
561 | # | ||
562 | # CONFIG_RAID_ATTRS is not set | ||
563 | # CONFIG_SCSI is not set | ||
564 | # CONFIG_SCSI_DMA is not set | ||
565 | # CONFIG_SCSI_NETLINK is not set | ||
566 | # CONFIG_ATA is not set | ||
567 | # CONFIG_MD is not set | ||
568 | # CONFIG_FUSION is not set | ||
569 | |||
570 | # | ||
571 | # IEEE 1394 (FireWire) support | ||
572 | # | ||
573 | # CONFIG_FIREWIRE is not set | ||
574 | # CONFIG_IEEE1394 is not set | ||
575 | # CONFIG_I2O is not set | ||
576 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
577 | CONFIG_NETDEVICES=y | ||
578 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
579 | # CONFIG_DUMMY is not set | ||
580 | # CONFIG_BONDING is not set | ||
581 | # CONFIG_MACVLAN is not set | ||
582 | # CONFIG_EQUALIZER is not set | ||
583 | # CONFIG_TUN is not set | ||
584 | # CONFIG_VETH is not set | ||
585 | # CONFIG_ARCNET is not set | ||
586 | CONFIG_PHYLIB=y | ||
587 | |||
588 | # | ||
589 | # MII PHY device drivers | ||
590 | # | ||
591 | # CONFIG_MARVELL_PHY is not set | ||
592 | # CONFIG_DAVICOM_PHY is not set | ||
593 | # CONFIG_QSEMI_PHY is not set | ||
594 | # CONFIG_LXT_PHY is not set | ||
595 | # CONFIG_CICADA_PHY is not set | ||
596 | # CONFIG_VITESSE_PHY is not set | ||
597 | # CONFIG_SMSC_PHY is not set | ||
598 | # CONFIG_BROADCOM_PHY is not set | ||
599 | # CONFIG_ICPLUS_PHY is not set | ||
600 | # CONFIG_REALTEK_PHY is not set | ||
601 | # CONFIG_FIXED_PHY is not set | ||
602 | # CONFIG_MDIO_BITBANG is not set | ||
603 | CONFIG_NET_ETHERNET=y | ||
604 | CONFIG_MII=y | ||
605 | # CONFIG_HAPPYMEAL is not set | ||
606 | # CONFIG_SUNGEM is not set | ||
607 | # CONFIG_CASSINI is not set | ||
608 | # CONFIG_NET_VENDOR_3COM is not set | ||
609 | # CONFIG_NET_TULIP is not set | ||
610 | # CONFIG_HP100 is not set | ||
611 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
612 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
613 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
614 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
615 | # CONFIG_NET_PCI is not set | ||
616 | # CONFIG_B44 is not set | ||
617 | CONFIG_NETDEV_1000=y | ||
618 | # CONFIG_ACENIC is not set | ||
619 | # CONFIG_DL2K is not set | ||
620 | CONFIG_E1000=y | ||
621 | CONFIG_E1000_NAPI=y | ||
622 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | ||
623 | # CONFIG_E1000E is not set | ||
624 | # CONFIG_E1000E_ENABLED is not set | ||
625 | # CONFIG_IP1000 is not set | ||
626 | # CONFIG_IGB is not set | ||
627 | # CONFIG_NS83820 is not set | ||
628 | # CONFIG_HAMACHI is not set | ||
629 | # CONFIG_YELLOWFIN is not set | ||
630 | # CONFIG_R8169 is not set | ||
631 | # CONFIG_SIS190 is not set | ||
632 | # CONFIG_SKGE is not set | ||
633 | # CONFIG_SKY2 is not set | ||
634 | # CONFIG_VIA_VELOCITY is not set | ||
635 | # CONFIG_TIGON3 is not set | ||
636 | # CONFIG_BNX2 is not set | ||
637 | CONFIG_GIANFAR=y | ||
638 | CONFIG_GFAR_NAPI=y | ||
639 | # CONFIG_QLA3XXX is not set | ||
640 | # CONFIG_ATL1 is not set | ||
641 | CONFIG_NETDEV_10000=y | ||
642 | # CONFIG_CHELSIO_T1 is not set | ||
643 | # CONFIG_CHELSIO_T3 is not set | ||
644 | # CONFIG_IXGBE is not set | ||
645 | # CONFIG_IXGB is not set | ||
646 | # CONFIG_S2IO is not set | ||
647 | # CONFIG_MYRI10GE is not set | ||
648 | # CONFIG_NETXEN_NIC is not set | ||
649 | # CONFIG_NIU is not set | ||
650 | # CONFIG_MLX4_CORE is not set | ||
651 | # CONFIG_TEHUTI is not set | ||
652 | # CONFIG_BNX2X is not set | ||
653 | # CONFIG_SFC is not set | ||
654 | # CONFIG_TR is not set | ||
655 | |||
656 | # | ||
657 | # Wireless LAN | ||
658 | # | ||
659 | # CONFIG_WLAN_PRE80211 is not set | ||
660 | # CONFIG_WLAN_80211 is not set | ||
661 | # CONFIG_IWLWIFI_LEDS is not set | ||
662 | # CONFIG_WAN is not set | ||
663 | # CONFIG_FDDI is not set | ||
664 | # CONFIG_HIPPI is not set | ||
665 | # CONFIG_PPP is not set | ||
666 | # CONFIG_SLIP is not set | ||
667 | # CONFIG_NETCONSOLE is not set | ||
668 | # CONFIG_NETPOLL is not set | ||
669 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
670 | # CONFIG_ISDN is not set | ||
671 | # CONFIG_PHONE is not set | ||
672 | |||
673 | # | ||
674 | # Input device support | ||
675 | # | ||
676 | CONFIG_INPUT=y | ||
677 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
678 | # CONFIG_INPUT_POLLDEV is not set | ||
679 | |||
680 | # | ||
681 | # Userland interfaces | ||
682 | # | ||
683 | # CONFIG_INPUT_MOUSEDEV is not set | ||
684 | # CONFIG_INPUT_JOYDEV is not set | ||
685 | # CONFIG_INPUT_EVDEV is not set | ||
686 | # CONFIG_INPUT_EVBUG is not set | ||
687 | |||
688 | # | ||
689 | # Input Device Drivers | ||
690 | # | ||
691 | # CONFIG_INPUT_KEYBOARD is not set | ||
692 | # CONFIG_INPUT_MOUSE is not set | ||
693 | # CONFIG_INPUT_JOYSTICK is not set | ||
694 | # CONFIG_INPUT_TABLET is not set | ||
695 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
696 | # CONFIG_INPUT_MISC is not set | ||
697 | |||
698 | # | ||
699 | # Hardware I/O ports | ||
700 | # | ||
701 | # CONFIG_SERIO is not set | ||
702 | # CONFIG_GAMEPORT is not set | ||
703 | |||
704 | # | ||
705 | # Character devices | ||
706 | # | ||
707 | # CONFIG_VT is not set | ||
708 | CONFIG_DEVKMEM=y | ||
709 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
710 | # CONFIG_NOZOMI is not set | ||
711 | |||
712 | # | ||
713 | # Serial drivers | ||
714 | # | ||
715 | CONFIG_SERIAL_8250=y | ||
716 | CONFIG_SERIAL_8250_CONSOLE=y | ||
717 | CONFIG_SERIAL_8250_PCI=y | ||
718 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
719 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
720 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
721 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
722 | |||
723 | # | ||
724 | # Non-8250 serial port support | ||
725 | # | ||
726 | # CONFIG_SERIAL_UARTLITE is not set | ||
727 | CONFIG_SERIAL_CORE=y | ||
728 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
729 | # CONFIG_SERIAL_JSM is not set | ||
730 | # CONFIG_SERIAL_OF_PLATFORM is not set | ||
731 | CONFIG_UNIX98_PTYS=y | ||
732 | CONFIG_LEGACY_PTYS=y | ||
733 | CONFIG_LEGACY_PTY_COUNT=256 | ||
734 | # CONFIG_IPMI_HANDLER is not set | ||
735 | # CONFIG_HW_RANDOM is not set | ||
736 | # CONFIG_NVRAM is not set | ||
737 | CONFIG_GEN_RTC=y | ||
738 | # CONFIG_GEN_RTC_X is not set | ||
739 | # CONFIG_R3964 is not set | ||
740 | # CONFIG_APPLICOM is not set | ||
741 | # CONFIG_RAW_DRIVER is not set | ||
742 | # CONFIG_TCG_TPM is not set | ||
743 | CONFIG_DEVPORT=y | ||
744 | # CONFIG_I2C is not set | ||
745 | # CONFIG_SPI is not set | ||
746 | # CONFIG_W1 is not set | ||
747 | # CONFIG_POWER_SUPPLY is not set | ||
748 | CONFIG_HWMON=y | ||
749 | # CONFIG_HWMON_VID is not set | ||
750 | # CONFIG_SENSORS_I5K_AMB is not set | ||
751 | # CONFIG_SENSORS_F71805F is not set | ||
752 | # CONFIG_SENSORS_F71882FG is not set | ||
753 | # CONFIG_SENSORS_IT87 is not set | ||
754 | # CONFIG_SENSORS_PC87360 is not set | ||
755 | # CONFIG_SENSORS_PC87427 is not set | ||
756 | # CONFIG_SENSORS_SIS5595 is not set | ||
757 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
758 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
759 | # CONFIG_SENSORS_VIA686A is not set | ||
760 | # CONFIG_SENSORS_VT1211 is not set | ||
761 | # CONFIG_SENSORS_VT8231 is not set | ||
762 | # CONFIG_SENSORS_W83627HF is not set | ||
763 | # CONFIG_SENSORS_W83627EHF is not set | ||
764 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
765 | # CONFIG_THERMAL is not set | ||
766 | # CONFIG_WATCHDOG is not set | ||
767 | |||
768 | # | ||
769 | # Sonics Silicon Backplane | ||
770 | # | ||
771 | CONFIG_SSB_POSSIBLE=y | ||
772 | # CONFIG_SSB is not set | ||
773 | |||
774 | # | ||
775 | # Multifunction device drivers | ||
776 | # | ||
777 | # CONFIG_MFD_SM501 is not set | ||
778 | # CONFIG_HTC_PASIC3 is not set | ||
779 | |||
780 | # | ||
781 | # Multimedia devices | ||
782 | # | ||
783 | |||
784 | # | ||
785 | # Multimedia core support | ||
786 | # | ||
787 | # CONFIG_VIDEO_DEV is not set | ||
788 | # CONFIG_DVB_CORE is not set | ||
789 | # CONFIG_VIDEO_MEDIA is not set | ||
790 | |||
791 | # | ||
792 | # Multimedia drivers | ||
793 | # | ||
794 | CONFIG_DAB=y | ||
795 | |||
796 | # | ||
797 | # Graphics support | ||
798 | # | ||
799 | # CONFIG_AGP is not set | ||
800 | # CONFIG_DRM is not set | ||
801 | # CONFIG_VGASTATE is not set | ||
802 | CONFIG_VIDEO_OUTPUT_CONTROL=y | ||
803 | # CONFIG_FB is not set | ||
804 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
805 | |||
806 | # | ||
807 | # Display device support | ||
808 | # | ||
809 | # CONFIG_DISPLAY_SUPPORT is not set | ||
810 | |||
811 | # | ||
812 | # Sound | ||
813 | # | ||
814 | # CONFIG_SOUND is not set | ||
815 | CONFIG_HID_SUPPORT=y | ||
816 | CONFIG_HID=y | ||
817 | # CONFIG_HID_DEBUG is not set | ||
818 | # CONFIG_HIDRAW is not set | ||
819 | CONFIG_USB_SUPPORT=y | ||
820 | CONFIG_USB_ARCH_HAS_HCD=y | ||
821 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
822 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
823 | # CONFIG_USB is not set | ||
824 | # CONFIG_USB_OTG_WHITELIST is not set | ||
825 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
826 | |||
827 | # | ||
828 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
829 | # | ||
830 | # CONFIG_USB_GADGET is not set | ||
831 | # CONFIG_MMC is not set | ||
832 | # CONFIG_MEMSTICK is not set | ||
833 | # CONFIG_NEW_LEDS is not set | ||
834 | # CONFIG_ACCESSIBILITY is not set | ||
835 | # CONFIG_INFINIBAND is not set | ||
836 | # CONFIG_EDAC is not set | ||
837 | # CONFIG_RTC_CLASS is not set | ||
838 | # CONFIG_DMADEVICES is not set | ||
839 | # CONFIG_UIO is not set | ||
840 | |||
841 | # | ||
842 | # File systems | ||
843 | # | ||
844 | CONFIG_EXT2_FS=y | ||
845 | # CONFIG_EXT2_FS_XATTR is not set | ||
846 | # CONFIG_EXT2_FS_XIP is not set | ||
847 | CONFIG_EXT3_FS=y | ||
848 | CONFIG_EXT3_FS_XATTR=y | ||
849 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
850 | # CONFIG_EXT3_FS_SECURITY is not set | ||
851 | # CONFIG_EXT4DEV_FS is not set | ||
852 | CONFIG_JBD=y | ||
853 | CONFIG_FS_MBCACHE=y | ||
854 | # CONFIG_REISERFS_FS is not set | ||
855 | # CONFIG_JFS_FS is not set | ||
856 | # CONFIG_FS_POSIX_ACL is not set | ||
857 | # CONFIG_XFS_FS is not set | ||
858 | # CONFIG_OCFS2_FS is not set | ||
859 | CONFIG_DNOTIFY=y | ||
860 | CONFIG_INOTIFY=y | ||
861 | CONFIG_INOTIFY_USER=y | ||
862 | # CONFIG_QUOTA is not set | ||
863 | # CONFIG_AUTOFS_FS is not set | ||
864 | # CONFIG_AUTOFS4_FS is not set | ||
865 | # CONFIG_FUSE_FS is not set | ||
866 | |||
867 | # | ||
868 | # CD-ROM/DVD Filesystems | ||
869 | # | ||
870 | # CONFIG_ISO9660_FS is not set | ||
871 | # CONFIG_UDF_FS is not set | ||
872 | |||
873 | # | ||
874 | # DOS/FAT/NT Filesystems | ||
875 | # | ||
876 | # CONFIG_MSDOS_FS is not set | ||
877 | # CONFIG_VFAT_FS is not set | ||
878 | # CONFIG_NTFS_FS is not set | ||
879 | |||
880 | # | ||
881 | # Pseudo filesystems | ||
882 | # | ||
883 | CONFIG_PROC_FS=y | ||
884 | CONFIG_PROC_KCORE=y | ||
885 | CONFIG_PROC_SYSCTL=y | ||
886 | CONFIG_SYSFS=y | ||
887 | CONFIG_TMPFS=y | ||
888 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
889 | # CONFIG_HUGETLB_PAGE is not set | ||
890 | # CONFIG_CONFIGFS_FS is not set | ||
891 | |||
892 | # | ||
893 | # Miscellaneous filesystems | ||
894 | # | ||
895 | # CONFIG_ADFS_FS is not set | ||
896 | # CONFIG_AFFS_FS is not set | ||
897 | # CONFIG_HFS_FS is not set | ||
898 | # CONFIG_HFSPLUS_FS is not set | ||
899 | # CONFIG_BEFS_FS is not set | ||
900 | # CONFIG_BFS_FS is not set | ||
901 | # CONFIG_EFS_FS is not set | ||
902 | # CONFIG_JFFS2_FS is not set | ||
903 | # CONFIG_CRAMFS is not set | ||
904 | # CONFIG_VXFS_FS is not set | ||
905 | # CONFIG_MINIX_FS is not set | ||
906 | # CONFIG_HPFS_FS is not set | ||
907 | # CONFIG_QNX4FS_FS is not set | ||
908 | # CONFIG_ROMFS_FS is not set | ||
909 | # CONFIG_SYSV_FS is not set | ||
910 | # CONFIG_UFS_FS is not set | ||
911 | CONFIG_NETWORK_FILESYSTEMS=y | ||
912 | CONFIG_NFS_FS=y | ||
913 | # CONFIG_NFS_V3 is not set | ||
914 | # CONFIG_NFS_V4 is not set | ||
915 | # CONFIG_NFSD is not set | ||
916 | CONFIG_ROOT_NFS=y | ||
917 | CONFIG_LOCKD=y | ||
918 | CONFIG_NFS_COMMON=y | ||
919 | CONFIG_SUNRPC=y | ||
920 | # CONFIG_SUNRPC_BIND34 is not set | ||
921 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
922 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
923 | # CONFIG_SMB_FS is not set | ||
924 | # CONFIG_CIFS is not set | ||
925 | # CONFIG_NCP_FS is not set | ||
926 | # CONFIG_CODA_FS is not set | ||
927 | # CONFIG_AFS_FS is not set | ||
928 | |||
929 | # | ||
930 | # Partition Types | ||
931 | # | ||
932 | CONFIG_PARTITION_ADVANCED=y | ||
933 | # CONFIG_ACORN_PARTITION is not set | ||
934 | # CONFIG_OSF_PARTITION is not set | ||
935 | # CONFIG_AMIGA_PARTITION is not set | ||
936 | # CONFIG_ATARI_PARTITION is not set | ||
937 | # CONFIG_MAC_PARTITION is not set | ||
938 | # CONFIG_MSDOS_PARTITION is not set | ||
939 | # CONFIG_LDM_PARTITION is not set | ||
940 | # CONFIG_SGI_PARTITION is not set | ||
941 | # CONFIG_ULTRIX_PARTITION is not set | ||
942 | # CONFIG_SUN_PARTITION is not set | ||
943 | # CONFIG_KARMA_PARTITION is not set | ||
944 | # CONFIG_EFI_PARTITION is not set | ||
945 | # CONFIG_SYSV68_PARTITION is not set | ||
946 | # CONFIG_NLS is not set | ||
947 | # CONFIG_DLM is not set | ||
948 | |||
949 | # | ||
950 | # Library routines | ||
951 | # | ||
952 | CONFIG_BITREVERSE=y | ||
953 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
954 | # CONFIG_CRC_CCITT is not set | ||
955 | # CONFIG_CRC16 is not set | ||
956 | # CONFIG_CRC_ITU_T is not set | ||
957 | CONFIG_CRC32=y | ||
958 | # CONFIG_CRC7 is not set | ||
959 | # CONFIG_LIBCRC32C is not set | ||
960 | CONFIG_PLIST=y | ||
961 | CONFIG_HAS_IOMEM=y | ||
962 | CONFIG_HAS_IOPORT=y | ||
963 | CONFIG_HAS_DMA=y | ||
964 | CONFIG_HAVE_LMB=y | ||
965 | |||
966 | # | ||
967 | # Kernel hacking | ||
968 | # | ||
969 | # CONFIG_PRINTK_TIME is not set | ||
970 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
971 | CONFIG_ENABLE_MUST_CHECK=y | ||
972 | CONFIG_FRAME_WARN=1024 | ||
973 | # CONFIG_MAGIC_SYSRQ is not set | ||
974 | # CONFIG_UNUSED_SYMBOLS is not set | ||
975 | # CONFIG_DEBUG_FS is not set | ||
976 | # CONFIG_HEADERS_CHECK is not set | ||
977 | CONFIG_DEBUG_KERNEL=y | ||
978 | # CONFIG_DEBUG_SHIRQ is not set | ||
979 | CONFIG_DETECT_SOFTLOCKUP=y | ||
980 | CONFIG_SCHED_DEBUG=y | ||
981 | # CONFIG_SCHEDSTATS is not set | ||
982 | # CONFIG_TIMER_STATS is not set | ||
983 | # CONFIG_DEBUG_OBJECTS is not set | ||
984 | # CONFIG_SLUB_DEBUG_ON is not set | ||
985 | # CONFIG_SLUB_STATS is not set | ||
986 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
987 | # CONFIG_RT_MUTEX_TESTER is not set | ||
988 | # CONFIG_DEBUG_SPINLOCK is not set | ||
989 | CONFIG_DEBUG_MUTEXES=y | ||
990 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
991 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
992 | # CONFIG_DEBUG_KOBJECT is not set | ||
993 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
994 | # CONFIG_DEBUG_INFO is not set | ||
995 | # CONFIG_DEBUG_VM is not set | ||
996 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
997 | # CONFIG_DEBUG_LIST is not set | ||
998 | # CONFIG_DEBUG_SG is not set | ||
999 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1000 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1001 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1002 | # CONFIG_FAULT_INJECTION is not set | ||
1003 | # CONFIG_SAMPLES is not set | ||
1004 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
1005 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1006 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1007 | # CONFIG_DEBUGGER is not set | ||
1008 | # CONFIG_IRQSTACKS is not set | ||
1009 | # CONFIG_BDI_SWITCH is not set | ||
1010 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
1011 | |||
1012 | # | ||
1013 | # Security options | ||
1014 | # | ||
1015 | # CONFIG_KEYS is not set | ||
1016 | # CONFIG_SECURITY is not set | ||
1017 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1018 | CONFIG_CRYPTO=y | ||
1019 | |||
1020 | # | ||
1021 | # Crypto core or helper | ||
1022 | # | ||
1023 | # CONFIG_CRYPTO_MANAGER is not set | ||
1024 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1025 | # CONFIG_CRYPTO_NULL is not set | ||
1026 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1027 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1028 | # CONFIG_CRYPTO_TEST is not set | ||
1029 | |||
1030 | # | ||
1031 | # Authenticated Encryption with Associated Data | ||
1032 | # | ||
1033 | # CONFIG_CRYPTO_CCM is not set | ||
1034 | # CONFIG_CRYPTO_GCM is not set | ||
1035 | # CONFIG_CRYPTO_SEQIV is not set | ||
1036 | |||
1037 | # | ||
1038 | # Block modes | ||
1039 | # | ||
1040 | # CONFIG_CRYPTO_CBC is not set | ||
1041 | # CONFIG_CRYPTO_CTR is not set | ||
1042 | # CONFIG_CRYPTO_CTS is not set | ||
1043 | # CONFIG_CRYPTO_ECB is not set | ||
1044 | # CONFIG_CRYPTO_LRW is not set | ||
1045 | # CONFIG_CRYPTO_PCBC is not set | ||
1046 | # CONFIG_CRYPTO_XTS is not set | ||
1047 | |||
1048 | # | ||
1049 | # Hash modes | ||
1050 | # | ||
1051 | # CONFIG_CRYPTO_HMAC is not set | ||
1052 | # CONFIG_CRYPTO_XCBC is not set | ||
1053 | |||
1054 | # | ||
1055 | # Digest | ||
1056 | # | ||
1057 | # CONFIG_CRYPTO_CRC32C is not set | ||
1058 | # CONFIG_CRYPTO_MD4 is not set | ||
1059 | # CONFIG_CRYPTO_MD5 is not set | ||
1060 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1061 | # CONFIG_CRYPTO_SHA1 is not set | ||
1062 | # CONFIG_CRYPTO_SHA256 is not set | ||
1063 | # CONFIG_CRYPTO_SHA512 is not set | ||
1064 | # CONFIG_CRYPTO_TGR192 is not set | ||
1065 | # CONFIG_CRYPTO_WP512 is not set | ||
1066 | |||
1067 | # | ||
1068 | # Ciphers | ||
1069 | # | ||
1070 | # CONFIG_CRYPTO_AES is not set | ||
1071 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1072 | # CONFIG_CRYPTO_ARC4 is not set | ||
1073 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1074 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1075 | # CONFIG_CRYPTO_CAST5 is not set | ||
1076 | # CONFIG_CRYPTO_CAST6 is not set | ||
1077 | # CONFIG_CRYPTO_DES is not set | ||
1078 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1079 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1080 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1081 | # CONFIG_CRYPTO_SEED is not set | ||
1082 | # CONFIG_CRYPTO_SERPENT is not set | ||
1083 | # CONFIG_CRYPTO_TEA is not set | ||
1084 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1085 | |||
1086 | # | ||
1087 | # Compression | ||
1088 | # | ||
1089 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1090 | # CONFIG_CRYPTO_LZO is not set | ||
1091 | CONFIG_CRYPTO_HW=y | ||
1092 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1093 | # CONFIG_PPC_CLOCK is not set | ||
1094 | # CONFIG_VIRTUALIZATION is not set | ||
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 2346d271fbfd..0e8f928fef70 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -38,6 +38,7 @@ obj-$(CONFIG_IBMVIO) += vio.o | |||
38 | obj-$(CONFIG_IBMEBUS) += ibmebus.o | 38 | obj-$(CONFIG_IBMEBUS) += ibmebus.o |
39 | obj-$(CONFIG_GENERIC_TBSYNC) += smp-tbsync.o | 39 | obj-$(CONFIG_GENERIC_TBSYNC) += smp-tbsync.o |
40 | obj-$(CONFIG_CRASH_DUMP) += crash_dump.o | 40 | obj-$(CONFIG_CRASH_DUMP) += crash_dump.o |
41 | obj-$(CONFIG_E500) += idle_e500.o | ||
41 | obj-$(CONFIG_6xx) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o | 42 | obj-$(CONFIG_6xx) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o |
42 | obj-$(CONFIG_TAU) += tau_6xx.o | 43 | obj-$(CONFIG_TAU) += tau_6xx.o |
43 | obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o \ | 44 | obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o \ |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 31283cdab61c..f247fc6ad12d 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -1493,7 +1493,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1493 | .pvr_mask = 0xffff0000, | 1493 | .pvr_mask = 0xffff0000, |
1494 | .pvr_value = 0x80200000, | 1494 | .pvr_value = 0x80200000, |
1495 | .cpu_name = "e500", | 1495 | .cpu_name = "e500", |
1496 | /* xxx - galak: add CPU_FTR_MAYBE_CAN_DOZE */ | ||
1497 | .cpu_features = CPU_FTRS_E500, | 1496 | .cpu_features = CPU_FTRS_E500, |
1498 | .cpu_user_features = COMMON_USER_BOOKE | | 1497 | .cpu_user_features = COMMON_USER_BOOKE | |
1499 | PPC_FEATURE_HAS_SPE_COMP | | 1498 | PPC_FEATURE_HAS_SPE_COMP | |
@@ -1510,7 +1509,6 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1510 | .pvr_mask = 0xffff0000, | 1509 | .pvr_mask = 0xffff0000, |
1511 | .pvr_value = 0x80210000, | 1510 | .pvr_value = 0x80210000, |
1512 | .cpu_name = "e500v2", | 1511 | .cpu_name = "e500v2", |
1513 | /* xxx - galak: add CPU_FTR_MAYBE_CAN_DOZE */ | ||
1514 | .cpu_features = CPU_FTRS_E500_2, | 1512 | .cpu_features = CPU_FTRS_E500_2, |
1515 | .cpu_user_features = COMMON_USER_BOOKE | | 1513 | .cpu_user_features = COMMON_USER_BOOKE | |
1516 | PPC_FEATURE_HAS_SPE_COMP | | 1514 | PPC_FEATURE_HAS_SPE_COMP | |
@@ -1524,6 +1522,20 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1524 | .machine_check = machine_check_e500, | 1522 | .machine_check = machine_check_e500, |
1525 | .platform = "ppc8548", | 1523 | .platform = "ppc8548", |
1526 | }, | 1524 | }, |
1525 | { /* e500mc */ | ||
1526 | .pvr_mask = 0xffff0000, | ||
1527 | .pvr_value = 0x80230000, | ||
1528 | .cpu_name = "e500mc", | ||
1529 | .cpu_features = CPU_FTRS_E500MC, | ||
1530 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | ||
1531 | .icache_bsize = 64, | ||
1532 | .dcache_bsize = 64, | ||
1533 | .num_pmcs = 4, | ||
1534 | .oprofile_cpu_type = "ppc/e500", /* xxx - galak, e500mc? */ | ||
1535 | .oprofile_type = PPC_OPROFILE_FSL_EMB, | ||
1536 | .machine_check = machine_check_e500, | ||
1537 | .platform = "ppce500mc", | ||
1538 | }, | ||
1527 | { /* default match */ | 1539 | { /* default match */ |
1528 | .pvr_mask = 0x00000000, | 1540 | .pvr_mask = 0x00000000, |
1529 | .pvr_value = 0x00000000, | 1541 | .pvr_value = 0x00000000, |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index fe21674d4f06..ab2d62f70b14 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -176,14 +176,14 @@ transfer_to_handler: | |||
176 | cmplw r1,r9 /* if r1 <= ksp_limit */ | 176 | cmplw r1,r9 /* if r1 <= ksp_limit */ |
177 | ble- stack_ovf /* then the kernel stack overflowed */ | 177 | ble- stack_ovf /* then the kernel stack overflowed */ |
178 | 5: | 178 | 5: |
179 | #ifdef CONFIG_6xx | 179 | #if defined(CONFIG_6xx) || defined(CONFIG_E500) |
180 | rlwinm r9,r1,0,0,31-THREAD_SHIFT | 180 | rlwinm r9,r1,0,0,31-THREAD_SHIFT |
181 | tophys(r9,r9) /* check local flags */ | 181 | tophys(r9,r9) /* check local flags */ |
182 | lwz r12,TI_LOCAL_FLAGS(r9) | 182 | lwz r12,TI_LOCAL_FLAGS(r9) |
183 | mtcrf 0x01,r12 | 183 | mtcrf 0x01,r12 |
184 | bt- 31-TLF_NAPPING,4f | 184 | bt- 31-TLF_NAPPING,4f |
185 | bt- 31-TLF_SLEEPING,7f | 185 | bt- 31-TLF_SLEEPING,7f |
186 | #endif /* CONFIG_6xx */ | 186 | #endif /* CONFIG_6xx || CONFIG_E500 */ |
187 | .globl transfer_to_handler_cont | 187 | .globl transfer_to_handler_cont |
188 | transfer_to_handler_cont: | 188 | transfer_to_handler_cont: |
189 | 3: | 189 | 3: |
@@ -196,10 +196,10 @@ transfer_to_handler_cont: | |||
196 | SYNC | 196 | SYNC |
197 | RFI /* jump to handler, enable MMU */ | 197 | RFI /* jump to handler, enable MMU */ |
198 | 198 | ||
199 | #ifdef CONFIG_6xx | 199 | #if defined (CONFIG_6xx) || defined(CONFIG_E500) |
200 | 4: rlwinm r12,r12,0,~_TLF_NAPPING | 200 | 4: rlwinm r12,r12,0,~_TLF_NAPPING |
201 | stw r12,TI_LOCAL_FLAGS(r9) | 201 | stw r12,TI_LOCAL_FLAGS(r9) |
202 | b power_save_6xx_restore | 202 | b power_save_ppc32_restore |
203 | 203 | ||
204 | 7: rlwinm r12,r12,0,~_TLF_SLEEPING | 204 | 7: rlwinm r12,r12,0,~_TLF_SLEEPING |
205 | stw r12,TI_LOCAL_FLAGS(r9) | 205 | stw r12,TI_LOCAL_FLAGS(r9) |
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h index f277fade1932..505494f1ee7c 100644 --- a/arch/powerpc/kernel/head_booke.h +++ b/arch/powerpc/kernel/head_booke.h | |||
@@ -68,9 +68,13 @@ | |||
68 | #define MCHECK_STACK_BASE mcheckirq_ctx | 68 | #define MCHECK_STACK_BASE mcheckirq_ctx |
69 | #define CRIT_STACK_BASE critirq_ctx | 69 | #define CRIT_STACK_BASE critirq_ctx |
70 | 70 | ||
71 | /* only on e200 for now */ | 71 | /* only on e500mc/e200 */ |
72 | #define DEBUG_STACK_BASE dbgirq_ctx | 72 | #define DEBUG_STACK_BASE dbgirq_ctx |
73 | #ifdef CONFIG_PPC_E500MC | ||
74 | #define DEBUG_SPRG SPRN_SPRG9 | ||
75 | #else | ||
73 | #define DEBUG_SPRG SPRN_SPRG6W | 76 | #define DEBUG_SPRG SPRN_SPRG6W |
77 | #endif | ||
74 | 78 | ||
75 | #define EXC_LVL_FRAME_OVERHEAD (THREAD_SIZE - INT_FRAME_SIZE - EXC_LVL_SIZE) | 79 | #define EXC_LVL_FRAME_OVERHEAD (THREAD_SIZE - INT_FRAME_SIZE - EXC_LVL_SIZE) |
76 | 80 | ||
@@ -240,7 +244,7 @@ label: | |||
240 | * the code where the exception occurred (since exception entry \ | 244 | * the code where the exception occurred (since exception entry \ |
241 | * doesn't turn off DE automatically). We simulate the effect \ | 245 | * doesn't turn off DE automatically). We simulate the effect \ |
242 | * of turning off DE on entry to an exception handler by turning \ | 246 | * of turning off DE on entry to an exception handler by turning \ |
243 | * off DE in the CSRR1 value and clearing the debug status. \ | 247 | * off DE in the DSRR1 value and clearing the debug status. \ |
244 | */ \ | 248 | */ \ |
245 | mfspr r10,SPRN_DBSR; /* check single-step/branch taken */ \ | 249 | mfspr r10,SPRN_DBSR; /* check single-step/branch taken */ \ |
246 | andis. r10,r10,DBSR_IC@h; \ | 250 | andis. r10,r10,DBSR_IC@h; \ |
@@ -278,7 +282,7 @@ label: | |||
278 | RFDI; \ | 282 | RFDI; \ |
279 | b .; \ | 283 | b .; \ |
280 | \ | 284 | \ |
281 | /* continue normal handling for a critical exception... */ \ | 285 | /* continue normal handling for a debug exception... */ \ |
282 | 2: mfspr r4,SPRN_DBSR; \ | 286 | 2: mfspr r4,SPRN_DBSR; \ |
283 | addi r3,r1,STACK_FRAME_OVERHEAD; \ | 287 | addi r3,r1,STACK_FRAME_OVERHEAD; \ |
284 | EXC_XFER_TEMPLATE(DebugException, 0x2008, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc) | 288 | EXC_XFER_TEMPLATE(DebugException, 0x2008, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc) |
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index 503f86030b6e..c4268500e856 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <asm/thread_info.h> | 39 | #include <asm/thread_info.h> |
40 | #include <asm/ppc_asm.h> | 40 | #include <asm/ppc_asm.h> |
41 | #include <asm/asm-offsets.h> | 41 | #include <asm/asm-offsets.h> |
42 | #include <asm/cache.h> | ||
42 | #include "head_booke.h" | 43 | #include "head_booke.h" |
43 | 44 | ||
44 | /* As with the other PowerPC ports, it is expected that when code | 45 | /* As with the other PowerPC ports, it is expected that when code |
@@ -304,7 +305,7 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
304 | SET_IVOR(13, DataTLBError); | 305 | SET_IVOR(13, DataTLBError); |
305 | SET_IVOR(14, InstructionTLBError); | 306 | SET_IVOR(14, InstructionTLBError); |
306 | SET_IVOR(15, DebugDebug); | 307 | SET_IVOR(15, DebugDebug); |
307 | #if defined(CONFIG_E500) | 308 | #if defined(CONFIG_E500) && !defined(CONFIG_PPC_E500MC) |
308 | SET_IVOR(15, DebugCrit); | 309 | SET_IVOR(15, DebugCrit); |
309 | #endif | 310 | #endif |
310 | SET_IVOR(32, SPEUnavailable); | 311 | SET_IVOR(32, SPEUnavailable); |
@@ -313,6 +314,9 @@ skpinv: addi r6,r6,1 /* Increment */ | |||
313 | #ifndef CONFIG_E200 | 314 | #ifndef CONFIG_E200 |
314 | SET_IVOR(35, PerformanceMonitor); | 315 | SET_IVOR(35, PerformanceMonitor); |
315 | #endif | 316 | #endif |
317 | #ifdef CONFIG_PPC_E500MC | ||
318 | SET_IVOR(36, Doorbell); | ||
319 | #endif | ||
316 | 320 | ||
317 | /* Establish the interrupt vector base */ | 321 | /* Establish the interrupt vector base */ |
318 | lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */ | 322 | lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */ |
@@ -750,10 +754,13 @@ interrupt_base: | |||
750 | /* Performance Monitor */ | 754 | /* Performance Monitor */ |
751 | EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD) | 755 | EXCEPTION(0x2060, PerformanceMonitor, performance_monitor_exception, EXC_XFER_STD) |
752 | 756 | ||
757 | #ifdef CONFIG_PPC_E500MC | ||
758 | EXCEPTION(0x2070, Doorbell, unknown_exception, EXC_XFER_EE) | ||
759 | #endif | ||
753 | 760 | ||
754 | /* Debug Interrupt */ | 761 | /* Debug Interrupt */ |
755 | DEBUG_DEBUG_EXCEPTION | 762 | DEBUG_DEBUG_EXCEPTION |
756 | #if defined(CONFIG_E500) | 763 | #if defined(CONFIG_E500) && !defined(CONFIG_PPC_E500MC) |
757 | DEBUG_CRIT_EXCEPTION | 764 | DEBUG_CRIT_EXCEPTION |
758 | #endif | 765 | #endif |
759 | 766 | ||
@@ -1065,6 +1072,52 @@ _GLOBAL(set_context) | |||
1065 | isync /* Force context change */ | 1072 | isync /* Force context change */ |
1066 | blr | 1073 | blr |
1067 | 1074 | ||
1075 | _GLOBAL(flush_dcache_L1) | ||
1076 | mfspr r3,SPRN_L1CFG0 | ||
1077 | |||
1078 | rlwinm r5,r3,9,3 /* Extract cache block size */ | ||
1079 | twlgti r5,1 /* Only 32 and 64 byte cache blocks | ||
1080 | * are currently defined. | ||
1081 | */ | ||
1082 | li r4,32 | ||
1083 | subfic r6,r5,2 /* r6 = log2(1KiB / cache block size) - | ||
1084 | * log2(number of ways) | ||
1085 | */ | ||
1086 | slw r5,r4,r5 /* r5 = cache block size */ | ||
1087 | |||
1088 | rlwinm r7,r3,0,0xff /* Extract number of KiB in the cache */ | ||
1089 | mulli r7,r7,13 /* An 8-way cache will require 13 | ||
1090 | * loads per set. | ||
1091 | */ | ||
1092 | slw r7,r7,r6 | ||
1093 | |||
1094 | /* save off HID0 and set DCFA */ | ||
1095 | mfspr r8,SPRN_HID0 | ||
1096 | ori r9,r8,HID0_DCFA@l | ||
1097 | mtspr SPRN_HID0,r9 | ||
1098 | isync | ||
1099 | |||
1100 | lis r4,KERNELBASE@h | ||
1101 | mtctr r7 | ||
1102 | |||
1103 | 1: lwz r3,0(r4) /* Load... */ | ||
1104 | add r4,r4,r5 | ||
1105 | bdnz 1b | ||
1106 | |||
1107 | msync | ||
1108 | lis r4,KERNELBASE@h | ||
1109 | mtctr r7 | ||
1110 | |||
1111 | 1: dcbf 0,r4 /* ...and flush. */ | ||
1112 | add r4,r4,r5 | ||
1113 | bdnz 1b | ||
1114 | |||
1115 | /* restore HID0 */ | ||
1116 | mtspr SPRN_HID0,r8 | ||
1117 | isync | ||
1118 | |||
1119 | blr | ||
1120 | |||
1068 | /* | 1121 | /* |
1069 | * We put a few things here that have to be page-aligned. This stuff | 1122 | * We put a few things here that have to be page-aligned. This stuff |
1070 | * goes at the beginning of the data segment, which is page-aligned. | 1123 | * goes at the beginning of the data segment, which is page-aligned. |
diff --git a/arch/powerpc/kernel/idle_6xx.S b/arch/powerpc/kernel/idle_6xx.S index 01bcd52bbf8e..019b02d8844f 100644 --- a/arch/powerpc/kernel/idle_6xx.S +++ b/arch/powerpc/kernel/idle_6xx.S | |||
@@ -153,7 +153,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) | |||
153 | * address of current. R11 points to the exception frame (physical | 153 | * address of current. R11 points to the exception frame (physical |
154 | * address). We have to preserve r10. | 154 | * address). We have to preserve r10. |
155 | */ | 155 | */ |
156 | _GLOBAL(power_save_6xx_restore) | 156 | _GLOBAL(power_save_ppc32_restore) |
157 | lwz r9,_LINK(r11) /* interrupted in ppc6xx_idle: */ | 157 | lwz r9,_LINK(r11) /* interrupted in ppc6xx_idle: */ |
158 | stw r9,_NIP(r11) /* make it do a blr */ | 158 | stw r9,_NIP(r11) /* make it do a blr */ |
159 | 159 | ||
diff --git a/arch/powerpc/kernel/idle_e500.S b/arch/powerpc/kernel/idle_e500.S new file mode 100644 index 000000000000..06304034b393 --- /dev/null +++ b/arch/powerpc/kernel/idle_e500.S | |||
@@ -0,0 +1,93 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 Freescale Semiconductor, Inc. All rights reserved. | ||
3 | * Dave Liu <daveliu@freescale.com> | ||
4 | * copy from idle_6xx.S and modify for e500 based processor, | ||
5 | * implement the power_save function in idle. | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License | ||
9 | * as published by the Free Software Foundation; either version | ||
10 | * 2 of the License, or (at your option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/threads.h> | ||
14 | #include <asm/reg.h> | ||
15 | #include <asm/page.h> | ||
16 | #include <asm/cputable.h> | ||
17 | #include <asm/thread_info.h> | ||
18 | #include <asm/ppc_asm.h> | ||
19 | #include <asm/asm-offsets.h> | ||
20 | |||
21 | .text | ||
22 | |||
23 | _GLOBAL(e500_idle) | ||
24 | rlwinm r3,r1,0,0,31-THREAD_SHIFT /* current thread_info */ | ||
25 | lwz r4,TI_LOCAL_FLAGS(r3) /* set napping bit */ | ||
26 | ori r4,r4,_TLF_NAPPING /* so when we take an exception */ | ||
27 | stw r4,TI_LOCAL_FLAGS(r3) /* it will return to our caller */ | ||
28 | |||
29 | /* Check if we can nap or doze, put HID0 mask in r3 */ | ||
30 | lis r3,0 | ||
31 | BEGIN_FTR_SECTION | ||
32 | lis r3,HID0_DOZE@h | ||
33 | END_FTR_SECTION_IFSET(CPU_FTR_CAN_DOZE) | ||
34 | |||
35 | BEGIN_FTR_SECTION | ||
36 | /* Now check if user enabled NAP mode */ | ||
37 | lis r4,powersave_nap@ha | ||
38 | lwz r4,powersave_nap@l(r4) | ||
39 | cmpwi 0,r4,0 | ||
40 | beq 1f | ||
41 | stwu r1,-16(r1) | ||
42 | mflr r0 | ||
43 | stw r0,20(r1) | ||
44 | bl flush_dcache_L1 | ||
45 | lwz r0,20(r1) | ||
46 | addi r1,r1,16 | ||
47 | mtlr r0 | ||
48 | lis r3,HID0_NAP@h | ||
49 | END_FTR_SECTION_IFSET(CPU_FTR_CAN_NAP) | ||
50 | BEGIN_FTR_SECTION | ||
51 | msync | ||
52 | li r7,L2CSR0_L2FL@l | ||
53 | mtspr SPRN_L2CSR0,r7 | ||
54 | 2: | ||
55 | mfspr r7,SPRN_L2CSR0 | ||
56 | andi. r4,r7,L2CSR0_L2FL@l | ||
57 | bne 2b | ||
58 | END_FTR_SECTION_IFSET(CPU_FTR_L2CSR|CPU_FTR_CAN_NAP) | ||
59 | 1: | ||
60 | /* Go to NAP or DOZE now */ | ||
61 | mfspr r4,SPRN_HID0 | ||
62 | rlwinm r4,r4,0,~(HID0_DOZE|HID0_NAP|HID0_SLEEP) | ||
63 | or r4,r4,r3 | ||
64 | isync | ||
65 | mtspr SPRN_HID0,r4 | ||
66 | isync | ||
67 | |||
68 | mfmsr r7 | ||
69 | oris r7,r7,MSR_WE@h | ||
70 | ori r7,r7,MSR_EE | ||
71 | msync | ||
72 | mtmsr r7 | ||
73 | isync | ||
74 | 2: b 2b | ||
75 | |||
76 | /* | ||
77 | * Return from NAP/DOZE mode, restore some CPU specific registers, | ||
78 | * r2 containing physical address of current. | ||
79 | * r11 points to the exception frame (physical address). | ||
80 | * We have to preserve r10. | ||
81 | */ | ||
82 | _GLOBAL(power_save_ppc32_restore) | ||
83 | lwz r9,_LINK(r11) /* interrupted in e500_idle */ | ||
84 | stw r9,_NIP(r11) /* make it do a blr */ | ||
85 | |||
86 | #ifdef CONFIG_SMP | ||
87 | mfspr r12,SPRN_SPRG3 | ||
88 | lwz r11,TI_CPU(r12) /* get cpu number * 4 */ | ||
89 | slwi r11,r11,2 | ||
90 | #else | ||
91 | li r11,0 | ||
92 | #endif | ||
93 | b transfer_to_handler_cont | ||
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index 23545a2f51f3..4ba2af125450 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c | |||
@@ -34,6 +34,13 @@ | |||
34 | #include <asm/cacheflush.h> | 34 | #include <asm/cacheflush.h> |
35 | #include <asm/sstep.h> | 35 | #include <asm/sstep.h> |
36 | #include <asm/uaccess.h> | 36 | #include <asm/uaccess.h> |
37 | #include <asm/system.h> | ||
38 | |||
39 | #ifdef CONFIG_BOOKE | ||
40 | #define MSR_SINGLESTEP (MSR_DE) | ||
41 | #else | ||
42 | #define MSR_SINGLESTEP (MSR_SE) | ||
43 | #endif | ||
37 | 44 | ||
38 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; | 45 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; |
39 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); | 46 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); |
@@ -53,7 +60,8 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) | |||
53 | ret = -EINVAL; | 60 | ret = -EINVAL; |
54 | } | 61 | } |
55 | 62 | ||
56 | /* insn must be on a special executable page on ppc64 */ | 63 | /* insn must be on a special executable page on ppc64. This is |
64 | * not explicitly required on ppc32 (right now), but it doesn't hurt */ | ||
57 | if (!ret) { | 65 | if (!ret) { |
58 | p->ainsn.insn = get_insn_slot(); | 66 | p->ainsn.insn = get_insn_slot(); |
59 | if (!p->ainsn.insn) | 67 | if (!p->ainsn.insn) |
@@ -95,7 +103,16 @@ void __kprobes arch_remove_kprobe(struct kprobe *p) | |||
95 | 103 | ||
96 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 104 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
97 | { | 105 | { |
98 | regs->msr |= MSR_SE; | 106 | /* We turn off async exceptions to ensure that the single step will |
107 | * be for the instruction we have the kprobe on, if we dont its | ||
108 | * possible we'd get the single step reported for an exception handler | ||
109 | * like Decrementer or External Interrupt */ | ||
110 | regs->msr &= ~MSR_EE; | ||
111 | regs->msr |= MSR_SINGLESTEP; | ||
112 | #ifdef CONFIG_BOOKE | ||
113 | regs->msr &= ~MSR_CE; | ||
114 | mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM); | ||
115 | #endif | ||
99 | 116 | ||
100 | /* | 117 | /* |
101 | * On powerpc we should single step on the original | 118 | * On powerpc we should single step on the original |
@@ -158,7 +175,8 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
158 | kprobe_opcode_t insn = *p->ainsn.insn; | 175 | kprobe_opcode_t insn = *p->ainsn.insn; |
159 | if (kcb->kprobe_status == KPROBE_HIT_SS && | 176 | if (kcb->kprobe_status == KPROBE_HIT_SS && |
160 | is_trap(insn)) { | 177 | is_trap(insn)) { |
161 | regs->msr &= ~MSR_SE; | 178 | /* Turn off 'trace' bits */ |
179 | regs->msr &= ~MSR_SINGLESTEP; | ||
162 | regs->msr |= kcb->kprobe_saved_msr; | 180 | regs->msr |= kcb->kprobe_saved_msr; |
163 | goto no_kprobe; | 181 | goto no_kprobe; |
164 | } | 182 | } |
@@ -376,6 +394,10 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs) | |||
376 | if (!cur) | 394 | if (!cur) |
377 | return 0; | 395 | return 0; |
378 | 396 | ||
397 | /* make sure we got here for instruction we have a kprobe on */ | ||
398 | if (((unsigned long)cur->ainsn.insn + 4) != regs->nip) | ||
399 | return 0; | ||
400 | |||
379 | if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) { | 401 | if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) { |
380 | kcb->kprobe_status = KPROBE_HIT_SSDONE; | 402 | kcb->kprobe_status = KPROBE_HIT_SSDONE; |
381 | cur->post_handler(cur, regs, 0); | 403 | cur->post_handler(cur, regs, 0); |
@@ -395,10 +417,10 @@ out: | |||
395 | 417 | ||
396 | /* | 418 | /* |
397 | * if somebody else is singlestepping across a probe point, msr | 419 | * if somebody else is singlestepping across a probe point, msr |
398 | * will have SE set, in which case, continue the remaining processing | 420 | * will have DE/SE set, in which case, continue the remaining processing |
399 | * of do_debug, as if this is not a probe hit. | 421 | * of do_debug, as if this is not a probe hit. |
400 | */ | 422 | */ |
401 | if (regs->msr & MSR_SE) | 423 | if (regs->msr & MSR_SINGLESTEP) |
402 | return 0; | 424 | return 0; |
403 | 425 | ||
404 | return 1; | 426 | return 1; |
@@ -421,7 +443,7 @@ int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) | |||
421 | * normal page fault. | 443 | * normal page fault. |
422 | */ | 444 | */ |
423 | regs->nip = (unsigned long)cur->addr; | 445 | regs->nip = (unsigned long)cur->addr; |
424 | regs->msr &= ~MSR_SE; | 446 | regs->msr &= ~MSR_SINGLESTEP; /* Turn off 'trace' bits */ |
425 | regs->msr |= kcb->kprobe_saved_msr; | 447 | regs->msr |= kcb->kprobe_saved_msr; |
426 | if (kcb->kprobe_status == KPROBE_REENTER) | 448 | if (kcb->kprobe_status == KPROBE_REENTER) |
427 | restore_previous_kprobe(kcb); | 449 | restore_previous_kprobe(kcb); |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 89aaaa6f3561..6321ae36f729 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -489,7 +489,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_UNIFIED_ID_CACHE) | |||
489 | * | 489 | * |
490 | * flush_icache_range(unsigned long start, unsigned long stop) | 490 | * flush_icache_range(unsigned long start, unsigned long stop) |
491 | */ | 491 | */ |
492 | _GLOBAL(__flush_icache_range) | 492 | _KPROBE(__flush_icache_range) |
493 | BEGIN_FTR_SECTION | 493 | BEGIN_FTR_SECTION |
494 | blr /* for 601, do nothing */ | 494 | blr /* for 601, do nothing */ |
495 | END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | 495 | END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) |
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index bef0be3fd98b..9e83add54290 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c | |||
@@ -127,6 +127,11 @@ void __init machine_init(unsigned long dt_ptr, unsigned long phys) | |||
127 | ppc_md.power_save = ppc6xx_idle; | 127 | ppc_md.power_save = ppc6xx_idle; |
128 | #endif | 128 | #endif |
129 | 129 | ||
130 | #ifdef CONFIG_E500 | ||
131 | if (cpu_has_feature(CPU_FTR_CAN_DOZE) || | ||
132 | cpu_has_feature(CPU_FTR_CAN_NAP)) | ||
133 | ppc_md.power_save = e500_idle; | ||
134 | #endif | ||
130 | if (ppc_md.progress) | 135 | if (ppc_md.progress) |
131 | ppc_md.progress("id mach(): done", 0x200); | 136 | ppc_md.progress("id mach(): done", 0x200); |
132 | } | 137 | } |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 4b5b7ff4f78b..b463d48145a4 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -1030,21 +1030,29 @@ void SoftwareEmulation(struct pt_regs *regs) | |||
1030 | 1030 | ||
1031 | #if defined(CONFIG_40x) || defined(CONFIG_BOOKE) | 1031 | #if defined(CONFIG_40x) || defined(CONFIG_BOOKE) |
1032 | 1032 | ||
1033 | void DebugException(struct pt_regs *regs, unsigned long debug_status) | 1033 | void __kprobes DebugException(struct pt_regs *regs, unsigned long debug_status) |
1034 | { | 1034 | { |
1035 | if (debug_status & DBSR_IC) { /* instruction completion */ | 1035 | if (debug_status & DBSR_IC) { /* instruction completion */ |
1036 | regs->msr &= ~MSR_DE; | 1036 | regs->msr &= ~MSR_DE; |
1037 | |||
1038 | /* Disable instruction completion */ | ||
1039 | mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) & ~DBCR0_IC); | ||
1040 | /* Clear the instruction completion event */ | ||
1041 | mtspr(SPRN_DBSR, DBSR_IC); | ||
1042 | |||
1043 | if (notify_die(DIE_SSTEP, "single_step", regs, 5, | ||
1044 | 5, SIGTRAP) == NOTIFY_STOP) { | ||
1045 | return; | ||
1046 | } | ||
1047 | |||
1048 | if (debugger_sstep(regs)) | ||
1049 | return; | ||
1050 | |||
1037 | if (user_mode(regs)) { | 1051 | if (user_mode(regs)) { |
1038 | current->thread.dbcr0 &= ~DBCR0_IC; | 1052 | current->thread.dbcr0 &= ~DBCR0_IC; |
1039 | } else { | ||
1040 | /* Disable instruction completion */ | ||
1041 | mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) & ~DBCR0_IC); | ||
1042 | /* Clear the instruction completion event */ | ||
1043 | mtspr(SPRN_DBSR, DBSR_IC); | ||
1044 | if (debugger_sstep(regs)) | ||
1045 | return; | ||
1046 | } | 1053 | } |
1047 | _exception(SIGTRAP, regs, TRAP_TRACE, 0); | 1054 | |
1055 | _exception(SIGTRAP, regs, TRAP_TRACE, regs->nip); | ||
1048 | } | 1056 | } |
1049 | } | 1057 | } |
1050 | #endif /* CONFIG_4xx || CONFIG_BOOKE */ | 1058 | #endif /* CONFIG_4xx || CONFIG_BOOKE */ |
diff --git a/arch/powerpc/platforms/83xx/Kconfig b/arch/powerpc/platforms/83xx/Kconfig index 583b0c7409c9..fe75b2ac3c9f 100644 --- a/arch/powerpc/platforms/83xx/Kconfig +++ b/arch/powerpc/platforms/83xx/Kconfig | |||
@@ -58,6 +58,17 @@ config MPC836x_MDS | |||
58 | help | 58 | help |
59 | This option enables support for the MPC836x MDS Processor Board. | 59 | This option enables support for the MPC836x MDS Processor Board. |
60 | 60 | ||
61 | config MPC836x_RDK | ||
62 | bool "Freescale/Logic MPC836x RDK" | ||
63 | select DEFAULT_UIMAGE | ||
64 | select QUICC_ENGINE | ||
65 | select QE_GPIO | ||
66 | select FSL_GTM | ||
67 | select FSL_LBC | ||
68 | help | ||
69 | This option enables support for the MPC836x RDK Processor Board, | ||
70 | also known as ZOOM PowerQUICC Kit. | ||
71 | |||
61 | config MPC837x_MDS | 72 | config MPC837x_MDS |
62 | bool "Freescale MPC837x MDS" | 73 | bool "Freescale MPC837x MDS" |
63 | select DEFAULT_UIMAGE | 74 | select DEFAULT_UIMAGE |
diff --git a/arch/powerpc/platforms/83xx/Makefile b/arch/powerpc/platforms/83xx/Makefile index 76494bed69ae..f331fd7dd836 100644 --- a/arch/powerpc/platforms/83xx/Makefile +++ b/arch/powerpc/platforms/83xx/Makefile | |||
@@ -8,6 +8,7 @@ obj-$(CONFIG_MPC832x_RDB) += mpc832x_rdb.o | |||
8 | obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o | 8 | obj-$(CONFIG_MPC834x_MDS) += mpc834x_mds.o |
9 | obj-$(CONFIG_MPC834x_ITX) += mpc834x_itx.o | 9 | obj-$(CONFIG_MPC834x_ITX) += mpc834x_itx.o |
10 | obj-$(CONFIG_MPC836x_MDS) += mpc836x_mds.o | 10 | obj-$(CONFIG_MPC836x_MDS) += mpc836x_mds.o |
11 | obj-$(CONFIG_MPC836x_RDK) += mpc836x_rdk.o | ||
11 | obj-$(CONFIG_MPC832x_MDS) += mpc832x_mds.o | 12 | obj-$(CONFIG_MPC832x_MDS) += mpc832x_mds.o |
12 | obj-$(CONFIG_MPC837x_MDS) += mpc837x_mds.o | 13 | obj-$(CONFIG_MPC837x_MDS) += mpc837x_mds.o |
13 | obj-$(CONFIG_SBC834x) += sbc834x.o | 14 | obj-$(CONFIG_SBC834x) += sbc834x.o |
diff --git a/arch/powerpc/platforms/83xx/mpc836x_rdk.c b/arch/powerpc/platforms/83xx/mpc836x_rdk.c new file mode 100644 index 000000000000..c10dec4bf178 --- /dev/null +++ b/arch/powerpc/platforms/83xx/mpc836x_rdk.c | |||
@@ -0,0 +1,102 @@ | |||
1 | /* | ||
2 | * MPC8360E-RDK board file. | ||
3 | * | ||
4 | * Copyright (c) 2006 Freescale Semicondutor, Inc. | ||
5 | * Copyright (c) 2007-2008 MontaVista Software, Inc. | ||
6 | * | ||
7 | * Author: Anton Vorontsov <avorontsov@ru.mvista.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License as published by the | ||
11 | * Free Software Foundation; either version 2 of the License, or (at your | ||
12 | * option) any later version. | ||
13 | */ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/pci.h> | ||
17 | #include <linux/of_platform.h> | ||
18 | #include <linux/io.h> | ||
19 | #include <asm/prom.h> | ||
20 | #include <asm/time.h> | ||
21 | #include <asm/ipic.h> | ||
22 | #include <asm/udbg.h> | ||
23 | #include <asm/qe.h> | ||
24 | #include <asm/qe_ic.h> | ||
25 | #include <sysdev/fsl_soc.h> | ||
26 | |||
27 | #include "mpc83xx.h" | ||
28 | |||
29 | static struct of_device_id __initdata mpc836x_rdk_ids[] = { | ||
30 | { .compatible = "simple-bus", }, | ||
31 | {}, | ||
32 | }; | ||
33 | |||
34 | static int __init mpc836x_rdk_declare_of_platform_devices(void) | ||
35 | { | ||
36 | return of_platform_bus_probe(NULL, mpc836x_rdk_ids, NULL); | ||
37 | } | ||
38 | machine_device_initcall(mpc836x_rdk, mpc836x_rdk_declare_of_platform_devices); | ||
39 | |||
40 | static void __init mpc836x_rdk_setup_arch(void) | ||
41 | { | ||
42 | #ifdef CONFIG_PCI | ||
43 | struct device_node *np; | ||
44 | #endif | ||
45 | |||
46 | if (ppc_md.progress) | ||
47 | ppc_md.progress("mpc836x_rdk_setup_arch()", 0); | ||
48 | |||
49 | #ifdef CONFIG_PCI | ||
50 | for_each_compatible_node(np, "pci", "fsl,mpc8349-pci") | ||
51 | mpc83xx_add_bridge(np); | ||
52 | #endif | ||
53 | |||
54 | qe_reset(); | ||
55 | } | ||
56 | |||
57 | static void __init mpc836x_rdk_init_IRQ(void) | ||
58 | { | ||
59 | struct device_node *np; | ||
60 | |||
61 | np = of_find_compatible_node(NULL, NULL, "fsl,ipic"); | ||
62 | if (!np) | ||
63 | return; | ||
64 | |||
65 | ipic_init(np, 0); | ||
66 | |||
67 | /* | ||
68 | * Initialize the default interrupt mapping priorities, | ||
69 | * in case the boot rom changed something on us. | ||
70 | */ | ||
71 | ipic_set_default_priority(); | ||
72 | of_node_put(np); | ||
73 | |||
74 | np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic"); | ||
75 | if (!np) | ||
76 | return; | ||
77 | |||
78 | qe_ic_init(np, 0, qe_ic_cascade_low_ipic, qe_ic_cascade_high_ipic); | ||
79 | of_node_put(np); | ||
80 | } | ||
81 | |||
82 | /* | ||
83 | * Called very early, MMU is off, device-tree isn't unflattened. | ||
84 | */ | ||
85 | static int __init mpc836x_rdk_probe(void) | ||
86 | { | ||
87 | unsigned long root = of_get_flat_dt_root(); | ||
88 | |||
89 | return of_flat_dt_is_compatible(root, "fsl,mpc8360rdk"); | ||
90 | } | ||
91 | |||
92 | define_machine(mpc836x_rdk) { | ||
93 | .name = "MPC836x RDK", | ||
94 | .probe = mpc836x_rdk_probe, | ||
95 | .setup_arch = mpc836x_rdk_setup_arch, | ||
96 | .init_IRQ = mpc836x_rdk_init_IRQ, | ||
97 | .get_irq = ipic_get_irq, | ||
98 | .restart = mpc83xx_restart, | ||
99 | .time_init = mpc83xx_time_init, | ||
100 | .calibrate_decr = generic_calibrate_decr, | ||
101 | .progress = udbg_progress, | ||
102 | }; | ||
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 7ff29d53dc2d..91d67ee8e6db 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -74,6 +74,14 @@ config TQM8541 | |||
74 | select TQM85xx | 74 | select TQM85xx |
75 | select CPM2 | 75 | select CPM2 |
76 | 76 | ||
77 | config TQM8548 | ||
78 | bool "TQ Components TQM8548" | ||
79 | help | ||
80 | This option enables support for the TQ Components TQM8548 board. | ||
81 | select DEFAULT_UIMAGE | ||
82 | select PPC_CPM_NEW_BINDING | ||
83 | select TQM85xx | ||
84 | |||
77 | config TQM8555 | 85 | config TQM8555 |
78 | bool "TQ Components TQM8555" | 86 | bool "TQ Components TQM8555" |
79 | help | 87 | help |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index 3582c841844b..ba498d6f2d02 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -119,6 +119,8 @@ static const struct cpm_pin mpc8560_ads_pins[] = { | |||
119 | {3, 31, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 119 | {3, 31, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
120 | 120 | ||
121 | /* SCC2 */ | 121 | /* SCC2 */ |
122 | {2, 12, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
123 | {2, 13, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | ||
122 | {3, 26, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 124 | {3, 26, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
123 | {3, 27, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 125 | {3, 27, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
124 | {3, 28, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 126 | {3, 28, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
@@ -145,7 +147,6 @@ static const struct cpm_pin mpc8560_ads_pins[] = { | |||
145 | {1, 4, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 147 | {1, 4, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
146 | {1, 5, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 148 | {1, 5, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
147 | {1, 6, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 149 | {1, 6, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
148 | {1, 7, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
149 | {1, 8, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 150 | {1, 8, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
150 | {1, 9, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 151 | {1, 9, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
151 | {1, 10, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 152 | {1, 10, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
@@ -156,8 +157,9 @@ static const struct cpm_pin mpc8560_ads_pins[] = { | |||
156 | {1, 15, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 157 | {1, 15, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
157 | {1, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 158 | {1, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
158 | {1, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 159 | {1, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
159 | {2, 16, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* CLK16 */ | 160 | {2, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, /* CLK16 */ |
160 | {2, 17, CPM_PIN_INPUT | CPM_PIN_SECONDARY}, /* CLK15 */ | 161 | {2, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, /* CLK15 */ |
162 | {2, 27, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | ||
161 | }; | 163 | }; |
162 | 164 | ||
163 | static void __init init_ioports(void) | 165 | static void __init init_ioports(void) |
diff --git a/arch/powerpc/platforms/85xx/tqm85xx.c b/arch/powerpc/platforms/85xx/tqm85xx.c index 77681acf1bae..d850880d6964 100644 --- a/arch/powerpc/platforms/85xx/tqm85xx.c +++ b/arch/powerpc/platforms/85xx/tqm85xx.c | |||
@@ -120,8 +120,18 @@ static void __init tqm85xx_setup_arch(void) | |||
120 | #endif | 120 | #endif |
121 | 121 | ||
122 | #ifdef CONFIG_PCI | 122 | #ifdef CONFIG_PCI |
123 | for_each_compatible_node(np, "pci", "fsl,mpc8540-pci") | 123 | for_each_node_by_type(np, "pci") { |
124 | fsl_add_bridge(np, 1); | 124 | if (of_device_is_compatible(np, "fsl,mpc8540-pci") || |
125 | of_device_is_compatible(np, "fsl,mpc8548-pcie")) { | ||
126 | struct resource rsrc; | ||
127 | if (!of_address_to_resource(np, 0, &rsrc)) { | ||
128 | if ((rsrc.start & 0xfffff) == 0x8000) | ||
129 | fsl_add_bridge(np, 1); | ||
130 | else | ||
131 | fsl_add_bridge(np, 0); | ||
132 | } | ||
133 | } | ||
134 | } | ||
125 | #endif | 135 | #endif |
126 | } | 136 | } |
127 | 137 | ||
@@ -165,10 +175,11 @@ static int __init tqm85xx_probe(void) | |||
165 | { | 175 | { |
166 | unsigned long root = of_get_flat_dt_root(); | 176 | unsigned long root = of_get_flat_dt_root(); |
167 | 177 | ||
168 | if ((of_flat_dt_is_compatible(root, "tqm,8540")) || | 178 | if ((of_flat_dt_is_compatible(root, "tqc,tqm8540")) || |
169 | (of_flat_dt_is_compatible(root, "tqm,8541")) || | 179 | (of_flat_dt_is_compatible(root, "tqc,tqm8541")) || |
170 | (of_flat_dt_is_compatible(root, "tqm,8555")) || | 180 | (of_flat_dt_is_compatible(root, "tqc,tqm8548")) || |
171 | (of_flat_dt_is_compatible(root, "tqm,8560"))) | 181 | (of_flat_dt_is_compatible(root, "tqc,tqm8555")) || |
182 | (of_flat_dt_is_compatible(root, "tqc,tqm8560"))) | ||
172 | return 1; | 183 | return 1; |
173 | 184 | ||
174 | return 0; | 185 | return 0; |
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index f7efaa925a13..1a1ccfbb9232 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype | |||
@@ -95,6 +95,11 @@ config E500 | |||
95 | select FSL_EMB_PERFMON | 95 | select FSL_EMB_PERFMON |
96 | bool | 96 | bool |
97 | 97 | ||
98 | config PPC_E500MC | ||
99 | bool "e500mc Support" | ||
100 | select PPC_FPU | ||
101 | depends on E500 | ||
102 | |||
98 | config PPC_FPU | 103 | config PPC_FPU |
99 | bool | 104 | bool |
100 | default y if PPC64 | 105 | default y if PPC64 |
@@ -157,7 +162,7 @@ config ALTIVEC | |||
157 | 162 | ||
158 | config SPE | 163 | config SPE |
159 | bool "SPE Support" | 164 | bool "SPE Support" |
160 | depends on E200 || E500 | 165 | depends on E200 || (E500 && !PPC_E500MC) |
161 | default y | 166 | default y |
162 | ---help--- | 167 | ---help--- |
163 | This option enables kernel support for the Signal Processing | 168 | This option enables kernel support for the Signal Processing |
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index dd6dff3ffb0f..16a0ed28eb00 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -14,6 +14,7 @@ obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o | |||
14 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o | 14 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o |
15 | obj-$(CONFIG_FSL_PCI) += fsl_pci.o $(fsl-msi-obj-y) | 15 | obj-$(CONFIG_FSL_PCI) += fsl_pci.o $(fsl-msi-obj-y) |
16 | obj-$(CONFIG_FSL_LBC) += fsl_lbc.o | 16 | obj-$(CONFIG_FSL_LBC) += fsl_lbc.o |
17 | obj-$(CONFIG_FSL_GTM) += fsl_gtm.o | ||
17 | obj-$(CONFIG_RAPIDIO) += fsl_rio.o | 18 | obj-$(CONFIG_RAPIDIO) += fsl_rio.o |
18 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o | 19 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o |
19 | obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ | 20 | obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ |
@@ -41,6 +42,7 @@ endif | |||
41 | ifeq ($(ARCH),powerpc) | 42 | ifeq ($(ARCH),powerpc) |
42 | obj-$(CONFIG_CPM) += cpm_common.o | 43 | obj-$(CONFIG_CPM) += cpm_common.o |
43 | obj-$(CONFIG_CPM2) += cpm2.o cpm2_pic.o | 44 | obj-$(CONFIG_CPM2) += cpm2.o cpm2_pic.o |
45 | obj-$(CONFIG_QUICC_ENGINE) += cpm_common.o | ||
44 | obj-$(CONFIG_PPC_DCR) += dcr.o | 46 | obj-$(CONFIG_PPC_DCR) += dcr.o |
45 | obj-$(CONFIG_8xx) += mpc8xx_pic.o cpm1.o | 47 | obj-$(CONFIG_8xx) += mpc8xx_pic.o cpm1.o |
46 | obj-$(CONFIG_UCODE_PATCH) += micropatch.o | 48 | obj-$(CONFIG_UCODE_PATCH) += micropatch.o |
diff --git a/arch/powerpc/sysdev/cpm_common.c b/arch/powerpc/sysdev/cpm_common.c index cb7df2dce44f..9b75d164bdf9 100644 --- a/arch/powerpc/sysdev/cpm_common.c +++ b/arch/powerpc/sysdev/cpm_common.c | |||
@@ -85,9 +85,13 @@ int __init cpm_muram_init(void) | |||
85 | 85 | ||
86 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm-muram-data"); | 86 | np = of_find_compatible_node(NULL, NULL, "fsl,cpm-muram-data"); |
87 | if (!np) { | 87 | if (!np) { |
88 | printk(KERN_ERR "Cannot find CPM muram data node"); | 88 | /* try legacy bindings */ |
89 | ret = -ENODEV; | 89 | np = of_find_node_by_name(NULL, "data-only"); |
90 | goto out; | 90 | if (!np) { |
91 | printk(KERN_ERR "Cannot find CPM muram data node"); | ||
92 | ret = -ENODEV; | ||
93 | goto out; | ||
94 | } | ||
91 | } | 95 | } |
92 | 96 | ||
93 | muram_pbase = of_translate_address(np, zero); | 97 | muram_pbase = of_translate_address(np, zero); |
@@ -189,6 +193,12 @@ void __iomem *cpm_muram_addr(unsigned long offset) | |||
189 | } | 193 | } |
190 | EXPORT_SYMBOL(cpm_muram_addr); | 194 | EXPORT_SYMBOL(cpm_muram_addr); |
191 | 195 | ||
196 | unsigned long cpm_muram_offset(void __iomem *addr) | ||
197 | { | ||
198 | return addr - (void __iomem *)muram_vbase; | ||
199 | } | ||
200 | EXPORT_SYMBOL(cpm_muram_offset); | ||
201 | |||
192 | /** | 202 | /** |
193 | * cpm_muram_dma - turn a muram virtual address into a DMA address | 203 | * cpm_muram_dma - turn a muram virtual address into a DMA address |
194 | * @offset: virtual address from cpm_muram_addr() to convert | 204 | * @offset: virtual address from cpm_muram_addr() to convert |
diff --git a/arch/powerpc/sysdev/fsl_gtm.c b/arch/powerpc/sysdev/fsl_gtm.c new file mode 100644 index 000000000000..714ec02fed2e --- /dev/null +++ b/arch/powerpc/sysdev/fsl_gtm.c | |||
@@ -0,0 +1,434 @@ | |||
1 | /* | ||
2 | * Freescale General-purpose Timers Module | ||
3 | * | ||
4 | * Copyright (c) Freescale Semicondutor, Inc. 2006. | ||
5 | * Shlomi Gridish <gridish@freescale.com> | ||
6 | * Jerry Huang <Chang-Ming.Huang@freescale.com> | ||
7 | * Copyright (c) MontaVista Software, Inc. 2008. | ||
8 | * Anton Vorontsov <avorontsov@ru.mvista.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/errno.h> | ||
18 | #include <linux/list.h> | ||
19 | #include <linux/io.h> | ||
20 | #include <linux/of.h> | ||
21 | #include <linux/spinlock.h> | ||
22 | #include <linux/bitops.h> | ||
23 | #include <asm/fsl_gtm.h> | ||
24 | |||
25 | #define GTCFR_STP(x) ((x) & 1 ? 1 << 5 : 1 << 1) | ||
26 | #define GTCFR_RST(x) ((x) & 1 ? 1 << 4 : 1 << 0) | ||
27 | |||
28 | #define GTMDR_ICLK_MASK (3 << 1) | ||
29 | #define GTMDR_ICLK_ICAS (0 << 1) | ||
30 | #define GTMDR_ICLK_ICLK (1 << 1) | ||
31 | #define GTMDR_ICLK_SLGO (2 << 1) | ||
32 | #define GTMDR_FRR (1 << 3) | ||
33 | #define GTMDR_ORI (1 << 4) | ||
34 | #define GTMDR_SPS(x) ((x) << 8) | ||
35 | |||
36 | struct gtm_timers_regs { | ||
37 | u8 gtcfr1; /* Timer 1, Timer 2 global config register */ | ||
38 | u8 res0[0x3]; | ||
39 | u8 gtcfr2; /* Timer 3, timer 4 global config register */ | ||
40 | u8 res1[0xB]; | ||
41 | __be16 gtmdr1; /* Timer 1 mode register */ | ||
42 | __be16 gtmdr2; /* Timer 2 mode register */ | ||
43 | __be16 gtrfr1; /* Timer 1 reference register */ | ||
44 | __be16 gtrfr2; /* Timer 2 reference register */ | ||
45 | __be16 gtcpr1; /* Timer 1 capture register */ | ||
46 | __be16 gtcpr2; /* Timer 2 capture register */ | ||
47 | __be16 gtcnr1; /* Timer 1 counter */ | ||
48 | __be16 gtcnr2; /* Timer 2 counter */ | ||
49 | __be16 gtmdr3; /* Timer 3 mode register */ | ||
50 | __be16 gtmdr4; /* Timer 4 mode register */ | ||
51 | __be16 gtrfr3; /* Timer 3 reference register */ | ||
52 | __be16 gtrfr4; /* Timer 4 reference register */ | ||
53 | __be16 gtcpr3; /* Timer 3 capture register */ | ||
54 | __be16 gtcpr4; /* Timer 4 capture register */ | ||
55 | __be16 gtcnr3; /* Timer 3 counter */ | ||
56 | __be16 gtcnr4; /* Timer 4 counter */ | ||
57 | __be16 gtevr1; /* Timer 1 event register */ | ||
58 | __be16 gtevr2; /* Timer 2 event register */ | ||
59 | __be16 gtevr3; /* Timer 3 event register */ | ||
60 | __be16 gtevr4; /* Timer 4 event register */ | ||
61 | __be16 gtpsr1; /* Timer 1 prescale register */ | ||
62 | __be16 gtpsr2; /* Timer 2 prescale register */ | ||
63 | __be16 gtpsr3; /* Timer 3 prescale register */ | ||
64 | __be16 gtpsr4; /* Timer 4 prescale register */ | ||
65 | u8 res2[0x40]; | ||
66 | } __attribute__ ((packed)); | ||
67 | |||
68 | struct gtm { | ||
69 | unsigned int clock; | ||
70 | struct gtm_timers_regs __iomem *regs; | ||
71 | struct gtm_timer timers[4]; | ||
72 | spinlock_t lock; | ||
73 | struct list_head list_node; | ||
74 | }; | ||
75 | |||
76 | static LIST_HEAD(gtms); | ||
77 | |||
78 | /** | ||
79 | * gtm_get_timer - request GTM timer to use it with the rest of GTM API | ||
80 | * Context: non-IRQ | ||
81 | * | ||
82 | * This function reserves GTM timer for later use. It returns gtm_timer | ||
83 | * structure to use with the rest of GTM API, you should use timer->irq | ||
84 | * to manage timer interrupt. | ||
85 | */ | ||
86 | struct gtm_timer *gtm_get_timer16(void) | ||
87 | { | ||
88 | struct gtm *gtm = NULL; | ||
89 | int i; | ||
90 | |||
91 | list_for_each_entry(gtm, >ms, list_node) { | ||
92 | spin_lock_irq(>m->lock); | ||
93 | |||
94 | for (i = 0; i < ARRAY_SIZE(gtm->timers); i++) { | ||
95 | if (!gtm->timers[i].requested) { | ||
96 | gtm->timers[i].requested = true; | ||
97 | spin_unlock_irq(>m->lock); | ||
98 | return >m->timers[i]; | ||
99 | } | ||
100 | } | ||
101 | |||
102 | spin_unlock_irq(>m->lock); | ||
103 | } | ||
104 | |||
105 | if (gtm) | ||
106 | return ERR_PTR(-EBUSY); | ||
107 | return ERR_PTR(-ENODEV); | ||
108 | } | ||
109 | EXPORT_SYMBOL(gtm_get_timer16); | ||
110 | |||
111 | /** | ||
112 | * gtm_get_specific_timer - request specific GTM timer | ||
113 | * @gtm: specific GTM, pass here GTM's device_node->data | ||
114 | * @timer: specific timer number, Timer1 is 0. | ||
115 | * Context: non-IRQ | ||
116 | * | ||
117 | * This function reserves GTM timer for later use. It returns gtm_timer | ||
118 | * structure to use with the rest of GTM API, you should use timer->irq | ||
119 | * to manage timer interrupt. | ||
120 | */ | ||
121 | struct gtm_timer *gtm_get_specific_timer16(struct gtm *gtm, | ||
122 | unsigned int timer) | ||
123 | { | ||
124 | struct gtm_timer *ret = ERR_PTR(-EBUSY); | ||
125 | |||
126 | if (timer > 3) | ||
127 | return ERR_PTR(-EINVAL); | ||
128 | |||
129 | spin_lock_irq(>m->lock); | ||
130 | |||
131 | if (gtm->timers[timer].requested) | ||
132 | goto out; | ||
133 | |||
134 | ret = >m->timers[timer]; | ||
135 | ret->requested = true; | ||
136 | |||
137 | out: | ||
138 | spin_unlock_irq(>m->lock); | ||
139 | return ret; | ||
140 | } | ||
141 | EXPORT_SYMBOL(gtm_get_specific_timer16); | ||
142 | |||
143 | /** | ||
144 | * gtm_put_timer16 - release 16 bits GTM timer | ||
145 | * @tmr: pointer to the gtm_timer structure obtained from gtm_get_timer | ||
146 | * Context: any | ||
147 | * | ||
148 | * This function releases GTM timer so others may request it. | ||
149 | */ | ||
150 | void gtm_put_timer16(struct gtm_timer *tmr) | ||
151 | { | ||
152 | gtm_stop_timer16(tmr); | ||
153 | |||
154 | spin_lock_irq(&tmr->gtm->lock); | ||
155 | tmr->requested = false; | ||
156 | spin_unlock_irq(&tmr->gtm->lock); | ||
157 | } | ||
158 | EXPORT_SYMBOL(gtm_put_timer16); | ||
159 | |||
160 | /* | ||
161 | * This is back-end for the exported functions, it's used to reset single | ||
162 | * timer in reference mode. | ||
163 | */ | ||
164 | static int gtm_set_ref_timer16(struct gtm_timer *tmr, int frequency, | ||
165 | int reference_value, bool free_run) | ||
166 | { | ||
167 | struct gtm *gtm = tmr->gtm; | ||
168 | int num = tmr - >m->timers[0]; | ||
169 | unsigned int prescaler; | ||
170 | u8 iclk = GTMDR_ICLK_ICLK; | ||
171 | u8 psr; | ||
172 | u8 sps; | ||
173 | unsigned long flags; | ||
174 | int max_prescaler = 256 * 256 * 16; | ||
175 | |||
176 | /* CPM2 doesn't have primary prescaler */ | ||
177 | if (!tmr->gtpsr) | ||
178 | max_prescaler /= 256; | ||
179 | |||
180 | prescaler = gtm->clock / frequency; | ||
181 | /* | ||
182 | * We have two 8 bit prescalers -- primary and secondary (psr, sps), | ||
183 | * plus "slow go" mode (clk / 16). So, total prescale value is | ||
184 | * 16 * (psr + 1) * (sps + 1). Though, for CPM2 GTMs we losing psr. | ||
185 | */ | ||
186 | if (prescaler > max_prescaler) | ||
187 | return -EINVAL; | ||
188 | |||
189 | if (prescaler > max_prescaler / 16) { | ||
190 | iclk = GTMDR_ICLK_SLGO; | ||
191 | prescaler /= 16; | ||
192 | } | ||
193 | |||
194 | if (prescaler <= 256) { | ||
195 | psr = 0; | ||
196 | sps = prescaler - 1; | ||
197 | } else { | ||
198 | psr = 256 - 1; | ||
199 | sps = prescaler / 256 - 1; | ||
200 | } | ||
201 | |||
202 | spin_lock_irqsave(>m->lock, flags); | ||
203 | |||
204 | /* | ||
205 | * Properly reset timers: stop, reset, set up prescalers, reference | ||
206 | * value and clear event register. | ||
207 | */ | ||
208 | clrsetbits_8(tmr->gtcfr, ~(GTCFR_STP(num) | GTCFR_RST(num)), | ||
209 | GTCFR_STP(num) | GTCFR_RST(num)); | ||
210 | |||
211 | setbits8(tmr->gtcfr, GTCFR_STP(num)); | ||
212 | |||
213 | if (tmr->gtpsr) | ||
214 | out_be16(tmr->gtpsr, psr); | ||
215 | clrsetbits_be16(tmr->gtmdr, 0xFFFF, iclk | GTMDR_SPS(sps) | | ||
216 | GTMDR_ORI | (free_run ? GTMDR_FRR : 0)); | ||
217 | out_be16(tmr->gtcnr, 0); | ||
218 | out_be16(tmr->gtrfr, reference_value); | ||
219 | out_be16(tmr->gtevr, 0xFFFF); | ||
220 | |||
221 | /* Let it be. */ | ||
222 | clrbits8(tmr->gtcfr, GTCFR_STP(num)); | ||
223 | |||
224 | spin_unlock_irqrestore(>m->lock, flags); | ||
225 | |||
226 | return 0; | ||
227 | } | ||
228 | |||
229 | /** | ||
230 | * gtm_set_timer16 - (re)set 16 bit timer with arbitrary precision | ||
231 | * @tmr: pointer to the gtm_timer structure obtained from gtm_get_timer | ||
232 | * @usec: timer interval in microseconds | ||
233 | * @reload: if set, the timer will reset upon expiry rather than | ||
234 | * continue running free. | ||
235 | * Context: any | ||
236 | * | ||
237 | * This function (re)sets the GTM timer so that it counts up to the requested | ||
238 | * interval value, and fires the interrupt when the value is reached. This | ||
239 | * function will reduce the precision of the timer as needed in order for the | ||
240 | * requested timeout to fit in a 16-bit register. | ||
241 | */ | ||
242 | int gtm_set_timer16(struct gtm_timer *tmr, unsigned long usec, bool reload) | ||
243 | { | ||
244 | /* quite obvious, frequency which is enough for µSec precision */ | ||
245 | int freq = 1000000; | ||
246 | unsigned int bit; | ||
247 | |||
248 | bit = fls_long(usec); | ||
249 | if (bit > 15) { | ||
250 | freq >>= bit - 15; | ||
251 | usec >>= bit - 15; | ||
252 | } | ||
253 | |||
254 | if (!freq) | ||
255 | return -EINVAL; | ||
256 | |||
257 | return gtm_set_ref_timer16(tmr, freq, usec, reload); | ||
258 | } | ||
259 | EXPORT_SYMBOL(gtm_set_timer16); | ||
260 | |||
261 | /** | ||
262 | * gtm_set_exact_utimer16 - (re)set 16 bits timer | ||
263 | * @tmr: pointer to the gtm_timer structure obtained from gtm_get_timer | ||
264 | * @usec: timer interval in microseconds | ||
265 | * @reload: if set, the timer will reset upon expiry rather than | ||
266 | * continue running free. | ||
267 | * Context: any | ||
268 | * | ||
269 | * This function (re)sets GTM timer so that it counts up to the requested | ||
270 | * interval value, and fires the interrupt when the value is reached. If reload | ||
271 | * flag was set, timer will also reset itself upon reference value, otherwise | ||
272 | * it continues to increment. | ||
273 | * | ||
274 | * The _exact_ bit in the function name states that this function will not | ||
275 | * crop precision of the "usec" argument, thus usec is limited to 16 bits | ||
276 | * (single timer width). | ||
277 | */ | ||
278 | int gtm_set_exact_timer16(struct gtm_timer *tmr, u16 usec, bool reload) | ||
279 | { | ||
280 | /* quite obvious, frequency which is enough for µSec precision */ | ||
281 | const int freq = 1000000; | ||
282 | |||
283 | /* | ||
284 | * We can lower the frequency (and probably power consumption) by | ||
285 | * dividing both frequency and usec by 2 until there is no remainder. | ||
286 | * But we won't bother with this unless savings are measured, so just | ||
287 | * run the timer as is. | ||
288 | */ | ||
289 | |||
290 | return gtm_set_ref_timer16(tmr, freq, usec, reload); | ||
291 | } | ||
292 | EXPORT_SYMBOL(gtm_set_exact_timer16); | ||
293 | |||
294 | /** | ||
295 | * gtm_stop_timer16 - stop single timer | ||
296 | * @tmr: pointer to the gtm_timer structure obtained from gtm_get_timer | ||
297 | * Context: any | ||
298 | * | ||
299 | * This function simply stops the GTM timer. | ||
300 | */ | ||
301 | void gtm_stop_timer16(struct gtm_timer *tmr) | ||
302 | { | ||
303 | struct gtm *gtm = tmr->gtm; | ||
304 | int num = tmr - >m->timers[0]; | ||
305 | unsigned long flags; | ||
306 | |||
307 | spin_lock_irqsave(>m->lock, flags); | ||
308 | |||
309 | setbits8(tmr->gtcfr, GTCFR_STP(num)); | ||
310 | out_be16(tmr->gtevr, 0xFFFF); | ||
311 | |||
312 | spin_unlock_irqrestore(>m->lock, flags); | ||
313 | } | ||
314 | EXPORT_SYMBOL(gtm_stop_timer16); | ||
315 | |||
316 | /** | ||
317 | * gtm_ack_timer16 - acknowledge timer event (free-run timers only) | ||
318 | * @tmr: pointer to the gtm_timer structure obtained from gtm_get_timer | ||
319 | * @events: events mask to ack | ||
320 | * Context: any | ||
321 | * | ||
322 | * Thus function used to acknowledge timer interrupt event, use it inside the | ||
323 | * interrupt handler. | ||
324 | */ | ||
325 | void gtm_ack_timer16(struct gtm_timer *tmr, u16 events) | ||
326 | { | ||
327 | out_be16(tmr->gtevr, events); | ||
328 | } | ||
329 | EXPORT_SYMBOL(gtm_ack_timer16); | ||
330 | |||
331 | static void __init gtm_set_shortcuts(struct device_node *np, | ||
332 | struct gtm_timer *timers, | ||
333 | struct gtm_timers_regs __iomem *regs) | ||
334 | { | ||
335 | /* | ||
336 | * Yeah, I don't like this either, but timers' registers a bit messed, | ||
337 | * so we have to provide shortcuts to write timer independent code. | ||
338 | * Alternative option is to create gt*() accessors, but that will be | ||
339 | * even uglier and cryptic. | ||
340 | */ | ||
341 | timers[0].gtcfr = ®s->gtcfr1; | ||
342 | timers[0].gtmdr = ®s->gtmdr1; | ||
343 | timers[0].gtcnr = ®s->gtcnr1; | ||
344 | timers[0].gtrfr = ®s->gtrfr1; | ||
345 | timers[0].gtevr = ®s->gtevr1; | ||
346 | |||
347 | timers[1].gtcfr = ®s->gtcfr1; | ||
348 | timers[1].gtmdr = ®s->gtmdr2; | ||
349 | timers[1].gtcnr = ®s->gtcnr2; | ||
350 | timers[1].gtrfr = ®s->gtrfr2; | ||
351 | timers[1].gtevr = ®s->gtevr2; | ||
352 | |||
353 | timers[2].gtcfr = ®s->gtcfr2; | ||
354 | timers[2].gtmdr = ®s->gtmdr3; | ||
355 | timers[2].gtcnr = ®s->gtcnr3; | ||
356 | timers[2].gtrfr = ®s->gtrfr3; | ||
357 | timers[2].gtevr = ®s->gtevr3; | ||
358 | |||
359 | timers[3].gtcfr = ®s->gtcfr2; | ||
360 | timers[3].gtmdr = ®s->gtmdr4; | ||
361 | timers[3].gtcnr = ®s->gtcnr4; | ||
362 | timers[3].gtrfr = ®s->gtrfr4; | ||
363 | timers[3].gtevr = ®s->gtevr4; | ||
364 | |||
365 | /* CPM2 doesn't have primary prescaler */ | ||
366 | if (!of_device_is_compatible(np, "fsl,cpm2-gtm")) { | ||
367 | timers[0].gtpsr = ®s->gtpsr1; | ||
368 | timers[1].gtpsr = ®s->gtpsr2; | ||
369 | timers[2].gtpsr = ®s->gtpsr3; | ||
370 | timers[3].gtpsr = ®s->gtpsr4; | ||
371 | } | ||
372 | } | ||
373 | |||
374 | static int __init fsl_gtm_init(void) | ||
375 | { | ||
376 | struct device_node *np; | ||
377 | |||
378 | for_each_compatible_node(np, NULL, "fsl,gtm") { | ||
379 | int i; | ||
380 | struct gtm *gtm; | ||
381 | const u32 *clock; | ||
382 | int size; | ||
383 | |||
384 | gtm = kzalloc(sizeof(*gtm), GFP_KERNEL); | ||
385 | if (!gtm) { | ||
386 | pr_err("%s: unable to allocate memory\n", | ||
387 | np->full_name); | ||
388 | continue; | ||
389 | } | ||
390 | |||
391 | spin_lock_init(>m->lock); | ||
392 | |||
393 | clock = of_get_property(np, "clock-frequency", &size); | ||
394 | if (!clock || size != sizeof(*clock)) { | ||
395 | pr_err("%s: no clock-frequency\n", np->full_name); | ||
396 | goto err; | ||
397 | } | ||
398 | gtm->clock = *clock; | ||
399 | |||
400 | for (i = 0; i < ARRAY_SIZE(gtm->timers); i++) { | ||
401 | int ret; | ||
402 | struct resource irq; | ||
403 | |||
404 | ret = of_irq_to_resource(np, i, &irq); | ||
405 | if (ret == NO_IRQ) { | ||
406 | pr_err("%s: not enough interrupts specified\n", | ||
407 | np->full_name); | ||
408 | goto err; | ||
409 | } | ||
410 | gtm->timers[i].irq = irq.start; | ||
411 | gtm->timers[i].gtm = gtm; | ||
412 | } | ||
413 | |||
414 | gtm->regs = of_iomap(np, 0); | ||
415 | if (!gtm->regs) { | ||
416 | pr_err("%s: unable to iomap registers\n", | ||
417 | np->full_name); | ||
418 | goto err; | ||
419 | } | ||
420 | |||
421 | gtm_set_shortcuts(np, gtm->timers, gtm->regs); | ||
422 | list_add(>m->list_node, >ms); | ||
423 | |||
424 | /* We don't want to lose the node and its ->data */ | ||
425 | np->data = gtm; | ||
426 | of_node_get(np); | ||
427 | |||
428 | continue; | ||
429 | err: | ||
430 | kfree(gtm); | ||
431 | } | ||
432 | return 0; | ||
433 | } | ||
434 | arch_initcall(fsl_gtm_init); | ||
diff --git a/arch/powerpc/sysdev/qe_lib/Kconfig b/arch/powerpc/sysdev/qe_lib/Kconfig index adc66212a419..4bb18f57901e 100644 --- a/arch/powerpc/sysdev/qe_lib/Kconfig +++ b/arch/powerpc/sysdev/qe_lib/Kconfig | |||
@@ -20,3 +20,16 @@ config UCC | |||
20 | bool | 20 | bool |
21 | default y if UCC_FAST || UCC_SLOW | 21 | default y if UCC_FAST || UCC_SLOW |
22 | 22 | ||
23 | config QE_USB | ||
24 | bool | ||
25 | help | ||
26 | QE USB Host Controller support | ||
27 | |||
28 | config QE_GPIO | ||
29 | bool "QE GPIO support" | ||
30 | depends on QUICC_ENGINE | ||
31 | select GENERIC_GPIO | ||
32 | select HAVE_GPIO_LIB | ||
33 | help | ||
34 | Say Y here if you're going to use hardware that connects to the | ||
35 | QE GPIOs. | ||
diff --git a/arch/powerpc/sysdev/qe_lib/Makefile b/arch/powerpc/sysdev/qe_lib/Makefile index 874fe1a5b1cf..f1855c185291 100644 --- a/arch/powerpc/sysdev/qe_lib/Makefile +++ b/arch/powerpc/sysdev/qe_lib/Makefile | |||
@@ -6,3 +6,5 @@ obj-$(CONFIG_QUICC_ENGINE)+= qe.o qe_ic.o qe_io.o | |||
6 | obj-$(CONFIG_UCC) += ucc.o | 6 | obj-$(CONFIG_UCC) += ucc.o |
7 | obj-$(CONFIG_UCC_SLOW) += ucc_slow.o | 7 | obj-$(CONFIG_UCC_SLOW) += ucc_slow.o |
8 | obj-$(CONFIG_UCC_FAST) += ucc_fast.o | 8 | obj-$(CONFIG_UCC_FAST) += ucc_fast.o |
9 | obj-$(CONFIG_QE_USB) += usb.o | ||
10 | obj-$(CONFIG_QE_GPIO) += gpio.o | ||
diff --git a/arch/powerpc/sysdev/qe_lib/gpio.c b/arch/powerpc/sysdev/qe_lib/gpio.c new file mode 100644 index 000000000000..8e5a0bc36d0b --- /dev/null +++ b/arch/powerpc/sysdev/qe_lib/gpio.c | |||
@@ -0,0 +1,149 @@ | |||
1 | /* | ||
2 | * QUICC Engine GPIOs | ||
3 | * | ||
4 | * Copyright (c) MontaVista Software, Inc. 2008. | ||
5 | * | ||
6 | * Author: Anton Vorontsov <avorontsov@ru.mvista.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify it | ||
9 | * under the terms of the GNU General Public License as published by the | ||
10 | * Free Software Foundation; either version 2 of the License, or (at your | ||
11 | * option) any later version. | ||
12 | */ | ||
13 | |||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/spinlock.h> | ||
17 | #include <linux/io.h> | ||
18 | #include <linux/of.h> | ||
19 | #include <linux/of_gpio.h> | ||
20 | #include <linux/gpio.h> | ||
21 | #include <asm/qe.h> | ||
22 | |||
23 | struct qe_gpio_chip { | ||
24 | struct of_mm_gpio_chip mm_gc; | ||
25 | spinlock_t lock; | ||
26 | |||
27 | /* shadowed data register to clear/set bits safely */ | ||
28 | u32 cpdata; | ||
29 | }; | ||
30 | |||
31 | static inline struct qe_gpio_chip * | ||
32 | to_qe_gpio_chip(struct of_mm_gpio_chip *mm_gc) | ||
33 | { | ||
34 | return container_of(mm_gc, struct qe_gpio_chip, mm_gc); | ||
35 | } | ||
36 | |||
37 | static void qe_gpio_save_regs(struct of_mm_gpio_chip *mm_gc) | ||
38 | { | ||
39 | struct qe_gpio_chip *qe_gc = to_qe_gpio_chip(mm_gc); | ||
40 | struct qe_pio_regs __iomem *regs = mm_gc->regs; | ||
41 | |||
42 | qe_gc->cpdata = in_be32(®s->cpdata); | ||
43 | } | ||
44 | |||
45 | static int qe_gpio_get(struct gpio_chip *gc, unsigned int gpio) | ||
46 | { | ||
47 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
48 | struct qe_pio_regs __iomem *regs = mm_gc->regs; | ||
49 | u32 pin_mask = 1 << (QE_PIO_PINS - 1 - gpio); | ||
50 | |||
51 | return in_be32(®s->cpdata) & pin_mask; | ||
52 | } | ||
53 | |||
54 | static void qe_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val) | ||
55 | { | ||
56 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
57 | struct qe_gpio_chip *qe_gc = to_qe_gpio_chip(mm_gc); | ||
58 | struct qe_pio_regs __iomem *regs = mm_gc->regs; | ||
59 | unsigned long flags; | ||
60 | u32 pin_mask = 1 << (QE_PIO_PINS - 1 - gpio); | ||
61 | |||
62 | spin_lock_irqsave(&qe_gc->lock, flags); | ||
63 | |||
64 | if (val) | ||
65 | qe_gc->cpdata |= pin_mask; | ||
66 | else | ||
67 | qe_gc->cpdata &= ~pin_mask; | ||
68 | |||
69 | out_be32(®s->cpdata, qe_gc->cpdata); | ||
70 | |||
71 | spin_unlock_irqrestore(&qe_gc->lock, flags); | ||
72 | } | ||
73 | |||
74 | static int qe_gpio_dir_in(struct gpio_chip *gc, unsigned int gpio) | ||
75 | { | ||
76 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
77 | struct qe_gpio_chip *qe_gc = to_qe_gpio_chip(mm_gc); | ||
78 | unsigned long flags; | ||
79 | |||
80 | spin_lock_irqsave(&qe_gc->lock, flags); | ||
81 | |||
82 | __par_io_config_pin(mm_gc->regs, gpio, QE_PIO_DIR_IN, 0, 0, 0); | ||
83 | |||
84 | spin_unlock_irqrestore(&qe_gc->lock, flags); | ||
85 | |||
86 | return 0; | ||
87 | } | ||
88 | |||
89 | static int qe_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) | ||
90 | { | ||
91 | struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); | ||
92 | struct qe_gpio_chip *qe_gc = to_qe_gpio_chip(mm_gc); | ||
93 | unsigned long flags; | ||
94 | |||
95 | spin_lock_irqsave(&qe_gc->lock, flags); | ||
96 | |||
97 | __par_io_config_pin(mm_gc->regs, gpio, QE_PIO_DIR_OUT, 0, 0, 0); | ||
98 | |||
99 | spin_unlock_irqrestore(&qe_gc->lock, flags); | ||
100 | |||
101 | qe_gpio_set(gc, gpio, val); | ||
102 | |||
103 | return 0; | ||
104 | } | ||
105 | |||
106 | static int __init qe_add_gpiochips(void) | ||
107 | { | ||
108 | struct device_node *np; | ||
109 | |||
110 | for_each_compatible_node(np, NULL, "fsl,mpc8323-qe-pario-bank") { | ||
111 | int ret; | ||
112 | struct qe_gpio_chip *qe_gc; | ||
113 | struct of_mm_gpio_chip *mm_gc; | ||
114 | struct of_gpio_chip *of_gc; | ||
115 | struct gpio_chip *gc; | ||
116 | |||
117 | qe_gc = kzalloc(sizeof(*qe_gc), GFP_KERNEL); | ||
118 | if (!qe_gc) { | ||
119 | ret = -ENOMEM; | ||
120 | goto err; | ||
121 | } | ||
122 | |||
123 | spin_lock_init(&qe_gc->lock); | ||
124 | |||
125 | mm_gc = &qe_gc->mm_gc; | ||
126 | of_gc = &mm_gc->of_gc; | ||
127 | gc = &of_gc->gc; | ||
128 | |||
129 | mm_gc->save_regs = qe_gpio_save_regs; | ||
130 | of_gc->gpio_cells = 2; | ||
131 | gc->ngpio = QE_PIO_PINS; | ||
132 | gc->direction_input = qe_gpio_dir_in; | ||
133 | gc->direction_output = qe_gpio_dir_out; | ||
134 | gc->get = qe_gpio_get; | ||
135 | gc->set = qe_gpio_set; | ||
136 | |||
137 | ret = of_mm_gpiochip_add(np, mm_gc); | ||
138 | if (ret) | ||
139 | goto err; | ||
140 | continue; | ||
141 | err: | ||
142 | pr_err("%s: registration failed with status %d\n", | ||
143 | np->full_name, ret); | ||
144 | kfree(qe_gc); | ||
145 | /* try others anyway */ | ||
146 | } | ||
147 | return 0; | ||
148 | } | ||
149 | arch_initcall(qe_add_gpiochips); | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c index cff550eec7e8..9e82d7e725a5 100644 --- a/arch/powerpc/sysdev/qe_lib/qe.c +++ b/arch/powerpc/sysdev/qe_lib/qe.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <asm/rheap.h> | 35 | #include <asm/rheap.h> |
36 | 36 | ||
37 | static void qe_snums_init(void); | 37 | static void qe_snums_init(void); |
38 | static void qe_muram_init(void); | ||
39 | static int qe_sdma_init(void); | 38 | static int qe_sdma_init(void); |
40 | 39 | ||
41 | static DEFINE_SPINLOCK(qe_lock); | 40 | static DEFINE_SPINLOCK(qe_lock); |
@@ -88,7 +87,7 @@ phys_addr_t get_qe_base(void) | |||
88 | 87 | ||
89 | EXPORT_SYMBOL(get_qe_base); | 88 | EXPORT_SYMBOL(get_qe_base); |
90 | 89 | ||
91 | void qe_reset(void) | 90 | void __init qe_reset(void) |
92 | { | 91 | { |
93 | if (qe_immr == NULL) | 92 | if (qe_immr == NULL) |
94 | qe_immr = ioremap(get_qe_base(), QE_IMMAP_SIZE); | 93 | qe_immr = ioremap(get_qe_base(), QE_IMMAP_SIZE); |
@@ -325,97 +324,6 @@ static int qe_sdma_init(void) | |||
325 | return 0; | 324 | return 0; |
326 | } | 325 | } |
327 | 326 | ||
328 | /* | ||
329 | * muram_alloc / muram_free bits. | ||
330 | */ | ||
331 | static DEFINE_SPINLOCK(qe_muram_lock); | ||
332 | |||
333 | /* 16 blocks should be enough to satisfy all requests | ||
334 | * until the memory subsystem goes up... */ | ||
335 | static rh_block_t qe_boot_muram_rh_block[16]; | ||
336 | static rh_info_t qe_muram_info; | ||
337 | |||
338 | static void qe_muram_init(void) | ||
339 | { | ||
340 | struct device_node *np; | ||
341 | const u32 *address; | ||
342 | u64 size; | ||
343 | unsigned int flags; | ||
344 | |||
345 | /* initialize the info header */ | ||
346 | rh_init(&qe_muram_info, 1, | ||
347 | sizeof(qe_boot_muram_rh_block) / | ||
348 | sizeof(qe_boot_muram_rh_block[0]), qe_boot_muram_rh_block); | ||
349 | |||
350 | /* Attach the usable muram area */ | ||
351 | /* XXX: This is a subset of the available muram. It | ||
352 | * varies with the processor and the microcode patches activated. | ||
353 | */ | ||
354 | np = of_find_compatible_node(NULL, NULL, "fsl,qe-muram-data"); | ||
355 | if (!np) { | ||
356 | np = of_find_node_by_name(NULL, "data-only"); | ||
357 | if (!np) { | ||
358 | WARN_ON(1); | ||
359 | return; | ||
360 | } | ||
361 | } | ||
362 | |||
363 | address = of_get_address(np, 0, &size, &flags); | ||
364 | WARN_ON(!address); | ||
365 | |||
366 | of_node_put(np); | ||
367 | if (address) | ||
368 | rh_attach_region(&qe_muram_info, *address, (int)size); | ||
369 | } | ||
370 | |||
371 | /* This function returns an index into the MURAM area. | ||
372 | */ | ||
373 | unsigned long qe_muram_alloc(int size, int align) | ||
374 | { | ||
375 | unsigned long start; | ||
376 | unsigned long flags; | ||
377 | |||
378 | spin_lock_irqsave(&qe_muram_lock, flags); | ||
379 | start = rh_alloc_align(&qe_muram_info, size, align, "QE"); | ||
380 | spin_unlock_irqrestore(&qe_muram_lock, flags); | ||
381 | |||
382 | return start; | ||
383 | } | ||
384 | EXPORT_SYMBOL(qe_muram_alloc); | ||
385 | |||
386 | int qe_muram_free(unsigned long offset) | ||
387 | { | ||
388 | int ret; | ||
389 | unsigned long flags; | ||
390 | |||
391 | spin_lock_irqsave(&qe_muram_lock, flags); | ||
392 | ret = rh_free(&qe_muram_info, offset); | ||
393 | spin_unlock_irqrestore(&qe_muram_lock, flags); | ||
394 | |||
395 | return ret; | ||
396 | } | ||
397 | EXPORT_SYMBOL(qe_muram_free); | ||
398 | |||
399 | /* not sure if this is ever needed */ | ||
400 | unsigned long qe_muram_alloc_fixed(unsigned long offset, int size) | ||
401 | { | ||
402 | unsigned long start; | ||
403 | unsigned long flags; | ||
404 | |||
405 | spin_lock_irqsave(&qe_muram_lock, flags); | ||
406 | start = rh_alloc_fixed(&qe_muram_info, offset, size, "commproc"); | ||
407 | spin_unlock_irqrestore(&qe_muram_lock, flags); | ||
408 | |||
409 | return start; | ||
410 | } | ||
411 | EXPORT_SYMBOL(qe_muram_alloc_fixed); | ||
412 | |||
413 | void qe_muram_dump(void) | ||
414 | { | ||
415 | rh_dump(&qe_muram_info); | ||
416 | } | ||
417 | EXPORT_SYMBOL(qe_muram_dump); | ||
418 | |||
419 | /* The maximum number of RISCs we support */ | 327 | /* The maximum number of RISCs we support */ |
420 | #define MAX_QE_RISC 2 | 328 | #define MAX_QE_RISC 2 |
421 | 329 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe_io.c b/arch/powerpc/sysdev/qe_lib/qe_io.c index 93916a48afec..7c87460179ef 100644 --- a/arch/powerpc/sysdev/qe_lib/qe_io.c +++ b/arch/powerpc/sysdev/qe_lib/qe_io.c | |||
@@ -28,21 +28,7 @@ | |||
28 | 28 | ||
29 | #undef DEBUG | 29 | #undef DEBUG |
30 | 30 | ||
31 | #define NUM_OF_PINS 32 | 31 | static struct qe_pio_regs __iomem *par_io; |
32 | |||
33 | struct port_regs { | ||
34 | __be32 cpodr; /* Open drain register */ | ||
35 | __be32 cpdata; /* Data register */ | ||
36 | __be32 cpdir1; /* Direction register */ | ||
37 | __be32 cpdir2; /* Direction register */ | ||
38 | __be32 cppar1; /* Pin assignment register */ | ||
39 | __be32 cppar2; /* Pin assignment register */ | ||
40 | #ifdef CONFIG_PPC_85xx | ||
41 | u8 pad[8]; | ||
42 | #endif | ||
43 | }; | ||
44 | |||
45 | static struct port_regs __iomem *par_io; | ||
46 | static int num_par_io_ports = 0; | 32 | static int num_par_io_ports = 0; |
47 | 33 | ||
48 | int par_io_init(struct device_node *np) | 34 | int par_io_init(struct device_node *np) |
@@ -64,69 +50,79 @@ int par_io_init(struct device_node *np) | |||
64 | return 0; | 50 | return 0; |
65 | } | 51 | } |
66 | 52 | ||
67 | int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain, | 53 | void __par_io_config_pin(struct qe_pio_regs __iomem *par_io, u8 pin, int dir, |
68 | int assignment, int has_irq) | 54 | int open_drain, int assignment, int has_irq) |
69 | { | 55 | { |
70 | u32 pin_mask1bit, pin_mask2bits, new_mask2bits, tmp_val; | 56 | u32 pin_mask1bit; |
71 | 57 | u32 pin_mask2bits; | |
72 | if (!par_io) | 58 | u32 new_mask2bits; |
73 | return -1; | 59 | u32 tmp_val; |
74 | 60 | ||
75 | /* calculate pin location for single and 2 bits information */ | 61 | /* calculate pin location for single and 2 bits information */ |
76 | pin_mask1bit = (u32) (1 << (NUM_OF_PINS - (pin + 1))); | 62 | pin_mask1bit = (u32) (1 << (QE_PIO_PINS - (pin + 1))); |
77 | 63 | ||
78 | /* Set open drain, if required */ | 64 | /* Set open drain, if required */ |
79 | tmp_val = in_be32(&par_io[port].cpodr); | 65 | tmp_val = in_be32(&par_io->cpodr); |
80 | if (open_drain) | 66 | if (open_drain) |
81 | out_be32(&par_io[port].cpodr, pin_mask1bit | tmp_val); | 67 | out_be32(&par_io->cpodr, pin_mask1bit | tmp_val); |
82 | else | 68 | else |
83 | out_be32(&par_io[port].cpodr, ~pin_mask1bit & tmp_val); | 69 | out_be32(&par_io->cpodr, ~pin_mask1bit & tmp_val); |
84 | 70 | ||
85 | /* define direction */ | 71 | /* define direction */ |
86 | tmp_val = (pin > (NUM_OF_PINS / 2) - 1) ? | 72 | tmp_val = (pin > (QE_PIO_PINS / 2) - 1) ? |
87 | in_be32(&par_io[port].cpdir2) : | 73 | in_be32(&par_io->cpdir2) : |
88 | in_be32(&par_io[port].cpdir1); | 74 | in_be32(&par_io->cpdir1); |
89 | 75 | ||
90 | /* get all bits mask for 2 bit per port */ | 76 | /* get all bits mask for 2 bit per port */ |
91 | pin_mask2bits = (u32) (0x3 << (NUM_OF_PINS - | 77 | pin_mask2bits = (u32) (0x3 << (QE_PIO_PINS - |
92 | (pin % (NUM_OF_PINS / 2) + 1) * 2)); | 78 | (pin % (QE_PIO_PINS / 2) + 1) * 2)); |
93 | 79 | ||
94 | /* Get the final mask we need for the right definition */ | 80 | /* Get the final mask we need for the right definition */ |
95 | new_mask2bits = (u32) (dir << (NUM_OF_PINS - | 81 | new_mask2bits = (u32) (dir << (QE_PIO_PINS - |
96 | (pin % (NUM_OF_PINS / 2) + 1) * 2)); | 82 | (pin % (QE_PIO_PINS / 2) + 1) * 2)); |
97 | 83 | ||
98 | /* clear and set 2 bits mask */ | 84 | /* clear and set 2 bits mask */ |
99 | if (pin > (NUM_OF_PINS / 2) - 1) { | 85 | if (pin > (QE_PIO_PINS / 2) - 1) { |
100 | out_be32(&par_io[port].cpdir2, | 86 | out_be32(&par_io->cpdir2, |
101 | ~pin_mask2bits & tmp_val); | 87 | ~pin_mask2bits & tmp_val); |
102 | tmp_val &= ~pin_mask2bits; | 88 | tmp_val &= ~pin_mask2bits; |
103 | out_be32(&par_io[port].cpdir2, new_mask2bits | tmp_val); | 89 | out_be32(&par_io->cpdir2, new_mask2bits | tmp_val); |
104 | } else { | 90 | } else { |
105 | out_be32(&par_io[port].cpdir1, | 91 | out_be32(&par_io->cpdir1, |
106 | ~pin_mask2bits & tmp_val); | 92 | ~pin_mask2bits & tmp_val); |
107 | tmp_val &= ~pin_mask2bits; | 93 | tmp_val &= ~pin_mask2bits; |
108 | out_be32(&par_io[port].cpdir1, new_mask2bits | tmp_val); | 94 | out_be32(&par_io->cpdir1, new_mask2bits | tmp_val); |
109 | } | 95 | } |
110 | /* define pin assignment */ | 96 | /* define pin assignment */ |
111 | tmp_val = (pin > (NUM_OF_PINS / 2) - 1) ? | 97 | tmp_val = (pin > (QE_PIO_PINS / 2) - 1) ? |
112 | in_be32(&par_io[port].cppar2) : | 98 | in_be32(&par_io->cppar2) : |
113 | in_be32(&par_io[port].cppar1); | 99 | in_be32(&par_io->cppar1); |
114 | 100 | ||
115 | new_mask2bits = (u32) (assignment << (NUM_OF_PINS - | 101 | new_mask2bits = (u32) (assignment << (QE_PIO_PINS - |
116 | (pin % (NUM_OF_PINS / 2) + 1) * 2)); | 102 | (pin % (QE_PIO_PINS / 2) + 1) * 2)); |
117 | /* clear and set 2 bits mask */ | 103 | /* clear and set 2 bits mask */ |
118 | if (pin > (NUM_OF_PINS / 2) - 1) { | 104 | if (pin > (QE_PIO_PINS / 2) - 1) { |
119 | out_be32(&par_io[port].cppar2, | 105 | out_be32(&par_io->cppar2, |
120 | ~pin_mask2bits & tmp_val); | 106 | ~pin_mask2bits & tmp_val); |
121 | tmp_val &= ~pin_mask2bits; | 107 | tmp_val &= ~pin_mask2bits; |
122 | out_be32(&par_io[port].cppar2, new_mask2bits | tmp_val); | 108 | out_be32(&par_io->cppar2, new_mask2bits | tmp_val); |
123 | } else { | 109 | } else { |
124 | out_be32(&par_io[port].cppar1, | 110 | out_be32(&par_io->cppar1, |
125 | ~pin_mask2bits & tmp_val); | 111 | ~pin_mask2bits & tmp_val); |
126 | tmp_val &= ~pin_mask2bits; | 112 | tmp_val &= ~pin_mask2bits; |
127 | out_be32(&par_io[port].cppar1, new_mask2bits | tmp_val); | 113 | out_be32(&par_io->cppar1, new_mask2bits | tmp_val); |
128 | } | 114 | } |
115 | } | ||
116 | EXPORT_SYMBOL(__par_io_config_pin); | ||
117 | |||
118 | int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain, | ||
119 | int assignment, int has_irq) | ||
120 | { | ||
121 | if (!par_io || port >= num_par_io_ports) | ||
122 | return -EINVAL; | ||
129 | 123 | ||
124 | __par_io_config_pin(&par_io[port], pin, dir, open_drain, assignment, | ||
125 | has_irq); | ||
130 | return 0; | 126 | return 0; |
131 | } | 127 | } |
132 | EXPORT_SYMBOL(par_io_config_pin); | 128 | EXPORT_SYMBOL(par_io_config_pin); |
@@ -137,10 +133,10 @@ int par_io_data_set(u8 port, u8 pin, u8 val) | |||
137 | 133 | ||
138 | if (port >= num_par_io_ports) | 134 | if (port >= num_par_io_ports) |
139 | return -EINVAL; | 135 | return -EINVAL; |
140 | if (pin >= NUM_OF_PINS) | 136 | if (pin >= QE_PIO_PINS) |
141 | return -EINVAL; | 137 | return -EINVAL; |
142 | /* calculate pin location */ | 138 | /* calculate pin location */ |
143 | pin_mask = (u32) (1 << (NUM_OF_PINS - 1 - pin)); | 139 | pin_mask = (u32) (1 << (QE_PIO_PINS - 1 - pin)); |
144 | 140 | ||
145 | tmp_val = in_be32(&par_io[port].cpdata); | 141 | tmp_val = in_be32(&par_io[port].cpdata); |
146 | 142 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/ucc.c b/arch/powerpc/sysdev/qe_lib/ucc.c index 0e348d9af8a6..d3c7f5af9bc8 100644 --- a/arch/powerpc/sysdev/qe_lib/ucc.c +++ b/arch/powerpc/sysdev/qe_lib/ucc.c | |||
@@ -26,7 +26,8 @@ | |||
26 | #include <asm/qe.h> | 26 | #include <asm/qe.h> |
27 | #include <asm/ucc.h> | 27 | #include <asm/ucc.h> |
28 | 28 | ||
29 | static DEFINE_SPINLOCK(ucc_lock); | 29 | DEFINE_SPINLOCK(cmxgcr_lock); |
30 | EXPORT_SYMBOL(cmxgcr_lock); | ||
30 | 31 | ||
31 | int ucc_set_qe_mux_mii_mng(unsigned int ucc_num) | 32 | int ucc_set_qe_mux_mii_mng(unsigned int ucc_num) |
32 | { | 33 | { |
@@ -35,10 +36,10 @@ int ucc_set_qe_mux_mii_mng(unsigned int ucc_num) | |||
35 | if (ucc_num > UCC_MAX_NUM - 1) | 36 | if (ucc_num > UCC_MAX_NUM - 1) |
36 | return -EINVAL; | 37 | return -EINVAL; |
37 | 38 | ||
38 | spin_lock_irqsave(&ucc_lock, flags); | 39 | spin_lock_irqsave(&cmxgcr_lock, flags); |
39 | clrsetbits_be32(&qe_immr->qmx.cmxgcr, QE_CMXGCR_MII_ENET_MNG, | 40 | clrsetbits_be32(&qe_immr->qmx.cmxgcr, QE_CMXGCR_MII_ENET_MNG, |
40 | ucc_num << QE_CMXGCR_MII_ENET_MNG_SHIFT); | 41 | ucc_num << QE_CMXGCR_MII_ENET_MNG_SHIFT); |
41 | spin_unlock_irqrestore(&ucc_lock, flags); | 42 | spin_unlock_irqrestore(&cmxgcr_lock, flags); |
42 | 43 | ||
43 | return 0; | 44 | return 0; |
44 | } | 45 | } |
diff --git a/arch/powerpc/sysdev/qe_lib/usb.c b/arch/powerpc/sysdev/qe_lib/usb.c new file mode 100644 index 000000000000..8105462078eb --- /dev/null +++ b/arch/powerpc/sysdev/qe_lib/usb.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * QE USB routines | ||
3 | * | ||
4 | * Copyright (c) Freescale Semicondutor, Inc. 2006. | ||
5 | * Shlomi Gridish <gridish@freescale.com> | ||
6 | * Jerry Huang <Chang-Ming.Huang@freescale.com> | ||
7 | * Copyright (c) MontaVista Software, Inc. 2008. | ||
8 | * Anton Vorontsov <avorontsov@ru.mvista.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | */ | ||
15 | |||
16 | #include <linux/kernel.h> | ||
17 | #include <linux/errno.h> | ||
18 | #include <linux/io.h> | ||
19 | #include <asm/immap_qe.h> | ||
20 | #include <asm/qe.h> | ||
21 | |||
22 | int qe_usb_clock_set(enum qe_clock clk, int rate) | ||
23 | { | ||
24 | struct qe_mux __iomem *mux = &qe_immr->qmx; | ||
25 | unsigned long flags; | ||
26 | u32 val; | ||
27 | |||
28 | switch (clk) { | ||
29 | case QE_CLK3: val = QE_CMXGCR_USBCS_CLK3; break; | ||
30 | case QE_CLK5: val = QE_CMXGCR_USBCS_CLK5; break; | ||
31 | case QE_CLK7: val = QE_CMXGCR_USBCS_CLK7; break; | ||
32 | case QE_CLK9: val = QE_CMXGCR_USBCS_CLK9; break; | ||
33 | case QE_CLK13: val = QE_CMXGCR_USBCS_CLK13; break; | ||
34 | case QE_CLK17: val = QE_CMXGCR_USBCS_CLK17; break; | ||
35 | case QE_CLK19: val = QE_CMXGCR_USBCS_CLK19; break; | ||
36 | case QE_CLK21: val = QE_CMXGCR_USBCS_CLK21; break; | ||
37 | case QE_BRG9: val = QE_CMXGCR_USBCS_BRG9; break; | ||
38 | case QE_BRG10: val = QE_CMXGCR_USBCS_BRG10; break; | ||
39 | default: | ||
40 | pr_err("%s: requested unknown clock %d\n", __func__, clk); | ||
41 | return -EINVAL; | ||
42 | } | ||
43 | |||
44 | if (qe_clock_is_brg(clk)) | ||
45 | qe_setbrg(clk, rate, 1); | ||
46 | |||
47 | spin_lock_irqsave(&cmxgcr_lock, flags); | ||
48 | |||
49 | clrsetbits_be32(&mux->cmxgcr, QE_CMXGCR_USBCS, val); | ||
50 | |||
51 | spin_unlock_irqrestore(&cmxgcr_lock, flags); | ||
52 | |||
53 | return 0; | ||
54 | } | ||
55 | EXPORT_SYMBOL(qe_usb_clock_set); | ||
diff --git a/drivers/serial/cpm_uart/cpm_uart.h b/drivers/serial/cpm_uart/cpm_uart.h index 0cc39f82d7c5..5c76e0ae0582 100644 --- a/drivers/serial/cpm_uart/cpm_uart.h +++ b/drivers/serial/cpm_uart/cpm_uart.h | |||
@@ -6,7 +6,7 @@ | |||
6 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 6 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
7 | * | 7 | * |
8 | * 2006 (c) MontaVista Software, Inc. | 8 | * 2006 (c) MontaVista Software, Inc. |
9 | * Vitaly Bordug <vbordug@ru.mvista.com> | 9 | * Vitaly Bordug <vbordug@ru.mvista.com> |
10 | * | 10 | * |
11 | * This file is licensed under the terms of the GNU General Public License | 11 | * This file is licensed under the terms of the GNU General Public License |
12 | * version 2. This program is licensed "as is" without any warranty of any | 12 | * version 2. This program is licensed "as is" without any warranty of any |
@@ -28,7 +28,7 @@ | |||
28 | #define SERIAL_CPM_MAJOR 204 | 28 | #define SERIAL_CPM_MAJOR 204 |
29 | #define SERIAL_CPM_MINOR 46 | 29 | #define SERIAL_CPM_MINOR 46 |
30 | 30 | ||
31 | #define IS_SMC(pinfo) (pinfo->flags & FLAG_SMC) | 31 | #define IS_SMC(pinfo) (pinfo->flags & FLAG_SMC) |
32 | #define IS_DISCARDING(pinfo) (pinfo->flags & FLAG_DISCARDING) | 32 | #define IS_DISCARDING(pinfo) (pinfo->flags & FLAG_DISCARDING) |
33 | #define FLAG_DISCARDING 0x00000004 /* when set, don't discard */ | 33 | #define FLAG_DISCARDING 0x00000004 /* when set, don't discard */ |
34 | #define FLAG_SMC 0x00000002 | 34 | #define FLAG_SMC 0x00000002 |
@@ -70,7 +70,7 @@ struct uart_cpm_port { | |||
70 | void (*set_lineif)(struct uart_cpm_port *); | 70 | void (*set_lineif)(struct uart_cpm_port *); |
71 | u8 brg; | 71 | u8 brg; |
72 | uint dp_addr; | 72 | uint dp_addr; |
73 | void *mem_addr; | 73 | void *mem_addr; |
74 | dma_addr_t dma_addr; | 74 | dma_addr_t dma_addr; |
75 | u32 mem_size; | 75 | u32 mem_size; |
76 | /* helpers */ | 76 | /* helpers */ |
@@ -79,14 +79,11 @@ struct uart_cpm_port { | |||
79 | /* Keep track of 'odd' SMC2 wirings */ | 79 | /* Keep track of 'odd' SMC2 wirings */ |
80 | int is_portb; | 80 | int is_portb; |
81 | /* wait on close if needed */ | 81 | /* wait on close if needed */ |
82 | int wait_closing; | 82 | int wait_closing; |
83 | /* value to combine with opcode to form cpm command */ | 83 | /* value to combine with opcode to form cpm command */ |
84 | u32 command; | 84 | u32 command; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
88 | extern int cpm_uart_port_map[UART_NR]; | ||
89 | #endif | ||
90 | extern int cpm_uart_nr; | 87 | extern int cpm_uart_nr; |
91 | extern struct uart_cpm_port cpm_uart_ports[UART_NR]; | 88 | extern struct uart_cpm_port cpm_uart_ports[UART_NR]; |
92 | 89 | ||
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm_uart/cpm_uart_core.c index a19dc7ef8861..43f58dc69fc9 100644 --- a/drivers/serial/cpm_uart/cpm_uart_core.c +++ b/drivers/serial/cpm_uart/cpm_uart_core.c | |||
@@ -13,7 +13,7 @@ | |||
13 | * Copyright (C) 2004, 2007 Freescale Semiconductor, Inc. | 13 | * Copyright (C) 2004, 2007 Freescale Semiconductor, Inc. |
14 | * (C) 2004 Intracom, S.A. | 14 | * (C) 2004 Intracom, S.A. |
15 | * (C) 2005-2006 MontaVista Software, Inc. | 15 | * (C) 2005-2006 MontaVista Software, Inc. |
16 | * Vitaly Bordug <vbordug@ru.mvista.com> | 16 | * Vitaly Bordug <vbordug@ru.mvista.com> |
17 | * | 17 | * |
18 | * This program is free software; you can redistribute it and/or modify | 18 | * This program is free software; you can redistribute it and/or modify |
19 | * it under the terms of the GNU General Public License as published by | 19 | * it under the terms of the GNU General Public License as published by |
@@ -42,6 +42,7 @@ | |||
42 | #include <linux/bootmem.h> | 42 | #include <linux/bootmem.h> |
43 | #include <linux/dma-mapping.h> | 43 | #include <linux/dma-mapping.h> |
44 | #include <linux/fs_uart_pd.h> | 44 | #include <linux/fs_uart_pd.h> |
45 | #include <linux/of_platform.h> | ||
45 | 46 | ||
46 | #include <asm/io.h> | 47 | #include <asm/io.h> |
47 | #include <asm/irq.h> | 48 | #include <asm/irq.h> |
@@ -49,10 +50,6 @@ | |||
49 | #include <asm/fs_pd.h> | 50 | #include <asm/fs_pd.h> |
50 | #include <asm/udbg.h> | 51 | #include <asm/udbg.h> |
51 | 52 | ||
52 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
53 | #include <linux/of_platform.h> | ||
54 | #endif | ||
55 | |||
56 | #if defined(CONFIG_SERIAL_CPM_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) | 53 | #if defined(CONFIG_SERIAL_CPM_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) |
57 | #define SUPPORT_SYSRQ | 54 | #define SUPPORT_SYSRQ |
58 | #endif | 55 | #endif |
@@ -72,59 +69,6 @@ static void cpm_uart_initbd(struct uart_cpm_port *pinfo); | |||
72 | 69 | ||
73 | /**************************************************************/ | 70 | /**************************************************************/ |
74 | 71 | ||
75 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
76 | /* Track which ports are configured as uarts */ | ||
77 | int cpm_uart_port_map[UART_NR]; | ||
78 | /* How many ports did we config as uarts */ | ||
79 | int cpm_uart_nr; | ||
80 | |||
81 | /* Place-holder for board-specific stuff */ | ||
82 | struct platform_device* __attribute__ ((weak)) __init | ||
83 | early_uart_get_pdev(int index) | ||
84 | { | ||
85 | return NULL; | ||
86 | } | ||
87 | |||
88 | |||
89 | static void cpm_uart_count(void) | ||
90 | { | ||
91 | cpm_uart_nr = 0; | ||
92 | #ifdef CONFIG_SERIAL_CPM_SMC1 | ||
93 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC1; | ||
94 | #endif | ||
95 | #ifdef CONFIG_SERIAL_CPM_SMC2 | ||
96 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC2; | ||
97 | #endif | ||
98 | #ifdef CONFIG_SERIAL_CPM_SCC1 | ||
99 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC1; | ||
100 | #endif | ||
101 | #ifdef CONFIG_SERIAL_CPM_SCC2 | ||
102 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC2; | ||
103 | #endif | ||
104 | #ifdef CONFIG_SERIAL_CPM_SCC3 | ||
105 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC3; | ||
106 | #endif | ||
107 | #ifdef CONFIG_SERIAL_CPM_SCC4 | ||
108 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC4; | ||
109 | #endif | ||
110 | } | ||
111 | |||
112 | /* Get UART number by its id */ | ||
113 | static int cpm_uart_id2nr(int id) | ||
114 | { | ||
115 | int i; | ||
116 | if (id < UART_NR) { | ||
117 | for (i=0; i<UART_NR; i++) { | ||
118 | if (cpm_uart_port_map[i] == id) | ||
119 | return i; | ||
120 | } | ||
121 | } | ||
122 | |||
123 | /* not found or invalid argument */ | ||
124 | return -1; | ||
125 | } | ||
126 | #endif | ||
127 | |||
128 | /* | 72 | /* |
129 | * Check, if transmit buffers are processed | 73 | * Check, if transmit buffers are processed |
130 | */ | 74 | */ |
@@ -935,7 +879,6 @@ static struct uart_ops cpm_uart_pops = { | |||
935 | .verify_port = cpm_uart_verify_port, | 879 | .verify_port = cpm_uart_verify_port, |
936 | }; | 880 | }; |
937 | 881 | ||
938 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
939 | struct uart_cpm_port cpm_uart_ports[UART_NR]; | 882 | struct uart_cpm_port cpm_uart_ports[UART_NR]; |
940 | 883 | ||
941 | static int cpm_uart_init_port(struct device_node *np, | 884 | static int cpm_uart_init_port(struct device_node *np, |
@@ -1012,153 +955,6 @@ out_mem: | |||
1012 | return ret; | 955 | return ret; |
1013 | } | 956 | } |
1014 | 957 | ||
1015 | #else | ||
1016 | |||
1017 | struct uart_cpm_port cpm_uart_ports[UART_NR] = { | ||
1018 | [UART_SMC1] = { | ||
1019 | .port = { | ||
1020 | .irq = SMC1_IRQ, | ||
1021 | .ops = &cpm_uart_pops, | ||
1022 | .iotype = UPIO_MEM, | ||
1023 | .lock = __SPIN_LOCK_UNLOCKED(cpm_uart_ports[UART_SMC1].port.lock), | ||
1024 | }, | ||
1025 | .flags = FLAG_SMC, | ||
1026 | .tx_nrfifos = TX_NUM_FIFO, | ||
1027 | .tx_fifosize = TX_BUF_SIZE, | ||
1028 | .rx_nrfifos = RX_NUM_FIFO, | ||
1029 | .rx_fifosize = RX_BUF_SIZE, | ||
1030 | .set_lineif = smc1_lineif, | ||
1031 | }, | ||
1032 | [UART_SMC2] = { | ||
1033 | .port = { | ||
1034 | .irq = SMC2_IRQ, | ||
1035 | .ops = &cpm_uart_pops, | ||
1036 | .iotype = UPIO_MEM, | ||
1037 | .lock = __SPIN_LOCK_UNLOCKED(cpm_uart_ports[UART_SMC2].port.lock), | ||
1038 | }, | ||
1039 | .flags = FLAG_SMC, | ||
1040 | .tx_nrfifos = TX_NUM_FIFO, | ||
1041 | .tx_fifosize = TX_BUF_SIZE, | ||
1042 | .rx_nrfifos = RX_NUM_FIFO, | ||
1043 | .rx_fifosize = RX_BUF_SIZE, | ||
1044 | .set_lineif = smc2_lineif, | ||
1045 | #ifdef CONFIG_SERIAL_CPM_ALT_SMC2 | ||
1046 | .is_portb = 1, | ||
1047 | #endif | ||
1048 | }, | ||
1049 | [UART_SCC1] = { | ||
1050 | .port = { | ||
1051 | .irq = SCC1_IRQ, | ||
1052 | .ops = &cpm_uart_pops, | ||
1053 | .iotype = UPIO_MEM, | ||
1054 | .lock = __SPIN_LOCK_UNLOCKED(cpm_uart_ports[UART_SCC1].port.lock), | ||
1055 | }, | ||
1056 | .tx_nrfifos = TX_NUM_FIFO, | ||
1057 | .tx_fifosize = TX_BUF_SIZE, | ||
1058 | .rx_nrfifos = RX_NUM_FIFO, | ||
1059 | .rx_fifosize = RX_BUF_SIZE, | ||
1060 | .set_lineif = scc1_lineif, | ||
1061 | .wait_closing = SCC_WAIT_CLOSING, | ||
1062 | }, | ||
1063 | [UART_SCC2] = { | ||
1064 | .port = { | ||
1065 | .irq = SCC2_IRQ, | ||
1066 | .ops = &cpm_uart_pops, | ||
1067 | .iotype = UPIO_MEM, | ||
1068 | .lock = __SPIN_LOCK_UNLOCKED(cpm_uart_ports[UART_SCC2].port.lock), | ||
1069 | }, | ||
1070 | .tx_nrfifos = TX_NUM_FIFO, | ||
1071 | .tx_fifosize = TX_BUF_SIZE, | ||
1072 | .rx_nrfifos = RX_NUM_FIFO, | ||
1073 | .rx_fifosize = RX_BUF_SIZE, | ||
1074 | .set_lineif = scc2_lineif, | ||
1075 | .wait_closing = SCC_WAIT_CLOSING, | ||
1076 | }, | ||
1077 | [UART_SCC3] = { | ||
1078 | .port = { | ||
1079 | .irq = SCC3_IRQ, | ||
1080 | .ops = &cpm_uart_pops, | ||
1081 | .iotype = UPIO_MEM, | ||
1082 | .lock = __SPIN_LOCK_UNLOCKED(cpm_uart_ports[UART_SCC3].port.lock), | ||
1083 | }, | ||
1084 | .tx_nrfifos = TX_NUM_FIFO, | ||
1085 | .tx_fifosize = TX_BUF_SIZE, | ||
1086 | .rx_nrfifos = RX_NUM_FIFO, | ||
1087 | .rx_fifosize = RX_BUF_SIZE, | ||
1088 | .set_lineif = scc3_lineif, | ||
1089 | .wait_closing = SCC_WAIT_CLOSING, | ||
1090 | }, | ||
1091 | [UART_SCC4] = { | ||
1092 | .port = { | ||
1093 | .irq = SCC4_IRQ, | ||
1094 | .ops = &cpm_uart_pops, | ||
1095 | .iotype = UPIO_MEM, | ||
1096 | .lock = __SPIN_LOCK_UNLOCKED(cpm_uart_ports[UART_SCC4].port.lock), | ||
1097 | }, | ||
1098 | .tx_nrfifos = TX_NUM_FIFO, | ||
1099 | .tx_fifosize = TX_BUF_SIZE, | ||
1100 | .rx_nrfifos = RX_NUM_FIFO, | ||
1101 | .rx_fifosize = RX_BUF_SIZE, | ||
1102 | .set_lineif = scc4_lineif, | ||
1103 | .wait_closing = SCC_WAIT_CLOSING, | ||
1104 | }, | ||
1105 | }; | ||
1106 | |||
1107 | int cpm_uart_drv_get_platform_data(struct platform_device *pdev, int is_con) | ||
1108 | { | ||
1109 | struct resource *r; | ||
1110 | struct fs_uart_platform_info *pdata = pdev->dev.platform_data; | ||
1111 | int idx; /* It is UART_SMCx or UART_SCCx index */ | ||
1112 | struct uart_cpm_port *pinfo; | ||
1113 | int line; | ||
1114 | u32 mem, pram; | ||
1115 | |||
1116 | idx = pdata->fs_no = fs_uart_get_id(pdata); | ||
1117 | |||
1118 | line = cpm_uart_id2nr(idx); | ||
1119 | if(line < 0) { | ||
1120 | printk(KERN_ERR"%s(): port %d is not registered", __func__, idx); | ||
1121 | return -EINVAL; | ||
1122 | } | ||
1123 | |||
1124 | pinfo = (struct uart_cpm_port *) &cpm_uart_ports[idx]; | ||
1125 | |||
1126 | pinfo->brg = pdata->brg; | ||
1127 | |||
1128 | if (!is_con) { | ||
1129 | pinfo->port.line = line; | ||
1130 | pinfo->port.flags = UPF_BOOT_AUTOCONF; | ||
1131 | } | ||
1132 | |||
1133 | if (!(r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs"))) | ||
1134 | return -EINVAL; | ||
1135 | mem = (u32)ioremap(r->start, r->end - r->start + 1); | ||
1136 | |||
1137 | if (!(r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pram"))) | ||
1138 | return -EINVAL; | ||
1139 | pram = (u32)ioremap(r->start, r->end - r->start + 1); | ||
1140 | |||
1141 | if(idx > fsid_smc2_uart) { | ||
1142 | pinfo->sccp = (scc_t *)mem; | ||
1143 | pinfo->sccup = (scc_uart_t *)pram; | ||
1144 | } else { | ||
1145 | pinfo->smcp = (smc_t *)mem; | ||
1146 | pinfo->smcup = (smc_uart_t *)pram; | ||
1147 | } | ||
1148 | pinfo->tx_nrfifos = pdata->tx_num_fifo; | ||
1149 | pinfo->tx_fifosize = pdata->tx_buf_size; | ||
1150 | |||
1151 | pinfo->rx_nrfifos = pdata->rx_num_fifo; | ||
1152 | pinfo->rx_fifosize = pdata->rx_buf_size; | ||
1153 | |||
1154 | pinfo->port.uartclk = pdata->uart_clk; | ||
1155 | pinfo->port.mapbase = (unsigned long)mem; | ||
1156 | pinfo->port.irq = platform_get_irq(pdev, 0); | ||
1157 | |||
1158 | return 0; | ||
1159 | } | ||
1160 | #endif | ||
1161 | |||
1162 | #ifdef CONFIG_SERIAL_CPM_CONSOLE | 958 | #ifdef CONFIG_SERIAL_CPM_CONSOLE |
1163 | /* | 959 | /* |
1164 | * Print a string to the serial port trying not to disturb | 960 | * Print a string to the serial port trying not to disturb |
@@ -1169,12 +965,7 @@ int cpm_uart_drv_get_platform_data(struct platform_device *pdev, int is_con) | |||
1169 | static void cpm_uart_console_write(struct console *co, const char *s, | 965 | static void cpm_uart_console_write(struct console *co, const char *s, |
1170 | u_int count) | 966 | u_int count) |
1171 | { | 967 | { |
1172 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
1173 | struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index]; | 968 | struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index]; |
1174 | #else | ||
1175 | struct uart_cpm_port *pinfo = | ||
1176 | &cpm_uart_ports[cpm_uart_port_map[co->index]]; | ||
1177 | #endif | ||
1178 | unsigned int i; | 969 | unsigned int i; |
1179 | cbd_t __iomem *bdp, *bdbase; | 970 | cbd_t __iomem *bdp, *bdbase; |
1180 | unsigned char *cp; | 971 | unsigned char *cp; |
@@ -1252,7 +1043,6 @@ static int __init cpm_uart_console_setup(struct console *co, char *options) | |||
1252 | struct uart_cpm_port *pinfo; | 1043 | struct uart_cpm_port *pinfo; |
1253 | struct uart_port *port; | 1044 | struct uart_port *port; |
1254 | 1045 | ||
1255 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
1256 | struct device_node *np = NULL; | 1046 | struct device_node *np = NULL; |
1257 | int i = 0; | 1047 | int i = 0; |
1258 | 1048 | ||
@@ -1284,35 +1074,6 @@ static int __init cpm_uart_console_setup(struct console *co, char *options) | |||
1284 | if (ret) | 1074 | if (ret) |
1285 | return ret; | 1075 | return ret; |
1286 | 1076 | ||
1287 | #else | ||
1288 | |||
1289 | struct fs_uart_platform_info *pdata; | ||
1290 | struct platform_device* pdev = early_uart_get_pdev(co->index); | ||
1291 | |||
1292 | if (!pdev) { | ||
1293 | pr_info("cpm_uart: console: compat mode\n"); | ||
1294 | /* compatibility - will be cleaned up */ | ||
1295 | cpm_uart_init_portdesc(); | ||
1296 | } | ||
1297 | |||
1298 | port = | ||
1299 | (struct uart_port *)&cpm_uart_ports[cpm_uart_port_map[co->index]]; | ||
1300 | pinfo = (struct uart_cpm_port *)port; | ||
1301 | if (!pdev) { | ||
1302 | if (pinfo->set_lineif) | ||
1303 | pinfo->set_lineif(pinfo); | ||
1304 | } else { | ||
1305 | pdata = pdev->dev.platform_data; | ||
1306 | if (pdata) | ||
1307 | if (pdata->init_ioports) | ||
1308 | pdata->init_ioports(pdata); | ||
1309 | |||
1310 | cpm_uart_drv_get_platform_data(pdev, 1); | ||
1311 | } | ||
1312 | |||
1313 | pinfo->flags |= FLAG_CONSOLE; | ||
1314 | #endif | ||
1315 | |||
1316 | if (options) { | 1077 | if (options) { |
1317 | uart_parse_options(options, &baud, &parity, &bits, &flow); | 1078 | uart_parse_options(options, &baud, &parity, &bits, &flow); |
1318 | } else { | 1079 | } else { |
@@ -1386,7 +1147,6 @@ static struct uart_driver cpm_reg = { | |||
1386 | .nr = UART_NR, | 1147 | .nr = UART_NR, |
1387 | }; | 1148 | }; |
1388 | 1149 | ||
1389 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
1390 | static int probe_index; | 1150 | static int probe_index; |
1391 | 1151 | ||
1392 | static int __devinit cpm_uart_probe(struct of_device *ofdev, | 1152 | static int __devinit cpm_uart_probe(struct of_device *ofdev, |
@@ -1457,135 +1217,6 @@ static void __exit cpm_uart_exit(void) | |||
1457 | of_unregister_platform_driver(&cpm_uart_driver); | 1217 | of_unregister_platform_driver(&cpm_uart_driver); |
1458 | uart_unregister_driver(&cpm_reg); | 1218 | uart_unregister_driver(&cpm_reg); |
1459 | } | 1219 | } |
1460 | #else | ||
1461 | static int cpm_uart_drv_probe(struct device *dev) | ||
1462 | { | ||
1463 | struct platform_device *pdev = to_platform_device(dev); | ||
1464 | struct fs_uart_platform_info *pdata; | ||
1465 | int ret = -ENODEV; | ||
1466 | |||
1467 | if(!pdev) { | ||
1468 | printk(KERN_ERR"CPM UART: platform data missing!\n"); | ||
1469 | return ret; | ||
1470 | } | ||
1471 | |||
1472 | pdata = pdev->dev.platform_data; | ||
1473 | |||
1474 | if ((ret = cpm_uart_drv_get_platform_data(pdev, 0))) | ||
1475 | return ret; | ||
1476 | |||
1477 | pr_debug("cpm_uart_drv_probe: Adding CPM UART %d\n", cpm_uart_id2nr(pdata->fs_no)); | ||
1478 | |||
1479 | if (pdata->init_ioports) | ||
1480 | pdata->init_ioports(pdata); | ||
1481 | |||
1482 | ret = uart_add_one_port(&cpm_reg, &cpm_uart_ports[pdata->fs_no].port); | ||
1483 | |||
1484 | return ret; | ||
1485 | } | ||
1486 | |||
1487 | static int cpm_uart_drv_remove(struct device *dev) | ||
1488 | { | ||
1489 | struct platform_device *pdev = to_platform_device(dev); | ||
1490 | struct fs_uart_platform_info *pdata = pdev->dev.platform_data; | ||
1491 | |||
1492 | pr_debug("cpm_uart_drv_remove: Removing CPM UART %d\n", | ||
1493 | cpm_uart_id2nr(pdata->fs_no)); | ||
1494 | |||
1495 | uart_remove_one_port(&cpm_reg, &cpm_uart_ports[pdata->fs_no].port); | ||
1496 | return 0; | ||
1497 | } | ||
1498 | |||
1499 | static struct device_driver cpm_smc_uart_driver = { | ||
1500 | .name = "fsl-cpm-smc:uart", | ||
1501 | .bus = &platform_bus_type, | ||
1502 | .probe = cpm_uart_drv_probe, | ||
1503 | .remove = cpm_uart_drv_remove, | ||
1504 | }; | ||
1505 | |||
1506 | static struct device_driver cpm_scc_uart_driver = { | ||
1507 | .name = "fsl-cpm-scc:uart", | ||
1508 | .bus = &platform_bus_type, | ||
1509 | .probe = cpm_uart_drv_probe, | ||
1510 | .remove = cpm_uart_drv_remove, | ||
1511 | }; | ||
1512 | |||
1513 | /* | ||
1514 | This is supposed to match uart devices on platform bus, | ||
1515 | */ | ||
1516 | static int match_is_uart (struct device* dev, void* data) | ||
1517 | { | ||
1518 | struct platform_device* pdev = container_of(dev, struct platform_device, dev); | ||
1519 | int ret = 0; | ||
1520 | /* this was setfunc as uart */ | ||
1521 | if(strstr(pdev->name,":uart")) { | ||
1522 | ret = 1; | ||
1523 | } | ||
1524 | return ret; | ||
1525 | } | ||
1526 | |||
1527 | |||
1528 | static int cpm_uart_init(void) { | ||
1529 | |||
1530 | int ret; | ||
1531 | int i; | ||
1532 | struct device *dev; | ||
1533 | printk(KERN_INFO "Serial: CPM driver $Revision: 0.02 $\n"); | ||
1534 | |||
1535 | /* lookup the bus for uart devices */ | ||
1536 | dev = bus_find_device(&platform_bus_type, NULL, 0, match_is_uart); | ||
1537 | |||
1538 | /* There are devices on the bus - all should be OK */ | ||
1539 | if (dev) { | ||
1540 | cpm_uart_count(); | ||
1541 | cpm_reg.nr = cpm_uart_nr; | ||
1542 | |||
1543 | if (!(ret = uart_register_driver(&cpm_reg))) { | ||
1544 | if ((ret = driver_register(&cpm_smc_uart_driver))) { | ||
1545 | uart_unregister_driver(&cpm_reg); | ||
1546 | return ret; | ||
1547 | } | ||
1548 | if ((ret = driver_register(&cpm_scc_uart_driver))) { | ||
1549 | driver_unregister(&cpm_scc_uart_driver); | ||
1550 | uart_unregister_driver(&cpm_reg); | ||
1551 | } | ||
1552 | } | ||
1553 | } else { | ||
1554 | /* No capable platform devices found - falling back to legacy mode */ | ||
1555 | pr_info("cpm_uart: WARNING: no UART devices found on platform bus!\n"); | ||
1556 | pr_info( | ||
1557 | "cpm_uart: the driver will guess configuration, but this mode is no longer supported.\n"); | ||
1558 | |||
1559 | /* Don't run this again, if the console driver did it already */ | ||
1560 | if (cpm_uart_nr == 0) | ||
1561 | cpm_uart_init_portdesc(); | ||
1562 | |||
1563 | cpm_reg.nr = cpm_uart_nr; | ||
1564 | ret = uart_register_driver(&cpm_reg); | ||
1565 | |||
1566 | if (ret) | ||
1567 | return ret; | ||
1568 | |||
1569 | for (i = 0; i < cpm_uart_nr; i++) { | ||
1570 | int con = cpm_uart_port_map[i]; | ||
1571 | cpm_uart_ports[con].port.line = i; | ||
1572 | cpm_uart_ports[con].port.flags = UPF_BOOT_AUTOCONF; | ||
1573 | if (cpm_uart_ports[con].set_lineif) | ||
1574 | cpm_uart_ports[con].set_lineif(&cpm_uart_ports[con]); | ||
1575 | uart_add_one_port(&cpm_reg, &cpm_uart_ports[con].port); | ||
1576 | } | ||
1577 | |||
1578 | } | ||
1579 | return ret; | ||
1580 | } | ||
1581 | |||
1582 | static void __exit cpm_uart_exit(void) | ||
1583 | { | ||
1584 | driver_unregister(&cpm_scc_uart_driver); | ||
1585 | driver_unregister(&cpm_smc_uart_driver); | ||
1586 | uart_unregister_driver(&cpm_reg); | ||
1587 | } | ||
1588 | #endif | ||
1589 | 1220 | ||
1590 | module_init(cpm_uart_init); | 1221 | module_init(cpm_uart_init); |
1591 | module_exit(cpm_uart_exit); | 1222 | module_exit(cpm_uart_exit); |
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm1.c b/drivers/serial/cpm_uart/cpm_uart_cpm1.c index 74f1432bb248..0f0aff06c596 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm1.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm1.c | |||
@@ -9,7 +9,7 @@ | |||
9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
10 | * (C) 2004 Intracom, S.A. | 10 | * (C) 2004 Intracom, S.A. |
11 | * (C) 2006 MontaVista Software, Inc. | 11 | * (C) 2006 MontaVista Software, Inc. |
12 | * Vitaly Bordug <vbordug@ru.mvista.com> | 12 | * Vitaly Bordug <vbordug@ru.mvista.com> |
13 | * | 13 | * |
14 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
15 | * it under the terms of the GNU General Public License as published by | 15 | * it under the terms of the GNU General Public License as published by |
@@ -51,7 +51,6 @@ | |||
51 | 51 | ||
52 | /**************************************************************/ | 52 | /**************************************************************/ |
53 | 53 | ||
54 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
55 | void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) | 54 | void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) |
56 | { | 55 | { |
57 | cpm_command(port->command, cmd); | 56 | cpm_command(port->command, cmd); |
@@ -68,75 +67,6 @@ void cpm_uart_unmap_pram(struct uart_cpm_port *port, void __iomem *pram) | |||
68 | iounmap(pram); | 67 | iounmap(pram); |
69 | } | 68 | } |
70 | 69 | ||
71 | #else | ||
72 | void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) | ||
73 | { | ||
74 | ushort val; | ||
75 | int line = port - cpm_uart_ports; | ||
76 | volatile cpm8xx_t *cp = cpmp; | ||
77 | |||
78 | switch (line) { | ||
79 | case UART_SMC1: | ||
80 | val = mk_cr_cmd(CPM_CR_CH_SMC1, cmd) | CPM_CR_FLG; | ||
81 | break; | ||
82 | case UART_SMC2: | ||
83 | val = mk_cr_cmd(CPM_CR_CH_SMC2, cmd) | CPM_CR_FLG; | ||
84 | break; | ||
85 | case UART_SCC1: | ||
86 | val = mk_cr_cmd(CPM_CR_CH_SCC1, cmd) | CPM_CR_FLG; | ||
87 | break; | ||
88 | case UART_SCC2: | ||
89 | val = mk_cr_cmd(CPM_CR_CH_SCC2, cmd) | CPM_CR_FLG; | ||
90 | break; | ||
91 | case UART_SCC3: | ||
92 | val = mk_cr_cmd(CPM_CR_CH_SCC3, cmd) | CPM_CR_FLG; | ||
93 | break; | ||
94 | case UART_SCC4: | ||
95 | val = mk_cr_cmd(CPM_CR_CH_SCC4, cmd) | CPM_CR_FLG; | ||
96 | break; | ||
97 | default: | ||
98 | return; | ||
99 | |||
100 | } | ||
101 | cp->cp_cpcr = val; | ||
102 | while (cp->cp_cpcr & CPM_CR_FLG) ; | ||
103 | } | ||
104 | |||
105 | void smc1_lineif(struct uart_cpm_port *pinfo) | ||
106 | { | ||
107 | pinfo->brg = 1; | ||
108 | } | ||
109 | |||
110 | void smc2_lineif(struct uart_cpm_port *pinfo) | ||
111 | { | ||
112 | pinfo->brg = 2; | ||
113 | } | ||
114 | |||
115 | void scc1_lineif(struct uart_cpm_port *pinfo) | ||
116 | { | ||
117 | /* XXX SCC1: insert port configuration here */ | ||
118 | pinfo->brg = 1; | ||
119 | } | ||
120 | |||
121 | void scc2_lineif(struct uart_cpm_port *pinfo) | ||
122 | { | ||
123 | /* XXX SCC2: insert port configuration here */ | ||
124 | pinfo->brg = 2; | ||
125 | } | ||
126 | |||
127 | void scc3_lineif(struct uart_cpm_port *pinfo) | ||
128 | { | ||
129 | /* XXX SCC3: insert port configuration here */ | ||
130 | pinfo->brg = 3; | ||
131 | } | ||
132 | |||
133 | void scc4_lineif(struct uart_cpm_port *pinfo) | ||
134 | { | ||
135 | /* XXX SCC4: insert port configuration here */ | ||
136 | pinfo->brg = 4; | ||
137 | } | ||
138 | #endif | ||
139 | |||
140 | /* | 70 | /* |
141 | * Allocate DP-Ram and memory buffers. We need to allocate a transmit and | 71 | * Allocate DP-Ram and memory buffers. We need to allocate a transmit and |
142 | * receive buffer descriptors from dual port ram, and a character | 72 | * receive buffer descriptors from dual port ram, and a character |
@@ -205,101 +135,3 @@ void cpm_uart_freebuf(struct uart_cpm_port *pinfo) | |||
205 | 135 | ||
206 | cpm_dpfree(pinfo->dp_addr); | 136 | cpm_dpfree(pinfo->dp_addr); |
207 | } | 137 | } |
208 | |||
209 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
210 | /* Setup any dynamic params in the uart desc */ | ||
211 | int cpm_uart_init_portdesc(void) | ||
212 | { | ||
213 | pr_debug("CPM uart[-]:init portdesc\n"); | ||
214 | |||
215 | cpm_uart_nr = 0; | ||
216 | #ifdef CONFIG_SERIAL_CPM_SMC1 | ||
217 | cpm_uart_ports[UART_SMC1].smcp = &cpmp->cp_smc[0]; | ||
218 | /* | ||
219 | * Is SMC1 being relocated? | ||
220 | */ | ||
221 | # ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH | ||
222 | cpm_uart_ports[UART_SMC1].smcup = | ||
223 | (smc_uart_t *) & cpmp->cp_dparam[0x3C0]; | ||
224 | # else | ||
225 | cpm_uart_ports[UART_SMC1].smcup = | ||
226 | (smc_uart_t *) & cpmp->cp_dparam[PROFF_SMC1]; | ||
227 | # endif | ||
228 | cpm_uart_ports[UART_SMC1].port.mapbase = | ||
229 | (unsigned long)&cpmp->cp_smc[0]; | ||
230 | cpm_uart_ports[UART_SMC1].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); | ||
231 | cpm_uart_ports[UART_SMC1].smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
232 | cpm_uart_ports[UART_SMC1].port.uartclk = uart_clock(); | ||
233 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC1; | ||
234 | #endif | ||
235 | |||
236 | #ifdef CONFIG_SERIAL_CPM_SMC2 | ||
237 | cpm_uart_ports[UART_SMC2].smcp = &cpmp->cp_smc[1]; | ||
238 | cpm_uart_ports[UART_SMC2].smcup = | ||
239 | (smc_uart_t *) & cpmp->cp_dparam[PROFF_SMC2]; | ||
240 | cpm_uart_ports[UART_SMC2].port.mapbase = | ||
241 | (unsigned long)&cpmp->cp_smc[1]; | ||
242 | cpm_uart_ports[UART_SMC2].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); | ||
243 | cpm_uart_ports[UART_SMC2].smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
244 | cpm_uart_ports[UART_SMC2].port.uartclk = uart_clock(); | ||
245 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC2; | ||
246 | #endif | ||
247 | |||
248 | #ifdef CONFIG_SERIAL_CPM_SCC1 | ||
249 | cpm_uart_ports[UART_SCC1].sccp = &cpmp->cp_scc[0]; | ||
250 | cpm_uart_ports[UART_SCC1].sccup = | ||
251 | (scc_uart_t *) & cpmp->cp_dparam[PROFF_SCC1]; | ||
252 | cpm_uart_ports[UART_SCC1].port.mapbase = | ||
253 | (unsigned long)&cpmp->cp_scc[0]; | ||
254 | cpm_uart_ports[UART_SCC1].sccp->scc_sccm &= | ||
255 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
256 | cpm_uart_ports[UART_SCC1].sccp->scc_gsmrl &= | ||
257 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
258 | cpm_uart_ports[UART_SCC1].port.uartclk = uart_clock(); | ||
259 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC1; | ||
260 | #endif | ||
261 | |||
262 | #ifdef CONFIG_SERIAL_CPM_SCC2 | ||
263 | cpm_uart_ports[UART_SCC2].sccp = &cpmp->cp_scc[1]; | ||
264 | cpm_uart_ports[UART_SCC2].sccup = | ||
265 | (scc_uart_t *) & cpmp->cp_dparam[PROFF_SCC2]; | ||
266 | cpm_uart_ports[UART_SCC2].port.mapbase = | ||
267 | (unsigned long)&cpmp->cp_scc[1]; | ||
268 | cpm_uart_ports[UART_SCC2].sccp->scc_sccm &= | ||
269 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
270 | cpm_uart_ports[UART_SCC2].sccp->scc_gsmrl &= | ||
271 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
272 | cpm_uart_ports[UART_SCC2].port.uartclk = uart_clock(); | ||
273 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC2; | ||
274 | #endif | ||
275 | |||
276 | #ifdef CONFIG_SERIAL_CPM_SCC3 | ||
277 | cpm_uart_ports[UART_SCC3].sccp = &cpmp->cp_scc[2]; | ||
278 | cpm_uart_ports[UART_SCC3].sccup = | ||
279 | (scc_uart_t *) & cpmp->cp_dparam[PROFF_SCC3]; | ||
280 | cpm_uart_ports[UART_SCC3].port.mapbase = | ||
281 | (unsigned long)&cpmp->cp_scc[2]; | ||
282 | cpm_uart_ports[UART_SCC3].sccp->scc_sccm &= | ||
283 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
284 | cpm_uart_ports[UART_SCC3].sccp->scc_gsmrl &= | ||
285 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
286 | cpm_uart_ports[UART_SCC3].port.uartclk = uart_clock(); | ||
287 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC3; | ||
288 | #endif | ||
289 | |||
290 | #ifdef CONFIG_SERIAL_CPM_SCC4 | ||
291 | cpm_uart_ports[UART_SCC4].sccp = &cpmp->cp_scc[3]; | ||
292 | cpm_uart_ports[UART_SCC4].sccup = | ||
293 | (scc_uart_t *) & cpmp->cp_dparam[PROFF_SCC4]; | ||
294 | cpm_uart_ports[UART_SCC4].port.mapbase = | ||
295 | (unsigned long)&cpmp->cp_scc[3]; | ||
296 | cpm_uart_ports[UART_SCC4].sccp->scc_sccm &= | ||
297 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
298 | cpm_uart_ports[UART_SCC4].sccp->scc_gsmrl &= | ||
299 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
300 | cpm_uart_ports[UART_SCC4].port.uartclk = uart_clock(); | ||
301 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC4; | ||
302 | #endif | ||
303 | return 0; | ||
304 | } | ||
305 | #endif | ||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm1.h b/drivers/serial/cpm_uart/cpm_uart_cpm1.h index ddf46d3c964b..10eecd6af6d4 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm1.h +++ b/drivers/serial/cpm_uart/cpm_uart_cpm1.h | |||
@@ -2,7 +2,7 @@ | |||
2 | * linux/drivers/serial/cpm_uart/cpm_uart_cpm1.h | 2 | * linux/drivers/serial/cpm_uart/cpm_uart_cpm1.h |
3 | * | 3 | * |
4 | * Driver for CPM (SCC/SMC) serial ports | 4 | * Driver for CPM (SCC/SMC) serial ports |
5 | * | 5 | * |
6 | * definitions for cpm1 | 6 | * definitions for cpm1 |
7 | * | 7 | * |
8 | */ | 8 | */ |
@@ -12,16 +12,6 @@ | |||
12 | 12 | ||
13 | #include <asm/cpm1.h> | 13 | #include <asm/cpm1.h> |
14 | 14 | ||
15 | /* defines for IRQs */ | ||
16 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
17 | #define SMC1_IRQ (CPM_IRQ_OFFSET + CPMVEC_SMC1) | ||
18 | #define SMC2_IRQ (CPM_IRQ_OFFSET + CPMVEC_SMC2) | ||
19 | #define SCC1_IRQ (CPM_IRQ_OFFSET + CPMVEC_SCC1) | ||
20 | #define SCC2_IRQ (CPM_IRQ_OFFSET + CPMVEC_SCC2) | ||
21 | #define SCC3_IRQ (CPM_IRQ_OFFSET + CPMVEC_SCC3) | ||
22 | #define SCC4_IRQ (CPM_IRQ_OFFSET + CPMVEC_SCC4) | ||
23 | #endif | ||
24 | |||
25 | static inline void cpm_set_brg(int brg, int baud) | 15 | static inline void cpm_set_brg(int brg, int baud) |
26 | { | 16 | { |
27 | cpm_setbrg(brg, baud); | 17 | cpm_setbrg(brg, baud); |
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/serial/cpm_uart/cpm_uart_cpm2.c index bb862e2f54cf..b8db4d3eed36 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c | |||
@@ -5,11 +5,11 @@ | |||
5 | * | 5 | * |
6 | * Maintainer: Kumar Gala (galak@kernel.crashing.org) (CPM2) | 6 | * Maintainer: Kumar Gala (galak@kernel.crashing.org) (CPM2) |
7 | * Pantelis Antoniou (panto@intracom.gr) (CPM1) | 7 | * Pantelis Antoniou (panto@intracom.gr) (CPM1) |
8 | * | 8 | * |
9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. | 9 | * Copyright (C) 2004 Freescale Semiconductor, Inc. |
10 | * (C) 2004 Intracom, S.A. | 10 | * (C) 2004 Intracom, S.A. |
11 | * (C) 2006 MontaVista Software, Inc. | 11 | * (C) 2006 MontaVista Software, Inc. |
12 | * Vitaly Bordug <vbordug@ru.mvista.com> | 12 | * Vitaly Bordug <vbordug@ru.mvista.com> |
13 | * | 13 | * |
14 | * This program is free software; you can redistribute it and/or modify | 14 | * This program is free software; you can redistribute it and/or modify |
15 | * it under the terms of the GNU General Public License as published by | 15 | * it under the terms of the GNU General Public License as published by |
@@ -41,9 +41,7 @@ | |||
41 | #include <asm/io.h> | 41 | #include <asm/io.h> |
42 | #include <asm/irq.h> | 42 | #include <asm/irq.h> |
43 | #include <asm/fs_pd.h> | 43 | #include <asm/fs_pd.h> |
44 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
45 | #include <asm/prom.h> | 44 | #include <asm/prom.h> |
46 | #endif | ||
47 | 45 | ||
48 | #include <linux/serial_core.h> | 46 | #include <linux/serial_core.h> |
49 | #include <linux/kernel.h> | 47 | #include <linux/kernel.h> |
@@ -52,7 +50,6 @@ | |||
52 | 50 | ||
53 | /**************************************************************/ | 51 | /**************************************************************/ |
54 | 52 | ||
55 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
56 | void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) | 53 | void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) |
57 | { | 54 | { |
58 | cpm_command(port->command, cmd); | 55 | cpm_command(port->command, cmd); |
@@ -106,174 +103,8 @@ void cpm_uart_unmap_pram(struct uart_cpm_port *port, void __iomem *pram) | |||
106 | iounmap(pram); | 103 | iounmap(pram); |
107 | } | 104 | } |
108 | 105 | ||
109 | #else | ||
110 | void cpm_line_cr_cmd(struct uart_cpm_port *port, int cmd) | ||
111 | { | ||
112 | ulong val; | ||
113 | int line = port - cpm_uart_ports; | ||
114 | volatile cpm_cpm2_t *cp = cpm2_map(im_cpm); | ||
115 | |||
116 | |||
117 | switch (line) { | ||
118 | case UART_SMC1: | ||
119 | val = mk_cr_cmd(CPM_CR_SMC1_PAGE, CPM_CR_SMC1_SBLOCK, 0, | ||
120 | cmd) | CPM_CR_FLG; | ||
121 | break; | ||
122 | case UART_SMC2: | ||
123 | val = mk_cr_cmd(CPM_CR_SMC2_PAGE, CPM_CR_SMC2_SBLOCK, 0, | ||
124 | cmd) | CPM_CR_FLG; | ||
125 | break; | ||
126 | case UART_SCC1: | ||
127 | val = mk_cr_cmd(CPM_CR_SCC1_PAGE, CPM_CR_SCC1_SBLOCK, 0, | ||
128 | cmd) | CPM_CR_FLG; | ||
129 | break; | ||
130 | case UART_SCC2: | ||
131 | val = mk_cr_cmd(CPM_CR_SCC2_PAGE, CPM_CR_SCC2_SBLOCK, 0, | ||
132 | cmd) | CPM_CR_FLG; | ||
133 | break; | ||
134 | case UART_SCC3: | ||
135 | val = mk_cr_cmd(CPM_CR_SCC3_PAGE, CPM_CR_SCC3_SBLOCK, 0, | ||
136 | cmd) | CPM_CR_FLG; | ||
137 | break; | ||
138 | case UART_SCC4: | ||
139 | val = mk_cr_cmd(CPM_CR_SCC4_PAGE, CPM_CR_SCC4_SBLOCK, 0, | ||
140 | cmd) | CPM_CR_FLG; | ||
141 | break; | ||
142 | default: | ||
143 | return; | ||
144 | |||
145 | } | ||
146 | cp->cp_cpcr = val; | ||
147 | while (cp->cp_cpcr & CPM_CR_FLG) ; | ||
148 | |||
149 | cpm2_unmap(cp); | ||
150 | } | ||
151 | |||
152 | void smc1_lineif(struct uart_cpm_port *pinfo) | ||
153 | { | ||
154 | volatile iop_cpm2_t *io = cpm2_map(im_ioport); | ||
155 | volatile cpmux_t *cpmux = cpm2_map(im_cpmux); | ||
156 | |||
157 | /* SMC1 is only on port D */ | ||
158 | io->iop_ppard |= 0x00c00000; | ||
159 | io->iop_pdird |= 0x00400000; | ||
160 | io->iop_pdird &= ~0x00800000; | ||
161 | io->iop_psord &= ~0x00c00000; | ||
162 | |||
163 | /* Wire BRG1 to SMC1 */ | ||
164 | cpmux->cmx_smr &= 0x0f; | ||
165 | pinfo->brg = 1; | ||
166 | |||
167 | cpm2_unmap(cpmux); | ||
168 | cpm2_unmap(io); | ||
169 | } | ||
170 | |||
171 | void smc2_lineif(struct uart_cpm_port *pinfo) | ||
172 | { | ||
173 | volatile iop_cpm2_t *io = cpm2_map(im_ioport); | ||
174 | volatile cpmux_t *cpmux = cpm2_map(im_cpmux); | ||
175 | |||
176 | /* SMC2 is only on port A */ | ||
177 | io->iop_ppara |= 0x00c00000; | ||
178 | io->iop_pdira |= 0x00400000; | ||
179 | io->iop_pdira &= ~0x00800000; | ||
180 | io->iop_psora &= ~0x00c00000; | ||
181 | |||
182 | /* Wire BRG2 to SMC2 */ | ||
183 | cpmux->cmx_smr &= 0xf0; | ||
184 | pinfo->brg = 2; | ||
185 | |||
186 | cpm2_unmap(cpmux); | ||
187 | cpm2_unmap(io); | ||
188 | } | ||
189 | |||
190 | void scc1_lineif(struct uart_cpm_port *pinfo) | ||
191 | { | ||
192 | volatile iop_cpm2_t *io = cpm2_map(im_ioport); | ||
193 | volatile cpmux_t *cpmux = cpm2_map(im_cpmux); | ||
194 | |||
195 | /* Use Port D for SCC1 instead of other functions. */ | ||
196 | io->iop_ppard |= 0x00000003; | ||
197 | io->iop_psord &= ~0x00000001; /* Rx */ | ||
198 | io->iop_psord |= 0x00000002; /* Tx */ | ||
199 | io->iop_pdird &= ~0x00000001; /* Rx */ | ||
200 | io->iop_pdird |= 0x00000002; /* Tx */ | ||
201 | |||
202 | /* Wire BRG1 to SCC1 */ | ||
203 | cpmux->cmx_scr &= 0x00ffffff; | ||
204 | cpmux->cmx_scr |= 0x00000000; | ||
205 | pinfo->brg = 1; | ||
206 | |||
207 | cpm2_unmap(cpmux); | ||
208 | cpm2_unmap(io); | ||
209 | } | ||
210 | |||
211 | void scc2_lineif(struct uart_cpm_port *pinfo) | ||
212 | { | ||
213 | /* | ||
214 | * STx GP3 uses the SCC2 secondary option pin assignment | ||
215 | * which this driver doesn't account for in the static | ||
216 | * pin assignments. This kind of board specific info | ||
217 | * really has to get out of the driver so boards can | ||
218 | * be supported in a sane fashion. | ||
219 | */ | ||
220 | volatile cpmux_t *cpmux = cpm2_map(im_cpmux); | ||
221 | #ifndef CONFIG_STX_GP3 | ||
222 | volatile iop_cpm2_t *io = cpm2_map(im_ioport); | ||
223 | |||
224 | io->iop_pparb |= 0x008b0000; | ||
225 | io->iop_pdirb |= 0x00880000; | ||
226 | io->iop_psorb |= 0x00880000; | ||
227 | io->iop_pdirb &= ~0x00030000; | ||
228 | io->iop_psorb &= ~0x00030000; | ||
229 | #endif | ||
230 | cpmux->cmx_scr &= 0xff00ffff; | ||
231 | cpmux->cmx_scr |= 0x00090000; | ||
232 | pinfo->brg = 2; | ||
233 | |||
234 | cpm2_unmap(cpmux); | ||
235 | cpm2_unmap(io); | ||
236 | } | ||
237 | |||
238 | void scc3_lineif(struct uart_cpm_port *pinfo) | ||
239 | { | ||
240 | volatile iop_cpm2_t *io = cpm2_map(im_ioport); | ||
241 | volatile cpmux_t *cpmux = cpm2_map(im_cpmux); | ||
242 | |||
243 | io->iop_pparb |= 0x008b0000; | ||
244 | io->iop_pdirb |= 0x00880000; | ||
245 | io->iop_psorb |= 0x00880000; | ||
246 | io->iop_pdirb &= ~0x00030000; | ||
247 | io->iop_psorb &= ~0x00030000; | ||
248 | cpmux->cmx_scr &= 0xffff00ff; | ||
249 | cpmux->cmx_scr |= 0x00001200; | ||
250 | pinfo->brg = 3; | ||
251 | |||
252 | cpm2_unmap(cpmux); | ||
253 | cpm2_unmap(io); | ||
254 | } | ||
255 | |||
256 | void scc4_lineif(struct uart_cpm_port *pinfo) | ||
257 | { | ||
258 | volatile iop_cpm2_t *io = cpm2_map(im_ioport); | ||
259 | volatile cpmux_t *cpmux = cpm2_map(im_cpmux); | ||
260 | |||
261 | io->iop_ppard |= 0x00000600; | ||
262 | io->iop_psord &= ~0x00000600; /* Tx/Rx */ | ||
263 | io->iop_pdird &= ~0x00000200; /* Rx */ | ||
264 | io->iop_pdird |= 0x00000400; /* Tx */ | ||
265 | |||
266 | cpmux->cmx_scr &= 0xffffff00; | ||
267 | cpmux->cmx_scr |= 0x0000001b; | ||
268 | pinfo->brg = 4; | ||
269 | |||
270 | cpm2_unmap(cpmux); | ||
271 | cpm2_unmap(io); | ||
272 | } | ||
273 | #endif | ||
274 | |||
275 | /* | 106 | /* |
276 | * Allocate DP-Ram and memory buffers. We need to allocate a transmit and | 107 | * Allocate DP-Ram and memory buffers. We need to allocate a transmit and |
277 | * receive buffer descriptors from dual port ram, and a character | 108 | * receive buffer descriptors from dual port ram, and a character |
278 | * buffer area from host mem. If we are allocating for the console we need | 109 | * buffer area from host mem. If we are allocating for the console we need |
279 | * to do it from bootmem | 110 | * to do it from bootmem |
@@ -340,111 +171,3 @@ void cpm_uart_freebuf(struct uart_cpm_port *pinfo) | |||
340 | 171 | ||
341 | cpm_dpfree(pinfo->dp_addr); | 172 | cpm_dpfree(pinfo->dp_addr); |
342 | } | 173 | } |
343 | |||
344 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
345 | /* Setup any dynamic params in the uart desc */ | ||
346 | int cpm_uart_init_portdesc(void) | ||
347 | { | ||
348 | #if defined(CONFIG_SERIAL_CPM_SMC1) || defined(CONFIG_SERIAL_CPM_SMC2) | ||
349 | u16 *addr; | ||
350 | #endif | ||
351 | pr_debug("CPM uart[-]:init portdesc\n"); | ||
352 | |||
353 | cpm_uart_nr = 0; | ||
354 | #ifdef CONFIG_SERIAL_CPM_SMC1 | ||
355 | cpm_uart_ports[UART_SMC1].smcp = (smc_t *) cpm2_map(im_smc[0]); | ||
356 | cpm_uart_ports[UART_SMC1].port.mapbase = | ||
357 | (unsigned long)cpm_uart_ports[UART_SMC1].smcp; | ||
358 | |||
359 | cpm_uart_ports[UART_SMC1].smcup = | ||
360 | (smc_uart_t *) cpm2_map_size(im_dprambase[PROFF_SMC1], PROFF_SMC_SIZE); | ||
361 | addr = (u16 *)cpm2_map_size(im_dprambase[PROFF_SMC1_BASE], 2); | ||
362 | *addr = PROFF_SMC1; | ||
363 | cpm2_unmap(addr); | ||
364 | |||
365 | cpm_uart_ports[UART_SMC1].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); | ||
366 | cpm_uart_ports[UART_SMC1].smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
367 | cpm_uart_ports[UART_SMC1].port.uartclk = uart_clock(); | ||
368 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC1; | ||
369 | #endif | ||
370 | |||
371 | #ifdef CONFIG_SERIAL_CPM_SMC2 | ||
372 | cpm_uart_ports[UART_SMC2].smcp = (smc_t *) cpm2_map(im_smc[1]); | ||
373 | cpm_uart_ports[UART_SMC2].port.mapbase = | ||
374 | (unsigned long)cpm_uart_ports[UART_SMC2].smcp; | ||
375 | |||
376 | cpm_uart_ports[UART_SMC2].smcup = | ||
377 | (smc_uart_t *) cpm2_map_size(im_dprambase[PROFF_SMC2], PROFF_SMC_SIZE); | ||
378 | addr = (u16 *)cpm2_map_size(im_dprambase[PROFF_SMC2_BASE], 2); | ||
379 | *addr = PROFF_SMC2; | ||
380 | cpm2_unmap(addr); | ||
381 | |||
382 | cpm_uart_ports[UART_SMC2].smcp->smc_smcm |= (SMCM_RX | SMCM_TX); | ||
383 | cpm_uart_ports[UART_SMC2].smcp->smc_smcmr &= ~(SMCMR_REN | SMCMR_TEN); | ||
384 | cpm_uart_ports[UART_SMC2].port.uartclk = uart_clock(); | ||
385 | cpm_uart_port_map[cpm_uart_nr++] = UART_SMC2; | ||
386 | #endif | ||
387 | |||
388 | #ifdef CONFIG_SERIAL_CPM_SCC1 | ||
389 | cpm_uart_ports[UART_SCC1].sccp = (scc_t *) cpm2_map(im_scc[0]); | ||
390 | cpm_uart_ports[UART_SCC1].port.mapbase = | ||
391 | (unsigned long)cpm_uart_ports[UART_SCC1].sccp; | ||
392 | cpm_uart_ports[UART_SCC1].sccup = | ||
393 | (scc_uart_t *) cpm2_map_size(im_dprambase[PROFF_SCC1], PROFF_SCC_SIZE); | ||
394 | |||
395 | cpm_uart_ports[UART_SCC1].sccp->scc_sccm &= | ||
396 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
397 | cpm_uart_ports[UART_SCC1].sccp->scc_gsmrl &= | ||
398 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
399 | cpm_uart_ports[UART_SCC1].port.uartclk = uart_clock(); | ||
400 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC1; | ||
401 | #endif | ||
402 | |||
403 | #ifdef CONFIG_SERIAL_CPM_SCC2 | ||
404 | cpm_uart_ports[UART_SCC2].sccp = (scc_t *) cpm2_map(im_scc[1]); | ||
405 | cpm_uart_ports[UART_SCC2].port.mapbase = | ||
406 | (unsigned long)cpm_uart_ports[UART_SCC2].sccp; | ||
407 | cpm_uart_ports[UART_SCC2].sccup = | ||
408 | (scc_uart_t *) cpm2_map_size(im_dprambase[PROFF_SCC2], PROFF_SCC_SIZE); | ||
409 | |||
410 | cpm_uart_ports[UART_SCC2].sccp->scc_sccm &= | ||
411 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
412 | cpm_uart_ports[UART_SCC2].sccp->scc_gsmrl &= | ||
413 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
414 | cpm_uart_ports[UART_SCC2].port.uartclk = uart_clock(); | ||
415 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC2; | ||
416 | #endif | ||
417 | |||
418 | #ifdef CONFIG_SERIAL_CPM_SCC3 | ||
419 | cpm_uart_ports[UART_SCC3].sccp = (scc_t *) cpm2_map(im_scc[2]); | ||
420 | cpm_uart_ports[UART_SCC3].port.mapbase = | ||
421 | (unsigned long)cpm_uart_ports[UART_SCC3].sccp; | ||
422 | cpm_uart_ports[UART_SCC3].sccup = | ||
423 | (scc_uart_t *) cpm2_map_size(im_dprambase[PROFF_SCC3], PROFF_SCC_SIZE); | ||
424 | |||
425 | cpm_uart_ports[UART_SCC3].sccp->scc_sccm &= | ||
426 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
427 | cpm_uart_ports[UART_SCC3].sccp->scc_gsmrl &= | ||
428 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
429 | cpm_uart_ports[UART_SCC3].port.uartclk = uart_clock(); | ||
430 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC3; | ||
431 | #endif | ||
432 | |||
433 | #ifdef CONFIG_SERIAL_CPM_SCC4 | ||
434 | cpm_uart_ports[UART_SCC4].sccp = (scc_t *) cpm2_map(im_scc[3]); | ||
435 | cpm_uart_ports[UART_SCC4].port.mapbase = | ||
436 | (unsigned long)cpm_uart_ports[UART_SCC4].sccp; | ||
437 | cpm_uart_ports[UART_SCC4].sccup = | ||
438 | (scc_uart_t *) cpm2_map_size(im_dprambase[PROFF_SCC4], PROFF_SCC_SIZE); | ||
439 | |||
440 | cpm_uart_ports[UART_SCC4].sccp->scc_sccm &= | ||
441 | ~(UART_SCCM_TX | UART_SCCM_RX); | ||
442 | cpm_uart_ports[UART_SCC4].sccp->scc_gsmrl &= | ||
443 | ~(SCC_GSMRL_ENR | SCC_GSMRL_ENT); | ||
444 | cpm_uart_ports[UART_SCC4].port.uartclk = uart_clock(); | ||
445 | cpm_uart_port_map[cpm_uart_nr++] = UART_SCC4; | ||
446 | #endif | ||
447 | |||
448 | return 0; | ||
449 | } | ||
450 | #endif | ||
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.h b/drivers/serial/cpm_uart/cpm_uart_cpm2.h index 40006a7dce46..7194c63dcf5f 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.h +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.h | |||
@@ -2,7 +2,7 @@ | |||
2 | * linux/drivers/serial/cpm_uart/cpm_uart_cpm2.h | 2 | * linux/drivers/serial/cpm_uart/cpm_uart_cpm2.h |
3 | * | 3 | * |
4 | * Driver for CPM (SCC/SMC) serial ports | 4 | * Driver for CPM (SCC/SMC) serial ports |
5 | * | 5 | * |
6 | * definitions for cpm2 | 6 | * definitions for cpm2 |
7 | * | 7 | * |
8 | */ | 8 | */ |
@@ -12,16 +12,6 @@ | |||
12 | 12 | ||
13 | #include <asm/cpm2.h> | 13 | #include <asm/cpm2.h> |
14 | 14 | ||
15 | /* defines for IRQs */ | ||
16 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
17 | #define SMC1_IRQ SIU_INT_SMC1 | ||
18 | #define SMC2_IRQ SIU_INT_SMC2 | ||
19 | #define SCC1_IRQ SIU_INT_SCC1 | ||
20 | #define SCC2_IRQ SIU_INT_SCC2 | ||
21 | #define SCC3_IRQ SIU_INT_SCC3 | ||
22 | #define SCC4_IRQ SIU_INT_SCC4 | ||
23 | #endif | ||
24 | |||
25 | static inline void cpm_set_brg(int brg, int baud) | 15 | static inline void cpm_set_brg(int brg, int baud) |
26 | { | 16 | { |
27 | cpm_setbrg(brg, baud); | 17 | cpm_setbrg(brg, baud); |
diff --git a/include/asm-powerpc/cache.h b/include/asm-powerpc/cache.h index 53507046a1b1..81de6eb3455d 100644 --- a/include/asm-powerpc/cache.h +++ b/include/asm-powerpc/cache.h | |||
@@ -8,6 +8,9 @@ | |||
8 | #if defined(CONFIG_8xx) || defined(CONFIG_403GCX) | 8 | #if defined(CONFIG_8xx) || defined(CONFIG_403GCX) |
9 | #define L1_CACHE_SHIFT 4 | 9 | #define L1_CACHE_SHIFT 4 |
10 | #define MAX_COPY_PREFETCH 1 | 10 | #define MAX_COPY_PREFETCH 1 |
11 | #elif defined(CONFIG_PPC_E500MC) | ||
12 | #define L1_CACHE_SHIFT 6 | ||
13 | #define MAX_COPY_PREFETCH 4 | ||
11 | #elif defined(CONFIG_PPC32) | 14 | #elif defined(CONFIG_PPC32) |
12 | #define L1_CACHE_SHIFT 5 | 15 | #define L1_CACHE_SHIFT 5 |
13 | #define MAX_COPY_PREFETCH 4 | 16 | #define MAX_COPY_PREFETCH 4 |
diff --git a/include/asm-powerpc/cpm.h b/include/asm-powerpc/cpm.h index ede38ffe466a..63a55337c2de 100644 --- a/include/asm-powerpc/cpm.h +++ b/include/asm-powerpc/cpm.h | |||
@@ -96,6 +96,7 @@ unsigned long cpm_muram_alloc(unsigned long size, unsigned long align); | |||
96 | int cpm_muram_free(unsigned long offset); | 96 | int cpm_muram_free(unsigned long offset); |
97 | unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size); | 97 | unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size); |
98 | void __iomem *cpm_muram_addr(unsigned long offset); | 98 | void __iomem *cpm_muram_addr(unsigned long offset); |
99 | unsigned long cpm_muram_offset(void __iomem *addr); | ||
99 | dma_addr_t cpm_muram_dma(void __iomem *addr); | 100 | dma_addr_t cpm_muram_dma(void __iomem *addr); |
100 | int cpm_command(u32 command, u8 opcode); | 101 | int cpm_command(u32 command, u8 opcode); |
101 | 102 | ||
diff --git a/include/asm-powerpc/cpm1.h b/include/asm-powerpc/cpm1.h index 3df439678006..2ff798744c1d 100644 --- a/include/asm-powerpc/cpm1.h +++ b/include/asm-powerpc/cpm1.h | |||
@@ -42,35 +42,15 @@ | |||
42 | 42 | ||
43 | #define mk_cr_cmd(CH, CMD) ((CMD << 8) | (CH << 4)) | 43 | #define mk_cr_cmd(CH, CMD) ((CMD << 8) | (CH << 4)) |
44 | 44 | ||
45 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
46 | /* The dual ported RAM is multi-functional. Some areas can be (and are | ||
47 | * being) used for microcode. There is an area that can only be used | ||
48 | * as data ram for buffer descriptors, which is all we use right now. | ||
49 | * Currently the first 512 and last 256 bytes are used for microcode. | ||
50 | */ | ||
51 | #define CPM_DATAONLY_BASE ((uint)0x0800) | ||
52 | #define CPM_DATAONLY_SIZE ((uint)0x0700) | ||
53 | #define CPM_DP_NOSPACE ((uint)0x7fffffff) | ||
54 | #endif | ||
55 | |||
56 | /* Export the base address of the communication processor registers | 45 | /* Export the base address of the communication processor registers |
57 | * and dual port ram. | 46 | * and dual port ram. |
58 | */ | 47 | */ |
59 | extern cpm8xx_t __iomem *cpmp; /* Pointer to comm processor */ | 48 | extern cpm8xx_t __iomem *cpmp; /* Pointer to comm processor */ |
60 | 49 | ||
61 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
62 | #define cpm_dpalloc cpm_muram_alloc | 50 | #define cpm_dpalloc cpm_muram_alloc |
63 | #define cpm_dpfree cpm_muram_free | 51 | #define cpm_dpfree cpm_muram_free |
64 | #define cpm_dpram_addr cpm_muram_addr | 52 | #define cpm_dpram_addr cpm_muram_addr |
65 | #define cpm_dpram_phys cpm_muram_dma | 53 | #define cpm_dpram_phys cpm_muram_dma |
66 | #else | ||
67 | extern unsigned long cpm_dpalloc(uint size, uint align); | ||
68 | extern int cpm_dpfree(unsigned long offset); | ||
69 | extern unsigned long cpm_dpalloc_fixed(unsigned long offset, uint size, uint align); | ||
70 | extern void cpm_dpdump(void); | ||
71 | extern void *cpm_dpram_addr(unsigned long offset); | ||
72 | extern uint cpm_dpram_phys(u8 *addr); | ||
73 | #endif | ||
74 | 54 | ||
75 | extern void cpm_setbrg(uint brg, uint rate); | 55 | extern void cpm_setbrg(uint brg, uint rate); |
76 | 56 | ||
diff --git a/include/asm-powerpc/cpm2.h b/include/asm-powerpc/cpm2.h index 4c85ed9cd43f..2c7fd9cee291 100644 --- a/include/asm-powerpc/cpm2.h +++ b/include/asm-powerpc/cpm2.h | |||
@@ -78,24 +78,6 @@ | |||
78 | #define mk_cr_cmd(PG, SBC, MCN, OP) \ | 78 | #define mk_cr_cmd(PG, SBC, MCN, OP) \ |
79 | ((PG << 26) | (SBC << 21) | (MCN << 6) | OP) | 79 | ((PG << 26) | (SBC << 21) | (MCN << 6) | OP) |
80 | 80 | ||
81 | #ifndef CONFIG_PPC_CPM_NEW_BINDING | ||
82 | /* Dual Port RAM addresses. The first 16K is available for almost | ||
83 | * any CPM use, so we put the BDs there. The first 128 bytes are | ||
84 | * used for SMC1 and SMC2 parameter RAM, so we start allocating | ||
85 | * BDs above that. All of this must change when we start | ||
86 | * downloading RAM microcode. | ||
87 | */ | ||
88 | #define CPM_DATAONLY_BASE ((uint)128) | ||
89 | #define CPM_DP_NOSPACE ((uint)0x7fffffff) | ||
90 | #if defined(CONFIG_8272) || defined(CONFIG_MPC8555) | ||
91 | #define CPM_DATAONLY_SIZE ((uint)(8 * 1024) - CPM_DATAONLY_BASE) | ||
92 | #define CPM_FCC_SPECIAL_BASE ((uint)0x00009000) | ||
93 | #else | ||
94 | #define CPM_DATAONLY_SIZE ((uint)(16 * 1024) - CPM_DATAONLY_BASE) | ||
95 | #define CPM_FCC_SPECIAL_BASE ((uint)0x0000b000) | ||
96 | #endif | ||
97 | #endif | ||
98 | |||
99 | /* The number of pages of host memory we allocate for CPM. This is | 81 | /* The number of pages of host memory we allocate for CPM. This is |
100 | * done early in kernel initialization to get physically contiguous | 82 | * done early in kernel initialization to get physically contiguous |
101 | * pages. | 83 | * pages. |
@@ -107,17 +89,9 @@ | |||
107 | */ | 89 | */ |
108 | extern cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor */ | 90 | extern cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor */ |
109 | 91 | ||
110 | #ifdef CONFIG_PPC_CPM_NEW_BINDING | ||
111 | #define cpm_dpalloc cpm_muram_alloc | 92 | #define cpm_dpalloc cpm_muram_alloc |
112 | #define cpm_dpfree cpm_muram_free | 93 | #define cpm_dpfree cpm_muram_free |
113 | #define cpm_dpram_addr cpm_muram_addr | 94 | #define cpm_dpram_addr cpm_muram_addr |
114 | #else | ||
115 | extern unsigned long cpm_dpalloc(uint size, uint align); | ||
116 | extern int cpm_dpfree(unsigned long offset); | ||
117 | extern unsigned long cpm_dpalloc_fixed(unsigned long offset, uint size, uint align); | ||
118 | extern void cpm_dpdump(void); | ||
119 | extern void *cpm_dpram_addr(unsigned long offset); | ||
120 | #endif | ||
121 | 95 | ||
122 | extern void cpm_setbrg(uint brg, uint rate); | 96 | extern void cpm_setbrg(uint brg, uint rate); |
123 | extern void cpm2_fastbrg(uint brg, uint rate, int div16); | 97 | extern void cpm2_fastbrg(uint brg, uint rate, int div16); |
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 1e79673b7316..9106113ae0b5 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -132,7 +132,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
132 | #define CPU_FTR_TAU ASM_CONST(0x0000000000000010) | 132 | #define CPU_FTR_TAU ASM_CONST(0x0000000000000010) |
133 | #define CPU_FTR_CAN_DOZE ASM_CONST(0x0000000000000020) | 133 | #define CPU_FTR_CAN_DOZE ASM_CONST(0x0000000000000020) |
134 | #define CPU_FTR_USE_TB ASM_CONST(0x0000000000000040) | 134 | #define CPU_FTR_USE_TB ASM_CONST(0x0000000000000040) |
135 | #define CPU_FTR_604_PERF_MON ASM_CONST(0x0000000000000080) | 135 | #define CPU_FTR_L2CSR ASM_CONST(0x0000000000000080) |
136 | #define CPU_FTR_601 ASM_CONST(0x0000000000000100) | 136 | #define CPU_FTR_601 ASM_CONST(0x0000000000000100) |
137 | #define CPU_FTR_HPTE_TABLE ASM_CONST(0x0000000000000200) | 137 | #define CPU_FTR_HPTE_TABLE ASM_CONST(0x0000000000000200) |
138 | #define CPU_FTR_CAN_NAP ASM_CONST(0x0000000000000400) | 138 | #define CPU_FTR_CAN_NAP ASM_CONST(0x0000000000000400) |
@@ -245,8 +245,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
245 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \ | 245 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \ |
246 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE) | 246 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE) |
247 | #define CPU_FTRS_604 (CPU_FTR_COMMON | \ | 247 | #define CPU_FTRS_604 (CPU_FTR_COMMON | \ |
248 | CPU_FTR_USE_TB | CPU_FTR_604_PERF_MON | CPU_FTR_HPTE_TABLE | \ | 248 | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE | CPU_FTR_PPC_LE) |
249 | CPU_FTR_PPC_LE) | ||
250 | #define CPU_FTRS_740_NOTAU (CPU_FTR_COMMON | \ | 249 | #define CPU_FTRS_740_NOTAU (CPU_FTR_COMMON | \ |
251 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | CPU_FTR_L2CR | \ | 250 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | CPU_FTR_L2CR | \ |
252 | CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE) | 251 | CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE) |
@@ -347,10 +346,14 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
347 | #define CPU_FTRS_E200 (CPU_FTR_USE_TB | CPU_FTR_SPE_COMP | \ | 346 | #define CPU_FTRS_E200 (CPU_FTR_USE_TB | CPU_FTR_SPE_COMP | \ |
348 | CPU_FTR_NODSISRALIGN | CPU_FTR_COHERENT_ICACHE | \ | 347 | CPU_FTR_NODSISRALIGN | CPU_FTR_COHERENT_ICACHE | \ |
349 | CPU_FTR_UNIFIED_ID_CACHE) | 348 | CPU_FTR_UNIFIED_ID_CACHE) |
350 | #define CPU_FTRS_E500 (CPU_FTR_USE_TB | CPU_FTR_SPE_COMP | \ | 349 | #define CPU_FTRS_E500 (CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \ |
350 | CPU_FTR_SPE_COMP | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NODSISRALIGN) | ||
351 | #define CPU_FTRS_E500_2 (CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \ | ||
352 | CPU_FTR_SPE_COMP | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_BIG_PHYS | \ | ||
351 | CPU_FTR_NODSISRALIGN) | 353 | CPU_FTR_NODSISRALIGN) |
352 | #define CPU_FTRS_E500_2 (CPU_FTR_USE_TB | CPU_FTR_SPE_COMP | \ | 354 | #define CPU_FTRS_E500MC (CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB | \ |
353 | CPU_FTR_BIG_PHYS | CPU_FTR_NODSISRALIGN) | 355 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_BIG_PHYS | CPU_FTR_NODSISRALIGN | \ |
356 | CPU_FTR_L2CSR) | ||
354 | #define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) | 357 | #define CPU_FTRS_GENERIC_32 (CPU_FTR_COMMON | CPU_FTR_NODSISRALIGN) |
355 | 358 | ||
356 | /* 64-bit CPUs */ | 359 | /* 64-bit CPUs */ |
@@ -421,7 +424,7 @@ enum { | |||
421 | CPU_FTRS_E200 | | 424 | CPU_FTRS_E200 | |
422 | #endif | 425 | #endif |
423 | #ifdef CONFIG_E500 | 426 | #ifdef CONFIG_E500 |
424 | CPU_FTRS_E500 | CPU_FTRS_E500_2 | | 427 | CPU_FTRS_E500 | CPU_FTRS_E500_2 | CPU_FTRS_E500MC | |
425 | #endif | 428 | #endif |
426 | 0, | 429 | 0, |
427 | }; | 430 | }; |
@@ -461,7 +464,7 @@ enum { | |||
461 | CPU_FTRS_E200 & | 464 | CPU_FTRS_E200 & |
462 | #endif | 465 | #endif |
463 | #ifdef CONFIG_E500 | 466 | #ifdef CONFIG_E500 |
464 | CPU_FTRS_E500 & CPU_FTRS_E500_2 & | 467 | CPU_FTRS_E500 & CPU_FTRS_E500_2 & CPU_FTRS_E500MC & |
465 | #endif | 468 | #endif |
466 | CPU_FTRS_POSSIBLE, | 469 | CPU_FTRS_POSSIBLE, |
467 | }; | 470 | }; |
diff --git a/include/asm-powerpc/fsl_gtm.h b/include/asm-powerpc/fsl_gtm.h new file mode 100644 index 000000000000..8e8c9b5032d3 --- /dev/null +++ b/include/asm-powerpc/fsl_gtm.h | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * Freescale General-purpose Timers Module | ||
3 | * | ||
4 | * Copyright (c) Freescale Semicondutor, Inc. 2006. | ||
5 | * Shlomi Gridish <gridish@freescale.com> | ||
6 | * Jerry Huang <Chang-Ming.Huang@freescale.com> | ||
7 | * Copyright (c) MontaVista Software, Inc. 2008. | ||
8 | * Anton Vorontsov <avorontsov@ru.mvista.com> | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | */ | ||
15 | |||
16 | #ifndef __ASM_FSL_GTM_H | ||
17 | #define __ASM_FSL_GTM_H | ||
18 | |||
19 | #include <linux/types.h> | ||
20 | |||
21 | struct gtm; | ||
22 | |||
23 | struct gtm_timer { | ||
24 | unsigned int irq; | ||
25 | |||
26 | struct gtm *gtm; | ||
27 | bool requested; | ||
28 | u8 __iomem *gtcfr; | ||
29 | __be16 __iomem *gtmdr; | ||
30 | __be16 __iomem *gtpsr; | ||
31 | __be16 __iomem *gtcnr; | ||
32 | __be16 __iomem *gtrfr; | ||
33 | __be16 __iomem *gtevr; | ||
34 | }; | ||
35 | |||
36 | extern struct gtm_timer *gtm_get_timer16(void); | ||
37 | extern struct gtm_timer *gtm_get_specific_timer16(struct gtm *gtm, | ||
38 | unsigned int timer); | ||
39 | extern void gtm_put_timer16(struct gtm_timer *tmr); | ||
40 | extern int gtm_set_timer16(struct gtm_timer *tmr, unsigned long usec, | ||
41 | bool reload); | ||
42 | extern int gtm_set_exact_timer16(struct gtm_timer *tmr, u16 usec, | ||
43 | bool reload); | ||
44 | extern void gtm_stop_timer16(struct gtm_timer *tmr); | ||
45 | extern void gtm_ack_timer16(struct gtm_timer *tmr, u16 events); | ||
46 | |||
47 | #endif /* __ASM_FSL_GTM_H */ | ||
diff --git a/include/asm-powerpc/machdep.h b/include/asm-powerpc/machdep.h index 54ed64df95b8..989922621e35 100644 --- a/include/asm-powerpc/machdep.h +++ b/include/asm-powerpc/machdep.h | |||
@@ -262,6 +262,7 @@ struct machdep_calls { | |||
262 | #endif | 262 | #endif |
263 | }; | 263 | }; |
264 | 264 | ||
265 | extern void e500_idle(void); | ||
265 | extern void power4_idle(void); | 266 | extern void power4_idle(void); |
266 | extern void power4_cpu_offline_powersave(void); | 267 | extern void power4_cpu_offline_powersave(void); |
267 | extern void ppc6xx_idle(void); | 268 | extern void ppc6xx_idle(void); |
diff --git a/include/asm-powerpc/qe.h b/include/asm-powerpc/qe.h index c3be6e2e1490..edee15d269ea 100644 --- a/include/asm-powerpc/qe.h +++ b/include/asm-powerpc/qe.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #define _ASM_POWERPC_QE_H | 16 | #define _ASM_POWERPC_QE_H |
17 | #ifdef __KERNEL__ | 17 | #ifdef __KERNEL__ |
18 | 18 | ||
19 | #include <linux/spinlock.h> | ||
20 | #include <asm/cpm.h> | ||
19 | #include <asm/immap_qe.h> | 21 | #include <asm/immap_qe.h> |
20 | 22 | ||
21 | #define QE_NUM_OF_SNUM 28 | 23 | #define QE_NUM_OF_SNUM 28 |
@@ -74,10 +76,38 @@ enum qe_clock { | |||
74 | QE_CLK_DUMMY | 76 | QE_CLK_DUMMY |
75 | }; | 77 | }; |
76 | 78 | ||
79 | static inline bool qe_clock_is_brg(enum qe_clock clk) | ||
80 | { | ||
81 | return clk >= QE_BRG1 && clk <= QE_BRG16; | ||
82 | } | ||
83 | |||
84 | extern spinlock_t cmxgcr_lock; | ||
85 | |||
77 | /* Export QE common operations */ | 86 | /* Export QE common operations */ |
78 | extern void qe_reset(void); | 87 | extern void __init qe_reset(void); |
88 | |||
89 | /* QE PIO */ | ||
90 | #define QE_PIO_PINS 32 | ||
91 | |||
92 | struct qe_pio_regs { | ||
93 | __be32 cpodr; /* Open drain register */ | ||
94 | __be32 cpdata; /* Data register */ | ||
95 | __be32 cpdir1; /* Direction register */ | ||
96 | __be32 cpdir2; /* Direction register */ | ||
97 | __be32 cppar1; /* Pin assignment register */ | ||
98 | __be32 cppar2; /* Pin assignment register */ | ||
99 | #ifdef CONFIG_PPC_85xx | ||
100 | u8 pad[8]; | ||
101 | #endif | ||
102 | }; | ||
103 | |||
79 | extern int par_io_init(struct device_node *np); | 104 | extern int par_io_init(struct device_node *np); |
80 | extern int par_io_of_config(struct device_node *np); | 105 | extern int par_io_of_config(struct device_node *np); |
106 | #define QE_PIO_DIR_IN 2 | ||
107 | #define QE_PIO_DIR_OUT 1 | ||
108 | extern void __par_io_config_pin(struct qe_pio_regs __iomem *par_io, u8 pin, | ||
109 | int dir, int open_drain, int assignment, | ||
110 | int has_irq); | ||
81 | extern int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain, | 111 | extern int par_io_config_pin(u8 port, u8 pin, int dir, int open_drain, |
82 | int assignment, int has_irq); | 112 | int assignment, int has_irq); |
83 | extern int par_io_data_set(u8 port, u8 pin, u8 val); | 113 | extern int par_io_data_set(u8 port, u8 pin, u8 val); |
@@ -89,20 +119,13 @@ unsigned int qe_get_brg_clk(void); | |||
89 | int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier); | 119 | int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier); |
90 | int qe_get_snum(void); | 120 | int qe_get_snum(void); |
91 | void qe_put_snum(u8 snum); | 121 | void qe_put_snum(u8 snum); |
92 | unsigned long qe_muram_alloc(int size, int align); | 122 | /* we actually use cpm_muram implementation, define this for convenience */ |
93 | int qe_muram_free(unsigned long offset); | 123 | #define qe_muram_init cpm_muram_init |
94 | unsigned long qe_muram_alloc_fixed(unsigned long offset, int size); | 124 | #define qe_muram_alloc cpm_muram_alloc |
95 | void qe_muram_dump(void); | 125 | #define qe_muram_alloc_fixed cpm_muram_alloc_fixed |
96 | 126 | #define qe_muram_free cpm_muram_free | |
97 | static inline void __iomem *qe_muram_addr(unsigned long offset) | 127 | #define qe_muram_addr cpm_muram_addr |
98 | { | 128 | #define qe_muram_offset cpm_muram_offset |
99 | return (void __iomem *)&qe_immr->muram[offset]; | ||
100 | } | ||
101 | |||
102 | static inline unsigned long qe_muram_offset(void __iomem *addr) | ||
103 | { | ||
104 | return addr - (void __iomem *)qe_immr->muram; | ||
105 | } | ||
106 | 129 | ||
107 | /* Structure that defines QE firmware binary files. | 130 | /* Structure that defines QE firmware binary files. |
108 | * | 131 | * |
@@ -156,6 +179,9 @@ int qe_upload_firmware(const struct qe_firmware *firmware); | |||
156 | /* Obtain information on the uploaded firmware */ | 179 | /* Obtain information on the uploaded firmware */ |
157 | struct qe_firmware_info *qe_get_firmware_info(void); | 180 | struct qe_firmware_info *qe_get_firmware_info(void); |
158 | 181 | ||
182 | /* QE USB */ | ||
183 | int qe_usb_clock_set(enum qe_clock clk, int rate); | ||
184 | |||
159 | /* Buffer descriptors */ | 185 | /* Buffer descriptors */ |
160 | struct qe_bd { | 186 | struct qe_bd { |
161 | __be16 status; | 187 | __be16 status; |
@@ -166,20 +192,6 @@ struct qe_bd { | |||
166 | #define BD_STATUS_MASK 0xffff0000 | 192 | #define BD_STATUS_MASK 0xffff0000 |
167 | #define BD_LENGTH_MASK 0x0000ffff | 193 | #define BD_LENGTH_MASK 0x0000ffff |
168 | 194 | ||
169 | #define BD_SC_EMPTY 0x8000 /* Receive is empty */ | ||
170 | #define BD_SC_READY 0x8000 /* Transmit is ready */ | ||
171 | #define BD_SC_WRAP 0x2000 /* Last buffer descriptor */ | ||
172 | #define BD_SC_INTRPT 0x1000 /* Interrupt on change */ | ||
173 | #define BD_SC_LAST 0x0800 /* Last buffer in frame */ | ||
174 | #define BD_SC_CM 0x0200 /* Continous mode */ | ||
175 | #define BD_SC_ID 0x0100 /* Rec'd too many idles */ | ||
176 | #define BD_SC_P 0x0100 /* xmt preamble */ | ||
177 | #define BD_SC_BR 0x0020 /* Break received */ | ||
178 | #define BD_SC_FR 0x0010 /* Framing error */ | ||
179 | #define BD_SC_PR 0x0008 /* Parity error */ | ||
180 | #define BD_SC_OV 0x0002 /* Overrun */ | ||
181 | #define BD_SC_CD 0x0001 /* ?? */ | ||
182 | |||
183 | /* Alignment */ | 195 | /* Alignment */ |
184 | #define QE_INTR_TABLE_ALIGN 16 /* ??? */ | 196 | #define QE_INTR_TABLE_ALIGN 16 /* ??? */ |
185 | #define QE_ALIGNMENT_OF_BD 8 | 197 | #define QE_ALIGNMENT_OF_BD 8 |
@@ -254,6 +266,16 @@ enum comm_dir { | |||
254 | #define QE_CMXGCR_MII_ENET_MNG 0x00007000 | 266 | #define QE_CMXGCR_MII_ENET_MNG 0x00007000 |
255 | #define QE_CMXGCR_MII_ENET_MNG_SHIFT 12 | 267 | #define QE_CMXGCR_MII_ENET_MNG_SHIFT 12 |
256 | #define QE_CMXGCR_USBCS 0x0000000f | 268 | #define QE_CMXGCR_USBCS 0x0000000f |
269 | #define QE_CMXGCR_USBCS_CLK3 0x1 | ||
270 | #define QE_CMXGCR_USBCS_CLK5 0x2 | ||
271 | #define QE_CMXGCR_USBCS_CLK7 0x3 | ||
272 | #define QE_CMXGCR_USBCS_CLK9 0x4 | ||
273 | #define QE_CMXGCR_USBCS_CLK13 0x5 | ||
274 | #define QE_CMXGCR_USBCS_CLK17 0x6 | ||
275 | #define QE_CMXGCR_USBCS_CLK19 0x7 | ||
276 | #define QE_CMXGCR_USBCS_CLK21 0x8 | ||
277 | #define QE_CMXGCR_USBCS_BRG9 0x9 | ||
278 | #define QE_CMXGCR_USBCS_BRG10 0xa | ||
257 | 279 | ||
258 | /* QE CECR Commands. | 280 | /* QE CECR Commands. |
259 | */ | 281 | */ |
@@ -283,7 +305,7 @@ enum comm_dir { | |||
283 | #define QE_HPAC_START_TX 0x0000060b | 305 | #define QE_HPAC_START_TX 0x0000060b |
284 | #define QE_HPAC_START_RX 0x0000070b | 306 | #define QE_HPAC_START_RX 0x0000070b |
285 | #define QE_USB_STOP_TX 0x0000000a | 307 | #define QE_USB_STOP_TX 0x0000000a |
286 | #define QE_USB_RESTART_TX 0x0000000b | 308 | #define QE_USB_RESTART_TX 0x0000000c |
287 | #define QE_QMC_STOP_TX 0x0000000c | 309 | #define QE_QMC_STOP_TX 0x0000000c |
288 | #define QE_QMC_STOP_RX 0x0000000d | 310 | #define QE_QMC_STOP_RX 0x0000000d |
289 | #define QE_SS7_SU_FIL_RESET 0x0000000e | 311 | #define QE_SS7_SU_FIL_RESET 0x0000000e |
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h index edc0cfd7f6e2..079999b032af 100644 --- a/include/asm-powerpc/reg.h +++ b/include/asm-powerpc/reg.h | |||
@@ -240,7 +240,7 @@ | |||
240 | #define HID0_DAPUEN (1<<8) /* Debug APU enable */ | 240 | #define HID0_DAPUEN (1<<8) /* Debug APU enable */ |
241 | #define HID0_SGE (1<<7) /* Store Gathering Enable */ | 241 | #define HID0_SGE (1<<7) /* Store Gathering Enable */ |
242 | #define HID0_SIED (1<<7) /* Serial Instr. Execution [Disable] */ | 242 | #define HID0_SIED (1<<7) /* Serial Instr. Execution [Disable] */ |
243 | #define HID0_DFCA (1<<6) /* Data Cache Flush Assist */ | 243 | #define HID0_DCFA (1<<6) /* Data Cache Flush Assist */ |
244 | #define HID0_LRSTK (1<<4) /* Link register stack - 745x */ | 244 | #define HID0_LRSTK (1<<4) /* Link register stack - 745x */ |
245 | #define HID0_BTIC (1<<5) /* Branch Target Instr Cache Enable */ | 245 | #define HID0_BTIC (1<<5) /* Branch Target Instr Cache Enable */ |
246 | #define HID0_ABE (1<<3) /* Address Broadcast Enable */ | 246 | #define HID0_ABE (1<<3) /* Address Broadcast Enable */ |
diff --git a/include/asm-powerpc/reg_booke.h b/include/asm-powerpc/reg_booke.h index cf54a3f31753..be980f4ee495 100644 --- a/include/asm-powerpc/reg_booke.h +++ b/include/asm-powerpc/reg_booke.h | |||
@@ -61,6 +61,8 @@ | |||
61 | #define SPRN_SPEFSCR 0x200 /* SPE & Embedded FP Status & Control */ | 61 | #define SPRN_SPEFSCR 0x200 /* SPE & Embedded FP Status & Control */ |
62 | #define SPRN_BBEAR 0x201 /* Branch Buffer Entry Address Register */ | 62 | #define SPRN_BBEAR 0x201 /* Branch Buffer Entry Address Register */ |
63 | #define SPRN_BBTAR 0x202 /* Branch Buffer Target Address Register */ | 63 | #define SPRN_BBTAR 0x202 /* Branch Buffer Target Address Register */ |
64 | #define SPRN_L1CFG0 0x203 /* L1 Cache Configure Register 0 */ | ||
65 | #define SPRN_L1CFG1 0x204 /* L1 Cache Configure Register 1 */ | ||
64 | #define SPRN_ATB 0x20E /* Alternate Time Base */ | 66 | #define SPRN_ATB 0x20E /* Alternate Time Base */ |
65 | #define SPRN_ATBL 0x20E /* Alternate Time Base Lower */ | 67 | #define SPRN_ATBL 0x20E /* Alternate Time Base Lower */ |
66 | #define SPRN_ATBU 0x20F /* Alternate Time Base Upper */ | 68 | #define SPRN_ATBU 0x20F /* Alternate Time Base Upper */ |
@@ -78,6 +80,7 @@ | |||
78 | #define SPRN_DSRR1 0x23F /* Debug Save and Restore Register 1 */ | 80 | #define SPRN_DSRR1 0x23F /* Debug Save and Restore Register 1 */ |
79 | #define SPRN_SPRG8 0x25C /* Special Purpose Register General 8 */ | 81 | #define SPRN_SPRG8 0x25C /* Special Purpose Register General 8 */ |
80 | #define SPRN_SPRG9 0x25D /* Special Purpose Register General 9 */ | 82 | #define SPRN_SPRG9 0x25D /* Special Purpose Register General 9 */ |
83 | #define SPRN_L1CSR2 0x25E /* L1 Cache Control and Status Register 2 */ | ||
81 | #define SPRN_MAS0 0x270 /* MMU Assist Register 0 */ | 84 | #define SPRN_MAS0 0x270 /* MMU Assist Register 0 */ |
82 | #define SPRN_MAS1 0x271 /* MMU Assist Register 1 */ | 85 | #define SPRN_MAS1 0x271 /* MMU Assist Register 1 */ |
83 | #define SPRN_MAS2 0x272 /* MMU Assist Register 2 */ | 86 | #define SPRN_MAS2 0x272 /* MMU Assist Register 2 */ |
@@ -108,6 +111,8 @@ | |||
108 | #define SPRN_L1CSR1 0x3F3 /* L1 Cache Control and Status Register 1 */ | 111 | #define SPRN_L1CSR1 0x3F3 /* L1 Cache Control and Status Register 1 */ |
109 | #define SPRN_PIT 0x3DB /* Programmable Interval Timer */ | 112 | #define SPRN_PIT 0x3DB /* Programmable Interval Timer */ |
110 | #define SPRN_BUCSR 0x3F5 /* Branch Unit Control and Status */ | 113 | #define SPRN_BUCSR 0x3F5 /* Branch Unit Control and Status */ |
114 | #define SPRN_L2CSR0 0x3F9 /* L2 Data Cache Control and Status Register 0 */ | ||
115 | #define SPRN_L2CSR1 0x3FA /* L2 Data Cache Control and Status Register 1 */ | ||
111 | #define SPRN_DCCR 0x3FA /* Data Cache Cacheability Register */ | 116 | #define SPRN_DCCR 0x3FA /* Data Cache Cacheability Register */ |
112 | #define SPRN_ICCR 0x3FB /* Instruction Cache Cacheability Register */ | 117 | #define SPRN_ICCR 0x3FB /* Instruction Cache Cacheability Register */ |
113 | #define SPRN_SVR 0x3FF /* System Version Register */ | 118 | #define SPRN_SVR 0x3FF /* System Version Register */ |
@@ -210,6 +215,7 @@ | |||
210 | #ifdef CONFIG_BOOKE | 215 | #ifdef CONFIG_BOOKE |
211 | #define DBSR_IC 0x08000000 /* Instruction Completion */ | 216 | #define DBSR_IC 0x08000000 /* Instruction Completion */ |
212 | #define DBSR_BT 0x04000000 /* Branch Taken */ | 217 | #define DBSR_BT 0x04000000 /* Branch Taken */ |
218 | #define DBSR_IRPT 0x02000000 /* Exception Debug Event */ | ||
213 | #define DBSR_TIE 0x01000000 /* Trap Instruction Event */ | 219 | #define DBSR_TIE 0x01000000 /* Trap Instruction Event */ |
214 | #define DBSR_IAC1 0x00800000 /* Instr Address Compare 1 Event */ | 220 | #define DBSR_IAC1 0x00800000 /* Instr Address Compare 1 Event */ |
215 | #define DBSR_IAC2 0x00400000 /* Instr Address Compare 2 Event */ | 221 | #define DBSR_IAC2 0x00400000 /* Instr Address Compare 2 Event */ |
@@ -219,10 +225,14 @@ | |||
219 | #define DBSR_DAC1W 0x00040000 /* Data Addr Compare 1 Write Event */ | 225 | #define DBSR_DAC1W 0x00040000 /* Data Addr Compare 1 Write Event */ |
220 | #define DBSR_DAC2R 0x00020000 /* Data Addr Compare 2 Read Event */ | 226 | #define DBSR_DAC2R 0x00020000 /* Data Addr Compare 2 Read Event */ |
221 | #define DBSR_DAC2W 0x00010000 /* Data Addr Compare 2 Write Event */ | 227 | #define DBSR_DAC2W 0x00010000 /* Data Addr Compare 2 Write Event */ |
228 | #define DBSR_RET 0x00008000 /* Return Debug Event */ | ||
229 | #define DBSR_CIRPT 0x00000040 /* Critical Interrupt Taken Event */ | ||
230 | #define DBSR_CRET 0x00000020 /* Critical Return Debug Event */ | ||
222 | #endif | 231 | #endif |
223 | #ifdef CONFIG_40x | 232 | #ifdef CONFIG_40x |
224 | #define DBSR_IC 0x80000000 /* Instruction Completion */ | 233 | #define DBSR_IC 0x80000000 /* Instruction Completion */ |
225 | #define DBSR_BT 0x40000000 /* Branch taken */ | 234 | #define DBSR_BT 0x40000000 /* Branch taken */ |
235 | #define DBSR_IRPT 0x20000000 /* Exception Debug Event */ | ||
226 | #define DBSR_TIE 0x10000000 /* Trap Instruction debug Event */ | 236 | #define DBSR_TIE 0x10000000 /* Trap Instruction debug Event */ |
227 | #define DBSR_IAC1 0x04000000 /* Instruction Address Compare 1 Event */ | 237 | #define DBSR_IAC1 0x04000000 /* Instruction Address Compare 1 Event */ |
228 | #define DBSR_IAC2 0x02000000 /* Instruction Address Compare 2 Event */ | 238 | #define DBSR_IAC2 0x02000000 /* Instruction Address Compare 2 Event */ |
@@ -253,6 +263,7 @@ | |||
253 | #define ESR_BO 0x00020000 /* Byte Ordering */ | 263 | #define ESR_BO 0x00020000 /* Byte Ordering */ |
254 | 264 | ||
255 | /* Bit definitions related to the DBCR0. */ | 265 | /* Bit definitions related to the DBCR0. */ |
266 | #if defined(CONFIG_40x) | ||
256 | #define DBCR0_EDM 0x80000000 /* External Debug Mode */ | 267 | #define DBCR0_EDM 0x80000000 /* External Debug Mode */ |
257 | #define DBCR0_IDM 0x40000000 /* Internal Debug Mode */ | 268 | #define DBCR0_IDM 0x40000000 /* Internal Debug Mode */ |
258 | #define DBCR0_RST 0x30000000 /* all the bits in the RST field */ | 269 | #define DBCR0_RST 0x30000000 /* all the bits in the RST field */ |
@@ -261,20 +272,69 @@ | |||
261 | #define DBCR0_RST_CORE 0x10000000 /* Core Reset */ | 272 | #define DBCR0_RST_CORE 0x10000000 /* Core Reset */ |
262 | #define DBCR0_RST_NONE 0x00000000 /* No Reset */ | 273 | #define DBCR0_RST_NONE 0x00000000 /* No Reset */ |
263 | #define DBCR0_IC 0x08000000 /* Instruction Completion */ | 274 | #define DBCR0_IC 0x08000000 /* Instruction Completion */ |
275 | #define DBCR0_ICMP DBCR0_IC | ||
264 | #define DBCR0_BT 0x04000000 /* Branch Taken */ | 276 | #define DBCR0_BT 0x04000000 /* Branch Taken */ |
277 | #define DBCR0_BRT DBCR0_BT | ||
265 | #define DBCR0_EDE 0x02000000 /* Exception Debug Event */ | 278 | #define DBCR0_EDE 0x02000000 /* Exception Debug Event */ |
279 | #define DBCR0_IRPT DBCR0_EDE | ||
266 | #define DBCR0_TDE 0x01000000 /* TRAP Debug Event */ | 280 | #define DBCR0_TDE 0x01000000 /* TRAP Debug Event */ |
267 | #define DBCR0_IA1 0x00800000 /* Instr Addr compare 1 enable */ | 281 | #define DBCR0_IA1 0x00800000 /* Instr Addr compare 1 enable */ |
282 | #define DBCR0_IAC1 DBCR0_IA1 | ||
268 | #define DBCR0_IA2 0x00400000 /* Instr Addr compare 2 enable */ | 283 | #define DBCR0_IA2 0x00400000 /* Instr Addr compare 2 enable */ |
284 | #define DBCR0_IAC2 DBCR0_IA2 | ||
269 | #define DBCR0_IA12 0x00200000 /* Instr Addr 1-2 range enable */ | 285 | #define DBCR0_IA12 0x00200000 /* Instr Addr 1-2 range enable */ |
270 | #define DBCR0_IA12X 0x00100000 /* Instr Addr 1-2 range eXclusive */ | 286 | #define DBCR0_IA12X 0x00100000 /* Instr Addr 1-2 range eXclusive */ |
271 | #define DBCR0_IA3 0x00080000 /* Instr Addr compare 3 enable */ | 287 | #define DBCR0_IA3 0x00080000 /* Instr Addr compare 3 enable */ |
288 | #define DBCR0_IAC3 DBCR0_IA3 | ||
272 | #define DBCR0_IA4 0x00040000 /* Instr Addr compare 4 enable */ | 289 | #define DBCR0_IA4 0x00040000 /* Instr Addr compare 4 enable */ |
290 | #define DBCR0_IAC4 DBCR0_IA4 | ||
273 | #define DBCR0_IA34 0x00020000 /* Instr Addr 3-4 range Enable */ | 291 | #define DBCR0_IA34 0x00020000 /* Instr Addr 3-4 range Enable */ |
274 | #define DBCR0_IA34X 0x00010000 /* Instr Addr 3-4 range eXclusive */ | 292 | #define DBCR0_IA34X 0x00010000 /* Instr Addr 3-4 range eXclusive */ |
275 | #define DBCR0_IA12T 0x00008000 /* Instr Addr 1-2 range Toggle */ | 293 | #define DBCR0_IA12T 0x00008000 /* Instr Addr 1-2 range Toggle */ |
276 | #define DBCR0_IA34T 0x00004000 /* Instr Addr 3-4 range Toggle */ | 294 | #define DBCR0_IA34T 0x00004000 /* Instr Addr 3-4 range Toggle */ |
277 | #define DBCR0_FT 0x00000001 /* Freeze Timers on debug event */ | 295 | #define DBCR0_FT 0x00000001 /* Freeze Timers on debug event */ |
296 | #elif defined(CONFIG_BOOKE) | ||
297 | #define DBCR0_EDM 0x80000000 /* External Debug Mode */ | ||
298 | #define DBCR0_IDM 0x40000000 /* Internal Debug Mode */ | ||
299 | #define DBCR0_RST 0x30000000 /* all the bits in the RST field */ | ||
300 | /* DBCR0_RST_* is 44x specific and not followed in fsl booke */ | ||
301 | #define DBCR0_RST_SYSTEM 0x30000000 /* System Reset */ | ||
302 | #define DBCR0_RST_CHIP 0x20000000 /* Chip Reset */ | ||
303 | #define DBCR0_RST_CORE 0x10000000 /* Core Reset */ | ||
304 | #define DBCR0_RST_NONE 0x00000000 /* No Reset */ | ||
305 | #define DBCR0_ICMP 0x08000000 /* Instruction Completion */ | ||
306 | #define DBCR0_IC DBCR0_ICMP | ||
307 | #define DBCR0_BRT 0x04000000 /* Branch Taken */ | ||
308 | #define DBCR0_BT DBCR0_BRT | ||
309 | #define DBCR0_IRPT 0x02000000 /* Exception Debug Event */ | ||
310 | #define DBCR0_TDE 0x01000000 /* TRAP Debug Event */ | ||
311 | #define DBCR0_TIE DBCR0_TDE | ||
312 | #define DBCR0_IAC1 0x00800000 /* Instr Addr compare 1 enable */ | ||
313 | #define DBCR0_IAC2 0x00400000 /* Instr Addr compare 2 enable */ | ||
314 | #define DBCR0_IAC3 0x00200000 /* Instr Addr compare 3 enable */ | ||
315 | #define DBCR0_IAC4 0x00100000 /* Instr Addr compare 4 enable */ | ||
316 | #define DBCR0_DAC1R 0x00080000 /* DAC 1 Read enable */ | ||
317 | #define DBCR0_DAC1W 0x00040000 /* DAC 1 Write enable */ | ||
318 | #define DBCR0_DAC2R 0x00020000 /* DAC 2 Read enable */ | ||
319 | #define DBCR0_DAC2W 0x00010000 /* DAC 2 Write enable */ | ||
320 | #define DBCR0_RET 0x00008000 /* Return Debug Event */ | ||
321 | #define DBCR0_CIRPT 0x00000040 /* Critical Interrupt Taken Event */ | ||
322 | #define DBCR0_CRET 0x00000020 /* Critical Return Debug Event */ | ||
323 | #define DBCR0_FT 0x00000001 /* Freeze Timers on debug event */ | ||
324 | |||
325 | /* Bit definitions related to the DBCR1. */ | ||
326 | #define DBCR1_IAC12M 0x00800000 /* Instr Addr 1-2 range enable */ | ||
327 | #define DBCR1_IAC12MX 0x00C00000 /* Instr Addr 1-2 range eXclusive */ | ||
328 | #define DBCR1_IAC12AT 0x00010000 /* Instr Addr 1-2 range Toggle */ | ||
329 | #define DBCR1_IAC34M 0x00000080 /* Instr Addr 3-4 range enable */ | ||
330 | #define DBCR1_IAC34MX 0x000000C0 /* Instr Addr 3-4 range eXclusive */ | ||
331 | #define DBCR1_IAC34AT 0x00000001 /* Instr Addr 3-4 range Toggle */ | ||
332 | |||
333 | /* Bit definitions related to the DBCR2. */ | ||
334 | #define DBCR2_DAC12M 0x00800000 /* DAC 1-2 range enable */ | ||
335 | #define DBCR2_DAC12MX 0x00C00000 /* DAC 1-2 range eXclusive */ | ||
336 | #define DBCR2_DAC12A 0x00200000 /* DAC 1-2 Asynchronous */ | ||
337 | #endif | ||
278 | 338 | ||
279 | /* Bit definitions related to the TCR. */ | 339 | /* Bit definitions related to the TCR. */ |
280 | #define TCR_WP(x) (((x)&0x3)<<30) /* WDT Period */ | 340 | #define TCR_WP(x) (((x)&0x3)<<30) /* WDT Period */ |
@@ -336,6 +396,20 @@ | |||
336 | #define L1CSR1_ICFI 0x00000002 /* Instr Cache Flash Invalidate */ | 396 | #define L1CSR1_ICFI 0x00000002 /* Instr Cache Flash Invalidate */ |
337 | #define L1CSR1_ICE 0x00000001 /* Instr Cache Enable */ | 397 | #define L1CSR1_ICE 0x00000001 /* Instr Cache Enable */ |
338 | 398 | ||
399 | /* Bit definitions for L2CSR0. */ | ||
400 | #define L2CSR0_L2E 0x80000000 /* L2 Cache Enable */ | ||
401 | #define L2CSR0_L2PE 0x40000000 /* L2 Cache Parity/ECC Enable */ | ||
402 | #define L2CSR0_L2WP 0x1c000000 /* L2 I/D Way Partioning */ | ||
403 | #define L2CSR0_L2CM 0x03000000 /* L2 Cache Coherency Mode */ | ||
404 | #define L2CSR0_L2FI 0x00200000 /* L2 Cache Flash Invalidate */ | ||
405 | #define L2CSR0_L2IO 0x00100000 /* L2 Cache Instruction Only */ | ||
406 | #define L2CSR0_L2DO 0x00010000 /* L2 Cache Data Only */ | ||
407 | #define L2CSR0_L2REP 0x00003000 /* L2 Line Replacement Algo */ | ||
408 | #define L2CSR0_L2FL 0x00000800 /* L2 Cache Flush */ | ||
409 | #define L2CSR0_L2LFC 0x00000400 /* L2 Cache Lock Flash Clear */ | ||
410 | #define L2CSR0_L2LOA 0x00000080 /* L2 Cache Lock Overflow Allocate */ | ||
411 | #define L2CSR0_L2LO 0x00000020 /* L2 Cache Lock Overflow */ | ||
412 | |||
339 | /* Bit definitions for SGR. */ | 413 | /* Bit definitions for SGR. */ |
340 | #define SGR_NORMAL 0 /* Speculative fetching allowed. */ | 414 | #define SGR_NORMAL 0 /* Speculative fetching allowed. */ |
341 | #define SGR_GUARDED 1 /* Speculative fetching disallowed. */ | 415 | #define SGR_GUARDED 1 /* Speculative fetching disallowed. */ |
diff --git a/include/asm-powerpc/synch.h b/include/asm-powerpc/synch.h index 2cda3c38a9fa..42a1ef590690 100644 --- a/include/asm-powerpc/synch.h +++ b/include/asm-powerpc/synch.h | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | #include <linux/stringify.h> | 5 | #include <linux/stringify.h> |
6 | 6 | ||
7 | #ifdef __powerpc64__ | 7 | #if defined(__powerpc64__) || defined(CONFIG_PPC_E500MC) |
8 | #define __SUBARCH_HAS_LWSYNC | 8 | #define __SUBARCH_HAS_LWSYNC |
9 | #endif | 9 | #endif |
10 | 10 | ||