1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * maxim-max96789.h -- register define for max96789 chip 4 * 5 * Copyright (c) 2023-2028 Rockchip Electronics Co. Ltd. 6 * 7 * Author: luowei <lw@rock-chips.com> 8 * 9 */ 10 11 #ifndef __MFD_SERDES_MAXIM_MAX96789_H__ 12 #define __MFD_SERDES_MAXIM_MAX96789_H__ 13 14 #include <linux/bitfield.h> 15 16 #define GPIO_A_REG(gpio) (0x02be + ((gpio) * 3)) 17 #define GPIO_B_REG(gpio) (0x02bf + ((gpio) * 3)) 18 #define GPIO_C_REG(gpio) (0x02c0 + ((gpio) * 3)) 19 20 /* 0000h */ 21 #define DEV_ADDR GENMASK(7, 1) 22 #define CFG_BLOCK BIT(0) 23 24 /* 0001h */ 25 #define IIC_2_EN BIT(7) 26 #define IIC_1_EN BIT(6) 27 #define DIS_REM_CC BIT(4) 28 #define TX_RATE GENMASK(3, 2) 29 30 /* 0002h */ 31 #define VID_TX_EN_U BIT(7) 32 #define VID_TX_EN_Z BIT(6) 33 #define VID_TX_EN_Y BIT(5) 34 #define VID_TX_EN_X BIT(4) 35 #define AUD_TX_EN_Y BIT(3) 36 #define AUD_TX_EN_X BIT(2) 37 38 /* 0003h */ 39 #define UART_2_EN BIT(5) 40 #define UART_1_EN BIT(4) 41 42 /* 0004h */ 43 #define GMSL2_B BIT(7) 44 #define GMSL2_A BIT(6) 45 #define LINK_EN_B BIT(5) 46 #define LINK_EN_A BIT(4) 47 #define AUD_TX_SRC_Y BIT(1) 48 #define AUD_TX_SRC_X BIT(0) 49 50 /* 0005h */ 51 #define LOCK_EN BIT(7) 52 #define ERRB_EN BIT(6) 53 #define PU_LF3 BIT(3) 54 #define PU_LF2 BIT(2) 55 #define PU_LF1 BIT(1) 56 #define PU_LF0 BIT(0) 57 58 /* 0006h */ 59 #define RCLKEN BIT(5) 60 61 /* 0010h */ 62 #define RESET_ALL BIT(7) 63 #define RESET_LINK BIT(6) 64 #define RESET_ONESHOT BIT(5) 65 #define AUTO_LINK BIT(4) 66 #define SLEEP BIT(3) 67 #define REG_ENABLE BIT(2) 68 #define LINK_CFG GENMASK(1, 0) 69 70 /* 0013h */ 71 #define LINK_MODE GENMASK(5, 4) 72 #define LOCKED BIT(3) 73 74 /* 001fh */ 75 #define LINKA_LOCKED BIT(3) 76 #define LINKB_LOCKED BIT(4) 77 78 /* 0026h */ 79 #define LF_1 GENMASK(6, 4) 80 #define LF_0 GENMASK(2, 0) 81 82 /* 0048h */ 83 #define REM_MS_EN BIT(5) 84 #define LOC_MS_EN BIT(4) 85 86 /* 0053h */ 87 #define TX_SPLIT_MASK_B BIT(5) 88 #define TX_SPLIT_MASK_A BIT(4) 89 #define TX_STR_SEL GENMASK(1, 0) 90 91 /* 0140h */ 92 #define AUD_RX_EN BIT(0) 93 94 /* 0170h */ 95 #define SPI_EN BIT(0) 96 97 /* 01e5h */ 98 #define PATGEN_MODE GENMASK(1, 0) 99 100 /* 02beh */ 101 #define RES_CFG BIT(7) 102 #define TX_PRIO BIT(6) 103 #define TX_COMP_EN BIT(5) 104 #define GPIO_OUT BIT(4) 105 #define GPIO_IN BIT(3) 106 #define GPIO_RX_EN BIT(2) 107 #define GPIO_TX_EN BIT(1) 108 #define GPIO_OUT_DIS BIT(0) 109 110 /* 02bfh */ 111 #define PULL_UPDN_SEL GENMASK(7, 6) 112 #define OUT_TYPE BIT(5) 113 #define GPIO_TX_ID GENMASK(4, 0) 114 115 /* 02c0h */ 116 #define OVR_RES_CFG BIT(7) 117 #define GPIO_RX_ID GENMASK(4, 0) 118 119 /* 0311h */ 120 #define START_PORTBU BIT(7) 121 #define START_PORTBZ BIT(6) 122 #define START_PORTBY BIT(5) 123 #define START_PORTBX BIT(4) 124 #define START_PORTAU BIT(3) 125 #define START_PORTAZ BIT(2) 126 #define START_PORTAY BIT(1) 127 #define START_PORTAX BIT(0) 128 129 /* 032ah */ 130 #define DV_LOCK BIT(7) 131 #define DV_SWP_AB BIT(6) 132 #define LINE_ALT BIT(5) 133 #define DV_CONV BIT(2) 134 #define DV_SPL BIT(1) 135 #define DV_EN BIT(0) 136 137 /* 0330h */ 138 #define PHY_CONFIG GENMASK(2, 0) 139 #define MIPI_RX_RESET BIT(3) 140 141 /* 0331h */ 142 #define NUM_LANES GENMASK(1, 0) 143 144 /* 0385h */ 145 #define DPI_HSYNC_WIDTH_L GENMASK(7, 0) 146 147 /* 0386h */ 148 #define DPI_VYSNC_WIDTH_L GENMASK(7, 0) 149 150 /* 0387h */ 151 #define DPI_HSYNC_WIDTH_H GENMASK(3, 0) 152 #define DPI_VSYNC_WIDTH_H GENMASK(7, 4) 153 154 /* 03a4h */ 155 #define DPI_DE_SKEW_SEL BIT(1) 156 #define DPI_DESKEW_EN BIT(0) 157 158 /* 03a5h */ 159 #define DPI_VFP_L GENMASK(7, 0) 160 161 /* 03a6h */ 162 #define DPI_VFP_H GENMASK(3, 0) 163 #define DPI_VBP_L GENMASK(7, 4) 164 165 /* 03a7h */ 166 #define DPI_VBP_H GENMASK(7, 0) 167 168 /* 03a8h */ 169 #define DPI_VACT_L GENMASK(7, 0) 170 171 /* 03a9h */ 172 #define DPI_VACT_H GENMASK(3, 0) 173 174 /* 03aah */ 175 #define DPI_HFP_L GENMASK(7, 0) 176 177 /* 03abh */ 178 #define DPI_HFP_H GENMASK(3, 0) 179 #define DPI_HBP_L GENMASK(7, 4) 180 181 /* 03ach */ 182 #define DPI_HBP_H GENMASK(7, 0) 183 184 /* 03adh */ 185 #define DPI_HACT_L GENMASK(7, 0) 186 187 /* 03aeh */ 188 #define DPI_HACT_H GENMASK(4, 0) 189 190 /* 055dh */ 191 #define VS_DET BIT(5) 192 #define HS_DET BIT(4) 193 194 enum link_mode { 195 DUAL_LINK, 196 LINKA, 197 LINKB, 198 SPLITTER_MODE, 199 }; 200 201 #endif 202