From: Jonas Gorski <jonas.gorski@gmail.com>
To: linux-mips@linux-mips.org
Cc: Ralf Baechle <ralf@linux-mips.org>,
John Crispin <blogic@openwrt.org>,
Maxime Bizon <mbizon@freebox.fr>,
Florian Fainelli <florian@openwrt.org>,
Kevin Cernekee <cernekee@gmail.com>,
devicetree-discuss@lists.ozlabs.org,
linux-kernel@vger.kernel.org
Subject: [RFC] MIPS: BCM63XX: add generic fallback device trees
Date: Sun, 11 Nov 2012 13:50:37 +0100 [thread overview]
Message-ID: <1352638249-29298-4-git-send-email-jonas.gorski@gmail.com> (raw)
In-Reply-To: <1352638249-29298-1-git-send-email-jonas.gorski@gmail.com>
Add generic fallback device trees to load if there is no specific
device tree for the board available. This ensures that always present
devices like interrupt controllers are always available.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
arch/mips/bcm63xx/dts/Makefile | 8 ++++++++
arch/mips/bcm63xx/dts/bcm96328_generic.dts | 21 +++++++++++++++++++++
arch/mips/bcm63xx/dts/bcm96338_generic.dts | 21 +++++++++++++++++++++
arch/mips/bcm63xx/dts/bcm96345_generic.dts | 21 +++++++++++++++++++++
arch/mips/bcm63xx/dts/bcm96348_generic.dts | 21 +++++++++++++++++++++
arch/mips/bcm63xx/dts/bcm96358_generic.dts | 21 +++++++++++++++++++++
arch/mips/bcm63xx/dts/bcm96368_generic.dts | 21 +++++++++++++++++++++
arch/mips/bcm63xx/setup.c | 17 +++++++++++------
8 files changed, 145 insertions(+), 6 deletions(-)
create mode 100644 arch/mips/bcm63xx/dts/bcm96328_generic.dts
create mode 100644 arch/mips/bcm63xx/dts/bcm96338_generic.dts
create mode 100644 arch/mips/bcm63xx/dts/bcm96345_generic.dts
create mode 100644 arch/mips/bcm63xx/dts/bcm96348_generic.dts
create mode 100644 arch/mips/bcm63xx/dts/bcm96358_generic.dts
create mode 100644 arch/mips/bcm63xx/dts/bcm96368_generic.dts
diff --git a/arch/mips/bcm63xx/dts/Makefile b/arch/mips/bcm63xx/dts/Makefile
index 69c374b..94d1057 100644
--- a/arch/mips/bcm63xx/dts/Makefile
+++ b/arch/mips/bcm63xx/dts/Makefile
@@ -1,2 +1,10 @@
+# generic fallback boards
+obj-$(CONFIG_BCM63XX_CPU_6328) += bcm96328_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6338) += bcm96338_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6345) += bcm96345_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6348) += bcm96348_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6358) += bcm96358_generic.dtb.o
+obj-$(CONFIG_BCM63XX_CPU_6368) += bcm96368_generic.dtb.o
+
$(obj)/%.dtb: $(obj)/%.dts
$(call if_changed,dtc)
diff --git a/arch/mips/bcm63xx/dts/bcm96328_generic.dts b/arch/mips/bcm63xx/dts/bcm96328_generic.dts
new file mode 100644
index 0000000..13cdc48
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96328_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6328 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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/ "bcm6328.dtsi"
+
+/ {
+ model = "Generic BCM6328 board";
+ compatible = "bcm96328-generic";
+
+ ubus@10000000 {
+ };
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96338_generic.dts b/arch/mips/bcm63xx/dts/bcm96338_generic.dts
new file mode 100644
index 0000000..3b4e7b0
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96338_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6338 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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/ "bcm6338.dtsi"
+
+/ {
+ model = "Generic BCM6338 board";
+ compatible = "bcm96338-generic";
+
+ ubus@fffe0000 {
+ };
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96345_generic.dts b/arch/mips/bcm63xx/dts/bcm96345_generic.dts
new file mode 100644
index 0000000..2bbf69e
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96345_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6345 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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/ "bcm6345.dtsi"
+
+/ {
+ model = "Generic BCM6345 board";
+ compatible = "bcm96345-generic";
+
+ ubus@fffe0000 {
+ };
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96348_generic.dts b/arch/mips/bcm63xx/dts/bcm96348_generic.dts
new file mode 100644
index 0000000..d3c21a9
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96348_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6348 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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/ "bcm6348.dtsi"
+
+/ {
+ model = "Generic BCM6348 board";
+ compatible = "bcm96348-generic";
+
+ ubus@fffe0000 {
+ };
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96358_generic.dts b/arch/mips/bcm63xx/dts/bcm96358_generic.dts
new file mode 100644
index 0000000..7db5b8f
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96358_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6358 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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/ "bcm6358.dtsi"
+
+/ {
+ model = "Generic BCM6358 board";
+ compatible = "bcm96358-generic";
+
+ ubus@fffe0000 {
+ };
+};
diff --git a/arch/mips/bcm63xx/dts/bcm96368_generic.dts b/arch/mips/bcm63xx/dts/bcm96368_generic.dts
new file mode 100644
index 0000000..a5c79a6
--- /dev/null
+++ b/arch/mips/bcm63xx/dts/bcm96368_generic.dts
@@ -0,0 +1,21 @@
+/dts-v1/;
+
+/*
+ * Fallback Device Tree Source for Broadcom BCM6368 based boards
+ *
+ * Copyright (C) 2012 Jonas Gorski <jonas.gorski@gmail.com>
+ *
+ * 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/ "bcm6368.dtsi"
+
+/ {
+ model = "Generic BCM6368 board";
+ compatible = "bcm96368-generic";
+
+ ubus@10000000 {
+ };
+};
diff --git a/arch/mips/bcm63xx/setup.c b/arch/mips/bcm63xx/setup.c
index 8712354..b1fa63d 100644
--- a/arch/mips/bcm63xx/setup.c
+++ b/arch/mips/bcm63xx/setup.c
@@ -209,9 +209,16 @@ void __init device_tree_init(void)
devtree = find_compatible_tree(of_ids[0].compatible);
if (!devtree) {
- pr_warn("no compatible device tree found for board %s\n"
+ pr_warn("no compatible device tree found for board %s, using fallback tree\n",
of_ids[0].compatible);
- return;
+
+ snprintf(of_ids[0].compatible, sizeof(of_ids[0].compatible),
+ "bcm9%x-generic", bcm63xx_get_cpu_id());
+ devtree = find_compatible_tree(of_ids[0].compatible);
+
+ if (!devtree)
+ panic("no fallback tree available for BCM%x!\n",
+ bcm63xx_get_cpu_id());
}
__dt_setup_arch(devtree);
@@ -223,10 +230,8 @@ void __init device_tree_init(void)
int __init bcm63xx_populate_device_tree(void)
{
- if (!of_have_populated_dt()) {
- pr_warn("device tree not available\n");
- return -ENODEV;
- }
+ if (!of_have_populated_dt())
+ panic("device tree not available\n");
return of_platform_populate(NULL, of_ids, NULL, NULL);
}
--
1.7.2.5
next prev parent reply other threads:[~2012-11-11 12:50 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-11 12:50 [RFC] MIPS: BCM63XX: add initial Device Tree support Jonas Gorski
2012-11-11 12:50 ` Jonas Gorski [this message]
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add Device Tree glue code for IRQ handling Jonas Gorski
2012-11-13 5:00 ` Stephen Warren
2012-11-14 12:09 ` Jonas Gorski
2012-11-17 4:13 ` Stephen Warren
2012-11-11 12:50 ` [RFC] net: ethernet: bcm63xx_enet: use clk_{prepare_enable,disable_unprepare} Jonas Gorski
[not found] ` <1352638249-29298-1-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add support for loading DTB Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add simple Device Tree includes for all SoCs Jonas Gorski
2012-11-13 4:54 ` Stephen Warren
[not found] ` <50A1D290.3050409-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-13 17:56 ` David Daney
2012-11-11 12:50 ` [RFC] SPI: spi-bcm63xx: use clk_{prepare_enable,disable_unprepare} Jonas Gorski
2012-11-11 12:50 ` [RFC] bcm63xx-rng: " Jonas Gorski
2012-11-11 12:50 ` [RFC] serial: bcm63xx_uart: remove unnecessary include Jonas Gorski
2012-11-11 12:59 ` [RFC] MIPS: BCM63XX: add initial Device Tree support Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add Device Tree clock definitions Jonas Gorski
2012-11-13 5:02 ` Stephen Warren
2012-11-14 12:11 ` Jonas Gorski
2012-11-17 4:15 ` Stephen Warren
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: switch to common clock and Device Tree Jonas Gorski
2012-11-13 5:04 ` Stephen Warren
2012-11-14 12:12 ` Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: register GPIO controller through " Jonas Gorski
2012-11-13 5:06 ` Stephen Warren
2012-11-14 12:13 ` Jonas Gorski
2012-11-11 12:50 ` [RFC] serial: bcm63xx_uart: allow probing " Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add serial blocks to Device Tree includes Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add empty Device Trees for all supported boards Jonas Gorski
2012-11-13 5:12 ` Stephen Warren
2012-11-14 12:15 ` Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: enable serial through Device Tree Jonas Gorski
[not found] ` <1352638249-29298-16-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-11-13 5:13 ` Stephen Warren
[not found] ` <50A1D6ED.50001-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-14 12:17 ` Jonas Gorski
2012-11-12 11:18 ` [RFC] MIPS: BCM63XX: add initial Device Tree support Maxime Bizon
2012-11-14 12:07 ` Jonas Gorski
2012-11-14 14:47 ` Maxime Bizon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1352638249-29298-4-git-send-email-jonas.gorski@gmail.com \
--to=jonas.gorski@gmail.com \
--cc=blogic@openwrt.org \
--cc=cernekee@gmail.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=florian@openwrt.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=mbizon@freebox.fr \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).