|
@@ -7,9 +7,9 @@
|
|
|
#include <common.h>
|
|
|
#include <dm.h>
|
|
|
#include <errno.h>
|
|
|
-#include <fdtdec.h>
|
|
|
#include <malloc.h>
|
|
|
#include <panel.h>
|
|
|
+#include <syscon.h>
|
|
|
#include <video_bridge.h>
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/arch/clock.h>
|
|
@@ -759,15 +759,12 @@ int tegra_dc_sor_attach(struct udevice *dc_dev, struct udevice *dev,
|
|
|
const struct display_timing *timing)
|
|
|
{
|
|
|
struct tegra_dc_sor_data *sor = dev_get_priv(dev);
|
|
|
- const void *blob = gd->fdt_blob;
|
|
|
struct dc_ctlr *disp_ctrl;
|
|
|
u32 reg_val;
|
|
|
- int node;
|
|
|
|
|
|
/* Use the first display controller */
|
|
|
debug("%s\n", __func__);
|
|
|
- node = dev_of_offset(dc_dev);
|
|
|
- disp_ctrl = (struct dc_ctlr *)fdtdec_get_addr(blob, node, "reg");
|
|
|
+ disp_ctrl = (struct dc_ctlr *)dev_read_addr(dc_dev);
|
|
|
|
|
|
tegra_dc_sor_enable_dc(disp_ctrl);
|
|
|
tegra_dc_sor_config_panel(sor, 0, link_cfg, timing);
|
|
@@ -974,16 +971,13 @@ int tegra_dc_sor_detach(struct udevice *dc_dev, struct udevice *dev)
|
|
|
{
|
|
|
struct tegra_dc_sor_data *sor = dev_get_priv(dev);
|
|
|
int dc_reg_ctx[DC_REG_SAVE_SPACE];
|
|
|
- const void *blob = gd->fdt_blob;
|
|
|
struct dc_ctlr *disp_ctrl;
|
|
|
unsigned long dc_int_mask;
|
|
|
- int node;
|
|
|
int ret;
|
|
|
|
|
|
debug("%s\n", __func__);
|
|
|
/* Use the first display controller */
|
|
|
- node = dev_of_offset(dc_dev);
|
|
|
- disp_ctrl = (struct dc_ctlr *)fdtdec_get_addr(blob, node, "reg");
|
|
|
+ disp_ctrl = (struct dc_ctlr *)dev_read_addr(dev);
|
|
|
|
|
|
/* Sleep mode */
|
|
|
tegra_sor_writel(sor, SUPER_STATE1, SUPER_STATE1_ASY_HEAD_OP_SLEEP |
|
|
@@ -1050,18 +1044,13 @@ static int tegra_sor_set_backlight(struct udevice *dev, int percent)
|
|
|
static int tegra_sor_ofdata_to_platdata(struct udevice *dev)
|
|
|
{
|
|
|
struct tegra_dc_sor_data *priv = dev_get_priv(dev);
|
|
|
- const void *blob = gd->fdt_blob;
|
|
|
- int node;
|
|
|
int ret;
|
|
|
|
|
|
- priv->base = (void *)fdtdec_get_addr(blob, dev_of_offset(dev), "reg");
|
|
|
+ priv->base = (void *)dev_read_addr(dev);
|
|
|
|
|
|
- node = fdtdec_next_compatible(blob, 0, COMPAT_NVIDIA_TEGRA124_PMC);
|
|
|
- if (node < 0) {
|
|
|
- debug("%s: Cannot find PMC\n", __func__);
|
|
|
- return -ENOENT;
|
|
|
- }
|
|
|
- priv->pmc_base = (void *)fdtdec_get_addr(blob, node, "reg");
|
|
|
+ priv->pmc_base = (void *)syscon_get_first_range(TEGRA_SYSCON_PMC);
|
|
|
+ if (IS_ERR(priv->pmc_base))
|
|
|
+ return PTR_ERR(priv->pmc_base);
|
|
|
|
|
|
ret = uclass_get_device_by_phandle(UCLASS_PANEL, dev, "nvidia,panel",
|
|
|
&priv->panel);
|