diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2012-01-11 09:42:10 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-01-11 09:42:10 -0500 |
commit | 7a5c3b8c5c27211846efe7029a3d2ee7087425e3 (patch) | |
tree | 92530366912b64c2826a882a79ebcfbe6ec28d59 /arch/mips/include | |
parent | 39b741431af7f6f46b2e0e7f7f13ea2351fb4a5f (diff) | |
parent | 2af99920d56debcf879ac71a1934e8fcccdc713e (diff) |
Merge branch 'next/alchemy' into mips-for-linux-next
Diffstat (limited to 'arch/mips/include')
18 files changed, 634 insertions, 472 deletions
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h index 2f7f41873f24..79e4a0dad0d9 100644 --- a/arch/mips/include/asm/cpu.h +++ b/arch/mips/include/asm/cpu.h | |||
@@ -169,6 +169,7 @@ | |||
169 | #define PRID_IMP_NETLOGIC_XLS412B 0x4c00 | 169 | #define PRID_IMP_NETLOGIC_XLS412B 0x4c00 |
170 | #define PRID_IMP_NETLOGIC_XLS408B 0x4e00 | 170 | #define PRID_IMP_NETLOGIC_XLS408B 0x4e00 |
171 | #define PRID_IMP_NETLOGIC_XLS404B 0x4f00 | 171 | #define PRID_IMP_NETLOGIC_XLS404B 0x4f00 |
172 | #define PRID_IMP_NETLOGIC_AU13XX 0x8000 | ||
172 | 173 | ||
173 | /* | 174 | /* |
174 | * Definitions for 7:0 on legacy processors | 175 | * Definitions for 7:0 on legacy processors |
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h index de24ec57dd2f..569828d3ccab 100644 --- a/arch/mips/include/asm/mach-au1x00/au1000.h +++ b/arch/mips/include/asm/mach-au1x00/au1000.h | |||
@@ -136,6 +136,7 @@ static inline int au1xxx_cpu_needs_config_od(void) | |||
136 | #define ALCHEMY_CPU_AU1100 2 | 136 | #define ALCHEMY_CPU_AU1100 2 |
137 | #define ALCHEMY_CPU_AU1550 3 | 137 | #define ALCHEMY_CPU_AU1550 3 |
138 | #define ALCHEMY_CPU_AU1200 4 | 138 | #define ALCHEMY_CPU_AU1200 4 |
139 | #define ALCHEMY_CPU_AU1300 5 | ||
139 | 140 | ||
140 | static inline int alchemy_get_cputype(void) | 141 | static inline int alchemy_get_cputype(void) |
141 | { | 142 | { |
@@ -156,6 +157,9 @@ static inline int alchemy_get_cputype(void) | |||
156 | case 0x05030000: | 157 | case 0x05030000: |
157 | return ALCHEMY_CPU_AU1200; | 158 | return ALCHEMY_CPU_AU1200; |
158 | break; | 159 | break; |
160 | case 0x800c0000: | ||
161 | return ALCHEMY_CPU_AU1300; | ||
162 | break; | ||
159 | } | 163 | } |
160 | 164 | ||
161 | return ALCHEMY_CPU_UNKNOWN; | 165 | return ALCHEMY_CPU_UNKNOWN; |
@@ -166,6 +170,7 @@ static inline int alchemy_get_uarts(int type) | |||
166 | { | 170 | { |
167 | switch (type) { | 171 | switch (type) { |
168 | case ALCHEMY_CPU_AU1000: | 172 | case ALCHEMY_CPU_AU1000: |
173 | case ALCHEMY_CPU_AU1300: | ||
169 | return 4; | 174 | return 4; |
170 | case ALCHEMY_CPU_AU1500: | 175 | case ALCHEMY_CPU_AU1500: |
171 | case ALCHEMY_CPU_AU1200: | 176 | case ALCHEMY_CPU_AU1200: |
@@ -243,6 +248,7 @@ extern unsigned long au1xxx_calc_clock(void); | |||
243 | /* PM: arch/mips/alchemy/common/sleeper.S, power.c, irq.c */ | 248 | /* PM: arch/mips/alchemy/common/sleeper.S, power.c, irq.c */ |
244 | void alchemy_sleep_au1000(void); | 249 | void alchemy_sleep_au1000(void); |
245 | void alchemy_sleep_au1550(void); | 250 | void alchemy_sleep_au1550(void); |
251 | void alchemy_sleep_au1300(void); | ||
246 | void au_sleep(void); | 252 | void au_sleep(void); |
247 | 253 | ||
248 | /* USB: drivers/usb/host/alchemy-common.c */ | 254 | /* USB: drivers/usb/host/alchemy-common.c */ |
@@ -251,6 +257,7 @@ enum alchemy_usb_block { | |||
251 | ALCHEMY_USB_UDC0, | 257 | ALCHEMY_USB_UDC0, |
252 | ALCHEMY_USB_EHCI0, | 258 | ALCHEMY_USB_EHCI0, |
253 | ALCHEMY_USB_OTG0, | 259 | ALCHEMY_USB_OTG0, |
260 | ALCHEMY_USB_OHCI1, | ||
254 | }; | 261 | }; |
255 | int alchemy_usb_control(int block, int enable); | 262 | int alchemy_usb_control(int block, int enable); |
256 | 263 | ||
@@ -263,14 +270,92 @@ struct alchemy_pci_platdata { | |||
263 | unsigned long pci_cfg_clr; | 270 | unsigned long pci_cfg_clr; |
264 | }; | 271 | }; |
265 | 272 | ||
266 | /* SOC Interrupt numbers */ | 273 | /* Multifunction pins: Each of these pins can either be assigned to the |
274 | * GPIO controller or a on-chip peripheral. | ||
275 | * Call "au1300_pinfunc_to_dev()" or "au1300_pinfunc_to_gpio()" to | ||
276 | * assign one of these to either the GPIO controller or the device. | ||
277 | */ | ||
278 | enum au1300_multifunc_pins { | ||
279 | /* wake-from-str pins 0-3 */ | ||
280 | AU1300_PIN_WAKE0 = 0, AU1300_PIN_WAKE1, AU1300_PIN_WAKE2, | ||
281 | AU1300_PIN_WAKE3, | ||
282 | /* external clock sources for PSCs: 4-5 */ | ||
283 | AU1300_PIN_EXTCLK0, AU1300_PIN_EXTCLK1, | ||
284 | /* 8bit MMC interface on SD0: 6-9 */ | ||
285 | AU1300_PIN_SD0DAT4, AU1300_PIN_SD0DAT5, AU1300_PIN_SD0DAT6, | ||
286 | AU1300_PIN_SD0DAT7, | ||
287 | /* aux clk input for freqgen 3: 10 */ | ||
288 | AU1300_PIN_FG3AUX, | ||
289 | /* UART1 pins: 11-18 */ | ||
290 | AU1300_PIN_U1RI, AU1300_PIN_U1DCD, AU1300_PIN_U1DSR, | ||
291 | AU1300_PIN_U1CTS, AU1300_PIN_U1RTS, AU1300_PIN_U1DTR, | ||
292 | AU1300_PIN_U1RX, AU1300_PIN_U1TX, | ||
293 | /* UART0 pins: 19-24 */ | ||
294 | AU1300_PIN_U0RI, AU1300_PIN_U0DCD, AU1300_PIN_U0DSR, | ||
295 | AU1300_PIN_U0CTS, AU1300_PIN_U0RTS, AU1300_PIN_U0DTR, | ||
296 | /* UART2: 25-26 */ | ||
297 | AU1300_PIN_U2RX, AU1300_PIN_U2TX, | ||
298 | /* UART3: 27-28 */ | ||
299 | AU1300_PIN_U3RX, AU1300_PIN_U3TX, | ||
300 | /* LCD controller PWMs, ext pixclock: 29-31 */ | ||
301 | AU1300_PIN_LCDPWM0, AU1300_PIN_LCDPWM1, AU1300_PIN_LCDCLKIN, | ||
302 | /* SD1 interface: 32-37 */ | ||
303 | AU1300_PIN_SD1DAT0, AU1300_PIN_SD1DAT1, AU1300_PIN_SD1DAT2, | ||
304 | AU1300_PIN_SD1DAT3, AU1300_PIN_SD1CMD, AU1300_PIN_SD1CLK, | ||
305 | /* SD2 interface: 38-43 */ | ||
306 | AU1300_PIN_SD2DAT0, AU1300_PIN_SD2DAT1, AU1300_PIN_SD2DAT2, | ||
307 | AU1300_PIN_SD2DAT3, AU1300_PIN_SD2CMD, AU1300_PIN_SD2CLK, | ||
308 | /* PSC0/1 clocks: 44-45 */ | ||
309 | AU1300_PIN_PSC0CLK, AU1300_PIN_PSC1CLK, | ||
310 | /* PSCs: 46-49/50-53/54-57/58-61 */ | ||
311 | AU1300_PIN_PSC0SYNC0, AU1300_PIN_PSC0SYNC1, AU1300_PIN_PSC0D0, | ||
312 | AU1300_PIN_PSC0D1, | ||
313 | AU1300_PIN_PSC1SYNC0, AU1300_PIN_PSC1SYNC1, AU1300_PIN_PSC1D0, | ||
314 | AU1300_PIN_PSC1D1, | ||
315 | AU1300_PIN_PSC2SYNC0, AU1300_PIN_PSC2SYNC1, AU1300_PIN_PSC2D0, | ||
316 | AU1300_PIN_PSC2D1, | ||
317 | AU1300_PIN_PSC3SYNC0, AU1300_PIN_PSC3SYNC1, AU1300_PIN_PSC3D0, | ||
318 | AU1300_PIN_PSC3D1, | ||
319 | /* PCMCIA interface: 62-70 */ | ||
320 | AU1300_PIN_PCE2, AU1300_PIN_PCE1, AU1300_PIN_PIOS16, | ||
321 | AU1300_PIN_PIOR, AU1300_PIN_PWE, AU1300_PIN_PWAIT, | ||
322 | AU1300_PIN_PREG, AU1300_PIN_POE, AU1300_PIN_PIOW, | ||
323 | /* camera interface H/V sync inputs: 71-72 */ | ||
324 | AU1300_PIN_CIMLS, AU1300_PIN_CIMFS, | ||
325 | /* PSC2/3 clocks: 73-74 */ | ||
326 | AU1300_PIN_PSC2CLK, AU1300_PIN_PSC3CLK, | ||
327 | }; | ||
328 | |||
329 | /* GPIC (Au1300) pin management: arch/mips/alchemy/common/gpioint.c */ | ||
330 | extern void au1300_pinfunc_to_gpio(enum au1300_multifunc_pins gpio); | ||
331 | extern void au1300_pinfunc_to_dev(enum au1300_multifunc_pins gpio); | ||
332 | extern void au1300_set_irq_priority(unsigned int irq, int p); | ||
333 | extern void au1300_set_dbdma_gpio(int dchan, unsigned int gpio); | ||
334 | |||
335 | /* Au1300 allows to disconnect certain blocks from internal power supply */ | ||
336 | enum au1300_vss_block { | ||
337 | AU1300_VSS_MPE = 0, | ||
338 | AU1300_VSS_BSA, | ||
339 | AU1300_VSS_GPE, | ||
340 | AU1300_VSS_MGP, | ||
341 | }; | ||
267 | 342 | ||
343 | extern void au1300_vss_block_control(int block, int enable); | ||
344 | |||
345 | |||
346 | /* SOC Interrupt numbers */ | ||
347 | /* Au1000-style (IC0/1): 2 controllers with 32 sources each */ | ||
268 | #define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8) | 348 | #define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8) |
269 | #define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31) | 349 | #define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31) |
270 | #define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_LAST + 1) | 350 | #define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_LAST + 1) |
271 | #define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31) | 351 | #define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31) |
272 | #define AU1000_MAX_INTR AU1000_INTC1_INT_LAST | 352 | #define AU1000_MAX_INTR AU1000_INTC1_INT_LAST |
273 | 353 | ||
354 | /* Au1300-style (GPIC): 1 controller with up to 128 sources */ | ||
355 | #define ALCHEMY_GPIC_INT_BASE (MIPS_CPU_IRQ_BASE + 8) | ||
356 | #define ALCHEMY_GPIC_INT_NUM 128 | ||
357 | #define ALCHEMY_GPIC_INT_LAST (ALCHEMY_GPIC_INT_BASE + ALCHEMY_GPIC_INT_NUM - 1) | ||
358 | |||
274 | enum soc_au1000_ints { | 359 | enum soc_au1000_ints { |
275 | AU1000_FIRST_INT = AU1000_INTC0_INT_BASE, | 360 | AU1000_FIRST_INT = AU1000_INTC0_INT_BASE, |
276 | AU1000_UART0_INT = AU1000_FIRST_INT, | 361 | AU1000_UART0_INT = AU1000_FIRST_INT, |
@@ -591,24 +676,77 @@ enum soc_au1200_ints { | |||
591 | 676 | ||
592 | #endif /* !defined (_LANGUAGE_ASSEMBLY) */ | 677 | #endif /* !defined (_LANGUAGE_ASSEMBLY) */ |
593 | 678 | ||
679 | /* Au1300 peripheral interrupt numbers */ | ||
680 | #define AU1300_FIRST_INT (ALCHEMY_GPIC_INT_BASE) | ||
681 | #define AU1300_UART1_INT (AU1300_FIRST_INT + 17) | ||
682 | #define AU1300_UART2_INT (AU1300_FIRST_INT + 25) | ||
683 | #define AU1300_UART3_INT (AU1300_FIRST_INT + 27) | ||
684 | #define AU1300_SD1_INT (AU1300_FIRST_INT + 32) | ||
685 | #define AU1300_SD2_INT (AU1300_FIRST_INT + 38) | ||
686 | #define AU1300_PSC0_INT (AU1300_FIRST_INT + 48) | ||
687 | #define AU1300_PSC1_INT (AU1300_FIRST_INT + 52) | ||
688 | #define AU1300_PSC2_INT (AU1300_FIRST_INT + 56) | ||
689 | #define AU1300_PSC3_INT (AU1300_FIRST_INT + 60) | ||
690 | #define AU1300_NAND_INT (AU1300_FIRST_INT + 62) | ||
691 | #define AU1300_DDMA_INT (AU1300_FIRST_INT + 75) | ||
692 | #define AU1300_MMU_INT (AU1300_FIRST_INT + 76) | ||
693 | #define AU1300_MPU_INT (AU1300_FIRST_INT + 77) | ||
694 | #define AU1300_GPU_INT (AU1300_FIRST_INT + 78) | ||
695 | #define AU1300_UDMA_INT (AU1300_FIRST_INT + 79) | ||
696 | #define AU1300_TOY_INT (AU1300_FIRST_INT + 80) | ||
697 | #define AU1300_TOY_MATCH0_INT (AU1300_FIRST_INT + 81) | ||
698 | #define AU1300_TOY_MATCH1_INT (AU1300_FIRST_INT + 82) | ||
699 | #define AU1300_TOY_MATCH2_INT (AU1300_FIRST_INT + 83) | ||
700 | #define AU1300_RTC_INT (AU1300_FIRST_INT + 84) | ||
701 | #define AU1300_RTC_MATCH0_INT (AU1300_FIRST_INT + 85) | ||
702 | #define AU1300_RTC_MATCH1_INT (AU1300_FIRST_INT + 86) | ||
703 | #define AU1300_RTC_MATCH2_INT (AU1300_FIRST_INT + 87) | ||
704 | #define AU1300_UART0_INT (AU1300_FIRST_INT + 88) | ||
705 | #define AU1300_SD0_INT (AU1300_FIRST_INT + 89) | ||
706 | #define AU1300_USB_INT (AU1300_FIRST_INT + 90) | ||
707 | #define AU1300_LCD_INT (AU1300_FIRST_INT + 91) | ||
708 | #define AU1300_BSA_INT (AU1300_FIRST_INT + 92) | ||
709 | #define AU1300_MPE_INT (AU1300_FIRST_INT + 93) | ||
710 | #define AU1300_ITE_INT (AU1300_FIRST_INT + 94) | ||
711 | #define AU1300_AES_INT (AU1300_FIRST_INT + 95) | ||
712 | #define AU1300_CIM_INT (AU1300_FIRST_INT + 96) | ||
713 | |||
714 | /**********************************************************************/ | ||
715 | |||
594 | /* | 716 | /* |
595 | * Physical base addresses for integrated peripherals | 717 | * Physical base addresses for integrated peripherals |
596 | * 0..au1000 1..au1500 2..au1100 3..au1550 4..au1200 | 718 | * 0..au1000 1..au1500 2..au1100 3..au1550 4..au1200 5..au1300 |
597 | */ | 719 | */ |
598 | 720 | ||
599 | #define AU1000_AC97_PHYS_ADDR 0x10000000 /* 012 */ | 721 | #define AU1000_AC97_PHYS_ADDR 0x10000000 /* 012 */ |
722 | #define AU1300_ROM_PHYS_ADDR 0x10000000 /* 5 */ | ||
723 | #define AU1300_OTP_PHYS_ADDR 0x10002000 /* 5 */ | ||
724 | #define AU1300_VSS_PHYS_ADDR 0x10003000 /* 5 */ | ||
725 | #define AU1300_UART0_PHYS_ADDR 0x10100000 /* 5 */ | ||
726 | #define AU1300_UART1_PHYS_ADDR 0x10101000 /* 5 */ | ||
727 | #define AU1300_UART2_PHYS_ADDR 0x10102000 /* 5 */ | ||
728 | #define AU1300_UART3_PHYS_ADDR 0x10103000 /* 5 */ | ||
600 | #define AU1000_USB_OHCI_PHYS_ADDR 0x10100000 /* 012 */ | 729 | #define AU1000_USB_OHCI_PHYS_ADDR 0x10100000 /* 012 */ |
601 | #define AU1000_USB_UDC_PHYS_ADDR 0x10200000 /* 0123 */ | 730 | #define AU1000_USB_UDC_PHYS_ADDR 0x10200000 /* 0123 */ |
731 | #define AU1300_GPIC_PHYS_ADDR 0x10200000 /* 5 */ | ||
602 | #define AU1000_IRDA_PHYS_ADDR 0x10300000 /* 02 */ | 732 | #define AU1000_IRDA_PHYS_ADDR 0x10300000 /* 02 */ |
603 | #define AU1200_AES_PHYS_ADDR 0x10300000 /* 4 */ | 733 | #define AU1200_AES_PHYS_ADDR 0x10300000 /* 45 */ |
604 | #define AU1000_IC0_PHYS_ADDR 0x10400000 /* 01234 */ | 734 | #define AU1000_IC0_PHYS_ADDR 0x10400000 /* 01234 */ |
735 | #define AU1300_GPU_PHYS_ADDR 0x10500000 /* 5 */ | ||
605 | #define AU1000_MAC0_PHYS_ADDR 0x10500000 /* 023 */ | 736 | #define AU1000_MAC0_PHYS_ADDR 0x10500000 /* 023 */ |
606 | #define AU1000_MAC1_PHYS_ADDR 0x10510000 /* 023 */ | 737 | #define AU1000_MAC1_PHYS_ADDR 0x10510000 /* 023 */ |
607 | #define AU1000_MACEN_PHYS_ADDR 0x10520000 /* 023 */ | 738 | #define AU1000_MACEN_PHYS_ADDR 0x10520000 /* 023 */ |
608 | #define AU1100_SD0_PHYS_ADDR 0x10600000 /* 24 */ | 739 | #define AU1100_SD0_PHYS_ADDR 0x10600000 /* 245 */ |
740 | #define AU1300_SD1_PHYS_ADDR 0x10601000 /* 5 */ | ||
741 | #define AU1300_SD2_PHYS_ADDR 0x10602000 /* 5 */ | ||
609 | #define AU1100_SD1_PHYS_ADDR 0x10680000 /* 24 */ | 742 | #define AU1100_SD1_PHYS_ADDR 0x10680000 /* 24 */ |
743 | #define AU1300_SYS_PHYS_ADDR 0x10900000 /* 5 */ | ||
610 | #define AU1550_PSC2_PHYS_ADDR 0x10A00000 /* 3 */ | 744 | #define AU1550_PSC2_PHYS_ADDR 0x10A00000 /* 3 */ |
611 | #define AU1550_PSC3_PHYS_ADDR 0x10B00000 /* 3 */ | 745 | #define AU1550_PSC3_PHYS_ADDR 0x10B00000 /* 3 */ |
746 | #define AU1300_PSC0_PHYS_ADDR 0x10A00000 /* 5 */ | ||
747 | #define AU1300_PSC1_PHYS_ADDR 0x10A01000 /* 5 */ | ||
748 | #define AU1300_PSC2_PHYS_ADDR 0x10A02000 /* 5 */ | ||
749 | #define AU1300_PSC3_PHYS_ADDR 0x10A03000 /* 5 */ | ||
612 | #define AU1000_I2S_PHYS_ADDR 0x11000000 /* 02 */ | 750 | #define AU1000_I2S_PHYS_ADDR 0x11000000 /* 02 */ |
613 | #define AU1500_MAC0_PHYS_ADDR 0x11500000 /* 1 */ | 751 | #define AU1500_MAC0_PHYS_ADDR 0x11500000 /* 1 */ |
614 | #define AU1500_MAC1_PHYS_ADDR 0x11510000 /* 1 */ | 752 | #define AU1500_MAC1_PHYS_ADDR 0x11510000 /* 1 */ |
@@ -622,37 +760,96 @@ enum soc_au1200_ints { | |||
622 | #define AU1000_SSI1_PHYS_ADDR 0x11680000 /* 02 */ | 760 | #define AU1000_SSI1_PHYS_ADDR 0x11680000 /* 02 */ |
623 | #define AU1500_GPIO2_PHYS_ADDR 0x11700000 /* 1234 */ | 761 | #define AU1500_GPIO2_PHYS_ADDR 0x11700000 /* 1234 */ |
624 | #define AU1000_IC1_PHYS_ADDR 0x11800000 /* 01234 */ | 762 | #define AU1000_IC1_PHYS_ADDR 0x11800000 /* 01234 */ |
625 | #define AU1000_SYS_PHYS_ADDR 0x11900000 /* 01234 */ | 763 | #define AU1000_SYS_PHYS_ADDR 0x11900000 /* 012345 */ |
626 | #define AU1550_PSC0_PHYS_ADDR 0x11A00000 /* 34 */ | 764 | #define AU1550_PSC0_PHYS_ADDR 0x11A00000 /* 34 */ |
627 | #define AU1550_PSC1_PHYS_ADDR 0x11B00000 /* 34 */ | 765 | #define AU1550_PSC1_PHYS_ADDR 0x11B00000 /* 34 */ |
628 | #define AU1000_MEM_PHYS_ADDR 0x14000000 /* 01234 */ | 766 | #define AU1000_MEM_PHYS_ADDR 0x14000000 /* 01234 */ |
629 | #define AU1000_STATIC_MEM_PHYS_ADDR 0x14001000 /* 01234 */ | 767 | #define AU1000_STATIC_MEM_PHYS_ADDR 0x14001000 /* 01234 */ |
768 | #define AU1300_UDMA_PHYS_ADDR 0x14001800 /* 5 */ | ||
630 | #define AU1000_DMA_PHYS_ADDR 0x14002000 /* 012 */ | 769 | #define AU1000_DMA_PHYS_ADDR 0x14002000 /* 012 */ |
631 | #define AU1550_DBDMA_PHYS_ADDR 0x14002000 /* 34 */ | 770 | #define AU1550_DBDMA_PHYS_ADDR 0x14002000 /* 345 */ |
632 | #define AU1550_DBDMA_CONF_PHYS_ADDR 0x14003000 /* 34 */ | 771 | #define AU1550_DBDMA_CONF_PHYS_ADDR 0x14003000 /* 345 */ |
633 | #define AU1000_MACDMA0_PHYS_ADDR 0x14004000 /* 0123 */ | 772 | #define AU1000_MACDMA0_PHYS_ADDR 0x14004000 /* 0123 */ |
634 | #define AU1000_MACDMA1_PHYS_ADDR 0x14004200 /* 0123 */ | 773 | #define AU1000_MACDMA1_PHYS_ADDR 0x14004200 /* 0123 */ |
635 | #define AU1200_CIM_PHYS_ADDR 0x14004000 /* 4 */ | 774 | #define AU1200_CIM_PHYS_ADDR 0x14004000 /* 45 */ |
636 | #define AU1500_PCI_PHYS_ADDR 0x14005000 /* 13 */ | 775 | #define AU1500_PCI_PHYS_ADDR 0x14005000 /* 13 */ |
637 | #define AU1550_PE_PHYS_ADDR 0x14008000 /* 3 */ | 776 | #define AU1550_PE_PHYS_ADDR 0x14008000 /* 3 */ |
638 | #define AU1200_MAEBE_PHYS_ADDR 0x14010000 /* 4 */ | 777 | #define AU1200_MAEBE_PHYS_ADDR 0x14010000 /* 4 */ |
639 | #define AU1200_MAEFE_PHYS_ADDR 0x14012000 /* 4 */ | 778 | #define AU1200_MAEFE_PHYS_ADDR 0x14012000 /* 4 */ |
779 | #define AU1300_MAEITE_PHYS_ADDR 0x14010000 /* 5 */ | ||
780 | #define AU1300_MAEMPE_PHYS_ADDR 0x14014000 /* 5 */ | ||
640 | #define AU1550_USB_OHCI_PHYS_ADDR 0x14020000 /* 3 */ | 781 | #define AU1550_USB_OHCI_PHYS_ADDR 0x14020000 /* 3 */ |
641 | #define AU1200_USB_CTL_PHYS_ADDR 0x14020000 /* 4 */ | 782 | #define AU1200_USB_CTL_PHYS_ADDR 0x14020000 /* 4 */ |
642 | #define AU1200_USB_OTG_PHYS_ADDR 0x14020020 /* 4 */ | 783 | #define AU1200_USB_OTG_PHYS_ADDR 0x14020020 /* 4 */ |
643 | #define AU1200_USB_OHCI_PHYS_ADDR 0x14020100 /* 4 */ | 784 | #define AU1200_USB_OHCI_PHYS_ADDR 0x14020100 /* 4 */ |
644 | #define AU1200_USB_EHCI_PHYS_ADDR 0x14020200 /* 4 */ | 785 | #define AU1200_USB_EHCI_PHYS_ADDR 0x14020200 /* 4 */ |
645 | #define AU1200_USB_UDC_PHYS_ADDR 0x14022000 /* 4 */ | 786 | #define AU1200_USB_UDC_PHYS_ADDR 0x14022000 /* 4 */ |
787 | #define AU1300_USB_EHCI_PHYS_ADDR 0x14020000 /* 5 */ | ||
788 | #define AU1300_USB_OHCI0_PHYS_ADDR 0x14020400 /* 5 */ | ||
789 | #define AU1300_USB_OHCI1_PHYS_ADDR 0x14020800 /* 5 */ | ||
790 | #define AU1300_USB_CTL_PHYS_ADDR 0x14021000 /* 5 */ | ||
791 | #define AU1300_USB_OTG_PHYS_ADDR 0x14022000 /* 5 */ | ||
792 | #define AU1300_MAEBSA_PHYS_ADDR 0x14030000 /* 5 */ | ||
646 | #define AU1100_LCD_PHYS_ADDR 0x15000000 /* 2 */ | 793 | #define AU1100_LCD_PHYS_ADDR 0x15000000 /* 2 */ |
647 | #define AU1200_LCD_PHYS_ADDR 0x15000000 /* 4 */ | 794 | #define AU1200_LCD_PHYS_ADDR 0x15000000 /* 45 */ |
648 | #define AU1500_PCI_MEM_PHYS_ADDR 0x400000000ULL /* 13 */ | 795 | #define AU1500_PCI_MEM_PHYS_ADDR 0x400000000ULL /* 13 */ |
649 | #define AU1500_PCI_IO_PHYS_ADDR 0x500000000ULL /* 13 */ | 796 | #define AU1500_PCI_IO_PHYS_ADDR 0x500000000ULL /* 13 */ |
650 | #define AU1500_PCI_CONFIG0_PHYS_ADDR 0x600000000ULL /* 13 */ | 797 | #define AU1500_PCI_CONFIG0_PHYS_ADDR 0x600000000ULL /* 13 */ |
651 | #define AU1500_PCI_CONFIG1_PHYS_ADDR 0x680000000ULL /* 13 */ | 798 | #define AU1500_PCI_CONFIG1_PHYS_ADDR 0x680000000ULL /* 13 */ |
652 | #define AU1000_PCMCIA_IO_PHYS_ADDR 0xF00000000ULL /* 01234 */ | 799 | #define AU1000_PCMCIA_IO_PHYS_ADDR 0xF00000000ULL /* 012345 */ |
653 | #define AU1000_PCMCIA_ATTR_PHYS_ADDR 0xF40000000ULL /* 01234 */ | 800 | #define AU1000_PCMCIA_ATTR_PHYS_ADDR 0xF40000000ULL /* 012345 */ |
654 | #define AU1000_PCMCIA_MEM_PHYS_ADDR 0xF80000000ULL /* 01234 */ | 801 | #define AU1000_PCMCIA_MEM_PHYS_ADDR 0xF80000000ULL /* 012345 */ |
655 | 802 | ||
803 | /**********************************************************************/ | ||
804 | |||
805 | |||
806 | /* | ||
807 | * Au1300 GPIO+INT controller (GPIC) register offsets and bits | ||
808 | * Registers are 128bits (0x10 bytes), divided into 4 "banks". | ||
809 | */ | ||
810 | #define AU1300_GPIC_PINVAL 0x0000 | ||
811 | #define AU1300_GPIC_PINVALCLR 0x0010 | ||
812 | #define AU1300_GPIC_IPEND 0x0020 | ||
813 | #define AU1300_GPIC_PRIENC 0x0030 | ||
814 | #define AU1300_GPIC_IEN 0x0040 /* int_mask in manual */ | ||
815 | #define AU1300_GPIC_IDIS 0x0050 /* int_maskclr in manual */ | ||
816 | #define AU1300_GPIC_DMASEL 0x0060 | ||
817 | #define AU1300_GPIC_DEVSEL 0x0080 | ||
818 | #define AU1300_GPIC_DEVCLR 0x0090 | ||
819 | #define AU1300_GPIC_RSTVAL 0x00a0 | ||
820 | /* pin configuration space. one 32bit register for up to 128 IRQs */ | ||
821 | #define AU1300_GPIC_PINCFG 0x1000 | ||
822 | |||
823 | #define GPIC_GPIO_TO_BIT(gpio) \ | ||
824 | (1 << ((gpio) & 0x1f)) | ||
825 | |||
826 | #define GPIC_GPIO_BANKOFF(gpio) \ | ||
827 | (((gpio) >> 5) * 4) | ||
828 | |||
829 | /* Pin Control bits: who owns the pin, what does it do */ | ||
830 | #define GPIC_CFG_PC_GPIN 0 | ||
831 | #define GPIC_CFG_PC_DEV 1 | ||
832 | #define GPIC_CFG_PC_GPOLOW 2 | ||
833 | #define GPIC_CFG_PC_GPOHIGH 3 | ||
834 | #define GPIC_CFG_PC_MASK 3 | ||
835 | |||
836 | /* assign pin to MIPS IRQ line */ | ||
837 | #define GPIC_CFG_IL_SET(x) (((x) & 3) << 2) | ||
838 | #define GPIC_CFG_IL_MASK (3 << 2) | ||
839 | |||
840 | /* pin interrupt type setup */ | ||
841 | #define GPIC_CFG_IC_OFF (0 << 4) | ||
842 | #define GPIC_CFG_IC_LEVEL_LOW (1 << 4) | ||
843 | #define GPIC_CFG_IC_LEVEL_HIGH (2 << 4) | ||
844 | #define GPIC_CFG_IC_EDGE_FALL (5 << 4) | ||
845 | #define GPIC_CFG_IC_EDGE_RISE (6 << 4) | ||
846 | #define GPIC_CFG_IC_EDGE_BOTH (7 << 4) | ||
847 | #define GPIC_CFG_IC_MASK (7 << 4) | ||
848 | |||
849 | /* allow interrupt to wake cpu from 'wait' */ | ||
850 | #define GPIC_CFG_IDLEWAKE (1 << 7) | ||
851 | |||
852 | /***********************************************************************/ | ||
656 | 853 | ||
657 | /* Au1000 SDRAM memory controller register offsets */ | 854 | /* Au1000 SDRAM memory controller register offsets */ |
658 | #define AU1000_MEM_SDMODE0 0x0000 | 855 | #define AU1000_MEM_SDMODE0 0x0000 |
@@ -1068,44 +1265,20 @@ enum soc_au1200_ints { | |||
1068 | #define SSI_ENABLE_CD (1 << 1) | 1265 | #define SSI_ENABLE_CD (1 << 1) |
1069 | #define SSI_ENABLE_E (1 << 0) | 1266 | #define SSI_ENABLE_E (1 << 0) |
1070 | 1267 | ||
1071 | /* IrDA Controller */ | 1268 | |
1072 | #define IRDA_BASE 0xB0300000 | 1269 | /* |
1073 | #define IR_RING_PTR_STATUS (IRDA_BASE + 0x00) | 1270 | * The IrDA peripheral has an IRFIRSEL pin, but on the DB/PB boards it's not |
1074 | #define IR_RING_BASE_ADDR_H (IRDA_BASE + 0x04) | 1271 | * used to select FIR/SIR mode on the transceiver but as a GPIO. Instead a |
1075 | #define IR_RING_BASE_ADDR_L (IRDA_BASE + 0x08) | 1272 | * CPLD has to be told about the mode. |
1076 | #define IR_RING_SIZE (IRDA_BASE + 0x0C) | 1273 | */ |
1077 | #define IR_RING_PROMPT (IRDA_BASE + 0x10) | 1274 | #define AU1000_IRDA_PHY_MODE_OFF 0 |
1078 | #define IR_RING_ADDR_CMPR (IRDA_BASE + 0x14) | 1275 | #define AU1000_IRDA_PHY_MODE_SIR 1 |
1079 | #define IR_INT_CLEAR (IRDA_BASE + 0x18) | 1276 | #define AU1000_IRDA_PHY_MODE_FIR 2 |
1080 | #define IR_CONFIG_1 (IRDA_BASE + 0x20) | 1277 | |
1081 | # define IR_RX_INVERT_LED (1 << 0) | 1278 | struct au1k_irda_platform_data { |
1082 | # define IR_TX_INVERT_LED (1 << 1) | 1279 | void(*set_phy_mode)(int mode); |
1083 | # define IR_ST (1 << 2) | 1280 | }; |
1084 | # define IR_SF (1 << 3) | 1281 | |
1085 | # define IR_SIR (1 << 4) | ||
1086 | # define IR_MIR (1 << 5) | ||
1087 | # define IR_FIR (1 << 6) | ||
1088 | # define IR_16CRC (1 << 7) | ||
1089 | # define IR_TD (1 << 8) | ||
1090 | # define IR_RX_ALL (1 << 9) | ||
1091 | # define IR_DMA_ENABLE (1 << 10) | ||
1092 | # define IR_RX_ENABLE (1 << 11) | ||
1093 | # define IR_TX_ENABLE (1 << 12) | ||
1094 | # define IR_LOOPBACK (1 << 14) | ||
1095 | # define IR_SIR_MODE (IR_SIR | IR_DMA_ENABLE | \ | ||
1096 | IR_RX_ALL | IR_RX_ENABLE | IR_SF | IR_16CRC) | ||
1097 | #define IR_SIR_FLAGS (IRDA_BASE + 0x24) | ||
1098 | #define IR_ENABLE (IRDA_BASE + 0x28) | ||
1099 | # define IR_RX_STATUS (1 << 9) | ||
1100 | # define IR_TX_STATUS (1 << 10) | ||
1101 | #define IR_READ_PHY_CONFIG (IRDA_BASE + 0x2C) | ||
1102 | #define IR_WRITE_PHY_CONFIG (IRDA_BASE + 0x30) | ||
1103 | #define IR_MAX_PKT_LEN (IRDA_BASE + 0x34) | ||
1104 | #define IR_RX_BYTE_CNT (IRDA_BASE + 0x38) | ||
1105 | #define IR_CONFIG_2 (IRDA_BASE + 0x3C) | ||
1106 | # define IR_MODE_INV (1 << 0) | ||
1107 | # define IR_ONE_PIN (1 << 1) | ||
1108 | #define IR_INTERFACE_CONFIG (IRDA_BASE + 0x40) | ||
1109 | 1282 | ||
1110 | /* GPIO */ | 1283 | /* GPIO */ |
1111 | #define SYS_PINFUNC 0xB190002C | 1284 | #define SYS_PINFUNC 0xB190002C |
diff --git a/arch/mips/include/asm/mach-au1x00/au1100_mmc.h b/arch/mips/include/asm/mach-au1x00/au1100_mmc.h index 94000a3b6f0b..e221659f1bca 100644 --- a/arch/mips/include/asm/mach-au1x00/au1100_mmc.h +++ b/arch/mips/include/asm/mach-au1x00/au1100_mmc.h | |||
@@ -130,8 +130,10 @@ struct au1xmmc_platform_data { | |||
130 | #define SD_CONFIG2_DF (0x00000008) | 130 | #define SD_CONFIG2_DF (0x00000008) |
131 | #define SD_CONFIG2_DC (0x00000010) | 131 | #define SD_CONFIG2_DC (0x00000010) |
132 | #define SD_CONFIG2_xx2 (0x000000e0) | 132 | #define SD_CONFIG2_xx2 (0x000000e0) |
133 | #define SD_CONFIG2_BB (0x00000080) | ||
133 | #define SD_CONFIG2_WB (0x00000100) | 134 | #define SD_CONFIG2_WB (0x00000100) |
134 | #define SD_CONFIG2_RW (0x00000200) | 135 | #define SD_CONFIG2_RW (0x00000200) |
136 | #define SD_CONFIG2_DP (0x00000400) | ||
135 | 137 | ||
136 | 138 | ||
137 | /* | 139 | /* |
diff --git a/arch/mips/include/asm/mach-au1x00/au1200fb.h b/arch/mips/include/asm/mach-au1x00/au1200fb.h new file mode 100644 index 000000000000..b3c87cc64bb9 --- /dev/null +++ b/arch/mips/include/asm/mach-au1x00/au1200fb.h | |||
@@ -0,0 +1,14 @@ | |||
1 | /* | ||
2 | * platform data for au1200fb driver. | ||
3 | */ | ||
4 | |||
5 | #ifndef _AU1200FB_PLAT_H_ | ||
6 | #define _AU1200FB_PLAT_H_ | ||
7 | |||
8 | struct au1200fb_platdata { | ||
9 | int (*panel_index)(void); | ||
10 | int (*panel_init)(void); | ||
11 | int (*panel_shutdown)(void); | ||
12 | }; | ||
13 | |||
14 | #endif | ||
diff --git a/arch/mips/include/asm/mach-au1x00/au1550nd.h b/arch/mips/include/asm/mach-au1x00/au1550nd.h new file mode 100644 index 000000000000..ad4c0a03afef --- /dev/null +++ b/arch/mips/include/asm/mach-au1x00/au1550nd.h | |||
@@ -0,0 +1,16 @@ | |||
1 | /* | ||
2 | * platform data for the Au1550 NAND driver | ||
3 | */ | ||
4 | |||
5 | #ifndef _AU1550ND_H_ | ||
6 | #define _AU1550ND_H_ | ||
7 | |||
8 | #include <linux/mtd/partitions.h> | ||
9 | |||
10 | struct au1550nd_platdata { | ||
11 | struct mtd_partition *parts; | ||
12 | int num_parts; | ||
13 | int devwidth; /* 0 = 8bit device, 1 = 16bit device */ | ||
14 | }; | ||
15 | |||
16 | #endif | ||
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h index 323ce2d145f2..217810e18361 100644 --- a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h +++ b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h | |||
@@ -183,6 +183,37 @@ typedef volatile struct au1xxx_ddma_desc { | |||
183 | #define AU1200_DSCR_CMD0_PSC1_SYNC 25 | 183 | #define AU1200_DSCR_CMD0_PSC1_SYNC 25 |
184 | #define AU1200_DSCR_CMD0_CIM_SYNC 26 | 184 | #define AU1200_DSCR_CMD0_CIM_SYNC 26 |
185 | 185 | ||
186 | #define AU1300_DSCR_CMD0_UART0_TX 0 | ||
187 | #define AU1300_DSCR_CMD0_UART0_RX 1 | ||
188 | #define AU1300_DSCR_CMD0_UART1_TX 2 | ||
189 | #define AU1300_DSCR_CMD0_UART1_RX 3 | ||
190 | #define AU1300_DSCR_CMD0_UART2_TX 4 | ||
191 | #define AU1300_DSCR_CMD0_UART2_RX 5 | ||
192 | #define AU1300_DSCR_CMD0_UART3_TX 6 | ||
193 | #define AU1300_DSCR_CMD0_UART3_RX 7 | ||
194 | #define AU1300_DSCR_CMD0_SDMS_TX0 8 | ||
195 | #define AU1300_DSCR_CMD0_SDMS_RX0 9 | ||
196 | #define AU1300_DSCR_CMD0_SDMS_TX1 10 | ||
197 | #define AU1300_DSCR_CMD0_SDMS_RX1 11 | ||
198 | #define AU1300_DSCR_CMD0_AES_TX 12 | ||
199 | #define AU1300_DSCR_CMD0_AES_RX 13 | ||
200 | #define AU1300_DSCR_CMD0_PSC0_TX 14 | ||
201 | #define AU1300_DSCR_CMD0_PSC0_RX 15 | ||
202 | #define AU1300_DSCR_CMD0_PSC1_TX 16 | ||
203 | #define AU1300_DSCR_CMD0_PSC1_RX 17 | ||
204 | #define AU1300_DSCR_CMD0_PSC2_TX 18 | ||
205 | #define AU1300_DSCR_CMD0_PSC2_RX 19 | ||
206 | #define AU1300_DSCR_CMD0_PSC3_TX 20 | ||
207 | #define AU1300_DSCR_CMD0_PSC3_RX 21 | ||
208 | #define AU1300_DSCR_CMD0_LCD 22 | ||
209 | #define AU1300_DSCR_CMD0_NAND_FLASH 23 | ||
210 | #define AU1300_DSCR_CMD0_SDMS_TX2 24 | ||
211 | #define AU1300_DSCR_CMD0_SDMS_RX2 25 | ||
212 | #define AU1300_DSCR_CMD0_CIM_SYNC 26 | ||
213 | #define AU1300_DSCR_CMD0_UDMA 27 | ||
214 | #define AU1300_DSCR_CMD0_DMA_REQ0 28 | ||
215 | #define AU1300_DSCR_CMD0_DMA_REQ1 29 | ||
216 | |||
186 | #define DSCR_CMD0_THROTTLE 30 | 217 | #define DSCR_CMD0_THROTTLE 30 |
187 | #define DSCR_CMD0_ALWAYS 31 | 218 | #define DSCR_CMD0_ALWAYS 31 |
188 | #define DSCR_NDEV_IDS 32 | 219 | #define DSCR_NDEV_IDS 32 |
diff --git a/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h b/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h index d5df0cab9b87..3f741af37d47 100644 --- a/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h | |||
@@ -13,12 +13,14 @@ | |||
13 | #define cpu_has_4k_cache 1 | 13 | #define cpu_has_4k_cache 1 |
14 | #define cpu_has_tx39_cache 0 | 14 | #define cpu_has_tx39_cache 0 |
15 | #define cpu_has_fpu 0 | 15 | #define cpu_has_fpu 0 |
16 | #define cpu_has_32fpr 0 | ||
16 | #define cpu_has_counter 1 | 17 | #define cpu_has_counter 1 |
17 | #define cpu_has_watch 1 | 18 | #define cpu_has_watch 1 |
18 | #define cpu_has_divec 1 | 19 | #define cpu_has_divec 1 |
19 | #define cpu_has_vce 0 | 20 | #define cpu_has_vce 0 |
20 | #define cpu_has_cache_cdex_p 0 | 21 | #define cpu_has_cache_cdex_p 0 |
21 | #define cpu_has_cache_cdex_s 0 | 22 | #define cpu_has_cache_cdex_s 0 |
23 | #define cpu_has_prefetch 1 | ||
22 | #define cpu_has_mcheck 1 | 24 | #define cpu_has_mcheck 1 |
23 | #define cpu_has_ejtag 1 | 25 | #define cpu_has_ejtag 1 |
24 | #define cpu_has_llsc 1 | 26 | #define cpu_has_llsc 1 |
@@ -29,6 +31,7 @@ | |||
29 | #define cpu_has_vtag_icache 0 | 31 | #define cpu_has_vtag_icache 0 |
30 | #define cpu_has_dc_aliases 0 | 32 | #define cpu_has_dc_aliases 0 |
31 | #define cpu_has_ic_fills_f_dc 1 | 33 | #define cpu_has_ic_fills_f_dc 1 |
34 | #define cpu_has_pindexed_dcache 0 | ||
32 | #define cpu_has_mips32r1 1 | 35 | #define cpu_has_mips32r1 1 |
33 | #define cpu_has_mips32r2 0 | 36 | #define cpu_has_mips32r2 0 |
34 | #define cpu_has_mips64r1 0 | 37 | #define cpu_has_mips64r1 0 |
diff --git a/arch/mips/include/asm/mach-au1x00/gpio-au1300.h b/arch/mips/include/asm/mach-au1x00/gpio-au1300.h new file mode 100644 index 000000000000..556e1be20bf6 --- /dev/null +++ b/arch/mips/include/asm/mach-au1x00/gpio-au1300.h | |||
@@ -0,0 +1,241 @@ | |||
1 | /* | ||
2 | * gpio-au1300.h -- GPIO control for Au1300 GPIC and compatibles. | ||
3 | * | ||
4 | * Copyright (c) 2009-2011 Manuel Lauss <manuel.lauss@googlemail.com> | ||
5 | */ | ||
6 | |||
7 | #ifndef _GPIO_AU1300_H_ | ||
8 | #define _GPIO_AU1300_H_ | ||
9 | |||
10 | #include <asm/addrspace.h> | ||
11 | #include <asm/io.h> | ||
12 | #include <asm/mach-au1x00/au1000.h> | ||
13 | |||
14 | /* with the current GPIC design, up to 128 GPIOs are possible. | ||
15 | * The only implementation so far is in the Au1300, which has 75 externally | ||
16 | * available GPIOs. | ||
17 | */ | ||
18 | #define AU1300_GPIO_BASE 0 | ||
19 | #define AU1300_GPIO_NUM 75 | ||
20 | #define AU1300_GPIO_MAX (AU1300_GPIO_BASE + AU1300_GPIO_NUM - 1) | ||
21 | |||
22 | #define AU1300_GPIC_ADDR \ | ||
23 | (void __iomem *)KSEG1ADDR(AU1300_GPIC_PHYS_ADDR) | ||
24 | |||
25 | static inline int au1300_gpio_get_value(unsigned int gpio) | ||
26 | { | ||
27 | void __iomem *roff = AU1300_GPIC_ADDR; | ||
28 | int bit; | ||
29 | |||
30 | gpio -= AU1300_GPIO_BASE; | ||
31 | roff += GPIC_GPIO_BANKOFF(gpio); | ||
32 | bit = GPIC_GPIO_TO_BIT(gpio); | ||
33 | return __raw_readl(roff + AU1300_GPIC_PINVAL) & bit; | ||
34 | } | ||
35 | |||
36 | static inline int au1300_gpio_direction_input(unsigned int gpio) | ||
37 | { | ||
38 | void __iomem *roff = AU1300_GPIC_ADDR; | ||
39 | unsigned long bit; | ||
40 | |||
41 | gpio -= AU1300_GPIO_BASE; | ||
42 | |||
43 | roff += GPIC_GPIO_BANKOFF(gpio); | ||
44 | bit = GPIC_GPIO_TO_BIT(gpio); | ||
45 | __raw_writel(bit, roff + AU1300_GPIC_DEVCLR); | ||
46 | wmb(); | ||
47 | |||
48 | return 0; | ||
49 | } | ||
50 | |||
51 | static inline int au1300_gpio_set_value(unsigned int gpio, int v) | ||
52 | { | ||
53 | void __iomem *roff = AU1300_GPIC_ADDR; | ||
54 | unsigned long bit; | ||
55 | |||
56 | gpio -= AU1300_GPIO_BASE; | ||
57 | |||
58 | roff += GPIC_GPIO_BANKOFF(gpio); | ||
59 | bit = GPIC_GPIO_TO_BIT(gpio); | ||
60 | __raw_writel(bit, roff + (v ? AU1300_GPIC_PINVAL | ||
61 | : AU1300_GPIC_PINVALCLR)); | ||
62 | wmb(); | ||
63 | |||
64 | return 0; | ||
65 | } | ||
66 | |||
67 | static inline int au1300_gpio_direction_output(unsigned int gpio, int v) | ||
68 | { | ||
69 | /* hw switches to output automatically */ | ||
70 | return au1300_gpio_set_value(gpio, v); | ||
71 | } | ||
72 | |||
73 | static inline int au1300_gpio_to_irq(unsigned int gpio) | ||
74 | { | ||
75 | return AU1300_FIRST_INT + (gpio - AU1300_GPIO_BASE); | ||
76 | } | ||
77 | |||
78 | static inline int au1300_irq_to_gpio(unsigned int irq) | ||
79 | { | ||
80 | return (irq - AU1300_FIRST_INT) + AU1300_GPIO_BASE; | ||
81 | } | ||
82 | |||
83 | static inline int au1300_gpio_is_valid(unsigned int gpio) | ||
84 | { | ||
85 | int ret; | ||
86 | |||
87 | switch (alchemy_get_cputype()) { | ||
88 | case ALCHEMY_CPU_AU1300: | ||
89 | ret = ((gpio >= AU1300_GPIO_BASE) && (gpio <= AU1300_GPIO_MAX)); | ||
90 | break; | ||
91 | default: | ||
92 | ret = 0; | ||
93 | } | ||
94 | return ret; | ||
95 | } | ||
96 | |||
97 | static inline int au1300_gpio_cansleep(unsigned int gpio) | ||
98 | { | ||
99 | return 0; | ||
100 | } | ||
101 | |||
102 | /* hardware remembers gpio 0-63 levels on powerup */ | ||
103 | static inline int au1300_gpio_getinitlvl(unsigned int gpio) | ||
104 | { | ||
105 | void __iomem *roff = AU1300_GPIC_ADDR; | ||
106 | unsigned long v; | ||
107 | |||
108 | if (unlikely(gpio > 63)) | ||
109 | return 0; | ||
110 | else if (gpio > 31) { | ||
111 | gpio -= 32; | ||
112 | roff += 4; | ||
113 | } | ||
114 | |||
115 | v = __raw_readl(roff + AU1300_GPIC_RSTVAL); | ||
116 | return (v >> gpio) & 1; | ||
117 | } | ||
118 | |||
119 | /**********************************************************************/ | ||
120 | |||
121 | /* Linux gpio framework integration. | ||
122 | * | ||
123 | * 4 use cases of Alchemy GPIOS: | ||
124 | *(1) GPIOLIB=y, ALCHEMY_GPIO_INDIRECT=y: | ||
125 | * Board must register gpiochips. | ||
126 | *(2) GPIOLIB=y, ALCHEMY_GPIO_INDIRECT=n: | ||
127 | * A gpiochip for the 75 GPIOs is registered. | ||
128 | * | ||
129 | *(3) GPIOLIB=n, ALCHEMY_GPIO_INDIRECT=y: | ||
130 | * the boards' gpio.h must provide the linux gpio wrapper functions, | ||
131 | * | ||
132 | *(4) GPIOLIB=n, ALCHEMY_GPIO_INDIRECT=n: | ||
133 | * inlinable gpio functions are provided which enable access to the | ||
134 | * Au1300 gpios only by using the numbers straight out of the data- | ||
135 | * sheets. | ||
136 | |||
137 | * Cases 1 and 3 are intended for boards which want to provide their own | ||
138 | * GPIO namespace and -operations (i.e. for example you have 8 GPIOs | ||
139 | * which are in part provided by spare Au1300 GPIO pins and in part by | ||
140 | * an external FPGA but you still want them to be accssible in linux | ||
141 | * as gpio0-7. The board can of course use the alchemy_gpioX_* functions | ||
142 | * as required). | ||
143 | */ | ||
144 | |||
145 | #ifndef CONFIG_GPIOLIB | ||
146 | |||
147 | #ifdef CONFIG_ALCHEMY_GPIOINT_AU1300 | ||
148 | |||
149 | #ifndef CONFIG_ALCHEMY_GPIO_INDIRECT /* case (4) */ | ||
150 | |||
151 | static inline int gpio_direction_input(unsigned int gpio) | ||
152 | { | ||
153 | return au1300_gpio_direction_input(gpio); | ||
154 | } | ||
155 | |||
156 | static inline int gpio_direction_output(unsigned int gpio, int v) | ||
157 | { | ||
158 | return au1300_gpio_direction_output(gpio, v); | ||
159 | } | ||
160 | |||
161 | static inline int gpio_get_value(unsigned int gpio) | ||
162 | { | ||
163 | return au1300_gpio_get_value(gpio); | ||
164 | } | ||
165 | |||
166 | static inline void gpio_set_value(unsigned int gpio, int v) | ||
167 | { | ||
168 | au1300_gpio_set_value(gpio, v); | ||
169 | } | ||
170 | |||
171 | static inline int gpio_get_value_cansleep(unsigned gpio) | ||
172 | { | ||
173 | return gpio_get_value(gpio); | ||
174 | } | ||
175 | |||
176 | static inline void gpio_set_value_cansleep(unsigned gpio, int value) | ||
177 | { | ||
178 | gpio_set_value(gpio, value); | ||
179 | } | ||
180 | |||
181 | static inline int gpio_is_valid(unsigned int gpio) | ||
182 | { | ||
183 | return au1300_gpio_is_valid(gpio); | ||
184 | } | ||
185 | |||
186 | static inline int gpio_cansleep(unsigned int gpio) | ||
187 | { | ||
188 | return au1300_gpio_cansleep(gpio); | ||
189 | } | ||
190 | |||
191 | static inline int gpio_to_irq(unsigned int gpio) | ||
192 | { | ||
193 | return au1300_gpio_to_irq(gpio); | ||
194 | } | ||
195 | |||
196 | static inline int irq_to_gpio(unsigned int irq) | ||
197 | { | ||
198 | return au1300_irq_to_gpio(irq); | ||
199 | } | ||
200 | |||
201 | static inline int gpio_request(unsigned int gpio, const char *label) | ||
202 | { | ||
203 | return 0; | ||
204 | } | ||
205 | |||
206 | static inline void gpio_free(unsigned int gpio) | ||
207 | { | ||
208 | } | ||
209 | |||
210 | static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) | ||
211 | { | ||
212 | return -ENOSYS; | ||
213 | } | ||
214 | |||
215 | static inline void gpio_unexport(unsigned gpio) | ||
216 | { | ||
217 | } | ||
218 | |||
219 | static inline int gpio_export(unsigned gpio, bool direction_may_change) | ||
220 | { | ||
221 | return -ENOSYS; | ||
222 | } | ||
223 | |||
224 | static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) | ||
225 | { | ||
226 | return -ENOSYS; | ||
227 | } | ||
228 | |||
229 | static inline int gpio_export_link(struct device *dev, const char *name, | ||
230 | unsigned gpio) | ||
231 | { | ||
232 | return -ENOSYS; | ||
233 | } | ||
234 | |||
235 | #endif /* !CONFIG_ALCHEMY_GPIO_INDIRECT */ | ||
236 | |||
237 | #endif /* CONFIG_ALCHEMY_GPIOINT_AU1300 */ | ||
238 | |||
239 | #endif /* CONFIG GPIOLIB */ | ||
240 | |||
241 | #endif /* _GPIO_AU1300_H_ */ | ||
diff --git a/arch/mips/include/asm/mach-au1x00/gpio.h b/arch/mips/include/asm/mach-au1x00/gpio.h index fcdc8c4809db..22e7ff17fc48 100644 --- a/arch/mips/include/asm/mach-au1x00/gpio.h +++ b/arch/mips/include/asm/mach-au1x00/gpio.h | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <asm/mach-au1x00/au1000.h> | 13 | #include <asm/mach-au1x00/au1000.h> |
14 | #include <asm/mach-au1x00/gpio-au1000.h> | 14 | #include <asm/mach-au1x00/gpio-au1000.h> |
15 | #include <asm/mach-au1x00/gpio-au1300.h> | ||
15 | 16 | ||
16 | /* On Au1000, Au1500 and Au1100 GPIOs won't work as inputs before | 17 | /* On Au1000, Au1500 and Au1100 GPIOs won't work as inputs before |
17 | * SYS_PININPUTEN is written to at least once. On Au1550/Au1200/Au1300 this | 18 | * SYS_PININPUTEN is written to at least once. On Au1550/Au1200/Au1300 this |
@@ -58,6 +59,8 @@ static inline int __au_irq_to_gpio(unsigned int irq) | |||
58 | switch (alchemy_get_cputype()) { | 59 | switch (alchemy_get_cputype()) { |
59 | case ALCHEMY_CPU_AU1000...ALCHEMY_CPU_AU1200: | 60 | case ALCHEMY_CPU_AU1000...ALCHEMY_CPU_AU1200: |
60 | return alchemy_irq_to_gpio(irq); | 61 | return alchemy_irq_to_gpio(irq); |
62 | case ALCHEMY_CPU_AU1300: | ||
63 | return au1300_irq_to_gpio(irq); | ||
61 | } | 64 | } |
62 | return -EINVAL; | 65 | return -EINVAL; |
63 | } | 66 | } |
diff --git a/arch/mips/include/asm/mach-db1x00/bcsr.h b/arch/mips/include/asm/mach-db1x00/bcsr.h index 618d2de02ed3..bb9fc23d853a 100644 --- a/arch/mips/include/asm/mach-db1x00/bcsr.h +++ b/arch/mips/include/asm/mach-db1x00/bcsr.h | |||
@@ -34,6 +34,8 @@ | |||
34 | #define PB1200_BCSR_PHYS_ADDR 0x0D800000 | 34 | #define PB1200_BCSR_PHYS_ADDR 0x0D800000 |
35 | #define PB1200_BCSR_HEXLED_OFS 0x00400000 | 35 | #define PB1200_BCSR_HEXLED_OFS 0x00400000 |
36 | 36 | ||
37 | #define DB1300_BCSR_PHYS_ADDR 0x19800000 | ||
38 | #define DB1300_BCSR_HEXLED_OFS 0x00400000 | ||
37 | 39 | ||
38 | enum bcsr_id { | 40 | enum bcsr_id { |
39 | /* BCSR base 1 */ | 41 | /* BCSR base 1 */ |
@@ -105,6 +107,7 @@ enum bcsr_whoami_boards { | |||
105 | BCSR_WHOAMI_PB1200 = BCSR_WHOAMI_PB1200_DDR1, | 107 | BCSR_WHOAMI_PB1200 = BCSR_WHOAMI_PB1200_DDR1, |
106 | BCSR_WHOAMI_PB1200_DDR2, | 108 | BCSR_WHOAMI_PB1200_DDR2, |
107 | BCSR_WHOAMI_DB1200, | 109 | BCSR_WHOAMI_DB1200, |
110 | BCSR_WHOAMI_DB1300, | ||
108 | }; | 111 | }; |
109 | 112 | ||
110 | /* STATUS reg. Unless otherwise noted, they're valid on all boards. | 113 | /* STATUS reg. Unless otherwise noted, they're valid on all boards. |
@@ -118,12 +121,12 @@ enum bcsr_whoami_boards { | |||
118 | #define BCSR_STATUS_SRAMWIDTH 0x0080 | 121 | #define BCSR_STATUS_SRAMWIDTH 0x0080 |
119 | #define BCSR_STATUS_FLASHBUSY 0x0100 | 122 | #define BCSR_STATUS_FLASHBUSY 0x0100 |
120 | #define BCSR_STATUS_ROMBUSY 0x0400 | 123 | #define BCSR_STATUS_ROMBUSY 0x0400 |
121 | #define BCSR_STATUS_SD0WP 0x0400 /* DB1200 */ | 124 | #define BCSR_STATUS_SD0WP 0x0400 /* DB1200/DB1300:SD1 */ |
122 | #define BCSR_STATUS_SD1WP 0x0800 | 125 | #define BCSR_STATUS_SD1WP 0x0800 |
123 | #define BCSR_STATUS_USBOTGID 0x0800 /* PB/DB1550 */ | 126 | #define BCSR_STATUS_USBOTGID 0x0800 /* PB/DB1550 */ |
124 | #define BCSR_STATUS_DB1000_SWAPBOOT 0x2000 | 127 | #define BCSR_STATUS_DB1000_SWAPBOOT 0x2000 |
125 | #define BCSR_STATUS_DB1200_SWAPBOOT 0x0040 /* DB1200 */ | 128 | #define BCSR_STATUS_DB1200_SWAPBOOT 0x0040 /* DB1200/1300 */ |
126 | #define BCSR_STATUS_IDECBLID 0x0200 /* DB1200 */ | 129 | #define BCSR_STATUS_IDECBLID 0x0200 /* DB1200/1300 */ |
127 | #define BCSR_STATUS_DB1200_U0RXD 0x1000 /* DB1200 */ | 130 | #define BCSR_STATUS_DB1200_U0RXD 0x1000 /* DB1200 */ |
128 | #define BCSR_STATUS_DB1200_U1RXD 0x2000 /* DB1200 */ | 131 | #define BCSR_STATUS_DB1200_U1RXD 0x2000 /* DB1200 */ |
129 | #define BCSR_STATUS_FLASHDEN 0xC000 | 132 | #define BCSR_STATUS_FLASHDEN 0xC000 |
@@ -133,6 +136,11 @@ enum bcsr_whoami_boards { | |||
133 | #define BCSR_STATUS_PB1550_U1RXD 0x2000 /* PB1550 */ | 136 | #define BCSR_STATUS_PB1550_U1RXD 0x2000 /* PB1550 */ |
134 | #define BCSR_STATUS_PB1550_U3RXD 0x8000 /* PB1550 */ | 137 | #define BCSR_STATUS_PB1550_U3RXD 0x8000 /* PB1550 */ |
135 | 138 | ||
139 | #define BCSR_STATUS_CFWP 0x4000 /* DB1300 */ | ||
140 | #define BCSR_STATUS_USBOCn 0x2000 /* DB1300 */ | ||
141 | #define BCSR_STATUS_OTGOCn 0x1000 /* DB1300 */ | ||
142 | #define BCSR_STATUS_DCDMARQ 0x0010 /* DB1300 */ | ||
143 | #define BCSR_STATUS_IDEDMARQ 0x0020 /* DB1300 */ | ||
136 | 144 | ||
137 | /* DB/PB1000,1100,1500,1550 */ | 145 | /* DB/PB1000,1100,1500,1550 */ |
138 | #define BCSR_RESETS_PHY0 0x0001 | 146 | #define BCSR_RESETS_PHY0 0x0001 |
@@ -155,17 +163,17 @@ enum bcsr_whoami_boards { | |||
155 | #define BCSR_BOARD_GPIO200RST 0x0400 | 163 | #define BCSR_BOARD_GPIO200RST 0x0400 |
156 | #define BCSR_BOARD_PCICLKOUT 0x0800 | 164 | #define BCSR_BOARD_PCICLKOUT 0x0800 |
157 | #define BCSR_BOARD_PCICFG 0x1000 | 165 | #define BCSR_BOARD_PCICFG 0x1000 |
158 | #define BCSR_BOARD_SPISEL 0x4000 /* PB/DB1550 */ | 166 | #define BCSR_BOARD_SPISEL 0x2000 /* PB/DB1550 */ |
159 | #define BCSR_BOARD_SD0WP 0x4000 /* DB1100 */ | 167 | #define BCSR_BOARD_SD0WP 0x4000 /* DB1100 */ |
160 | #define BCSR_BOARD_SD1WP 0x8000 /* DB1100 */ | 168 | #define BCSR_BOARD_SD1WP 0x8000 /* DB1100 */ |
161 | 169 | ||
162 | 170 | ||
163 | /* DB/PB1200 */ | 171 | /* DB/PB1200/1300 */ |
164 | #define BCSR_RESETS_ETH 0x0001 | 172 | #define BCSR_RESETS_ETH 0x0001 |
165 | #define BCSR_RESETS_CAMERA 0x0002 | 173 | #define BCSR_RESETS_CAMERA 0x0002 |
166 | #define BCSR_RESETS_DC 0x0004 | 174 | #define BCSR_RESETS_DC 0x0004 |
167 | #define BCSR_RESETS_IDE 0x0008 | 175 | #define BCSR_RESETS_IDE 0x0008 |
168 | #define BCSR_RESETS_TV 0x0010 /* DB1200 */ | 176 | #define BCSR_RESETS_TV 0x0010 /* DB1200/1300 */ |
169 | /* Not resets but in the same register */ | 177 | /* Not resets but in the same register */ |
170 | #define BCSR_RESETS_PWMR1MUX 0x0800 /* DB1200 */ | 178 | #define BCSR_RESETS_PWMR1MUX 0x0800 /* DB1200 */ |
171 | #define BCSR_RESETS_PB1200_WSCFSM 0x0800 /* PB1200 */ | 179 | #define BCSR_RESETS_PB1200_WSCFSM 0x0800 /* PB1200 */ |
@@ -174,13 +182,22 @@ enum bcsr_whoami_boards { | |||
174 | #define BCSR_RESETS_SPISEL 0x4000 | 182 | #define BCSR_RESETS_SPISEL 0x4000 |
175 | #define BCSR_RESETS_SD1MUX 0x8000 /* PB1200 */ | 183 | #define BCSR_RESETS_SD1MUX 0x8000 /* PB1200 */ |
176 | 184 | ||
185 | #define BCSR_RESETS_VDDQSHDN 0x0200 /* DB1300 */ | ||
186 | #define BCSR_RESETS_OTPPGM 0x0400 /* DB1300 */ | ||
187 | #define BCSR_RESETS_OTPSCLK 0x0800 /* DB1300 */ | ||
188 | #define BCSR_RESETS_OTPWRPROT 0x1000 /* DB1300 */ | ||
189 | #define BCSR_RESETS_OTPCSB 0x2000 /* DB1300 */ | ||
190 | #define BCSR_RESETS_OTGPWR 0x4000 /* DB1300 */ | ||
191 | #define BCSR_RESETS_USBHPWR 0x8000 /* DB1300 */ | ||
192 | |||
177 | #define BCSR_BOARD_LCDVEE 0x0001 | 193 | #define BCSR_BOARD_LCDVEE 0x0001 |
178 | #define BCSR_BOARD_LCDVDD 0x0002 | 194 | #define BCSR_BOARD_LCDVDD 0x0002 |
179 | #define BCSR_BOARD_LCDBL 0x0004 | 195 | #define BCSR_BOARD_LCDBL 0x0004 |
180 | #define BCSR_BOARD_CAMSNAP 0x0010 | 196 | #define BCSR_BOARD_CAMSNAP 0x0010 |
181 | #define BCSR_BOARD_CAMPWR 0x0020 | 197 | #define BCSR_BOARD_CAMPWR 0x0020 |
182 | #define BCSR_BOARD_SD0PWR 0x0040 | 198 | #define BCSR_BOARD_SD0PWR 0x0040 |
183 | 199 | #define BCSR_BOARD_CAMCS 0x0010 /* DB1300 */ | |
200 | #define BCSR_BOARD_HDMI_DE 0x0040 /* DB1300 */ | ||
184 | 201 | ||
185 | #define BCSR_SWITCHES_DIP 0x00FF | 202 | #define BCSR_SWITCHES_DIP 0x00FF |
186 | #define BCSR_SWITCHES_DIP_1 0x0080 | 203 | #define BCSR_SWITCHES_DIP_1 0x0080 |
@@ -214,7 +231,10 @@ enum bcsr_whoami_boards { | |||
214 | #define BCSR_SYSTEM_RESET 0x8000 /* clear to reset */ | 231 | #define BCSR_SYSTEM_RESET 0x8000 /* clear to reset */ |
215 | #define BCSR_SYSTEM_PWROFF 0x4000 /* set to power off */ | 232 | #define BCSR_SYSTEM_PWROFF 0x4000 /* set to power off */ |
216 | #define BCSR_SYSTEM_VDDI 0x001F /* PB1xxx boards */ | 233 | #define BCSR_SYSTEM_VDDI 0x001F /* PB1xxx boards */ |
217 | 234 | #define BCSR_SYSTEM_DEBUGCSMASK 0x003F /* DB1300 */ | |
235 | #define BCSR_SYSTEM_UDMAMODE 0x0100 /* DB1300 */ | ||
236 | #define BCSR_SYSTEM_WAKEONIRQ 0x0200 /* DB1300 */ | ||
237 | #define BCSR_SYSTEM_VDDI1300 0x3C00 /* DB1300 */ | ||
218 | 238 | ||
219 | 239 | ||
220 | 240 | ||
diff --git a/arch/mips/include/asm/mach-db1x00/db1200.h b/arch/mips/include/asm/mach-db1x00/db1200.h index 7a39657108c4..b2a8319521e5 100644 --- a/arch/mips/include/asm/mach-db1x00/db1200.h +++ b/arch/mips/include/asm/mach-db1x00/db1200.h | |||
@@ -43,15 +43,20 @@ | |||
43 | #define BCSR_INT_PC1EJECT 0x0800 | 43 | #define BCSR_INT_PC1EJECT 0x0800 |
44 | #define BCSR_INT_SD0INSERT 0x1000 | 44 | #define BCSR_INT_SD0INSERT 0x1000 |
45 | #define BCSR_INT_SD0EJECT 0x2000 | 45 | #define BCSR_INT_SD0EJECT 0x2000 |
46 | #define BCSR_INT_SD1INSERT 0x4000 | ||
47 | #define BCSR_INT_SD1EJECT 0x8000 | ||
46 | 48 | ||
47 | #define IDE_PHYS_ADDR 0x18800000 | ||
48 | #define IDE_REG_SHIFT 5 | 49 | #define IDE_REG_SHIFT 5 |
49 | 50 | ||
50 | #define DB1200_IDE_PHYS_ADDR IDE_PHYS_ADDR | 51 | #define DB1200_IDE_PHYS_ADDR 0x18800000 |
51 | #define DB1200_IDE_PHYS_LEN (16 << IDE_REG_SHIFT) | 52 | #define DB1200_IDE_PHYS_LEN (16 << IDE_REG_SHIFT) |
52 | #define DB1200_ETH_PHYS_ADDR 0x19000300 | 53 | #define DB1200_ETH_PHYS_ADDR 0x19000300 |
53 | #define DB1200_NAND_PHYS_ADDR 0x20000000 | 54 | #define DB1200_NAND_PHYS_ADDR 0x20000000 |
54 | 55 | ||
56 | #define PB1200_IDE_PHYS_ADDR 0x0C800000 | ||
57 | #define PB1200_ETH_PHYS_ADDR 0x0D000300 | ||
58 | #define PB1200_NAND_PHYS_ADDR 0x1C000000 | ||
59 | |||
55 | /* | 60 | /* |
56 | * External Interrupts for DBAu1200 as of 8/6/2004. | 61 | * External Interrupts for DBAu1200 as of 8/6/2004. |
57 | * Bit positions in the CPLD registers can be calculated by taking | 62 | * Bit positions in the CPLD registers can be calculated by taking |
@@ -77,6 +82,8 @@ enum external_db1200_ints { | |||
77 | DB1200_PC1_EJECT_INT, | 82 | DB1200_PC1_EJECT_INT, |
78 | DB1200_SD0_INSERT_INT, | 83 | DB1200_SD0_INSERT_INT, |
79 | DB1200_SD0_EJECT_INT, | 84 | DB1200_SD0_EJECT_INT, |
85 | PB1200_SD1_INSERT_INT, | ||
86 | PB1200_SD1_EJECT_INT, | ||
80 | 87 | ||
81 | DB1200_INT_END = DB1200_INT_BEGIN + 15, | 88 | DB1200_INT_END = DB1200_INT_BEGIN + 15, |
82 | }; | 89 | }; |
diff --git a/arch/mips/include/asm/mach-db1x00/db1300.h b/arch/mips/include/asm/mach-db1x00/db1300.h new file mode 100644 index 000000000000..7fe5fb3ba877 --- /dev/null +++ b/arch/mips/include/asm/mach-db1x00/db1300.h | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * NetLogic DB1300 board constants | ||
3 | */ | ||
4 | |||
5 | #ifndef _DB1300_H_ | ||
6 | #define _DB1300_H_ | ||
7 | |||
8 | /* FPGA (external mux) interrupt sources */ | ||
9 | #define DB1300_FIRST_INT (ALCHEMY_GPIC_INT_LAST + 1) | ||
10 | #define DB1300_IDE_INT (DB1300_FIRST_INT + 0) | ||
11 | #define DB1300_ETH_INT (DB1300_FIRST_INT + 1) | ||
12 | #define DB1300_CF_INT (DB1300_FIRST_INT + 2) | ||
13 | #define DB1300_VIDEO_INT (DB1300_FIRST_INT + 4) | ||
14 | #define DB1300_HDMI_INT (DB1300_FIRST_INT + 5) | ||
15 | #define DB1300_DC_INT (DB1300_FIRST_INT + 6) | ||
16 | #define DB1300_FLASH_INT (DB1300_FIRST_INT + 7) | ||
17 | #define DB1300_CF_INSERT_INT (DB1300_FIRST_INT + 8) | ||
18 | #define DB1300_CF_EJECT_INT (DB1300_FIRST_INT + 9) | ||
19 | #define DB1300_AC97_INT (DB1300_FIRST_INT + 10) | ||
20 | #define DB1300_AC97_PEN_INT (DB1300_FIRST_INT + 11) | ||
21 | #define DB1300_SD1_INSERT_INT (DB1300_FIRST_INT + 12) | ||
22 | #define DB1300_SD1_EJECT_INT (DB1300_FIRST_INT + 13) | ||
23 | #define DB1300_OTG_VBUS_OC_INT (DB1300_FIRST_INT + 14) | ||
24 | #define DB1300_HOST_VBUS_OC_INT (DB1300_FIRST_INT + 15) | ||
25 | #define DB1300_LAST_INT (DB1300_FIRST_INT + 15) | ||
26 | |||
27 | /* SMSC9210 CS */ | ||
28 | #define DB1300_ETH_PHYS_ADDR 0x19000000 | ||
29 | #define DB1300_ETH_PHYS_END 0x197fffff | ||
30 | |||
31 | /* ATA CS */ | ||
32 | #define DB1300_IDE_PHYS_ADDR 0x18800000 | ||
33 | #define DB1300_IDE_REG_SHIFT 5 | ||
34 | #define DB1300_IDE_PHYS_LEN (16 << DB1300_IDE_REG_SHIFT) | ||
35 | |||
36 | /* NAND CS */ | ||
37 | #define DB1300_NAND_PHYS_ADDR 0x20000000 | ||
38 | #define DB1300_NAND_PHYS_END 0x20000fff | ||
39 | |||
40 | #endif /* _DB1300_H_ */ | ||
diff --git a/arch/mips/include/asm/mach-db1x00/db1x00.h b/arch/mips/include/asm/mach-db1x00/db1x00.h deleted file mode 100644 index a5affb0568ef..000000000000 --- a/arch/mips/include/asm/mach-db1x00/db1x00.h +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | /* | ||
2 | * AMD Alchemy DBAu1x00 Reference Boards | ||
3 | * | ||
4 | * Copyright 2001, 2008 MontaVista Software Inc. | ||
5 | * Author: MontaVista Software, Inc. <source@mvista.com> | ||
6 | * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) | ||
7 | * | ||
8 | * ######################################################################## | ||
9 | * | ||
10 | * This program is free software; you can distribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License (Version 2) as | ||
12 | * published by the Free Software Foundation. | ||
13 | * | ||
14 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
17 | * for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License along | ||
20 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
21 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
22 | * | ||
23 | * ######################################################################## | ||
24 | * | ||
25 | * | ||
26 | */ | ||
27 | #ifndef __ASM_DB1X00_H | ||
28 | #define __ASM_DB1X00_H | ||
29 | |||
30 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
31 | |||
32 | #ifdef CONFIG_MIPS_DB1550 | ||
33 | |||
34 | #define DBDMA_AC97_TX_CHAN AU1550_DSCR_CMD0_PSC1_TX | ||
35 | #define DBDMA_AC97_RX_CHAN AU1550_DSCR_CMD0_PSC1_RX | ||
36 | #define DBDMA_I2S_TX_CHAN AU1550_DSCR_CMD0_PSC3_TX | ||
37 | #define DBDMA_I2S_RX_CHAN AU1550_DSCR_CMD0_PSC3_RX | ||
38 | |||
39 | #define SPI_PSC_BASE AU1550_PSC0_PHYS_ADDR | ||
40 | #define AC97_PSC_BASE AU1550_PSC1_PHYS_ADDR | ||
41 | #define SMBUS_PSC_BASE AU1550_PSC2_PHYS_ADDR | ||
42 | #define I2S_PSC_BASE AU1550_PSC3_PHYS_ADDR | ||
43 | |||
44 | #define NAND_PHYS_ADDR 0x20000000 | ||
45 | |||
46 | #endif | ||
47 | |||
48 | /* | ||
49 | * NAND defines | ||
50 | * | ||
51 | * Timing values as described in databook, * ns value stripped of the | ||
52 | * lower 2 bits. | ||
53 | * These defines are here rather than an Au1550 generic file because | ||
54 | * the parts chosen on another board may be different and may require | ||
55 | * different timings. | ||
56 | */ | ||
57 | #define NAND_T_H (18 >> 2) | ||
58 | #define NAND_T_PUL (30 >> 2) | ||
59 | #define NAND_T_SU (30 >> 2) | ||
60 | #define NAND_T_WH (30 >> 2) | ||
61 | |||
62 | /* Bitfield shift amounts */ | ||
63 | #define NAND_T_H_SHIFT 0 | ||
64 | #define NAND_T_PUL_SHIFT 4 | ||
65 | #define NAND_T_SU_SHIFT 8 | ||
66 | #define NAND_T_WH_SHIFT 12 | ||
67 | |||
68 | #define NAND_TIMING (((NAND_T_H & 0xF) << NAND_T_H_SHIFT) | \ | ||
69 | ((NAND_T_PUL & 0xF) << NAND_T_PUL_SHIFT) | \ | ||
70 | ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \ | ||
71 | ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT)) | ||
72 | #define NAND_CS 1 | ||
73 | |||
74 | /* Should be done by YAMON */ | ||
75 | #define NAND_STCFG 0x00400005 /* 8-bit NAND */ | ||
76 | #define NAND_STTIME 0x00007774 /* valid for 396 MHz SD=2 only */ | ||
77 | #define NAND_STADDR 0x12000FFF /* physical address 0x20000000 */ | ||
78 | |||
79 | #endif /* __ASM_DB1X00_H */ | ||
diff --git a/arch/mips/include/asm/mach-db1x00/irq.h b/arch/mips/include/asm/mach-db1x00/irq.h new file mode 100644 index 000000000000..15b26693238f --- /dev/null +++ b/arch/mips/include/asm/mach-db1x00/irq.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_GENERIC_IRQ_H | ||
9 | #define __ASM_MACH_GENERIC_IRQ_H | ||
10 | |||
11 | |||
12 | #ifdef NR_IRQS | ||
13 | #undef NR_IRQS | ||
14 | #endif | ||
15 | |||
16 | #ifndef MIPS_CPU_IRQ_BASE | ||
17 | #define MIPS_CPU_IRQ_BASE 0 | ||
18 | #endif | ||
19 | |||
20 | /* 8 (MIPS) + 128 (au1300) + 16 (cpld) */ | ||
21 | #define NR_IRQS 152 | ||
22 | |||
23 | #endif /* __ASM_MACH_GENERIC_IRQ_H */ | ||
diff --git a/arch/mips/include/asm/mach-pb1x00/mc146818rtc.h b/arch/mips/include/asm/mach-pb1x00/mc146818rtc.h deleted file mode 100644 index 622c58710e5b..000000000000 --- a/arch/mips/include/asm/mach-pb1x00/mc146818rtc.h +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1998, 2001, 03 by Ralf Baechle | ||
7 | * | ||
8 | * RTC routines for PC style attached Dallas chip. | ||
9 | */ | ||
10 | #ifndef __ASM_MACH_AU1XX_MC146818RTC_H | ||
11 | #define __ASM_MACH_AU1XX_MC146818RTC_H | ||
12 | |||
13 | #include <asm/io.h> | ||
14 | #include <asm/mach-au1x00/au1000.h> | ||
15 | |||
16 | #define RTC_PORT(x) (0x0c000000 + (x)) | ||
17 | #define RTC_IRQ 8 | ||
18 | #define PB1500_RTC_ADDR 0x0c000000 | ||
19 | |||
20 | static inline unsigned char CMOS_READ(unsigned long offset) | ||
21 | { | ||
22 | offset <<= 2; | ||
23 | return (u8)(au_readl(offset + PB1500_RTC_ADDR) & 0xff); | ||
24 | } | ||
25 | |||
26 | static inline void CMOS_WRITE(unsigned char data, unsigned long offset) | ||
27 | { | ||
28 | offset <<= 2; | ||
29 | au_writel(data, offset + PB1500_RTC_ADDR); | ||
30 | } | ||
31 | |||
32 | #define RTC_ALWAYS_BCD 1 | ||
33 | |||
34 | #endif /* __ASM_MACH_AU1XX_MC146818RTC_H */ | ||
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1000.h b/arch/mips/include/asm/mach-pb1x00/pb1000.h deleted file mode 100644 index 65059255dc1e..000000000000 --- a/arch/mips/include/asm/mach-pb1x00/pb1000.h +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | /* | ||
2 | * Alchemy Semi Pb1000 Reference Board | ||
3 | * | ||
4 | * Copyright 2001, 2008 MontaVista Software Inc. | ||
5 | * Author: MontaVista Software, Inc. <source@mvista.com> | ||
6 | * | ||
7 | * ######################################################################## | ||
8 | * | ||
9 | * This program is free software; you can distribute it and/or modify it | ||
10 | * under the terms of the GNU General Public License (Version 2) as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
16 | * for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License along | ||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
20 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
21 | * | ||
22 | * ######################################################################## | ||
23 | * | ||
24 | * | ||
25 | */ | ||
26 | #ifndef __ASM_PB1000_H | ||
27 | #define __ASM_PB1000_H | ||
28 | |||
29 | /* PCMCIA PB1000 specific defines */ | ||
30 | #define PCMCIA_MAX_SOCK 1 | ||
31 | #define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1) | ||
32 | |||
33 | #define PB1000_PCR 0xBE000000 | ||
34 | # define PCR_SLOT_0_VPP0 (1 << 0) | ||
35 | # define PCR_SLOT_0_VPP1 (1 << 1) | ||
36 | # define PCR_SLOT_0_VCC0 (1 << 2) | ||
37 | # define PCR_SLOT_0_VCC1 (1 << 3) | ||
38 | # define PCR_SLOT_0_RST (1 << 4) | ||
39 | # define PCR_SLOT_1_VPP0 (1 << 8) | ||
40 | # define PCR_SLOT_1_VPP1 (1 << 9) | ||
41 | # define PCR_SLOT_1_VCC0 (1 << 10) | ||
42 | # define PCR_SLOT_1_VCC1 (1 << 11) | ||
43 | # define PCR_SLOT_1_RST (1 << 12) | ||
44 | |||
45 | #define PB1000_MDR 0xBE000004 | ||
46 | # define MDR_PI (1 << 5) /* PCMCIA int latch */ | ||
47 | # define MDR_EPI (1 << 14) /* enable PCMCIA int */ | ||
48 | # define MDR_CPI (1 << 15) /* clear PCMCIA int */ | ||
49 | |||
50 | #define PB1000_ACR1 0xBE000008 | ||
51 | # define ACR1_SLOT_0_CD1 (1 << 0) /* card detect 1 */ | ||
52 | # define ACR1_SLOT_0_CD2 (1 << 1) /* card detect 2 */ | ||
53 | # define ACR1_SLOT_0_READY (1 << 2) /* ready */ | ||
54 | # define ACR1_SLOT_0_STATUS (1 << 3) /* status change */ | ||
55 | # define ACR1_SLOT_0_VS1 (1 << 4) /* voltage sense 1 */ | ||
56 | # define ACR1_SLOT_0_VS2 (1 << 5) /* voltage sense 2 */ | ||
57 | # define ACR1_SLOT_0_INPACK (1 << 6) /* inpack pin status */ | ||
58 | # define ACR1_SLOT_1_CD1 (1 << 8) /* card detect 1 */ | ||
59 | # define ACR1_SLOT_1_CD2 (1 << 9) /* card detect 2 */ | ||
60 | # define ACR1_SLOT_1_READY (1 << 10) /* ready */ | ||
61 | # define ACR1_SLOT_1_STATUS (1 << 11) /* status change */ | ||
62 | # define ACR1_SLOT_1_VS1 (1 << 12) /* voltage sense 1 */ | ||
63 | # define ACR1_SLOT_1_VS2 (1 << 13) /* voltage sense 2 */ | ||
64 | # define ACR1_SLOT_1_INPACK (1 << 14) /* inpack pin status */ | ||
65 | |||
66 | #define CPLD_AUX0 0xBE00000C | ||
67 | #define CPLD_AUX1 0xBE000010 | ||
68 | #define CPLD_AUX2 0xBE000014 | ||
69 | |||
70 | /* Voltage levels */ | ||
71 | |||
72 | /* VPPEN1 - VPPEN0 */ | ||
73 | #define VPP_GND ((0 << 1) | (0 << 0)) | ||
74 | #define VPP_5V ((1 << 1) | (0 << 0)) | ||
75 | #define VPP_3V ((0 << 1) | (1 << 0)) | ||
76 | #define VPP_12V ((0 << 1) | (1 << 0)) | ||
77 | #define VPP_HIZ ((1 << 1) | (1 << 0)) | ||
78 | |||
79 | /* VCCEN1 - VCCEN0 */ | ||
80 | #define VCC_3V ((0 << 1) | (1 << 0)) | ||
81 | #define VCC_5V ((1 << 1) | (0 << 0)) | ||
82 | #define VCC_HIZ ((0 << 1) | (0 << 0)) | ||
83 | |||
84 | /* VPP/VCC */ | ||
85 | #define SET_VCC_VPP(VCC, VPP, SLOT) \ | ||
86 | ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8)) | ||
87 | #endif /* __ASM_PB1000_H */ | ||
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1200.h b/arch/mips/include/asm/mach-pb1x00/pb1200.h deleted file mode 100644 index 374416adb65b..000000000000 --- a/arch/mips/include/asm/mach-pb1x00/pb1200.h +++ /dev/null | |||
@@ -1,139 +0,0 @@ | |||
1 | /* | ||
2 | * AMD Alchemy Pb1200 Reference Board | ||
3 | * Board Registers defines. | ||
4 | * | ||
5 | * ######################################################################## | ||
6 | * | ||
7 | * This program is free software; you can distribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License (Version 2) as | ||
9 | * published by the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
14 | * for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along | ||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
18 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
19 | * | ||
20 | * ######################################################################## | ||
21 | * | ||
22 | * | ||
23 | */ | ||
24 | #ifndef __ASM_PB1200_H | ||
25 | #define __ASM_PB1200_H | ||
26 | |||
27 | #include <linux/types.h> | ||
28 | #include <asm/mach-au1x00/au1000.h> | ||
29 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
30 | |||
31 | #define DBDMA_AC97_TX_CHAN AU1200_DSCR_CMD0_PSC1_TX | ||
32 | #define DBDMA_AC97_RX_CHAN AU1200_DSCR_CMD0_PSC1_RX | ||
33 | #define DBDMA_I2S_TX_CHAN AU1200_DSCR_CMD0_PSC1_TX | ||
34 | #define DBDMA_I2S_RX_CHAN AU1200_DSCR_CMD0_PSC1_RX | ||
35 | |||
36 | /* | ||
37 | * SPI and SMB are muxed on the Pb1200 board. | ||
38 | * Refer to board documentation. | ||
39 | */ | ||
40 | #define SPI_PSC_BASE AU1550_PSC0_PHYS_ADDR | ||
41 | #define SMBUS_PSC_BASE AU1550_PSC0_PHYS_ADDR | ||
42 | /* | ||
43 | * AC97 and I2S are muxed on the Pb1200 board. | ||
44 | * Refer to board documentation. | ||
45 | */ | ||
46 | #define AC97_PSC_BASE AU1550_PSC1_PHYS_ADDR | ||
47 | #define I2S_PSC_BASE AU1550_PSC1_PHYS_ADDR | ||
48 | |||
49 | |||
50 | #define BCSR_SYSTEM_VDDI 0x001F | ||
51 | #define BCSR_SYSTEM_POWEROFF 0x4000 | ||
52 | #define BCSR_SYSTEM_RESET 0x8000 | ||
53 | |||
54 | /* Bit positions for the different interrupt sources */ | ||
55 | #define BCSR_INT_IDE 0x0001 | ||
56 | #define BCSR_INT_ETH 0x0002 | ||
57 | #define BCSR_INT_PC0 0x0004 | ||
58 | #define BCSR_INT_PC0STSCHG 0x0008 | ||
59 | #define BCSR_INT_PC1 0x0010 | ||
60 | #define BCSR_INT_PC1STSCHG 0x0020 | ||
61 | #define BCSR_INT_DC 0x0040 | ||
62 | #define BCSR_INT_FLASHBUSY 0x0080 | ||
63 | #define BCSR_INT_PC0INSERT 0x0100 | ||
64 | #define BCSR_INT_PC0EJECT 0x0200 | ||
65 | #define BCSR_INT_PC1INSERT 0x0400 | ||
66 | #define BCSR_INT_PC1EJECT 0x0800 | ||
67 | #define BCSR_INT_SD0INSERT 0x1000 | ||
68 | #define BCSR_INT_SD0EJECT 0x2000 | ||
69 | #define BCSR_INT_SD1INSERT 0x4000 | ||
70 | #define BCSR_INT_SD1EJECT 0x8000 | ||
71 | |||
72 | #define SMC91C111_PHYS_ADDR 0x0D000300 | ||
73 | #define SMC91C111_INT PB1200_ETH_INT | ||
74 | |||
75 | #define IDE_PHYS_ADDR 0x0C800000 | ||
76 | #define IDE_REG_SHIFT 5 | ||
77 | #define IDE_PHYS_LEN (16 << IDE_REG_SHIFT) | ||
78 | #define IDE_INT PB1200_IDE_INT | ||
79 | |||
80 | #define NAND_PHYS_ADDR 0x1C000000 | ||
81 | |||
82 | /* | ||
83 | * Timing values as described in databook, * ns value stripped of | ||
84 | * lower 2 bits. | ||
85 | * These defines are here rather than an Au1200 generic file because | ||
86 | * the parts chosen on another board may be different and may require | ||
87 | * different timings. | ||
88 | */ | ||
89 | #define NAND_T_H (18 >> 2) | ||
90 | #define NAND_T_PUL (30 >> 2) | ||
91 | #define NAND_T_SU (30 >> 2) | ||
92 | #define NAND_T_WH (30 >> 2) | ||
93 | |||
94 | /* Bitfield shift amounts */ | ||
95 | #define NAND_T_H_SHIFT 0 | ||
96 | #define NAND_T_PUL_SHIFT 4 | ||
97 | #define NAND_T_SU_SHIFT 8 | ||
98 | #define NAND_T_WH_SHIFT 12 | ||
99 | |||
100 | #define NAND_TIMING (((NAND_T_H & 0xF) << NAND_T_H_SHIFT) | \ | ||
101 | ((NAND_T_PUL & 0xF) << NAND_T_PUL_SHIFT) | \ | ||
102 | ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \ | ||
103 | ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT)) | ||
104 | |||
105 | /* | ||
106 | * External Interrupts for Pb1200 as of 8/6/2004. | ||
107 | * Bit positions in the CPLD registers can be calculated by taking | ||
108 | * the interrupt define and subtracting the PB1200_INT_BEGIN value. | ||
109 | * | ||
110 | * Example: IDE bis pos is = 64 - 64 | ||
111 | * ETH bit pos is = 65 - 64 | ||
112 | */ | ||
113 | enum external_pb1200_ints { | ||
114 | PB1200_INT_BEGIN = AU1000_MAX_INTR + 1, | ||
115 | |||
116 | PB1200_IDE_INT = PB1200_INT_BEGIN, | ||
117 | PB1200_ETH_INT, | ||
118 | PB1200_PC0_INT, | ||
119 | PB1200_PC0_STSCHG_INT, | ||
120 | PB1200_PC1_INT, | ||
121 | PB1200_PC1_STSCHG_INT, | ||
122 | PB1200_DC_INT, | ||
123 | PB1200_FLASHBUSY_INT, | ||
124 | PB1200_PC0_INSERT_INT, | ||
125 | PB1200_PC0_EJECT_INT, | ||
126 | PB1200_PC1_INSERT_INT, | ||
127 | PB1200_PC1_EJECT_INT, | ||
128 | PB1200_SD0_INSERT_INT, | ||
129 | PB1200_SD0_EJECT_INT, | ||
130 | PB1200_SD1_INSERT_INT, | ||
131 | PB1200_SD1_EJECT_INT, | ||
132 | |||
133 | PB1200_INT_END = PB1200_INT_BEGIN + 15 | ||
134 | }; | ||
135 | |||
136 | /* NAND chip select */ | ||
137 | #define NAND_CS 1 | ||
138 | |||
139 | #endif /* __ASM_PB1200_H */ | ||
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1550.h b/arch/mips/include/asm/mach-pb1x00/pb1550.h deleted file mode 100644 index 443b88adebf1..000000000000 --- a/arch/mips/include/asm/mach-pb1x00/pb1550.h +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | /* | ||
2 | * AMD Alchemy Semi PB1550 Reference Board | ||
3 | * Board Registers defines. | ||
4 | * | ||
5 | * Copyright 2004 Embedded Edge LLC. | ||
6 | * Copyright 2005 Ralf Baechle (ralf@linux-mips.org) | ||
7 | * | ||
8 | * ######################################################################## | ||
9 | * | ||
10 | * This program is free software; you can distribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License (Version 2) as | ||
12 | * published by the Free Software Foundation. | ||
13 | * | ||
14 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
15 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
17 | * for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License along | ||
20 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
21 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
22 | * | ||
23 | * ######################################################################## | ||
24 | * | ||
25 | * | ||
26 | */ | ||
27 | #ifndef __ASM_PB1550_H | ||
28 | #define __ASM_PB1550_H | ||
29 | |||
30 | #include <linux/types.h> | ||
31 | #include <asm/mach-au1x00/au1xxx_psc.h> | ||
32 | |||
33 | #define DBDMA_AC97_TX_CHAN AU1550_DSCR_CMD0_PSC1_TX | ||
34 | #define DBDMA_AC97_RX_CHAN AU1550_DSCR_CMD0_PSC1_RX | ||
35 | #define DBDMA_I2S_TX_CHAN AU1550_DSCR_CMD0_PSC3_TX | ||
36 | #define DBDMA_I2S_RX_CHAN AU1550_DSCR_CMD0_PSC3_RX | ||
37 | |||
38 | #define SPI_PSC_BASE AU1550_PSC0_PHYS_ADDR | ||
39 | #define AC97_PSC_BASE AU1550_PSC1_PHYS_ADDR | ||
40 | #define SMBUS_PSC_BASE AU1550_PSC2_PHYS_ADDR | ||
41 | #define I2S_PSC_BASE AU1550_PSC3_PHYS_ADDR | ||
42 | |||
43 | /* | ||
44 | * Timing values as described in databook, * ns value stripped of | ||
45 | * lower 2 bits. | ||
46 | * These defines are here rather than an SOC1550 generic file because | ||
47 | * the parts chosen on another board may be different and may require | ||
48 | * different timings. | ||
49 | */ | ||
50 | #define NAND_T_H (18 >> 2) | ||
51 | #define NAND_T_PUL (30 >> 2) | ||
52 | #define NAND_T_SU (30 >> 2) | ||
53 | #define NAND_T_WH (30 >> 2) | ||
54 | |||
55 | /* Bitfield shift amounts */ | ||
56 | #define NAND_T_H_SHIFT 0 | ||
57 | #define NAND_T_PUL_SHIFT 4 | ||
58 | #define NAND_T_SU_SHIFT 8 | ||
59 | #define NAND_T_WH_SHIFT 12 | ||
60 | |||
61 | #define NAND_TIMING (((NAND_T_H & 0xF) << NAND_T_H_SHIFT) | \ | ||
62 | ((NAND_T_PUL & 0xF) << NAND_T_PUL_SHIFT) | \ | ||
63 | ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \ | ||
64 | ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT)) | ||
65 | |||
66 | #define NAND_CS 1 | ||
67 | |||
68 | /* Should be done by YAMON */ | ||
69 | #define NAND_STCFG 0x00400005 /* 8-bit NAND */ | ||
70 | #define NAND_STTIME 0x00007774 /* valid for 396 MHz SD=2 only */ | ||
71 | #define NAND_STADDR 0x12000FFF /* physical address 0x20000000 */ | ||
72 | |||
73 | #endif /* __ASM_PB1550_H */ | ||