]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/powerpc/include/asm/immap_85xx.h
Merge remote-tracking branch 'u-boot-samsung/master'
[karo-tx-uboot.git] / arch / powerpc / include / asm / immap_85xx.h
index 9d08321f5d3979d2195cd7dc511b0bdbe89287fe..8258ab3805009cd148dd9607a78f5acd556ddef4 100644 (file)
@@ -1583,6 +1583,12 @@ typedef struct cpc_corenet {
 typedef struct ccsr_gur {
        u32     porsr1;         /* POR status 1 */
        u32     porsr2;         /* POR status 2 */
+#ifdef CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
+#define        FSL_DCFG_PORSR1_SYSCLK_SHIFT    15
+#define        FSL_DCFG_PORSR1_SYSCLK_MASK     0x1
+#define        FSL_DCFG_PORSR1_SYSCLK_SINGLE_ENDED     0x1
+#define        FSL_DCFG_PORSR1_SYSCLK_DIFF     0x0
+#endif
        u8      res_008[0x20-0x8];
        u32     gpporcr1;       /* General-purpose POR configuration */
        u32     gpporcr2;       /* General-purpose POR configuration 2 */
@@ -1722,6 +1728,9 @@ typedef struct ccsr_gur {
        u32     rstrqpblsr;     /* Reset request preboot loader status */
        u8      res11[8];
        u32     rstrqmr1;       /* Reset request mask */
+#ifdef CONFIG_SYS_FSL_QORIQ_CHASSIS2
+#define FSL_CORENET_RSTRQMR1_SRDS_RST_MSK      0x00000800
+#endif
        u8      res12[4];
        u32     rstrqsr1;       /* Reset request status */
        u8      res13[4];
@@ -1736,8 +1745,11 @@ typedef struct ccsr_gur {
 
 #ifdef CONFIG_SYS_FSL_QORIQ_CHASSIS2
 #define FSL_CORENET_RCWSR0_MEM_PLL_RAT_SHIFT   16
+/* use reserved bits 18~23 as scratch space to host DDR PLL ratio */
+#define FSL_CORENET_RCWSR0_MEM_PLL_RAT_RESV_SHIFT      8
 #define FSL_CORENET_RCWSR0_MEM_PLL_RAT_MASK    0x3f
-#if defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160)
+#if defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160) || \
+       defined(CONFIG_PPC_T4080)
 #define FSL_CORENET2_RCWSR4_SRDS1_PRTCL                0xfc000000
 #define FSL_CORENET2_RCWSR4_SRDS1_PRTCL_SHIFT  26
 #define FSL_CORENET2_RCWSR4_SRDS2_PRTCL                0x00fe0000
@@ -1770,6 +1782,10 @@ defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
 #define FSL_CORENET_RCWSR13_MAC2_GMII_SEL      0x00000080
 #define FSL_CORENET_RCWSR13_MAC2_GMII_SEL_L2_SWITCH    0x00000000
 #define FSL_CORENET_RCWSR13_MAC2_GMII_SEL_ENET_PORT    0x80000000
+#define CONFIG_SYS_FSL_SCFG_PIXCLKCR_OFFSET    0x28
+#define PXCKEN_MASK    0x80000000
+#define PXCK_MASK      0x00FF0000
+#define PXCK_BITS_START        16
 #elif defined(CONFIG_PPC_T2080) || defined(CONFIG_PPC_T2081)
 #define FSL_CORENET2_RCWSR4_SRDS1_PRTCL                0xff000000
 #define FSL_CORENET2_RCWSR4_SRDS1_PRTCL_SHIFT  24
@@ -1833,7 +1849,8 @@ defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
 #define FSL_CORENET_RCWSR11_EC2_FM2_DTSEC5_MII          0x00100000
 #define FSL_CORENET_RCWSR11_EC2_FM2_DTSEC5_NONE         0x00180000
 #endif
-#if defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160)
+#if defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160) || \
+       defined(CONFIG_PPC_T4080)
 #define FSL_CORENET_RCWSR13_EC1                        0x60000000 /* bits 417..418 */
 #define FSL_CORENET_RCWSR13_EC1_FM2_DTSEC5_RGMII       0x00000000
 #define FSL_CORENET_RCWSR13_EC1_FM2_GPIO               0x40000000
@@ -1882,7 +1899,10 @@ defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
        u32     sata2liodnr;    /* SATA 2 LIODN */
        u32     sata3liodnr;    /* SATA 3 LIODN */
        u32     sata4liodnr;    /* SATA 4 LIODN */
-       u8      res22[32];
+       u8      res22[20];
+       u32     tdmliodnr;      /* TDM LIODN */
+       u32     qeliodnr;       /* QE LIODN */
+       u8      res_57c[4];
        u32     dma1liodnr;     /* DMA 1 LIODN */
        u32     dma2liodnr;     /* DMA 2 LIODN */
        u32     dma3liodnr;     /* DMA 3 LIODN */
@@ -2492,6 +2512,7 @@ typedef struct serdes_corenet {
 #define SRDS_RSTCTL_SDEN       0x00000020
 #define SRDS_RSTCTL_SDRST_B    0x00000040
 #define SRDS_RSTCTL_PLLRST_B   0x00000080
+#define SRDS_RSTCTL_RSTERR_SHIFT  29
                u32     pllcr0; /* PLL Control Register 0 */
 #define SRDS_PLLCR0_POFF               0x80000000
 #define SRDS_PLLCR0_RFCK_SEL_MASK      0x70000000
@@ -2501,16 +2522,33 @@ typedef struct serdes_corenet {
 #define SRDS_PLLCR0_RFCK_SEL_150       0x30000000
 #define SRDS_PLLCR0_RFCK_SEL_161_13    0x40000000
 #define SRDS_PLLCR0_RFCK_SEL_122_88    0x50000000
+#define SRDS_PLLCR0_PLL_LCK            0x00800000
+#define SRDS_PLLCR0_DCBIAS_OUT_EN      0x02000000
 #define SRDS_PLLCR0_FRATE_SEL_MASK     0x000f0000
 #define SRDS_PLLCR0_FRATE_SEL_5                0x00000000
+#define SRDS_PLLCR0_FRATE_SEL_4_9152   0x00030000
 #define SRDS_PLLCR0_FRATE_SEL_3_75     0x00050000
 #define SRDS_PLLCR0_FRATE_SEL_5_15     0x00060000
 #define SRDS_PLLCR0_FRATE_SEL_4                0x00070000
-#define SRDS_PLLCR0_FRATE_SEL_3_12     0x00090000
-#define SRDS_PLLCR0_FRATE_SEL_3                0x000a0000
+#define SRDS_PLLCR0_FRATE_SEL_3_125    0x00090000
+#define SRDS_PLLCR0_FRATE_SEL_3_0      0x000a0000
+#define SRDS_PLLCR0_FRATE_SEL_3_072    0x000c0000
+#define SRDS_PLLCR0_DCBIAS_OVRD                0x000000F0
+#define SRDS_PLLCR0_DCBIAS_OVRD_SHIFT  4
                u32     pllcr1; /* PLL Control Register 1 */
-#define SRDS_PLLCR1_PLL_BWSEL  0x08000000
-               u32     res_0c; /* 0x00c */
+#define SRDS_PLLCR1_BCAP_EN            0x20000000
+#define SRDS_PLLCR1_BCAP_OVD           0x10000000
+#define SRDS_PLLCR1_PLL_FCAP           0x001F8000
+#define SRDS_PLLCR1_PLL_FCAP_SHIFT     15
+#define SRDS_PLLCR1_PLL_BWSEL          0x08000000
+#define SRDS_PLLCR1_BYP_CAL            0x02000000
+               u32     pllsr2; /* At 0x00c, PLL Status Register 2 */
+#define SRDS_PLLSR2_BCAP_EN            0x00800000
+#define SRDS_PLLSR2_BCAP_EN_SHIFT      23
+#define SRDS_PLLSR2_FCAP               0x003F0000
+#define SRDS_PLLSR2_FCAP_SHIFT         16
+#define SRDS_PLLSR2_DCBIAS             0x000F0000
+#define SRDS_PLLSR2_DCBIAS_SHIFT       16
                u32     pllcr3;
                u32     pllcr4;
                u8      res_18[0x20-0x18];
@@ -2829,6 +2867,21 @@ struct ccsr_pman {
        u8      res_f4[0xf0c];
 };
 #endif
+#ifdef CONFIG_SYS_FSL_SFP_VER_3_0
+struct ccsr_sfp_regs {
+       u32 ospr;               /* 0x200 */
+       u32 reserved0[14];
+       u32 srk_hash[8];        /* 0x23c Super Root Key Hash */
+       u32 oem_uid;            /* 0x9c OEM Unique ID */
+       u8 reserved2[0x04];
+       u32 ovpr;                       /* 0xA4  Intent To Secure */
+       u8 reserved4[0x08];
+       u32 fsl_uid;            /* 0xB0  FSL Unique ID */
+       u8 reserved5[0x04];
+       u32 fsl_spfr0;          /* Scratch Pad Fuse Register 0 */
+       u32 fsl_spfr1;          /* Scratch Pad Fuse Register 1 */
+};
+#endif
 
 #ifdef CONFIG_FSL_CORENET
 #define CONFIG_SYS_FSL_CORENET_CCM_OFFSET      0x0000
@@ -2842,9 +2895,18 @@ struct ccsr_pman {
 #define CONFIG_SYS_MPC8xxx_DDR3_OFFSET         0xA000
 #define CONFIG_SYS_FSL_CORENET_CLK_OFFSET      0xE1000
 #define CONFIG_SYS_FSL_CORENET_RCPM_OFFSET     0xE2000
+#ifdef CONFIG_SYS_FSL_SFP_VER_3_0
+/* In SFPv3, OSPR register is now at offset 0x200.
+ *  * So directly mapping sfp register map to this address */
+#define CONFIG_SYS_OSPR_OFFSET                  0x200
+#define CONFIG_SYS_SFP_OFFSET            (0xE8000 + CONFIG_SYS_OSPR_OFFSET)
+#else
+#define CONFIG_SYS_SFP_OFFSET                   0xE8000
+#endif
 #define CONFIG_SYS_FSL_CORENET_SERDES_OFFSET   0xEA000
 #define CONFIG_SYS_FSL_CORENET_SERDES2_OFFSET  0xEB000
 #define CONFIG_SYS_FSL_CPC_OFFSET              0x10000
+#define CONFIG_SYS_FSL_SCFG_OFFSET             0xFC000
 #define CONFIG_SYS_MPC85xx_DMA1_OFFSET         0x100000
 #define CONFIG_SYS_MPC85xx_DMA2_OFFSET         0x101000
 #define CONFIG_SYS_MPC85xx_DMA3_OFFSET         0x102000
@@ -2854,6 +2916,8 @@ struct ccsr_pman {
 #define CONFIG_SYS_MPC85xx_LBC_OFFSET          0x124000
 #define CONFIG_SYS_MPC85xx_IFC_OFFSET          0x124000
 #define CONFIG_SYS_MPC85xx_GPIO_OFFSET         0x130000
+#define CONFIG_SYS_MPC85xx_TDM_OFFSET          0x185000
+#define CONFIG_SYS_MPC85xx_QE_OFFSET           0x140000
 #define CONFIG_SYS_FSL_CORENET_RMAN_OFFSET     0x1e0000
 #if defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && !defined(CONFIG_PPC_B4860)\
        && !defined(CONFIG_PPC_B4420)
@@ -2962,6 +3026,10 @@ struct ccsr_pman {
 
 #define CONFIG_SYS_FSL_CPC_ADDR        \
        (CONFIG_SYS_CCSRBAR + CONFIG_SYS_FSL_CPC_OFFSET)
+#define CONFIG_SYS_FSL_SCFG_ADDR       \
+       (CONFIG_SYS_CCSRBAR + CONFIG_SYS_FSL_SCFG_OFFSET)
+#define CONFIG_SYS_FSL_SCFG_PIXCLK_ADDR        \
+       (CONFIG_SYS_FSL_SCFG_ADDR + CONFIG_SYS_FSL_SCFG_PIXCLKCR_OFFSET)
 #define CONFIG_SYS_FSL_QMAN_ADDR \
        (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_QMAN_OFFSET)
 #define CONFIG_SYS_FSL_BMAN_ADDR \
@@ -3054,6 +3122,9 @@ struct ccsr_pman {
 #define CONFIG_SYS_PCIE4_ADDR \
        (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_PCIE4_OFFSET)
 
+#define CONFIG_SYS_SFP_ADDR  \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_SFP_OFFSET)
+
 #define TSEC_BASE_ADDR         (CONFIG_SYS_IMMR + CONFIG_SYS_TSEC1_OFFSET)
 #define MDIO_BASE_ADDR         (CONFIG_SYS_IMMR + CONFIG_SYS_MDIO1_OFFSET)
 
@@ -3124,4 +3195,26 @@ struct dcsr_dcfg_regs {
 #define        DCSR_DCFG_ECC_DISABLE_USB2      0x00004000
        u8  res_524[0x1000 - 0x524]; /* 0x524 - 0x1000 */
 };
+
+#define CONFIG_SYS_MPC85xx_SCFG \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_SCFG_OFFSET)
+#define CONFIG_SYS_MPC85xx_SCFG_OFFSET 0xfc000
+/* The supplement configuration unit register */
+struct ccsr_scfg {
+       u32 dpslpcr;    /* 0x000 Deep Sleep Control register */
+       u32 usb1dpslpcsr;/* 0x004 USB1 Deep Sleep Control Status register */
+       u32 usb2dpslpcsr;/* 0x008 USB2 Deep Sleep Control Status register */
+       u32 fmclkdpslpcr;/* 0x00c FM Clock Deep Sleep Control register */
+       u32 res1[4];
+       u32 esgmiiselcr;/* 0x020 Ethernet Switch SGMII Select Control reg */
+       u32 res2;
+       u32 pixclkcr;   /* 0x028 Pixel Clock Control register */
+       u32 res3[245];
+       u32 qeioclkcr;  /* 0x400 QUICC Engine IO Clock Control register */
+       u32 emiiocr;    /* 0x404 EMI MDIO Control Register */
+       u32 sdhciovselcr;/* 0x408 SDHC IO VSEL Control register */
+       u32 qmifrstcr;  /* 0x40c QMAN Interface Reset Control register */
+       u32 res4[60];
+       u32 sparecr[8]; /* 0x500 Spare Control register(0-7) */
+};
 #endif /*__IMMAP_85xx__*/