diff options
-rw-r--r-- | arch/arm/boot/dts/r8a7740.dtsi | 21 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7740.c | 47 |
2 files changed, 68 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi new file mode 100644 index 000000000000..798fa35c0005 --- /dev/null +++ b/arch/arm/boot/dts/r8a7740.dtsi | |||
@@ -0,0 +1,21 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the r8a7740 SoC | ||
3 | * | ||
4 | * Copyright (C) 2012 Renesas Solutions Corp. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /include/ "skeleton.dtsi" | ||
12 | |||
13 | / { | ||
14 | compatible = "renesas,r8a7740"; | ||
15 | |||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | compatible = "arm,cortex-a9"; | ||
19 | }; | ||
20 | }; | ||
21 | }; | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c index c006d8ddbbe5..78948a9dba0e 100644 --- a/arch/arm/mach-shmobile/setup-r8a7740.c +++ b/arch/arm/mach-shmobile/setup-r8a7740.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/of_platform.h> | ||
26 | #include <linux/serial_sci.h> | 27 | #include <linux/serial_sci.h> |
27 | #include <linux/sh_dma.h> | 28 | #include <linux/sh_dma.h> |
28 | #include <linux/sh_timer.h> | 29 | #include <linux/sh_timer.h> |
@@ -716,3 +717,49 @@ void __init r8a7740_add_early_devices(void) | |||
716 | /* override timer setup with soc-specific code */ | 717 | /* override timer setup with soc-specific code */ |
717 | shmobile_timer.init = r8a7740_earlytimer_init; | 718 | shmobile_timer.init = r8a7740_earlytimer_init; |
718 | } | 719 | } |
720 | |||
721 | #ifdef CONFIG_USE_OF | ||
722 | |||
723 | void __init r8a7740_add_early_devices_dt(void) | ||
724 | { | ||
725 | shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */ | ||
726 | |||
727 | early_platform_add_devices(r8a7740_early_devices, | ||
728 | ARRAY_SIZE(r8a7740_early_devices)); | ||
729 | |||
730 | /* setup early console here as well */ | ||
731 | shmobile_setup_console(); | ||
732 | } | ||
733 | |||
734 | static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = { | ||
735 | { } | ||
736 | }; | ||
737 | |||
738 | void __init r8a7740_add_standard_devices_dt(void) | ||
739 | { | ||
740 | /* clocks are setup late during boot in the case of DT */ | ||
741 | r8a7740_clock_init(0); | ||
742 | |||
743 | platform_add_devices(r8a7740_early_devices, | ||
744 | ARRAY_SIZE(r8a7740_early_devices)); | ||
745 | |||
746 | of_platform_populate(NULL, of_default_bus_match_table, | ||
747 | r8a7740_auxdata_lookup, NULL); | ||
748 | } | ||
749 | |||
750 | static const char *r8a7740_boards_compat_dt[] __initdata = { | ||
751 | "renesas,r8a7740", | ||
752 | NULL, | ||
753 | }; | ||
754 | |||
755 | DT_MACHINE_START(SH7372_DT, "Generic R8A7740 (Flattened Device Tree)") | ||
756 | .map_io = r8a7740_map_io, | ||
757 | .init_early = r8a7740_add_early_devices_dt, | ||
758 | .init_irq = r8a7740_init_irq, | ||
759 | .handle_irq = shmobile_handle_irq_intc, | ||
760 | .init_machine = r8a7740_add_standard_devices_dt, | ||
761 | .timer = &shmobile_timer, | ||
762 | .dt_compat = r8a7740_boards_compat_dt, | ||
763 | MACHINE_END | ||
764 | |||
765 | #endif /* CONFIG_USE_OF */ | ||