/*
 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
 *              http://www.samsung.com
 *
 * Author: Sung-Hyun Na <sunghyun.na@samsung.com>
 *
 * Chip Abstraction Layer for USB PHY
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * 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.
 */

#ifndef DRIVER_USB_USBPHY_CAL_PHY_EXYNOS_USB3P1_REG_H_
#define DRIVER_USB_USBPHY_CAL_PHY_EXYNOS_USB3P1_REG_H_

#define EXYNOS_USBCON_CTRL_VER		(0x00)

#define EXYNOS_USBCON_LINK_CTRL		(0x04)
#define LINKCTRL_PIPE3_FORCE_RX_ELEC_IDLE	(0x1 << 18)
#define LINKCTRL_PIPE3_FORCE_PHY_STATUS		(0x1 << 17)
#define LINKCTRL_PIPE3_FORCE_EN			(0x1 << 16)
#define LINKCTRL_DIS_QACT_BUSPEND		(0x1 << 13)
#define LINKCTRL_DIS_QACT_LINKGATE		(0x1 << 12)
#define LINKCTRL_DIS_QACT_ID0			(0x1 << 11)
#define LINKCTRL_DIS_QACT_VBUS_VALID		(0x1 << 10)
#define LINKCTRL_DIS_QACT_BVALID		(0x1 << 9)
#define LINKCTRL_FORCE_QACT			(0x1 << 8)
#define LINKCTRL_BUS_FILTER_BYPASS(_x)		((_x & 0xf) << 4)
#define LINKCTRL_BUS_FILTER_BYPASS_MASK		(0xf << 4)
#define LINKCTRL_HOST_SYSTEM_ERR		(0x1 << 2)
#define LINKCTRL_LINK_PME			(0x1 << 1)
#define LINKCTRL_PME_GENERATION			(0x1 << 0)

#define EXYNOS_USBCON_LINK_PORT		(0x08)
#define LINKPORT_HOST_NUM_U3(_x)		((_x & 0xf) << 16)
#define LINKPORT_HOST_NUM_U2(_x)		((_x & 0xf) << 12)
#define LINKPORT_HOST_U3_PORT_DISABLE		(0x1 << 9)
#define LINKPORT_HOST_U2_PORT_DISABLE		(0x1 << 8)
#define LINKPORT_HOST_PORT_POWER_CON_PRESENT	(0x1 << 6)
#define LINKPORT_HUB_PORT_SET_OCD_U3		(0x1 << 5)
#define LINKPORT_HUB_PORT_SET_OCD_U2		(0x1 << 4)
#define LINKPORT_HUB_PORT_SEL_OCD_U3		(0x1 << 3)
#define LINKPORT_HUB_PORT_SEL_OCD_U2		(0x1 << 2)
#define LINKPORT_HUB_PERM_ATTACH_U3		(0x1 << 1)
#define LINKPORT_HUB_PERM_ATTACH_U2		(0x1 << 0)

#define EXYNOS_USBCON_LINK_DEBUG_L	(0x0C)
#define EXYNOS_USBCON_LINK_DEBUG_H	(0x10)

#define EXYNOS_USBCON_LTSTATE_HIS	(0x14)
#define LTSTATE_LINKTRN_DONE			(0x1 << 31)
#define LTSTATE_HIS4(_x)			((_x & 0xf) << 16)
#define LTSTATE_HIS3(_x)			((_x & 0xf) << 12)
#define LTSTATE_HIS2(_x)			((_x & 0xf) << 8)
#define LTSTATE_HIS1(_x)			((_x & 0xf) << 4)
#define LTSTATE_HIS0(_x)			((_x & 0xf) << 0)

#define EXYNOS_USBCON_CLKRST		(0x20)
#define CLKRST_USBAUDIO_CLK_GATE_EN		(0x1 << 9)
#define CLKRST_USBAUDIO_CLK_SEL			(0x1 << 8)
#define CLKRST_LINK_PCLK_SEL			(0x1 << 7)
#define CLKRST_PHYCLOCKSEL			(0x1 << 6)
#define CLKRST_REFCLK_SEL			(0x1 << 4)
#define CLKRST_PHY_SW_RST			(0x1 << 3)
#define CLKRST_PHY_RST_SEL			(0x1 << 2)
#define CLKRST_PORT_RST				(0x1 << 1)
#define CLKRST_LINK_SW_RST			(0x1 << 0)

#define EXYNOS_USBCON_PWR		(0x24)
#define PWR_FORCE_POWERDONW			(0x1 << 2)
#define PWR_TEST_POWERDOWN_SSP			(0x1 << 1)
#define PWR_TEST_POWERDOWN_HSP			(0x1 << 0)

#define EXYNOS_USBCON_DUALPHYSEL	(0x28)
#define DUALPHYSEL_PHYSEL_CTRL			(0x1 << 0)
#define DUALPHYSEL_PHYSEL_SSPHY			(0x1 << 1)
#define DUALPHYSEL_PHYSEL_PIPECLK		(0x1 << 4)
#define DUALPHYSEL_PHYSEL_PIPERST		(0x1 << 8)

#define EXYNOS_USBCON_SSP_PLL		(0x30)
#define SSP_PLL_MPLL_MULTIPLIER_MASK		(0x7F << 24)
#define SSP_PLL_MPLL_MULTIPLIER(_x)		((_x & 0x7f) << 24)
#define SSP_PLL_SSC_REF_CLK_SEL_MASK		(0x1ff << 12)
#define SSP_PLL_SSC_REF_CLK_SEL(_x)		((_x & 0x1ff) << 12)
#define SSP_PLL_SSC_EN				(0x1 << 11)
#define SSP_PLL_SSC_RANGE_MASK			(0x7 << 8)
#define SSP_PLL_SSC_RANGE(_x)			((_x & 0x7) << 8)
#define SSP_PLL_REF_SSP_EN			(0x1 << 7)
#define SSP_PLL_REF_CLKDIV2			(0x1 << 6)
#define SSP_PLL_FSEL_MASK			(0x3f << 0)
#define SSP_PLL_FSEL(_x)			((_x & 0x3f) << 0)

#define EXYNOS_USBCON_SSP_PARACON0	(0x34)
#define SSP_PARACON0_TX0_TERM_OFFSET_MASK	(0x1f << 25)
#define SSP_PARACON0_TX0_TERM_OFFSET(_x)	((_x & 0x1f) << 25)
#define SSP_PARACON0_PCS_TX_SWING_FULL_MASK	(0x7f << 16)
#define SSP_PARACON0_PCS_TX_SWING_FULL(_x)	((_x & 0x7f) << 16)
#define SSP_PARACON0_PCS_TX_DEEMPH_6DB_MASK	(0x3f << 8)
#define SSP_PARACON0_PCS_TX_DEEMPH_6DB(_x)	((_x & 0x3f) << 8)
#define SSP_PARACON0_PCS_TX_DEEMPH_3P5DB_MASK	(0x3f << 0)
#define SSP_PARACON0_PCS_TX_DEEMPH_3P5DB(_x)	((_x & 0x3f) << 0)

#define EXYNOS_USBCON_SSP_PARACON1	(0x38)
#define SSP_PARACON1_TX_VBOOST_LVL_MASK		(0x7 << 24)
#define SSP_PARACON1_TX_VBOOST_LVL(_x)		((_x & 0x7) << 24)
#define SSP_PARACON1_LOS_LEVEL_MASK		(0x1f << 16)
#define SSP_PARACON1_LOS_LEVEL(_x)		((_x & 0x1f) << 16)
#define SSP_PARACON1_LOS_BIAS_MASK		(0x7 << 12)
#define SSP_PARACON1_LOS_BIAS(_x)		((_x & 0x7) << 12)
#define SSP_PARACON1_PCS_RX_LOS_MASK_VAL_MASK	(0x3ff << 0)
#define SSP_PARACON1_PCS_RX_LOS_MASK_VAL(_x)	((_x & 0x3ff) << 0)

#define EXYNOS_USBCON_SSP_TEST		(0x3C)
#define SSP_TEST_ATERESET			(0x1 << 4)
#define SSP_TEST_RTUNE_ACK			(0x1 << 3)
#define SSP_TEST_RTUNE_REQ			(0x1 << 2)
#define SSP_TEST_LANE0_TX2RX_LOOPBK		(0x1 << 1)
#define SSP_TEST_LOOPBACKENB			(0x1 << 0)

#define EXYNOS_USBCON_SSP_CRCTL0	(0x40)
#define SSP_CCTRL0_CR_DATA_IN_MASK		(0xffff << 16)
#define SSP_CCTRL0_CR_DATA_IN(_x)		((_x & 0xffff) << 16)
#define SSP_CRCTRL0_CR_WRITE			(0x1 << 3)
#define SSP_CRCTRL0_CR_READ			(0x1 << 2)
#define SSP_CRCTRL0_CR_CAP_DATA			(0x1 << 1)
#define SSP_CRCTRL0_CR_CAP_ADDR			(0x1 << 0)

#define EXYNOS_USBCON_SSP_CRCTL1	(0x44)
#define SSP_CRCTL1_CR_DATA_OUT_MASK		(0xffff << 16)
#define SSP_CRCTL1_CR_DATA_OUT(_x)		((_x & 0xffff) << 16)
#define SSP_CRCTL1_CR_ACK			(0x1 << 0)

#define EXYNOS_USBCON_COMBO_PMA_CTRL	(0x48)
#define PMA_PLL_REF_REQ_MASK			(0x3 << 10)
#define PMA_PLL_REF_REQ_SET(_x)			((_x & 0x3) << 10)
#define PMA_PLL_REF_REQ_GET(_x)			((_x & (0x3 << 10)) >> 10)
#define PMA_REF_FREQ_MASK			(0x3 << 8)
#define PMA_REF_FREQ_SET(_x)			((_x & 0x3) << 8)
#define PMA_REF_FREQ_GET(_x)			((_x & (0x3 << 8)) >> 8)
#define PMA_LOW_PWRN				(0x1 << 4)
#define PMA_TRSV_SW_RST				(0x1 << 3)
#define PMA_CMN_SW_RST				(0x1 << 2)
#define PMA_INIT_SW_RST				(0x1 << 1)
#define PMA_APB_SW_RST				(0x1 << 0)


#define EXYNOS_USBCON_UTMI		(0x50)
#define UTMI_OPMODE_CTRL_EN			(0x1 << 8)
#define UTMI_FORCE_OPMODE(_x)			((_x & 0x3) << 6)
#define UTMI_FORCE_VBUSVALID			(0x1 << 5)
#define UTMI_FORCE_BVALID			(0x1 << 4)
#define UTMI_DP_PULLDOWN			(0x1 << 3)
#define UTMI_DM_PULLDOWN			(0x1 << 2)
#define UTMI_FORCE_SUSPEND			(0x1 << 1)
#define UTMI_FORCE_SLEEP			(0x1 << 0)

#define EXYNOS_USBCON_HSP		(0x54)
#define HSP_AUTORSM_ENB				(0x1 << 29)
#define HSP_RETENABLE_EN			(0x1 << 28)
#define HSP_FSLS_SPEED_SEL			(0x1 << 25)
#define HSP_FSV_OUT_EN				(0x1 << 24)
#define HSP_HS_XCVR_EXT_CTL			(0x1 << 22)
#define HSP_HS_RXDAT				(0x1 << 21)
#define HSP_HS_SQUELCH				(0x1 << 20)
#define HSP_FSVMINUS				(0x1 << 17)
#define HSP_FSVPLUS				(0x1 << 16)
#define HSP_VBUSVLDEXTSEL			(0x1 << 13)
#define HSP_VBUSVLDEXT				(0x1 << 12)
#define HSP_EN_UTMISUSPEND			(0x1 << 9)
#define HSP_COMMONONN				(0x1 << 8)
#define HSP_VATESTENB				(0x1 << 6)
#define HSP_CHGDET				(0x1 << 5)
#define HSP_VDATSRCENB				(0x1 << 4)
#define HSP_VDATDETENB				(0x1 << 3)
#define HSP_CHRGSEL				(0x1 << 2)
#define HSP_ACAENB				(0x1 << 1)
#define HSP_DCDENB				(0x1 << 0)

#define EXYNOS_USBCON_HSP_TUNE		(0x58)
#define HSP_TUNE_TXVREF_MASK			(0xf << 28)
#define HSP_TUNE_TXVREF_SET(_x)			((_x & 0xf) << 28)
#define HSP_TUNE_TXVREF_GET(_x)			((_x & (0xf << 28)) >> 28)
#define HSP_TUNE_TXRISE_MASK			(0x3 << 24)
#define HSP_TUNE_TXRISE_SET(_x)			((_x & 0x3) << 24)
#define HSP_TUNE_TXRISE_GET(_x)			((_x & (0x3 << 24)) >> 24)
#define HSP_TUNE_TXRES_MASK			(0x3 << 21)
#define HSP_TUNE_TXRES_SET(_x)			((_x & 0x3) << 21)
#define HSP_TUNE_TXRES_GET(_x)			((_x & (0x3 << 21)) >> 21)
#define HSP_TUNE_TXPREEMPA_PLUS			(0x1 << 20)
#define HSP_TUNE_TXPREEMPA_MASK			(0x3 << 18)
#define HSP_TUNE_TXPREEMPA_SET(_x)		((_x & 0x3) << 18)
#define HSP_TUNE_TXPREEMPA_GET(_x)		((_x & (0x3 << 18)) >> 18)
#define HSP_TUNE_HSXV_MASK			(0x3 << 16)
#define HSP_TUNE_HSXV_SET(_x)			((_x & 0x3) << 16)
#define HSP_TUNE_HSXV_GET(_x)			((_x & (0x3 << 16)) >> 16)
#define HSP_TUNE_TXFSLS_MASK			(0xf << 12)
#define HSP_TUNE_TXFSLS_SET(_x)			((_x & 0xf) << 12)
#define HSP_TUNE_TXFSLS_GET(_x)			((_x & (0xf << 12)) >> 12)
#define HSP_TUNE_SQRX_MASK			(0x7 << 8)
#define HSP_TUNE_SQRX_SET(_x)			((_x & 0x7) << 8)
#define HSP_TUNE_SQRX_GET(_x)			((_x & (0x7 << 8)) >> 8)
#define HSP_TUNE_OTG_MASK			(0x7 << 4)
#define HSP_TUNE_OTG_SET(_x)			((_x & 0x7) << 4)
#define HSP_TUNE_OTG_GET(_x)			((_x & (0x7 << 4)) >> 4)
#define HSP_TUNE_COMPDIS_MASK			(0x7 << 0)
#define HSP_TUNE_COMPDIS_SET(_x)		((_x & 0x7) << 0)
#define HSP_TUNE_COMPDIS_GET(_x)		((_x & (0x7 << 0)) >> 0)

#define EXYNOS_USBCON_HSP_TEST		(0x5c)
#define HSP_TEST_HS_RXDAT			(0x1 << 26)
#define HSP_TEST_HS_SQUELCH			(0x1 << 25)
#define HSP_TEST_SIDDQ				(0x1 << 24)
#define HSP_TEST_LINESTATE_MASK			(0x3 << 20)
#define HSP_TEST_LINESTATE_SET(_x)		((_x & 0x3) << 20)
#define HSP_TEST_LINESTATE_GET(_x)		((_x & (0x3 << 20)) >> 20)
#define HSP_TEST_DATA_OUT_MASK			(0xf << 16)
#define HSP_TEST_DATA_OUT_SET(_x)		((_x & 0xf) << 16)
#define HSP_TEST_DATA_OUT_GET(_x)		((_x & (0xf << 16)) >> 16)
#define HSP_TEST_CLK				(0x1 << 13)
#define HSP_TEST_DATA_OUT_SEL			(0x1 << 12)
#define HSP_TEST_DATA_ADDR_MASK			(0xf << 8)
#define HSP_TEST_DATA_ADDR_SET(_x)		((_x & 0xf) << 8)
#define HSP_TEST_DATA_ADDR_GET(_x)		((_x & (0xf << 8)) >> 8)
#define HSP_TEST_DATA_IN_MASK			(0xff << 0)
#define HSP_TEST_DATA_IN_SET(_x)		((_x & 0xff) << 0)
#define HSP_TEST_DATA_IN_GET(_x)		((_x & (0xff << 0)) >> 0)

#define EXYNOS_USBCON_HSP_PLL_TUNE	(0x60)
#define HSP_PLL_BTUNE				(0x1 << 8)
#define HSP_PLL_ITUNE_MASK			(0x3 << 4)
#define HSP_PLL_ITUNE_IN_SET(_x)		((_x & 0x3) << 4)
#define HSP_PLL_ITUNE_IN_GET(_x)		((_x & (0x3 << 4)) >> 4)
#define HSP_PLL_PTUNE_MASK			(0xf << 0)
#define HSP_PLL_PTUNE_IN_SET(_x)		((_x & 0xf) << 0)
#define HSP_PLL_PTUNE_IN_GET(_x)		((_x & (0xf << 0)) >> 0)

/* Remote Wake-up Advisro (ReWA) */
#define EXYNOS_USBCON_REWA_ENABLE	(0x100)
#define REWA_ENABLE_SS_REWA_EN			(0x1 << 8)
#define REWA_ENABLE_HS_REWA_EN			(0x1 << 0)

#define EXYNOS_USBCON_HSREWA_INTR	(0x104)
#define HSREWA_INTR_WAKEUP_REQ_MASK		(0x1 << 12)
#define HSREWA_INTR_TIMEOUT_MASK		(0x1 << 8)
#define HSREWA_INTR_EVT_MASK			(0x1 << 4)
#define HSREWA_INTR_WAKEUP_MASK			(0x1 << 0)

#define EXYNOS_USBCON_HSREWA_CTRL	(0x108)
#define HSREWA_CTRL_DIG_BYPASS_CON_EN		(0x1 << 28)
#define HSREWA_CTRL_DPDM_MON_SEL		(0x1 << 24)
#define HSREWA_CTRL_HS_LINK_READY		(0x1 << 20)
#define HSREWA_CTRL_HS_SYS_VALID		(0x1 << 16)
#define HSREWA_CTRL_HS_REWA_ERR			(0x1 << 4)
#define HSREWA_CTRL_HS_REWA_DONE		(0x1 << 0)

#define EXYNOS_USBCON_HSREWA_REFTO	(0x10C)

#define EXYNOS_USBCON_HSREWA_HSTK	(0x110)

#define EXYNOS_USBCON_HSREWA_CNT	(0x114)

#define EXYNOS_USBCON_HSREWA_INT1_EVT	(0x118)
#define HSREWA_CTRL_HS_EVT_ERR_SUS		(0x1 << 18)
#define HSREWA_CTRL_HS_EVT_ERR_DEV_K		(0x1 << 17)
#define HSREWA_CTRL_HS_EVT_DISCON		(0x1 << 16)
#define HSREWA_CTRL_HS_EVT_BYPASS_DIS		(0x1 << 2)
#define HSREWA_CTRL_HS_EVT_RET_DIS		(0x1 << 1)
#define HSREWA_CTRL_HS_EVT_RET_EN		(0x1 << 0)

#define EXYNOS_USBCON_HSREWA_INT1_MASK	(0x11C)


#endif /* DRIVER_USB_USBPHY_CAL_PHY_EXYNOS_USB3P1_REG_H_ */
