Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

phy: sparx5-serdes: add registers required for SD/CMU power down

Add registers required to configure serdeses and CMUs for initial power
down.

Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
Link: https://lore.kernel.org/r/20230417180335.2787494-2-daniel.machon@microchip.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Daniel Machon and committed by
Vinod Koul
86c2cfb1 72a5ce33

+106
+106
drivers/phy/microchip/sparx5_serdes_regs.h
··· 2149 2149 #define SD_CMU_CMU_05_CFG_BIAS_TP_SEL_1_0_GET(x)\ 2150 2150 FIELD_GET(SD_CMU_CMU_05_CFG_BIAS_TP_SEL_1_0, x) 2151 2151 2152 + /* SD10G_CMU_TARGET:CMU_GRP_1:CMU_06 */ 2153 + #define SD_CMU_CMU_06(t) \ 2154 + __REG(TARGET_SD_CMU, t, 14, 20, 0, 1, 72, 4, 0, 1, 4) 2155 + 2156 + #define SD_CMU_CMU_06_CFG_DISLOS BIT(0) 2157 + #define SD_CMU_CMU_06_CFG_DISLOS_SET(x)\ 2158 + FIELD_PREP(SD_CMU_CMU_06_CFG_DISLOS, x) 2159 + #define SD_CMU_CMU_06_CFG_DISLOS_GET(x)\ 2160 + FIELD_GET(SD_CMU_CMU_06_CFG_DISLOS, x) 2161 + 2162 + #define SD_CMU_CMU_06_CFG_DISLOL BIT(1) 2163 + #define SD_CMU_CMU_06_CFG_DISLOL_SET(x)\ 2164 + FIELD_PREP(SD_CMU_CMU_06_CFG_DISLOL, x) 2165 + #define SD_CMU_CMU_06_CFG_DISLOL_GET(x)\ 2166 + FIELD_GET(SD_CMU_CMU_06_CFG_DISLOL, x) 2167 + 2168 + #define SD_CMU_CMU_06_CFG_DCLOL BIT(2) 2169 + #define SD_CMU_CMU_06_CFG_DCLOL_SET(x)\ 2170 + FIELD_PREP(SD_CMU_CMU_06_CFG_DCLOL, x) 2171 + #define SD_CMU_CMU_06_CFG_DCLOL_GET(x)\ 2172 + FIELD_GET(SD_CMU_CMU_06_CFG_DCLOL, x) 2173 + 2174 + #define SD_CMU_CMU_06_CFG_FORCE_RX_FILT BIT(3) 2175 + #define SD_CMU_CMU_06_CFG_FORCE_RX_FILT_SET(x)\ 2176 + FIELD_PREP(SD_CMU_CMU_06_CFG_FORCE_RX_FILT, x) 2177 + #define SD_CMU_CMU_06_CFG_FORCE_RX_FILT_GET(x)\ 2178 + FIELD_GET(SD_CMU_CMU_06_CFG_FORCE_RX_FILT, x) 2179 + 2180 + #define SD_CMU_CMU_06_CFG_CTRL_LOGIC_PD BIT(4) 2181 + #define SD_CMU_CMU_06_CFG_CTRL_LOGIC_PD_SET(x)\ 2182 + FIELD_PREP(SD_CMU_CMU_06_CFG_CTRL_LOGIC_PD, x) 2183 + #define SD_CMU_CMU_06_CFG_CTRL_LOGIC_PD_GET(x)\ 2184 + FIELD_GET(SD_CMU_CMU_06_CFG_CTRL_LOGIC_PD, x) 2185 + 2186 + #define SD_CMU_CMU_06_CFG_VCO_PD BIT(5) 2187 + #define SD_CMU_CMU_06_CFG_VCO_PD_SET(x)\ 2188 + FIELD_PREP(SD_CMU_CMU_06_CFG_VCO_PD, x) 2189 + #define SD_CMU_CMU_06_CFG_VCO_PD_GET(x)\ 2190 + FIELD_GET(SD_CMU_CMU_06_CFG_VCO_PD, x) 2191 + 2192 + #define SD_CMU_CMU_06_CFG_VCO_CAL_RESETN BIT(6) 2193 + #define SD_CMU_CMU_06_CFG_VCO_CAL_RESETN_SET(x)\ 2194 + FIELD_PREP(SD_CMU_CMU_06_CFG_VCO_CAL_RESETN, x) 2195 + #define SD_CMU_CMU_06_CFG_VCO_CAL_RESETN_GET(x)\ 2196 + FIELD_GET(SD_CMU_CMU_06_CFG_VCO_CAL_RESETN, x) 2197 + 2198 + #define SD_CMU_CMU_06_CFG_VCO_CAL_BYP BIT(7) 2199 + #define SD_CMU_CMU_06_CFG_VCO_CAL_BYP_SET(x)\ 2200 + FIELD_PREP(SD_CMU_CMU_06_CFG_VCO_CAL_BYP, x) 2201 + #define SD_CMU_CMU_06_CFG_VCO_CAL_BYP_GET(x)\ 2202 + FIELD_GET(SD_CMU_CMU_06_CFG_VCO_CAL_BYP, x) 2203 + 2204 + /* SD10G_CMU_TARGET:CMU_GRP_1:CMU_08 */ 2205 + #define SD_CMU_CMU_08(t) \ 2206 + __REG(TARGET_SD_CMU, t, 14, 20, 0, 1, 72, 12, 0, 1, 4) 2207 + 2208 + #define SD_CMU_CMU_08_CFG_VFILT2PAD BIT(0) 2209 + #define SD_CMU_CMU_08_CFG_VFILT2PAD_SET(x)\ 2210 + FIELD_PREP(SD_CMU_CMU_08_CFG_VFILT2PAD, x) 2211 + #define SD_CMU_CMU_08_CFG_VFILT2PAD_GET(x)\ 2212 + FIELD_GET(SD_CMU_CMU_08_CFG_VFILT2PAD, x) 2213 + 2214 + #define SD_CMU_CMU_08_CFG_EN_DUMMY BIT(1) 2215 + #define SD_CMU_CMU_08_CFG_EN_DUMMY_SET(x)\ 2216 + FIELD_PREP(SD_CMU_CMU_08_CFG_EN_DUMMY, x) 2217 + #define SD_CMU_CMU_08_CFG_EN_DUMMY_GET(x)\ 2218 + FIELD_GET(SD_CMU_CMU_08_CFG_EN_DUMMY, x) 2219 + 2220 + #define SD_CMU_CMU_08_CFG_CK_TREE_PD BIT(2) 2221 + #define SD_CMU_CMU_08_CFG_CK_TREE_PD_SET(x)\ 2222 + FIELD_PREP(SD_CMU_CMU_08_CFG_CK_TREE_PD, x) 2223 + #define SD_CMU_CMU_08_CFG_CK_TREE_PD_GET(x)\ 2224 + FIELD_GET(SD_CMU_CMU_08_CFG_CK_TREE_PD, x) 2225 + 2226 + #define SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN BIT(3) 2227 + #define SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_SET(x)\ 2228 + FIELD_PREP(SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN, x) 2229 + #define SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_GET(x)\ 2230 + FIELD_GET(SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN, x) 2231 + 2232 + #define SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_EN BIT(4) 2233 + #define SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_EN_SET(x)\ 2234 + FIELD_PREP(SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_EN, x) 2235 + #define SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_EN_GET(x)\ 2236 + FIELD_GET(SD_CMU_CMU_08_CFG_RST_TREE_PD_MAN_EN, x) 2237 + 2152 2238 /* SD10G_CMU_TARGET:CMU_GRP_1:CMU_09 */ 2153 2239 #define SD_CMU_CMU_09(t) __REG(TARGET_SD_CMU, t, 14, 20, 0, 1, 72, 16, 0, 1, 4) 2154 2240 ··· 2529 2443 #define SD_LANE_SD_LANE_STAT_DBG_OBS_GET(x)\ 2530 2444 FIELD_GET(SD_LANE_SD_LANE_STAT_DBG_OBS, x) 2531 2445 2446 + /* SD_LANE_TARGET:SD_PWR_CFG:QUIET_MODE_6G */ 2447 + #define SD_LANE_QUIET_MODE_6G(t) \ 2448 + __REG(TARGET_SD_LANE, t, 25, 24, 0, 1, 8, 4, 0, 1, 4) 2449 + 2450 + #define SD_LANE_QUIET_MODE_6G_QUIET_MODE GENMASK(24, 0) 2451 + #define SD_LANE_QUIET_MODE_6G_QUIET_MODE_SET(x)\ 2452 + FIELD_PREP(SD_LANE_QUIET_MODE_6G_QUIET_MODE, x) 2453 + #define SD_LANE_QUIET_MODE_6G_QUIET_MODE_GET(x)\ 2454 + FIELD_GET(SD_LANE_QUIET_MODE_6G_QUIET_MODE, x) 2455 + 2532 2456 /* SD_LANE_TARGET:CFG_STAT_FX100:MISC */ 2533 2457 #define SD_LANE_MISC(t) __REG(TARGET_SD_LANE, t, 25, 56, 0, 1, 56, 0, 0, 1, 4) 2534 2458 ··· 2787 2691 FIELD_PREP(SD_LANE_25G_SD_LANE_STAT_DBG_OBS, x) 2788 2692 #define SD_LANE_25G_SD_LANE_STAT_DBG_OBS_GET(x)\ 2789 2693 FIELD_GET(SD_LANE_25G_SD_LANE_STAT_DBG_OBS, x) 2694 + 2695 + /* SD25G_CFG_TARGET:SD_PWR_CFG:QUIET_MODE_6G */ 2696 + #define SD_LANE_25G_QUIET_MODE_6G(t) \ 2697 + __REG(TARGET_SD_LANE_25G, t, 8, 28, 0, 1, 8, 4, 0, 1, 4) 2698 + 2699 + #define SD_LANE_25G_QUIET_MODE_6G_QUIET_MODE GENMASK(24, 0) 2700 + #define SD_LANE_25G_QUIET_MODE_6G_QUIET_MODE_SET(x)\ 2701 + FIELD_PREP(SD_LANE_25G_QUIET_MODE_6G_QUIET_MODE, x) 2702 + #define SD_LANE_25G_QUIET_MODE_6G_QUIET_MODE_GET(x)\ 2703 + FIELD_GET(SD_LANE_25G_QUIET_MODE_6G_QUIET_MODE, x) 2790 2704 2791 2705 #endif /* _SPARX5_SERDES_REGS_H_ */