[RFC PATCHv2 1/2] ARM: socfpga: initial support for Altera's SOCFPGA platform.
Dinh.Nguyen
dinguyen at altera.com
Tue Jul 17 17:31:32 EDT 2012
On Tue, 2012-07-17 at 15:47 +0000, Arnd Bergmann wrote:
> On Thursday 12 July 2012, dinguyen at altera.com wrote:
>
> > +config ARCH_SOCFPGA
> > + bool "Altera SOCFPGA family"
> > + select ARCH_WANT_OPTIONAL_GPIOLIB
> > + select ARM_AMBA
> > + select ARM_GIC
> > + select CACHE_L2X0
> > + select CLKDEV_LOOKUP
> > + select CPU_V7
> > + select DW_APB_TIMER
> > + select DW_APB_TIMER_OF
> > + select GENERIC_CLOCKEVENTS
> > + select GPIO_PL061 if GPIOLIB
> > + select HAVE_ARM_SCU
> > + select SPARSE_IRQ
> > + select USE_OF
> > + help
> > + This enables support for Altera SOCFPGA Cyclone V platform
>
> Please select COMMON_CLK as well to use the generic clock implementation.
>
> > diff --git a/arch/arm/mach-socfpga/clock.c b/arch/arm/mach-socfpga/clock.c
> > new file mode 100644
> > index 0000000..79f3890
> > --- /dev/null
> > +++ b/arch/arm/mach-socfpga/clock.c
> > @@ -0,0 +1,45 @@
>
> > +#include <linux/clkdev.h>
> > +
> > +#define SOCFPGA_MPU_PERIHCLK_FREQ_HZ (800000000 / 4)
> > +#define SOCFPGA_L4_MAIN_CLK (400000000)
> > +
> > +struct clk {
> > + unsigned long rate;
> > +};
> > +
> > +static struct clk apb_pclk = { .rate = 200000000};
> > +static struct clk i2c_clk = { .rate = 100000000};
> > +static struct clk spim_clk = { .rate = 100000000};
> > +static struct clk mpu_pclk = { .rate = SOCFPGA_MPU_PERIHCLK_FREQ_HZ};
> > +static struct clk l4_main_clk = { .rate = SOCFPGA_L4_MAIN_CLK};
>
> Then move this file into drivers/clk/ using that code.
This doesn't quite make sense to me. You want me to move platform
specific information to drivers folder? I only see mxs and spear under
drivers/clk. Surely, you don't want me to create another socfpga folder
under there, or do you?
thanks,
Dinh
>
> > diff --git a/arch/arm/mach-socfpga/include/mach/iomap.h b/arch/arm/mach-socfpga/include/mach/iomap.h
> > new file mode 100644
> > index 0000000..d5f8493
> > --- /dev/null
> > +++ b/arch/arm/mach-socfpga/include/mach/iomap.h
> > @@ -0,0 +1,33 @@
> > +/*
> > + * Copyright (C) 2012 Altera Corporation <www.altera.com>
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program. If not, see <http://www.gnu.org/licenses/>.
> > + */
> > +#ifndef __MACH_SOCFPGA_IOMAP_H
> > +#define __MACH_SOCFPGA_IOMAP_H
> > +
> > +#include <asm/sizes.h>
> > +
> > +/* macro to get at IO space when running virtually */
> > +/*
> > + * Statically mapped addresses:
> > + *
> > + * 10xx xxxx -> fbxx xxxx
> > + * 1exx xxxx -> fdxx xxxx
> > + * 1fxx xxxx -> fexx xxxx
> > + */
> > +#define IO_ADDRESS(x) (((x) & 0x03ffffff) + 0xfb000000)
> > +#define __io_address(n) IOMEM(IO_ADDRESS(n))
> > +
> > +#endif
>
> This is unused, right? Just remove it.
>
> > diff --git a/arch/arm/mach-socfpga/include/mach/irqs.h b/arch/arm/mach-socfpga/include/mach/irqs.h
> > new file mode 100644
> > index 0000000..5e344db
> > --- /dev/null
> > +++ b/arch/arm/mach-socfpga/include/mach/irqs.h
> > @@ -0,0 +1,24 @@
> > +/*
> > + * Copyright (C) 2012 Altera Corporation
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License version 2 as
> > + * published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License
> > + * along with this program. If not, see <http://www.gnu.org/licenses/>.
> > +*/
> > +
> > +#ifndef __MACH_IRQS_H
> > +#define __MACH_IRQS_H
> > +
> > +#define IRQ_SOCFPGA_GIC_START 32
> > +#define IRQ_LOCALWDOG 30
> > +#define MAX_GIC_NR 1
> > +
> > +#endif /* __MACH_IRQS_H */
>
> Same with this. Since you're using sparse IRQ, this file is not even included
> anywhere.
>
> Arnd
>
More information about the linux-arm-kernel
mailing list