diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-05-20 06:00:43 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-05-20 06:00:43 -0400 |
commit | d71f4cece4bd97d05592836202fc04ff2e7817e3 (patch) | |
tree | 6c877c7a938758b1323d9c97d46b9c536e618c69 /arch | |
parent | 19008bdacb9f7841166ebafe0aef361ee582ffbf (diff) | |
parent | ad8332c1302bcb4f80d593fd3eb477be9d7f5604 (diff) |
Merge branch 'topic/asoc' into for-linus
Conflicts:
sound/soc/codecs/ad1938.c
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-davinci/board-dm365-evm.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mcbsp.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-s3c2412/dma.c | 3 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/mcbsp.h | 6 | ||||
-rw-r--r-- | arch/arm/plat-omap/mcbsp.c | 89 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/regs-s3c2412-iis.h | 82 |
6 files changed, 88 insertions, 108 deletions
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index df4ab2105869..e78d8110b12e 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
@@ -605,7 +605,11 @@ static __init void dm365_evm_init(void) | |||
605 | /* maybe setup mmc1/etc ... _after_ mmc0 */ | 605 | /* maybe setup mmc1/etc ... _after_ mmc0 */ |
606 | evm_init_cpld(); | 606 | evm_init_cpld(); |
607 | 607 | ||
608 | #ifdef CONFIG_SND_DM365_AIC3X_CODEC | ||
608 | dm365_init_asp(&dm365_evm_snd_data); | 609 | dm365_init_asp(&dm365_evm_snd_data); |
610 | #elif defined(CONFIG_SND_DM365_VOICE_CODEC) | ||
611 | dm365_init_vc(&dm365_evm_snd_data); | ||
612 | #endif | ||
609 | dm365_init_rtc(); | 613 | dm365_init_rtc(); |
610 | dm365_init_ks(&dm365evm_ks_data); | 614 | dm365_init_ks(&dm365evm_ks_data); |
611 | 615 | ||
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c index 2f3cad6f9402..c29337074ad3 100644 --- a/arch/arm/mach-omap2/mcbsp.c +++ b/arch/arm/mach-omap2/mcbsp.c | |||
@@ -187,32 +187,28 @@ static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = { | |||
187 | .phys_base = OMAP44XX_MCBSP1_BASE, | 187 | .phys_base = OMAP44XX_MCBSP1_BASE, |
188 | .dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX, | 188 | .dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX, |
189 | .dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX, | 189 | .dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX, |
190 | .rx_irq = INT_24XX_MCBSP1_IRQ_RX, | 190 | .tx_irq = OMAP44XX_IRQ_MCBSP1, |
191 | .tx_irq = INT_24XX_MCBSP1_IRQ_TX, | ||
192 | .ops = &omap2_mcbsp_ops, | 191 | .ops = &omap2_mcbsp_ops, |
193 | }, | 192 | }, |
194 | { | 193 | { |
195 | .phys_base = OMAP44XX_MCBSP2_BASE, | 194 | .phys_base = OMAP44XX_MCBSP2_BASE, |
196 | .dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX, | 195 | .dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX, |
197 | .dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX, | 196 | .dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX, |
198 | .rx_irq = INT_24XX_MCBSP2_IRQ_RX, | 197 | .tx_irq = OMAP44XX_IRQ_MCBSP2, |
199 | .tx_irq = INT_24XX_MCBSP2_IRQ_TX, | ||
200 | .ops = &omap2_mcbsp_ops, | 198 | .ops = &omap2_mcbsp_ops, |
201 | }, | 199 | }, |
202 | { | 200 | { |
203 | .phys_base = OMAP44XX_MCBSP3_BASE, | 201 | .phys_base = OMAP44XX_MCBSP3_BASE, |
204 | .dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX, | 202 | .dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX, |
205 | .dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX, | 203 | .dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX, |
206 | .rx_irq = INT_24XX_MCBSP3_IRQ_RX, | 204 | .tx_irq = OMAP44XX_IRQ_MCBSP3, |
207 | .tx_irq = INT_24XX_MCBSP3_IRQ_TX, | ||
208 | .ops = &omap2_mcbsp_ops, | 205 | .ops = &omap2_mcbsp_ops, |
209 | }, | 206 | }, |
210 | { | 207 | { |
211 | .phys_base = OMAP44XX_MCBSP4_BASE, | 208 | .phys_base = OMAP44XX_MCBSP4_BASE, |
212 | .dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX, | 209 | .dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX, |
213 | .dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX, | 210 | .dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX, |
214 | .rx_irq = INT_24XX_MCBSP4_IRQ_RX, | 211 | .tx_irq = OMAP44XX_IRQ_MCBSP4, |
215 | .tx_irq = INT_24XX_MCBSP4_IRQ_TX, | ||
216 | .ops = &omap2_mcbsp_ops, | 212 | .ops = &omap2_mcbsp_ops, |
217 | }, | 213 | }, |
218 | }; | 214 | }; |
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c index e880524904eb..7abecfca0b7e 100644 --- a/arch/arm/mach-s3c2412/dma.c +++ b/arch/arm/mach-s3c2412/dma.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <mach/regs-mem.h> | 30 | #include <mach/regs-mem.h> |
31 | #include <mach/regs-lcd.h> | 31 | #include <mach/regs-lcd.h> |
32 | #include <mach/regs-sdi.h> | 32 | #include <mach/regs-sdi.h> |
33 | #include <plat/regs-s3c2412-iis.h> | ||
34 | #include <plat/regs-iis.h> | 33 | #include <plat/regs-iis.h> |
35 | #include <plat/regs-spi.h> | 34 | #include <plat/regs-spi.h> |
36 | 35 | ||
@@ -119,13 +118,11 @@ static struct s3c24xx_dma_map __initdata s3c2412_dma_mappings[] = { | |||
119 | .name = "i2s-sdi", | 118 | .name = "i2s-sdi", |
120 | .channels = MAP(S3C2412_DMAREQSEL_I2SRX), | 119 | .channels = MAP(S3C2412_DMAREQSEL_I2SRX), |
121 | .channels_rx = MAP(S3C2412_DMAREQSEL_I2SRX), | 120 | .channels_rx = MAP(S3C2412_DMAREQSEL_I2SRX), |
122 | .hw_addr.from = S3C2410_PA_IIS + S3C2412_IISRXD, | ||
123 | }, | 121 | }, |
124 | [DMACH_I2S_OUT] = { | 122 | [DMACH_I2S_OUT] = { |
125 | .name = "i2s-sdo", | 123 | .name = "i2s-sdo", |
126 | .channels = MAP(S3C2412_DMAREQSEL_I2STX), | 124 | .channels = MAP(S3C2412_DMAREQSEL_I2STX), |
127 | .channels_rx = MAP(S3C2412_DMAREQSEL_I2STX), | 125 | .channels_rx = MAP(S3C2412_DMAREQSEL_I2STX), |
128 | .hw_addr.to = S3C2410_PA_IIS + S3C2412_IISTXD, | ||
129 | }, | 126 | }, |
130 | [DMACH_USB_EP1] = { | 127 | [DMACH_USB_EP1] = { |
131 | .name = "usb-ep1", | 128 | .name = "usb-ep1", |
diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h index 7de903d7c1ce..975744f10a58 100644 --- a/arch/arm/plat-omap/include/plat/mcbsp.h +++ b/arch/arm/plat-omap/include/plat/mcbsp.h | |||
@@ -149,6 +149,8 @@ | |||
149 | #define OMAP_MCBSP_REG_WAKEUPEN 0xA8 | 149 | #define OMAP_MCBSP_REG_WAKEUPEN 0xA8 |
150 | #define OMAP_MCBSP_REG_XCCR 0xAC | 150 | #define OMAP_MCBSP_REG_XCCR 0xAC |
151 | #define OMAP_MCBSP_REG_RCCR 0xB0 | 151 | #define OMAP_MCBSP_REG_RCCR 0xB0 |
152 | #define OMAP_MCBSP_REG_XBUFFSTAT 0xB4 | ||
153 | #define OMAP_MCBSP_REG_RBUFFSTAT 0xB8 | ||
152 | #define OMAP_MCBSP_REG_SSELCR 0xBC | 154 | #define OMAP_MCBSP_REG_SSELCR 0xBC |
153 | 155 | ||
154 | #define OMAP_ST_REG_REV 0x00 | 156 | #define OMAP_ST_REG_REV 0x00 |
@@ -471,6 +473,8 @@ void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold); | |||
471 | void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold); | 473 | void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold); |
472 | u16 omap_mcbsp_get_max_tx_threshold(unsigned int id); | 474 | u16 omap_mcbsp_get_max_tx_threshold(unsigned int id); |
473 | u16 omap_mcbsp_get_max_rx_threshold(unsigned int id); | 475 | u16 omap_mcbsp_get_max_rx_threshold(unsigned int id); |
476 | u16 omap_mcbsp_get_tx_delay(unsigned int id); | ||
477 | u16 omap_mcbsp_get_rx_delay(unsigned int id); | ||
474 | int omap_mcbsp_get_dma_op_mode(unsigned int id); | 478 | int omap_mcbsp_get_dma_op_mode(unsigned int id); |
475 | #else | 479 | #else |
476 | static inline void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) | 480 | static inline void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) |
@@ -479,6 +483,8 @@ static inline void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold) | |||
479 | { } | 483 | { } |
480 | static inline u16 omap_mcbsp_get_max_tx_threshold(unsigned int id) { return 0; } | 484 | static inline u16 omap_mcbsp_get_max_tx_threshold(unsigned int id) { return 0; } |
481 | static inline u16 omap_mcbsp_get_max_rx_threshold(unsigned int id) { return 0; } | 485 | static inline u16 omap_mcbsp_get_max_rx_threshold(unsigned int id) { return 0; } |
486 | static inline u16 omap_mcbsp_get_tx_delay(unsigned int id) { return 0; } | ||
487 | static inline u16 omap_mcbsp_get_rx_delay(unsigned int id) { return 0; } | ||
482 | static inline int omap_mcbsp_get_dma_op_mode(unsigned int id) { return 0; } | 488 | static inline int omap_mcbsp_get_dma_op_mode(unsigned int id) { return 0; } |
483 | #endif | 489 | #endif |
484 | int omap_mcbsp_request(unsigned int id); | 490 | int omap_mcbsp_request(unsigned int id); |
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index e1d0440fd4a8..7e669c9744d8 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c | |||
@@ -489,7 +489,7 @@ void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) | |||
489 | { | 489 | { |
490 | struct omap_mcbsp *mcbsp; | 490 | struct omap_mcbsp *mcbsp; |
491 | 491 | ||
492 | if (!cpu_is_omap34xx()) | 492 | if (!cpu_is_omap34xx() && !cpu_is_omap44xx()) |
493 | return; | 493 | return; |
494 | 494 | ||
495 | if (!omap_mcbsp_check_valid_id(id)) { | 495 | if (!omap_mcbsp_check_valid_id(id)) { |
@@ -511,7 +511,7 @@ void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold) | |||
511 | { | 511 | { |
512 | struct omap_mcbsp *mcbsp; | 512 | struct omap_mcbsp *mcbsp; |
513 | 513 | ||
514 | if (!cpu_is_omap34xx()) | 514 | if (!cpu_is_omap34xx() && !cpu_is_omap44xx()) |
515 | return; | 515 | return; |
516 | 516 | ||
517 | if (!omap_mcbsp_check_valid_id(id)) { | 517 | if (!omap_mcbsp_check_valid_id(id)) { |
@@ -560,6 +560,61 @@ u16 omap_mcbsp_get_max_rx_threshold(unsigned int id) | |||
560 | } | 560 | } |
561 | EXPORT_SYMBOL(omap_mcbsp_get_max_rx_threshold); | 561 | EXPORT_SYMBOL(omap_mcbsp_get_max_rx_threshold); |
562 | 562 | ||
563 | #define MCBSP2_FIFO_SIZE 0x500 /* 1024 + 256 locations */ | ||
564 | #define MCBSP1345_FIFO_SIZE 0x80 /* 128 locations */ | ||
565 | /* | ||
566 | * omap_mcbsp_get_tx_delay returns the number of used slots in the McBSP FIFO | ||
567 | */ | ||
568 | u16 omap_mcbsp_get_tx_delay(unsigned int id) | ||
569 | { | ||
570 | struct omap_mcbsp *mcbsp; | ||
571 | u16 buffstat; | ||
572 | |||
573 | if (!omap_mcbsp_check_valid_id(id)) { | ||
574 | printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); | ||
575 | return -ENODEV; | ||
576 | } | ||
577 | mcbsp = id_to_mcbsp_ptr(id); | ||
578 | |||
579 | /* Returns the number of free locations in the buffer */ | ||
580 | buffstat = MCBSP_READ(mcbsp, XBUFFSTAT); | ||
581 | |||
582 | /* Number of slots are different in McBSP ports */ | ||
583 | if (mcbsp->id == 2) | ||
584 | return MCBSP2_FIFO_SIZE - buffstat; | ||
585 | else | ||
586 | return MCBSP1345_FIFO_SIZE - buffstat; | ||
587 | } | ||
588 | EXPORT_SYMBOL(omap_mcbsp_get_tx_delay); | ||
589 | |||
590 | /* | ||
591 | * omap_mcbsp_get_rx_delay returns the number of free slots in the McBSP FIFO | ||
592 | * to reach the threshold value (when the DMA will be triggered to read it) | ||
593 | */ | ||
594 | u16 omap_mcbsp_get_rx_delay(unsigned int id) | ||
595 | { | ||
596 | struct omap_mcbsp *mcbsp; | ||
597 | u16 buffstat, threshold; | ||
598 | |||
599 | if (!omap_mcbsp_check_valid_id(id)) { | ||
600 | printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); | ||
601 | return -ENODEV; | ||
602 | } | ||
603 | mcbsp = id_to_mcbsp_ptr(id); | ||
604 | |||
605 | /* Returns the number of used locations in the buffer */ | ||
606 | buffstat = MCBSP_READ(mcbsp, RBUFFSTAT); | ||
607 | /* RX threshold */ | ||
608 | threshold = MCBSP_READ(mcbsp, THRSH1); | ||
609 | |||
610 | /* Return the number of location till we reach the threshold limit */ | ||
611 | if (threshold <= buffstat) | ||
612 | return 0; | ||
613 | else | ||
614 | return threshold - buffstat; | ||
615 | } | ||
616 | EXPORT_SYMBOL(omap_mcbsp_get_rx_delay); | ||
617 | |||
563 | /* | 618 | /* |
564 | * omap_mcbsp_get_dma_op_mode just return the current configured | 619 | * omap_mcbsp_get_dma_op_mode just return the current configured |
565 | * operating mode for the mcbsp channel | 620 | * operating mode for the mcbsp channel |
@@ -587,7 +642,7 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp) | |||
587 | * Enable wakup behavior, smart idle and all wakeups | 642 | * Enable wakup behavior, smart idle and all wakeups |
588 | * REVISIT: some wakeups may be unnecessary | 643 | * REVISIT: some wakeups may be unnecessary |
589 | */ | 644 | */ |
590 | if (cpu_is_omap34xx()) { | 645 | if (cpu_is_omap34xx() || cpu_is_omap44xx()) { |
591 | u16 syscon; | 646 | u16 syscon; |
592 | 647 | ||
593 | syscon = MCBSP_READ(mcbsp, SYSCON); | 648 | syscon = MCBSP_READ(mcbsp, SYSCON); |
@@ -610,7 +665,7 @@ static inline void omap34xx_mcbsp_free(struct omap_mcbsp *mcbsp) | |||
610 | /* | 665 | /* |
611 | * Disable wakup behavior, smart idle and all wakeups | 666 | * Disable wakup behavior, smart idle and all wakeups |
612 | */ | 667 | */ |
613 | if (cpu_is_omap34xx()) { | 668 | if (cpu_is_omap34xx() || cpu_is_omap44xx()) { |
614 | u16 syscon; | 669 | u16 syscon; |
615 | 670 | ||
616 | syscon = MCBSP_READ(mcbsp, SYSCON); | 671 | syscon = MCBSP_READ(mcbsp, SYSCON); |
@@ -724,14 +779,17 @@ int omap_mcbsp_request(unsigned int id) | |||
724 | goto err_clk_disable; | 779 | goto err_clk_disable; |
725 | } | 780 | } |
726 | 781 | ||
727 | init_completion(&mcbsp->rx_irq_completion); | 782 | if (mcbsp->rx_irq) { |
728 | err = request_irq(mcbsp->rx_irq, omap_mcbsp_rx_irq_handler, | 783 | init_completion(&mcbsp->rx_irq_completion); |
784 | err = request_irq(mcbsp->rx_irq, | ||
785 | omap_mcbsp_rx_irq_handler, | ||
729 | 0, "McBSP", (void *)mcbsp); | 786 | 0, "McBSP", (void *)mcbsp); |
730 | if (err != 0) { | 787 | if (err != 0) { |
731 | dev_err(mcbsp->dev, "Unable to request RX IRQ %d " | 788 | dev_err(mcbsp->dev, "Unable to request RX IRQ %d " |
732 | "for McBSP%d\n", mcbsp->rx_irq, | 789 | "for McBSP%d\n", mcbsp->rx_irq, |
733 | mcbsp->id); | 790 | mcbsp->id); |
734 | goto err_free_irq; | 791 | goto err_free_irq; |
792 | } | ||
735 | } | 793 | } |
736 | } | 794 | } |
737 | 795 | ||
@@ -781,7 +839,8 @@ void omap_mcbsp_free(unsigned int id) | |||
781 | 839 | ||
782 | if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) { | 840 | if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) { |
783 | /* Free IRQs */ | 841 | /* Free IRQs */ |
784 | free_irq(mcbsp->rx_irq, (void *)mcbsp); | 842 | if (mcbsp->rx_irq) |
843 | free_irq(mcbsp->rx_irq, (void *)mcbsp); | ||
785 | free_irq(mcbsp->tx_irq, (void *)mcbsp); | 844 | free_irq(mcbsp->tx_irq, (void *)mcbsp); |
786 | } | 845 | } |
787 | 846 | ||
@@ -855,7 +914,7 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx) | |||
855 | MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 7)); | 914 | MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 7)); |
856 | } | 915 | } |
857 | 916 | ||
858 | if (cpu_is_omap2430() || cpu_is_omap34xx()) { | 917 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { |
859 | /* Release the transmitter and receiver */ | 918 | /* Release the transmitter and receiver */ |
860 | w = MCBSP_READ_CACHE(mcbsp, XCCR); | 919 | w = MCBSP_READ_CACHE(mcbsp, XCCR); |
861 | w &= ~(tx ? XDISABLE : 0); | 920 | w &= ~(tx ? XDISABLE : 0); |
@@ -885,7 +944,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) | |||
885 | 944 | ||
886 | /* Reset transmitter */ | 945 | /* Reset transmitter */ |
887 | tx &= 1; | 946 | tx &= 1; |
888 | if (cpu_is_omap2430() || cpu_is_omap34xx()) { | 947 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { |
889 | w = MCBSP_READ_CACHE(mcbsp, XCCR); | 948 | w = MCBSP_READ_CACHE(mcbsp, XCCR); |
890 | w |= (tx ? XDISABLE : 0); | 949 | w |= (tx ? XDISABLE : 0); |
891 | MCBSP_WRITE(mcbsp, XCCR, w); | 950 | MCBSP_WRITE(mcbsp, XCCR, w); |
@@ -895,7 +954,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) | |||
895 | 954 | ||
896 | /* Reset receiver */ | 955 | /* Reset receiver */ |
897 | rx &= 1; | 956 | rx &= 1; |
898 | if (cpu_is_omap2430() || cpu_is_omap34xx()) { | 957 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { |
899 | w = MCBSP_READ_CACHE(mcbsp, RCCR); | 958 | w = MCBSP_READ_CACHE(mcbsp, RCCR); |
900 | w |= (rx ? RDISABLE : 0); | 959 | w |= (rx ? RDISABLE : 0); |
901 | MCBSP_WRITE(mcbsp, RCCR, w); | 960 | MCBSP_WRITE(mcbsp, RCCR, w); |
diff --git a/arch/arm/plat-samsung/include/plat/regs-s3c2412-iis.h b/arch/arm/plat-samsung/include/plat/regs-s3c2412-iis.h deleted file mode 100644 index abf2fbc2eb2f..000000000000 --- a/arch/arm/plat-samsung/include/plat/regs-s3c2412-iis.h +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
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_BLC_16BIT (0 << 13) | ||
37 | #define S3C64XX_IISMOD_BLC_8BIT (1 << 13) | ||
38 | #define S3C64XX_IISMOD_BLC_24BIT (2 << 13) | ||
39 | #define S3C64XX_IISMOD_BLC_MASK (3 << 13) | ||
40 | |||
41 | #define S3C64XX_IISMOD_IMS_PCLK (0 << 10) | ||
42 | #define S3C64XX_IISMOD_IMS_SYSMUX (1 << 10) | ||
43 | |||
44 | #define S3C2412_IISMOD_MASTER_INTERNAL (0 << 10) | ||
45 | #define S3C2412_IISMOD_MASTER_EXTERNAL (1 << 10) | ||
46 | #define S3C2412_IISMOD_SLAVE (2 << 10) | ||
47 | #define S3C2412_IISMOD_MASTER_MASK (3 << 10) | ||
48 | #define S3C2412_IISMOD_MODE_TXONLY (0 << 8) | ||
49 | #define S3C2412_IISMOD_MODE_RXONLY (1 << 8) | ||
50 | #define S3C2412_IISMOD_MODE_TXRX (2 << 8) | ||
51 | #define S3C2412_IISMOD_MODE_MASK (3 << 8) | ||
52 | #define S3C2412_IISMOD_LR_LLOW (0 << 7) | ||
53 | #define S3C2412_IISMOD_LR_RLOW (1 << 7) | ||
54 | #define S3C2412_IISMOD_SDF_IIS (0 << 5) | ||
55 | #define S3C2412_IISMOD_SDF_MSB (1 << 5) | ||
56 | #define S3C2412_IISMOD_SDF_LSB (2 << 5) | ||
57 | #define S3C2412_IISMOD_SDF_MASK (3 << 5) | ||
58 | #define S3C2412_IISMOD_RCLK_256FS (0 << 3) | ||
59 | #define S3C2412_IISMOD_RCLK_512FS (1 << 3) | ||
60 | #define S3C2412_IISMOD_RCLK_384FS (2 << 3) | ||
61 | #define S3C2412_IISMOD_RCLK_768FS (3 << 3) | ||
62 | #define S3C2412_IISMOD_RCLK_MASK (3 << 3) | ||
63 | #define S3C2412_IISMOD_BCLK_32FS (0 << 1) | ||
64 | #define S3C2412_IISMOD_BCLK_48FS (1 << 1) | ||
65 | #define S3C2412_IISMOD_BCLK_16FS (2 << 1) | ||
66 | #define S3C2412_IISMOD_BCLK_24FS (3 << 1) | ||
67 | #define S3C2412_IISMOD_BCLK_MASK (3 << 1) | ||
68 | #define S3C2412_IISMOD_8BIT (1 << 0) | ||
69 | |||
70 | #define S3C64XX_IISMOD_CDCLKCON (1 << 12) | ||
71 | |||
72 | #define S3C2412_IISPSR_PSREN (1 << 15) | ||
73 | |||
74 | #define S3C2412_IISFIC_TXFLUSH (1 << 15) | ||
75 | #define S3C2412_IISFIC_RXFLUSH (1 << 7) | ||
76 | #define S3C2412_IISFIC_TXCOUNT(x) (((x) >> 8) & 0xf) | ||
77 | #define S3C2412_IISFIC_RXCOUNT(x) (((x) >> 0) & 0xf) | ||
78 | |||
79 | |||
80 | |||
81 | #endif /* __ASM_ARCH_REGS_S3C2412_IIS_H */ | ||
82 | |||