hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
....@@ -38,7 +38,8 @@
3838
3939 #define AUX_REG_LIST(id)\
4040 SRI(AUX_CONTROL, DP_AUX, id), \
41
- SRI(AUX_DPHY_RX_CONTROL0, DP_AUX, id)
41
+ SRI(AUX_DPHY_RX_CONTROL0, DP_AUX, id), \
42
+ SRI(AUX_DPHY_RX_CONTROL1, DP_AUX, id)
4243
4344 #define HPD_REG_LIST(id)\
4445 SRI(DC_HPD_CONTROL, HPD, id)
....@@ -75,6 +76,34 @@
7576 SRI(DP_DPHY_INTERNAL_CTRL, DP, id), \
7677 SR(DCI_MEM_PWR_STATUS)
7778
79
+#if defined(CONFIG_DRM_AMD_DC_SI)
80
+#define LE_DCE60_REG_LIST(id)\
81
+ SRI(DP_DPHY_INTERNAL_CTRL, DP, id), \
82
+ SR(DMCU_RAM_ACCESS_CTRL), \
83
+ SR(DMCU_IRAM_RD_CTRL), \
84
+ SR(DMCU_IRAM_RD_DATA), \
85
+ SR(DMCU_INTERRUPT_TO_UC_EN_MASK), \
86
+ SRI(DIG_BE_CNTL, DIG, id), \
87
+ SRI(DIG_BE_EN_CNTL, DIG, id), \
88
+ SRI(DP_CONFIG, DP, id), \
89
+ SRI(DP_DPHY_CNTL, DP, id), \
90
+ SRI(DP_DPHY_PRBS_CNTL, DP, id), \
91
+ SRI(DP_DPHY_SYM0, DP, id), \
92
+ SRI(DP_DPHY_SYM1, DP, id), \
93
+ SRI(DP_DPHY_SYM2, DP, id), \
94
+ SRI(DP_DPHY_TRAINING_PATTERN_SEL, DP, id), \
95
+ SRI(DP_LINK_CNTL, DP, id), \
96
+ SRI(DP_LINK_FRAMING_CNTL, DP, id), \
97
+ SRI(DP_MSE_SAT0, DP, id), \
98
+ SRI(DP_MSE_SAT1, DP, id), \
99
+ SRI(DP_MSE_SAT2, DP, id), \
100
+ SRI(DP_MSE_SAT_UPDATE, DP, id), \
101
+ SRI(DP_SEC_CNTL, DP, id), \
102
+ SRI(DP_VID_STREAM_CNTL, DP, id), \
103
+ SRI(DP_DPHY_FAST_TRAINING, DP, id), \
104
+ SRI(DP_SEC_CNTL1, DP, id)
105
+#endif
106
+
78107 #define LE_DCE80_REG_LIST(id)\
79108 SRI(DP_DPHY_INTERNAL_CTRL, DP, id), \
80109 LE_COMMON_REG_LIST_BASE(id)
....@@ -107,6 +136,7 @@
107136 struct dce110_link_enc_aux_registers {
108137 uint32_t AUX_CONTROL;
109138 uint32_t AUX_DPHY_RX_CONTROL0;
139
+ uint32_t AUX_DPHY_RX_CONTROL1;
110140 };
111141
112142 struct dce110_link_enc_hpd_registers {
....@@ -169,6 +199,16 @@
169199 const struct dce110_link_enc_aux_registers *aux_regs,
170200 const struct dce110_link_enc_hpd_registers *hpd_regs);
171201
202
+#if defined(CONFIG_DRM_AMD_DC_SI)
203
+void dce60_link_encoder_construct(
204
+ struct dce110_link_encoder *enc110,
205
+ const struct encoder_init_data *init_data,
206
+ const struct encoder_feature_support *enc_features,
207
+ const struct dce110_link_enc_registers *link_regs,
208
+ const struct dce110_link_enc_aux_registers *aux_regs,
209
+ const struct dce110_link_enc_hpd_registers *hpd_regs);
210
+#endif
211
+
172212 bool dce110_link_encoder_validate_dvi_output(
173213 const struct dce110_link_encoder *enc110,
174214 enum signal_type connector_signal,
....@@ -225,6 +265,12 @@
225265 const struct dc_link_settings *link_settings,
226266 enum clock_source_id clock_source);
227267
268
+/* enables LVDS PHY output */
269
+void dce110_link_encoder_enable_lvds_output(
270
+ struct link_encoder *enc,
271
+ enum clock_source_id clock_source,
272
+ uint32_t pixel_clock);
273
+
228274 /* disable PHY output */
229275 void dce110_link_encoder_disable_output(
230276 struct link_encoder *enc,
....@@ -249,6 +295,8 @@
249295 enum engine_id engine,
250296 bool connect);
251297
298
+unsigned int dce110_get_dig_frontend(struct link_encoder *enc);
299
+
252300 void dce110_link_encoder_set_dp_phy_pattern_training_pattern(
253301 struct link_encoder *enc,
254302 uint32_t index);
....@@ -265,4 +313,7 @@
265313
266314 bool dce110_is_dig_enabled(struct link_encoder *enc);
267315
316
+void dce110_link_encoder_get_max_link_cap(struct link_encoder *enc,
317
+ struct dc_link_settings *link_settings);
318
+
268319 #endif /* __DC_LINK_ENCODER__DCE110_H__ */