-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MIPS: xilfpga: Add mipsfpga platform code
The xilfpga platform will be DT only. Add required platform code. DT files have already been added separately. Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Cc: robh+dt@kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/11364/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
- Loading branch information
Zubair Lutfullah Kakakhel
authored and
Ralf Baechle
committed
Nov 11, 2015
1 parent
552b8b3
commit 9937f5f
Showing
9 changed files
with
184 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
choice | ||
prompt "Machine type" | ||
depends on MACH_XILFPGA | ||
default XILFPGA_NEXYS4DDR | ||
|
||
config XILFPGA_NEXYS4DDR | ||
bool "Nexys4DDR by Digilent" | ||
|
||
endchoice |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# | ||
# Makefile for the Xilfpga | ||
# | ||
|
||
obj-y += init.o | ||
obj-y += intc.o | ||
obj-y += time.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
/* | ||
* 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); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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> | ||
#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; | ||
|
||
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); | ||
} |