-
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.
ARM: shmobile: Initial r8a7790 SoC support
Add initial support for the r8a7790 SoC including: - Single Cortex-A15 CPU Core - GIC - Architecture timer No static virtual mappings are used, all the components make use of ioremap(). DT_MACHINE_START is still wrapped in CONFIG_USE_OF to match other mach-shmobile code. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
- Loading branch information
Magnus Damm
authored and
Simon Horman
committed
Apr 2, 2013
1 parent
60e3a56
commit 0468b2d
Showing
6 changed files
with
181 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/* | ||
* Device Tree Source for the r8a7790 SoC | ||
* | ||
* Copyright (C) 2013 Renesas Solutions Corp. | ||
* | ||
* This file is licensed under the terms of the GNU General Public License | ||
* version 2. This program is licensed "as is" without any warranty of any | ||
* kind, whether express or implied. | ||
*/ | ||
|
||
/include/ "skeleton.dtsi" | ||
|
||
/ { | ||
compatible = "renesas,r8a7790"; | ||
interrupt-parent = <&gic>; | ||
|
||
cpus { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
cpu0: cpu@0 { | ||
device_type = "cpu"; | ||
compatible = "arm,cortex-a15"; | ||
reg = <0>; | ||
clock-frequency = <1300000000>; | ||
}; | ||
}; | ||
|
||
gic: interrupt-controller@f1001000 { | ||
compatible = "arm,cortex-a15-gic"; | ||
#interrupt-cells = <3>; | ||
#address-cells = <0>; | ||
interrupt-controller; | ||
reg = <0xf1001000 0x1000>, | ||
<0xf1002000 0x1000>, | ||
<0xf1004000 0x2000>, | ||
<0xf1006000 0x2000>; | ||
interrupts = <1 9 0xf04>; | ||
|
||
gic-cpuif@4 { | ||
compatible = "arm,gic-cpuif"; | ||
cpuif-id = <4>; | ||
cpu = <&cpu0>; | ||
}; | ||
}; | ||
|
||
timer { | ||
compatible = "arm,armv7-timer"; | ||
interrupts = <1 13 0xf08>, | ||
<1 14 0xf08>, | ||
<1 11 0xf08>, | ||
<1 10 0xf08>; | ||
}; | ||
}; |
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,61 @@ | ||
/* | ||
* r8a7790 clock framework support | ||
* | ||
* Copyright (C) 2013 Renesas Solutions Corp. | ||
* Copyright (C) 2013 Magnus Damm | ||
* | ||
* 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; version 2 of the License. | ||
* | ||
* 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, write to the Free Software | ||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
*/ | ||
#include <linux/init.h> | ||
#include <linux/io.h> | ||
#include <linux/kernel.h> | ||
#include <linux/sh_clk.h> | ||
#include <linux/clkdev.h> | ||
#include <mach/common.h> | ||
|
||
#define CPG_BASE 0xe6150000 | ||
#define CPG_LEN 0x1000 | ||
|
||
static struct clk_mapping cpg_mapping = { | ||
.phys = CPG_BASE, | ||
.len = CPG_LEN, | ||
}; | ||
|
||
static struct clk *main_clks[] = { | ||
}; | ||
|
||
enum { MSTP_NR }; | ||
static struct clk mstp_clks[MSTP_NR] = { | ||
}; | ||
|
||
static struct clk_lookup lookups[] = { | ||
}; | ||
|
||
void __init r8a7790_clock_init(void) | ||
{ | ||
int k, ret = 0; | ||
|
||
for (k = 0; !ret && (k < ARRAY_SIZE(main_clks)); k++) | ||
ret = clk_register(main_clks[k]); | ||
|
||
if (!ret) | ||
ret = sh_clk_mstp_register(mstp_clks, MSTP_NR); | ||
|
||
clkdev_add_table(lookups, ARRAY_SIZE(lookups)); | ||
|
||
if (!ret) | ||
shmobile_clk_init(); | ||
else | ||
panic("failed to setup r8a7790 clocks\n"); | ||
} |
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 @@ | ||
#ifndef __ASM_R8A7790_H__ | ||
#define __ASM_R8A7790_H__ | ||
|
||
void r8a7790_add_standard_devices(void); | ||
void r8a7790_clock_init(void); | ||
|
||
#endif /* __ASM_R8A7790_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,51 @@ | ||
/* | ||
* r8a7790 processor support | ||
* | ||
* Copyright (C) 2013 Renesas Solutions Corp. | ||
* Copyright (C) 2013 Magnus Damm | ||
* | ||
* 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; version 2 of the License. | ||
* | ||
* 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, write to the Free Software | ||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
*/ | ||
|
||
#include <linux/irq.h> | ||
#include <linux/irqchip.h> | ||
#include <linux/kernel.h> | ||
#include <linux/of_platform.h> | ||
#include <mach/common.h> | ||
#include <mach/irqs.h> | ||
#include <mach/r8a7790.h> | ||
#include <asm/mach/arch.h> | ||
|
||
void __init r8a7790_add_standard_devices(void) | ||
{ | ||
} | ||
|
||
#ifdef CONFIG_USE_OF | ||
void __init r8a7790_add_standard_devices_dt(void) | ||
{ | ||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
} | ||
|
||
static const char *r8a7790_boards_compat_dt[] __initdata = { | ||
"renesas,r8a7790", | ||
NULL, | ||
}; | ||
|
||
DT_MACHINE_START(R8A7790_DT, "Generic R8A7790 (Flattened Device Tree)") | ||
.init_irq = irqchip_init, | ||
.init_machine = r8a7790_add_standard_devices_dt, | ||
.init_time = shmobile_timer_init, | ||
.dt_compat = r8a7790_boards_compat_dt, | ||
MACHINE_END | ||
#endif /* CONFIG_USE_OF */ |