mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle: "These are the highlists of the main MIPS pull request for 4.4: - Add latencytop support - Support appended DTBs - VDSO support and initially use it for gettimeofday. - Drop the .MIPS.abiflags and ELF NOTE sections from vmlinux - Support for the 5KE, an internal test core. - Switch all MIPS platfroms to libata drivers. - Improved support, cleanups for ralink and Lantiq platforms. - Support for the new xilfpga platform. - A number of DTB improvments for BMIPS. - Improved support for CM and CPS. - Minor JZ4740 and BCM47xx enhancements" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (120 commits) MIPS: idle: add case for CPU_5KE MIPS: Octeon: Support APPENDED_DTB MIPS: vmlinux: create a section for appended DTB MIPS: Clean up compat_siginfo_t MIPS: Fix PAGE_MASK definition MIPS: BMIPS: Enable GZIP ramdisk and timed printks MIPS: Add xilfpga defconfig MIPS: xilfpga: Add mipsfpga platform code MIPS: xilfpga: Add xilfpga device tree files. dt-bindings: MIPS: Document xilfpga bindings and boot style MIPS: Make MIPS_CMDLINE_DTB default MIPS: Make the kernel arguments from dtb available MIPS: Use USE_OF as the guard for appended dtb MIPS: BCM63XX: Use pr_* instead of printk MIPS: Loongson: Cleanup CONFIG_LOONGSON_SUSPEND. MIPS: lantiq: Disable xbar fpi burst mode MIPS: lantiq: Force the crossbar to big endian MIPS: lantiq: Initialize the USB core on boot MIPS: lantiq: Return correct value for fpi clock on ar9 MIPS: ralink: Add missing clock on rt305x ...
This commit is contained in:
commit
b84da9fa47
151 changed files with 4596 additions and 755 deletions
9
arch/mips/xilfpga/Kconfig
Normal file
9
arch/mips/xilfpga/Kconfig
Normal file
|
@ -0,0 +1,9 @@
|
|||
choice
|
||||
prompt "Machine type"
|
||||
depends on MACH_XILFPGA
|
||||
default XILFPGA_NEXYS4DDR
|
||||
|
||||
config XILFPGA_NEXYS4DDR
|
||||
bool "Nexys4DDR by Digilent"
|
||||
|
||||
endchoice
|
7
arch/mips/xilfpga/Makefile
Normal file
7
arch/mips/xilfpga/Makefile
Normal file
|
@ -0,0 +1,7 @@
|
|||
#
|
||||
# Makefile for the Xilfpga
|
||||
#
|
||||
|
||||
obj-y += init.o
|
||||
obj-y += intc.o
|
||||
obj-y += time.o
|
3
arch/mips/xilfpga/Platform
Normal file
3
arch/mips/xilfpga/Platform
Normal file
|
@ -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
|
57
arch/mips/xilfpga/init.c
Normal file
57
arch/mips/xilfpga/init.c
Normal file
|
@ -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);
|
25
arch/mips/xilfpga/intc.c
Normal file
25
arch/mips/xilfpga/intc.c
Normal file
|
@ -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);
|
||||
}
|
41
arch/mips/xilfpga/time.c
Normal file
41
arch/mips/xilfpga/time.c
Normal file
|
@ -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_probe();
|
||||
|
||||
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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue