tegra: Provide a function to allow LCD PMIC setup
authorSimon Glass <sjg@chromium.org>
Wed, 15 Apr 2015 03:03:27 +0000 (21:03 -0600)
committerTom Warren <twarren@nvidia.com>
Wed, 13 May 2015 16:24:08 +0000 (09:24 -0700)
Some LCDs require a PMIC to be set up - add a function for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
arch/arm/include/asm/arch-tegra/sys_proto.h
board/nvidia/common/board.c

index 914d8b956d844ccf0017576ca18b161d07e9ee65..83f9f472c9daf53383438ce36e69771376b11754 100644 (file)
@@ -17,4 +17,12 @@ void invalidate_dcache(void);
  */
 int tegra_board_id(void);
 
+/**
+ * tegra_lcd_pmic_init() - Set up the PMIC for a board
+ *
+ * @board_id: Board ID which may be used to select LCD type
+ * @return 0 if OK, -ve on error
+ */
+int tegra_lcd_pmic_init(int board_id);
+
 #endif
index b5a69dfbbcd5bd7a8263042b31b04dc68aa2d9af..4cc23ef6167efb465210b4a78b3db0e4a0a1f580 100644 (file)
@@ -100,6 +100,11 @@ int checkboard(void)
 }
 #endif /* CONFIG_DISPLAY_BOARDINFO */
 
+__weak int tegra_lcd_pmic_init(int board_it)
+{
+       return 0;
+}
+
 /*
  * Routine: board_init
  * Description: Early hardware init.
@@ -107,6 +112,7 @@ int checkboard(void)
 int board_init(void)
 {
        __maybe_unused int err;
+       __maybe_unused int board_id;
 
        /* Do clocks and UART first so that printf() works */
        clock_init();
@@ -147,6 +153,10 @@ int board_init(void)
 #endif
 
 #ifdef CONFIG_LCD
+       board_id = tegra_board_id();
+       err = tegra_lcd_pmic_init(board_id);
+       if (err)
+               return err;
        tegra_lcd_check_next_stage(gd->fdt_blob, 0);
 #endif