[PATCH 0/5] imx: support for the IIM fusebox
Baruch Siach
baruch at tkos.co.il
Mon Aug 16 04:47:18 EDT 2010
Hi Sascha,
On Mon, Aug 16, 2010 at 10:33:30AM +0200, Sascha Hauer wrote:
> On Sun, Aug 15, 2010 at 04:39:23PM +0300, Baruch Siach wrote:
> > This patch series adds a driver for the IIM fusebox. As suggested by Sascha
> > Hauer, this driver is implemented as a character device, which allows use of
> > the standard md/mw commands to access the fuses.
>
> Much better, thanks. I just tested this on an i.MX35 and it works fine.
> I used the following patch to add support for the i.MX35. I think it's
> better to put the IIM device info into a i.MX35 specific file. The
> device does not need any platform data, and it is much code duplicated
> into each board otherwise. Maybe you can do this change for the i.MX25
> aswell.
OK. I'll fold the platform code into patch 3, and send as a reply to that
patch. You can then drop no. 4.
baruch
> commit 1d47b8fe08b519e43babb7de802813359bed8e54
> Author: Sascha Hauer <s.hauer at pengutronix.de>
> Date: Mon Aug 16 10:26:52 2010 +0200
>
> i.MX35: add iim support
>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
>
> diff --git a/arch/arm/mach-imx/imx35.c b/arch/arm/mach-imx/imx35.c
> index 74d63eb..72851f7 100644
> --- a/arch/arm/mach-imx/imx35.c
> +++ b/arch/arm/mach-imx/imx35.c
> @@ -16,6 +16,7 @@
> */
>
> #include <common.h>
> +#include <init.h>
> #include <asm/io.h>
> #include <mach/imx-regs.h>
> #include <mach/iim.h>
> @@ -39,3 +40,52 @@ int imx_silicon_revision()
>
> return (reg & 0xFF);
> }
> +
> +#ifdef CONFIG_IMX_IIM
> +#define IIM_BANK_SIZE 32 /* excluding alignment padding for each row */
> +
> +static struct device_d imx_iim_dev = {
> + .name = "imx_iim",
> + .map_base = IMX_IIM_BASE,
> +};
> +
> +static struct device_d imx_iim_bank0_dev = {
> + .name = "imx_iim_bank",
> + .id = 0,
> + .map_base = IMX_IIM_BASE + 0x800,
> + .size = IIM_BANK_SIZE,
> +};
> +
> +static struct device_d imx_iim_bank1_dev = {
> + .name = "imx_iim_bank",
> + .id = 1,
> + .map_base = IMX_IIM_BASE + 0xc00,
> + .size = IIM_BANK_SIZE,
> +};
> +
> +static struct device_d imx_iim_bank2_dev = {
> + .name = "imx_iim_bank",
> + .id = 2,
> + .map_base = IMX_IIM_BASE + 0x1000,
> + .size = IIM_BANK_SIZE,
> +};
> +
> +static int imx35_iim_init(void)
> +{
> + uint32_t reg;
> +
> + /* Start the clock */
> + reg = readl(IMX_CCM_BASE + CCM_CGR3);
> + reg |= (3 << 2);
> + writel(reg, IMX_CCM_BASE + CCM_CGR3);
> +
> + register_device(&imx_iim_dev);
> + register_device(&imx_iim_bank0_dev);
> + register_device(&imx_iim_bank1_dev);
> + register_device(&imx_iim_bank2_dev);
> +
> + return 0;
> +}
> +
> +device_initcall(imx35_iim_init);
> +#endif /* CONFIG_IMX_IIM */
>
> --
> Pengutronix e.K. | |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
More information about the barebox
mailing list