]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00139234-2 MX6: add watchdog device
authorFrank Li <Frank.Li@freescale.com>
Fri, 15 Jul 2011 06:33:10 +0000 (14:33 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:32:59 +0000 (08:32 +0200)
Add watchdog device

Signed-off-by: Frank Li <Frank.Li@freescale.com>
arch/arm/mach-mx6/Kconfig
arch/arm/mach-mx6/board-mx6q_sabreauto.c
arch/arm/mach-mx6/clock.c
arch/arm/mach-mx6/devices-imx6q.h
arch/arm/plat-mxc/devices/platform-imx2-wdt.c

index 2ff2d19a0c433830c91429fbf293b537d349ae7b..77eae0a0f84f113af1bce2dc6980516b481eb206 100644 (file)
@@ -37,6 +37,7 @@ config MACH_MX6Q_SABREAUTO
        select IMX_HAVE_PLATFORM_FSL_USB_WAKEUP
        select IMX_HAVE_PLATFORM_AHCI
        select IMX_HAVE_PLATFORM_IMX_OCOTP
+       select IMX_HAVE_PLATFORM_IMX2_WDT
        help
          Include support for i.MX 6Quad SABRE Automotive Infotainment platform. This includes specific
          configurations for the board and its peripherals.
index e61463db65d74ae5c96e0f8b7eaf9a7094a8cc20..b45081a885c268c088fcbaf900a09ea5e6c1983f 100644 (file)
@@ -510,6 +510,7 @@ static void __init mx6_board_init(void)
        gpio_request(MX6Q_SABREAUTO_LDB_BACKLIGHT, "ldb-backlight");
        gpio_direction_output(MX6Q_SABREAUTO_LDB_BACKLIGHT, 1);
        imx6q_add_otp();
+       imx6q_add_imx2_wdt(0, NULL);
 }
 
 extern void __iomem *twd_base;
index 1fc5c940b61ddb1277f1ec9255e8dee41547e467..61cb23567525b2ff6613dacdf9f953c8f915a8cb 100644 (file)
@@ -3858,6 +3858,10 @@ static struct clk usboh3_clk = {
        .disable = _clk_disable,
 };
 
+static struct clk dummy_clk = {
+       .id = 0,
+};
+
 #define _REGISTER_CLOCK(d, n, c) \
        { \
                .dev_id = d, \
@@ -3963,6 +3967,8 @@ static struct clk_lookup lookups[] = {
        _REGISTER_CLOCK(NULL, "usboh3_clk", usboh3_clk),
        _REGISTER_CLOCK(NULL, "usb_phy1_clk", usb_phy1_clk),
        _REGISTER_CLOCK(NULL, "video_27M_clk", video_27M_clk),
+       _REGISTER_CLOCK("imx2-wdt.0", NULL, dummy_clk),
+       _REGISTER_CLOCK("imx2-wdt.1", NULL, dummy_clk),
 };
 
 
index 7f993c05b8db867e136db83eaca6a0e0dd0cfefa..1a304a0590744cef2e0177dbedf3d0d7307668b4 100644 (file)
@@ -104,3 +104,6 @@ extern const struct imx_otp_data imx6q_otp_data __initconst;
 #define imx6q_add_otp() \
        imx_add_otp(&imx6q_otp_data);
 
+extern const struct imx_imx2_wdt_data imx6q_imx2_wdt_data[] __initconst;
+#define imx6q_add_imx2_wdt(id, pdata)   \
+       imx_add_imx2_wdt(&imx6q_imx2_wdt_data[id])
index 5e07ef2bf1c42510e59d384a9e0ea6c55f7d72a6..872515a040996c75d6970914d7fe54a4c89f9fc9 100644 (file)
@@ -62,6 +62,15 @@ const struct imx_imx2_wdt_data imx53_imx2_wdt_data[] __initconst = {
 };
 #endif /* ifdef CONFIG_SOC_IMX53 */
 
+#ifdef CONFIG_SOC_IMX6Q
+const struct imx_imx2_wdt_data imx6q_imx2_wdt_data[] __initconst = {
+#define imx6q_imx2_wdt_data_entry(_id, _hwid)                           \
+       imx_imx2_wdt_data_entry(MX6Q, _id, _hwid, SZ_16K)
+       imx6q_imx2_wdt_data_entry(0, 1),
+       imx6q_imx2_wdt_data_entry(1, 2),
+};
+#endif
+
 struct platform_device *__init imx_add_imx2_wdt(
                const struct imx_imx2_wdt_data *data)
 {