diff options
Diffstat (limited to 'arch/arm/mach-s3c2410/include/mach/regs-gpio.h')
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/regs-gpio.h | 67 |
1 files changed, 47 insertions, 20 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-gpio.h b/arch/arm/mach-s3c2410/include/mach/regs-gpio.h index fd672f330bf2..a0a89d429296 100644 --- a/arch/arm/mach-s3c2410/include/mach/regs-gpio.h +++ b/arch/arm/mach-s3c2410/include/mach/regs-gpio.h | |||
@@ -17,29 +17,11 @@ | |||
17 | #include <mach/gpio-nrs.h> | 17 | #include <mach/gpio-nrs.h> |
18 | 18 | ||
19 | #ifdef CONFIG_CPU_S3C2400 | 19 | #ifdef CONFIG_CPU_S3C2400 |
20 | #define S3C24XX_GPIO_BASE(x) S3C2400_GPIO_BASE(x) | 20 | #define S3C24XX_MISCCR S3C2400_MISCCR |
21 | #define S3C24XX_MISCCR S3C2400_MISCCR | ||
22 | #else | 21 | #else |
23 | #define S3C24XX_GPIO_BASE(x) S3C2410_GPIO_BASE(x) | 22 | #define S3C24XX_MISCCR S3C24XX_GPIOREG2(0x80) |
24 | #define S3C24XX_MISCCR S3C24XX_GPIOREG2(0x80) | ||
25 | #endif /* CONFIG_CPU_S3C2400 */ | 23 | #endif /* CONFIG_CPU_S3C2400 */ |
26 | 24 | ||
27 | |||
28 | /* S3C2400 doesn't have a 1:1 mapping to S3C2410 gpio base pins */ | ||
29 | |||
30 | #define S3C2400_BANKNUM(pin) (((pin) & ~31) / 32) | ||
31 | #define S3C2400_BASEA2B(pin) ((((pin) & ~31) >> 2)) | ||
32 | #define S3C2400_BASEC2H(pin) ((S3C2400_BANKNUM(pin) * 10) + \ | ||
33 | (2 * (S3C2400_BANKNUM(pin)-2))) | ||
34 | |||
35 | #define S3C2400_GPIO_BASE(pin) (pin < S3C2410_GPIO_BANKC ? \ | ||
36 | S3C2400_BASEA2B(pin)+S3C24XX_VA_GPIO : \ | ||
37 | S3C2400_BASEC2H(pin)+S3C24XX_VA_GPIO) | ||
38 | |||
39 | |||
40 | #define S3C2410_GPIO_BASE(pin) ((((pin) & ~31) >> 1) + S3C24XX_VA_GPIO) | ||
41 | #define S3C2410_GPIO_OFFSET(pin) ((pin) & 31) | ||
42 | |||
43 | /* general configuration options */ | 25 | /* general configuration options */ |
44 | 26 | ||
45 | #define S3C2410_GPIO_LEAVE (0xFFFFFFFF) | 27 | #define S3C2410_GPIO_LEAVE (0xFFFFFFFF) |
@@ -610,35 +592,73 @@ | |||
610 | #define S3C2410_GPHUP S3C2410_GPIOREG(0x78) | 592 | #define S3C2410_GPHUP S3C2410_GPIOREG(0x78) |
611 | 593 | ||
612 | #define S3C2410_GPH0_nCTS0 (0x02 << 0) | 594 | #define S3C2410_GPH0_nCTS0 (0x02 << 0) |
595 | #define S3C2416_GPH0_TXD0 (0x02 << 0) | ||
613 | 596 | ||
614 | #define S3C2410_GPH1_nRTS0 (0x02 << 2) | 597 | #define S3C2410_GPH1_nRTS0 (0x02 << 2) |
598 | #define S3C2416_GPH1_RXD0 (0x02 << 2) | ||
615 | 599 | ||
616 | #define S3C2410_GPH2_TXD0 (0x02 << 4) | 600 | #define S3C2410_GPH2_TXD0 (0x02 << 4) |
601 | #define S3C2416_GPH2_TXD1 (0x02 << 4) | ||
617 | 602 | ||
618 | #define S3C2410_GPH3_RXD0 (0x02 << 6) | 603 | #define S3C2410_GPH3_RXD0 (0x02 << 6) |
604 | #define S3C2416_GPH3_RXD1 (0x02 << 6) | ||
619 | 605 | ||
620 | #define S3C2410_GPH4_TXD1 (0x02 << 8) | 606 | #define S3C2410_GPH4_TXD1 (0x02 << 8) |
607 | #define S3C2416_GPH4_TXD2 (0x02 << 8) | ||
621 | 608 | ||
622 | #define S3C2410_GPH5_RXD1 (0x02 << 10) | 609 | #define S3C2410_GPH5_RXD1 (0x02 << 10) |
610 | #define S3C2416_GPH5_RXD2 (0x02 << 10) | ||
623 | 611 | ||
624 | #define S3C2410_GPH6_TXD2 (0x02 << 12) | 612 | #define S3C2410_GPH6_TXD2 (0x02 << 12) |
613 | #define S3C2416_GPH6_TXD3 (0x02 << 12) | ||
625 | #define S3C2410_GPH6_nRTS1 (0x03 << 12) | 614 | #define S3C2410_GPH6_nRTS1 (0x03 << 12) |
615 | #define S3C2416_GPH6_nRTS2 (0x03 << 12) | ||
626 | 616 | ||
627 | #define S3C2410_GPH7_RXD2 (0x02 << 14) | 617 | #define S3C2410_GPH7_RXD2 (0x02 << 14) |
618 | #define S3C2416_GPH7_RXD3 (0x02 << 14) | ||
628 | #define S3C2410_GPH7_nCTS1 (0x03 << 14) | 619 | #define S3C2410_GPH7_nCTS1 (0x03 << 14) |
620 | #define S3C2416_GPH7_nCTS2 (0x03 << 14) | ||
629 | 621 | ||
630 | #define S3C2410_GPH8_UCLK (0x02 << 16) | 622 | #define S3C2410_GPH8_UCLK (0x02 << 16) |
623 | #define S3C2416_GPH8_nCTS0 (0x02 << 16) | ||
631 | 624 | ||
632 | #define S3C2410_GPH9_CLKOUT0 (0x02 << 18) | 625 | #define S3C2410_GPH9_CLKOUT0 (0x02 << 18) |
633 | #define S3C2442_GPH9_nSPICS0 (0x03 << 18) | 626 | #define S3C2442_GPH9_nSPICS0 (0x03 << 18) |
627 | #define S3C2416_GPH9_nRTS0 (0x02 << 18) | ||
634 | 628 | ||
635 | #define S3C2410_GPH10_CLKOUT1 (0x02 << 20) | 629 | #define S3C2410_GPH10_CLKOUT1 (0x02 << 20) |
630 | #define S3C2416_GPH10_nCTS1 (0x02 << 20) | ||
631 | |||
632 | #define S3C2416_GPH11_nRTS1 (0x02 << 22) | ||
633 | |||
634 | #define S3C2416_GPH12_EXTUARTCLK (0x02 << 24) | ||
635 | |||
636 | #define S3C2416_GPH13_CLKOUT0 (0x02 << 26) | ||
637 | |||
638 | #define S3C2416_GPH14_CLKOUT1 (0x02 << 28) | ||
636 | 639 | ||
637 | /* The S3C2412 and S3C2413 move the GPJ register set to after | 640 | /* The S3C2412 and S3C2413 move the GPJ register set to after |
638 | * GPH, which means all registers after 0x80 are now offset by 0x10 | 641 | * GPH, which means all registers after 0x80 are now offset by 0x10 |
639 | * for the 2412/2413 from the 2410/2440/2442 | 642 | * for the 2412/2413 from the 2410/2440/2442 |
640 | */ | 643 | */ |
641 | 644 | ||
645 | /* S3C2443 and above */ | ||
646 | #define S3C2440_GPJCON S3C2410_GPIOREG(0xD0) | ||
647 | #define S3C2440_GPJDAT S3C2410_GPIOREG(0xD4) | ||
648 | #define S3C2440_GPJUP S3C2410_GPIOREG(0xD8) | ||
649 | |||
650 | #define S3C2443_GPKCON S3C2410_GPIOREG(0xE0) | ||
651 | #define S3C2443_GPKDAT S3C2410_GPIOREG(0xE4) | ||
652 | #define S3C2443_GPKUP S3C2410_GPIOREG(0xE8) | ||
653 | |||
654 | #define S3C2443_GPLCON S3C2410_GPIOREG(0xF0) | ||
655 | #define S3C2443_GPLDAT S3C2410_GPIOREG(0xF4) | ||
656 | #define S3C2443_GPLUP S3C2410_GPIOREG(0xF8) | ||
657 | |||
658 | #define S3C2443_GPMCON S3C2410_GPIOREG(0x100) | ||
659 | #define S3C2443_GPMDAT S3C2410_GPIOREG(0x104) | ||
660 | #define S3C2443_GPMUP S3C2410_GPIOREG(0x108) | ||
661 | |||
642 | /* miscellaneous control */ | 662 | /* miscellaneous control */ |
643 | #define S3C2400_MISCCR S3C2410_GPIOREG(0x54) | 663 | #define S3C2400_MISCCR S3C2410_GPIOREG(0x54) |
644 | #define S3C2410_MISCCR S3C2410_GPIOREG(0x80) | 664 | #define S3C2410_MISCCR S3C2410_GPIOREG(0x80) |
@@ -686,6 +706,7 @@ | |||
686 | #define S3C2412_MISCCR_CLK1_CLKsrc (0<<8) | 706 | #define S3C2412_MISCCR_CLK1_CLKsrc (0<<8) |
687 | 707 | ||
688 | #define S3C2410_MISCCR_USBSUSPND0 (1<<12) | 708 | #define S3C2410_MISCCR_USBSUSPND0 (1<<12) |
709 | #define S3C2416_MISCCR_SEL_SUSPND (1<<12) | ||
689 | #define S3C2410_MISCCR_USBSUSPND1 (1<<13) | 710 | #define S3C2410_MISCCR_USBSUSPND1 (1<<13) |
690 | 711 | ||
691 | #define S3C2410_MISCCR_nRSTCON (1<<16) | 712 | #define S3C2410_MISCCR_nRSTCON (1<<16) |
@@ -695,6 +716,9 @@ | |||
695 | #define S3C2410_MISCCR_nEN_SCLKE (1<<19) /* not 2412 */ | 716 | #define S3C2410_MISCCR_nEN_SCLKE (1<<19) /* not 2412 */ |
696 | #define S3C2410_MISCCR_SDSLEEP (7<<17) | 717 | #define S3C2410_MISCCR_SDSLEEP (7<<17) |
697 | 718 | ||
719 | #define S3C2416_MISCCR_FLT_I2C (1<<24) | ||
720 | #define S3C2416_MISCCR_HSSPI_EN2 (1<<31) | ||
721 | |||
698 | /* external interrupt control... */ | 722 | /* external interrupt control... */ |
699 | /* S3C2410_EXTINT0 -> irq sense control for EINT0..EINT7 | 723 | /* S3C2410_EXTINT0 -> irq sense control for EINT0..EINT7 |
700 | * S3C2410_EXTINT1 -> irq sense control for EINT8..EINT15 | 724 | * S3C2410_EXTINT1 -> irq sense control for EINT8..EINT15 |
@@ -762,8 +786,11 @@ | |||
762 | #define S3C2410_GSTATUS1_IDMASK (0xffff0000) | 786 | #define S3C2410_GSTATUS1_IDMASK (0xffff0000) |
763 | #define S3C2410_GSTATUS1_2410 (0x32410000) | 787 | #define S3C2410_GSTATUS1_2410 (0x32410000) |
764 | #define S3C2410_GSTATUS1_2412 (0x32412001) | 788 | #define S3C2410_GSTATUS1_2412 (0x32412001) |
789 | #define S3C2410_GSTATUS1_2416 (0x32416003) | ||
765 | #define S3C2410_GSTATUS1_2440 (0x32440000) | 790 | #define S3C2410_GSTATUS1_2440 (0x32440000) |
766 | #define S3C2410_GSTATUS1_2442 (0x32440aaa) | 791 | #define S3C2410_GSTATUS1_2442 (0x32440aaa) |
792 | /* some 2416 CPUs report this value also */ | ||
793 | #define S3C2410_GSTATUS1_2450 (0x32450003) | ||
767 | 794 | ||
768 | #define S3C2410_GSTATUS2_WTRESET (1<<2) | 795 | #define S3C2410_GSTATUS2_WTRESET (1<<2) |
769 | #define S3C2410_GSTATUS2_OFFRESET (1<<1) | 796 | #define S3C2410_GSTATUS2_OFFRESET (1<<1) |