1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 277b55e8cSThomas Abraham /* 377b55e8cSThomas Abraham * Copyright (C) 2012 Samsung Electronics 477b55e8cSThomas Abraham * 577b55e8cSThomas Abraham * Author: InKi Dae <inki.dae@samsung.com> 677b55e8cSThomas Abraham * Author: Donghwa Lee <dh09.lee@samsung.com> 777b55e8cSThomas Abraham */ 877b55e8cSThomas Abraham 977b55e8cSThomas Abraham #ifndef __ASM_ARM_ARCH_DSIM_H_ 1077b55e8cSThomas Abraham #define __ASM_ARM_ARCH_DSIM_H_ 1177b55e8cSThomas Abraham 1277b55e8cSThomas Abraham #ifndef __ASSEMBLY__ 1377b55e8cSThomas Abraham 1477b55e8cSThomas Abraham struct exynos_mipi_dsim { 1577b55e8cSThomas Abraham unsigned int status; 1677b55e8cSThomas Abraham unsigned int swrst; 1777b55e8cSThomas Abraham unsigned int clkctrl; 1877b55e8cSThomas Abraham unsigned int timeout; 1977b55e8cSThomas Abraham unsigned int config; 2077b55e8cSThomas Abraham unsigned int escmode; 2177b55e8cSThomas Abraham unsigned int mdresol; 2277b55e8cSThomas Abraham unsigned int mvporch; 2377b55e8cSThomas Abraham unsigned int mhporch; 2477b55e8cSThomas Abraham unsigned int msync; 2577b55e8cSThomas Abraham unsigned int sdresol; 2677b55e8cSThomas Abraham unsigned int intsrc; 2777b55e8cSThomas Abraham unsigned int intmsk; 2877b55e8cSThomas Abraham unsigned int pkthdr; 2977b55e8cSThomas Abraham unsigned int payload; 3077b55e8cSThomas Abraham unsigned int rxfifo; 3177b55e8cSThomas Abraham unsigned int fifothld; 3277b55e8cSThomas Abraham unsigned int fifoctrl; 3377b55e8cSThomas Abraham unsigned int memacchr; 3477b55e8cSThomas Abraham unsigned int pllctrl; 3577b55e8cSThomas Abraham unsigned int plltmr; 3677b55e8cSThomas Abraham unsigned int phyacchr; 3777b55e8cSThomas Abraham unsigned int phyacchr1; 3877b55e8cSThomas Abraham }; 3977b55e8cSThomas Abraham 4077b55e8cSThomas Abraham #endif /* __ASSEMBLY__ */ 4177b55e8cSThomas Abraham 4277b55e8cSThomas Abraham /* 4377b55e8cSThomas Abraham * Bit Definitions 4477b55e8cSThomas Abraham */ 4577b55e8cSThomas Abraham /* DSIM_STATUS */ 4677b55e8cSThomas Abraham #define DSIM_STOP_STATE_DAT(x) (((x) & 0xf) << 0) 4777b55e8cSThomas Abraham #define DSIM_STOP_STATE_CLK (1 << 8) 4877b55e8cSThomas Abraham #define DSIM_TX_READY_HS_CLK (1 << 10) 4977b55e8cSThomas Abraham #define DSIM_PLL_STABLE (1 << 31) 5077b55e8cSThomas Abraham 5177b55e8cSThomas Abraham /* DSIM_SWRST */ 5277b55e8cSThomas Abraham #define DSIM_FUNCRST (1 << 16) 5377b55e8cSThomas Abraham #define DSIM_SWRST (1 << 0) 5477b55e8cSThomas Abraham 5577b55e8cSThomas Abraham /* EXYNOS_DSIM_TIMEOUT */ 5677b55e8cSThomas Abraham #define DSIM_LPDR_TOUT_SHIFT (0) 5777b55e8cSThomas Abraham #define DSIM_BTA_TOUT_SHIFT (16) 5877b55e8cSThomas Abraham 5977b55e8cSThomas Abraham /* EXYNOS_DSIM_CLKCTRL */ 6077b55e8cSThomas Abraham #define DSIM_LANE_ESC_CLKEN_SHIFT (19) 6177b55e8cSThomas Abraham #define DSIM_BYTE_CLKEN_SHIFT (24) 6277b55e8cSThomas Abraham #define DSIM_BYTE_CLK_SRC_SHIFT (25) 6377b55e8cSThomas Abraham #define DSIM_PLL_BYPASS_SHIFT (27) 6477b55e8cSThomas Abraham #define DSIM_ESC_CLKEN_SHIFT (28) 6577b55e8cSThomas Abraham #define DSIM_TX_REQUEST_HSCLK_SHIFT (31) 6677b55e8cSThomas Abraham #define DSIM_LANE_ESC_CLKEN(x) (((x) & 0x1f) << \ 6777b55e8cSThomas Abraham DSIM_LANE_ESC_CLKEN_SHIFT) 6877b55e8cSThomas Abraham #define DSIM_BYTE_CLK_ENABLE (1 << DSIM_BYTE_CLKEN_SHIFT) 6977b55e8cSThomas Abraham #define DSIM_BYTE_CLK_DISABLE (0 << DSIM_BYTE_CLKEN_SHIFT) 7077b55e8cSThomas Abraham #define DSIM_PLL_BYPASS_EXTERNAL (1 << DSIM_PLL_BYPASS_SHIFT) 7177b55e8cSThomas Abraham #define DSIM_ESC_CLKEN_ENABLE (1 << DSIM_ESC_CLKEN_SHIFT) 7277b55e8cSThomas Abraham #define DSIM_ESC_CLKEN_DISABLE (0 << DSIM_ESC_CLKEN_SHIFT) 7377b55e8cSThomas Abraham 7477b55e8cSThomas Abraham /* EXYNOS_DSIM_CONFIG */ 7577b55e8cSThomas Abraham #define DSIM_NUM_OF_DATALANE_SHIFT (5) 7677b55e8cSThomas Abraham #define DSIM_SUBPIX_SHIFT (8) 7777b55e8cSThomas Abraham #define DSIM_MAINPIX_SHIFT (12) 7877b55e8cSThomas Abraham #define DSIM_SUBVC_SHIFT (16) 7977b55e8cSThomas Abraham #define DSIM_MAINVC_SHIFT (18) 8077b55e8cSThomas Abraham #define DSIM_HSA_MODE_SHIFT (20) 8177b55e8cSThomas Abraham #define DSIM_HBP_MODE_SHIFT (21) 8277b55e8cSThomas Abraham #define DSIM_HFP_MODE_SHIFT (22) 8377b55e8cSThomas Abraham #define DSIM_HSE_MODE_SHIFT (23) 8477b55e8cSThomas Abraham #define DSIM_AUTO_MODE_SHIFT (24) 8577b55e8cSThomas Abraham #define DSIM_VIDEO_MODE_SHIFT (25) 8677b55e8cSThomas Abraham #define DSIM_BURST_MODE_SHIFT (26) 8777b55e8cSThomas Abraham #define DSIM_EOT_PACKET_SHIFT (28) 8877b55e8cSThomas Abraham #define DSIM_AUTO_FLUSH_SHIFT (29) 8977b55e8cSThomas Abraham #define DSIM_LANE_ENx(x) (((x) & 0x1f) << 0) 9077b55e8cSThomas Abraham 9177b55e8cSThomas Abraham #define DSIM_NUM_OF_DATA_LANE(x) ((x) << DSIM_NUM_OF_DATALANE_SHIFT) 9277b55e8cSThomas Abraham 9377b55e8cSThomas Abraham /* EXYNOS_DSIM_ESCMODE */ 9477b55e8cSThomas Abraham #define DSIM_TX_LPDT_SHIFT (6) 9577b55e8cSThomas Abraham #define DSIM_CMD_LPDT_SHIFT (7) 9677b55e8cSThomas Abraham #define DSIM_TX_LPDT_LP (1 << DSIM_TX_LPDT_SHIFT) 9777b55e8cSThomas Abraham #define DSIM_CMD_LPDT_LP (1 << DSIM_CMD_LPDT_SHIFT) 9877b55e8cSThomas Abraham #define DSIM_STOP_STATE_CNT_SHIFT (21) 9977b55e8cSThomas Abraham #define DSIM_FORCE_STOP_STATE_SHIFT (20) 10077b55e8cSThomas Abraham 10177b55e8cSThomas Abraham /* EXYNOS_DSIM_MDRESOL */ 10277b55e8cSThomas Abraham #define DSIM_MAIN_STAND_BY (1 << 31) 10377b55e8cSThomas Abraham #define DSIM_MAIN_VRESOL(x) (((x) & 0x7ff) << 16) 10477b55e8cSThomas Abraham #define DSIM_MAIN_HRESOL(x) (((x) & 0X7ff) << 0) 10577b55e8cSThomas Abraham 10677b55e8cSThomas Abraham /* EXYNOS_DSIM_MVPORCH */ 10777b55e8cSThomas Abraham #define DSIM_CMD_ALLOW_SHIFT (28) 10877b55e8cSThomas Abraham #define DSIM_STABLE_VFP_SHIFT (16) 10977b55e8cSThomas Abraham #define DSIM_MAIN_VBP_SHIFT (0) 11077b55e8cSThomas Abraham #define DSIM_CMD_ALLOW_MASK (0xf << DSIM_CMD_ALLOW_SHIFT) 11177b55e8cSThomas Abraham #define DSIM_STABLE_VFP_MASK (0x7ff << DSIM_STABLE_VFP_SHIFT) 11277b55e8cSThomas Abraham #define DSIM_MAIN_VBP_MASK (0x7ff << DSIM_MAIN_VBP_SHIFT) 11377b55e8cSThomas Abraham 11477b55e8cSThomas Abraham /* EXYNOS_DSIM_MHPORCH */ 11577b55e8cSThomas Abraham #define DSIM_MAIN_HFP_SHIFT (16) 11677b55e8cSThomas Abraham #define DSIM_MAIN_HBP_SHIFT (0) 11777b55e8cSThomas Abraham #define DSIM_MAIN_HFP_MASK ((0xffff) << DSIM_MAIN_HFP_SHIFT) 11877b55e8cSThomas Abraham #define DSIM_MAIN_HBP_MASK ((0xffff) << DSIM_MAIN_HBP_SHIFT) 11977b55e8cSThomas Abraham 12077b55e8cSThomas Abraham /* EXYNOS_DSIM_MSYNC */ 12177b55e8cSThomas Abraham #define DSIM_MAIN_VSA_SHIFT (22) 12277b55e8cSThomas Abraham #define DSIM_MAIN_HSA_SHIFT (0) 12377b55e8cSThomas Abraham #define DSIM_MAIN_VSA_MASK ((0x3ff) << DSIM_MAIN_VSA_SHIFT) 12477b55e8cSThomas Abraham #define DSIM_MAIN_HSA_MASK ((0xffff) << DSIM_MAIN_HSA_SHIFT) 12577b55e8cSThomas Abraham 12677b55e8cSThomas Abraham /* EXYNOS_DSIM_SDRESOL */ 12777b55e8cSThomas Abraham #define DSIM_SUB_STANDY_SHIFT (31) 12877b55e8cSThomas Abraham #define DSIM_SUB_VRESOL_SHIFT (16) 12977b55e8cSThomas Abraham #define DSIM_SUB_HRESOL_SHIFT (0) 13077b55e8cSThomas Abraham #define DSIM_SUB_STANDY_MASK ((0x1) << DSIM_SUB_STANDY_SHIFT) 13177b55e8cSThomas Abraham #define DSIM_SUB_VRESOL_MASK ((0x7ff) << DSIM_SUB_VRESOL_SHIFT) 13277b55e8cSThomas Abraham #define DSIM_SUB_HRESOL_MASK ((0x7ff) << DSIM_SUB_HRESOL_SHIFT) 13377b55e8cSThomas Abraham 13477b55e8cSThomas Abraham /* EXYNOS_DSIM_INTSRC */ 13577b55e8cSThomas Abraham #define INTSRC_FRAME_DONE (1 << 24) 13677b55e8cSThomas Abraham #define INTSRC_PLL_STABLE (1 << 31) 13777b55e8cSThomas Abraham #define INTSRC_SWRST_RELEASE (1 << 30) 13877b55e8cSThomas Abraham 13977b55e8cSThomas Abraham /* EXYNOS_DSIM_INTMSK */ 14077b55e8cSThomas Abraham #define INTMSK_FRAME_DONE (1 << 24) 14177b55e8cSThomas Abraham 14277b55e8cSThomas Abraham /* EXYNOS_DSIM_FIFOCTRL */ 14377b55e8cSThomas Abraham #define SFR_HEADER_EMPTY (1 << 22) 14477b55e8cSThomas Abraham 14577b55e8cSThomas Abraham /* EXYNOS_DSIM_PKTHDR */ 14677b55e8cSThomas Abraham #define DSIM_PKTHDR_DI(x) (((x) & 0x3f) << 0) 14777b55e8cSThomas Abraham #define DSIM_PKTHDR_DAT0(x) ((x) << 8) 14877b55e8cSThomas Abraham #define DSIM_PKTHDR_DAT1(x) ((x) << 16) 14977b55e8cSThomas Abraham 15077b55e8cSThomas Abraham /* EXYNOS_DSIM_PHYACCHR */ 15177b55e8cSThomas Abraham #define DSIM_AFC_CTL(x) (((x) & 0x7) << 5) 15277b55e8cSThomas Abraham #define DSIM_AFC_CTL_SHIFT (5) 15377b55e8cSThomas Abraham #define DSIM_AFC_EN (1 << 14) 15477b55e8cSThomas Abraham 15577b55e8cSThomas Abraham /* EXYNOS_DSIM_PHYACCHR1 */ 15677b55e8cSThomas Abraham #define DSIM_DPDN_SWAP_DATA_SHIFT (0) 15777b55e8cSThomas Abraham 15877b55e8cSThomas Abraham /* EXYNOS_DSIM_PLLCTRL */ 15977b55e8cSThomas Abraham #define DSIM_SCALER_SHIFT (1) 16077b55e8cSThomas Abraham #define DSIM_MAIN_SHIFT (4) 16177b55e8cSThomas Abraham #define DSIM_PREDIV_SHIFT (13) 16277b55e8cSThomas Abraham #define DSIM_PRECTRL_SHIFT (20) 16377b55e8cSThomas Abraham #define DSIM_PLL_EN_SHIFT (23) 16477b55e8cSThomas Abraham #define DSIM_FREQ_BAND_SHIFT (24) 16577b55e8cSThomas Abraham #define DSIM_ZEROCTRL_SHIFT (28) 16677b55e8cSThomas Abraham 16777b55e8cSThomas Abraham #endif 168