/*
 *  linux/arch/arm/mach-comcerto/include/mach/comcerto-2000/clk-rst.h
 *
 *  Copyright (C) 2008 Mindspeed Technologies, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef __CLK_H__
#define __CLK_H__

/*
 * Clock Reset Registers
 */
#define DEVICE_RST_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x000)
#define SERDES_RST_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x004)
#define PCIe_SATA_RST_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x008)
#define USB_RST_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x00C)
#define GNRL_DEVICE_CNFG_0		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x010)
#define GNRL_DEVICE_CNFG_1 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x014)
#define GNRL_DEVICE_STATUS		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x018)
#define A9DP_PWR_STAT			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x028)
#define A9DP_PWR_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x02C)
#define GNRL_CLK_CNTRL_0 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x030)
#define GNRL_CLK_CNTRL_1		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x034)
#define PLLS_GLOBAL_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x038)
#define AXI_CLK_CNTRL_0			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x040)
#define AXI_CLK_CNTRL_1			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x044)
#define AXI_CLK_CNTRL_2			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x048)
#define AXI_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x04C)
#define AXI_RESET_0			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x050)
#define AXI_RESET_1			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x054)
#define AXI_RESET_2			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x058)
#define A9DP_MPU_CLK_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x68)
#define A9DP_MPU_CLK_DIV_CNTRL       	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x6C)
#define A9DP_MPU_RESET               	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x70)
#define A9DP_CPU_CLK_CNTRL           	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x74)
#define A9DP_CPU_RESET               	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x78)
#define A9DP_CLK_CNTRL               	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x80)
#define A9DP_CLK_DIV_CNTRL           	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x84)
#define A9DP_RESET                   	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x88)
#define L2CC_CLK_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x090)
#define L2CC_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x094)
#define L2CC_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x098)
#define TPI_CLK_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0A0)
#define TPI_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0A4)
#define TPI_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0A8)
#define CSYS_CLK_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0B0)
#define CSYS_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0B4)
#define CSYS_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0B8)
#define EXTPHY0_CLK_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0C0)
#define EXTPHY0_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0C4)
#define EXTPHY0_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0C8)
#define EXTPHY1_CLK_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0D0)
#define EXTPHY1_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0D4)
#define EXTPHY1_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0D8)
#define EXTPHY2_CLK_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0E0)
#define EXTPHY2_CLK_DIV_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0E4)
#define EXTPHY2_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0E8)
#define DDR_CLK_CNTRL 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0F0)
#define DDR_CLK_DIV_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0F4)
#define DDR_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x0F8)
#define PFE_CLK_CNTRL 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x100)
#define PFE_CLK_DIV_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x104)
#define PFE_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x108)
#define IPSEC_CLK_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x110)
#define IPSEC_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x114)
#define IPSEC_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x118)
#define DECT_CLK_CNTRL 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x120)
#define DECT_CLK_DIV_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x124)
#define DECT_RESET 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x128)
#define GEMTX_CLK_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x130)
#define GEMTX_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x134)
#define GEMTX_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x138)
#define TDMNTG_REF_CLK_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x140)
#define TDMNTG_REF_CLK_DIV_CNTRL 	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x144)
#define TDMNTG_RESET 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x148)
#define TDM_CLK_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x14C)
#define TSUNTG_REF_CLK_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x150)
#define TSUNTG_REF_CLK_DIV_CNTRL 	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x154)
#define TSUNTG_RESET 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x158)
#define SATA_PMU_CLK_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x160)
#define SATA_PMU_CLK_DIV_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x164)
#define SATA_PMU_RESET 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x168)
#define SATA_OOB_CLK_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x170)
#define SATA_OOB_CLK_DIV_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x174)
#define SATA_OOB_RESET 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x178)
#define SATA_OCC_CLK_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x180)
#define SATA_OCC_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x184)
#define SATA_OCC_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x188)
#define PCIE_OCC_CLK_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x190)
#define PCIE_OCC_CLK_DIV_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x194)
#define PCIE_OCC_RESET			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x198)
#define SGMII_OCC_CLK_CNTRL 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1A0)
#define SGMII_OCC_CLK_DIV_CNTRL 	APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1A4)
#define SGMII_OCC_RESET 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1A8)
#define PLL0_M_LSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1C0)
#define PLL0_M_MSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1C4)
#define PLL0_P				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1C8)
#define PLL0_S				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1CC)
#define PLL0_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1D0)
#define PLL0_TEST			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1D4)
#define PLL0_STATUS			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1D8)
#define PLL0_DIV_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1DC)
#define PLL1_M_LSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1E0)
#define PLL1_M_MSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1E4)
#define PLL1_P				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1E8)
#define PLL1_S				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1EC)
#define PLL1_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1F0)
#define PLL1_TEST			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1F4)
#define PLL1_STATUS			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1F8)
#define PLL1_DIV_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x1FC)
#define PLL2_M_LSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x200)
#define PLL2_M_MSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x204)
#define PLL2_P				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x208)
#define PLL2_S				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x20C)
#define PLL2_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x210)
#define PLL2_TEST			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x214)
#define PLL2_STATUS			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x218)
#define PLL2_DIV_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x21C)
#define PLL3_M_LSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x220)
#define PLL3_M_MSB			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x224)
#define PLL3_P				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x228)
#define PLL3_S				APB_VADDR(COMCERTO_APB_CLK_BASE + 0x22c)
#define PLL3_CNTRL			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x230)
#define PLL3_TEST			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x234)
#define PLL3_STATUS			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x238)
#define PLL3_DITHER_CNTRL		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x23C)
#define PLL3_K_LSB 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x240)
#define PLL3_K_MSB 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x244)
#define PLL3_MFR 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x248)
#define PLL3_MRR 			APB_VADDR(COMCERTO_APB_CLK_BASE + 0x24C)

#define C2K_CLK_PLL0				0
#define C2K_CLK_PLL1				1
#define C2K_CLK_PLL2				2
#define C2K_CLK_PLL3				3

/* Device Reset Control Register (DEVICE_RST_CNTRL)*/

#define CLK_DIV_RESTART         (1 << 7)
#define WD_STATUS_CLR           (1 << 6)
#define AXI_WD_RST_EN           (1 << 5)
#define DEBUG_RST               (1 << 4)
#define CLKRST_SCLR_RST         (1 << 3)
#define FUNC_SCLR_RST           (1 << 2)
#define GLB_SCLR_RST            (1 << 1)
#define PWR_ON_SOFT_RST         (1 << 0)

/* General Device Configuration Status Register (GNRL_DEVICE_STATUS) */
#define CPU1_WD_RST_ACTIVATED   (1 << 2)
#define CPU0_WD_RST_ACTIVATED   (1 << 1)
#define AXI_WD_RST_ACTIVATED    (1 << 0)

/* Clock Control Register */
#define CLOCK_DOMAIN_ENABLE		1
#define CLOCK_DOMAIN_ENABLE_SHIFT	0

#define CLOCK_SOURCE_PLL0		0
#define CLOCK_SOURCE_PLL1		1
#define CLOCK_SOURCE_PLL2		2
#define CLOCK_SOURCE_PLL3		3
#define CLOCK_SOURCE_PLL4		4

#define CLOCK_SOURCE_SHIFT		1

#define CLK_DIV_BYPASS			(1 << 7)
#define CLK_DIV_RATIO_MASK		0x1f

#define PLL_VSEL			(1 << 6)
#define PLL_LOCK_EN			(1 << 5)
#define PLL_BYPASS			(1 << 4)
#define PLL_RESET			(1 << 0)

#define PLL_LOCK			(1 << 0)

#define CLK_PLL_SRC_MASK		0x7
#define CLK_PLL_SRC_SHIFT		1
#define CLK_A9DP_PERI_DIV_BYPASS	(1 << 3)


/* TDMNTG */
#define TDMNTG_ADDR_SPACE_BASEADDR 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x280)

#define TDM_NTG_CLK_CTRL	(TDMNTG_ADDR_SPACE_BASEADDR + 0x00)
#define TDM_NTG_INCR		(TDMNTG_ADDR_SPACE_BASEADDR + 0x04)
#define TDM_FSYNC_GEN_CTRL	(TDMNTG_ADDR_SPACE_BASEADDR + 0x08)
#define	TDM_FSYNC_LOW		(TDMNTG_ADDR_SPACE_BASEADDR + 0x0C)
#define TDM_FSYNC_HIGH		(TDMNTG_ADDR_SPACE_BASEADDR + 0x10)

#define FSYNC_FALL_EDGE		(1 << 1)
#define	NTG_DIV_RST_N		(1 << 5)
#define NTG_EN			(1 << 0)


/* TSUNTG */
#define TSUNTG_ADDR_SPACE_BASEADDR 		APB_VADDR(COMCERTO_APB_CLK_BASE + 0x2C0)

/* USB 3.0 */
#define USB1_UTMI_RST           (1 << 5)
#define USB1_PHY_RST            (1 << 4)
#define USB1_AXI_RST            (1 << 4)

/* USB 2.0 */
#define USB0_PHY_RST		(1 << 0)
#define USB0_UTMI_RST		(1 << 1)
#define USB0_AXI_RST		(1 << 3)

/* CPU */
#define CPU0_RST			(1 << 0)
#define NEON0_RST			(1 << 1)
#define CPU1_RST			(1 << 2)
#define NEON1_RST			(1 << 3)

#define CPU0_CLK_ENABLE		(1 << 0)
#define NEON0_CLK_ENABLE	(1 << 1)
#define CPU1_CLK_ENABLE		(1 << 2)
#define NEON1_CLK_ENABLE	(1 << 3)

#define GLOBAL_CLK_ENABLE	(1 << 0)

#define CLAMP_CORE0     	(1 << 4)
#define CLAMP_CORE1     	(1 << 6)
#define CORE_PWRDWN0        (1 << 5)
#define CORE_PWRDWN1        (1 << 7)
#define MP_PWRDWN       	(1 << 0)

#define SCPRE   			(1 << 4)
#define SCALL   			(1 << 5)
#define ISO_EN  			(1 << 6)

#ifndef __ASSEMBLY__

/* Function Declaration */
extern void HAL_clk_div_backup_relocate_table (void);
extern unsigned long HAL_get_ref_clk (void);
#endif


#endif
