Files
u-boot-tk1-som/include
Stephen Warren 02464e386b fdt: add new fdt address parsing functions
fdtdec_get_addr_size() hard-codes the number of cells used to represent
an address or size in DT. This is incorrect in many cases depending on
the DT binding for a particular node or property (e.g. it is incorrect
for the "reg" property). In most cases, DT parsing code must use the
properties #address-cells and #size-cells to parse addres properties.

This change splits up the implementation of fdtdec_get_addr_size() so
that the core logic can be used for both hard-coded and non-hard-coded
cases. Various wrapper functions are implemented that support cases
where hard-coded cell counts should or should not be used, and where
the client does and doesn't know the parent node ID that contains the
properties #address-cells and #size-cells.

dev_get_addr() is updated to use the new functions.

Core functionality in fdtdec_get_addr_size_fixed() is widely tested via
fdtdec_get_addr_size(). I tested fdtdec_get_addr_size_auto_noparent() and
dev_get_addr() by manually modifying the Tegra I2C driver to invoke them.

Much of the core implementation of fdtdec_get_addr_size_fixed(),
fdtdec_get_addr_size_auto_parent(), and
fdtdec_get_addr_size_auto_noparent() comes from Thierry Reding's
previous commit "fdt: Fix fdtdec_get_addr_size() for 64-bit".

Based-on-work-by: Thierry Reding <treding@nvidia.com>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Michal Suchanek <hramrach@gmail.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
Dropped #define DEBUG at the top of fdtdec.c:
Signed-off-by: Simon Glass <sjg@chromium.org>
2015-09-15 07:57:13 -06:00
..
2015-09-11 17:15:32 -04:00
2015-09-11 17:15:32 -04:00
2014-07-30 08:48:03 -04:00
2015-05-05 20:58:20 -06:00
2015-06-10 19:26:54 -06:00
2015-07-21 17:39:29 -06:00
2015-07-27 15:53:48 -07:00
2015-08-05 21:06:16 -06:00
2014-06-21 10:06:58 -06:00
2015-04-10 14:23:23 +02:00
2015-08-05 08:42:41 -06:00
2015-08-05 08:44:07 -06:00
2015-05-28 08:18:24 -04:00
2014-12-05 08:06:15 -08:00
2015-01-21 10:25:02 +01:00
2015-08-25 22:53:57 -05:00
2015-07-22 08:57:54 +02:00
2014-11-19 08:48:42 +01:00
2014-12-11 13:18:43 -07:00
2013-09-24 09:10:33 -04:00
2014-10-25 15:27:37 -04:00
2014-05-28 10:58:19 +09:00
2014-06-20 11:54:29 -06:00
2015-04-23 09:05:53 -06:00
2015-09-02 15:26:12 +02:00
2013-09-20 10:30:54 -04:00
2015-07-21 17:39:25 -06:00
2014-05-30 14:03:24 -04:00
2013-11-09 17:21:01 +01:00
2015-01-06 10:10:04 +02:00
2015-09-09 07:48:03 -06:00
2015-06-04 03:34:47 -06:00
2015-08-05 08:42:41 -06:00
2015-01-05 12:08:55 -05:00
2015-04-20 17:57:13 -05:00
2015-07-21 17:39:27 -06:00
2015-07-21 17:39:28 -06:00
2014-11-24 12:00:00 +01:00
2015-07-01 21:15:03 +05:30
2015-03-05 20:50:29 -05:00
2015-07-26 12:11:33 +02:00
2013-12-04 08:11:28 -05:00
2015-01-21 10:25:53 +01:00