| /rk3399_rockchip-uboot/drivers/video/drm/display-serdes/ |
| H A D | core.h | 76 struct serdes; 140 int (*power_on)(struct serdes *serdes); 141 int (*init)(struct serdes *serdes); 142 int (*attach)(struct serdes *serdes); 143 bool (*detect)(struct serdes *serdes, int link); 144 int (*get_modes)(struct serdes *serdes); 145 int (*pre_enable)(struct serdes *serdes); 146 int (*enable)(struct serdes *serdes); 147 int (*disable)(struct serdes *serdes); 148 int (*post_disable)(struct serdes *serdes); [all …]
|
| H A D | serdes-i2c.c | 12 static struct serdes *g_serdes_ser_split[MAX_NUM_SERDES_SPLIT]; 14 static void serdes_i2c_init(struct serdes *serdes) in serdes_i2c_init() argument 16 if (serdes->vpower_supply) in serdes_i2c_init() 17 regulator_set_enable(serdes->vpower_supply, true); in serdes_i2c_init() 19 if (dm_gpio_is_valid(&serdes->enable_gpio)) in serdes_i2c_init() 20 dm_gpio_set_value(&serdes->enable_gpio, 1); in serdes_i2c_init() 26 if (serdes->chip_data->bridge_ops->init) in serdes_i2c_init() 27 serdes->chip_data->bridge_ops->init(serdes); in serdes_i2c_init() 29 serdes_i2c_set_sequence(serdes); in serdes_i2c_init() 32 serdes->dev->name, in serdes_i2c_init() [all …]
|
| H A D | serdes-panel.c | 12 static void serdes_panel_init(struct serdes *serdes) in serdes_panel_init() argument 14 if (serdes->vpower_supply) in serdes_panel_init() 15 regulator_set_enable(serdes->vpower_supply, true); in serdes_panel_init() 17 if (dm_gpio_is_valid(&serdes->enable_gpio)) in serdes_panel_init() 18 dm_gpio_set_value(&serdes->enable_gpio, 1); in serdes_panel_init() 22 if (serdes->chip_data->panel_ops->init) in serdes_panel_init() 23 serdes->chip_data->panel_ops->init(serdes); in serdes_panel_init() 25 if (serdes->chip_data->serdes_type == TYPE_DES) in serdes_panel_init() 26 serdes_i2c_set_sequence(serdes); in serdes_panel_init() 28 SERDES_DBG_MFD("%s: %s %s\n", __func__, serdes->dev->name, in serdes_panel_init() [all …]
|
| H A D | serdes-panel-split.c | 12 static void serdes_panel_split_init(struct serdes *serdes) in serdes_panel_split_init() argument 14 if (serdes->vpower_supply) in serdes_panel_split_init() 15 regulator_set_enable(serdes->vpower_supply, true); in serdes_panel_split_init() 17 if (dm_gpio_is_valid(&serdes->enable_gpio)) in serdes_panel_split_init() 18 dm_gpio_set_value(&serdes->enable_gpio, 1); in serdes_panel_split_init() 22 if (serdes->chip_data->panel_ops->init) in serdes_panel_split_init() 23 serdes->chip_data->panel_ops->init(serdes); in serdes_panel_split_init() 25 if (serdes->chip_data->serdes_type == TYPE_DES) in serdes_panel_split_init() 26 serdes_i2c_set_sequence(serdes); in serdes_panel_split_init() 28 SERDES_DBG_MFD("%s: %s %s\n", __func__, serdes->dev->name, in serdes_panel_split_init() [all …]
|
| H A D | serdes-bridge-split.c | 12 static void serdes_bridge_split_init(struct serdes *serdes) in serdes_bridge_split_init() argument 14 if (serdes->vpower_supply) in serdes_bridge_split_init() 15 regulator_set_enable(serdes->vpower_supply, true); in serdes_bridge_split_init() 17 if (dm_gpio_is_valid(&serdes->enable_gpio)) in serdes_bridge_split_init() 18 dm_gpio_set_value(&serdes->enable_gpio, 1); in serdes_bridge_split_init() 24 if (serdes->chip_data->bridge_ops->init) in serdes_bridge_split_init() 25 serdes->chip_data->bridge_ops->init(serdes); in serdes_bridge_split_init() 27 serdes_i2c_set_sequence(serdes); in serdes_bridge_split_init() 30 serdes->dev->name, in serdes_bridge_split_init() 31 serdes->chip_data->name); in serdes_bridge_split_init() [all …]
|
| H A D | serdes-bridge.c | 12 static void serdes_bridge_init(struct serdes *serdes) in serdes_bridge_init() argument 14 if (serdes->vpower_supply) in serdes_bridge_init() 15 regulator_set_enable(serdes->vpower_supply, true); in serdes_bridge_init() 17 if (dm_gpio_is_valid(&serdes->enable_gpio)) in serdes_bridge_init() 18 dm_gpio_set_value(&serdes->enable_gpio, 1); in serdes_bridge_init() 24 if (serdes->chip_data->bridge_ops->init) in serdes_bridge_init() 25 serdes->chip_data->bridge_ops->init(serdes); in serdes_bridge_init() 27 serdes_i2c_set_sequence(serdes); in serdes_bridge_init() 30 serdes->dev->name, in serdes_bridge_init() 31 serdes->chip_data->name); in serdes_bridge_init() [all …]
|
| H A D | serdes-pinctrl.c | 28 struct serdes *serdes = dev_get_priv(dev->parent); in serdes_pinctrl_get_pins_count() local 30 if (serdes->chip_data->pinctrl_info->num_pins) in serdes_pinctrl_get_pins_count() 31 return serdes->chip_data->pinctrl_info->num_pins; in serdes_pinctrl_get_pins_count() 39 struct serdes *serdes = dev_get_priv(dev->parent); in serdes_pinctrl_get_pin_name() local 41 if (serdes->chip_data->pinctrl_info->pins[selector].name) in serdes_pinctrl_get_pin_name() 42 return serdes->chip_data->pinctrl_info->pins[selector].name; in serdes_pinctrl_get_pin_name() 49 struct serdes *serdes = dev_get_priv(dev->parent); in serdes_pinctrl_get_groups_count() local 51 if (serdes->chip_data->pinctrl_info->num_groups) in serdes_pinctrl_get_groups_count() 52 return serdes->chip_data->pinctrl_info->num_groups; in serdes_pinctrl_get_groups_count() 60 struct serdes *serdes = dev_get_priv(dev->parent); in serdes_pinctrl_get_group_name() local [all …]
|
| H A D | serdes-core.c | 86 int serdes_reg_read(struct serdes *serdes, in serdes_reg_read() argument 91 if (serdes->chip_data->reg_val_type == REG_8BIT_VAL_8IT) in serdes_reg_read() 92 value = dm_i2c_reg_read_u8(serdes->dev, reg); in serdes_reg_read() 94 value = dm_i2c_reg_read(serdes->dev, reg); in serdes_reg_read() 98 __func__, serdes->dev->name, in serdes_reg_read() 99 serdes->dev->name, reg, *val); in serdes_reg_read() 111 int serdes_reg_write(struct serdes *serdes, unsigned int reg, in serdes_reg_write() argument 117 __func__, serdes->dev->name, in serdes_reg_write() 118 reg, val, serdes->chip_data->reg_val_type); in serdes_reg_write() 119 if (serdes->chip_data->reg_val_type == REG_8BIT_VAL_8IT) { in serdes_reg_write() [all …]
|
| H A D | serdes-gpio.c | 16 struct serdes *serdes = serdes_pinctrl->parent; in serdes_gpio_get() local 19 if (serdes->chip_data->gpio_ops->get_level) in serdes_gpio_get() 20 ret = serdes->chip_data->gpio_ops->get_level(serdes, offset); in serdes_gpio_get() 23 serdes->dev->name, in serdes_gpio_get() 24 serdes->chip_data->name, offset); in serdes_gpio_get() 32 struct serdes *serdes = serdes_pinctrl->parent; in serdes_gpio_set() local 35 if (serdes->chip_data->gpio_ops->set_level) in serdes_gpio_set() 36 ret = serdes->chip_data->gpio_ops->set_level(serdes, offset, value); in serdes_gpio_set() 39 serdes->dev->name, in serdes_gpio_set() 40 serdes->chip_data->name, offset, value); in serdes_gpio_set() [all …]
|
| H A D | Makefile | 14 …ES_DISPLAY) +=serdes-i2c.o serdes-core.o serdes-bridge.o serdes-bridge-split.o serdes-panel.o serd…
|
| H A D | Kconfig | 8 comment "driver for different display serdes" 11 tristate "rockchip display serdes drivers support" 20 This driver supports different serdes devices from different vendor such as 24 source "drivers/video/drm/display-serdes/maxim/Kconfig" 25 source "drivers/video/drm/display-serdes/rohm/Kconfig" 26 source "drivers/video/drm/display-serdes/rockchip/Kconfig" 27 source "drivers/video/drm/display-serdes/novo/Kconfig"
|
| /rk3399_rockchip-uboot/drivers/video/drm/display-serdes/maxim/ |
| H A D | maxim-max96772.c | 301 static int max96772_aux_dpcd_read(struct serdes *serdes, in max96772_aux_dpcd_read() argument 305 serdes_reg_write(serdes, 0xe778, reg & 0xff); in max96772_aux_dpcd_read() 306 serdes_reg_write(serdes, 0xe779, (reg >> 8) & 0xff); in max96772_aux_dpcd_read() 307 serdes_reg_write(serdes, 0xe77c, (reg >> 16) & 0xff); in max96772_aux_dpcd_read() 308 serdes_reg_write(serdes, 0xe776, 0x10); in max96772_aux_dpcd_read() 309 serdes_reg_write(serdes, 0xe777, 0x80); in max96772_aux_dpcd_read() 312 serdes_reg_read(serdes, 0xe77a, value); in max96772_aux_dpcd_read() 317 static int max96772_panel_init(struct serdes *serdes) in max96772_panel_init() argument 322 static int max96772_panel_prepare(struct serdes *serdes) in max96772_panel_prepare() argument 324 const struct drm_display_mode *mode = &serdes->serdes_panel->mode; in max96772_panel_prepare() [all …]
|
| H A D | maxim-max96745.c | 351 static bool max96745_bridge_linka_locked(struct serdes *serdes) in max96745_bridge_linka_locked() argument 355 if (dm_gpio_is_valid(&serdes->lock_gpio)) { in max96745_bridge_linka_locked() 356 val = dm_gpio_get_value(&serdes->lock_gpio); in max96745_bridge_linka_locked() 361 if (serdes_reg_read(serdes, 0x002a, &val)) { in max96745_bridge_linka_locked() 374 static bool max96745_bridge_linkb_locked(struct serdes *serdes) in max96745_bridge_linkb_locked() argument 378 if (dm_gpio_is_valid(&serdes->lock_gpio)) { in max96745_bridge_linkb_locked() 379 val = dm_gpio_get_value(&serdes->lock_gpio); in max96745_bridge_linkb_locked() 384 if (serdes_reg_read(serdes, 0x002a, &val)) { in max96745_bridge_linkb_locked() 397 static bool max96745_bridge_detect(struct serdes *serdes, int link) in max96745_bridge_detect() argument 400 return max96745_bridge_linka_locked(serdes); in max96745_bridge_detect() [all …]
|
| H A D | maxim-max96752.c | 251 static int max96752_panel_prepare(struct serdes *serdes) in max96752_panel_prepare() argument 256 static int max96752_panel_unprepare(struct serdes *serdes) in max96752_panel_unprepare() argument 263 static int max96752_panel_enable(struct serdes *serdes) in max96752_panel_enable() argument 268 static int max96752_panel_disable(struct serdes *serdes) in max96752_panel_disable() argument 273 static int max96752_panel_backlight_enable(struct serdes *serdes) in max96752_panel_backlight_enable() argument 278 static int max96752_panel_backlight_disable(struct serdes *serdes) in max96752_panel_backlight_disable() argument 292 static int max96752_pinctrl_set_pin_mux(struct serdes *serdes, in max96752_pinctrl_set_pin_mux() argument 301 func = &serdes->chip_data->pinctrl_info->functions[func_selector]; in max96752_pinctrl_set_pin_mux() 307 pin = &serdes->chip_data->pinctrl_info->pins[pin_selector]; in max96752_pinctrl_set_pin_mux() 314 __func__, serdes->dev->name, in max96752_pinctrl_set_pin_mux() [all …]
|
| H A D | maxim-max96755.c | 310 static bool max96755_bridge_linka_locked(struct serdes *serdes) in max96755_bridge_linka_locked() argument 314 if (dm_gpio_is_valid(&serdes->lock_gpio)) { in max96755_bridge_linka_locked() 315 val = dm_gpio_get_value(&serdes->lock_gpio); in max96755_bridge_linka_locked() 320 if (serdes_reg_read(serdes, 0x0013, &val)) { in max96755_bridge_linka_locked() 333 static bool max96755_bridge_linkb_locked(struct serdes *serdes) in max96755_bridge_linkb_locked() argument 337 if (dm_gpio_is_valid(&serdes->lock_gpio)) { in max96755_bridge_linkb_locked() 338 val = dm_gpio_get_value(&serdes->lock_gpio); in max96755_bridge_linkb_locked() 343 if (serdes_reg_read(serdes, 0x0013, &val)) { in max96755_bridge_linkb_locked() 356 static bool max96755_bridge_detect(struct serdes *serdes, int link) in max96755_bridge_detect() argument 359 return max96755_bridge_linka_locked(serdes); in max96755_bridge_detect() [all …]
|
| H A D | maxim-max96789.c | 310 static bool max96789_bridge_linka_locked(struct serdes *serdes) in max96789_bridge_linka_locked() argument 316 if (serdes_reg_read(serdes, 0x001f, &val)) { in max96789_bridge_linka_locked() 333 static bool max96789_bridge_linkb_locked(struct serdes *serdes) in max96789_bridge_linkb_locked() argument 339 if (serdes_reg_read(serdes, 0x001f, &val)) { in max96789_bridge_linkb_locked() 356 static bool max96789_bridge_detect(struct serdes *serdes, int link) in max96789_bridge_detect() argument 359 return max96789_bridge_linka_locked(serdes); in max96789_bridge_detect() 361 return max96789_bridge_linkb_locked(serdes); in max96789_bridge_detect() 364 static int max96789_bridge_enable(struct serdes *serdes) in max96789_bridge_enable() argument 369 __func__, serdes->chip_data->name, ret); in max96789_bridge_enable() 373 static int max96789_bridge_disable(struct serdes *serdes) in max96789_bridge_disable() argument [all …]
|
| H A D | Kconfig | 6 # maxim display serdes drivers configuration 10 tristate "maxim serdes device support" 14 maxim serdes. 18 tristate "maxim max96745 serdes" 21 To support maxim max96745 display serdes. 24 tristate "maxim max96752 serdes" 27 To support maxim max96752 display serdes. 30 tristate "maxim max96755 serdes" 33 To support maxim max96755 display serdes. 36 tristate "maxim max96772 serdes" [all …]
|
| /rk3399_rockchip-uboot/drivers/video/drm/display-serdes/rohm/ |
| H A D | rohm-bu18tl82.c | 130 void bu18tl82_bridge_swrst(struct serdes *serdes) in bu18tl82_bridge_swrst() argument 134 ret = serdes_reg_write(serdes, BU18TL82_REG_SWRST_INTERNAL, 0x00ef); in bu18tl82_bridge_swrst() 136 dev_err(serdes->dev, in bu18tl82_bridge_swrst() 140 ret = serdes_reg_write(serdes, BU18TL82_REG_SWRST_MIPIRX, 0x0003); in bu18tl82_bridge_swrst() 142 dev_err(serdes->dev, in bu18tl82_bridge_swrst() 149 __func__, serdes->dev->name, ret); in bu18tl82_bridge_swrst() 152 void bu18tl82_enable_hwint(struct serdes *serdes, int enable) in bu18tl82_enable_hwint() argument 158 ret = serdes_reg_write(serdes, bu18tl82_reg_ien[i].reg, in bu18tl82_enable_hwint() 163 serdes->dev->name, bu18tl82_reg_ien[i].reg); in bu18tl82_enable_hwint() 165 ret = serdes_reg_write(serdes, bu18tl82_reg_ien[i].reg, 0); in bu18tl82_enable_hwint() [all …]
|
| H A D | rohm-bu18rl82.c | 169 void bu18rl82_bridge_swrst(struct serdes *serdes) in bu18rl82_bridge_swrst() argument 173 ret = serdes_reg_write(serdes, BU18RL82_REG_RESET, in bu18rl82_bridge_swrst() 182 __func__, serdes->dev->name, ret); in bu18rl82_bridge_swrst() 185 void bu18rl82_enable_hwint(struct serdes *serdes, int enable) in bu18rl82_enable_hwint() argument 191 ret = serdes_reg_write(serdes, bu18rl82_reg_ien[i].reg, in bu18rl82_enable_hwint() 197 ret = serdes_reg_write(serdes, bu18rl82_reg_ien[i].reg, 0); in bu18rl82_enable_hwint() 206 serdes->dev->name, enable); in bu18rl82_enable_hwint() 209 int bu18rl82_bridge_init(struct serdes *serdes) in bu18rl82_bridge_init() argument 211 if (!dm_gpio_is_valid(&serdes->reset_gpio)) { in bu18rl82_bridge_init() 212 bu18rl82_bridge_swrst(serdes); in bu18rl82_bridge_init() [all …]
|
| H A D | Kconfig | 6 # rohm serdes drivers configuration 10 tristate "rohm serdes device support" 14 rohm serdes. 18 tristate "rohm bu18tl82 serdes" 21 To support rohm bu18tl82 display serdes. 24 tristate "rohm bu18rl82 serdes" 27 To support rohm bu18rl82 display serdes.
|
| /rk3399_rockchip-uboot/drivers/video/drm/display-serdes/rockchip/ |
| H A D | rockchip-rkx111.c | 12 int rkx111_bridge_init(struct serdes *serdes) in rkx111_bridge_init() argument 17 int rkx111_bridge_enable(struct serdes *serdes) in rkx111_bridge_enable() argument 22 int rkx111_bridge_disable(struct serdes *serdes) in rkx111_bridge_disable() argument
|
| H A D | rockchip-rkx121.c | 12 int rkx121_bridge_init(struct serdes *serdes) in rkx121_bridge_init() argument 17 int rkx121_bridge_enable(struct serdes *serdes) in rkx121_bridge_enable() argument 22 int rkx121_bridge_disable(struct serdes *serdes) in rkx121_bridge_disable() argument
|
| H A D | Kconfig | 6 # rockchip display serdes drivers configuration 10 tristate "rockchip serdes device support" 14 rockchip serdes. 18 tristate "rockchip rkx111 serdes" 21 To support rockchip rkx111 display serdes. 24 tristate "rockchip rkx121 serdes" 27 To support rockchip rkx121 display serdes.
|
| /rk3399_rockchip-uboot/drivers/soc/keystone/ |
| H A D | keystone_serdes.c | 140 static void ks2_serdes_cmu_comlane_enable(u32 base, struct ks2_serdes *serdes) in ks2_serdes_cmu_comlane_enable() argument 144 if (serdes->intf == SERDES_PHY_PCSR) in ks2_serdes_cmu_comlane_enable() 149 if (serdes->intf == SERDES_PHY_PCSR) in ks2_serdes_cmu_comlane_enable() 155 static void ks2_serdes_pll_enable(u32 base, struct ks2_serdes *serdes) in ks2_serdes_pll_enable() argument 157 writel(serdes_cfg_pll_enable[serdes->intf], in ks2_serdes_pll_enable() 172 struct ks2_serdes *serdes, u32 lane) in ks2_serdes_lane_enable() argument 177 writel(SERDES_LANE_EN_VAL(serdes_cfg_lane_enable, serdes->intf, in ks2_serdes_lane_enable() 178 serdes->rate_mode), in ks2_serdes_lane_enable() 182 if (serdes->loopback) in ks2_serdes_lane_enable() 187 int ks2_serdes_init(u32 base, struct ks2_serdes *serdes, u32 num_lanes) in ks2_serdes_init() argument [all …]
|
| /rk3399_rockchip-uboot/arch/arm/cpu/armv8/fsl-layerscape/ |
| H A D | ls1012a_serdes.c | 33 enum srds_prtcl serdes_get_prtcl(int serdes, int cfg, int lane) in serdes_get_prtcl() argument 37 if (serdes >= ARRAY_SIZE(serdes_cfg_tbl)) in serdes_get_prtcl() 40 ptr = serdes_cfg_tbl[serdes]; in serdes_get_prtcl() 50 int is_serdes_prtcl_valid(int serdes, u32 prtcl) in is_serdes_prtcl_valid() argument 55 if (serdes >= ARRAY_SIZE(serdes_cfg_tbl)) in is_serdes_prtcl_valid() 58 ptr = serdes_cfg_tbl[serdes]; in is_serdes_prtcl_valid()
|