From patchwork Thu Nov 8 05:30:01 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Birje X-Patchwork-Id: 197758 X-Patchwork-Delegate: hs@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3A4D72C00D7 for ; Thu, 8 Nov 2012 16:28:11 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E84994A76E; Thu, 8 Nov 2012 06:28:09 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TRQ6lbggoMcP; Thu, 8 Nov 2012 06:28:09 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id DF8A94A814; Thu, 8 Nov 2012 06:28:07 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 68FA54A814 for ; Thu, 8 Nov 2012 06:28:05 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1oaPGLYjHDnj for ; Thu, 8 Nov 2012 06:28:04 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by theia.denx.de (Postfix) with ESMTP id 4AE464A80B for ; Thu, 8 Nov 2012 06:28:04 +0100 (CET) Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MD500FXRLUL1480@mailout2.samsung.com> for u-boot@lists.denx.de; Thu, 08 Nov 2012 14:28:03 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.122]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id AF.41.01231.3E24B905; Thu, 08 Nov 2012 14:28:03 +0900 (KST) X-AuditID: cbfee61a-b7fa66d0000004cf-c5-509b42e3f58f Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 2F.41.01231.2E24B905; Thu, 08 Nov 2012 14:28:02 +0900 (KST) Received: from rajeshwari-linux.sisodomain.com ([107.108.215.115]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MD500D18LOC2U10@mmp2.samsung.com> for u-boot@lists.denx.de; Thu, 08 Nov 2012 14:28:02 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Date: Thu, 08 Nov 2012 11:00:01 +0530 Message-id: <1352352603-17114-5-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1352352603-17114-1-git-send-email-rajeshwari.s@samsung.com> References: <1352352603-17114-1-git-send-email-rajeshwari.s@samsung.com> DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDLMWRmVeSWpSXmKPExsWyRsSkSvex0+wAg9YHbBZv93ayOzB6nL2z gzGAMYrLJiU1J7MstUjfLoEr41H3F7aCzbwVB9YeZmlgvMzVxcjJISFgInF74SpWCFtM4sK9 9WxdjFwcQgJLGSX+L7zFAlP0YfpLdojEdEaJ9XeWs4EkhARWMUk03gkFsdkEjCS2npzGCGKL CEhI/Oq/CmYzC2RI3P6wBGyQsICLxM43p8F6WQRUJV7t+AVWwyvgIfFs2WI2iGUKEsemfgW7 iFPAU2Ldx++MELs8JH7tn8wO0Ssg8W3yIaCZHED1shKbDjCD3CYhcJ1Noun9NaijJSUOrrjB MoFReAEjwypG0dSC5ILipPRcQ73ixNzi0rx0veT83E2MwCA8/e+Z1A7GlQ0WhxgFOBiVeHg1 JGcHCLEmlhVX5h5ilOBgVhLhnXJkVoAQb0piZVVqUX58UWlOavEhRh+gSyYyS4km5wMjJK8k 3tDYxNzU2NTSyMjM1BSHsJI4b7NHSoCQQHpiSWp2ampBahHMOCYOTqkGxn3lT3b5Hz+79+X9 oJOZC4UNHz4WPlO79aSVo8sMAY2p2XkW9yMNDp+PM3nm/PpLF7ul86z8k+UVdg8ut+Vyrbav 5XXo/VfBNoWfS4p/5rLdsVwvT6jaPy6oSN94SLbNV29T5tMAu2rt9DkbC3o/doXekJnQGRmZ 8ZhrYcfNiAreYzzSLI65SizFGYmGWsxFxYkAKFg4z28CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmkeLIzCtJLcpLzFFi42I5/e+xoO4jp9kBBn0zjS3e7u1kd2D0OHtn B2MAY1QDo01GamJKapFCal5yfkpmXrqtkndwvHO8qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO 0FglhbLEnFKgUEBicbGSvh2mCaEhbroWMI0Rur4hQXA9RgZoIGENY8aj7i9sBZt5Kw6sPczS wHiZq4uRk0NCwETiw/SX7BC2mMSFe+vZuhi5OIQEpjNKrL+znA0kISSwikmi8U4oiM0mYCSx 9eQ0RhBbREBC4lf/VTCbWSBD4vaHJSwgtrCAi8TON6fBelkEVCVe7fgFVsMr4CHxbNliNohl ChLHpn5lBbE5BTwl1n38zgixy0Pi1/7J7BMYeRcwMqxiFE0tSC4oTkrPNdQrTswtLs1L10vO z93ECA7xZ1I7GFc2WBxiFOBgVOLh1ZCcHSDEmlhWXJl7iFGCg1lJhHfKkVkBQrwpiZVVqUX5 8UWlOanFhxh9gK6ayCwlmpwPjL+8knhDYxNzU2NTSxMLEzNLHMJK4rzNHikBQgLpiSWp2amp BalFMOOYODilGhiPfSrJn2P+Ul6SVfSq02yDCv8Y1tOpaTvv1deXS85fWh3d/FbiJ6fvlqBV ub1KRd5+f08/UMtbP+ftjXlzC/75f+l9tjX4etwlb/dtwQnZz3aeCDn03S4mJqdbps/zsP/C FUafLeqV/K/YHDBpPh39Vd+h6ZnLjeLl7mmvI9Y/Crmx5sG8W9eUWIozEg21mIuKEwE0stzR ngIAAA== X-CFilter-Loop: Reflected Cc: hs@denx.de, patches@linaro.org Subject: [U-Boot] [PATCH 4/6] FDT: Api to find compatible id for a given node X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This patch adds api to find compatible id for a given FDT node Signed-off-by: Rajeshwari Shinde Acked-by: Simon Glass --- include/fdtdec.h | 14 ++++++++++++++ lib/fdtdec.c | 12 ++++++++++++ 2 files changed, 26 insertions(+), 0 deletions(-) diff --git a/include/fdtdec.h b/include/fdtdec.h index f9aac31..d501d7e 100644 --- a/include/fdtdec.h +++ b/include/fdtdec.h @@ -389,4 +389,18 @@ int fdtdec_get_byte_array(const void *blob, int node, const char *prop_name, */ const u8 *fdtdec_locate_byte_array(const void *blob, int node, const char *prop_name, int count); + +/** + * Find the compatible ID for a given node. + * + * Generally each node has at least one compatible string attached to it. + * This function looks through our list of known compatible strings and + * returns the corresponding ID which matches the compatible string. + * + * @param blob FDT blob to use + * @param node Node containing compatible string to find + * @return compatible ID, or COMPAT_UNKNOWN if we cannot find a match + */ +enum fdt_compat_id fdtdec_lookup(const void *blob, int node); + #endif diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 6e8c24c..dbfca1a 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -516,3 +516,15 @@ const u8 *fdtdec_locate_byte_array(const void *blob, int node, return NULL; return cell; } + +enum fdt_compat_id fdtdec_lookup(const void *blob, int node) +{ + enum fdt_compat_id id; + + /* Search our drivers */ + for (id = COMPAT_UNKNOWN; id < COMPAT_COUNT; id++) + if (0 == fdt_node_check_compatible(blob, node, + compat_names[id])) + return id; + return COMPAT_UNKNOWN; +}