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