Skip to content
Snippets Groups Projects
Commit 9e6866d3 authored by Simon Glass's avatar Simon Glass Committed by Tom Warren
Browse files

tegra: video: Convert tegra20 LCD driver to driver model


Move this driver over to use driver model. This involves rearranging the
code somewhat. The effect is that everything is run from the probe() method.

Boards which use this are fixed up, but only seaboard is tested.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
Acked-by: default avatarAnatolij Gustschin <agust@denx.de>
Signed-off-by: default avatarTom Warren <twarren@nvidia.com>
parent ce0c474a
No related branches found
No related tags found
No related merge requests found
Showing
with 208 additions and 255 deletions
...@@ -40,6 +40,10 @@ ...@@ -40,6 +40,10 @@
nvidia,panel = <&lcd_panel>; nvidia,panel = <&lcd_panel>;
}; };
}; };
dc@54240000 {
status = "disabled";
};
}; };
/* This is not used in U-Boot, but is expected to be in kernel .dts */ /* This is not used in U-Boot, but is expected to be in kernel .dts */
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
interrupt-parent = <&lic>; interrupt-parent = <&lic>;
host1x@50000000 { host1x@50000000 {
u-boot,dm-pre-reloc;
compatible = "nvidia,tegra20-host1x", "simple-bus"; compatible = "nvidia,tegra20-host1x", "simple-bus";
reg = <0x50000000 0x00024000>; reg = <0x50000000 0x00024000>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
...@@ -77,6 +78,7 @@ ...@@ -77,6 +78,7 @@
}; };
dc@54200000 { dc@54200000 {
u-boot,dm-pre-reloc;
compatible = "nvidia,tegra20-dc"; compatible = "nvidia,tegra20-dc";
reg = <0x54200000 0x00040000>; reg = <0x54200000 0x00040000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
......
...@@ -48,30 +48,4 @@ enum lcd_cache_t { ...@@ -48,30 +48,4 @@ enum lcd_cache_t {
FDT_LCD_CACHE_FLUSH, FDT_LCD_CACHE_FLUSH,
}; };
/**
* Perform the next stage of the LCD init if it is time to do so.
*
* LCD init can be time-consuming because of the number of delays we need
* while waiting for the backlight power supply, etc. This function can
* be called at various times during U-Boot operation to advance the
* initialization of the LCD to the next stage if sufficient time has
* passed since the last stage. It keeps track of what stage it is up to
* and the time that it is permitted to move to the next stage.
*
* The final call should have wait=1 to complete the init.
*
* @param blob fdt blob containing LCD information
* @param wait 1 to wait until all init is complete, and then return
* 0 to return immediately, potentially doing nothing if it is
* not yet time for the next init.
*/
int tegra_lcd_check_next_stage(const void *blob, int wait);
/**
* Set up the maximum LCD size so we can size the frame buffer.
*
* @param blob fdt blob containing LCD information
*/
void tegra_lcd_early_init(const void *blob);
#endif /*__ASM_ARCH_TEGRA_DISPLAY_H*/ #endif /*__ASM_ARCH_TEGRA_DISPLAY_H*/
...@@ -41,7 +41,7 @@ void pin_mux_mmc(void) ...@@ -41,7 +41,7 @@ void pin_mux_mmc(void)
} }
#endif #endif
#ifdef CONFIG_LCD #ifdef CONFIG_DM_VIDEO
/* this is a weak define that we are overriding */ /* this is a weak define that we are overriding */
void pin_mux_display(void) void pin_mux_display(void)
{ {
......
...@@ -11,8 +11,12 @@ CONFIG_SYS_PROMPT="Colibri T20 # " ...@@ -11,8 +11,12 @@ CONFIG_SYS_PROMPT="Colibri T20 # "
# CONFIG_CMD_FPGA is not set # CONFIG_CMD_FPGA is not set
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_USE_PRIVATE_LIBGCC=y
...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Harmony) # " ...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Harmony) # "
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y
...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Medcom-Wide) # " ...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Medcom-Wide) # "
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_USE_PRIVATE_LIBGCC=y
...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Paz00) MOD # " ...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Paz00) MOD # "
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_USE_PRIVATE_LIBGCC=y
...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (SeaBoard) # " ...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (SeaBoard) # "
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_USE_PRIVATE_LIBGCC=y
...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (TEC) # " ...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (TEC) # "
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_USE_PRIVATE_LIBGCC=y
...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Ventana) # " ...@@ -12,8 +12,12 @@ CONFIG_SYS_PROMPT="Tegra20 (Ventana) # "
CONFIG_CMD_GPIO=y CONFIG_CMD_GPIO=y
# CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_SETEXPR is not set
# CONFIG_CMD_NFS is not set # CONFIG_CMD_NFS is not set
CONFIG_DM_PMIC=y
CONFIG_DM_REGULATOR=y
CONFIG_DM_PWM=y
CONFIG_SYS_NS16550=y CONFIG_SYS_NS16550=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_DM_USB=y CONFIG_DM_USB=y
CONFIG_DM_VIDEO=y
CONFIG_VIDEO_TEGRA20=y CONFIG_VIDEO_TEGRA20=y
CONFIG_USE_PRIVATE_LIBGCC=y CONFIG_USE_PRIVATE_LIBGCC=y
This diff is collapsed.
...@@ -53,9 +53,7 @@ ...@@ -53,9 +53,7 @@
#define CONFIG_TFTP_TSIZE #define CONFIG_TFTP_TSIZE
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_CONSOLE_SCROLL_LINES 10 #define CONFIG_CONSOLE_SCROLL_LINES 10
#define CONFIG_CMD_BMP #define CONFIG_CMD_BMP
......
...@@ -60,9 +60,7 @@ ...@@ -60,9 +60,7 @@
#define CONFIG_CMD_DHCP #define CONFIG_CMD_DHCP
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_CONSOLE_SCROLL_LINES 10 #define CONFIG_CONSOLE_SCROLL_LINES 10
......
...@@ -48,9 +48,7 @@ ...@@ -48,9 +48,7 @@
#define CONFIG_CMD_DHCP #define CONFIG_CMD_DHCP
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
/* support the new (FDT-based) image format */ /* support the new (FDT-based) image format */
......
...@@ -48,9 +48,7 @@ ...@@ -48,9 +48,7 @@
#define CONFIG_CMD_DHCP #define CONFIG_CMD_DHCP
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_CONSOLE_SCROLL_LINES 10 #define CONFIG_CONSOLE_SCROLL_LINES 10
......
...@@ -66,9 +66,7 @@ ...@@ -66,9 +66,7 @@
#define CONFIG_USB_KEYBOARD #define CONFIG_USB_KEYBOARD
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_CONSOLE_SCROLL_LINES 10 #define CONFIG_CONSOLE_SCROLL_LINES 10
......
...@@ -48,9 +48,7 @@ ...@@ -48,9 +48,7 @@
#define CONFIG_CMD_DHCP #define CONFIG_CMD_DHCP
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
/* support the new (FDT-based) image format */ /* support the new (FDT-based) image format */
......
...@@ -49,9 +49,7 @@ ...@@ -49,9 +49,7 @@
#define CONFIG_USB_KEYBOARD #define CONFIG_USB_KEYBOARD
/* LCD support */ /* LCD support */
#define CONFIG_LCD
#define CONFIG_PWM_TEGRA #define CONFIG_PWM_TEGRA
#define LCD_BPP LCD_COLOR16
#define CONFIG_SYS_WHITE_ON_BLACK #define CONFIG_SYS_WHITE_ON_BLACK
#define CONFIG_CONSOLE_SCROLL_LINES 10 #define CONFIG_CONSOLE_SCROLL_LINES 10
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment