MX31: Add support for PMIC to the QONG module
authorStefano Babic <sbabic@denx.de>
Fri, 16 Apr 2010 15:13:54 +0000 (17:13 +0200)
committerStefano Babic <sbabic@denx.de>
Wed, 5 May 2010 07:48:41 +0000 (09:48 +0200)
Add support for the PMIC (MC13783) controller
and enables charging of the RTC battery.

Signed-off-by: Stefano Babic <sbabic@denx.de>
board/davedenx/qong/qong.c
include/configs/qong.h

index eb9218ec5050686b20285a2e83f19e135ac69357..781333b8ceb93e41c63a33a0af1c719edca2f826 100644 (file)
@@ -26,6 +26,7 @@
 #include <asm/arch/mx31.h>
 #include <asm/arch/mx31-regs.h>
 #include <nand.h>
+#include <fsl_pmic.h>
 #include "qong_fpga.h"
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -128,6 +129,13 @@ int board_init (void)
        mx31_gpio_mux(MUX_RTS1__UART1_RTS_B);
        mx31_gpio_mux(MUX_CTS1__UART1_CTS_B);
 
+       /* setup pins for SPI (pmic) */
+       mx31_gpio_mux(MUX_CSPI2_SS0__CSPI2_SS0_B);
+       mx31_gpio_mux(MUX_CSPI2_MOSI__CSPI2_MOSI);
+       mx31_gpio_mux(MUX_CSPI2_MISO__CSPI2_MISO);
+       mx31_gpio_mux(MUX_CSPI2_SCLK__CSPI2_CLK);
+       mx31_gpio_mux(MUX_CSPI2_SPI_RDY__CSPI2_DATAREADY_B);
+
        /* board id for linux */
        gd->bd->bi_arch_number = MACH_TYPE_QONG;
        gd->bd->bi_boot_params = (0x80000100);  /* adress of boot parameters */
@@ -135,6 +143,18 @@ int board_init (void)
        return 0;
 }
 
+int board_late_init(void)
+{
+       u32 val;
+
+       /* Enable RTC battery */
+       val = pmic_reg_read(REG_POWER_CTL0);
+       pmic_reg_write(REG_POWER_CTL0, val | COINCHEN);
+       pmic_reg_write(REG_INT_STATUS1, RTCRSTI);
+
+       return 0;
+}
+
 int checkboard (void)
 {
        printf("Board: DAVE/DENX Qong\n");
index 1d63b33b9bd39959ab72a36c857f8595119f111e..eb4669ba7162d383d4a01e860bd3799d7164979c 100644 (file)
 
 #define CONFIG_MX31_GPIO
 
+#define CONFIG_MXC_SPI
+#define CONFIG_DEFAULT_SPI_BUS 1
+#define CONFIG_DEFAULT_SPI_MODE        (SPI_MODE_2 | SPI_CS_HIGH)
+#define CONFIG_RTC_MC13783
+
+#define CONFIG_FSL_PMIC
+#define CONFIG_FSL_PMIC_BUS    1
+#define CONFIG_FSL_PMIC_CS     0
+#define CONFIG_FSL_PMIC_CLK    100000
+#define CONFIG_FSL_PMIC_MODE   (SPI_MODE_2 | SPI_CS_HIGH)
+
 /* FPGA */
 #define CONFIG_QONG_FPGA       1
 #define CONFIG_FPGA_BASE       (CS1_BASE)
 #define CONFIG_CMD_NET
 #define CONFIG_CMD_MII
 #define CONFIG_CMD_NAND
+#define CONFIG_CMD_SPI
+#define CONFIG_CMD_DATE
+#define BOARD_LATE_INIT
 
 /*
  * You can compile in a MAC address and your custom net settings by using