Path: blob/master/arch/arm/mach-davinci/include/mach/psc.h
17621 views
/*1* DaVinci Power & Sleep Controller (PSC) defines2*3* Copyright (C) 2006 Texas Instruments.4*5* This program is free software; you can redistribute it and/or modify it6* under the terms of the GNU General Public License as published by the7* Free Software Foundation; either version 2 of the License, or (at your8* option) any later version.9*10* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED11* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF12* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN13* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,14* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT15* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF16* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON17* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT18* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF19* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.20*21* You should have received a copy of the GNU General Public License along22* with this program; if not, write to the Free Software Foundation, Inc.,23* 675 Mass Ave, Cambridge, MA 02139, USA.24*25*/26#ifndef __ASM_ARCH_PSC_H27#define __ASM_ARCH_PSC_H2829#define DAVINCI_PWR_SLEEP_CNTRL_BASE 0x01C410003031/* Power and Sleep Controller (PSC) Domains */32#define DAVINCI_GPSC_ARMDOMAIN 033#define DAVINCI_GPSC_DSPDOMAIN 13435#define DAVINCI_LPSC_VPSSMSTR 036#define DAVINCI_LPSC_VPSSSLV 137#define DAVINCI_LPSC_TPCC 238#define DAVINCI_LPSC_TPTC0 339#define DAVINCI_LPSC_TPTC1 440#define DAVINCI_LPSC_EMAC 541#define DAVINCI_LPSC_EMAC_WRAPPER 642#define DAVINCI_LPSC_USB 943#define DAVINCI_LPSC_ATA 1044#define DAVINCI_LPSC_VLYNQ 1145#define DAVINCI_LPSC_UHPI 1246#define DAVINCI_LPSC_DDR_EMIF 1347#define DAVINCI_LPSC_AEMIF 1448#define DAVINCI_LPSC_MMC_SD 1549#define DAVINCI_LPSC_McBSP 1750#define DAVINCI_LPSC_I2C 1851#define DAVINCI_LPSC_UART0 1952#define DAVINCI_LPSC_UART1 2053#define DAVINCI_LPSC_UART2 2154#define DAVINCI_LPSC_SPI 2255#define DAVINCI_LPSC_PWM0 2356#define DAVINCI_LPSC_PWM1 2457#define DAVINCI_LPSC_PWM2 2558#define DAVINCI_LPSC_GPIO 2659#define DAVINCI_LPSC_TIMER0 2760#define DAVINCI_LPSC_TIMER1 2861#define DAVINCI_LPSC_TIMER2 2962#define DAVINCI_LPSC_SYSTEM_SUBSYS 3063#define DAVINCI_LPSC_ARM 3164#define DAVINCI_LPSC_SCR2 3265#define DAVINCI_LPSC_SCR3 3366#define DAVINCI_LPSC_SCR4 3467#define DAVINCI_LPSC_CROSSBAR 3568#define DAVINCI_LPSC_CFG27 3669#define DAVINCI_LPSC_CFG3 3770#define DAVINCI_LPSC_CFG5 3871#define DAVINCI_LPSC_GEM 3972#define DAVINCI_LPSC_IMCOP 407374#define DM355_LPSC_TIMER3 575#define DM355_LPSC_SPI1 676#define DM355_LPSC_MMC_SD1 777#define DM355_LPSC_McBSP1 878#define DM355_LPSC_PWM3 1079#define DM355_LPSC_SPI2 1180#define DM355_LPSC_RTO 1281#define DM355_LPSC_VPSS_DAC 418283/* DM365 */84#define DM365_LPSC_TIMER3 585#define DM365_LPSC_SPI1 686#define DM365_LPSC_MMC_SD1 787#define DM365_LPSC_McBSP1 888#define DM365_LPSC_PWM3 1089#define DM365_LPSC_SPI2 1190#define DM365_LPSC_RTO 1291#define DM365_LPSC_TIMER4 1792#define DM365_LPSC_SPI0 2293#define DM365_LPSC_SPI3 3894#define DM365_LPSC_SPI4 3995#define DM365_LPSC_EMAC 4096#define DM365_LPSC_VOICE_CODEC 4497#define DM365_LPSC_DAC_CLK 4698#define DM365_LPSC_VPSSMSTR 4799#define DM365_LPSC_MJCP 50100101/*102* LPSC Assignments103*/104#define DM646X_LPSC_ARM 0105#define DM646X_LPSC_C64X_CPU 1106#define DM646X_LPSC_HDVICP0 2107#define DM646X_LPSC_HDVICP1 3108#define DM646X_LPSC_TPCC 4109#define DM646X_LPSC_TPTC0 5110#define DM646X_LPSC_TPTC1 6111#define DM646X_LPSC_TPTC2 7112#define DM646X_LPSC_TPTC3 8113#define DM646X_LPSC_PCI 13114#define DM646X_LPSC_EMAC 14115#define DM646X_LPSC_VDCE 15116#define DM646X_LPSC_VPSSMSTR 16117#define DM646X_LPSC_VPSSSLV 17118#define DM646X_LPSC_TSIF0 18119#define DM646X_LPSC_TSIF1 19120#define DM646X_LPSC_DDR_EMIF 20121#define DM646X_LPSC_AEMIF 21122#define DM646X_LPSC_McASP0 22123#define DM646X_LPSC_McASP1 23124#define DM646X_LPSC_CRGEN0 24125#define DM646X_LPSC_CRGEN1 25126#define DM646X_LPSC_UART0 26127#define DM646X_LPSC_UART1 27128#define DM646X_LPSC_UART2 28129#define DM646X_LPSC_PWM0 29130#define DM646X_LPSC_PWM1 30131#define DM646X_LPSC_I2C 31132#define DM646X_LPSC_SPI 32133#define DM646X_LPSC_GPIO 33134#define DM646X_LPSC_TIMER0 34135#define DM646X_LPSC_TIMER1 35136#define DM646X_LPSC_ARM_INTC 45137138/* PSC0 defines */139#define DA8XX_LPSC0_TPCC 0140#define DA8XX_LPSC0_TPTC0 1141#define DA8XX_LPSC0_TPTC1 2142#define DA8XX_LPSC0_EMIF25 3143#define DA8XX_LPSC0_SPI0 4144#define DA8XX_LPSC0_MMC_SD 5145#define DA8XX_LPSC0_AINTC 6146#define DA8XX_LPSC0_ARM_RAM_ROM 7147#define DA8XX_LPSC0_SECU_MGR 8148#define DA8XX_LPSC0_UART0 9149#define DA8XX_LPSC0_SCR0_SS 10150#define DA8XX_LPSC0_SCR1_SS 11151#define DA8XX_LPSC0_SCR2_SS 12152#define DA8XX_LPSC0_PRUSS 13153#define DA8XX_LPSC0_ARM 14154#define DA8XX_LPSC0_GEM 15155156/* PSC1 defines */157#define DA850_LPSC1_TPCC1 0158#define DA8XX_LPSC1_USB20 1159#define DA8XX_LPSC1_USB11 2160#define DA8XX_LPSC1_GPIO 3161#define DA8XX_LPSC1_UHPI 4162#define DA8XX_LPSC1_CPGMAC 5163#define DA8XX_LPSC1_EMIF3C 6164#define DA8XX_LPSC1_McASP0 7165#define DA830_LPSC1_McASP1 8166#define DA850_LPSC1_SATA 8167#define DA830_LPSC1_McASP2 9168#define DA8XX_LPSC1_SPI1 10169#define DA8XX_LPSC1_I2C 11170#define DA8XX_LPSC1_UART1 12171#define DA8XX_LPSC1_UART2 13172#define DA8XX_LPSC1_LCDC 16173#define DA8XX_LPSC1_PWM 17174#define DA850_LPSC1_MMC_SD1 18175#define DA8XX_LPSC1_ECAP 20176#define DA830_LPSC1_EQEP 21177#define DA850_LPSC1_TPTC2 21178#define DA8XX_LPSC1_SCR_P0_SS 24179#define DA8XX_LPSC1_SCR_P1_SS 25180#define DA8XX_LPSC1_CR_P3_SS 26181#define DA8XX_LPSC1_L3_CBA_RAM 31182183/* TNETV107X LPSC Assignments */184#define TNETV107X_LPSC_ARM 0185#define TNETV107X_LPSC_GEM 1186#define TNETV107X_LPSC_DDR2_PHY 2187#define TNETV107X_LPSC_TPCC 3188#define TNETV107X_LPSC_TPTC0 4189#define TNETV107X_LPSC_TPTC1 5190#define TNETV107X_LPSC_RAM 6191#define TNETV107X_LPSC_MBX_LITE 7192#define TNETV107X_LPSC_LCD 8193#define TNETV107X_LPSC_ETHSS 9194#define TNETV107X_LPSC_AEMIF 10195#define TNETV107X_LPSC_CHIP_CFG 11196#define TNETV107X_LPSC_TSC 12197#define TNETV107X_LPSC_ROM 13198#define TNETV107X_LPSC_UART2 14199#define TNETV107X_LPSC_PKTSEC 15200#define TNETV107X_LPSC_SECCTL 16201#define TNETV107X_LPSC_KEYMGR 17202#define TNETV107X_LPSC_KEYPAD 18203#define TNETV107X_LPSC_GPIO 19204#define TNETV107X_LPSC_MDIO 20205#define TNETV107X_LPSC_SDIO0 21206#define TNETV107X_LPSC_UART0 22207#define TNETV107X_LPSC_UART1 23208#define TNETV107X_LPSC_TIMER0 24209#define TNETV107X_LPSC_TIMER1 25210#define TNETV107X_LPSC_WDT_ARM 26211#define TNETV107X_LPSC_WDT_DSP 27212#define TNETV107X_LPSC_SSP 28213#define TNETV107X_LPSC_TDM0 29214#define TNETV107X_LPSC_VLYNQ 30215#define TNETV107X_LPSC_MCDMA 31216#define TNETV107X_LPSC_USB0 32217#define TNETV107X_LPSC_TDM1 33218#define TNETV107X_LPSC_DEBUGSS 34219#define TNETV107X_LPSC_ETHSS_RGMII 35220#define TNETV107X_LPSC_SYSTEM 36221#define TNETV107X_LPSC_IMCOP 37222#define TNETV107X_LPSC_SPARE 38223#define TNETV107X_LPSC_SDIO1 39224#define TNETV107X_LPSC_USB1 40225#define TNETV107X_LPSC_USBSS 41226#define TNETV107X_LPSC_DDR2_EMIF1_VRST 42227#define TNETV107X_LPSC_DDR2_EMIF2_VCTL_RST 43228#define TNETV107X_LPSC_MAX 44229230/* PSC register offsets */231#define EPCPR 0x070232#define PTCMD 0x120233#define PTSTAT 0x128234#define PDSTAT 0x200235#define PDCTL1 0x304236#define MDSTAT 0x800237#define MDCTL 0xA00238239/* PSC module states */240#define PSC_STATE_SWRSTDISABLE 0241#define PSC_STATE_SYNCRST 1242#define PSC_STATE_DISABLE 2243#define PSC_STATE_ENABLE 3244245#define MDSTAT_STATE_MASK 0x1f246247#ifndef __ASSEMBLER__248249extern int davinci_psc_is_clk_active(unsigned int ctlr, unsigned int id);250extern void davinci_psc_config(unsigned int domain, unsigned int ctlr,251unsigned int id, u32 next_state);252253#endif254255#endif /* __ASM_ARCH_PSC_H */256257258