Loading arch/mips/include/asm/mach-tx49xx/mangle-port.h 0 → 100644 +26 −0 Original line number Diff line number Diff line #ifndef __ASM_MACH_TX49XX_MANGLE_PORT_H #define __ASM_MACH_TX49XX_MANGLE_PORT_H #define __swizzle_addr_b(port) (port) #define __swizzle_addr_w(port) (port) #define __swizzle_addr_l(port) (port) #define __swizzle_addr_q(port) (port) #define ioswabb(a, x) (x) #define __mem_ioswabb(a, x) (x) #if defined(CONFIG_TOSHIBA_RBTX4939) && \ (defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)) && \ defined(__BIG_ENDIAN) #define NEEDS_TXX9_IOSWABW extern u16 (*ioswabw)(volatile u16 *a, u16 x); extern u16 (*__mem_ioswabw)(volatile u16 *a, u16 x); #else #define ioswabw(a, x) le16_to_cpu(x) #define __mem_ioswabw(a, x) (x) #endif #define ioswabl(a, x) le32_to_cpu(x) #define __mem_ioswabl(a, x) (x) #define ioswabq(a, x) le64_to_cpu(x) #define __mem_ioswabq(a, x) (x) #endif /* __ASM_MACH_TX49XX_MANGLE_PORT_H */ arch/mips/txx9/generic/setup.c +15 −0 Original line number Diff line number Diff line Loading @@ -622,6 +622,21 @@ unsigned long (*__swizzle_addr_b)(unsigned long port) = __swizzle_addr_none; EXPORT_SYMBOL(__swizzle_addr_b); #endif #ifdef NEEDS_TXX9_IOSWABW static u16 ioswabw_default(volatile u16 *a, u16 x) { return le16_to_cpu(x); } static u16 __mem_ioswabw_default(volatile u16 *a, u16 x) { return x; } u16 (*ioswabw)(volatile u16 *a, u16 x) = ioswabw_default; EXPORT_SYMBOL(ioswabw); u16 (*__mem_ioswabw)(volatile u16 *a, u16 x) = __mem_ioswabw_default; EXPORT_SYMBOL(__mem_ioswabw); #endif void __init txx9_physmap_flash_init(int no, unsigned long addr, unsigned long size, const struct physmap_flash_data *pdata) Loading arch/mips/txx9/rbtx4939/setup.c +43 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ #include <linux/types.h> #include <linux/platform_device.h> #include <linux/leds.h> #include <linux/interrupt.h> #include <linux/smc91x.h> #include <asm/reboot.h> #include <asm/txx9/generic.h> #include <asm/txx9/pci.h> Loading @@ -33,6 +35,21 @@ static void __init rbtx4939_time_init(void) tx4939_time_init(0); } #if defined(__BIG_ENDIAN) && \ (defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)) #define HAVE_RBTX4939_IOSWAB #define IS_CE1_ADDR(addr) \ ((((unsigned long)(addr) - IO_BASE) & 0xfff00000) == TXX9_CE(1)) static u16 rbtx4939_ioswabw(volatile u16 *a, u16 x) { return IS_CE1_ADDR(a) ? x : le16_to_cpu(x); } static u16 rbtx4939_mem_ioswabw(volatile u16 *a, u16 x) { return !IS_CE1_ADDR(a) ? x : le16_to_cpu(x); } #endif /* __BIG_ENDIAN && CONFIG_SMC91X */ static void __init rbtx4939_pci_setup(void) { #ifdef CONFIG_PCI Loading Loading @@ -272,6 +289,22 @@ static void __init rbtx4939_arch_init(void) static void __init rbtx4939_device_init(void) { unsigned long smc_addr = RBTX4939_ETHER_ADDR - IO_BASE; struct resource smc_res[] = { { .start = smc_addr, .end = smc_addr + 0x10 - 1, .flags = IORESOURCE_MEM, }, { .start = RBTX4939_IRQ_ETHER, /* override default irq flag defined in smc91x.h */ .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, }, }; struct smc91x_platdata smc_pdata = { .flags = SMC91X_USE_16BIT, }; struct platform_device *pdev; #if defined(CONFIG_TC35815) || defined(CONFIG_TC35815_MODULE) int i, j; unsigned char ethaddr[2][6]; Loading @@ -288,6 +321,12 @@ static void __init rbtx4939_device_init(void) } tx4939_ethaddr_init(ethaddr[0], ethaddr[1]); #endif pdev = platform_device_alloc("smc91x", -1); if (!pdev || platform_device_add_resources(pdev, smc_res, ARRAY_SIZE(smc_res)) || platform_device_add_data(pdev, &smc_pdata, sizeof(smc_pdata)) || platform_device_add(pdev)) platform_device_put(pdev); rbtx4939_led_setup(); tx4939_wdt_init(); tx4939_ata_init(); Loading @@ -304,6 +343,10 @@ static void __init rbtx4939_setup(void) if (txx9_master_clock == 0) txx9_master_clock = 20000000; tx4939_setup(); #ifdef HAVE_RBTX4939_IOSWAB ioswabw = rbtx4939_ioswabw; __mem_ioswabw = rbtx4939_mem_ioswabw; #endif _machine_restart = rbtx4939_machine_restart; Loading Loading
arch/mips/include/asm/mach-tx49xx/mangle-port.h 0 → 100644 +26 −0 Original line number Diff line number Diff line #ifndef __ASM_MACH_TX49XX_MANGLE_PORT_H #define __ASM_MACH_TX49XX_MANGLE_PORT_H #define __swizzle_addr_b(port) (port) #define __swizzle_addr_w(port) (port) #define __swizzle_addr_l(port) (port) #define __swizzle_addr_q(port) (port) #define ioswabb(a, x) (x) #define __mem_ioswabb(a, x) (x) #if defined(CONFIG_TOSHIBA_RBTX4939) && \ (defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)) && \ defined(__BIG_ENDIAN) #define NEEDS_TXX9_IOSWABW extern u16 (*ioswabw)(volatile u16 *a, u16 x); extern u16 (*__mem_ioswabw)(volatile u16 *a, u16 x); #else #define ioswabw(a, x) le16_to_cpu(x) #define __mem_ioswabw(a, x) (x) #endif #define ioswabl(a, x) le32_to_cpu(x) #define __mem_ioswabl(a, x) (x) #define ioswabq(a, x) le64_to_cpu(x) #define __mem_ioswabq(a, x) (x) #endif /* __ASM_MACH_TX49XX_MANGLE_PORT_H */
arch/mips/txx9/generic/setup.c +15 −0 Original line number Diff line number Diff line Loading @@ -622,6 +622,21 @@ unsigned long (*__swizzle_addr_b)(unsigned long port) = __swizzle_addr_none; EXPORT_SYMBOL(__swizzle_addr_b); #endif #ifdef NEEDS_TXX9_IOSWABW static u16 ioswabw_default(volatile u16 *a, u16 x) { return le16_to_cpu(x); } static u16 __mem_ioswabw_default(volatile u16 *a, u16 x) { return x; } u16 (*ioswabw)(volatile u16 *a, u16 x) = ioswabw_default; EXPORT_SYMBOL(ioswabw); u16 (*__mem_ioswabw)(volatile u16 *a, u16 x) = __mem_ioswabw_default; EXPORT_SYMBOL(__mem_ioswabw); #endif void __init txx9_physmap_flash_init(int no, unsigned long addr, unsigned long size, const struct physmap_flash_data *pdata) Loading
arch/mips/txx9/rbtx4939/setup.c +43 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ #include <linux/types.h> #include <linux/platform_device.h> #include <linux/leds.h> #include <linux/interrupt.h> #include <linux/smc91x.h> #include <asm/reboot.h> #include <asm/txx9/generic.h> #include <asm/txx9/pci.h> Loading @@ -33,6 +35,21 @@ static void __init rbtx4939_time_init(void) tx4939_time_init(0); } #if defined(__BIG_ENDIAN) && \ (defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)) #define HAVE_RBTX4939_IOSWAB #define IS_CE1_ADDR(addr) \ ((((unsigned long)(addr) - IO_BASE) & 0xfff00000) == TXX9_CE(1)) static u16 rbtx4939_ioswabw(volatile u16 *a, u16 x) { return IS_CE1_ADDR(a) ? x : le16_to_cpu(x); } static u16 rbtx4939_mem_ioswabw(volatile u16 *a, u16 x) { return !IS_CE1_ADDR(a) ? x : le16_to_cpu(x); } #endif /* __BIG_ENDIAN && CONFIG_SMC91X */ static void __init rbtx4939_pci_setup(void) { #ifdef CONFIG_PCI Loading Loading @@ -272,6 +289,22 @@ static void __init rbtx4939_arch_init(void) static void __init rbtx4939_device_init(void) { unsigned long smc_addr = RBTX4939_ETHER_ADDR - IO_BASE; struct resource smc_res[] = { { .start = smc_addr, .end = smc_addr + 0x10 - 1, .flags = IORESOURCE_MEM, }, { .start = RBTX4939_IRQ_ETHER, /* override default irq flag defined in smc91x.h */ .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, }, }; struct smc91x_platdata smc_pdata = { .flags = SMC91X_USE_16BIT, }; struct platform_device *pdev; #if defined(CONFIG_TC35815) || defined(CONFIG_TC35815_MODULE) int i, j; unsigned char ethaddr[2][6]; Loading @@ -288,6 +321,12 @@ static void __init rbtx4939_device_init(void) } tx4939_ethaddr_init(ethaddr[0], ethaddr[1]); #endif pdev = platform_device_alloc("smc91x", -1); if (!pdev || platform_device_add_resources(pdev, smc_res, ARRAY_SIZE(smc_res)) || platform_device_add_data(pdev, &smc_pdata, sizeof(smc_pdata)) || platform_device_add(pdev)) platform_device_put(pdev); rbtx4939_led_setup(); tx4939_wdt_init(); tx4939_ata_init(); Loading @@ -304,6 +343,10 @@ static void __init rbtx4939_setup(void) if (txx9_master_clock == 0) txx9_master_clock = 20000000; tx4939_setup(); #ifdef HAVE_RBTX4939_IOSWAB ioswabw = rbtx4939_ioswabw; __mem_ioswabw = rbtx4939_mem_ioswabw; #endif _machine_restart = rbtx4939_machine_restart; Loading