From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Thu, 14 Apr 2016 15:54:51 +0800 Subject: [U-Boot] [PATCH] fdt: Do not report bad cell count when #size-cells = <0> In-Reply-To: References: Message-ID: <20160414075449.GA21342@linux-7smt.suse> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Michal, On Thu, Apr 14, 2016 at 08:20:28AM +0200, Michal Simek wrote: >Upcomming pca953x gpio driver (tca6416 is compatible with it) >is using for example this DT description (ZynqMP zcu102): >i2c0: i2c at ff020000 { > compatible = "cdns,i2c-r1p10"; > interrupt-parent = <&gic>; > interrupts = <0 17 4>; > reg = <0x0 0xff020000 0x1000>; > #address-cells = <1>; > #size-cells = <0>; > > tca6416_u61: gpio at 21 { > compatible = "ti,tca6416"; > reg = <0x21>; > gpio-controller; > #gpio-cells = <2>; > }; >}; > >I2C bus is using #size-cells = <0> which current code detects as >"Bad cell count": >OF: reached root node >OF: ** translation for device gpio at 20 ** >__of_translate_address: Bad cell count for gpio at 20 >Command 'gpio' failed: Error -19 > >This patch fixes OF_CHECK_COUNTS macro not to report problem when >size-cells is 0 which is also valid bus configuration. > >Signed-off-by: Michal Simek Reviewed-by: Peng Fan Regards, Peng. >--- > > common/fdt_support.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/common/fdt_support.c b/common/fdt_support.c >index ced119e70d9f..5f5b49c6210b 100644 >--- a/common/fdt_support.c >+++ b/common/fdt_support.c >@@ -941,7 +941,7 @@ void fdt_del_node_and_alias(void *blob, const char *alias) > #define OF_MAX_ADDR_CELLS 4 > #define OF_BAD_ADDR FDT_ADDR_T_NONE > #define OF_CHECK_COUNTS(na, ns) ((na) > 0 && (na) <= OF_MAX_ADDR_CELLS && \ >- (ns) > 0) >+ (ns) >= 0) > > /* Debug utility */ > #ifdef DEBUG >-- >1.9.1 >