diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0044-bus-mvebu-mbus-Introduce-device-tree-binding.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.10/0044-bus-mvebu-mbus-Introduce-device-tree-binding.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/target/linux/mvebu/patches-3.10/0044-bus-mvebu-mbus-Introduce-device-tree-binding.patch b/target/linux/mvebu/patches-3.10/0044-bus-mvebu-mbus-Introduce-device-tree-binding.patch deleted file mode 100644 index ef2d1b4..0000000 --- a/target/linux/mvebu/patches-3.10/0044-bus-mvebu-mbus-Introduce-device-tree-binding.patch +++ /dev/null @@ -1,83 +0,0 @@ -From e4123095febc94c547c0459db752e7879db79d76 Mon Sep 17 00:00:00 2001 -From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> -Date: Tue, 21 May 2013 10:48:54 -0300 -Subject: [PATCH 044/203] bus: mvebu-mbus: Introduce device tree binding - -This patch adds the most fundamental device-tree initialization. -We only introduce what's required to be able to probe the mvebu-mbus -driver from the DT. Follow-up patches will extend the device tree binding, -allowing to describe static address decoding windows. - -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> -Tested-by: Andrew Lunn <andrew@lunn.ch> -Tested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> ---- - drivers/bus/mvebu-mbus.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ - include/linux/mbus.h | 1 + - 2 files changed, 50 insertions(+) - ---- a/drivers/bus/mvebu-mbus.c -+++ b/drivers/bus/mvebu-mbus.c -@@ -900,3 +900,52 @@ int __init mvebu_mbus_init(const char *s - sdramwins_phys_base, - sdramwins_size); - } -+ -+#ifdef CONFIG_OF -+int __init mvebu_mbus_dt_init(void) -+{ -+ struct resource mbuswins_res, sdramwins_res; -+ struct device_node *np, *controller; -+ const struct of_device_id *of_id; -+ const __be32 *prop; -+ int ret; -+ -+ np = of_find_matching_node(NULL, of_mvebu_mbus_ids); -+ if (!np) { -+ pr_err("could not find a matching SoC family\n"); -+ return -ENODEV; -+ } -+ -+ of_id = of_match_node(of_mvebu_mbus_ids, np); -+ mbus_state.soc = of_id->data; -+ -+ prop = of_get_property(np, "controller", NULL); -+ if (!prop) { -+ pr_err("required 'controller' property missing\n"); -+ return -EINVAL; -+ } -+ -+ controller = of_find_node_by_phandle(be32_to_cpup(prop)); -+ if (!controller) { -+ pr_err("could not find an 'mbus-controller' node\n"); -+ return -ENODEV; -+ } -+ -+ if (of_address_to_resource(controller, 0, &mbuswins_res)) { -+ pr_err("cannot get MBUS register address\n"); -+ return -EINVAL; -+ } -+ -+ if (of_address_to_resource(controller, 1, &sdramwins_res)) { -+ pr_err("cannot get SDRAM register address\n"); -+ return -EINVAL; -+ } -+ -+ ret = mvebu_mbus_common_init(&mbus_state, -+ mbuswins_res.start, -+ resource_size(&mbuswins_res), -+ sdramwins_res.start, -+ resource_size(&sdramwins_res)); -+ return ret; -+} -+#endif ---- a/include/linux/mbus.h -+++ b/include/linux/mbus.h -@@ -74,5 +74,6 @@ int mvebu_mbus_del_window(phys_addr_t ba - int mvebu_mbus_init(const char *soc, phys_addr_t mbus_phys_base, - size_t mbus_size, phys_addr_t sdram_phys_base, - size_t sdram_size); -+int mvebu_mbus_dt_init(void); - - #endif /* __LINUX_MBUS_H */ |