From mboxrd@z Thu Jan 1 00:00:00 1970
From: Piotr Wilczek
Date: Tue, 04 Mar 2014 14:55:05 +0100
Subject: [U-Boot] [PATCH V4 01/12] exynos4:pinmux:fdt: decode peripheral id
In-Reply-To: <1393941316-12108-1-git-send-email-p.wilczek@samsung.com>
References: <1390832143-372-1-git-send-email-p.wilczek@samsung.com>
<1393941316-12108-1-git-send-email-p.wilczek@samsung.com>
Message-ID: <1393941316-12108-2-git-send-email-p.wilczek@samsung.com>
List-Id:
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
To: u-boot@lists.denx.de
This patch adds api to decode peripheral id based on interrupt number.
Signed-off-by: Piotr Wilczek
Signed-off-by: Kyungmin Park
CC: Minkyu Kang
---
Changes for v4:
- none
Changes for v3:
- none
Changes for v2:
- removed incorrectly implemented check for invalid peripheral id
- removed unnecesary white space
arch/arm/cpu/armv7/exynos/pinmux.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
index 645c497..8d6e5c1 100644
--- a/arch/arm/cpu/armv7/exynos/pinmux.c
+++ b/arch/arm/cpu/armv7/exynos/pinmux.c
@@ -741,6 +741,21 @@ int exynos_pinmux_config(int peripheral, int flags)
}
#ifdef CONFIG_OF_CONTROL
+static int exynos4_pinmux_decode_periph_id(const void *blob, int node)
+{
+ int err;
+ u32 cell[3];
+
+ err = fdtdec_get_int_array(blob, node, "interrupts", cell,
+ ARRAY_SIZE(cell));
+ if (err) {
+ debug(" invalid peripheral id\n");
+ return PERIPH_ID_NONE;
+ }
+
+ return cell[1];
+}
+
static int exynos5_pinmux_decode_periph_id(const void *blob, int node)
{
int err;
@@ -758,6 +773,8 @@ int pinmux_decode_periph_id(const void *blob, int node)
{
if (cpu_is_exynos5())
return exynos5_pinmux_decode_periph_id(blob, node);
+ else if (cpu_is_exynos4())
+ return exynos4_pinmux_decode_periph_id(blob, node);
else
return PERIPH_ID_NONE;
}
--
1.8.3.2