On 01.10.2015 20:11, Timur Tabi wrote: > On 09/30/2015 04:24 PM, Alexander Popov wrote: >>> Driver code that has to parse #address-cells or #size-cells >>> is usually wrong. >> >> I would not call it "parsing", I just check whether the dts-file is good. >> Anyway, could you give me a clue how to do better? > > You should use of_n_size_cells() and of_n_addr_cells(). It seems that of_n_size_cells() and of_n_addr_cells() don't work well in my case. These functions just help to get "#address-cells" and "#size-cells" from a parent node of a given node. "sclpc" device tree node is a child of "soc" node (not "localbus" node), but the driver must use "ranges" property of "localbus" to determine the chip select number of a client device which ordered the DMA transfer. It seems that ns2_leds_get_of_pdata() from linux/drivers/leds/leds-ns2.c or pnv_init_idle_states() from arch/powerpc/platforms/powernv/idle.c do something similar to get_cs_ranges(). Is it OK? Best regards, Alexander -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html