@@ -134,6 +134,82 @@
renesas,pins = "eth_base";
renesas,function = "eth";
};
+
+ sci@0xe6c40000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6c40000 0x100>;
+ interrupts = <0x0c00>, <0x0c00>, <0x0c00>, <0x0c00>;
+ cell-index = <0>;
+ renesas,serial-type = <3>;
+ };
+
+ sci@0xe6c50000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6c50000 0x100>;
+ interrupts = <0x0c20>, <0x0c20>, <0x0c20>, <0x0c20>;
+ cell-index = <1>;
+ renesas,serial-type = <3>;
+ };
+
+ sci@0xe6c60000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6c60000 0x100>;
+ interrupts = <0x0c40>, <0x0c40>, <0x0c40>, <0x0c40>;
+ cell-index = <2>;
+ renesas,serial-type = <3>;
+ };
+
+ sci@0xe6c70000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6c70000 0x100>;
+ interrupts = <0x0c60>, <0x0c60>, <0x0c60>, <0x0c60>;
+ cell-index = <3>;
+ renesas,serial-type = <3>;
+ };
+ sci@0xe6c80000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6c80000 0x100>;
+ interrupts = <0x0d20>, <0x0d20>, <0x0d20>, <0x0d20>;
+ cell-index = <4>;
+ renesas,serial-type = <3>;
+ };
+ sci@0xe6cb0000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6cb0000 0x100>;
+ interrupts = <0x0d40>, <0x0d40>, <0x0d40>, <0x0d40>;
+ cell-index = <5>;
+ renesas,serial-type = <3>;
+ };
+ sci@0xe6cc0000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6cc0000 0x100>;
+ interrupts = <0x04c0>, <0x04c0>, <0x04c0>, <0x04c0>;
+ cell-index = <6>;
+ renesas,serial-type = <3>;
+ };
+ sci@0xe6cd0000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6cd0000 0x100>;
+ interrupts = <0x04e0>, <0x04e0>, <0x04e0>, <0x04e0>;
+ cell-index = <7>;
+ renesas,serial-type = <3>;
+ };
+ sci@0xe6c30000 {
+ compatible = "renesas,shmobile-sci-r8a7740";
+ interrupt-parent = <&intca>;
+ reg = <0xe6c30000 0x100>;
+ interrupts = <0x0d60>, <0x0d60>, <0x0d60>, <0x0d60>;
+ cell-index = <8>;
+ renesas,serial-type = <4>;
+ };
};
&gpio {
@@ -394,6 +394,13 @@ static struct platform_device *r8a7740_early_devices[] __initdata = {
&tmu02_device,
};
+static struct platform_device *r8a7740_early_devices_dt[] __initdata = {
+ &cmt10_device,
+ &tmu00_device,
+ &tmu01_device,
+ &tmu02_device,
+};
+
/* DMA */
static const struct sh_dmae_slave_config r8a7740_dmae_slaves[] = {
{
@@ -839,8 +846,8 @@ void __init r8a7740_add_early_devices_dt(void)
{
shmobile_setup_delay(800, 1, 3); /* Cortex-A9 @ 800MHz */
- early_platform_add_devices(r8a7740_early_devices,
- ARRAY_SIZE(r8a7740_early_devices));
+ early_platform_add_devices(r8a7740_early_devices_dt,
+ ARRAY_SIZE(r8a7740_early_devices_dt));
/* setup early console here as well */
shmobile_setup_console();
@@ -852,8 +859,8 @@ static const struct of_dev_auxdata r8a7740_auxdata_lookup[] __initconst = {
void __init r8a7740_add_standard_devices_dt(void)
{
- platform_add_devices(r8a7740_early_devices,
- ARRAY_SIZE(r8a7740_early_devices));
+ platform_add_devices(r8a7740_early_devices_dt,
+ ARRAY_SIZE(r8a7740_early_devices_dt));
of_platform_populate(NULL, of_default_bus_match_table,
r8a7740_auxdata_lookup, NULL);
We can now use the Device Tree for bringing up our serial devices. We need to add an alternative early_devices list in setup-r8a7740 without the serial devices and move them into the Armadillo-reference .dts config file. Signed-off-by: Bastian Hecht <hechtb+renesas@gmail.com> --- .../boot/dts/r8a7740-armadillo800eva-reference.dts | 76 ++++++++++++++++++++ arch/arm/mach-shmobile/setup-r8a7740.c | 15 ++-- 2 files changed, 87 insertions(+), 4 deletions(-)