mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-05 09:29:05 +07:00
Merge branch 'dt2' into cleanup3-base
Conflicts: arch/arm/mach-shmobile/Makefile.boot
This commit is contained in:
commit
4e0f3fcfe2
@ -186,12 +186,16 @@ dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
|
||||
emev2-kzm9d-reference.dtb \
|
||||
r8a7740-armadillo800eva.dtb \
|
||||
r8a7778-bockw.dtb \
|
||||
r8a7778-bockw-reference.dtb \
|
||||
r8a7740-armadillo800eva-reference.dtb \
|
||||
r8a7779-marzen.dtb \
|
||||
r8a7779-marzen-reference.dtb \
|
||||
r8a7790-lager.dtb \
|
||||
r8a7790-lager-reference.dtb \
|
||||
sh73a0-kzm9g.dtb \
|
||||
sh73a0-kzm9g-reference.dtb \
|
||||
r8a73a4-ape6evm.dtb \
|
||||
r8a73a4-ape6evm-reference.dtb \
|
||||
sh7372-mackerel.dtb
|
||||
dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \
|
||||
socfpga_vt.dtb
|
||||
|
@ -46,6 +46,12 @@ gic: interrupt-controller@e0020000 {
|
||||
<0xe0020000 0x0100>;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts = <0 120 4>,
|
||||
<0 121 4>;
|
||||
};
|
||||
|
||||
sti@e0180000 {
|
||||
compatible = "renesas,em-sti";
|
||||
reg = <0xe0180000 0x54>;
|
||||
|
65
arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
Normal file
65
arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Device Tree Source for the APE6EVM board
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "r8a73a4.dtsi"
|
||||
|
||||
/ {
|
||||
model = "APE6EVM";
|
||||
compatible = "renesas,ape6evm-reference", "renesas,r8a73a4";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC0,115200 ignore_loglevel rw";
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
device_type = "memory";
|
||||
reg = <0 0x40000000 0 0x40000000>;
|
||||
};
|
||||
|
||||
lbsc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0 0 0x80000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c5 {
|
||||
vdd_dvfs: max8973@1b {
|
||||
compatible = "maxim,max8973";
|
||||
reg = <0x1b>;
|
||||
|
||||
regulator-min-microvolt = <935000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
cpu0-supply = <&vdd_dvfs>;
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
1950000 1115000
|
||||
1462500 995000
|
||||
>;
|
||||
voltage-tolerance = <1>; /* 1% */
|
||||
};
|
||||
|
||||
&pfc {
|
||||
pinctrl-0 = <&scifa0_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
scifa0_pins: scifa0 {
|
||||
renesas,groups = "scifa0_data";
|
||||
renesas,function = "scifa0";
|
||||
};
|
||||
};
|
@ -16,7 +16,7 @@ / {
|
||||
compatible = "renesas,ape6evm", "renesas,r8a73a4";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp";
|
||||
bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw";
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
|
@ -32,6 +32,11 @@ gic: interrupt-controller@c2800000 {
|
||||
<0xc2000000 0x1000>;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts = <0 83 4>;
|
||||
};
|
||||
|
||||
/* irqpin0: IRQ0 - IRQ7 */
|
||||
irqpin0: irqpin@e6900000 {
|
||||
compatible = "renesas,intc-irqpin";
|
||||
@ -139,4 +144,11 @@ i2c1: i2c@e6c20000 {
|
||||
0 72 0x4
|
||||
0 73 0x4>;
|
||||
};
|
||||
|
||||
tpu: pwm@e6600000 {
|
||||
compatible = "renesas,tpu-r8a7740", "renesas,tpu";
|
||||
reg = <0xe6600000 0x100>;
|
||||
status = "disabled";
|
||||
#pwm-cells = <3>;
|
||||
};
|
||||
};
|
||||
|
32
arch/arm/boot/dts/r8a7778-bockw-reference.dts
Normal file
32
arch/arm/boot/dts/r8a7778-bockw-reference.dts
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Reference Device Tree Source for the Bock-W board
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Solutions Corp.
|
||||
* Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
*
|
||||
* based on r8a7779
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Solutions Corp.
|
||||
* Copyright (C) 2013 Simon Horman
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "r8a7778.dtsi"
|
||||
|
||||
/ {
|
||||
model = "bockw";
|
||||
compatible = "renesas,bockw-reference", "renesas,r8a7778";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC0,115200 ignore_loglevel rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x60000000 0x10000000>;
|
||||
};
|
||||
};
|
@ -22,7 +22,7 @@ / {
|
||||
compatible = "renesas,bockw", "renesas,r8a7778";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC0,115200 ignore_loglevel ip=dhcp root=/dev/nfs";
|
||||
bootargs = "console=ttySC0,115200 ignore_loglevel ip=dhcp root=/dev/nfs rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -17,7 +17,7 @@ / {
|
||||
compatible = "renesas,marzen-reference", "renesas,r8a7779";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on";
|
||||
bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
27
arch/arm/boot/dts/r8a7779-marzen.dts
Normal file
27
arch/arm/boot/dts/r8a7779-marzen.dts
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Device Tree Source for the Marzen board
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Solutions Corp.
|
||||
* Copyright (C) 2013 Simon Horman
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "r8a7779.dtsi"
|
||||
|
||||
/ {
|
||||
model = "marzen";
|
||||
compatible = "renesas,marzen", "renesas,r8a7779";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x60000000 0x40000000>;
|
||||
};
|
||||
};
|
45
arch/arm/boot/dts/r8a7790-lager-reference.dts
Normal file
45
arch/arm/boot/dts/r8a7790-lager-reference.dts
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Device Tree Source for the Lager board
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "r8a7790.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "Lager";
|
||||
compatible = "renesas,lager-reference", "renesas,r8a7790";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC6,115200 ignore_loglevel rw";
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
device_type = "memory";
|
||||
reg = <0 0x40000000 0 0x80000000>;
|
||||
};
|
||||
|
||||
lbsc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
led6 {
|
||||
gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
led7 {
|
||||
gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
led8 {
|
||||
gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
@ -16,7 +16,7 @@ / {
|
||||
compatible = "renesas,lager", "renesas,r8a7790";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC6,115200 ignore_loglevel";
|
||||
bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
|
@ -32,7 +32,7 @@ cpu@0 {
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
|
||||
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200 rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -16,7 +16,7 @@ / {
|
||||
compatible = "renesas,kzm9g", "renesas,sh73a0";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
|
||||
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200 rw";
|
||||
};
|
||||
|
||||
memory {
|
||||
|
@ -38,6 +38,12 @@ gic: interrupt-controller@f0001000 {
|
||||
<0xf0000100 0x100>;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,cortex-a9-pmu";
|
||||
interrupts = <0 55 4>,
|
||||
<0 56 4>;
|
||||
};
|
||||
|
||||
irqpin0: irqpin@e6900000 {
|
||||
compatible = "renesas,intc-irqpin";
|
||||
#interrupt-cells = <2>;
|
||||
|
@ -76,6 +76,17 @@ config MACH_APE6EVM
|
||||
depends on ARCH_R8A73A4
|
||||
select USE_OF
|
||||
|
||||
config MACH_APE6EVM_REFERENCE
|
||||
bool "APE6EVM board - Reference Device Tree Implementation"
|
||||
depends on ARCH_R8A73A4
|
||||
select USE_OF
|
||||
---help---
|
||||
Use reference implementation of APE6EVM board support
|
||||
which makes a greater use of device tree at the expense
|
||||
of not supporting a number of devices.
|
||||
|
||||
This is intended to aid developers
|
||||
|
||||
config MACH_MACKEREL
|
||||
bool "mackerel board"
|
||||
depends on ARCH_SH7372
|
||||
@ -113,11 +124,26 @@ config MACH_BOCKW
|
||||
select RENESAS_INTC_IRQPIN
|
||||
select USE_OF
|
||||
|
||||
config MACH_BOCKW_REFERENCE
|
||||
bool "BOCK-W - Reference Device Tree Implementation"
|
||||
depends on ARCH_R8A7778
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select RENESAS_INTC_IRQPIN
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
select USE_OF
|
||||
---help---
|
||||
Use reference implementation of BockW board support
|
||||
which makes use of device tree at the expense
|
||||
of not supporting a number of devices.
|
||||
|
||||
This is intended to aid developers
|
||||
|
||||
config MACH_MARZEN
|
||||
bool "MARZEN board"
|
||||
depends on ARCH_R8A7779
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
select USE_OF
|
||||
|
||||
config MACH_MARZEN_REFERENCE
|
||||
bool "MARZEN board - Reference Device Tree Implementation"
|
||||
@ -137,6 +163,17 @@ config MACH_LAGER
|
||||
depends on ARCH_R8A7790
|
||||
select USE_OF
|
||||
|
||||
config MACH_LAGER_REFERENCE
|
||||
bool "Lager board - Reference Device Tree Implementation"
|
||||
depends on ARCH_R8A7790
|
||||
select USE_OF
|
||||
---help---
|
||||
Use reference implementation of Lager board support
|
||||
which makes use of device tree at the expense
|
||||
of not supporting a number of devices.
|
||||
|
||||
This is intended to aid developers
|
||||
|
||||
config MACH_KZM9D
|
||||
bool "KZM9D board"
|
||||
depends on ARCH_EMEV2
|
||||
|
@ -34,11 +34,14 @@ obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o
|
||||
|
||||
# Board objects
|
||||
obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o
|
||||
obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o
|
||||
obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o
|
||||
obj-$(CONFIG_MACH_BOCKW) += board-bockw.o
|
||||
obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o
|
||||
obj-$(CONFIG_MACH_MARZEN) += board-marzen.o
|
||||
obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o
|
||||
obj-$(CONFIG_MACH_LAGER) += board-lager.o
|
||||
obj-$(CONFIG_MACH_LAGER_REFERENCE) += board-lager-reference.o
|
||||
obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o
|
||||
obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o
|
||||
obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o
|
||||
|
@ -1,14 +1,17 @@
|
||||
# per-board load address for uImage
|
||||
loadaddr-y :=
|
||||
loadaddr-$(CONFIG_MACH_APE6EVM) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_APE6EVM_REFERENCE) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_ARMADILLO800EVA) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
|
||||
loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000
|
||||
loadaddr-$(CONFIG_MACH_KZM9D) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_KZM9D_REFERENCE) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
|
||||
loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000
|
||||
loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_LAGER_REFERENCE) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000
|
||||
loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000
|
||||
loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000
|
||||
|
64
arch/arm/mach-shmobile/board-ape6evm-reference.c
Normal file
64
arch/arm/mach-shmobile/board-ape6evm-reference.c
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* APE6EVM board 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/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/pinctrl/machine.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/sh_clk.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/r8a73a4.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
static void __init ape6evm_add_standard_devices(void)
|
||||
{
|
||||
|
||||
struct clk *parent;
|
||||
struct clk *mp;
|
||||
|
||||
r8a73a4_clock_init();
|
||||
|
||||
/* MP clock parent = extal2 */
|
||||
parent = clk_get(NULL, "extal2");
|
||||
mp = clk_get(NULL, "mp");
|
||||
BUG_ON(IS_ERR(parent) || IS_ERR(mp));
|
||||
|
||||
clk_set_parent(mp, parent);
|
||||
clk_put(parent);
|
||||
clk_put(mp);
|
||||
|
||||
r8a73a4_add_dt_devices();
|
||||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||
platform_device_register_simple("cpufreq-cpu0", -1, NULL, 0);
|
||||
}
|
||||
|
||||
static const char *ape6evm_boards_compat_dt[] __initdata = {
|
||||
"renesas,ape6evm-reference",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(APE6EVM_DT, "ape6evm")
|
||||
.init_early = r8a73a4_init_delay,
|
||||
.init_time = shmobile_timer_init,
|
||||
.init_machine = ape6evm_add_standard_devices,
|
||||
.dt_compat = ape6evm_boards_compat_dt,
|
||||
MACHINE_END
|
@ -1315,7 +1315,7 @@ static const char *eva_boards_compat_dt[] __initdata = {
|
||||
DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva")
|
||||
.map_io = r8a7740_map_io,
|
||||
.init_early = eva_add_early_devices,
|
||||
.init_irq = r8a7740_init_irq,
|
||||
.init_irq = r8a7740_init_irq_of,
|
||||
.init_machine = eva_init,
|
||||
.init_late = shmobile_init_late,
|
||||
.init_time = eva_earlytimer_init,
|
||||
|
62
arch/arm/mach-shmobile/board-bockw-reference.c
Normal file
62
arch/arm/mach-shmobile/board-bockw-reference.c
Normal file
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Bock-W board support
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Solutions Corp.
|
||||
* Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.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; 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/of_platform.h>
|
||||
#include <linux/pinctrl/machine.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/r8a7778.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
/*
|
||||
* see board-bock.c for checking detail of dip-switch
|
||||
*/
|
||||
|
||||
static const struct pinctrl_map bockw_pinctrl_map[] = {
|
||||
/* SCIF0 */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
|
||||
"scif0_data_a", "scif0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
|
||||
"scif0_ctrl", "scif0"),
|
||||
};
|
||||
|
||||
static void __init bockw_init(void)
|
||||
{
|
||||
r8a7778_clock_init();
|
||||
|
||||
pinctrl_register_mappings(bockw_pinctrl_map,
|
||||
ARRAY_SIZE(bockw_pinctrl_map));
|
||||
r8a7778_pinmux_init();
|
||||
r8a7778_add_dt_devices();
|
||||
|
||||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||
}
|
||||
|
||||
static const char *bockw_boards_compat_dt[] __initdata = {
|
||||
"renesas,bockw-reference",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(BOCKW_DT, "bockw")
|
||||
.init_early = r8a7778_init_delay,
|
||||
.init_irq = r8a7778_init_irq_dt,
|
||||
.init_machine = bockw_init,
|
||||
.init_time = shmobile_timer_init,
|
||||
.dt_compat = bockw_boards_compat_dt,
|
||||
MACHINE_END
|
45
arch/arm/mach-shmobile/board-lager-reference.c
Normal file
45
arch/arm/mach-shmobile/board-lager-reference.c
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Lager board support - Reference DT implementation
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Solutions Corp.
|
||||
* Copyright (C) 2013 Simon Horman
|
||||
*
|
||||
* 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/of_platform.h>
|
||||
#include <mach/r8a7790.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
static void __init lager_add_standard_devices(void)
|
||||
{
|
||||
/* clocks are setup late during boot in the case of DT */
|
||||
r8a7790_clock_init();
|
||||
|
||||
r8a7790_add_dt_devices();
|
||||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||
}
|
||||
|
||||
static const char *lager_boards_compat_dt[] __initdata = {
|
||||
"renesas,lager-reference",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(LAGER_DT, "lager")
|
||||
.init_early = r8a7790_init_delay,
|
||||
.init_machine = lager_add_standard_devices,
|
||||
.init_time = r8a7790_timer_init,
|
||||
.dt_compat = lager_boards_compat_dt,
|
||||
MACHINE_END
|
@ -257,13 +257,18 @@ static void __init marzen_init(void)
|
||||
platform_add_devices(marzen_devices, ARRAY_SIZE(marzen_devices));
|
||||
}
|
||||
|
||||
MACHINE_START(MARZEN, "marzen")
|
||||
static const char *marzen_boards_compat_dt[] __initdata = {
|
||||
"renesas,marzen",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(MARZEN, "marzen")
|
||||
.smp = smp_ops(r8a7779_smp_ops),
|
||||
.map_io = r8a7779_map_io,
|
||||
.init_early = r8a7779_add_early_devices,
|
||||
.nr_irqs = NR_IRQS_LEGACY,
|
||||
.init_irq = r8a7779_init_irq,
|
||||
.init_irq = r8a7779_init_irq_dt,
|
||||
.init_machine = marzen_init,
|
||||
.init_late = r8a7779_init_late,
|
||||
.dt_compat = marzen_boards_compat_dt,
|
||||
.init_time = r8a7779_earlytimer_init,
|
||||
MACHINE_END
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define __ASM_R8A73A4_H__
|
||||
|
||||
void r8a73a4_add_standard_devices(void);
|
||||
void r8a73a4_add_dt_devices(void);
|
||||
void r8a73a4_clock_init(void);
|
||||
void r8a73a4_pinmux_init(void);
|
||||
void r8a73a4_init_delay(void);
|
||||
|
@ -48,7 +48,6 @@ enum {
|
||||
|
||||
extern void r8a7740_meram_workaround(void);
|
||||
extern void r8a7740_init_delay(void);
|
||||
extern void r8a7740_init_irq(void);
|
||||
extern void r8a7740_init_irq_of(void);
|
||||
extern void r8a7740_map_io(void);
|
||||
extern void r8a7740_add_early_devices(void);
|
||||
|
@ -30,6 +30,7 @@ extern void r8a7778_add_usb_phy_device(struct rcar_phy_platform_data *pdata);
|
||||
extern void r8a7778_add_i2c_device(int id);
|
||||
extern void r8a7778_add_hspi_device(int id);
|
||||
extern void r8a7778_add_mmc_device(struct sh_mmcif_plat_data *info);
|
||||
extern void r8a7778_add_dt_devices(void);
|
||||
|
||||
extern void r8a7778_init_late(void);
|
||||
extern void r8a7778_init_delay(void);
|
||||
|
@ -24,7 +24,6 @@ static inline struct r8a7779_pm_ch *to_r8a7779_ch(struct generic_pm_domain *d)
|
||||
}
|
||||
|
||||
extern void r8a7779_init_delay(void);
|
||||
extern void r8a7779_init_irq(void);
|
||||
extern void r8a7779_init_irq_extpin(int irlm);
|
||||
extern void r8a7779_init_irq_dt(void);
|
||||
extern void r8a7779_map_io(void);
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define __ASM_R8A7790_H__
|
||||
|
||||
void r8a7790_add_standard_devices(void);
|
||||
void r8a7790_add_dt_devices(void);
|
||||
void r8a7790_clock_init(void);
|
||||
void r8a7790_pinmux_init(void);
|
||||
void r8a7790_init_delay(void);
|
||||
|
@ -23,12 +23,14 @@
|
||||
#include <linux/irqchip.h>
|
||||
#include <linux/irqchip/arm-gic.h>
|
||||
|
||||
static void __init r8a7740_init_irq_common(void)
|
||||
void __init r8a7740_init_irq_of(void)
|
||||
{
|
||||
void __iomem *intc_prio_base = ioremap_nocache(0xe6900010, 0x10);
|
||||
void __iomem *intc_msk_base = ioremap_nocache(0xe6900040, 0x10);
|
||||
void __iomem *pfc_inta_ctrl = ioremap_nocache(0xe605807c, 0x4);
|
||||
|
||||
irqchip_init();
|
||||
|
||||
/* route signals to GIC */
|
||||
iowrite32(0x0, pfc_inta_ctrl);
|
||||
|
||||
@ -50,19 +52,3 @@ static void __init r8a7740_init_irq_common(void)
|
||||
iounmap(intc_msk_base);
|
||||
iounmap(pfc_inta_ctrl);
|
||||
}
|
||||
|
||||
void __init r8a7740_init_irq_of(void)
|
||||
{
|
||||
irqchip_init();
|
||||
r8a7740_init_irq_common();
|
||||
}
|
||||
|
||||
void __init r8a7740_init_irq(void)
|
||||
{
|
||||
void __iomem *gic_dist_base = ioremap_nocache(0xc2800000, 0x1000);
|
||||
void __iomem *gic_cpu_base = ioremap_nocache(0xc2000000, 0x1000);
|
||||
|
||||
/* initialize the Generic Interrupt Controller PL390 r0p0 */
|
||||
gic_init(0, 29, gic_dist_base, gic_cpu_base);
|
||||
r8a7740_init_irq_common();
|
||||
}
|
||||
|
@ -89,15 +89,18 @@ void __init r8a7779_init_irq_extpin(int irlm)
|
||||
pr_warn("r8a7779: unable to setup external irq pin mode\n");
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static int r8a7779_set_wake(struct irq_data *data, unsigned int on)
|
||||
{
|
||||
return 0; /* always allow wakeup */
|
||||
}
|
||||
|
||||
static void __init r8a7779_init_irq_common(void)
|
||||
void __init r8a7779_init_irq_dt(void)
|
||||
{
|
||||
gic_arch_extn.irq_set_wake = r8a7779_set_wake;
|
||||
|
||||
irqchip_init();
|
||||
|
||||
/* route all interrupts to ARM */
|
||||
__raw_writel(0xffffffff, INT2NTSR0);
|
||||
__raw_writel(0x3fffffff, INT2NTSR1);
|
||||
@ -108,23 +111,6 @@ static void __init r8a7779_init_irq_common(void)
|
||||
__raw_writel(0xfffbffdf, INT2SMSKCR2);
|
||||
__raw_writel(0xbffffffc, INT2SMSKCR3);
|
||||
__raw_writel(0x003fee3f, INT2SMSKCR4);
|
||||
}
|
||||
|
||||
void __init r8a7779_init_irq(void)
|
||||
{
|
||||
void __iomem *gic_dist_base = IOMEM(0xf0001000);
|
||||
void __iomem *gic_cpu_base = IOMEM(0xf0000100);
|
||||
|
||||
/* use GIC to handle interrupts */
|
||||
gic_init(0, 29, gic_dist_base, gic_cpu_base);
|
||||
|
||||
r8a7779_init_irq_common();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
void __init r8a7779_init_irq_dt(void)
|
||||
{
|
||||
irqchip_init();
|
||||
r8a7779_init_irq_common();
|
||||
}
|
||||
#endif
|
||||
|
@ -188,7 +188,7 @@ static struct resource cmt10_resources[] = {
|
||||
&cmt##idx##_platform_data, \
|
||||
sizeof(struct sh_timer_config))
|
||||
|
||||
void __init r8a73a4_add_standard_devices(void)
|
||||
void __init r8a73a4_add_dt_devices(void)
|
||||
{
|
||||
r8a73a4_register_scif(SCIFA0);
|
||||
r8a73a4_register_scif(SCIFA1);
|
||||
@ -196,10 +196,15 @@ void __init r8a73a4_add_standard_devices(void)
|
||||
r8a73a4_register_scif(SCIFB1);
|
||||
r8a73a4_register_scif(SCIFB2);
|
||||
r8a73a4_register_scif(SCIFB3);
|
||||
r8a7790_register_cmt(10);
|
||||
}
|
||||
|
||||
void __init r8a73a4_add_standard_devices(void)
|
||||
{
|
||||
r8a73a4_add_dt_devices();
|
||||
r8a73a4_register_irqc(0);
|
||||
r8a73a4_register_irqc(1);
|
||||
r8a73a4_register_thermal();
|
||||
r8a7790_register_cmt(10);
|
||||
}
|
||||
|
||||
void __init r8a73a4_init_delay(void)
|
||||
|
@ -333,7 +333,7 @@ void __init r8a7778_add_mmc_device(struct sh_mmcif_plat_data *info)
|
||||
info, sizeof(*info));
|
||||
}
|
||||
|
||||
void __init r8a7778_add_standard_devices(void)
|
||||
void __init r8a7778_add_dt_devices(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -357,6 +357,11 @@ void __init r8a7778_add_standard_devices(void)
|
||||
r8a7778_register_tmu(1);
|
||||
}
|
||||
|
||||
void __init r8a7778_add_standard_devices(void)
|
||||
{
|
||||
r8a7778_add_dt_devices();
|
||||
}
|
||||
|
||||
void __init r8a7778_init_late(void)
|
||||
{
|
||||
phy = usb_get_phy(USB_PHY_TYPE_USB2);
|
||||
|
@ -179,7 +179,7 @@ static struct resource cmt00_resources[] = {
|
||||
&cmt##idx##_platform_data, \
|
||||
sizeof(struct sh_timer_config))
|
||||
|
||||
void __init r8a7790_add_standard_devices(void)
|
||||
void __init r8a7790_add_dt_devices(void)
|
||||
{
|
||||
r8a7790_register_scif(SCIFA0);
|
||||
r8a7790_register_scif(SCIFA1);
|
||||
@ -191,9 +191,14 @@ void __init r8a7790_add_standard_devices(void)
|
||||
r8a7790_register_scif(SCIF1);
|
||||
r8a7790_register_scif(HSCIF0);
|
||||
r8a7790_register_scif(HSCIF1);
|
||||
r8a7790_register_cmt(00);
|
||||
}
|
||||
|
||||
void __init r8a7790_add_standard_devices(void)
|
||||
{
|
||||
r8a7790_add_dt_devices();
|
||||
r8a7790_register_irqc(0);
|
||||
r8a7790_register_thermal();
|
||||
r8a7790_register_cmt(00);
|
||||
}
|
||||
|
||||
#define MODEMR 0xe6160060
|
||||
|
@ -99,6 +99,9 @@ static int __cpuinit r8a7779_boot_secondary(unsigned int cpu, struct task_struct
|
||||
|
||||
static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus)
|
||||
{
|
||||
|
||||
/* setup r8a7779 specific SCU base */
|
||||
shmobile_scu_base = IOMEM(R8A7779_SCU_BASE);
|
||||
scu_enable(shmobile_scu_base);
|
||||
|
||||
/* Map the reset vector (in headsmp-scu.S, headsmp.S) */
|
||||
@ -117,14 +120,6 @@ static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus)
|
||||
r8a7779_platform_cpu_kill(3);
|
||||
}
|
||||
|
||||
static void __init r8a7779_smp_init_cpus(void)
|
||||
{
|
||||
/* setup r8a7779 specific SCU base */
|
||||
shmobile_scu_base = IOMEM(R8A7779_SCU_BASE);
|
||||
|
||||
shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
static int r8a7779_scu_psr_core_disabled(int cpu)
|
||||
{
|
||||
@ -175,7 +170,6 @@ static int r8a7779_cpu_disable(unsigned int cpu)
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
|
||||
struct smp_operations r8a7779_smp_ops __initdata = {
|
||||
.smp_init_cpus = r8a7779_smp_init_cpus,
|
||||
.smp_prepare_cpus = r8a7779_smp_prepare_cpus,
|
||||
.smp_boot_secondary = r8a7779_boot_secondary,
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
|
@ -62,6 +62,8 @@ static int __cpuinit sh73a0_boot_secondary(unsigned int cpu, struct task_struct
|
||||
|
||||
static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus)
|
||||
{
|
||||
/* setup sh73a0 specific SCU base */
|
||||
shmobile_scu_base = IOMEM(SH73A0_SCU_BASE);
|
||||
scu_enable(shmobile_scu_base);
|
||||
|
||||
/* Map the reset vector (in headsmp-scu.S, headsmp.S) */
|
||||
@ -74,14 +76,6 @@ static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus)
|
||||
scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL);
|
||||
}
|
||||
|
||||
static void __init sh73a0_smp_init_cpus(void)
|
||||
{
|
||||
/* setup sh73a0 specific SCU base */
|
||||
shmobile_scu_base = IOMEM(SH73A0_SCU_BASE);
|
||||
|
||||
shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
static int sh73a0_cpu_kill(unsigned int cpu)
|
||||
{
|
||||
@ -120,7 +114,6 @@ static int sh73a0_cpu_disable(unsigned int cpu)
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
|
||||
struct smp_operations sh73a0_smp_ops __initdata = {
|
||||
.smp_init_cpus = sh73a0_smp_init_cpus,
|
||||
.smp_prepare_cpus = sh73a0_smp_prepare_cpus,
|
||||
.smp_boot_secondary = sh73a0_boot_secondary,
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
|
Loading…
Reference in New Issue
Block a user