All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Hogan <james.hogan@imgtec.com>
To: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Cc: ralf@linux-mips.org, robh+dt@kernel.org,
	linus.walleij@linaro.org, linux-mips@linux-mips.org,
	linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/5] MIPS: xilfpga: Add mipsfpga platform code
Date: Thu, 15 Oct 2015 09:11:49 +0100	[thread overview]
Message-ID: <20151015081149.GE14475@jhogan-linux.le.imgtec.org> (raw)
In-Reply-To: <1444827117-10939-5-git-send-email-Zubair.Kakakhel@imgtec.com>

[-- Attachment #1: Type: text/plain, Size: 10382 bytes --]

On Wed, Oct 14, 2015 at 01:51:56PM +0100, Zubair Lutfullah Kakakhel wrote:
> The xilfpga platform will be DT only.
> 
> Add required platform code. DT files have already been added separately

Please wrap to 72 characters (keeps it looking pretty in git-log
output), and maybe add a full stop.

> 
> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> ---
>  arch/mips/Kbuild.platforms                |  1 +
>  arch/mips/Kconfig                         | 25 ++++++++++++++
>  arch/mips/include/asm/mach-xilfpga/gpio.h | 19 +++++++++++
>  arch/mips/include/asm/mach-xilfpga/irq.h  | 18 ++++++++++
>  arch/mips/xilfpga/Kconfig                 |  9 +++++
>  arch/mips/xilfpga/Makefile                |  7 ++++
>  arch/mips/xilfpga/Platform                |  3 ++
>  arch/mips/xilfpga/init.c                  | 57 +++++++++++++++++++++++++++++++
>  arch/mips/xilfpga/intc.c                  | 26 ++++++++++++++
>  arch/mips/xilfpga/time.c                  | 41 ++++++++++++++++++++++
>  10 files changed, 206 insertions(+)
>  create mode 100644 arch/mips/include/asm/mach-xilfpga/gpio.h
>  create mode 100644 arch/mips/include/asm/mach-xilfpga/irq.h
>  create mode 100644 arch/mips/xilfpga/Kconfig
>  create mode 100644 arch/mips/xilfpga/Makefile
>  create mode 100644 arch/mips/xilfpga/Platform
>  create mode 100644 arch/mips/xilfpga/init.c
>  create mode 100644 arch/mips/xilfpga/intc.c
>  create mode 100644 arch/mips/xilfpga/time.c
> 
> diff --git a/arch/mips/Kbuild.platforms b/arch/mips/Kbuild.platforms
> index a424e46..a96c81d 100644
> --- a/arch/mips/Kbuild.platforms
> +++ b/arch/mips/Kbuild.platforms
> @@ -33,6 +33,7 @@ platforms += sibyte
>  platforms += sni
>  platforms += txx9
>  platforms += vr41xx
> +platforms += xilfpga
>  
>  # include the platform specific files
>  include $(patsubst %, $(srctree)/arch/mips/%/Platform, $(platforms))
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index e3aa5b0..66c1a7e 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -401,6 +401,30 @@ config MACH_PISTACHIO
>  	help
>  	  This enables support for the IMG Pistachio SoC platform.
>  
> +config MACH_XILFPGA
> +	bool "MIPSFPGA Xilinx based boards"
> +	select ARCH_REQUIRE_GPIOLIB
> +	select BOOT_ELF32
> +	select BOOT_RAW
> +	select BUILTIN_DTB
> +	select CEVT_R4K
> +	select COMMON_CLK
> +	select CSRC_R4K
> +	select IRQ_MIPS_CPU
> +	select LIBFDT
> +	select MIPS_CPU_SCACHE
> +	select SERIAL_8250
> +	select SERIAL_8250_CONSOLE

Is it really necessary to select SERIAL_8250[_CONSOLE]? Its something
that I think belongs in the defconfig rather than as a strict
requirement to enable the platform.

> +	select SYS_HAS_EARLY_PRINTK
> +	select SYS_HAS_CPU_MIPS32_R2
> +	select SYS_SUPPORTS_32BIT_KERNEL
> +	select SYS_SUPPORTS_LITTLE_ENDIAN
> +	select SYS_SUPPORTS_ZBOOT_UART16550
> +	select USE_OF
> +	select USE_GENERIC_EARLY_PRINTK_8250
> +	help
> +	  This enables support for the Xilinx

Is some description missing here?

> +
>  config MIPS_MALTA
>  	bool "MIPS Malta board"
>  	select ARCH_MAY_HAVE_PC_FDC
> @@ -964,6 +988,7 @@ source "arch/mips/loongson32/Kconfig"
>  source "arch/mips/loongson64/Kconfig"
>  source "arch/mips/netlogic/Kconfig"
>  source "arch/mips/paravirt/Kconfig"
> +source "arch/mips/xilfpga/Kconfig"
>  
>  endmenu
>  
> diff --git a/arch/mips/include/asm/mach-xilfpga/gpio.h b/arch/mips/include/asm/mach-xilfpga/gpio.h
> new file mode 100644
> index 0000000..26778fc
> --- /dev/null
> +++ b/arch/mips/include/asm/mach-xilfpga/gpio.h
> @@ -0,0 +1,19 @@
> +/*
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.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.
> + */
> +
> +#ifndef __ASM_MACH_XILFPGA_GPIO_H
> +#define __ASM_MACH_XILFPGA_GPIO_H
> +
> +#include <asm-generic/gpio.h>
> +
> +#define gpio_get_value __gpio_get_value
> +#define gpio_set_value __gpio_set_value
> +
> +#endif /* __ASM_MACH_XILFPGA_GPIO_H */
> diff --git a/arch/mips/include/asm/mach-xilfpga/irq.h b/arch/mips/include/asm/mach-xilfpga/irq.h
> new file mode 100644
> index 0000000..0132a5b9
> --- /dev/null
> +++ b/arch/mips/include/asm/mach-xilfpga/irq.h
> @@ -0,0 +1,18 @@
> +/*
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.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.
> + */
> +
> +#ifndef __MIPS_ASM_MACH_XILFPGA_IRQ_H__
> +#define __MIPS_ASM_MACH_XILFPGA_IRQ_H__
> +
> +#define NR_IRQS 32
> +
> +#include_next <irq.h>
> +
> +#endif /* __MIPS_ASM_MACH_XILFPGA_IRQ_H__ */
> diff --git a/arch/mips/xilfpga/Kconfig b/arch/mips/xilfpga/Kconfig
> new file mode 100644
> index 0000000..42a030a
> --- /dev/null
> +++ b/arch/mips/xilfpga/Kconfig
> @@ -0,0 +1,9 @@
> +choice
> +	prompt "Machine type"
> +	depends on MACH_XILFPGA
> +	default XILFPGA_NEXYS4DDR
> +
> +config XILFPGA_NEXYS4DDR
> +	bool "Nexys4DDR by Digilent"
> +
> +endchoice
> diff --git a/arch/mips/xilfpga/Makefile b/arch/mips/xilfpga/Makefile
> new file mode 100644
> index 0000000..2385aa7
> --- /dev/null
> +++ b/arch/mips/xilfpga/Makefile
> @@ -0,0 +1,7 @@
> +#
> +# Makefile for the Xilfpga
> +#
> +
> +obj-y +=	init.o \
> +		intc.o \
> +		time.o

Can I suggest instead doing this:
obj-y +=	init.o
obj-y +=	intc.o
obj-y +=	time.o

> diff --git a/arch/mips/xilfpga/Platform b/arch/mips/xilfpga/Platform
> new file mode 100644
> index 0000000..ed375af
> --- /dev/null
> +++ b/arch/mips/xilfpga/Platform
> @@ -0,0 +1,3 @@
> +platform-$(CONFIG_MACH_XILFPGA) += xilfpga/
> +cflags-$(CONFIG_MACH_XILFPGA) += -I$(srctree)/arch/mips/include/asm/mach-xilfpga
> +load-$(CONFIG_MACH_XILFPGA) += 0xffffffff80100000
> diff --git a/arch/mips/xilfpga/init.c b/arch/mips/xilfpga/init.c
> new file mode 100644
> index 0000000..5348af8
> --- /dev/null
> +++ b/arch/mips/xilfpga/init.c
> @@ -0,0 +1,57 @@
> +/*
> + * Xilfpga platform setup
> + *
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/of_fdt.h>
> +#include <linux/of_platform.h>
> +
> +#include <asm/prom.h>
> +
> +#define XILFPGA_UART_BASE	0xb0401000
> +
> +const char *get_system_type(void)
> +{
> +	return "MIPSFpga";
> +}
> +
> +void __init plat_mem_setup(void)
> +{
> +	__dt_setup_arch(__dtb_start);
> +	strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
> +}
> +
> +void __init prom_init(void)
> +{
> +	setup_8250_early_printk_port(XILFPGA_UART_BASE, 2, 50000);
> +}
> +
> +void __init prom_free_prom_memory(void)
> +{
> +}
> +
> +void __init device_tree_init(void)
> +{
> +	if (!initial_boot_params)
> +		return;
> +
> +	unflatten_and_copy_device_tree();
> +}
> +
> +static int __init plat_of_setup(void)
> +{
> +	if (!of_have_populated_dt())
> +		panic("Device tree not present");
> +
> +	if (of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL))
> +		panic("Failed to populate DT");
> +
> +	return 0;
> +}
> +arch_initcall(plat_of_setup);
> diff --git a/arch/mips/xilfpga/intc.c b/arch/mips/xilfpga/intc.c
> new file mode 100644
> index 0000000..919eb97
> --- /dev/null
> +++ b/arch/mips/xilfpga/intc.c
> @@ -0,0 +1,26 @@
> +/*
> + * Xilfpga interrupt controller setup
> + *
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/of.h>
> +#include <linux/of_irq.h>
> +
> +#include <asm/irq_cpu.h>
> +
> +static struct of_device_id of_irq_ids[] __initdata = {
> +	{ .compatible = "mti,cpu-interrupt-controller", .data = mips_cpu_irq_of_init },
> +	{},
> +};
> +
> +void __init arch_init_irq(void)
> +{
> +	of_irq_init(of_irq_ids);
> +}
> +

no need for extra newline at end of file.

> diff --git a/arch/mips/xilfpga/time.c b/arch/mips/xilfpga/time.c
> new file mode 100644
> index 0000000..3f2e39e
> --- /dev/null
> +++ b/arch/mips/xilfpga/time.c
> @@ -0,0 +1,41 @@
> +/*
> + * Xilfpga clocksource/timer setup
> + *
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clk-provider.h>

You don't appear to be providing any clocks, so do you actually need
that include?

> +#include <linux/clocksource.h>
> +#include <linux/of.h>
> +
> +#include <asm/time.h>
> +
> +void __init plat_time_init(void)
> +{
> +	struct device_node *np;
> +	struct clk *clk = 0;

No need to initialise to 0 since you always set before use (and this is
C, so NULL is better than 0 anyway).

Cheers
James

> +
> +	of_clk_init(NULL);
> +	clocksource_of_init();
> +
> +	np = of_get_cpu_node(0, NULL);
> +	if (!np) {
> +		pr_err("Failed to get CPU node\n");
> +		return;
> +	}
> +
> +	clk = of_clk_get(np, 0);
> +	if (IS_ERR(clk)) {
> +		pr_err("Failed to get CPU clock: %ld\n", PTR_ERR(clk));
> +		return;
> +	}
> +
> +	mips_hpt_frequency = clk_get_rate(clk) / 2;
> +	clk_put(clk);
> +}
> -- 
> 1.9.1
> 
> 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: James Hogan <james.hogan@imgtec.com>
To: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Cc: <ralf@linux-mips.org>, <robh+dt@kernel.org>,
	<linus.walleij@linaro.org>, <linux-mips@linux-mips.org>,
	<linux-gpio@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/5] MIPS: xilfpga: Add mipsfpga platform code
Date: Thu, 15 Oct 2015 09:11:49 +0100	[thread overview]
Message-ID: <20151015081149.GE14475@jhogan-linux.le.imgtec.org> (raw)
In-Reply-To: <1444827117-10939-5-git-send-email-Zubair.Kakakhel@imgtec.com>

[-- Attachment #1: Type: text/plain, Size: 10382 bytes --]

On Wed, Oct 14, 2015 at 01:51:56PM +0100, Zubair Lutfullah Kakakhel wrote:
> The xilfpga platform will be DT only.
> 
> Add required platform code. DT files have already been added separately

Please wrap to 72 characters (keeps it looking pretty in git-log
output), and maybe add a full stop.

> 
> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> ---
>  arch/mips/Kbuild.platforms                |  1 +
>  arch/mips/Kconfig                         | 25 ++++++++++++++
>  arch/mips/include/asm/mach-xilfpga/gpio.h | 19 +++++++++++
>  arch/mips/include/asm/mach-xilfpga/irq.h  | 18 ++++++++++
>  arch/mips/xilfpga/Kconfig                 |  9 +++++
>  arch/mips/xilfpga/Makefile                |  7 ++++
>  arch/mips/xilfpga/Platform                |  3 ++
>  arch/mips/xilfpga/init.c                  | 57 +++++++++++++++++++++++++++++++
>  arch/mips/xilfpga/intc.c                  | 26 ++++++++++++++
>  arch/mips/xilfpga/time.c                  | 41 ++++++++++++++++++++++
>  10 files changed, 206 insertions(+)
>  create mode 100644 arch/mips/include/asm/mach-xilfpga/gpio.h
>  create mode 100644 arch/mips/include/asm/mach-xilfpga/irq.h
>  create mode 100644 arch/mips/xilfpga/Kconfig
>  create mode 100644 arch/mips/xilfpga/Makefile
>  create mode 100644 arch/mips/xilfpga/Platform
>  create mode 100644 arch/mips/xilfpga/init.c
>  create mode 100644 arch/mips/xilfpga/intc.c
>  create mode 100644 arch/mips/xilfpga/time.c
> 
> diff --git a/arch/mips/Kbuild.platforms b/arch/mips/Kbuild.platforms
> index a424e46..a96c81d 100644
> --- a/arch/mips/Kbuild.platforms
> +++ b/arch/mips/Kbuild.platforms
> @@ -33,6 +33,7 @@ platforms += sibyte
>  platforms += sni
>  platforms += txx9
>  platforms += vr41xx
> +platforms += xilfpga
>  
>  # include the platform specific files
>  include $(patsubst %, $(srctree)/arch/mips/%/Platform, $(platforms))
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index e3aa5b0..66c1a7e 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -401,6 +401,30 @@ config MACH_PISTACHIO
>  	help
>  	  This enables support for the IMG Pistachio SoC platform.
>  
> +config MACH_XILFPGA
> +	bool "MIPSFPGA Xilinx based boards"
> +	select ARCH_REQUIRE_GPIOLIB
> +	select BOOT_ELF32
> +	select BOOT_RAW
> +	select BUILTIN_DTB
> +	select CEVT_R4K
> +	select COMMON_CLK
> +	select CSRC_R4K
> +	select IRQ_MIPS_CPU
> +	select LIBFDT
> +	select MIPS_CPU_SCACHE
> +	select SERIAL_8250
> +	select SERIAL_8250_CONSOLE

Is it really necessary to select SERIAL_8250[_CONSOLE]? Its something
that I think belongs in the defconfig rather than as a strict
requirement to enable the platform.

> +	select SYS_HAS_EARLY_PRINTK
> +	select SYS_HAS_CPU_MIPS32_R2
> +	select SYS_SUPPORTS_32BIT_KERNEL
> +	select SYS_SUPPORTS_LITTLE_ENDIAN
> +	select SYS_SUPPORTS_ZBOOT_UART16550
> +	select USE_OF
> +	select USE_GENERIC_EARLY_PRINTK_8250
> +	help
> +	  This enables support for the Xilinx

Is some description missing here?

> +
>  config MIPS_MALTA
>  	bool "MIPS Malta board"
>  	select ARCH_MAY_HAVE_PC_FDC
> @@ -964,6 +988,7 @@ source "arch/mips/loongson32/Kconfig"
>  source "arch/mips/loongson64/Kconfig"
>  source "arch/mips/netlogic/Kconfig"
>  source "arch/mips/paravirt/Kconfig"
> +source "arch/mips/xilfpga/Kconfig"
>  
>  endmenu
>  
> diff --git a/arch/mips/include/asm/mach-xilfpga/gpio.h b/arch/mips/include/asm/mach-xilfpga/gpio.h
> new file mode 100644
> index 0000000..26778fc
> --- /dev/null
> +++ b/arch/mips/include/asm/mach-xilfpga/gpio.h
> @@ -0,0 +1,19 @@
> +/*
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.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.
> + */
> +
> +#ifndef __ASM_MACH_XILFPGA_GPIO_H
> +#define __ASM_MACH_XILFPGA_GPIO_H
> +
> +#include <asm-generic/gpio.h>
> +
> +#define gpio_get_value __gpio_get_value
> +#define gpio_set_value __gpio_set_value
> +
> +#endif /* __ASM_MACH_XILFPGA_GPIO_H */
> diff --git a/arch/mips/include/asm/mach-xilfpga/irq.h b/arch/mips/include/asm/mach-xilfpga/irq.h
> new file mode 100644
> index 0000000..0132a5b9
> --- /dev/null
> +++ b/arch/mips/include/asm/mach-xilfpga/irq.h
> @@ -0,0 +1,18 @@
> +/*
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.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.
> + */
> +
> +#ifndef __MIPS_ASM_MACH_XILFPGA_IRQ_H__
> +#define __MIPS_ASM_MACH_XILFPGA_IRQ_H__
> +
> +#define NR_IRQS 32
> +
> +#include_next <irq.h>
> +
> +#endif /* __MIPS_ASM_MACH_XILFPGA_IRQ_H__ */
> diff --git a/arch/mips/xilfpga/Kconfig b/arch/mips/xilfpga/Kconfig
> new file mode 100644
> index 0000000..42a030a
> --- /dev/null
> +++ b/arch/mips/xilfpga/Kconfig
> @@ -0,0 +1,9 @@
> +choice
> +	prompt "Machine type"
> +	depends on MACH_XILFPGA
> +	default XILFPGA_NEXYS4DDR
> +
> +config XILFPGA_NEXYS4DDR
> +	bool "Nexys4DDR by Digilent"
> +
> +endchoice
> diff --git a/arch/mips/xilfpga/Makefile b/arch/mips/xilfpga/Makefile
> new file mode 100644
> index 0000000..2385aa7
> --- /dev/null
> +++ b/arch/mips/xilfpga/Makefile
> @@ -0,0 +1,7 @@
> +#
> +# Makefile for the Xilfpga
> +#
> +
> +obj-y +=	init.o \
> +		intc.o \
> +		time.o

Can I suggest instead doing this:
obj-y +=	init.o
obj-y +=	intc.o
obj-y +=	time.o

> diff --git a/arch/mips/xilfpga/Platform b/arch/mips/xilfpga/Platform
> new file mode 100644
> index 0000000..ed375af
> --- /dev/null
> +++ b/arch/mips/xilfpga/Platform
> @@ -0,0 +1,3 @@
> +platform-$(CONFIG_MACH_XILFPGA) += xilfpga/
> +cflags-$(CONFIG_MACH_XILFPGA) += -I$(srctree)/arch/mips/include/asm/mach-xilfpga
> +load-$(CONFIG_MACH_XILFPGA) += 0xffffffff80100000
> diff --git a/arch/mips/xilfpga/init.c b/arch/mips/xilfpga/init.c
> new file mode 100644
> index 0000000..5348af8
> --- /dev/null
> +++ b/arch/mips/xilfpga/init.c
> @@ -0,0 +1,57 @@
> +/*
> + * Xilfpga platform setup
> + *
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/of_fdt.h>
> +#include <linux/of_platform.h>
> +
> +#include <asm/prom.h>
> +
> +#define XILFPGA_UART_BASE	0xb0401000
> +
> +const char *get_system_type(void)
> +{
> +	return "MIPSFpga";
> +}
> +
> +void __init plat_mem_setup(void)
> +{
> +	__dt_setup_arch(__dtb_start);
> +	strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
> +}
> +
> +void __init prom_init(void)
> +{
> +	setup_8250_early_printk_port(XILFPGA_UART_BASE, 2, 50000);
> +}
> +
> +void __init prom_free_prom_memory(void)
> +{
> +}
> +
> +void __init device_tree_init(void)
> +{
> +	if (!initial_boot_params)
> +		return;
> +
> +	unflatten_and_copy_device_tree();
> +}
> +
> +static int __init plat_of_setup(void)
> +{
> +	if (!of_have_populated_dt())
> +		panic("Device tree not present");
> +
> +	if (of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL))
> +		panic("Failed to populate DT");
> +
> +	return 0;
> +}
> +arch_initcall(plat_of_setup);
> diff --git a/arch/mips/xilfpga/intc.c b/arch/mips/xilfpga/intc.c
> new file mode 100644
> index 0000000..919eb97
> --- /dev/null
> +++ b/arch/mips/xilfpga/intc.c
> @@ -0,0 +1,26 @@
> +/*
> + * Xilfpga interrupt controller setup
> + *
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/of.h>
> +#include <linux/of_irq.h>
> +
> +#include <asm/irq_cpu.h>
> +
> +static struct of_device_id of_irq_ids[] __initdata = {
> +	{ .compatible = "mti,cpu-interrupt-controller", .data = mips_cpu_irq_of_init },
> +	{},
> +};
> +
> +void __init arch_init_irq(void)
> +{
> +	of_irq_init(of_irq_ids);
> +}
> +

no need for extra newline at end of file.

> diff --git a/arch/mips/xilfpga/time.c b/arch/mips/xilfpga/time.c
> new file mode 100644
> index 0000000..3f2e39e
> --- /dev/null
> +++ b/arch/mips/xilfpga/time.c
> @@ -0,0 +1,41 @@
> +/*
> + * Xilfpga clocksource/timer setup
> + *
> + * Copyright (C) 2015 Imagination Technologies
> + * Author: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms and conditions of the GNU General Public License,
> + * version 2, as published by the Free Software Foundation.
> + */
> +
> +#include <linux/clk.h>
> +#include <linux/clk-provider.h>

You don't appear to be providing any clocks, so do you actually need
that include?

> +#include <linux/clocksource.h>
> +#include <linux/of.h>
> +
> +#include <asm/time.h>
> +
> +void __init plat_time_init(void)
> +{
> +	struct device_node *np;
> +	struct clk *clk = 0;

No need to initialise to 0 since you always set before use (and this is
C, so NULL is better than 0 anyway).

Cheers
James

> +
> +	of_clk_init(NULL);
> +	clocksource_of_init();
> +
> +	np = of_get_cpu_node(0, NULL);
> +	if (!np) {
> +		pr_err("Failed to get CPU node\n");
> +		return;
> +	}
> +
> +	clk = of_clk_get(np, 0);
> +	if (IS_ERR(clk)) {
> +		pr_err("Failed to get CPU clock: %ld\n", PTR_ERR(clk));
> +		return;
> +	}
> +
> +	mips_hpt_frequency = clk_get_rate(clk) / 2;
> +	clk_put(clk);
> +}
> -- 
> 1.9.1
> 
> 

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2015-10-15  8:11 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-14 12:51 [PATCH 0/5] MIPS: Add Xilfpga platform Zubair Lutfullah Kakakhel
2015-10-14 12:51 ` Zubair Lutfullah Kakakhel
     [not found] ` <1444827117-10939-1-git-send-email-Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-10-14 12:51   ` [PATCH 1/5] dt-bindings: MIPS: Document xilfpga bindings and boot style Zubair Lutfullah Kakakhel
2015-10-14 12:51     ` Zubair Lutfullah Kakakhel
2015-10-14 12:51     ` Zubair Lutfullah Kakakhel
2015-10-15  7:22     ` James Hogan
2015-10-15  7:22       ` James Hogan
2015-10-18 16:47     ` Moritz Fischer
2015-10-14 12:51 ` [PATCH 2/5] gpio/xilinx: enable for MIPS Zubair Lutfullah Kakakhel
2015-10-14 12:51   ` Zubair Lutfullah Kakakhel
2015-10-14 15:18   ` Sören Brinkmann
2015-10-14 15:18     ` Sören Brinkmann
2015-10-14 15:57     ` Lars-Peter Clausen
2015-10-14 16:54       ` Sören Brinkmann
2015-10-14 16:54         ` Sören Brinkmann
2015-10-14 17:24         ` Lars-Peter Clausen
2015-10-14 17:24           ` Lars-Peter Clausen
2015-10-14 17:33           ` Sören Brinkmann
2015-10-14 17:33             ` Sören Brinkmann
2015-10-14 18:22             ` Moritz Fischer
2015-10-14 18:22               ` Moritz Fischer
2015-10-19  6:55       ` Linus Walleij
2015-10-19  6:53   ` Linus Walleij
2015-10-14 12:51 ` [PATCH 3/5] MIPS: dt: xilfpga: Add xilfpga device tree files Zubair Lutfullah Kakakhel
2015-10-14 12:51   ` Zubair Lutfullah Kakakhel
     [not found]   ` <1444827117-10939-4-git-send-email-Zubair.Kakakhel-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-10-15  7:45     ` James Hogan
2015-10-15  7:45       ` James Hogan
2015-10-15  7:45       ` James Hogan
2015-10-14 12:51 ` [PATCH 4/5] MIPS: xilfpga: Add mipsfpga platform code Zubair Lutfullah Kakakhel
2015-10-14 12:51   ` Zubair Lutfullah Kakakhel
2015-10-15  8:11   ` James Hogan [this message]
2015-10-15  8:11     ` James Hogan
2015-10-21 14:35   ` Alban
2015-10-21 14:35     ` Alban
2015-10-14 12:51 ` [PATCH 5/5] MIPS: Add xilfpga defconfig Zubair Lutfullah Kakakhel
2015-10-14 12:51   ` Zubair Lutfullah Kakakhel
2015-10-15  8:34   ` James Hogan
2015-10-15  8:34     ` James Hogan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151015081149.GE14475@jhogan-linux.le.imgtec.org \
    --to=james.hogan@imgtec.com \
    --cc=Zubair.Kakakhel@imgtec.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.