Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC platform updates from Arnd Bergmann: "These are updates for platform specific code on 32-bit ARM machines, essentially anything that can not (yet) be expressed using DT files. Noteworthy changes include: - Added support for the TI DRA71x family of SoCs in mach-omap2, this is an new variant of the the DRA72x/DRA74x automotive infotainment chips we already supported for a while. - Added support for the ST STM32F746 SoC, the first Cortex-M7 based microcontroller we support, related to the smaller STM32F4 family. - Renesas adds support for r8a7743 and r8a7745 in mach-shmobile, see http://elinux.org/RZ-G - SMP is now supported on the OX820 platform - A lot of code in mach-omap2 gets removed as a follow-up to removing support for board files in the previous release - Davinci has some new work to improve USB support - For i.MX, the performance monitor now supports profiling the memory controller using 'perf'" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (95 commits) ARM: davinci: da830-evm: use gpio descriptor for mmc pins ARM: davinci: da850-evm: use gpio descriptor for mmc pins ARM: davinci: hawk: use gpio descriptor for mmc pins ARM: ARTPEC-6: add select MFD_SYSCON to MACH_ARTPEC6 ARM: davinci: da8xx: Fix ohci device name ARM: oxnas: Add OX820 config and makefile entry ARM: oxnas: Add OX820 SMP support ARM: davinci: PM: fix build when da850 not compiled in ARM: orion5x: remove legacy support of ls-chl ARM: integrator: drop EBI access use syscon ARM: BCM5301X: Add back handler ignoring external imprecise aborts ARM: davinci: PM: support da8xx DT platforms ARM: davinci: PM: cleanup: remove references to pdata ARM: davinci: PM: rework init, remove platform device ARM: Kconfig: Introduce MACH_STM32F746 flag ARM: mach-stm32: Add a new SOC - STM32F746 ARM: shmobile: document SK-RZG1E board ARM: shmobile: r8a7745: basic SoC support ARM: imx: mach-imx6ul: add imx6ull support ARM: zynq: Reserve correct amount of non-DMA RAM ...
此提交包含在:
@@ -22,6 +22,7 @@
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/fs.h>
|
||||
@@ -155,12 +156,27 @@ static struct miscdevice sa1100dog_miscdev = {
|
||||
};
|
||||
|
||||
static int margin __initdata = 60; /* (secs) Default is 1 minute */
|
||||
static struct clk *clk;
|
||||
|
||||
static int __init sa1100dog_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
oscr_freq = get_clock_tick_rate();
|
||||
clk = clk_get(NULL, "OSTIMER0");
|
||||
if (IS_ERR(clk)) {
|
||||
pr_err("SA1100/PXA2xx Watchdog Timer: clock not found: %d\n",
|
||||
(int) PTR_ERR(clk));
|
||||
return PTR_ERR(clk);
|
||||
}
|
||||
|
||||
ret = clk_prepare_enable(clk);
|
||||
if (ret) {
|
||||
pr_err("SA1100/PXA2xx Watchdog Timer: clock failed to prepare+enable: %d\n",
|
||||
ret);
|
||||
goto err;
|
||||
}
|
||||
|
||||
oscr_freq = clk_get_rate(clk);
|
||||
|
||||
/*
|
||||
* Read the reset status, and save it for later. If
|
||||
@@ -176,11 +192,17 @@ static int __init sa1100dog_init(void)
|
||||
pr_info("SA1100/PXA2xx Watchdog Timer: timer margin %d sec\n",
|
||||
margin);
|
||||
return ret;
|
||||
err:
|
||||
clk_disable_unprepare(clk);
|
||||
clk_put(clk);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __exit sa1100dog_exit(void)
|
||||
{
|
||||
misc_deregister(&sa1100dog_miscdev);
|
||||
clk_disable_unprepare(clk);
|
||||
clk_put(clk);
|
||||
}
|
||||
|
||||
module_init(sa1100dog_init);
|
||||
|
新增問題並參考
封鎖使用者