From patchwork Wed Nov 14 09:11:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajeshwari Birje X-Patchwork-Id: 198835 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 4814E2C0156 for ; Wed, 14 Nov 2012 20:09:12 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id E330F4A04C; Wed, 14 Nov 2012 10:09:10 +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 S9h6V+rl8mxf; Wed, 14 Nov 2012 10:09:10 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 06E844A025; Wed, 14 Nov 2012 10:09:08 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D71EA4A025 for ; Wed, 14 Nov 2012 10:09: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 nvvQojJZ5L79 for ; Wed, 14 Nov 2012 10:09:03 +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 mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by theia.denx.de (Postfix) with ESMTP id 574094A019 for ; Wed, 14 Nov 2012 10:09:01 +0100 (CET) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MDH00EYR02OBB10@mailout1.samsung.com> for u-boot@lists.denx.de; Wed, 14 Nov 2012 18:08:57 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.126]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 39.BC.12699.9AF53A05; Wed, 14 Nov 2012 18:08:57 +0900 (KST) X-AuditID: cbfee61b-b7f616d00000319b-66-50a35fa922ef Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id C8.BC.12699.9AF53A05; Wed, 14 Nov 2012 18:08:57 +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 <0MDG00I7CZWU0Z70@mmp2.samsung.com> for u-boot@lists.denx.de; Wed, 14 Nov 2012 18:08:57 +0900 (KST) From: Rajeshwari Shinde To: u-boot@lists.denx.de Date: Wed, 14 Nov 2012 14:41:17 +0530 Message-id: <1352884279-24067-5-git-send-email-rajeshwari.s@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1352884279-24067-1-git-send-email-rajeshwari.s@samsung.com> References: <1352884279-24067-1-git-send-email-rajeshwari.s@samsung.com> DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLLMWRmVeSWpSXmKPExsWyRsSkTndl/OIAg3+njCze7u1kd2D0OHtn B2MAYxSXTUpqTmZZapG+XQJXxrf2j4wF33grZp7sY25g7OTuYuTkkBAwkVi38zYrhC0mceHe erYuRi4OIYGljBJvt/9nhyma9P8qM0RiOqPEzk0XoJxVTBIr+o6zgFSxCRhJbD05jRHEFhGQ kPjVfxXMZhbIkLj9YQlYjbCAu8S1mQvA4iwCqhKrnr8Gi/MKeEg8bFkCdYaCxLGpX8FsTgFP if8PesBsIaCayTu2s0H0Ckh8m3wIqJcDqF5WYtMBsHskBM6wSbyeMwfqakmJgytusExgFF7A yLCKUTS1ILmgOCk910ivODG3uDQvXS85P3cTIzAMT/97Jr2DcVWDxSFGAQ5GJR7egP5FAUKs iWXFlbmHGCU4mJVEeGOtFgcI8aYkVlalFuXHF5XmpBYfYvQBumQis5Rocj4wRvJK4g2NTcxN jU0tjYzMTE1xCCuJ8zZ7pAQICaQnlqRmp6YWpBbBjGPi4JRqYNRUDv/4PU5SzfRB7xWP8hoD +YlCnx+stX7+cL3kpo8mAeU9B+698Iuy5SxoCiz2DZwwg/1ExtabHF+XzXv+1WTRo+Djogvi +L5oHE/S0gtmNDyrtW2xuttUhROG1yz1Qg9nsC2Mumgve/NLIP+X6uQ/8f3WWsXKTCvPm/xt MP95f+sLeae7pUosxRmJhlrMRcWJAMLz40pwAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e+xoO7K+MUBBg9WKlq83dvJ7sDocfbO DsYAxqgGRpuM1MSU1CKF1Lzk/JTMvHRbJe/geOd4UzMDQ11DSwtzJYW8xNxUWyUXnwBdt8wc oLFKCmWJOaVAoYDE4mIlfTtME0JD3HQtYBojdH1DguB6jAzQQMIaxoxv7R8ZC77xVsw82cfc wNjJ3cXIySEhYCIx6f9VZghbTOLCvfVsXYxcHEIC0xkldm66wAzhrGKSWNF3nAWkik3ASGLr yWmMILaIgITEr/6rYDazQIbE7Q9LwGqEBdwlrs1cABZnEVCVWPX8NVicV8BD4mHLElaIbQoS x6Z+BbM5BTwl/j/oAbOFgGom79jONoGRdwEjwypG0dSC5ILipPRcI73ixNzi0rx0veT83E2M 4CB/Jr2DcVWDxSFGAQ5GJR7egP5FAUKsiWXFlbmHGCU4mJVEeGOtFgcI8aYkVlalFuXHF5Xm pBYfYvQBumois5Rocj4wAvNK4g2NTcxNjU0tTSxMzCxxCCuJ8zZ7pAQICaQnlqRmp6YWpBbB jGPi4JRqYHRY5NlRohWwtuCUdmHTPjbP20arMva5fpdJ67o6/XMS/7V5AU0qH1ZOeJcm3B3h otbIHBsW+fpqaJaW/7IQvSr3uPDioKmrdxlsfPlkFsvNcxduMwbZH/lqvM3eYYlKoU6fw6rK eJcNtz5MO1viOv3O9Gtze+8lqCzleHRg0twbD51zZMv0pZRYijMSDbWYi4oTAQ/hqDOfAgAA X-CFilter-Loop: Reflected Cc: hs@denx.de, patches@linaro.org Subject: [U-Boot] [PATCH 4/6 V2] 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 Acked-by: Heiko Schocher --- Changes in V2: - None 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; +}