mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-25 00:21:28 +02:00
If DISP1 is a PLLD/D2 child, it cannot go over 370MHz. The cause of this is not quite clear. This can be overcomed by further halving the PLLD/D2 if the target parent rate is over 800MHz. This way DISP1 and DSI clocks will have the same frequency. The shift divider in this case has to be calculated from the original PLLD/D2 frequency and is passed from the DSI driver. Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # ASUS Grouper E1565 Tested-by: Ion Agorria <ion@agorria.com> # HTC One X Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Nvidia Tegratab T114 Tested-by: Jonas Schwöbel <jonasschwoebel@yahoo.de> # Microsoft Surface 2 Signed-off-by: Jonas Schwöbel <jonasschwoebel@yahoo.de> Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Acked-by: Thierry Reding <treding@nvidia.com>
46 lines
1.4 KiB
C
46 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2010
|
|
* NVIDIA Corporation <www.nvidia.com>
|
|
*/
|
|
|
|
#ifndef _TEGRA_DC_H
|
|
#define _TEGRA_DC_H
|
|
|
|
#ifndef __ASSEMBLY__
|
|
#include <linux/bitops.h>
|
|
#endif
|
|
|
|
/* arch-tegra/dc exists only because T124 uses it */
|
|
#include <asm/arch-tegra/dc.h>
|
|
|
|
#define TEGRA_DC_A "dc@54200000"
|
|
#define TEGRA_DC_B "dc@54240000"
|
|
#define TEGRA_DSI_A "dsi@54300000"
|
|
#define TEGRA_DSI_B "dsi@54400000"
|
|
|
|
struct tegra_dc_plat {
|
|
struct udevice *dev; /* Display controller device */
|
|
struct dc_ctlr *dc; /* Display controller regmap */
|
|
bool pipe; /* DC number: 0 for A, 1 for B */
|
|
ulong scdiv; /* Shift clock divider */
|
|
};
|
|
|
|
/* This holds information about a window which can be displayed */
|
|
struct disp_ctl_win {
|
|
enum win_color_depth_id fmt; /* Color depth/format */
|
|
unsigned int bpp; /* Bits per pixel */
|
|
phys_addr_t phys_addr; /* Physical address in memory */
|
|
unsigned int x; /* Horizontal address offset (bytes) */
|
|
unsigned int y; /* Veritical address offset (bytes) */
|
|
unsigned int w; /* Width of source window */
|
|
unsigned int h; /* Height of source window */
|
|
unsigned int stride; /* Number of bytes per line */
|
|
unsigned int out_x; /* Left edge of output window (col) */
|
|
unsigned int out_y; /* Top edge of output window (row) */
|
|
unsigned int out_w; /* Width of output window in pixels */
|
|
unsigned int out_h; /* Height of output window in pixels */
|
|
};
|
|
|
|
#endif /* _TEGRA_DC_H */
|