diff options
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/dma.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/irqs.h | 22 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/regs-dsc.h | 36 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/regs-gpio.h | 28 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/regs-irq.h | 10 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/regs-s3c2416-mem.h | 30 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/include/mach/regs-s3c2416.h | 24 |
7 files changed, 150 insertions, 2 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/dma.h b/arch/arm/mach-s3c2410/include/mach/dma.h index 08ac5f96c012..cf68136cc668 100644 --- a/arch/arm/mach-s3c2410/include/mach/dma.h +++ b/arch/arm/mach-s3c2410/include/mach/dma.h | |||
| @@ -54,7 +54,7 @@ enum dma_ch { | |||
| 54 | #define DMACH_LOW_LEVEL (1<<28) /* use this to specifiy hardware ch no */ | 54 | #define DMACH_LOW_LEVEL (1<<28) /* use this to specifiy hardware ch no */ |
| 55 | 55 | ||
| 56 | /* we have 4 dma channels */ | 56 | /* we have 4 dma channels */ |
| 57 | #ifndef CONFIG_CPU_S3C2443 | 57 | #if !defined(CONFIG_CPU_S3C2443) && !defined(CONFIG_CPU_S3C2416) |
| 58 | #define S3C_DMA_CHANNELS (4) | 58 | #define S3C_DMA_CHANNELS (4) |
| 59 | #else | 59 | #else |
| 60 | #define S3C_DMA_CHANNELS (6) | 60 | #define S3C_DMA_CHANNELS (6) |
diff --git a/arch/arm/mach-s3c2410/include/mach/irqs.h b/arch/arm/mach-s3c2410/include/mach/irqs.h index 6c12c6312ad8..c1b8ec07bf45 100644 --- a/arch/arm/mach-s3c2410/include/mach/irqs.h +++ b/arch/arm/mach-s3c2410/include/mach/irqs.h | |||
| @@ -115,6 +115,26 @@ | |||
| 115 | #define IRQ_S3C2412_SDI S3C2410_IRQSUB(13) | 115 | #define IRQ_S3C2412_SDI S3C2410_IRQSUB(13) |
| 116 | #define IRQ_S3C2412_CF S3C2410_IRQSUB(14) | 116 | #define IRQ_S3C2412_CF S3C2410_IRQSUB(14) |
| 117 | 117 | ||
| 118 | |||
| 119 | #define IRQ_S3C2416_EINT8t15 S3C2410_IRQ(5) | ||
| 120 | #define IRQ_S3C2416_DMA S3C2410_IRQ(17) | ||
| 121 | #define IRQ_S3C2416_UART3 S3C2410_IRQ(18) | ||
| 122 | #define IRQ_S3C2416_SDI1 S3C2410_IRQ(20) | ||
| 123 | #define IRQ_S3C2416_SDI0 S3C2410_IRQ(21) | ||
| 124 | |||
| 125 | #define IRQ_S3C2416_LCD2 S3C2410_IRQSUB(15) | ||
| 126 | #define IRQ_S3C2416_LCD3 S3C2410_IRQSUB(16) | ||
| 127 | #define IRQ_S3C2416_LCD4 S3C2410_IRQSUB(17) | ||
| 128 | #define IRQ_S3C2416_DMA0 S3C2410_IRQSUB(18) | ||
| 129 | #define IRQ_S3C2416_DMA1 S3C2410_IRQSUB(19) | ||
| 130 | #define IRQ_S3C2416_DMA2 S3C2410_IRQSUB(20) | ||
| 131 | #define IRQ_S3C2416_DMA3 S3C2410_IRQSUB(21) | ||
| 132 | #define IRQ_S3C2416_DMA4 S3C2410_IRQSUB(22) | ||
| 133 | #define IRQ_S3C2416_DMA5 S3C2410_IRQSUB(23) | ||
| 134 | #define IRQ_S32416_WDT S3C2410_IRQSUB(27) | ||
| 135 | #define IRQ_S32416_AC97 S3C2410_IRQSUB(28) | ||
| 136 | |||
| 137 | |||
| 118 | /* extra irqs for s3c2440 */ | 138 | /* extra irqs for s3c2440 */ |
| 119 | 139 | ||
| 120 | #define IRQ_S3C2440_CAM_C S3C2410_IRQSUB(11) /* S3C2443 too */ | 140 | #define IRQ_S3C2440_CAM_C S3C2410_IRQSUB(11) /* S3C2443 too */ |
| @@ -152,7 +172,7 @@ | |||
| 152 | #define IRQ_S3C2443_WDT S3C2410_IRQSUB(27) | 172 | #define IRQ_S3C2443_WDT S3C2410_IRQSUB(27) |
| 153 | #define IRQ_S3C2443_AC97 S3C2410_IRQSUB(28) | 173 | #define IRQ_S3C2443_AC97 S3C2410_IRQSUB(28) |
| 154 | 174 | ||
| 155 | #ifdef CONFIG_CPU_S3C2443 | 175 | #if defined(CONFIG_CPU_S3C2443) || defined(CONFIG_CPU_S3C2416) |
| 156 | #define NR_IRQS (IRQ_S3C2443_AC97+1) | 176 | #define NR_IRQS (IRQ_S3C2443_AC97+1) |
| 157 | #else | 177 | #else |
| 158 | #define NR_IRQS (IRQ_S3C2440_AC97+1) | 178 | #define NR_IRQS (IRQ_S3C2440_AC97+1) |
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-dsc.h b/arch/arm/mach-s3c2410/include/mach/regs-dsc.h index 3c3853cd3cf7..98fd4a05587c 100644 --- a/arch/arm/mach-s3c2410/include/mach/regs-dsc.h +++ b/arch/arm/mach-s3c2410/include/mach/regs-dsc.h | |||
| @@ -19,6 +19,42 @@ | |||
| 19 | #define S3C2412_DSC1 S3C2410_GPIOREG(0xe0) | 19 | #define S3C2412_DSC1 S3C2410_GPIOREG(0xe0) |
| 20 | #endif | 20 | #endif |
| 21 | 21 | ||
| 22 | #if defined(CONFIG_CPU_S3C2416) | ||
| 23 | #define S3C2416_DSC0 S3C2410_GPIOREG(0xc0) | ||
| 24 | #define S3C2416_DSC1 S3C2410_GPIOREG(0xc4) | ||
| 25 | #define S3C2416_DSC2 S3C2410_GPIOREG(0xc8) | ||
| 26 | #define S3C2416_DSC3 S3C2410_GPIOREG(0x110) | ||
| 27 | |||
| 28 | #define S3C2416_SELECT_DSC0 (0 << 30) | ||
| 29 | #define S3C2416_SELECT_DSC1 (1 << 30) | ||
| 30 | #define S3C2416_SELECT_DSC2 (2 << 30) | ||
| 31 | #define S3C2416_SELECT_DSC3 (3 << 30) | ||
| 32 | |||
| 33 | #define S3C2416_DSC_GETSHIFT(x) (x & 30) | ||
| 34 | |||
| 35 | #define S3C2416_DSC0_CF (S3C2416_SELECT_DSC0 | 28) | ||
| 36 | #define S3C2416_DSC0_CF_5mA (0 << 28) | ||
| 37 | #define S3C2416_DSC0_CF_10mA (1 << 28) | ||
| 38 | #define S3C2416_DSC0_CF_15mA (2 << 28) | ||
| 39 | #define S3C2416_DSC0_CF_21mA (3 << 28) | ||
| 40 | #define S3C2416_DSC0_CF_MASK (3 << 28) | ||
| 41 | |||
| 42 | #define S3C2416_DSC0_nRBE (S3C2416_SELECT_DSC0 | 26) | ||
| 43 | #define S3C2416_DSC0_nRBE_5mA (0 << 26) | ||
| 44 | #define S3C2416_DSC0_nRBE_10mA (1 << 26) | ||
| 45 | #define S3C2416_DSC0_nRBE_15mA (2 << 26) | ||
| 46 | #define S3C2416_DSC0_nRBE_21mA (3 << 26) | ||
| 47 | #define S3C2416_DSC0_nRBE_MASK (3 << 26) | ||
| 48 | |||
| 49 | #define S3C2416_DSC0_nROE (S3C2416_SELECT_DSC0 | 24) | ||
| 50 | #define S3C2416_DSC0_nROE_5mA (0 << 24) | ||
| 51 | #define S3C2416_DSC0_nROE_10mA (1 << 24) | ||
| 52 | #define S3C2416_DSC0_nROE_15mA (2 << 24) | ||
| 53 | #define S3C2416_DSC0_nROE_21mA (3 << 24) | ||
| 54 | #define S3C2416_DSC0_nROE_MASK (3 << 24) | ||
| 55 | |||
| 56 | #endif | ||
| 57 | |||
| 22 | #if defined(CONFIG_CPU_S3C244X) | 58 | #if defined(CONFIG_CPU_S3C244X) |
| 23 | 59 | ||
| 24 | #define S3C2440_DSC0 S3C2410_GPIOREG(0xc4) | 60 | #define S3C2440_DSC0 S3C2410_GPIOREG(0xc4) |
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-gpio.h b/arch/arm/mach-s3c2410/include/mach/regs-gpio.h index 821b966bf05a..a6384239eddf 100644 --- a/arch/arm/mach-s3c2410/include/mach/regs-gpio.h +++ b/arch/arm/mach-s3c2410/include/mach/regs-gpio.h | |||
| @@ -610,29 +610,50 @@ | |||
| 610 | #define S3C2410_GPHUP S3C2410_GPIOREG(0x78) | 610 | #define S3C2410_GPHUP S3C2410_GPIOREG(0x78) |
| 611 | 611 | ||
| 612 | #define S3C2410_GPH0_nCTS0 (0x02 << 0) | 612 | #define S3C2410_GPH0_nCTS0 (0x02 << 0) |
| 613 | #define S3C2416_GPH0_TXD0 (0x02 << 0) | ||
| 613 | 614 | ||
| 614 | #define S3C2410_GPH1_nRTS0 (0x02 << 2) | 615 | #define S3C2410_GPH1_nRTS0 (0x02 << 2) |
| 616 | #define S3C2416_GPH1_RXD0 (0x02 << 2) | ||
| 615 | 617 | ||
| 616 | #define S3C2410_GPH2_TXD0 (0x02 << 4) | 618 | #define S3C2410_GPH2_TXD0 (0x02 << 4) |
| 619 | #define S3C2416_GPH2_TXD1 (0x02 << 4) | ||
| 617 | 620 | ||
| 618 | #define S3C2410_GPH3_RXD0 (0x02 << 6) | 621 | #define S3C2410_GPH3_RXD0 (0x02 << 6) |
| 622 | #define S3C2416_GPH3_RXD1 (0x02 << 6) | ||
| 619 | 623 | ||
| 620 | #define S3C2410_GPH4_TXD1 (0x02 << 8) | 624 | #define S3C2410_GPH4_TXD1 (0x02 << 8) |
| 625 | #define S3C2416_GPH4_TXD2 (0x02 << 8) | ||
| 621 | 626 | ||
| 622 | #define S3C2410_GPH5_RXD1 (0x02 << 10) | 627 | #define S3C2410_GPH5_RXD1 (0x02 << 10) |
| 628 | #define S3C2416_GPH5_RXD2 (0x02 << 10) | ||
| 623 | 629 | ||
| 624 | #define S3C2410_GPH6_TXD2 (0x02 << 12) | 630 | #define S3C2410_GPH6_TXD2 (0x02 << 12) |
| 631 | #define S3C2416_GPH6_TXD3 (0x02 << 12) | ||
| 625 | #define S3C2410_GPH6_nRTS1 (0x03 << 12) | 632 | #define S3C2410_GPH6_nRTS1 (0x03 << 12) |
| 633 | #define S3C2416_GPH6_nRTS2 (0x03 << 12) | ||
| 626 | 634 | ||
| 627 | #define S3C2410_GPH7_RXD2 (0x02 << 14) | 635 | #define S3C2410_GPH7_RXD2 (0x02 << 14) |
| 636 | #define S3C2416_GPH7_RXD3 (0x02 << 14) | ||
| 628 | #define S3C2410_GPH7_nCTS1 (0x03 << 14) | 637 | #define S3C2410_GPH7_nCTS1 (0x03 << 14) |
| 638 | #define S3C2416_GPH7_nCTS2 (0x03 << 14) | ||
| 629 | 639 | ||
| 630 | #define S3C2410_GPH8_UCLK (0x02 << 16) | 640 | #define S3C2410_GPH8_UCLK (0x02 << 16) |
| 641 | #define S3C2416_GPH8_nCTS0 (0x02 << 16) | ||
| 631 | 642 | ||
| 632 | #define S3C2410_GPH9_CLKOUT0 (0x02 << 18) | 643 | #define S3C2410_GPH9_CLKOUT0 (0x02 << 18) |
| 633 | #define S3C2442_GPH9_nSPICS0 (0x03 << 18) | 644 | #define S3C2442_GPH9_nSPICS0 (0x03 << 18) |
| 645 | #define S3C2416_GPH9_nRTS0 (0x02 << 18) | ||
| 634 | 646 | ||
| 635 | #define S3C2410_GPH10_CLKOUT1 (0x02 << 20) | 647 | #define S3C2410_GPH10_CLKOUT1 (0x02 << 20) |
| 648 | #define S3C2416_GPH10_nCTS1 (0x02 << 20) | ||
| 649 | |||
| 650 | #define S3C2416_GPH11_nRTS1 (0x02 << 22) | ||
| 651 | |||
| 652 | #define S3C2416_GPH12_EXTUARTCLK (0x02 << 24) | ||
| 653 | |||
| 654 | #define S3C2416_GPH13_CLKOUT0 (0x02 << 26) | ||
| 655 | |||
| 656 | #define S3C2416_GPH14_CLKOUT1 (0x02 << 28) | ||
| 636 | 657 | ||
| 637 | /* The S3C2412 and S3C2413 move the GPJ register set to after | 658 | /* The S3C2412 and S3C2413 move the GPJ register set to after |
| 638 | * GPH, which means all registers after 0x80 are now offset by 0x10 | 659 | * GPH, which means all registers after 0x80 are now offset by 0x10 |
| @@ -703,6 +724,7 @@ | |||
| 703 | #define S3C2412_MISCCR_CLK1_CLKsrc (0<<8) | 724 | #define S3C2412_MISCCR_CLK1_CLKsrc (0<<8) |
| 704 | 725 | ||
| 705 | #define S3C2410_MISCCR_USBSUSPND0 (1<<12) | 726 | #define S3C2410_MISCCR_USBSUSPND0 (1<<12) |
| 727 | #define S3C2416_MISCCR_SEL_SUSPND (1<<12) | ||
| 706 | #define S3C2410_MISCCR_USBSUSPND1 (1<<13) | 728 | #define S3C2410_MISCCR_USBSUSPND1 (1<<13) |
| 707 | 729 | ||
| 708 | #define S3C2410_MISCCR_nRSTCON (1<<16) | 730 | #define S3C2410_MISCCR_nRSTCON (1<<16) |
| @@ -712,6 +734,9 @@ | |||
| 712 | #define S3C2410_MISCCR_nEN_SCLKE (1<<19) /* not 2412 */ | 734 | #define S3C2410_MISCCR_nEN_SCLKE (1<<19) /* not 2412 */ |
| 713 | #define S3C2410_MISCCR_SDSLEEP (7<<17) | 735 | #define S3C2410_MISCCR_SDSLEEP (7<<17) |
| 714 | 736 | ||
| 737 | #define S3C2416_MISCCR_FLT_I2C (1<<24) | ||
| 738 | #define S3C2416_MISCCR_HSSPI_EN2 (1<<31) | ||
| 739 | |||
| 715 | /* external interrupt control... */ | 740 | /* external interrupt control... */ |
| 716 | /* S3C2410_EXTINT0 -> irq sense control for EINT0..EINT7 | 741 | /* S3C2410_EXTINT0 -> irq sense control for EINT0..EINT7 |
| 717 | * S3C2410_EXTINT1 -> irq sense control for EINT8..EINT15 | 742 | * S3C2410_EXTINT1 -> irq sense control for EINT8..EINT15 |
| @@ -779,8 +804,11 @@ | |||
| 779 | #define S3C2410_GSTATUS1_IDMASK (0xffff0000) | 804 | #define S3C2410_GSTATUS1_IDMASK (0xffff0000) |
| 780 | #define S3C2410_GSTATUS1_2410 (0x32410000) | 805 | #define S3C2410_GSTATUS1_2410 (0x32410000) |
| 781 | #define S3C2410_GSTATUS1_2412 (0x32412001) | 806 | #define S3C2410_GSTATUS1_2412 (0x32412001) |
| 807 | #define S3C2410_GSTATUS1_2416 (0x32416003) | ||
| 782 | #define S3C2410_GSTATUS1_2440 (0x32440000) | 808 | #define S3C2410_GSTATUS1_2440 (0x32440000) |
| 783 | #define S3C2410_GSTATUS1_2442 (0x32440aaa) | 809 | #define S3C2410_GSTATUS1_2442 (0x32440aaa) |
| 810 | /* some 2416 CPUs report this value also */ | ||
| 811 | #define S3C2410_GSTATUS1_2450 (0x32450003) | ||
| 784 | 812 | ||
| 785 | #define S3C2410_GSTATUS2_WTRESET (1<<2) | 813 | #define S3C2410_GSTATUS2_WTRESET (1<<2) |
| 786 | #define S3C2410_GSTATUS2_OFFRESET (1<<1) | 814 | #define S3C2410_GSTATUS2_OFFRESET (1<<1) |
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-irq.h b/arch/arm/mach-s3c2410/include/mach/regs-irq.h index de86ee8812bd..0f07ba30b1fb 100644 --- a/arch/arm/mach-s3c2410/include/mach/regs-irq.h +++ b/arch/arm/mach-s3c2410/include/mach/regs-irq.h | |||
| @@ -27,6 +27,16 @@ | |||
| 27 | #define S3C2410_SUBSRCPND S3C2410_IRQREG(0x018) | 27 | #define S3C2410_SUBSRCPND S3C2410_IRQREG(0x018) |
| 28 | #define S3C2410_INTSUBMSK S3C2410_IRQREG(0x01C) | 28 | #define S3C2410_INTSUBMSK S3C2410_IRQREG(0x01C) |
| 29 | 29 | ||
| 30 | #define S3C2416_PRIORITY_MODE1 S3C2410_IRQREG(0x030) | ||
| 31 | #define S3C2416_PRIORITY_UPDATE1 S3C2410_IRQREG(0x034) | ||
| 32 | #define S3C2416_SRCPND2 S3C2410_IRQREG(0x040) | ||
| 33 | #define S3C2416_INTMOD2 S3C2410_IRQREG(0x044) | ||
| 34 | #define S3C2416_INTMSK2 S3C2410_IRQREG(0x048) | ||
| 35 | #define S3C2416_INTPND2 S3C2410_IRQREG(0x050) | ||
| 36 | #define S3C2416_INTOFFSET2 S3C2410_IRQREG(0x054) | ||
| 37 | #define S3C2416_PRIORITY_MODE2 S3C2410_IRQREG(0x070) | ||
| 38 | #define S3C2416_PRIORITY_UPDATE2 S3C2410_IRQREG(0x074) | ||
| 39 | |||
| 30 | /* mask: 0=enable, 1=disable | 40 | /* mask: 0=enable, 1=disable |
| 31 | * 1 bit EINT, 4=EINT4, 23=EINT23 | 41 | * 1 bit EINT, 4=EINT4, 23=EINT23 |
| 32 | * EINT0,1,2,3 are not handled here. | 42 | * EINT0,1,2,3 are not handled here. |
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-s3c2416-mem.h b/arch/arm/mach-s3c2410/include/mach/regs-s3c2416-mem.h new file mode 100644 index 000000000000..2f31b74974af --- /dev/null +++ b/arch/arm/mach-s3c2410/include/mach/regs-s3c2416-mem.h | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | /* arch/arm/mach-s3c2410/include/mach/regs-s3c2416-mem.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2009 Yauhen Kharuzhy <jekhor@gmail.com>, | ||
| 4 | * as part of OpenInkpot project | ||
| 5 | * Copyright (c) 2009 Promwad Innovation Company | ||
| 6 | * Yauhen Kharuzhy <yauhen.kharuzhy@promwad.com> | ||
| 7 | * | ||
| 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 | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | * | ||
| 12 | * S3C2416 memory register definitions | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARM_REGS_S3C2416_MEM | ||
| 16 | #define __ASM_ARM_REGS_S3C2416_MEM | ||
| 17 | |||
| 18 | #ifndef S3C2416_MEMREG | ||
| 19 | #define S3C2416_MEMREG(x) (S3C24XX_VA_MEMCTRL + (x)) | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #define S3C2416_BANKCFG S3C2416_MEMREG(0x00) | ||
| 23 | #define S3C2416_BANKCON1 S3C2416_MEMREG(0x04) | ||
| 24 | #define S3C2416_BANKCON2 S3C2416_MEMREG(0x08) | ||
| 25 | #define S3C2416_BANKCON3 S3C2416_MEMREG(0x0C) | ||
| 26 | |||
| 27 | #define S3C2416_REFRESH S3C2416_MEMREG(0x10) | ||
| 28 | #define S3C2416_TIMEOUT S3C2416_MEMREG(0x14) | ||
| 29 | |||
| 30 | #endif /* __ASM_ARM_REGS_S3C2416_MEM */ | ||
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-s3c2416.h b/arch/arm/mach-s3c2410/include/mach/regs-s3c2416.h new file mode 100644 index 000000000000..e443167efb87 --- /dev/null +++ b/arch/arm/mach-s3c2410/include/mach/regs-s3c2416.h | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | /* arch/arm/mach-s3c2410/include/mach/regs-s3c2416.h | ||
| 2 | * | ||
| 3 | * Copyright (c) 2009 Yauhen Kharuzhy <jekhor@gmail.com>, | ||
| 4 | * as part of OpenInkpot project | ||
| 5 | * Copyright (c) 2009 Promwad Innovation Company | ||
| 6 | * Yauhen Kharuzhy <yauhen.kharuzhy@promwad.com> | ||
| 7 | * | ||
| 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 | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | * | ||
| 12 | * S3C2416 specific register definitions | ||
| 13 | */ | ||
| 14 | |||
| 15 | #ifndef __ASM_ARCH_REGS_S3C2416_H | ||
| 16 | #define __ASM_ARCH_REGS_S3C2416_H "s3c2416" | ||
| 17 | |||
| 18 | #define S3C2416_SWRST (S3C24XX_VA_CLKPWR + 0x44) | ||
| 19 | #define S3C2416_SWRST_RESET (0x533C2416) | ||
| 20 | |||
| 21 | /* see regs-power.h for the other registers in the power block. */ | ||
| 22 | |||
| 23 | #endif /* __ASM_ARCH_REGS_S3C2416_H */ | ||
| 24 | |||
