vserver 1.9.5.x5
[linux-2.6.git] / include / asm-arm / arch-pxa / pxa-regs.h
index 4ff0d00..39741d3 100644 (file)
 #define DRCMRTXPCDR    DRCMR12
 #define DRCMRRXSSDR    DRCMR13
 #define DRCMRTXSSDR    DRCMR14
+#define DRCMRRXSS2DR   DRCMR15
+#define DRCMRTXSS2DR   DRCMR16
 #define DRCMRRXICDR    DRCMR17
 #define DRCMRTXICDR    DRCMR18
 #define DRCMRRXSTRBR   DRCMR19
 #define DRCMRTXSTTHR   DRCMR20
 #define DRCMRRXMMC     DRCMR21
 #define DRCMRTXMMC     DRCMR22
+#define DRCMRRXSS3DR   DRCMR66
+#define DRCMRTXSS3DR   DRCMR67
 #define DRCMRUDC(x)    DRCMR((x) + 24)
 
 #define DRCMR_MAPVLD   (1 << 7)        /* Map Valid (read / write) */
 #define DCMD_WIDTH4    (3 << 14)       /* 4 byte width (Word) */
 #define DCMD_LENGTH    0x01fff         /* length mask (max = 8K - 1) */
 
-/* default combinations */
-#define DCMD_RXPCDR    (DCMD_INCTRGADDR|DCMD_FLOWSRC|DCMD_BURST32|DCMD_WIDTH4)
-#define DCMD_RXMCDR    (DCMD_INCTRGADDR|DCMD_FLOWSRC|DCMD_BURST32|DCMD_WIDTH4)
-#define DCMD_TXPCDR    (DCMD_INCSRCADDR|DCMD_FLOWTRG|DCMD_BURST32|DCMD_WIDTH4)
-
 
 /*
  * UARTs
  */
 
 /* FIXME: This clash with SA1111 defines */
-#ifndef CONFIG_SA1111
+#ifndef _ASM_ARCH_SA1111
+
 #define SACR0          __REG(0x40400000)  /* Global Control Register */
 #define SACR1          __REG(0x40400004)  /* Serial Audio I 2 S/MSB-Justified Control Register */
 #define SASR0          __REG(0x4040000C)  /* Serial Audio I 2 S/MSB-Justified Interface and FIFO Status Register */
 #define SAICR          __REG(0x40400018)  /* Serial Audio Interrupt Clear Register */
 #define SADIV          __REG(0x40400060)  /* Audio Clock Divider Register. */
 #define SADR           __REG(0x40400080)  /* Serial Audio Data Register (TX and RX FIFO access Register). */
-#endif
 
+#define SACR0_RFTH(x)  (x << 12)       /* Rx FIFO Interrupt or DMA Trigger Threshold */
+#define SACR0_TFTH(x)  (x << 8)        /* Tx FIFO Interrupt or DMA Trigger Threshold */
+#define SACR0_STRF     (1 << 5)        /* FIFO Select for EFWR Special Function */
+#define SACR0_EFWR     (1 << 4)        /* Enable EFWR Function  */
+#define SACR0_RST      (1 << 3)        /* FIFO, i2s Register Reset */
+#define SACR0_BCKD     (1 << 2)        /* Bit Clock Direction */
+#define SACR0_ENB      (1 << 0)        /* Enable I2S Link */
+#define SACR1_ENLBF    (1 << 5)        /* Enable Loopback */
+#define SACR1_DRPL     (1 << 4)        /* Disable Replaying Function */
+#define SACR1_DREC     (1 << 3)        /* Disable Recording Function */
+#define SACR1_AMSL     (1 << 1)        /* Specify Alternate Mode */
+
+#define SASR0_I2SOFF   (1 << 7)        /* Controller Status */
+#define SASR0_ROR      (1 << 6)        /* Rx FIFO Overrun */
+#define SASR0_TUR      (1 << 5)        /* Tx FIFO Underrun */
+#define SASR0_RFS      (1 << 4)        /* Rx FIFO Service Request */
+#define SASR0_TFS      (1 << 3)        /* Tx FIFO Service Request */
+#define SASR0_BSY      (1 << 2)        /* I2S Busy */
+#define SASR0_RNE      (1 << 1)        /* Rx FIFO Not Empty */
+#define SASR0_TNF      (1 << 0)        /* Tx FIFO Not Empty */
+
+#define SAICR_ROR      (1 << 6)        /* Clear Rx FIFO Overrun Interrupt */
+#define SAICR_TUR      (1 << 5)        /* Clear Tx FIFO Underrun Interrupt */
+
+#define SAIMR_ROR      (1 << 6)        /* Enable Rx FIFO Overrun Condition Interrupt */
+#define SAIMR_TUR      (1 << 5)        /* Enable Tx FIFO Underrun Condition Interrupt */
+#define SAIMR_RFS      (1 << 4)        /* Enable Rx FIFO Service Interrupt */
+#define SAIMR_TFS      (1 << 3)        /* Enable Tx FIFO Service Interrupt */
+
+#endif
 
 /*
  * AC97 Controller registers
 
 #define POCR           __REG(0x40500000)  /* PCM Out Control Register */
 #define POCR_FEIE      (1 << 3)        /* FIFO Error Interrupt Enable */
+#define POCR_FSRIE     (1 << 1)        /* FIFO Service Request Interrupt Enable */
 
 #define PICR           __REG(0x40500004)  /* PCM In Control Register */
 #define PICR_FEIE      (1 << 3)        /* FIFO Error Interrupt Enable */
+#define PICR_FSRIE     (1 << 1)        /* FIFO Service Request Interrupt Enable */
 
 #define MCCR           __REG(0x40500008)  /* Mic In Control Register */
 #define MCCR_FEIE      (1 << 3)        /* FIFO Error Interrupt Enable */
+#define MCCR_FSRIE     (1 << 1)        /* FIFO Service Request Interrupt Enable */
 
 #define GCR            __REG(0x4050000C)  /* Global Control Register */
+#define GCR_nDMAEN     (1 << 24)       /* non DMA Enable */
 #define GCR_CDONE_IE   (1 << 19)       /* Command Done Interrupt Enable */
 #define GCR_SDONE_IE   (1 << 18)       /* Status Done Interrupt Enable */
 #define GCR_SECRDY_IEN (1 << 9)        /* Secondary Ready Interrupt Enable */
 
 #define POSR           __REG(0x40500010)  /* PCM Out Status Register */
 #define POSR_FIFOE     (1 << 4)        /* FIFO error */
+#define POSR_FSR       (1 << 2)        /* FIFO Service Request */
 
 #define PISR           __REG(0x40500014)  /* PCM In Status Register */
 #define PISR_FIFOE     (1 << 4)        /* FIFO error */
+#define PISR_EOC       (1 << 3)        /* DMA End-of-Chain (exclusive clear) */
+#define PISR_FSR       (1 << 2)        /* FIFO Service Request */
 
 #define MCSR           __REG(0x40500018)  /* Mic In Status Register */
 #define MCSR_FIFOE     (1 << 4)        /* FIFO error */
+#define MCSR_EOC       (1 << 3)        /* DMA End-of-Chain (exclusive clear) */
+#define MCSR_FSR       (1 << 2)        /* FIFO Service Request */
 
 #define GSR            __REG(0x4050001C)  /* Global Status Register */
 #define GSR_CDONE      (1 << 19)       /* Command Done */
 #define GSR_PRIRES     (1 << 10)       /* Primary Resume Interrupt */
 #define GSR_SCR                (1 << 9)        /* Secondary Codec Ready */
 #define GSR_PCR                (1 << 8)        /*  Primary Codec Ready */
-#define GSR_MINT       (1 << 7)        /* Mic In Interrupt */
+#define GSR_MCINT      (1 << 7)        /* Mic In Interrupt */
 #define GSR_POINT      (1 << 6)        /* PCM Out Interrupt */
 #define GSR_PIINT      (1 << 5)        /* PCM In Interrupt */
+#define GSR_ACOFFD     (1 << 3)        /* AC-link Shut Off Done */
 #define GSR_MOINT      (1 << 2)        /* Modem Out Interrupt */
 #define GSR_MIINT      (1 << 1)        /* Modem In Interrupt */
 #define GSR_GSCI       (1 << 0)        /* Codec GPI Status Change Interrupt */
 
 #define MOCR           __REG(0x40500100)  /* Modem Out Control Register */
 #define MOCR_FEIE      (1 << 3)        /* FIFO Error */
+#define MOCR_FSRIE     (1 << 1)        /* FIFO Service Request Interrupt Enable */
 
 #define MICR           __REG(0x40500108)  /* Modem In Control Register */
 #define MICR_FEIE      (1 << 3)        /* FIFO Error */
+#define MICR_FSRIE     (1 << 1)        /* FIFO Service Request Interrupt Enable */
 
 #define MOSR           __REG(0x40500110)  /* Modem Out Status Register */
 #define MOSR_FIFOE     (1 << 4)        /* FIFO error */
+#define MOSR_FSR       (1 << 2)        /* FIFO Service Request */
 
 #define MISR           __REG(0x40500118)  /* Modem In Status Register */
 #define MISR_FIFOE     (1 << 4)        /* FIFO error */
+#define MISR_EOC       (1 << 3)        /* DMA End-of-Chain (exclusive clear) */
+#define MISR_FSR       (1 << 2)        /* FIFO Service Request */
 
 #define MODR           __REG(0x40500140)  /* Modem FIFO Data Register */
 
 #define GPIO30_SDATA_OUT       30      /* AC97/I2S Sdata_out */
 #define GPIO31_SYNC            31      /* AC97/I2S sync */
 #define GPIO32_SDATA_IN1       32      /* AC97 Sdata_in1 */
+#define GPIO32_SYSCLK          32      /* I2S System Clock */
 #define GPIO32_MMCCLK          32      /* MMC Clock (PXA270) */
 #define GPIO33_nCS_5           33      /* chip select 5 */
 #define GPIO34_FFRXD           34      /* FFUART receive */
 #define GPIO43_BTTXD           43      /* BTUART transmit data */
 #define GPIO44_BTCTS           44      /* BTUART clear to send */
 #define GPIO45_BTRTS           45      /* BTUART request to send */
+#define GPIO45_AC97_SYSCLK     45      /* AC97 System Clock */
 #define GPIO46_ICPRXD          46      /* ICP receive data */
 #define GPIO46_STRXD           46      /* STD_UART receive data */
 #define GPIO47_ICPTXD          47      /* ICP transmit data */
 #define GPIO78_nCS_2           78      /* chip select 2 */
 #define GPIO79_nCS_3           79      /* chip select 3 */
 #define GPIO80_nCS_4           80      /* chip select 4 */
+#define GPIO81_NSCLK           81      /* NSSP clock */
+#define GPIO82_NSFRM           82      /* NSSP Frame */
+#define GPIO83_NSTXD           83      /* NSSP transmit */
+#define GPIO84_NSRXD           84      /* NSSP receive */
 #define GPIO85_nPCE_1          85      /* Card Enable for Card Space (PXA27x) */
 #define GPIO92_MMCDAT0         92      /* MMC DAT0 (PXA27x) */
 #define GPIO109_MMCDAT1                109     /* MMC DAT1 (PXA27x) */
 #define GPIO_MD_MASK_NR                0x07f
 #define GPIO_MD_MASK_DIR       0x080
 #define GPIO_MD_MASK_FN                0x300
+#define GPIO_DFLT_LOW          0x400
+#define GPIO_DFLT_HIGH         0x800
 
 #define GPIO1_RTS_MD           ( 1 | GPIO_ALT_FN_1_IN)
 #define GPIO6_MMCCLK_MD                ( 6 | GPIO_ALT_FN_1_OUT)
 #define GPIO18_RDY_MD          (18 | GPIO_ALT_FN_1_IN)
 #define GPIO19_DREQ1_MD                (19 | GPIO_ALT_FN_1_IN)
 #define GPIO20_DREQ0_MD                (20 | GPIO_ALT_FN_1_IN)
-#define GPIO23_SCLK_md         (23 | GPIO_ALT_FN_2_OUT)
+#define GPIO23_SCLK_MD         (23 | GPIO_ALT_FN_2_OUT)
 #define GPIO24_SFRM_MD         (24 | GPIO_ALT_FN_2_OUT)
 #define GPIO25_STXD_MD         (25 | GPIO_ALT_FN_2_OUT)
 #define GPIO26_SRXD_MD         (26 | GPIO_ALT_FN_1_IN)
 #define GPIO27_SEXTCLK_MD      (27 | GPIO_ALT_FN_1_IN)
 #define GPIO28_BITCLK_AC97_MD  (28 | GPIO_ALT_FN_1_IN)
-#define GPIO28_BITCLK_I2S_MD   (28 | GPIO_ALT_FN_2_IN)
+#define GPIO28_BITCLK_IN_I2S_MD        (28 | GPIO_ALT_FN_2_IN)
+#define GPIO28_BITCLK_OUT_I2S_MD       (28 | GPIO_ALT_FN_1_OUT)
 #define GPIO29_SDATA_IN_AC97_MD        (29 | GPIO_ALT_FN_1_IN)
 #define GPIO29_SDATA_IN_I2S_MD (29 | GPIO_ALT_FN_2_IN)
 #define GPIO30_SDATA_OUT_AC97_MD       (30 | GPIO_ALT_FN_2_OUT)
 #define GPIO30_SDATA_OUT_I2S_MD        (30 | GPIO_ALT_FN_1_OUT)
-#define GPIO31_SYNC_AC97_MD    (31 | GPIO_ALT_FN_2_OUT)
 #define GPIO31_SYNC_I2S_MD     (31 | GPIO_ALT_FN_1_OUT)
+#define GPIO31_SYNC_AC97_MD    (31 | GPIO_ALT_FN_2_OUT)
 #define GPIO32_SDATA_IN1_AC97_MD       (32 | GPIO_ALT_FN_1_IN)
+#define GPIO32_SYSCLK_I2S_MD   (32 | GPIO_ALT_FN_1_OUT)
 #define GPIO32_MMCCLK_MD               ( 32 | GPIO_ALT_FN_2_OUT)
 #define GPIO33_nCS_5_MD                (33 | GPIO_ALT_FN_2_OUT)
 #define GPIO34_FFRXD_MD                (34 | GPIO_ALT_FN_1_IN)
 #define GPIO43_BTTXD_MD                (43 | GPIO_ALT_FN_2_OUT)
 #define GPIO44_BTCTS_MD                (44 | GPIO_ALT_FN_1_IN)
 #define GPIO45_BTRTS_MD                (45 | GPIO_ALT_FN_2_OUT)
+#define GPIO45_SYSCLK_AC97_MD          (45 | GPIO_ALT_FN_1_OUT)
 #define GPIO46_ICPRXD_MD       (46 | GPIO_ALT_FN_1_IN)
 #define GPIO46_STRXD_MD                (46 | GPIO_ALT_FN_2_IN)
 #define GPIO47_ICPTXD_MD       (47 | GPIO_ALT_FN_2_OUT)
 #define GPIO79_nCS_3_MD                (79 | GPIO_ALT_FN_2_OUT)
 #define GPIO79_pSKTSEL_MD      (79 | GPIO_ALT_FN_1_OUT)
 #define GPIO80_nCS_4_MD                (80 | GPIO_ALT_FN_2_OUT)
+#define GPIO81_NSSP_CLK_OUT    (81 | GPIO_ALT_FN_1_OUT)
+#define GPIO81_NSSP_CLK_IN     (81 | GPIO_ALT_FN_1_IN)
+#define GPIO82_NSSP_FRM_OUT    (82 | GPIO_ALT_FN_1_OUT)
+#define GPIO82_NSSP_FRM_IN     (82 | GPIO_ALT_FN_1_IN)
+#define GPIO83_NSSP_TX         (83 | GPIO_ALT_FN_1_OUT)
+#define GPIO83_NSSP_RX         (83 | GPIO_ALT_FN_2_IN)
+#define GPIO84_NSSP_TX         (84 | GPIO_ALT_FN_1_OUT)
+#define GPIO84_NSSP_RX         (84 | GPIO_ALT_FN_2_IN)
 #define GPIO85_nPCE_1_MD       (85 | GPIO_ALT_FN_1_OUT)
 #define GPIO92_MMCDAT0_MD      (92 | GPIO_ALT_FN_1_OUT)
 #define GPIO109_MMCDAT1_MD     (109 | GPIO_ALT_FN_1_OUT)
 #define GPIO110_MMCCS1_MD      (111 | GPIO_ALT_FN_1_OUT)
 #define GPIO112_MMCCMD_MD      (112 | GPIO_ALT_FN_1_OUT)
 #define GPIO113_AC97_RESET_N_MD        (113 | GPIO_ALT_FN_2_OUT)
-
+#define GPIO117_I2CSCL_MD      (117 | GPIO_ALT_FN_1_OUT)
+#define GPIO118_I2CSDA_MD      (118 | GPIO_ALT_FN_1_IN)
 
 /*
  * Power Manager
 #define PVCR_CommandDelay (0xf80)
 #define PCFR_PI2C_EN   (0x1 << 6)
 
-#define PSSR_OTGPH     (1 << 7)        /* OTG Peripheral control Hold */
+#define PSSR_OTGPH     (1 << 6)        /* OTG Peripheral control Hold */
 #define PSSR_RDH       (1 << 5)        /* Read Disable Hold */
 #define PSSR_PH                (1 << 4)        /* Peripheral Control Hold */
 #define PSSR_VFS       (1 << 2)        /* VDD Fault Status */
 #define RCSR_WDR       (1 << 1)        /* Watchdog Reset */
 #define RCSR_HWR       (1 << 0)        /* Hardware Reset */
 
+#define PWER_GPIO(Nb)  (1 << Nb)       /* GPIO [0..15] wake-up enable     */
+#define PWER_GPIO0     PWER_GPIO (0)   /* GPIO  [0] wake-up enable        */
+#define PWER_GPIO1     PWER_GPIO (1)   /* GPIO  [1] wake-up enable        */
+#define PWER_GPIO2     PWER_GPIO (2)   /* GPIO  [2] wake-up enable        */
+#define PWER_GPIO3     PWER_GPIO (3)   /* GPIO  [3] wake-up enable        */
+#define PWER_GPIO4     PWER_GPIO (4)   /* GPIO  [4] wake-up enable        */
+#define PWER_GPIO5     PWER_GPIO (5)   /* GPIO  [5] wake-up enable        */
+#define PWER_GPIO6     PWER_GPIO (6)   /* GPIO  [6] wake-up enable        */
+#define PWER_GPIO7     PWER_GPIO (7)   /* GPIO  [7] wake-up enable        */
+#define PWER_GPIO8     PWER_GPIO (8)   /* GPIO  [8] wake-up enable        */
+#define PWER_GPIO9     PWER_GPIO (9)   /* GPIO  [9] wake-up enable        */
+#define PWER_GPIO10    PWER_GPIO (10)  /* GPIO [10] wake-up enable        */
+#define PWER_GPIO11    PWER_GPIO (11)  /* GPIO [11] wake-up enable        */
+#define PWER_GPIO12    PWER_GPIO (12)  /* GPIO [12] wake-up enable        */
+#define PWER_GPIO13    PWER_GPIO (13)  /* GPIO [13] wake-up enable        */
+#define PWER_GPIO14    PWER_GPIO (14)  /* GPIO [14] wake-up enable        */
+#define PWER_GPIO15    PWER_GPIO (15)  /* GPIO [15] wake-up enable        */
+#define PWER_RTC       0x80000000      /* RTC alarm wake-up enable        */
+
 
 /*
  * SSP Serial Port Registers
+ * PXA250, PXA255, PXA26x and PXA27x SSP controllers are all slightly different.
+ * PXA255, PXA26x and PXA27x have extra ports, registers and bits.
  */
 
-#define SSCR0          __REG(0x41000000)  /* SSP Control Register 0 */
-#define SSCR1          __REG(0x41000004)  /* SSP Control Register 1 */
-#define SSSR           __REG(0x41000008)  /* SSP Status Register */
-#define SSITR          __REG(0x4100000C)  /* SSP Interrupt Test Register */
-#define SSDR           __REG(0x41000010)  /* (Write / Read) SSP Data Write Register/SSP Data Read Register */
-
+ /* Common PXA2xx bits first */
 #define SSCR0_DSS      (0x0000000f)    /* Data Size Select (mask) */
 #define SSCR0_DataSize(x)  ((x) - 1)   /* Data Size Select [4..16] */
 #define SSCR0_FRF      (0x00000030)    /* FRame Format (mask) */
 #define SSSR_RFS       (1 << 6)        /* Receive FIFO Service Request */
 #define SSSR_ROR       (1 << 7)        /* Receive FIFO Overrun */
 
+#define SSCR0_TIM              (1 << 23)       /* Transmit FIFO Under Run Interrupt Mask */
+#define SSCR0_RIM              (1 << 22)       /* Receive FIFO Over Run interrupt Mask */
+#define SSCR0_NCS              (1 << 21)       /* Network Clock Select */
+#define SSCR0_EDSS             (1 << 20)       /* Extended Data Size Select */
+
+/* extra bits in PXA255, PXA26x and PXA27x SSP ports */
+#define SSCR0_PSP              (3 << 4)        /* PSP - Programmable Serial Protocol */
+#define SSCR1_TTELP            (1 << 31)       /* TXD Tristate Enable Last Phase */
+#define SSCR1_TTE              (1 << 30)       /* TXD Tristate Enable */
+#define SSCR1_EBCEI            (1 << 29)       /* Enable Bit Count Error interrupt */
+#define SSCR1_SCFR             (1 << 28)       /* Slave Clock free Running */
+#define SSCR1_ECRA             (1 << 27)       /* Enable Clock Request A */
+#define SSCR1_ECRB             (1 << 26)       /* Enable Clock request B */
+#define SSCR1_SCLKDIR  (1 << 25)       /* Serial Bit Rate Clock Direction */
+#define SSCR1_SFRMDIR  (1 << 24)       /* Frame Direction */
+#define SSCR1_RWOT             (1 << 23)       /* Receive Without Transmit */
+#define SSCR1_TRAIL            (1 << 22)       /* Trailing Byte */
+#define SSCR1_TSRE             (1 << 21)       /* Transmit Service Request Enable */
+#define SSCR1_RSRE             (1 << 20)       /* Receive Service Request Enable */
+#define SSCR1_TINTE            (1 << 19)       /* Receiver Time-out Interrupt enable */
+#define SSCR1_PINTE            (1 << 18)       /* Peripheral Trailing Byte Interupt Enable */
+#define SSCR1_STRF             (1 << 15)       /* Select FIFO or EFWR */
+#define SSCR1_EFWR             (1 << 14)       /* Enable FIFO Write/Read */
+
+#define SSSR_BCE               (1 << 23)       /* Bit Count Error */
+#define SSSR_CSS               (1 << 22)       /* Clock Synchronisation Status */
+#define SSSR_TUR               (1 << 21)       /* Transmit FIFO Under Run */
+#define SSSR_EOC               (1 << 20)       /* End Of Chain */
+#define SSSR_TINT              (1 << 19)       /* Receiver Time-out Interrupt */
+#define SSSR_PINT              (1 << 18)       /* Peripheral Trailing Byte Interrupt */
+
+#define SSPSP_DMYSTOP(x)       (x << 23)       /* Dummy Stop */
+#define SSPSP_SFRMWDTH(x)      (x << 16)       /* Serial Frame Width */
+#define SSPSP_SFRMDLY(x)       (x << 9)        /* Serial Frame Delay */
+#define SSPSP_DMYSTRT(x)       (x << 7)        /* Dummy Start */
+#define SSPSP_STRTDLY(x)       (x << 4)        /* Start Delay */
+#define SSPSP_ETDS                     (1 << 3)        /* End of Transfer data State */
+#define SSPSP_SFRMP                    (1 << 2)        /* Serial Frame Polarity */
+#define SSPSP_SCMODE(x)                (x << 0)        /* Serial Bit Rate Clock Mode */
+
+
+#define SSCR0_P1       __REG(0x41000000)  /* SSP Port 1 Control Register 0 */
+#define SSCR1_P1       __REG(0x41000004)  /* SSP Port 1 Control Register 1 */
+#define SSSR_P1                __REG(0x41000008)  /* SSP Port 1 Status Register */
+#define SSITR_P1       __REG(0x4100000C)  /* SSP Port 1 Interrupt Test Register */
+#define SSDR_P1                __REG(0x41000010)  /* (Write / Read) SSP Port 1 Data Write Register/SSP Data Read Register */
+
+/* Support existing PXA25x drivers */
+#define SSCR0          SSCR0_P1  /* SSP Control Register 0 */
+#define SSCR1          SSCR1_P1  /* SSP Control Register 1 */
+#define SSSR           SSSR_P1   /* SSP Status Register */
+#define SSITR          SSITR_P1  /* SSP Interrupt Test Register */
+#define SSDR           SSDR_P1   /* (Write / Read) SSP Data Write Register/SSP Data Read Register */
+
+/* PXA27x ports */
+#if defined (CONFIG_PXA27x)
+#define SSTO_P1                __REG(0x41000028)  /* SSP Port 1 Time Out Register */
+#define SSPSP_P1       __REG(0x4100002C)  /* SSP Port 1 Programmable Serial Protocol */
+#define SSCR0_P2       __REG(0x41700000)  /* SSP Port 2 Control Register 0 */
+#define SSCR1_P2       __REG(0x41700004)  /* SSP Port 2 Control Register 1 */
+#define SSSR_P2                __REG(0x41700008)  /* SSP Port 2 Status Register */
+#define SSITR_P2       __REG(0x4170000C)  /* SSP Port 2 Interrupt Test Register */
+#define SSDR_P2                __REG(0x41700010)  /* (Write / Read) SSP Port 2 Data Write Register/SSP Data Read Register */
+#define SSTO_P2                __REG(0x41700028)  /* SSP Port 2 Time Out Register */
+#define SSPSP_P2       __REG(0x4170002C)  /* SSP Port 2 Programmable Serial Protocol */
+#define SSCR0_P3       __REG(0x41900000)  /* SSP Port 3 Control Register 0 */
+#define SSCR1_P3       __REG(0x41900004)  /* SSP Port 3 Control Register 1 */
+#define SSSR_P3                __REG(0x41900008)  /* SSP Port 3 Status Register */
+#define SSITR_P3       __REG(0x4190000C)  /* SSP Port 3 Interrupt Test Register */
+#define SSDR_P3                __REG(0x41900010)  /* (Write / Read) SSP Port 3 Data Write Register/SSP Data Read Register */
+#define SSTO_P3                __REG(0x41900028)  /* SSP Port 3 Time Out Register */
+#define SSPSP_P3       __REG(0x4190002C)  /* SSP Port 3 Programmable Serial Protocol */
+#else /* PXA255 (only port 2) and PXA26x ports*/
+#define SSTO_P1                __REG(0x41000028)  /* SSP Port 1 Time Out Register */
+#define SSPSP_P1       __REG(0x4100002C)  /* SSP Port 1 Programmable Serial Protocol */
+#define SSCR0_P2       __REG(0x41400000)  /* SSP Port 2 Control Register 0 */
+#define SSCR1_P2       __REG(0x41400004)  /* SSP Port 2 Control Register 1 */
+#define SSSR_P2                __REG(0x41400008)  /* SSP Port 2 Status Register */
+#define SSITR_P2       __REG(0x4140000C)  /* SSP Port 2 Interrupt Test Register */
+#define SSDR_P2                __REG(0x41400010)  /* (Write / Read) SSP Port 2 Data Write Register/SSP Data Read Register */
+#define SSTO_P2                __REG(0x41400028)  /* SSP Port 2 Time Out Register */
+#define SSPSP_P2       __REG(0x4140002C)  /* SSP Port 2 Programmable Serial Protocol */
+#define SSCR0_P3       __REG(0x41500000)  /* SSP Port 3 Control Register 0 */
+#define SSCR1_P3       __REG(0x41500004)  /* SSP Port 3 Control Register 1 */
+#define SSSR_P3                __REG(0x41500008)  /* SSP Port 3 Status Register */
+#define SSITR_P3       __REG(0x4150000C)  /* SSP Port 3 Interrupt Test Register */
+#define SSDR_P3                __REG(0x41500010)  /* (Write / Read) SSP Port 3 Data Write Register/SSP Data Read Register */
+#define SSTO_P3                __REG(0x41500028)  /* SSP Port 3 Time Out Register */
+#define SSPSP_P3       __REG(0x4150002C)  /* SSP Port 3 Programmable Serial Protocol */
+#endif
+
+#define SSCR0_P(x) (*(((x) == 1) ? &SSCR0_P1 : ((x) == 2) ? &SSCR0_P2 : ((x) == 3) ? &SSCR0_P3 : NULL))
+#define SSCR1_P(x) (*(((x) == 1) ? &SSCR1_P1 : ((x) == 2) ? &SSCR1_P2 : ((x) == 3) ? &SSCR1_P3 : NULL))
+#define SSSR_P(x) (*(((x) == 1) ? &SSSR_P1 : ((x) == 2) ? &SSSR_P2 : ((x) == 3) ? &SSSR_P3 : NULL))
+#define SSITR_P(x) (*(((x) == 1) ? &SSITR_P1 : ((x) == 2) ? &SSITR_P2 : ((x) == 3) ? &SSITR_P3 : NULL))
+#define SSDR_P(x) (*(((x) == 1) ? &SSDR_P1 : ((x) == 2) ? &SSDR_P2 : ((x) == 3) ? &SSDR_P3 : NULL))
+#define SSTO_P(x) (*(((x) == 1) ? &SSTO_P1 : ((x) == 2) ? &SSTO_P2 : ((x) == 3) ? &SSTO_P3 : NULL))
+#define SSPSP_P(x) (*(((x) == 1) ? &SSPSP_P1 : ((x) == 2) ? &SSPSP_P2 : ((x) == 3) ? &SSPSP_P3 : NULL))
 
 /*
  * MultiMediaCard (MMC) controller
 #define CKEN13_FICP    (1 << 13)       /* FICP Unit Clock Enable */
 #define CKEN12_MMC     (1 << 12)       /* MMC Unit Clock Enable */
 #define CKEN11_USB     (1 << 11)       /* USB Unit Clock Enable */
+#define CKEN10_ASSP    (1 << 10)       /* ASSP (SSP3) Clock Enable */
 #define CKEN10_USBHOST (1 << 10)       /* USB Host Unit Clock Enable */
 #define CKEN9_OSTIMER  (1 << 9)        /* OS Timer Unit Clock Enable */
+#define CKEN9_NSSP     (1 << 9)        /* NSSP (SSP2) Clock Enable */
 #define CKEN8_I2S      (1 << 8)        /* I2S Unit Clock Enable */
 #define CKEN7_BTUART   (1 << 7)        /* BTUART Unit Clock Enable */
 #define CKEN6_FFUART   (1 << 6)        /* FFUART Unit Clock Enable */