.. | .. |
---|
21 | 21 | .base = RKX120_PATTERN_GEN_DSI_BASE, |
---|
22 | 22 | .link_src_reg = DES_GRF_SOC_CON2, |
---|
23 | 23 | .link_src_offset = 12, |
---|
| 24 | + .type = RK_SERDES_DSI_TX0, |
---|
| 25 | + }, { |
---|
| 26 | + .name = "dual-lvds", |
---|
| 27 | + .link_src_reg = DES_GRF_SOC_CON1, |
---|
| 28 | + .link_src_offset = 14, |
---|
| 29 | + .type = RK_SERDES_DUAL_LVDS_TX, |
---|
24 | 30 | }, { |
---|
25 | 31 | .name = "lvds0", |
---|
26 | 32 | .base = RKX120_PATTERN_GEN_LVDS0_BASE, |
---|
27 | 33 | .link_src_reg = DES_GRF_SOC_CON2, |
---|
28 | 34 | .link_src_offset = 13, |
---|
| 35 | + .type = RK_SERDES_LVDS_TX0, |
---|
29 | 36 | }, { |
---|
30 | 37 | .name = "lvds1", |
---|
31 | 38 | .base = RKX120_PATTERN_GEN_LVDS1_BASE, |
---|
32 | 39 | .link_src_reg = DES_GRF_SOC_CON2, |
---|
33 | 40 | .link_src_offset = 14, |
---|
| 41 | + .type = RK_SERDES_LVDS_TX1, |
---|
34 | 42 | }, |
---|
35 | 43 | { /* sentinel */ } |
---|
36 | 44 | }; |
---|
.. | .. |
---|
111 | 119 | .name = "pcs1", |
---|
112 | 120 | .reg_base = RKX120_DES_PCS1_BASE, |
---|
113 | 121 | .reg_len = 0x1c0, |
---|
| 122 | + }, |
---|
| 123 | + { |
---|
| 124 | + .name = "pwm", |
---|
| 125 | + .reg_base = RKX120_PWM_BASE, |
---|
| 126 | + .reg_len = 0x100, |
---|
114 | 127 | }, |
---|
115 | 128 | { |
---|
116 | 129 | .name = "pma0", |
---|
.. | .. |
---|
231 | 244 | void rkx120_debugfs_init(struct rk_serdes_chip *chip, struct dentry *dentry) |
---|
232 | 245 | { |
---|
233 | 246 | const struct rk_serdes_reg *regs = rkx120_regs; |
---|
234 | | - struct pattern_gen *pattern_gen = rkx120_pattern_gen; |
---|
| 247 | + struct pattern_gen *pattern_gen; |
---|
235 | 248 | struct dentry *dir; |
---|
| 249 | + |
---|
| 250 | + pattern_gen = devm_kmemdup(chip->serdes->dev, &rkx120_pattern_gen, |
---|
| 251 | + sizeof(rkx120_pattern_gen), GFP_KERNEL); |
---|
| 252 | + if (!pattern_gen) |
---|
| 253 | + return; |
---|
236 | 254 | |
---|
237 | 255 | dir = debugfs_create_dir("registers", dentry); |
---|
238 | 256 | if (!IS_ERR(dir)) { |
---|
.. | .. |
---|
289 | 307 | u8 phy_id) |
---|
290 | 308 | { |
---|
291 | 309 | struct i2c_client *client = serdes->chip[remote_id].client; |
---|
| 310 | + struct rk_serdes_panel *sd_panel = container_of(route, struct rk_serdes_panel, route); |
---|
| 311 | + struct rkx120_combtxphy *combtxphy = &sd_panel->combtxphy; |
---|
292 | 312 | |
---|
293 | 313 | if (phy_id) { |
---|
294 | 314 | serdes->i2c_write_reg(client, DES_GRF_SOC_CON7, 0xfff00630); |
---|
.. | .. |
---|
298 | 318 | serdes->i2c_write_reg(client, DES_GRF_SOC_CON2, 0x00040004); |
---|
299 | 319 | } |
---|
300 | 320 | |
---|
301 | | - rkx120_combtxphy_set_mode(serdes, COMBTX_PHY_MODE_VIDEO_LVDS); |
---|
| 321 | + rkx120_combtxphy_set_mode(combtxphy, COMBTX_PHY_MODE_VIDEO_LVDS); |
---|
302 | 322 | if (route->remote0_port0 & RK_SERDES_DUAL_LVDS_TX) |
---|
303 | | - rkx120_combtxphy_set_rate(serdes, route->vm.pixelclock * 7 / 2); |
---|
| 323 | + rkx120_combtxphy_set_rate(combtxphy, route->vm.pixelclock * 7 / 2); |
---|
304 | 324 | else |
---|
305 | | - rkx120_combtxphy_set_rate(serdes, route->vm.pixelclock * 7); |
---|
306 | | - rkx120_combtxphy_power_on(serdes, remote_id, phy_id); |
---|
| 325 | + rkx120_combtxphy_set_rate(combtxphy, route->vm.pixelclock * 7); |
---|
| 326 | + rkx120_combtxphy_power_on(serdes, combtxphy, remote_id, phy_id); |
---|
307 | 327 | |
---|
308 | 328 | return 0; |
---|
309 | 329 | } |
---|