[PATCH 1/3] mx51: add support for genesi efikamx nettop
Amit Kucheria
amit.kucheria at linaro.org
Thu Oct 7 06:31:14 EDT 2010
On 10 Oct 07, Uwe Kleine-König wrote:
> On Thu, Oct 07, 2010 at 03:58:12AM +0300, Amit Kucheria wrote:
> > Get serial port working for now
> >
> > Signed-off-by: Amit Kucheria <amit.kucheria at linaro.org>
> > ---
> > arch/arm/mach-mx5/Kconfig | 7 +++
> > arch/arm/mach-mx5/Makefile | 1 +
> > arch/arm/mach-mx5/board-mx51_efikamx.c | 91 ++++++++++++++++++++++++++++++++
> > 3 files changed, 99 insertions(+), 0 deletions(-)
> > create mode 100644 arch/arm/mach-mx5/board-mx51_efikamx.c
> >
> > diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
> > index 3a4c3b3..fad31cc 100644
> > --- a/arch/arm/mach-mx5/Kconfig
> > +++ b/arch/arm/mach-mx5/Kconfig
> > @@ -49,4 +49,11 @@ config MACH_EUKREA_MBIMX51_BASEBOARD
> >
> > endchoice
> >
> > +config MACH_MX51_EFIKAMX
> > + bool "Support MX51 Genesi Efika MX nettop"
> > + select IMX_HAVE_PLATFORM_IMX_UART
> > + help
> > + Include support for Genesi Efika MX nettop. This includes specific
> > + configurations for the board and its peripherals.
> > +
> > endif
> > diff --git a/arch/arm/mach-mx5/Makefile b/arch/arm/mach-mx5/Makefile
> > index 86c66e7..d1aac9c 100644
> > --- a/arch/arm/mach-mx5/Makefile
> > +++ b/arch/arm/mach-mx5/Makefile
> > @@ -9,3 +9,4 @@ obj-$(CONFIG_MACH_MX51_BABBAGE) += board-mx51_babbage.o
> > obj-$(CONFIG_MACH_MX51_3DS) += board-mx51_3ds.o
> > obj-$(CONFIG_MACH_EUKREA_CPUIMX51) += board-cpuimx51.o
> > obj-$(CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD) += eukrea_mbimx51-baseboard.o
> > +obj-$(CONFIG_MACH_MX51_EFIKAMX) += board-mx51_efikamx.o
> > diff --git a/arch/arm/mach-mx5/board-mx51_efikamx.c b/arch/arm/mach-mx5/board-mx51_efikamx.c
> > new file mode 100644
> > index 0000000..4c921fc
> > --- /dev/null
> > +++ b/arch/arm/mach-mx5/board-mx51_efikamx.c
> > @@ -0,0 +1,91 @@
> > +/*
> > + * Copyright (C) 2010 Linaro Limited
> > + *
> > + * based on code from the following
> > + * Copyright 2009-2010 Freescale Semiconductor, Inc. All Rights Reserved.
> > + * Copyright 2009-2010 Pegatron Corporation. All Rights Reserved.
> > + * Copyright 2009-2010 Genesi USA, Inc. All Rights Reserved.
> > + *
> > + * The code contained herein is licensed under the GNU General Public
> > + * License. You may obtain a copy of the GNU General Public License
> > + * Version 2 or later at the following locations:
> IMHO it's better to put the "Version 2 or later" stuff in the first
> sentence. Otherwise it's not entirely clear that GPLv1 should not be
> allowed. That is what is meant here, isn't it?
OK
> > + *
> > + * http://www.opensource.org/licenses/gpl-license.html
> > + * http://www.gnu.org/copyleft/gpl.html
> > + */
> > +
> > +#include <linux/init.h>
> > +#include <linux/platform_device.h>
> > +#include <linux/i2c.h>
> > +#include <linux/gpio.h>
> > +#include <linux/delay.h>
> > +#include <linux/io.h>
> > +#include <linux/fsl_devices.h>
> > +
> > +#include <mach/common.h>
> > +#include <mach/hardware.h>
> > +#include <mach/iomux-mx51.h>
> > +#include <mach/i2c.h>
> > +#include <mach/mxc_ehci.h>
> > +
> > +#include <asm/irq.h>
> > +#include <asm/setup.h>
> > +#include <asm/mach-types.h>
> > +#include <asm/mach/arch.h>
> > +#include <asm/mach/time.h>
> > +
> > +#include "devices-imx51.h"
> > +#include "devices.h"
> > +
> > +static struct pad_desc mx51efikamx_pads[] = {
> > + /* UART1 */
> > + MX51_PAD_UART1_RXD__UART1_RXD,
> > + MX51_PAD_UART1_TXD__UART1_TXD,
> > + MX51_PAD_UART1_RTS__UART1_RTS,
> > + MX51_PAD_UART1_CTS__UART1_CTS,
> > +};
> > +
> > +/* Serial ports */
> > +#if defined(CONFIG_SERIAL_IMX) || defined(CONFIG_SERIAL_IMX_MODULE)
> > +static const struct imxuart_platform_data uart_pdata = {
> __initconst please
OK.
> > + .flags = IMXUART_HAVE_RTSCTS,
> > +};
> > +
> > +static inline void mxc_init_imx_uart(void)
> > +{
> > + imx51_add_imx_uart(0, &uart_pdata);
> > + imx51_add_imx_uart(1, &uart_pdata);
> > + imx51_add_imx_uart(2, &uart_pdata);
> > +}
> > +#else /* !SERIAL_IMX */
> > +static inline void mxc_init_imx_uart(void)
> > +{
> > +}
> > +#endif /* SERIAL_IMX */
> > +
> > +static void __init mxc_board_init(void)
> There are currently 13 functions with this name. While it is no problem
> for the toolchain as all of them are static, it's bad for people
> searching for it's definition and having to figure out which is the
> right one. I admit it's not hard, but still I'd prefer if you'd name it
> (say) mx51_efikamx_board_init.
OK.
> > +{
> > + mxc_iomux_v3_setup_multiple_pads(mx51efikamx_pads,
> > + ARRAY_SIZE(mx51efikamx_pads));
> > + mxc_init_imx_uart();
> > +}
> > +
> > +static void __init mx51_efikamx_timer_init(void)
> > +{
> > + mx51_clocks_init(32768, 24000000, 22579200, 24576000);
> > +}
> > +
> > +static struct sys_timer mxc_timer = {
> > + .init = mx51_efikamx_timer_init,
> > +};
> > +
> > +MACHINE_START(MX51_EFIKAMX, "Genesi EfikaMX nettop")
> > + /* Maintainer: Amit Kucheria <amit.kucheria at linaro.org> */
> > + .phys_io = MX51_AIPS1_BASE_ADDR,
> > + .io_pg_offst = ((MX51_AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
> > + .boot_params = MX51_PHYS_OFFSET + 0x100,
> Do you need this? AFAIK it is only needed if the machine comes with an
> old (or broken) bootloader that fails to pass the address to the atag
> list in r2.
TBH, it is boilerplate code that I cut 'n' pasted. Removed now.
> > + .map_io = mx51_map_io,
> > + .init_irq = mx51_init_irq,
> > + .init_machine = mxc_board_init,
> s/ / /
>
> > + .timer = &mxc_timer,
> > +MACHINE_END
>
> Thanks
> Uwe
>
> --
> Pengutronix e.K. | Uwe Kleine-König |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list