1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * DaVinci Power & Sleep Controller (PSC) defines 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2006 Texas Instruments. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify it 7*4882a593Smuzhiyun * under the terms of the GNU General Public License as published by the 8*4882a593Smuzhiyun * Free Software Foundation; either version 2 of the License, or (at your 9*4882a593Smuzhiyun * option) any later version. 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED 12*4882a593Smuzhiyun * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 13*4882a593Smuzhiyun * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 14*4882a593Smuzhiyun * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 15*4882a593Smuzhiyun * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16*4882a593Smuzhiyun * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 17*4882a593Smuzhiyun * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 18*4882a593Smuzhiyun * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 19*4882a593Smuzhiyun * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 20*4882a593Smuzhiyun * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 21*4882a593Smuzhiyun * 22*4882a593Smuzhiyun * You should have received a copy of the GNU General Public License along 23*4882a593Smuzhiyun * with this program; if not, write to the Free Software Foundation, Inc., 24*4882a593Smuzhiyun * 675 Mass Ave, Cambridge, MA 02139, USA. 25*4882a593Smuzhiyun * 26*4882a593Smuzhiyun */ 27*4882a593Smuzhiyun #ifndef __ASM_ARCH_PSC_H 28*4882a593Smuzhiyun #define __ASM_ARCH_PSC_H 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* Power and Sleep Controller (PSC) Domains */ 31*4882a593Smuzhiyun #define DAVINCI_GPSC_ARMDOMAIN 0 32*4882a593Smuzhiyun #define DAVINCI_GPSC_DSPDOMAIN 1 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #define DAVINCI_LPSC_VPSSMSTR 0 35*4882a593Smuzhiyun #define DAVINCI_LPSC_VPSSSLV 1 36*4882a593Smuzhiyun #define DAVINCI_LPSC_TPCC 2 37*4882a593Smuzhiyun #define DAVINCI_LPSC_TPTC0 3 38*4882a593Smuzhiyun #define DAVINCI_LPSC_TPTC1 4 39*4882a593Smuzhiyun #define DAVINCI_LPSC_EMAC 5 40*4882a593Smuzhiyun #define DAVINCI_LPSC_EMAC_WRAPPER 6 41*4882a593Smuzhiyun #define DAVINCI_LPSC_USB 9 42*4882a593Smuzhiyun #define DAVINCI_LPSC_ATA 10 43*4882a593Smuzhiyun #define DAVINCI_LPSC_VLYNQ 11 44*4882a593Smuzhiyun #define DAVINCI_LPSC_UHPI 12 45*4882a593Smuzhiyun #define DAVINCI_LPSC_DDR_EMIF 13 46*4882a593Smuzhiyun #define DAVINCI_LPSC_AEMIF 14 47*4882a593Smuzhiyun #define DAVINCI_LPSC_MMC_SD 15 48*4882a593Smuzhiyun #define DAVINCI_LPSC_McBSP 17 49*4882a593Smuzhiyun #define DAVINCI_LPSC_I2C 18 50*4882a593Smuzhiyun #define DAVINCI_LPSC_UART0 19 51*4882a593Smuzhiyun #define DAVINCI_LPSC_UART1 20 52*4882a593Smuzhiyun #define DAVINCI_LPSC_UART2 21 53*4882a593Smuzhiyun #define DAVINCI_LPSC_SPI 22 54*4882a593Smuzhiyun #define DAVINCI_LPSC_PWM0 23 55*4882a593Smuzhiyun #define DAVINCI_LPSC_PWM1 24 56*4882a593Smuzhiyun #define DAVINCI_LPSC_PWM2 25 57*4882a593Smuzhiyun #define DAVINCI_LPSC_GPIO 26 58*4882a593Smuzhiyun #define DAVINCI_LPSC_TIMER0 27 59*4882a593Smuzhiyun #define DAVINCI_LPSC_TIMER1 28 60*4882a593Smuzhiyun #define DAVINCI_LPSC_TIMER2 29 61*4882a593Smuzhiyun #define DAVINCI_LPSC_SYSTEM_SUBSYS 30 62*4882a593Smuzhiyun #define DAVINCI_LPSC_ARM 31 63*4882a593Smuzhiyun #define DAVINCI_LPSC_SCR2 32 64*4882a593Smuzhiyun #define DAVINCI_LPSC_SCR3 33 65*4882a593Smuzhiyun #define DAVINCI_LPSC_SCR4 34 66*4882a593Smuzhiyun #define DAVINCI_LPSC_CROSSBAR 35 67*4882a593Smuzhiyun #define DAVINCI_LPSC_CFG27 36 68*4882a593Smuzhiyun #define DAVINCI_LPSC_CFG3 37 69*4882a593Smuzhiyun #define DAVINCI_LPSC_CFG5 38 70*4882a593Smuzhiyun #define DAVINCI_LPSC_GEM 39 71*4882a593Smuzhiyun #define DAVINCI_LPSC_IMCOP 40 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun #define DM355_LPSC_TIMER3 5 74*4882a593Smuzhiyun #define DM355_LPSC_SPI1 6 75*4882a593Smuzhiyun #define DM355_LPSC_MMC_SD1 7 76*4882a593Smuzhiyun #define DM355_LPSC_McBSP1 8 77*4882a593Smuzhiyun #define DM355_LPSC_PWM3 10 78*4882a593Smuzhiyun #define DM355_LPSC_SPI2 11 79*4882a593Smuzhiyun #define DM355_LPSC_RTO 12 80*4882a593Smuzhiyun #define DM355_LPSC_VPSS_DAC 41 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun /* DM365 */ 83*4882a593Smuzhiyun #define DM365_LPSC_TIMER3 5 84*4882a593Smuzhiyun #define DM365_LPSC_SPI1 6 85*4882a593Smuzhiyun #define DM365_LPSC_MMC_SD1 7 86*4882a593Smuzhiyun #define DM365_LPSC_McBSP1 8 87*4882a593Smuzhiyun #define DM365_LPSC_PWM3 10 88*4882a593Smuzhiyun #define DM365_LPSC_SPI2 11 89*4882a593Smuzhiyun #define DM365_LPSC_RTO 12 90*4882a593Smuzhiyun #define DM365_LPSC_TIMER4 17 91*4882a593Smuzhiyun #define DM365_LPSC_SPI0 22 92*4882a593Smuzhiyun #define DM365_LPSC_SPI3 38 93*4882a593Smuzhiyun #define DM365_LPSC_SPI4 39 94*4882a593Smuzhiyun #define DM365_LPSC_EMAC 40 95*4882a593Smuzhiyun #define DM365_LPSC_VOICE_CODEC 44 96*4882a593Smuzhiyun #define DM365_LPSC_DAC_CLK 46 97*4882a593Smuzhiyun #define DM365_LPSC_VPSSMSTR 47 98*4882a593Smuzhiyun #define DM365_LPSC_MJCP 50 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun /* 101*4882a593Smuzhiyun * LPSC Assignments 102*4882a593Smuzhiyun */ 103*4882a593Smuzhiyun #define DM646X_LPSC_ARM 0 104*4882a593Smuzhiyun #define DM646X_LPSC_C64X_CPU 1 105*4882a593Smuzhiyun #define DM646X_LPSC_HDVICP0 2 106*4882a593Smuzhiyun #define DM646X_LPSC_HDVICP1 3 107*4882a593Smuzhiyun #define DM646X_LPSC_TPCC 4 108*4882a593Smuzhiyun #define DM646X_LPSC_TPTC0 5 109*4882a593Smuzhiyun #define DM646X_LPSC_TPTC1 6 110*4882a593Smuzhiyun #define DM646X_LPSC_TPTC2 7 111*4882a593Smuzhiyun #define DM646X_LPSC_TPTC3 8 112*4882a593Smuzhiyun #define DM646X_LPSC_PCI 13 113*4882a593Smuzhiyun #define DM646X_LPSC_EMAC 14 114*4882a593Smuzhiyun #define DM646X_LPSC_VDCE 15 115*4882a593Smuzhiyun #define DM646X_LPSC_VPSSMSTR 16 116*4882a593Smuzhiyun #define DM646X_LPSC_VPSSSLV 17 117*4882a593Smuzhiyun #define DM646X_LPSC_TSIF0 18 118*4882a593Smuzhiyun #define DM646X_LPSC_TSIF1 19 119*4882a593Smuzhiyun #define DM646X_LPSC_DDR_EMIF 20 120*4882a593Smuzhiyun #define DM646X_LPSC_AEMIF 21 121*4882a593Smuzhiyun #define DM646X_LPSC_McASP0 22 122*4882a593Smuzhiyun #define DM646X_LPSC_McASP1 23 123*4882a593Smuzhiyun #define DM646X_LPSC_CRGEN0 24 124*4882a593Smuzhiyun #define DM646X_LPSC_CRGEN1 25 125*4882a593Smuzhiyun #define DM646X_LPSC_UART0 26 126*4882a593Smuzhiyun #define DM646X_LPSC_UART1 27 127*4882a593Smuzhiyun #define DM646X_LPSC_UART2 28 128*4882a593Smuzhiyun #define DM646X_LPSC_PWM0 29 129*4882a593Smuzhiyun #define DM646X_LPSC_PWM1 30 130*4882a593Smuzhiyun #define DM646X_LPSC_I2C 31 131*4882a593Smuzhiyun #define DM646X_LPSC_SPI 32 132*4882a593Smuzhiyun #define DM646X_LPSC_GPIO 33 133*4882a593Smuzhiyun #define DM646X_LPSC_TIMER0 34 134*4882a593Smuzhiyun #define DM646X_LPSC_TIMER1 35 135*4882a593Smuzhiyun #define DM646X_LPSC_ARM_INTC 45 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun /* PSC0 defines */ 138*4882a593Smuzhiyun #define DA8XX_LPSC0_TPCC 0 139*4882a593Smuzhiyun #define DA8XX_LPSC0_TPTC0 1 140*4882a593Smuzhiyun #define DA8XX_LPSC0_TPTC1 2 141*4882a593Smuzhiyun #define DA8XX_LPSC0_EMIF25 3 142*4882a593Smuzhiyun #define DA8XX_LPSC0_SPI0 4 143*4882a593Smuzhiyun #define DA8XX_LPSC0_MMC_SD 5 144*4882a593Smuzhiyun #define DA8XX_LPSC0_AINTC 6 145*4882a593Smuzhiyun #define DA8XX_LPSC0_ARM_RAM_ROM 7 146*4882a593Smuzhiyun #define DA8XX_LPSC0_SECU_MGR 8 147*4882a593Smuzhiyun #define DA8XX_LPSC0_UART0 9 148*4882a593Smuzhiyun #define DA8XX_LPSC0_SCR0_SS 10 149*4882a593Smuzhiyun #define DA8XX_LPSC0_SCR1_SS 11 150*4882a593Smuzhiyun #define DA8XX_LPSC0_SCR2_SS 12 151*4882a593Smuzhiyun #define DA8XX_LPSC0_PRUSS 13 152*4882a593Smuzhiyun #define DA8XX_LPSC0_ARM 14 153*4882a593Smuzhiyun #define DA8XX_LPSC0_GEM 15 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun /* PSC1 defines */ 156*4882a593Smuzhiyun #define DA850_LPSC1_TPCC1 0 157*4882a593Smuzhiyun #define DA8XX_LPSC1_USB20 1 158*4882a593Smuzhiyun #define DA8XX_LPSC1_USB11 2 159*4882a593Smuzhiyun #define DA8XX_LPSC1_GPIO 3 160*4882a593Smuzhiyun #define DA8XX_LPSC1_UHPI 4 161*4882a593Smuzhiyun #define DA8XX_LPSC1_CPGMAC 5 162*4882a593Smuzhiyun #define DA8XX_LPSC1_EMIF3C 6 163*4882a593Smuzhiyun #define DA8XX_LPSC1_McASP0 7 164*4882a593Smuzhiyun #define DA830_LPSC1_McASP1 8 165*4882a593Smuzhiyun #define DA850_LPSC1_SATA 8 166*4882a593Smuzhiyun #define DA830_LPSC1_McASP2 9 167*4882a593Smuzhiyun #define DA850_LPSC1_VPIF 9 168*4882a593Smuzhiyun #define DA8XX_LPSC1_SPI1 10 169*4882a593Smuzhiyun #define DA8XX_LPSC1_I2C 11 170*4882a593Smuzhiyun #define DA8XX_LPSC1_UART1 12 171*4882a593Smuzhiyun #define DA8XX_LPSC1_UART2 13 172*4882a593Smuzhiyun #define DA850_LPSC1_McBSP0 14 173*4882a593Smuzhiyun #define DA850_LPSC1_McBSP1 15 174*4882a593Smuzhiyun #define DA8XX_LPSC1_LCDC 16 175*4882a593Smuzhiyun #define DA8XX_LPSC1_PWM 17 176*4882a593Smuzhiyun #define DA850_LPSC1_MMC_SD1 18 177*4882a593Smuzhiyun #define DA8XX_LPSC1_ECAP 20 178*4882a593Smuzhiyun #define DA830_LPSC1_EQEP 21 179*4882a593Smuzhiyun #define DA850_LPSC1_TPTC2 21 180*4882a593Smuzhiyun #define DA8XX_LPSC1_SCR_P0_SS 24 181*4882a593Smuzhiyun #define DA8XX_LPSC1_SCR_P1_SS 25 182*4882a593Smuzhiyun #define DA8XX_LPSC1_CR_P3_SS 26 183*4882a593Smuzhiyun #define DA8XX_LPSC1_L3_CBA_RAM 31 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun /* PSC register offsets */ 186*4882a593Smuzhiyun #define EPCPR 0x070 187*4882a593Smuzhiyun #define PTCMD 0x120 188*4882a593Smuzhiyun #define PTSTAT 0x128 189*4882a593Smuzhiyun #define PDSTAT 0x200 190*4882a593Smuzhiyun #define PDCTL 0x300 191*4882a593Smuzhiyun #define MDSTAT 0x800 192*4882a593Smuzhiyun #define MDCTL 0xA00 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun /* PSC module states */ 195*4882a593Smuzhiyun #define PSC_STATE_SWRSTDISABLE 0 196*4882a593Smuzhiyun #define PSC_STATE_SYNCRST 1 197*4882a593Smuzhiyun #define PSC_STATE_DISABLE 2 198*4882a593Smuzhiyun #define PSC_STATE_ENABLE 3 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun #define MDSTAT_STATE_MASK 0x3f 201*4882a593Smuzhiyun #define PDSTAT_STATE_MASK 0x1f 202*4882a593Smuzhiyun #define MDCTL_LRST BIT(8) 203*4882a593Smuzhiyun #define MDCTL_FORCE BIT(31) 204*4882a593Smuzhiyun #define PDCTL_NEXT BIT(0) 205*4882a593Smuzhiyun #define PDCTL_EPCGOOD BIT(8) 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun #endif /* __ASM_ARCH_PSC_H */ 208