diff options
Diffstat (limited to 'arch/arm')
26 files changed, 305 insertions, 27 deletions
diff --git a/arch/arm/include/asm/socket.h b/arch/arm/include/asm/socket.h index 6817be9573a6..537de4e0ef50 100644 --- a/arch/arm/include/asm/socket.h +++ b/arch/arm/include/asm/socket.h | |||
@@ -54,4 +54,7 @@ | |||
54 | 54 | ||
55 | #define SO_MARK 36 | 55 | #define SO_MARK 36 |
56 | 56 | ||
57 | #define SO_TIMESTAMPING 37 | ||
58 | #define SCM_TIMESTAMPING SO_TIMESTAMPING | ||
59 | |||
57 | #endif /* _ASM_SOCKET_H */ | 60 | #endif /* _ASM_SOCKET_H */ |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 45eacb5a2ecd..6874c7dca75a 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -76,7 +76,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
76 | 76 | ||
77 | seq_printf(p, "%3d: ", i); | 77 | seq_printf(p, "%3d: ", i); |
78 | for_each_present_cpu(cpu) | 78 | for_each_present_cpu(cpu) |
79 | seq_printf(p, "%10u ", kstat_cpu(cpu).irqs[i]); | 79 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu)); |
80 | seq_printf(p, " %10s", irq_desc[i].chip->name ? : "-"); | 80 | seq_printf(p, " %10s", irq_desc[i].chip->name ? : "-"); |
81 | seq_printf(p, " %s", action->name); | 81 | seq_printf(p, " %s", action->name); |
82 | for (action = action->next; action; action = action->next) | 82 | for (action = action->next; action; action = action->next) |
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index b3404b7775b3..0d2074f51a59 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -231,14 +231,17 @@ static struct platform_device kirkwood_switch_device = { | |||
231 | 231 | ||
232 | void __init kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq) | 232 | void __init kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq) |
233 | { | 233 | { |
234 | int i; | ||
235 | |||
234 | if (irq != NO_IRQ) { | 236 | if (irq != NO_IRQ) { |
235 | kirkwood_switch_resources[0].start = irq; | 237 | kirkwood_switch_resources[0].start = irq; |
236 | kirkwood_switch_resources[0].end = irq; | 238 | kirkwood_switch_resources[0].end = irq; |
237 | kirkwood_switch_device.num_resources = 1; | 239 | kirkwood_switch_device.num_resources = 1; |
238 | } | 240 | } |
239 | 241 | ||
240 | d->mii_bus = &kirkwood_ge00_shared.dev; | ||
241 | d->netdev = &kirkwood_ge00.dev; | 242 | d->netdev = &kirkwood_ge00.dev; |
243 | for (i = 0; i < d->nr_chips; i++) | ||
244 | d->chip[i].mii_bus = &kirkwood_ge00_shared.dev; | ||
242 | kirkwood_switch_device.dev.platform_data = d; | 245 | kirkwood_switch_device.dev.platform_data = d; |
243 | 246 | ||
244 | platform_device_register(&kirkwood_switch_device); | 247 | platform_device_register(&kirkwood_switch_device); |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index 9a0e905d10cd..e1c0516c4df3 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
@@ -75,7 +75,7 @@ static struct mv643xx_eth_platform_data rd88f6281_ge00_data = { | |||
75 | .duplex = DUPLEX_FULL, | 75 | .duplex = DUPLEX_FULL, |
76 | }; | 76 | }; |
77 | 77 | ||
78 | static struct dsa_platform_data rd88f6281_switch_data = { | 78 | static struct dsa_chip_data rd88f6281_switch_chip_data = { |
79 | .port_names[0] = "lan1", | 79 | .port_names[0] = "lan1", |
80 | .port_names[1] = "lan2", | 80 | .port_names[1] = "lan2", |
81 | .port_names[2] = "lan3", | 81 | .port_names[2] = "lan3", |
@@ -83,6 +83,11 @@ static struct dsa_platform_data rd88f6281_switch_data = { | |||
83 | .port_names[5] = "cpu", | 83 | .port_names[5] = "cpu", |
84 | }; | 84 | }; |
85 | 85 | ||
86 | static struct dsa_platform_data rd88f6281_switch_plat_data = { | ||
87 | .nr_chips = 1, | ||
88 | .chip = &rd88f6281_switch_chip_data, | ||
89 | }; | ||
90 | |||
86 | static struct mv643xx_eth_platform_data rd88f6281_ge01_data = { | 91 | static struct mv643xx_eth_platform_data rd88f6281_ge01_data = { |
87 | .phy_addr = MV643XX_ETH_PHY_ADDR(11), | 92 | .phy_addr = MV643XX_ETH_PHY_ADDR(11), |
88 | }; | 93 | }; |
@@ -105,12 +110,12 @@ static void __init rd88f6281_init(void) | |||
105 | kirkwood_ge00_init(&rd88f6281_ge00_data); | 110 | kirkwood_ge00_init(&rd88f6281_ge00_data); |
106 | kirkwood_pcie_id(&dev, &rev); | 111 | kirkwood_pcie_id(&dev, &rev); |
107 | if (rev == MV88F6281_REV_A0) { | 112 | if (rev == MV88F6281_REV_A0) { |
108 | rd88f6281_switch_data.sw_addr = 10; | 113 | rd88f6281_switch_chip_data.sw_addr = 10; |
109 | kirkwood_ge01_init(&rd88f6281_ge01_data); | 114 | kirkwood_ge01_init(&rd88f6281_ge01_data); |
110 | } else { | 115 | } else { |
111 | rd88f6281_switch_data.port_names[4] = "wan"; | 116 | rd88f6281_switch_chip_data.port_names[4] = "wan"; |
112 | } | 117 | } |
113 | kirkwood_ge00_switch_init(&rd88f6281_switch_data, NO_IRQ); | 118 | kirkwood_ge00_switch_init(&rd88f6281_switch_plat_data, NO_IRQ); |
114 | 119 | ||
115 | kirkwood_rtc_init(); | 120 | kirkwood_rtc_init(); |
116 | kirkwood_sata_init(&rd88f6281_sata_data); | 121 | kirkwood_sata_init(&rd88f6281_sata_data); |
diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c index 22e0eb6e9ec4..feb0e54a91de 100644 --- a/arch/arm/mach-ns9xxx/irq.c +++ b/arch/arm/mach-ns9xxx/irq.c | |||
@@ -63,7 +63,6 @@ static struct irq_chip ns9xxx_chip = { | |||
63 | #else | 63 | #else |
64 | static void handle_prio_irq(unsigned int irq, struct irq_desc *desc) | 64 | static void handle_prio_irq(unsigned int irq, struct irq_desc *desc) |
65 | { | 65 | { |
66 | unsigned int cpu = smp_processor_id(); | ||
67 | struct irqaction *action; | 66 | struct irqaction *action; |
68 | irqreturn_t action_ret; | 67 | irqreturn_t action_ret; |
69 | 68 | ||
@@ -72,7 +71,7 @@ static void handle_prio_irq(unsigned int irq, struct irq_desc *desc) | |||
72 | BUG_ON(desc->status & IRQ_INPROGRESS); | 71 | BUG_ON(desc->status & IRQ_INPROGRESS); |
73 | 72 | ||
74 | desc->status &= ~(IRQ_REPLAY | IRQ_WAITING); | 73 | desc->status &= ~(IRQ_REPLAY | IRQ_WAITING); |
75 | kstat_cpu(cpu).irqs[irq]++; | 74 | kstat_incr_irqs_this_cpu(irq, desc); |
76 | 75 | ||
77 | action = desc->action; | 76 | action = desc->action; |
78 | if (unlikely(!action || (desc->status & IRQ_DISABLED))) | 77 | if (unlikely(!action || (desc->status & IRQ_DISABLED))) |
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 8a0e49d84256..68cc3efae567 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <plat/ehci-orion.h> | 31 | #include <plat/ehci-orion.h> |
32 | #include <plat/mv_xor.h> | 32 | #include <plat/mv_xor.h> |
33 | #include <plat/orion_nand.h> | 33 | #include <plat/orion_nand.h> |
34 | #include <plat/orion5x_wdt.h> | ||
34 | #include <plat/time.h> | 35 | #include <plat/time.h> |
35 | #include "common.h" | 36 | #include "common.h" |
36 | 37 | ||
@@ -219,14 +220,17 @@ static struct platform_device orion5x_switch_device = { | |||
219 | 220 | ||
220 | void __init orion5x_eth_switch_init(struct dsa_platform_data *d, int irq) | 221 | void __init orion5x_eth_switch_init(struct dsa_platform_data *d, int irq) |
221 | { | 222 | { |
223 | int i; | ||
224 | |||
222 | if (irq != NO_IRQ) { | 225 | if (irq != NO_IRQ) { |
223 | orion5x_switch_resources[0].start = irq; | 226 | orion5x_switch_resources[0].start = irq; |
224 | orion5x_switch_resources[0].end = irq; | 227 | orion5x_switch_resources[0].end = irq; |
225 | orion5x_switch_device.num_resources = 1; | 228 | orion5x_switch_device.num_resources = 1; |
226 | } | 229 | } |
227 | 230 | ||
228 | d->mii_bus = &orion5x_eth_shared.dev; | ||
229 | d->netdev = &orion5x_eth.dev; | 231 | d->netdev = &orion5x_eth.dev; |
232 | for (i = 0; i < d->nr_chips; i++) | ||
233 | d->chip[i].mii_bus = &orion5x_eth_shared.dev; | ||
230 | orion5x_switch_device.dev.platform_data = d; | 234 | orion5x_switch_device.dev.platform_data = d; |
231 | 235 | ||
232 | platform_device_register(&orion5x_switch_device); | 236 | platform_device_register(&orion5x_switch_device); |
@@ -533,6 +537,29 @@ void __init orion5x_xor_init(void) | |||
533 | 537 | ||
534 | 538 | ||
535 | /***************************************************************************** | 539 | /***************************************************************************** |
540 | * Watchdog | ||
541 | ****************************************************************************/ | ||
542 | static struct orion5x_wdt_platform_data orion5x_wdt_data = { | ||
543 | .tclk = 0, | ||
544 | }; | ||
545 | |||
546 | static struct platform_device orion5x_wdt_device = { | ||
547 | .name = "orion5x_wdt", | ||
548 | .id = -1, | ||
549 | .dev = { | ||
550 | .platform_data = &orion5x_wdt_data, | ||
551 | }, | ||
552 | .num_resources = 0, | ||
553 | }; | ||
554 | |||
555 | void __init orion5x_wdt_init(void) | ||
556 | { | ||
557 | orion5x_wdt_data.tclk = orion5x_tclk; | ||
558 | platform_device_register(&orion5x_wdt_device); | ||
559 | } | ||
560 | |||
561 | |||
562 | /***************************************************************************** | ||
536 | * Time handling | 563 | * Time handling |
537 | ****************************************************************************/ | 564 | ****************************************************************************/ |
538 | int orion5x_tclk; | 565 | int orion5x_tclk; |
@@ -631,6 +658,11 @@ void __init orion5x_init(void) | |||
631 | printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n"); | 658 | printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n"); |
632 | disable_hlt(); | 659 | disable_hlt(); |
633 | } | 660 | } |
661 | |||
662 | /* | ||
663 | * Register watchdog driver | ||
664 | */ | ||
665 | orion5x_wdt_init(); | ||
634 | } | 666 | } |
635 | 667 | ||
636 | /* | 668 | /* |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c index 15f53235ee30..9c1ca41730ba 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | |||
@@ -94,7 +94,7 @@ static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = { | |||
94 | .duplex = DUPLEX_FULL, | 94 | .duplex = DUPLEX_FULL, |
95 | }; | 95 | }; |
96 | 96 | ||
97 | static struct dsa_platform_data rd88f5181l_fxo_switch_data = { | 97 | static struct dsa_chip_data rd88f5181l_fxo_switch_chip_data = { |
98 | .port_names[0] = "lan2", | 98 | .port_names[0] = "lan2", |
99 | .port_names[1] = "lan1", | 99 | .port_names[1] = "lan1", |
100 | .port_names[2] = "wan", | 100 | .port_names[2] = "wan", |
@@ -103,6 +103,11 @@ static struct dsa_platform_data rd88f5181l_fxo_switch_data = { | |||
103 | .port_names[7] = "lan3", | 103 | .port_names[7] = "lan3", |
104 | }; | 104 | }; |
105 | 105 | ||
106 | static struct dsa_platform_data rd88f5181l_fxo_switch_plat_data = { | ||
107 | .nr_chips = 1, | ||
108 | .chip = &rd88f5181l_fxo_switch_chip_data, | ||
109 | }; | ||
110 | |||
106 | static void __init rd88f5181l_fxo_init(void) | 111 | static void __init rd88f5181l_fxo_init(void) |
107 | { | 112 | { |
108 | /* | 113 | /* |
@@ -117,7 +122,7 @@ static void __init rd88f5181l_fxo_init(void) | |||
117 | */ | 122 | */ |
118 | orion5x_ehci0_init(); | 123 | orion5x_ehci0_init(); |
119 | orion5x_eth_init(&rd88f5181l_fxo_eth_data); | 124 | orion5x_eth_init(&rd88f5181l_fxo_eth_data); |
120 | orion5x_eth_switch_init(&rd88f5181l_fxo_switch_data, NO_IRQ); | 125 | orion5x_eth_switch_init(&rd88f5181l_fxo_switch_plat_data, NO_IRQ); |
121 | orion5x_uart0_init(); | 126 | orion5x_uart0_init(); |
122 | 127 | ||
123 | orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, | 128 | orion5x_setup_dev_boot_win(RD88F5181L_FXO_NOR_BOOT_BASE, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c index 8ad3934399d4..ee1399ff0ced 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | |||
@@ -95,7 +95,7 @@ static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = { | |||
95 | .duplex = DUPLEX_FULL, | 95 | .duplex = DUPLEX_FULL, |
96 | }; | 96 | }; |
97 | 97 | ||
98 | static struct dsa_platform_data rd88f5181l_ge_switch_data = { | 98 | static struct dsa_chip_data rd88f5181l_ge_switch_chip_data = { |
99 | .port_names[0] = "lan2", | 99 | .port_names[0] = "lan2", |
100 | .port_names[1] = "lan1", | 100 | .port_names[1] = "lan1", |
101 | .port_names[2] = "wan", | 101 | .port_names[2] = "wan", |
@@ -104,6 +104,11 @@ static struct dsa_platform_data rd88f5181l_ge_switch_data = { | |||
104 | .port_names[7] = "lan3", | 104 | .port_names[7] = "lan3", |
105 | }; | 105 | }; |
106 | 106 | ||
107 | static struct dsa_platform_data rd88f5181l_ge_switch_plat_data = { | ||
108 | .nr_chips = 1, | ||
109 | .chip = &rd88f5181l_ge_switch_chip_data, | ||
110 | }; | ||
111 | |||
107 | static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { | 112 | static struct i2c_board_info __initdata rd88f5181l_ge_i2c_rtc = { |
108 | I2C_BOARD_INFO("ds1338", 0x68), | 113 | I2C_BOARD_INFO("ds1338", 0x68), |
109 | }; | 114 | }; |
@@ -122,7 +127,8 @@ static void __init rd88f5181l_ge_init(void) | |||
122 | */ | 127 | */ |
123 | orion5x_ehci0_init(); | 128 | orion5x_ehci0_init(); |
124 | orion5x_eth_init(&rd88f5181l_ge_eth_data); | 129 | orion5x_eth_init(&rd88f5181l_ge_eth_data); |
125 | orion5x_eth_switch_init(&rd88f5181l_ge_switch_data, gpio_to_irq(8)); | 130 | orion5x_eth_switch_init(&rd88f5181l_ge_switch_plat_data, |
131 | gpio_to_irq(8)); | ||
126 | orion5x_i2c_init(); | 132 | orion5x_i2c_init(); |
127 | orion5x_uart0_init(); | 133 | orion5x_uart0_init(); |
128 | 134 | ||
diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c index 262e25e4dace..7737cf9a8f50 100644 --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | |||
@@ -35,7 +35,7 @@ static struct mv643xx_eth_platform_data rd88f6183ap_ge_eth_data = { | |||
35 | .duplex = DUPLEX_FULL, | 35 | .duplex = DUPLEX_FULL, |
36 | }; | 36 | }; |
37 | 37 | ||
38 | static struct dsa_platform_data rd88f6183ap_ge_switch_data = { | 38 | static struct dsa_chip_data rd88f6183ap_ge_switch_chip_data = { |
39 | .port_names[0] = "lan1", | 39 | .port_names[0] = "lan1", |
40 | .port_names[1] = "lan2", | 40 | .port_names[1] = "lan2", |
41 | .port_names[2] = "lan3", | 41 | .port_names[2] = "lan3", |
@@ -44,6 +44,11 @@ static struct dsa_platform_data rd88f6183ap_ge_switch_data = { | |||
44 | .port_names[5] = "cpu", | 44 | .port_names[5] = "cpu", |
45 | }; | 45 | }; |
46 | 46 | ||
47 | static struct dsa_platform_data rd88f6183ap_ge_switch_plat_data = { | ||
48 | .nr_chips = 1, | ||
49 | .chip = &rd88f6183ap_ge_switch_chip_data, | ||
50 | }; | ||
51 | |||
47 | static struct mtd_partition rd88f6183ap_ge_partitions[] = { | 52 | static struct mtd_partition rd88f6183ap_ge_partitions[] = { |
48 | { | 53 | { |
49 | .name = "kernel", | 54 | .name = "kernel", |
@@ -89,7 +94,8 @@ static void __init rd88f6183ap_ge_init(void) | |||
89 | */ | 94 | */ |
90 | orion5x_ehci0_init(); | 95 | orion5x_ehci0_init(); |
91 | orion5x_eth_init(&rd88f6183ap_ge_eth_data); | 96 | orion5x_eth_init(&rd88f6183ap_ge_eth_data); |
92 | orion5x_eth_switch_init(&rd88f6183ap_ge_switch_data, gpio_to_irq(3)); | 97 | orion5x_eth_switch_init(&rd88f6183ap_ge_switch_plat_data, |
98 | gpio_to_irq(3)); | ||
93 | spi_register_board_info(rd88f6183ap_ge_spi_slave_info, | 99 | spi_register_board_info(rd88f6183ap_ge_spi_slave_info, |
94 | ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); | 100 | ARRAY_SIZE(rd88f6183ap_ge_spi_slave_info)); |
95 | orion5x_spi_init(); | 101 | orion5x_spi_init(); |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index cc8f89200865..1b4ad9d5e2eb 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
@@ -106,7 +106,7 @@ static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = { | |||
106 | .duplex = DUPLEX_FULL, | 106 | .duplex = DUPLEX_FULL, |
107 | }; | 107 | }; |
108 | 108 | ||
109 | static struct dsa_platform_data wrt350n_v2_switch_data = { | 109 | static struct dsa_chip_data wrt350n_v2_switch_chip_data = { |
110 | .port_names[0] = "lan2", | 110 | .port_names[0] = "lan2", |
111 | .port_names[1] = "lan1", | 111 | .port_names[1] = "lan1", |
112 | .port_names[2] = "wan", | 112 | .port_names[2] = "wan", |
@@ -115,6 +115,11 @@ static struct dsa_platform_data wrt350n_v2_switch_data = { | |||
115 | .port_names[7] = "lan4", | 115 | .port_names[7] = "lan4", |
116 | }; | 116 | }; |
117 | 117 | ||
118 | static struct dsa_platform_data wrt350n_v2_switch_plat_data = { | ||
119 | .nr_chips = 1, | ||
120 | .chip = &wrt350n_v2_switch_chip_data, | ||
121 | }; | ||
122 | |||
118 | static void __init wrt350n_v2_init(void) | 123 | static void __init wrt350n_v2_init(void) |
119 | { | 124 | { |
120 | /* | 125 | /* |
@@ -129,7 +134,7 @@ static void __init wrt350n_v2_init(void) | |||
129 | */ | 134 | */ |
130 | orion5x_ehci0_init(); | 135 | orion5x_ehci0_init(); |
131 | orion5x_eth_init(&wrt350n_v2_eth_data); | 136 | orion5x_eth_init(&wrt350n_v2_eth_data); |
132 | orion5x_eth_switch_init(&wrt350n_v2_switch_data, NO_IRQ); | 137 | orion5x_eth_switch_init(&wrt350n_v2_switch_plat_data, NO_IRQ); |
133 | orion5x_uart0_init(); | 138 | orion5x_uart0_init(); |
134 | 139 | ||
135 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, | 140 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, |
diff --git a/arch/arm/mach-pxa/e740.c b/arch/arm/mach-pxa/e740.c index 6d48e00f4f0b..a6fff782e7a8 100644 --- a/arch/arm/mach-pxa/e740.c +++ b/arch/arm/mach-pxa/e740.c | |||
@@ -135,6 +135,11 @@ static unsigned long e740_pin_config[] __initdata = { | |||
135 | /* IrDA */ | 135 | /* IrDA */ |
136 | GPIO38_GPIO | MFP_LPM_DRIVE_HIGH, | 136 | GPIO38_GPIO | MFP_LPM_DRIVE_HIGH, |
137 | 137 | ||
138 | /* Audio power control */ | ||
139 | GPIO16_GPIO, /* AC97 codec AVDD2 supply (analogue power) */ | ||
140 | GPIO40_GPIO, /* Mic amp power */ | ||
141 | GPIO41_GPIO, /* Headphone amp power */ | ||
142 | |||
138 | /* PC Card */ | 143 | /* PC Card */ |
139 | GPIO8_GPIO, /* CD0 */ | 144 | GPIO8_GPIO, /* CD0 */ |
140 | GPIO44_GPIO, /* CD1 */ | 145 | GPIO44_GPIO, /* CD1 */ |
diff --git a/arch/arm/mach-pxa/e750.c b/arch/arm/mach-pxa/e750.c index be1ab8edb973..665066fd280e 100644 --- a/arch/arm/mach-pxa/e750.c +++ b/arch/arm/mach-pxa/e750.c | |||
@@ -133,6 +133,11 @@ static unsigned long e750_pin_config[] __initdata = { | |||
133 | /* IrDA */ | 133 | /* IrDA */ |
134 | GPIO38_GPIO | MFP_LPM_DRIVE_HIGH, | 134 | GPIO38_GPIO | MFP_LPM_DRIVE_HIGH, |
135 | 135 | ||
136 | /* Audio power control */ | ||
137 | GPIO4_GPIO, /* Headphone amp power */ | ||
138 | GPIO7_GPIO, /* Speaker amp power */ | ||
139 | GPIO37_GPIO, /* Headphone detect */ | ||
140 | |||
136 | /* PC Card */ | 141 | /* PC Card */ |
137 | GPIO8_GPIO, /* CD0 */ | 142 | GPIO8_GPIO, /* CD0 */ |
138 | GPIO44_GPIO, /* CD1 */ | 143 | GPIO44_GPIO, /* CD1 */ |
diff --git a/arch/arm/mach-pxa/h5000.c b/arch/arm/mach-pxa/h5000.c index da6e4422c0f3..295ec413d804 100644 --- a/arch/arm/mach-pxa/h5000.c +++ b/arch/arm/mach-pxa/h5000.c | |||
@@ -153,6 +153,13 @@ static unsigned long h5000_pin_config[] __initdata = { | |||
153 | GPIO23_SSP1_SCLK, | 153 | GPIO23_SSP1_SCLK, |
154 | GPIO25_SSP1_TXD, | 154 | GPIO25_SSP1_TXD, |
155 | GPIO26_SSP1_RXD, | 155 | GPIO26_SSP1_RXD, |
156 | |||
157 | /* I2S */ | ||
158 | GPIO28_I2S_BITCLK_OUT, | ||
159 | GPIO29_I2S_SDATA_IN, | ||
160 | GPIO30_I2S_SDATA_OUT, | ||
161 | GPIO31_I2S_SYNC, | ||
162 | GPIO32_I2S_SYSCLK, | ||
156 | }; | 163 | }; |
157 | 164 | ||
158 | /* | 165 | /* |
diff --git a/arch/arm/mach-pxa/include/mach/eseries-gpio.h b/arch/arm/mach-pxa/include/mach/eseries-gpio.h index efbd2aa9ecec..f3e5509820d7 100644 --- a/arch/arm/mach-pxa/include/mach/eseries-gpio.h +++ b/arch/arm/mach-pxa/include/mach/eseries-gpio.h | |||
@@ -45,6 +45,21 @@ | |||
45 | /* e7xx IrDA power control */ | 45 | /* e7xx IrDA power control */ |
46 | #define GPIO_E7XX_IR_OFF 38 | 46 | #define GPIO_E7XX_IR_OFF 38 |
47 | 47 | ||
48 | /* e740 audio control GPIOs */ | ||
49 | #define GPIO_E740_WM9705_nAVDD2 16 | ||
50 | #define GPIO_E740_MIC_ON 40 | ||
51 | #define GPIO_E740_AMP_ON 41 | ||
52 | |||
53 | /* e750 audio control GPIOs */ | ||
54 | #define GPIO_E750_HP_AMP_OFF 4 | ||
55 | #define GPIO_E750_SPK_AMP_OFF 7 | ||
56 | #define GPIO_E750_HP_DETECT 37 | ||
57 | |||
58 | /* e800 audio control GPIOs */ | ||
59 | #define GPIO_E800_HP_DETECT 81 | ||
60 | #define GPIO_E800_HP_AMP_OFF 82 | ||
61 | #define GPIO_E800_SPK_AMP_ON 83 | ||
62 | |||
48 | /* ASIC related GPIOs */ | 63 | /* ASIC related GPIOs */ |
49 | #define GPIO_ESERIES_TMIO_IRQ 5 | 64 | #define GPIO_ESERIES_TMIO_IRQ 5 |
50 | #define GPIO_ESERIES_TMIO_PCLR 19 | 65 | #define GPIO_ESERIES_TMIO_PCLR 19 |
diff --git a/arch/arm/mach-pxa/include/mach/regs-ssp.h b/arch/arm/mach-pxa/include/mach/regs-ssp.h index cf31986f6f05..018f6d65b57b 100644 --- a/arch/arm/mach-pxa/include/mach/regs-ssp.h +++ b/arch/arm/mach-pxa/include/mach/regs-ssp.h | |||
@@ -50,7 +50,7 @@ | |||
50 | #define SSCR0_TUM (1 << 23) /* Transmit FIFO underrun interrupt mask */ | 50 | #define SSCR0_TUM (1 << 23) /* Transmit FIFO underrun interrupt mask */ |
51 | #define SSCR0_FRDC (0x07000000) /* Frame rate divider control (mask) */ | 51 | #define SSCR0_FRDC (0x07000000) /* Frame rate divider control (mask) */ |
52 | #define SSCR0_SlotsPerFrm(x) (((x) - 1) << 24) /* Time slots per frame [1..8] */ | 52 | #define SSCR0_SlotsPerFrm(x) (((x) - 1) << 24) /* Time slots per frame [1..8] */ |
53 | #define SSCR0_ADC (1 << 30) /* Audio clock select */ | 53 | #define SSCR0_ACS (1 << 30) /* Audio clock select */ |
54 | #define SSCR0_MOD (1 << 31) /* Mode (normal or network) */ | 54 | #define SSCR0_MOD (1 << 31) /* Mode (normal or network) */ |
55 | #endif | 55 | #endif |
56 | 56 | ||
@@ -109,6 +109,11 @@ | |||
109 | #define SSSR_TINT (1 << 19) /* Receiver Time-out Interrupt */ | 109 | #define SSSR_TINT (1 << 19) /* Receiver Time-out Interrupt */ |
110 | #define SSSR_PINT (1 << 18) /* Peripheral Trailing Byte Interrupt */ | 110 | #define SSSR_PINT (1 << 18) /* Peripheral Trailing Byte Interrupt */ |
111 | 111 | ||
112 | #if defined(CONFIG_PXA3xx) | ||
113 | #define SSPSP_EDMYSTOP(x) ((x) << 28) /* Extended Dummy Stop */ | ||
114 | #define SSPSP_EDMYSTRT(x) ((x) << 26) /* Extended Dummy Start */ | ||
115 | #endif | ||
116 | |||
112 | #define SSPSP_FSRT (1 << 25) /* Frame Sync Relative Timing */ | 117 | #define SSPSP_FSRT (1 << 25) /* Frame Sync Relative Timing */ |
113 | #define SSPSP_DMYSTOP(x) ((x) << 23) /* Dummy Stop */ | 118 | #define SSPSP_DMYSTOP(x) ((x) << 23) /* Dummy Stop */ |
114 | #define SSPSP_SFRMWDTH(x) ((x) << 16) /* Serial Frame Width */ | 119 | #define SSPSP_SFRMWDTH(x) ((x) << 16) /* Serial Frame Width */ |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 6d447c9ce8ab..0d62d311d41a 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -105,6 +105,12 @@ static unsigned long spitz_pin_config[] __initdata = { | |||
105 | GPIO57_nIOIS16, | 105 | GPIO57_nIOIS16, |
106 | GPIO104_PSKTSEL, | 106 | GPIO104_PSKTSEL, |
107 | 107 | ||
108 | /* I2S */ | ||
109 | GPIO28_I2S_BITCLK_OUT, | ||
110 | GPIO29_I2S_SDATA_IN, | ||
111 | GPIO30_I2S_SDATA_OUT, | ||
112 | GPIO31_I2S_SYNC, | ||
113 | |||
108 | /* MMC */ | 114 | /* MMC */ |
109 | GPIO32_MMC_CLK, | 115 | GPIO32_MMC_CLK, |
110 | GPIO112_MMC_CMD, | 116 | GPIO112_MMC_CMD, |
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c index 552b4c778fdc..440c014e24b3 100644 --- a/arch/arm/mach-s3c2410/dma.c +++ b/arch/arm/mach-s3c2410/dma.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <mach/regs-mem.h> | 28 | #include <mach/regs-mem.h> |
29 | #include <mach/regs-lcd.h> | 29 | #include <mach/regs-lcd.h> |
30 | #include <mach/regs-sdi.h> | 30 | #include <mach/regs-sdi.h> |
31 | #include <asm/plat-s3c24xx/regs-iis.h> | 31 | #include <plat/regs-iis.h> |
32 | #include <plat/regs-spi.h> | 32 | #include <plat/regs-spi.h> |
33 | 33 | ||
34 | static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = { | 34 | static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = { |
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c index 6078f09b7df5..8331e8d97e20 100644 --- a/arch/arm/mach-s3c2410/usb-simtec.c +++ b/arch/arm/mach-s3c2410/usb-simtec.c | |||
@@ -29,13 +29,14 @@ | |||
29 | 29 | ||
30 | #include <mach/bast-map.h> | 30 | #include <mach/bast-map.h> |
31 | #include <mach/bast-irq.h> | 31 | #include <mach/bast-irq.h> |
32 | #include <mach/usb-control.h> | ||
33 | #include <mach/regs-gpio.h> | 32 | #include <mach/regs-gpio.h> |
34 | 33 | ||
35 | #include <mach/hardware.h> | 34 | #include <mach/hardware.h> |
36 | #include <asm/irq.h> | 35 | #include <asm/irq.h> |
37 | 36 | ||
37 | #include <plat/usb-control.h> | ||
38 | #include <plat/devs.h> | 38 | #include <plat/devs.h> |
39 | |||
39 | #include "usb-simtec.h" | 40 | #include "usb-simtec.h" |
40 | 41 | ||
41 | /* control power and monitor over-current events on various Simtec | 42 | /* control power and monitor over-current events on various Simtec |
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c index 919856c9433f..9e3478506c6f 100644 --- a/arch/arm/mach-s3c2412/dma.c +++ b/arch/arm/mach-s3c2412/dma.c | |||
@@ -29,8 +29,8 @@ | |||
29 | #include <mach/regs-mem.h> | 29 | #include <mach/regs-mem.h> |
30 | #include <mach/regs-lcd.h> | 30 | #include <mach/regs-lcd.h> |
31 | #include <mach/regs-sdi.h> | 31 | #include <mach/regs-sdi.h> |
32 | #include <asm/plat-s3c24xx/regs-s3c2412-iis.h> | 32 | #include <plat/regs-s3c2412-iis.h> |
33 | #include <asm/plat-s3c24xx/regs-iis.h> | 33 | #include <plat/regs-iis.h> |
34 | #include <plat/regs-spi.h> | 34 | #include <plat/regs-spi.h> |
35 | 35 | ||
36 | #define MAP(x) { (x)| DMA_CH_VALID, (x)| DMA_CH_VALID, (x)| DMA_CH_VALID, (x)| DMA_CH_VALID } | 36 | #define MAP(x) { (x)| DMA_CH_VALID, (x)| DMA_CH_VALID, (x)| DMA_CH_VALID, (x)| DMA_CH_VALID } |
diff --git a/arch/arm/mach-s3c2440/dma.c b/arch/arm/mach-s3c2440/dma.c index 5b5ee0b8f4e0..69b6cf34df47 100644 --- a/arch/arm/mach-s3c2440/dma.c +++ b/arch/arm/mach-s3c2440/dma.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <mach/regs-mem.h> | 28 | #include <mach/regs-mem.h> |
29 | #include <mach/regs-lcd.h> | 29 | #include <mach/regs-lcd.h> |
30 | #include <mach/regs-sdi.h> | 30 | #include <mach/regs-sdi.h> |
31 | #include <asm/plat-s3c24xx/regs-iis.h> | 31 | #include <plat/regs-iis.h> |
32 | #include <plat/regs-spi.h> | 32 | #include <plat/regs-spi.h> |
33 | 33 | ||
34 | static struct s3c24xx_dma_map __initdata s3c2440_dma_mappings[] = { | 34 | static struct s3c24xx_dma_map __initdata s3c2440_dma_mappings[] = { |
diff --git a/arch/arm/mach-s3c2443/dma.c b/arch/arm/mach-s3c2443/dma.c index 2a58a4d5aa5a..8430e5829186 100644 --- a/arch/arm/mach-s3c2443/dma.c +++ b/arch/arm/mach-s3c2443/dma.c | |||
@@ -29,7 +29,7 @@ | |||
29 | #include <mach/regs-mem.h> | 29 | #include <mach/regs-mem.h> |
30 | #include <mach/regs-lcd.h> | 30 | #include <mach/regs-lcd.h> |
31 | #include <mach/regs-sdi.h> | 31 | #include <mach/regs-sdi.h> |
32 | #include <asm/plat-s3c24xx/regs-iis.h> | 32 | #include <plat/regs-iis.h> |
33 | #include <plat/regs-spi.h> | 33 | #include <plat/regs-spi.h> |
34 | 34 | ||
35 | #define MAP(x) { \ | 35 | #define MAP(x) { \ |
diff --git a/arch/arm/plat-orion/include/plat/orion5x_wdt.h b/arch/arm/plat-orion/include/plat/orion5x_wdt.h new file mode 100644 index 000000000000..3c9cf6a305ef --- /dev/null +++ b/arch/arm/plat-orion/include/plat/orion5x_wdt.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/orion5x_wdt.h | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | |||
9 | #ifndef __PLAT_ORION5X_WDT_H | ||
10 | #define __PLAT_ORION5X_WDT_H | ||
11 | |||
12 | struct orion5x_wdt_platform_data { | ||
13 | u32 tclk; /* no <linux/clk.h> support yet */ | ||
14 | }; | ||
15 | |||
16 | |||
17 | #endif | ||
18 | |||
diff --git a/arch/arm/mach-s3c2410/include/mach/audio.h b/arch/arm/plat-s3c/include/plat/audio.h index de0e8da48bc3..de0e8da48bc3 100644 --- a/arch/arm/mach-s3c2410/include/mach/audio.h +++ b/arch/arm/plat-s3c/include/plat/audio.h | |||
diff --git a/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h b/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h new file mode 100644 index 000000000000..0fad7571030e --- /dev/null +++ b/arch/arm/plat-s3c/include/plat/regs-s3c2412-iis.h | |||
@@ -0,0 +1,75 @@ | |||
1 | /* linux/include/asm-arm/plat-s3c24xx/regs-s3c2412-iis.h | ||
2 | * | ||
3 | * Copyright 2007 Simtec Electronics <linux@simtec.co.uk> | ||
4 | * http://armlinux.simtec.co.uk/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * S3C2412 IIS register definition | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_S3C2412_IIS_H | ||
14 | #define __ASM_ARCH_REGS_S3C2412_IIS_H | ||
15 | |||
16 | #define S3C2412_IISCON (0x00) | ||
17 | #define S3C2412_IISMOD (0x04) | ||
18 | #define S3C2412_IISFIC (0x08) | ||
19 | #define S3C2412_IISPSR (0x0C) | ||
20 | #define S3C2412_IISTXD (0x10) | ||
21 | #define S3C2412_IISRXD (0x14) | ||
22 | |||
23 | #define S3C2412_IISCON_LRINDEX (1 << 11) | ||
24 | #define S3C2412_IISCON_TXFIFO_EMPTY (1 << 10) | ||
25 | #define S3C2412_IISCON_RXFIFO_EMPTY (1 << 9) | ||
26 | #define S3C2412_IISCON_TXFIFO_FULL (1 << 8) | ||
27 | #define S3C2412_IISCON_RXFIFO_FULL (1 << 7) | ||
28 | #define S3C2412_IISCON_TXDMA_PAUSE (1 << 6) | ||
29 | #define S3C2412_IISCON_RXDMA_PAUSE (1 << 5) | ||
30 | #define S3C2412_IISCON_TXCH_PAUSE (1 << 4) | ||
31 | #define S3C2412_IISCON_RXCH_PAUSE (1 << 3) | ||
32 | #define S3C2412_IISCON_TXDMA_ACTIVE (1 << 2) | ||
33 | #define S3C2412_IISCON_RXDMA_ACTIVE (1 << 1) | ||
34 | #define S3C2412_IISCON_IIS_ACTIVE (1 << 0) | ||
35 | |||
36 | #define S3C64XX_IISMOD_IMS_PCLK (0 << 10) | ||
37 | #define S3C64XX_IISMOD_IMS_SYSMUX (1 << 10) | ||
38 | |||
39 | #define S3C2412_IISMOD_MASTER_INTERNAL (0 << 10) | ||
40 | #define S3C2412_IISMOD_MASTER_EXTERNAL (1 << 10) | ||
41 | #define S3C2412_IISMOD_SLAVE (2 << 10) | ||
42 | #define S3C2412_IISMOD_MASTER_MASK (3 << 10) | ||
43 | #define S3C2412_IISMOD_MODE_TXONLY (0 << 8) | ||
44 | #define S3C2412_IISMOD_MODE_RXONLY (1 << 8) | ||
45 | #define S3C2412_IISMOD_MODE_TXRX (2 << 8) | ||
46 | #define S3C2412_IISMOD_MODE_MASK (3 << 8) | ||
47 | #define S3C2412_IISMOD_LR_LLOW (0 << 7) | ||
48 | #define S3C2412_IISMOD_LR_RLOW (1 << 7) | ||
49 | #define S3C2412_IISMOD_SDF_IIS (0 << 5) | ||
50 | #define S3C2412_IISMOD_SDF_MSB (1 << 5) | ||
51 | #define S3C2412_IISMOD_SDF_LSB (2 << 5) | ||
52 | #define S3C2412_IISMOD_SDF_MASK (3 << 5) | ||
53 | #define S3C2412_IISMOD_RCLK_256FS (0 << 3) | ||
54 | #define S3C2412_IISMOD_RCLK_512FS (1 << 3) | ||
55 | #define S3C2412_IISMOD_RCLK_384FS (2 << 3) | ||
56 | #define S3C2412_IISMOD_RCLK_768FS (3 << 3) | ||
57 | #define S3C2412_IISMOD_RCLK_MASK (3 << 3) | ||
58 | #define S3C2412_IISMOD_BCLK_32FS (0 << 1) | ||
59 | #define S3C2412_IISMOD_BCLK_48FS (1 << 1) | ||
60 | #define S3C2412_IISMOD_BCLK_16FS (2 << 1) | ||
61 | #define S3C2412_IISMOD_BCLK_24FS (3 << 1) | ||
62 | #define S3C2412_IISMOD_BCLK_MASK (3 << 1) | ||
63 | #define S3C2412_IISMOD_8BIT (1 << 0) | ||
64 | |||
65 | #define S3C2412_IISPSR_PSREN (1 << 15) | ||
66 | |||
67 | #define S3C2412_IISFIC_TXFLUSH (1 << 15) | ||
68 | #define S3C2412_IISFIC_RXFLUSH (1 << 7) | ||
69 | #define S3C2412_IISFIC_TXCOUNT(x) (((x) >> 8) & 0xf) | ||
70 | #define S3C2412_IISFIC_RXCOUNT(x) (((x) >> 0) & 0xf) | ||
71 | |||
72 | |||
73 | |||
74 | #endif /* __ASM_ARCH_REGS_S3C2412_IIS_H */ | ||
75 | |||
diff --git a/arch/arm/mach-s3c2410/include/mach/usb-control.h b/arch/arm/plat-s3c/include/plat/usb-control.h index cd91d1591f31..822c87fe948e 100644 --- a/arch/arm/mach-s3c2410/include/mach/usb-control.h +++ b/arch/arm/plat-s3c/include/plat/usb-control.h | |||
@@ -1,9 +1,9 @@ | |||
1 | /* arch/arm/mach-s3c2410/include/mach/usb-control.h | 1 | /* arch/arm/plat-s3c/include/plat/usb-control.h |
2 | * | 2 | * |
3 | * Copyright (c) 2004 Simtec Electronics | 3 | * Copyright (c) 2004 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 - usb port information | 6 | * S3C - USB host port information |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
@@ -11,7 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #ifndef __ASM_ARCH_USBCONTROL_H | 13 | #ifndef __ASM_ARCH_USBCONTROL_H |
14 | #define __ASM_ARCH_USBCONTROL_H "arch/arm/mach-s3c2410/include/mach/usb-control.h" | 14 | #define __ASM_ARCH_USBCONTROL_H |
15 | 15 | ||
16 | #define S3C_HCDFLG_USED (1) | 16 | #define S3C_HCDFLG_USED (1) |
17 | 17 | ||
diff --git a/arch/arm/plat-s3c24xx/include/plat/regs-iis.h b/arch/arm/plat-s3c24xx/include/plat/regs-iis.h new file mode 100644 index 000000000000..a6f1d5df13b4 --- /dev/null +++ b/arch/arm/plat-s3c24xx/include/plat/regs-iis.h | |||
@@ -0,0 +1,77 @@ | |||
1 | /* arch/arm/mach-s3c2410/include/mach/regs-iis.h | ||
2 | * | ||
3 | * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk> | ||
4 | * http://www.simtec.co.uk/products/SWLINUX/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * S3C2410 IIS register definition | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_IIS_H | ||
14 | #define __ASM_ARCH_REGS_IIS_H | ||
15 | |||
16 | #define S3C2410_IISCON (0x00) | ||
17 | |||
18 | #define S3C2410_IISCON_LRINDEX (1<<8) | ||
19 | #define S3C2410_IISCON_TXFIFORDY (1<<7) | ||
20 | #define S3C2410_IISCON_RXFIFORDY (1<<6) | ||
21 | #define S3C2410_IISCON_TXDMAEN (1<<5) | ||
22 | #define S3C2410_IISCON_RXDMAEN (1<<4) | ||
23 | #define S3C2410_IISCON_TXIDLE (1<<3) | ||
24 | #define S3C2410_IISCON_RXIDLE (1<<2) | ||
25 | #define S3C2410_IISCON_PSCEN (1<<1) | ||
26 | #define S3C2410_IISCON_IISEN (1<<0) | ||
27 | |||
28 | #define S3C2410_IISMOD (0x04) | ||
29 | |||
30 | #define S3C2440_IISMOD_MPLL (1<<9) | ||
31 | #define S3C2410_IISMOD_SLAVE (1<<8) | ||
32 | #define S3C2410_IISMOD_NOXFER (0<<6) | ||
33 | #define S3C2410_IISMOD_RXMODE (1<<6) | ||
34 | #define S3C2410_IISMOD_TXMODE (2<<6) | ||
35 | #define S3C2410_IISMOD_TXRXMODE (3<<6) | ||
36 | #define S3C2410_IISMOD_LR_LLOW (0<<5) | ||
37 | #define S3C2410_IISMOD_LR_RLOW (1<<5) | ||
38 | #define S3C2410_IISMOD_IIS (0<<4) | ||
39 | #define S3C2410_IISMOD_MSB (1<<4) | ||
40 | #define S3C2410_IISMOD_8BIT (0<<3) | ||
41 | #define S3C2410_IISMOD_16BIT (1<<3) | ||
42 | #define S3C2410_IISMOD_BITMASK (1<<3) | ||
43 | #define S3C2410_IISMOD_256FS (0<<2) | ||
44 | #define S3C2410_IISMOD_384FS (1<<2) | ||
45 | #define S3C2410_IISMOD_16FS (0<<0) | ||
46 | #define S3C2410_IISMOD_32FS (1<<0) | ||
47 | #define S3C2410_IISMOD_48FS (2<<0) | ||
48 | #define S3C2410_IISMOD_FS_MASK (3<<0) | ||
49 | |||
50 | #define S3C2410_IISPSR (0x08) | ||
51 | #define S3C2410_IISPSR_INTMASK (31<<5) | ||
52 | #define S3C2410_IISPSR_INTSHIFT (5) | ||
53 | #define S3C2410_IISPSR_EXTMASK (31<<0) | ||
54 | #define S3C2410_IISPSR_EXTSHFIT (0) | ||
55 | |||
56 | #define S3C2410_IISFCON (0x0c) | ||
57 | |||
58 | #define S3C2410_IISFCON_TXDMA (1<<15) | ||
59 | #define S3C2410_IISFCON_RXDMA (1<<14) | ||
60 | #define S3C2410_IISFCON_TXENABLE (1<<13) | ||
61 | #define S3C2410_IISFCON_RXENABLE (1<<12) | ||
62 | #define S3C2410_IISFCON_TXMASK (0x3f << 6) | ||
63 | #define S3C2410_IISFCON_TXSHIFT (6) | ||
64 | #define S3C2410_IISFCON_RXMASK (0x3f) | ||
65 | #define S3C2410_IISFCON_RXSHIFT (0) | ||
66 | |||
67 | #define S3C2400_IISFCON_TXDMA (1<<11) | ||
68 | #define S3C2400_IISFCON_RXDMA (1<<10) | ||
69 | #define S3C2400_IISFCON_TXENABLE (1<<9) | ||
70 | #define S3C2400_IISFCON_RXENABLE (1<<8) | ||
71 | #define S3C2400_IISFCON_TXMASK (0x07 << 4) | ||
72 | #define S3C2400_IISFCON_TXSHIFT (4) | ||
73 | #define S3C2400_IISFCON_RXMASK (0x07) | ||
74 | #define S3C2400_IISFCON_RXSHIFT (0) | ||
75 | |||
76 | #define S3C2410_IISFIFO (0x10) | ||
77 | #endif /* __ASM_ARCH_REGS_IIS_H */ | ||