1*78aa0c34Sroy zang /***************************************************************************** 2*78aa0c34Sroy zang * (C) Copyright 2003; Tundra Semiconductor Corp. 3*78aa0c34Sroy zang * (C) Copyright 2006; Freescale Semiconductor Corp. 4*78aa0c34Sroy zang * 5*78aa0c34Sroy zang * This program is free software; you can redistribute it and/or 6*78aa0c34Sroy zang * modify it under the terms of the GNU General Public License as 7*78aa0c34Sroy zang * published by the Free Software Foundation; either version 2 of 8*78aa0c34Sroy zang * the License, or (at your option) any later version. 9*78aa0c34Sroy zang * 10*78aa0c34Sroy zang * This program is distributed in the hope that it will be useful, 11*78aa0c34Sroy zang * but WITHOUT ANY WARRANTY; without even the implied warranty of 12*78aa0c34Sroy zang * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*78aa0c34Sroy zang * GNU General Public License for more details. 14*78aa0c34Sroy zang * 15*78aa0c34Sroy zang * You should have received a copy of the GNU General Public License 16*78aa0c34Sroy zang * along with this program; if not, write to the Free Software 17*78aa0c34Sroy zang * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 18*78aa0c34Sroy zang * MA 02111-1307 USA 19*78aa0c34Sroy zang *****************************************************************************/ 20*78aa0c34Sroy zang 21*78aa0c34Sroy zang /* 22*78aa0c34Sroy zang * FILENAME: tsi108.h 23*78aa0c34Sroy zang * 24*78aa0c34Sroy zang * Originator: Alex Bounine 25*78aa0c34Sroy zang * 26*78aa0c34Sroy zang * DESCRIPTION: 27*78aa0c34Sroy zang * Common definitions for the Tundra Tsi108 bridge chip 28*78aa0c34Sroy zang * 29*78aa0c34Sroy zang */ 30*78aa0c34Sroy zang 31*78aa0c34Sroy zang #ifndef _TSI108_H_ 32*78aa0c34Sroy zang #define _TSI108_H_ 33*78aa0c34Sroy zang 34*78aa0c34Sroy zang #define TSI108_HLP_REG_OFFSET (0x0000) 35*78aa0c34Sroy zang #define TSI108_PCI_REG_OFFSET (0x1000) 36*78aa0c34Sroy zang #define TSI108_CLK_REG_OFFSET (0x2000) 37*78aa0c34Sroy zang #define TSI108_PB_REG_OFFSET (0x3000) 38*78aa0c34Sroy zang #define TSI108_SD_REG_OFFSET (0x4000) 39*78aa0c34Sroy zang #define TSI108_MPIC_REG_OFFSET (0x7400) 40*78aa0c34Sroy zang 41*78aa0c34Sroy zang #define PB_ID (0x000) 42*78aa0c34Sroy zang #define PB_RSR (0x004) 43*78aa0c34Sroy zang #define PB_BUS_MS_SELECT (0x008) 44*78aa0c34Sroy zang #define PB_ISR (0x00C) 45*78aa0c34Sroy zang #define PB_ARB_CTRL (0x018) 46*78aa0c34Sroy zang #define PB_PVT_CTRL2 (0x034) 47*78aa0c34Sroy zang #define PB_SCR (0x400) 48*78aa0c34Sroy zang #define PB_ERRCS (0x404) 49*78aa0c34Sroy zang #define PB_AERR (0x408) 50*78aa0c34Sroy zang #define PB_REG_BAR (0x410) 51*78aa0c34Sroy zang #define PB_OCN_BAR1 (0x414) 52*78aa0c34Sroy zang #define PB_OCN_BAR2 (0x418) 53*78aa0c34Sroy zang #define PB_SDRAM_BAR1 (0x41C) 54*78aa0c34Sroy zang #define PB_SDRAM_BAR2 (0x420) 55*78aa0c34Sroy zang #define PB_MCR (0xC00) 56*78aa0c34Sroy zang #define PB_MCMD (0xC04) 57*78aa0c34Sroy zang 58*78aa0c34Sroy zang #define HLP_B0_ADDR (0x000) 59*78aa0c34Sroy zang #define HLP_B1_ADDR (0x010) 60*78aa0c34Sroy zang #define HLP_B2_ADDR (0x020) 61*78aa0c34Sroy zang #define HLP_B3_ADDR (0x030) 62*78aa0c34Sroy zang 63*78aa0c34Sroy zang #define HLP_B0_MASK (0x004) 64*78aa0c34Sroy zang #define HLP_B1_MASK (0x014) 65*78aa0c34Sroy zang #define HLP_B2_MASK (0x024) 66*78aa0c34Sroy zang #define HLP_B3_MASK (0x034) 67*78aa0c34Sroy zang 68*78aa0c34Sroy zang #define HLP_B0_CTRL0 (0x008) 69*78aa0c34Sroy zang #define HLP_B1_CTRL0 (0x018) 70*78aa0c34Sroy zang #define HLP_B2_CTRL0 (0x028) 71*78aa0c34Sroy zang #define HLP_B3_CTRL0 (0x038) 72*78aa0c34Sroy zang 73*78aa0c34Sroy zang #define HLP_B0_CTRL1 (0x00C) 74*78aa0c34Sroy zang #define HLP_B1_CTRL1 (0x01C) 75*78aa0c34Sroy zang #define HLP_B2_CTRL1 (0x02C) 76*78aa0c34Sroy zang #define HLP_B3_CTRL1 (0x03C) 77*78aa0c34Sroy zang 78*78aa0c34Sroy zang #define PCI_CSR (0x004) 79*78aa0c34Sroy zang #define PCI_P2O_BAR0 (0x010) 80*78aa0c34Sroy zang #define PCI_P2O_BAR0_UPPER (0x014) 81*78aa0c34Sroy zang #define PCI_P2O_BAR2 (0x018) 82*78aa0c34Sroy zang #define PCI_P2O_BAR2_UPPER (0x01C) 83*78aa0c34Sroy zang #define PCI_P2O_BAR3 (0x020) 84*78aa0c34Sroy zang #define PCI_P2O_BAR3_UPPER (0x024) 85*78aa0c34Sroy zang 86*78aa0c34Sroy zang #define PCI_MISC_CSR (0x040) 87*78aa0c34Sroy zang #define PCI_P2O_PAGE_SIZES (0x04C) 88*78aa0c34Sroy zang 89*78aa0c34Sroy zang #define PCI_PCIX_STAT (0x0F4) 90*78aa0c34Sroy zang 91*78aa0c34Sroy zang #define PCI_IRP_STAT (0x184) 92*78aa0c34Sroy zang 93*78aa0c34Sroy zang #define PCI_PFAB_BAR0 (0x204) 94*78aa0c34Sroy zang #define PCI_PFAB_BAR0_UPPER (0x208) 95*78aa0c34Sroy zang #define PCI_PFAB_IO (0x20C) 96*78aa0c34Sroy zang #define PCI_PFAB_IO_UPPER (0x210) 97*78aa0c34Sroy zang 98*78aa0c34Sroy zang #define PCI_PFAB_MEM32 (0x214) 99*78aa0c34Sroy zang #define PCI_PFAB_MEM32_REMAP (0x218) 100*78aa0c34Sroy zang #define PCI_PFAB_MEM32_MASK (0x21C) 101*78aa0c34Sroy zang 102*78aa0c34Sroy zang #define CG_PLL0_CTRL0 (0x210) 103*78aa0c34Sroy zang #define CG_PLL0_CTRL1 (0x214) 104*78aa0c34Sroy zang #define CG_PLL1_CTRL0 (0x220) 105*78aa0c34Sroy zang #define CG_PLL1_CTRL1 (0x224) 106*78aa0c34Sroy zang #define CG_PWRUP_STATUS (0x234) 107*78aa0c34Sroy zang 108*78aa0c34Sroy zang #define MPIC_CSR(n) (0x30C + (n * 0x40)) 109*78aa0c34Sroy zang 110*78aa0c34Sroy zang #define SD_CTRL (0x000) 111*78aa0c34Sroy zang #define SD_STATUS (0x004) 112*78aa0c34Sroy zang #define SD_TIMING (0x008) 113*78aa0c34Sroy zang #define SD_REFRESH (0x00C) 114*78aa0c34Sroy zang #define SD_INT_STATUS (0x010) 115*78aa0c34Sroy zang #define SD_INT_ENABLE (0x014) 116*78aa0c34Sroy zang #define SD_INT_SET (0x018) 117*78aa0c34Sroy zang #define SD_D0_CTRL (0x020) 118*78aa0c34Sroy zang #define SD_D1_CTRL (0x024) 119*78aa0c34Sroy zang #define SD_D0_BAR (0x028) 120*78aa0c34Sroy zang #define SD_D1_BAR (0x02C) 121*78aa0c34Sroy zang #define SD_ECC_CTRL (0x040) 122*78aa0c34Sroy zang #define SD_DLL_STATUS (0x250) 123*78aa0c34Sroy zang 124*78aa0c34Sroy zang #define TS_SD_CTRL_ENABLE (1 << 31) 125*78aa0c34Sroy zang 126*78aa0c34Sroy zang #define PB_ERRCS_ES (1 << 1) 127*78aa0c34Sroy zang #define PB_ISR_PBS_RD_ERR (1 << 8) 128*78aa0c34Sroy zang #define PCI_IRP_STAT_P_CSR (1 << 23) 129*78aa0c34Sroy zang 130*78aa0c34Sroy zang /* 131*78aa0c34Sroy zang * I2C : Register address offset definitions 132*78aa0c34Sroy zang */ 133*78aa0c34Sroy zang #define I2C_CNTRL1 (0x00000000) 134*78aa0c34Sroy zang #define I2C_CNTRL2 (0x00000004) 135*78aa0c34Sroy zang #define I2C_RD_DATA (0x00000008) 136*78aa0c34Sroy zang #define I2C_TX_DATA (0x0000000c) 137*78aa0c34Sroy zang 138*78aa0c34Sroy zang /* 139*78aa0c34Sroy zang * I2C : Register Bit Masks and Reset Values 140*78aa0c34Sroy zang * definitions for every register 141*78aa0c34Sroy zang */ 142*78aa0c34Sroy zang 143*78aa0c34Sroy zang /* I2C_CNTRL1 : Reset Value */ 144*78aa0c34Sroy zang #define I2C_CNTRL1_RESET_VALUE (0x0000000a) 145*78aa0c34Sroy zang 146*78aa0c34Sroy zang /* I2C_CNTRL1 : Register Bits Masks Definitions */ 147*78aa0c34Sroy zang #define I2C_CNTRL1_DEVCODE (0x0000000f) 148*78aa0c34Sroy zang #define I2C_CNTRL1_PAGE (0x00000700) 149*78aa0c34Sroy zang #define I2C_CNTRL1_BYTADDR (0x00ff0000) 150*78aa0c34Sroy zang #define I2C_CNTRL1_I2CWRITE (0x01000000) 151*78aa0c34Sroy zang 152*78aa0c34Sroy zang /* I2C_CNTRL1 : Read/Write Bit Mask Definition */ 153*78aa0c34Sroy zang #define I2C_CNTRL1_RWMASK (0x01ff070f) 154*78aa0c34Sroy zang 155*78aa0c34Sroy zang /* I2C_CNTRL1 : Unused/Reserved bits Definition */ 156*78aa0c34Sroy zang #define I2C_CNTRL1_RESERVED (0xfe00f8f0) 157*78aa0c34Sroy zang 158*78aa0c34Sroy zang /* I2C_CNTRL2 : Reset Value */ 159*78aa0c34Sroy zang #define I2C_CNTRL2_RESET_VALUE (0x00000000) 160*78aa0c34Sroy zang 161*78aa0c34Sroy zang /* I2C_CNTRL2 : Register Bits Masks Definitions */ 162*78aa0c34Sroy zang #define I2C_CNTRL2_SIZE (0x00000003) 163*78aa0c34Sroy zang #define I2C_CNTRL2_LANE (0x0000000c) 164*78aa0c34Sroy zang #define I2C_CNTRL2_MULTIBYTE (0x00000010) 165*78aa0c34Sroy zang #define I2C_CNTRL2_START (0x00000100) 166*78aa0c34Sroy zang #define I2C_CNTRL2_WR_STATUS (0x00010000) 167*78aa0c34Sroy zang #define I2C_CNTRL2_RD_STATUS (0x00020000) 168*78aa0c34Sroy zang #define I2C_CNTRL2_I2C_TO_ERR (0x04000000) 169*78aa0c34Sroy zang #define I2C_CNTRL2_I2C_CFGERR (0x08000000) 170*78aa0c34Sroy zang #define I2C_CNTRL2_I2C_CMPLT (0x10000000) 171*78aa0c34Sroy zang 172*78aa0c34Sroy zang /* I2C_CNTRL2 : Read/Write Bit Mask Definition */ 173*78aa0c34Sroy zang #define I2C_CNTRL2_RWMASK (0x0000011f) 174*78aa0c34Sroy zang 175*78aa0c34Sroy zang /* I2C_CNTRL2 : Unused/Reserved bits Definition */ 176*78aa0c34Sroy zang #define I2C_CNTRL2_RESERVED (0xe3fcfee0) 177*78aa0c34Sroy zang 178*78aa0c34Sroy zang /* I2C_RD_DATA : Reset Value */ 179*78aa0c34Sroy zang #define I2C_RD_DATA_RESET_VALUE (0x00000000) 180*78aa0c34Sroy zang 181*78aa0c34Sroy zang /* I2C_RD_DATA : Register Bits Masks Definitions */ 182*78aa0c34Sroy zang #define I2C_RD_DATA_RBYTE0 (0x000000ff) 183*78aa0c34Sroy zang #define I2C_RD_DATA_RBYTE1 (0x0000ff00) 184*78aa0c34Sroy zang #define I2C_RD_DATA_RBYTE2 (0x00ff0000) 185*78aa0c34Sroy zang #define I2C_RD_DATA_RBYTE3 (0xff000000) 186*78aa0c34Sroy zang 187*78aa0c34Sroy zang /* I2C_RD_DATA : Read/Write Bit Mask Definition */ 188*78aa0c34Sroy zang #define I2C_RD_DATA_RWMASK (0x00000000) 189*78aa0c34Sroy zang 190*78aa0c34Sroy zang /* I2C_RD_DATA : Unused/Reserved bits Definition */ 191*78aa0c34Sroy zang #define I2C_RD_DATA_RESERVED (0x00000000) 192*78aa0c34Sroy zang 193*78aa0c34Sroy zang /* I2C_TX_DATA : Reset Value */ 194*78aa0c34Sroy zang #define I2C_TX_DATA_RESET_VALUE (0x00000000) 195*78aa0c34Sroy zang 196*78aa0c34Sroy zang /* I2C_TX_DATA : Register Bits Masks Definitions */ 197*78aa0c34Sroy zang #define I2C_TX_DATA_TBYTE0 (0x000000ff) 198*78aa0c34Sroy zang #define I2C_TX_DATA_TBYTE1 (0x0000ff00) 199*78aa0c34Sroy zang #define I2C_TX_DATA_TBYTE2 (0x00ff0000) 200*78aa0c34Sroy zang #define I2C_TX_DATA_TBYTE3 (0xff000000) 201*78aa0c34Sroy zang 202*78aa0c34Sroy zang /* I2C_TX_DATA : Read/Write Bit Mask Definition */ 203*78aa0c34Sroy zang #define I2C_TX_DATA_RWMASK (0xffffffff) 204*78aa0c34Sroy zang 205*78aa0c34Sroy zang /* I2C_TX_DATA : Unused/Reserved bits Definition */ 206*78aa0c34Sroy zang #define I2C_TX_DATA_RESERVED (0x00000000) 207*78aa0c34Sroy zang 208*78aa0c34Sroy zang #define TSI108_I2C_OFFSET 0x7000 /* register block offset for general use I2C channel */ 209*78aa0c34Sroy zang #define TSI108_I2C_SDRAM_OFFSET 0x4400 /* register block offset for SPD I2C channel */ 210*78aa0c34Sroy zang 211*78aa0c34Sroy zang #define I2C_EEPROM_DEVCODE 0xA /* standard I2C EEPROM device code */ 212*78aa0c34Sroy zang 213*78aa0c34Sroy zang /* I2C status codes */ 214*78aa0c34Sroy zang 215*78aa0c34Sroy zang #define TSI108_I2C_SUCCESS 0 216*78aa0c34Sroy zang #define TSI108_I2C_PARAM_ERR 1 217*78aa0c34Sroy zang #define TSI108_I2C_TIMEOUT_ERR 2 218*78aa0c34Sroy zang #define TSI108_I2C_IF_BUSY 3 219*78aa0c34Sroy zang #define TSI108_I2C_IF_ERROR 4 220*78aa0c34Sroy zang 221*78aa0c34Sroy zang #endif /* _TSI108_H_ */ 222