1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * R-Car MIPI DSI Interface Registers Definitions 4 * 5 * Copyright (C) 2020 Renesas Electronics Corporation 6 */ 7 8 #ifndef __RCAR_MIPI_DSI_REGS_H__ 9 #define __RCAR_MIPI_DSI_REGS_H__ 10 11 #define LINKSR 0x010 12 #define LINKSR_LPBUSY (1 << 1) 13 #define LINKSR_HSBUSY (1 << 0) 14 15 #define TXSETR 0x100 16 #define TXSETR_LANECNT_MASK (0x3 << 0) 17 18 /* 19 * Video Mode Register 20 */ 21 #define TXVMSETR 0x180 22 #define TXVMSETR_SYNSEQ_PULSES (0 << 16) 23 #define TXVMSETR_SYNSEQ_EVENTS (1 << 16) 24 #define TXVMSETR_VSTPM (1 << 15) 25 #define TXVMSETR_PIXWDTH (1 << 8) 26 #define TXVMSETR_VSEN_EN (1 << 4) 27 #define TXVMSETR_VSEN_DIS (0 << 4) 28 #define TXVMSETR_HFPBPEN_EN (1 << 2) 29 #define TXVMSETR_HFPBPEN_DIS (0 << 2) 30 #define TXVMSETR_HBPBPEN_EN (1 << 1) 31 #define TXVMSETR_HBPBPEN_DIS (0 << 1) 32 #define TXVMSETR_HSABPEN_EN (1 << 0) 33 #define TXVMSETR_HSABPEN_DIS (0 << 0) 34 35 #define TXVMCR 0x190 36 #define TXVMCR_VFCLR (1 << 12) 37 #define TXVMCR_EN_VIDEO (1 << 0) 38 39 #define TXVMSR 0x1a0 40 #define TXVMSR_STR (1 << 16) 41 #define TXVMSR_VFRDY (1 << 12) 42 #define TXVMSR_ACT (1 << 8) 43 #define TXVMSR_RDY (1 << 0) 44 45 #define TXVMSCR 0x1a4 46 #define TXVMSCR_STR (1 << 16) 47 48 #define TXVMPSPHSETR 0x1c0 49 #define TXVMPSPHSETR_DT_RGB16 (0x0e << 16) 50 #define TXVMPSPHSETR_DT_RGB18 (0x1e << 16) 51 #define TXVMPSPHSETR_DT_RGB18_LS (0x2e << 16) 52 #define TXVMPSPHSETR_DT_RGB24 (0x3e << 16) 53 #define TXVMPSPHSETR_DT_YCBCR16 (0x2c << 16) 54 55 #define TXVMVPRMSET0R 0x1d0 56 #define TXVMVPRMSET0R_HSPOL_HIG (0 << 17) 57 #define TXVMVPRMSET0R_HSPOL_LOW (1 << 17) 58 #define TXVMVPRMSET0R_VSPOL_HIG (0 << 16) 59 #define TXVMVPRMSET0R_VSPOL_LOW (1 << 16) 60 #define TXVMVPRMSET0R_CSPC_RGB (0 << 4) 61 #define TXVMVPRMSET0R_CSPC_YCbCr (1 << 4) 62 #define TXVMVPRMSET0R_BPP_16 (0 << 0) 63 #define TXVMVPRMSET0R_BPP_18 (1 << 0) 64 #define TXVMVPRMSET0R_BPP_24 (2 << 0) 65 66 #define TXVMVPRMSET1R 0x1d4 67 #define TXVMVPRMSET1R_VACTIVE(x) (((x) & 0x7fff) << 16) 68 #define TXVMVPRMSET1R_VSA(x) (((x) & 0xfff) << 0) 69 70 #define TXVMVPRMSET2R 0x1d8 71 #define TXVMVPRMSET2R_VFP(x) (((x) & 0x1fff) << 16) 72 #define TXVMVPRMSET2R_VBP(x) (((x) & 0x1fff) << 0) 73 74 #define TXVMVPRMSET3R 0x1dc 75 #define TXVMVPRMSET3R_HACTIVE(x) (((x) & 0x7fff) << 16) 76 #define TXVMVPRMSET3R_HSA(x) (((x) & 0xfff) << 0) 77 78 #define TXVMVPRMSET4R 0x1e0 79 #define TXVMVPRMSET4R_HFP(x) (((x) & 0x1fff) << 16) 80 #define TXVMVPRMSET4R_HBP(x) (((x) & 0x1fff) << 0) 81 82 /* 83 * PHY-Protocol Interface (PPI) Registers 84 */ 85 #define PPISETR 0x700 86 #define PPISETR_DLEN_MASK (0xf << 0) 87 #define PPISETR_CLEN (1 << 8) 88 89 #define PPICLCR 0x710 90 #define PPICLCR_TXREQHS (1 << 8) 91 #define PPICLCR_TXULPSEXT (1 << 1) 92 #define PPICLCR_TXULPSCLK (1 << 0) 93 94 #define PPICLSR 0x720 95 #define PPICLSR_HSTOLP (1 << 27) 96 #define PPICLSR_TOHS (1 << 26) 97 #define PPICLSR_STPST (1 << 0) 98 99 #define PPICLSCR 0x724 100 #define PPICLSCR_HSTOLP (1 << 27) 101 #define PPICLSCR_TOHS (1 << 26) 102 103 #define PPIDLSR 0x760 104 #define PPIDLSR_STPST (0xf << 0) 105 106 /* 107 * Clocks registers 108 */ 109 #define LPCLKSET 0x1000 110 #define LPCLKSET_CKEN (1 << 8) 111 #define LPCLKSET_LPCLKDIV(x) (((x) & 0x3f) << 0) 112 113 #define CFGCLKSET 0x1004 114 #define CFGCLKSET_CKEN (1 << 8) 115 #define CFGCLKSET_CFGCLKDIV(x) (((x) & 0x3f) << 0) 116 117 #define DOTCLKDIV 0x1008 118 #define DOTCLKDIV_CKEN (1 << 8) 119 #define DOTCLKDIV_DOTCLKDIV(x) (((x) & 0x3f) << 0) 120 121 #define VCLKSET 0x100c 122 #define VCLKSET_CKEN (1 << 16) 123 #define VCLKSET_COLOR_RGB (0 << 8) 124 #define VCLKSET_COLOR_YCC (1 << 8) 125 #define VCLKSET_DIV_V3U(x) (((x) & 0x3) << 4) 126 #define VCLKSET_DIV_V4H(x) (((x) & 0x7) << 4) 127 #define VCLKSET_BPP_16 (0 << 2) 128 #define VCLKSET_BPP_18 (1 << 2) 129 #define VCLKSET_BPP_18L (2 << 2) 130 #define VCLKSET_BPP_24 (3 << 2) 131 #define VCLKSET_LANE(x) (((x) & 0x3) << 0) 132 133 #define VCLKEN 0x1010 134 #define VCLKEN_CKEN (1 << 0) 135 136 #define PHYSETUP 0x1014 137 #define PHYSETUP_HSFREQRANGE(x) (((x) & 0x7f) << 16) 138 #define PHYSETUP_HSFREQRANGE_MASK (0x7f << 16) 139 #define PHYSETUP_CFGCLKFREQRANGE(x) (((x) & 0x3f) << 8) 140 #define PHYSETUP_SHUTDOWNZ (1 << 1) 141 #define PHYSETUP_RSTZ (1 << 0) 142 143 #define CLOCKSET1 0x101c 144 #define CLOCKSET1_LOCK_PHY (1 << 17) 145 #define CLOCKSET1_CLKSEL (1 << 8) 146 #define CLOCKSET1_CLKINSEL_EXTAL (0 << 2) 147 #define CLOCKSET1_CLKINSEL_DIG (1 << 2) 148 #define CLOCKSET1_CLKINSEL_DU (1 << 3) 149 #define CLOCKSET1_SHADOW_CLEAR (1 << 1) 150 #define CLOCKSET1_UPDATEPLL (1 << 0) 151 152 #define CLOCKSET2 0x1020 153 #define CLOCKSET2_M(x) (((x) & 0xfff) << 16) 154 #define CLOCKSET2_VCO_CNTRL(x) (((x) & 0x3f) << 8) 155 #define CLOCKSET2_N(x) (((x) & 0xf) << 0) 156 157 #define CLOCKSET3 0x1024 158 #define CLOCKSET3_PROP_CNTRL(x) (((x) & 0x3f) << 24) 159 #define CLOCKSET3_INT_CNTRL(x) (((x) & 0x3f) << 16) 160 #define CLOCKSET3_CPBIAS_CNTRL(x) (((x) & 0x7f) << 8) 161 #define CLOCKSET3_GMP_CNTRL(x) (((x) & 0x3) << 0) 162 163 #define PHTW 0x1034 164 #define PHTW_DWEN (1 << 24) 165 #define PHTW_TESTDIN_DATA(x) (((x) & 0xff) << 16) 166 #define PHTW_CWEN (1 << 8) 167 #define PHTW_TESTDIN_CODE(x) (((x) & 0xff) << 0) 168 169 #define PHTR 0x1038 170 #define PHTR_TEST (1 << 16) 171 172 #define PHTC 0x103c 173 #define PHTC_TESTCLR (1 << 0) 174 175 #endif /* __RCAR_MIPI_DSI_REGS_H__ */ 176