[uboot] Upgrade the MMF SDK from V4.0.0 to V4.1.0
1. add cv181x functions 2. Delete some useless files and add .gitignore Change-Id: Iea2b2fa43b5a1152e5e99fb32b88f8d2c249251a
This commit is contained in:
committed by
sam.xiang
parent
aa1b345a00
commit
607778300c
@ -6,9 +6,10 @@
|
||||
#include <common.h>
|
||||
#include <clk.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/hardware.h>
|
||||
//#include <asm/hardware.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include "reg.h"
|
||||
#include "vip_common.h"
|
||||
@ -20,6 +21,9 @@
|
||||
* bit[0]: dcs cmd mode. 0(hw)/1(sw)
|
||||
*/
|
||||
static int cmd_mode = 1;
|
||||
unsigned int pixel_clk;
|
||||
u8 lane_num;
|
||||
u8 bits;
|
||||
|
||||
static void _fill_disp_timing(struct sclr_disp_timing *timing, struct sync_info_s *sync_info)
|
||||
{
|
||||
@ -84,10 +88,8 @@ int mipi_tx_set_combo_dev_cfg(const struct combo_dev_cfg_s *dev_cfg)
|
||||
{
|
||||
int ret, i;
|
||||
bool data_en[LANE_MAX_NUM] = {false, false, false, false, false};
|
||||
u8 lane_num = 0;
|
||||
struct sclr_disp_timing timing;
|
||||
enum sclr_dsi_fmt dsi_fmt;
|
||||
u8 bits;
|
||||
bool preamble_on = false;
|
||||
struct combo_dev_cfg_s dev_cfg_t = *dev_cfg;
|
||||
struct disp_ctrl_gpios ctrl_gpios;
|
||||
@ -99,14 +101,14 @@ int mipi_tx_set_combo_dev_cfg(const struct combo_dev_cfg_s *dev_cfg)
|
||||
data_en[i] = false;
|
||||
continue;
|
||||
}
|
||||
dphy_dsi_set_lane(i, dev_cfg_t.lane_id[i], dev_cfg_t.lane_pn_swap[i]);
|
||||
dphy_dsi_set_lane(i, dev_cfg_t.lane_id[i], dev_cfg_t.lane_pn_swap[i], true);
|
||||
if (dev_cfg_t.lane_id[i] != MIPI_TX_LANE_CLK) {
|
||||
++lane_num;
|
||||
data_en[dev_cfg_t.lane_id[i] - 1] = true;
|
||||
}
|
||||
}
|
||||
if (lane_num == 0) {
|
||||
debug("%s: no active mipi-dsi lane\n", __func__);
|
||||
printf("%s: no active mipi-dsi lane\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -135,6 +137,7 @@ int mipi_tx_set_combo_dev_cfg(const struct combo_dev_cfg_s *dev_cfg)
|
||||
return -EINVAL;
|
||||
}
|
||||
_cal_htt_extra(&dev_cfg_t, lane_num, bits);
|
||||
pixel_clk = dev_cfg_t.pixel_clk;
|
||||
_fill_disp_timing(&timing, &dev_cfg_t.sync_info);
|
||||
preamble_on = (dev_cfg_t.pixel_clk * bits / lane_num) > 1500000;
|
||||
dphy_dsi_lane_en(true, data_en, preamble_on);
|
||||
@ -148,33 +151,33 @@ int mipi_tx_set_combo_dev_cfg(const struct combo_dev_cfg_s *dev_cfg)
|
||||
ret = dm_gpio_set_value(&ctrl_gpios.disp_power_ct_gpio,
|
||||
ctrl_gpios.disp_power_ct_gpio.flags & GPIOD_ACTIVE_LOW ? 0 : 1);
|
||||
if (ret < 0) {
|
||||
error("dm_gpio_set_value(disp_power_ct_gpio, deassert) failed: %d", ret);
|
||||
printf("dm_gpio_set_value(disp_power_ct_gpio, deassert) failed: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
ret = dm_gpio_set_value(&ctrl_gpios.disp_pwm_gpio,
|
||||
ctrl_gpios.disp_pwm_gpio.flags & GPIOD_ACTIVE_LOW ? 0 : 1);
|
||||
if (ret < 0) {
|
||||
error("dm_gpio_set_value(disp_pwm_gpio, deassert) failed: %d", ret);
|
||||
printf("dm_gpio_set_value(disp_pwm_gpio, deassert) failed: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
ret = dm_gpio_set_value(&ctrl_gpios.disp_reset_gpio,
|
||||
ctrl_gpios.disp_reset_gpio.flags & GPIOD_ACTIVE_LOW ? 0 : 1);
|
||||
if (ret < 0) {
|
||||
error("dm_gpio_set_value(disp_reset_gpio, deassert) failed: %d", ret);
|
||||
printf("dm_gpio_set_value(disp_reset_gpio, deassert) failed: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
mdelay(10);
|
||||
ret = dm_gpio_set_value(&ctrl_gpios.disp_reset_gpio,
|
||||
ctrl_gpios.disp_reset_gpio.flags & GPIOD_ACTIVE_LOW ? 1 : 0);
|
||||
if (ret < 0) {
|
||||
error("dm_gpio_set_value(disp_reset_gpio, deassert) failed: %d", ret);
|
||||
printf("dm_gpio_set_value(disp_reset_gpio, deassert) failed: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
mdelay(10);
|
||||
ret = dm_gpio_set_value(&ctrl_gpios.disp_reset_gpio,
|
||||
ctrl_gpios.disp_reset_gpio.flags & GPIOD_ACTIVE_LOW ? 0 : 1);
|
||||
if (ret < 0) {
|
||||
error("dm_gpio_set_value(disp_reset_gpio, deassert) failed: %d", ret);
|
||||
printf("dm_gpio_set_value(disp_reset_gpio, deassert) failed: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
mdelay(100);
|
||||
@ -185,10 +188,10 @@ int mipi_tx_set_combo_dev_cfg(const struct combo_dev_cfg_s *dev_cfg)
|
||||
int mipi_tx_set_cmd(struct cmd_info_s *cmd_info)
|
||||
{
|
||||
if (cmd_info->cmd_size > CMD_MAX_NUM) {
|
||||
debug("cmd_size(%d) can't exceed %d!\n", cmd_info->cmd_size, CMD_MAX_NUM);
|
||||
printf("cmd_size(%d) can't exceed %d!\n", cmd_info->cmd_size, CMD_MAX_NUM);
|
||||
return -EINVAL;
|
||||
} else if ((cmd_info->cmd_size != 0) && !cmd_info->cmd) {
|
||||
debug("cmd is NULL, but cmd_size(%d) isn't zero!\n", cmd_info->cmd_size);
|
||||
printf("cmd is NULL, but cmd_size(%d) isn't zero!\n", cmd_info->cmd_size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -205,16 +208,24 @@ int mipi_tx_set_cmd(struct cmd_info_s *cmd_info)
|
||||
|
||||
int mipi_tx_get_cmd(struct get_cmd_info_s *get_cmd_info)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (get_cmd_info->get_data_size > RX_MAX_NUM) {
|
||||
debug("get_data_size(%d) can't exceed %d!\n", get_cmd_info->get_data_size, RX_MAX_NUM);
|
||||
printf("get_data_size(%d) can't exceed %d!\n", get_cmd_info->get_data_size, RX_MAX_NUM);
|
||||
return -EINVAL;
|
||||
} else if ((get_cmd_info->get_data_size != 0) && (!get_cmd_info->get_data)) {
|
||||
debug("cmd is NULL, but cmd_size(%d) isn't zero!\n", get_cmd_info->get_data_size);
|
||||
printf("cmd is NULL, but cmd_size(%d) isn't zero!\n", get_cmd_info->get_data_size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return sclr_dsi_dcs_read_buffer(get_cmd_info->data_type, get_cmd_info->data_param
|
||||
if (pixel_clk)
|
||||
dphy_dsi_set_pll(pixel_clk * 2, lane_num, bits);
|
||||
ret = sclr_dsi_dcs_read_buffer(get_cmd_info->data_type, get_cmd_info->data_param
|
||||
, get_cmd_info->get_data, get_cmd_info->get_data_size, cmd_mode & 0x01);
|
||||
if (pixel_clk)
|
||||
dphy_dsi_set_pll(pixel_clk, lane_num, bits);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void mipi_tx_set_mode(unsigned long mode_flags)
|
||||
|
||||
Reference in New Issue
Block a user