diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-26 15:09:58 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-26 15:09:58 -0400 |
| commit | b27186abb37b7bd19e0ca434f4f425c807dbd708 (patch) | |
| tree | 8f20702cf0744cc66907d3b8578a8083cd25d680 /include/linux | |
| parent | 0ef7791e2bfb2e10aa95dc492eab72074cef9942 (diff) | |
| parent | d061864b89c3234b53d8884027b0cd6f06bd3149 (diff) | |
Merge tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull Devicetree updates from Rob Herring:
"A bit bigger than normal as I've been busy this cycle.
There's a few things with dependencies and a few things subsystem
maintainers didn't pick up, so I'm taking them thru my tree.
The fixes from Johan didn't get into linux-next, but they've been
waiting for some time now and they are what's left of what subsystem
maintainers didn't pick up.
Summary:
- Sync dtc with upstream version v1.4.7-14-gc86da84d30e4
- Work to get rid of direct accesses to struct device_node name and
type pointers in preparation for removing them. New helpers for
parsing DT cpu nodes and conversions to use the helpers. printk
conversions to %pOFn for printing DT node names. Most went thru
subystem trees, so this is the remainder.
- Fixes to DT child node lookups to actually be restricted to child
nodes instead of treewide.
- Refactoring of dtb targets out of arch code. This makes the support
more uniform and enables building all dtbs on c6x, microblaze, and
powerpc.
- Various DT binding updates for Renesas r8a7744 SoC
- Vendor prefixes for Facebook, OLPC
- Restructuring of some ARM binding docs moving some peripheral
bindings out of board/SoC binding files
- New "secure-chosen" binding for secure world settings on ARM
- Dual licensing of 2 DT IRQ binding headers"
* tag 'devicetree-for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (78 commits)
ARM: dt: relicense two DT binding IRQ headers
power: supply: twl4030-charger: fix OF sibling-node lookup
NFC: nfcmrvl_uart: fix OF child-node lookup
net: stmmac: dwmac-sun8i: fix OF child-node lookup
net: bcmgenet: fix OF child-node lookup
drm/msm: fix OF child-node lookup
drm/mediatek: fix OF sibling-node lookup
of: Add missing exports of node name compare functions
dt-bindings: Add OLPC vendor prefix
dt-bindings: misc: bk4: Add device tree binding for Liebherr's BK4 SPI bus
dt-bindings: thermal: samsung: Add SPDX license identifier
dt-bindings: clock: samsung: Add SPDX license identifiers
dt-bindings: timer: ostm: Add R7S9210 support
dt-bindings: phy: rcar-gen2: Add r8a7744 support
dt-bindings: can: rcar_can: Add r8a7744 support
dt-bindings: timer: renesas, cmt: Document r8a7744 CMT support
dt-bindings: watchdog: renesas-wdt: Document r8a7744 support
dt-bindings: thermal: rcar: Add device tree support for r8a7744
Documentation: dt: Add binding for /secure-chosen/stdout-path
dt-bindings: arm: zte: Move sysctrl bindings to their own doc
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/libfdt_env.h | 1 | ||||
| -rw-r--r-- | include/linux/of.h | 19 |
2 files changed, 13 insertions, 7 deletions
diff --git a/include/linux/libfdt_env.h b/include/linux/libfdt_env.h index c6ac1fe7ec68..edb0f0c30904 100644 --- a/include/linux/libfdt_env.h +++ b/include/linux/libfdt_env.h | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #ifndef LIBFDT_ENV_H | 2 | #ifndef LIBFDT_ENV_H |
| 3 | #define LIBFDT_ENV_H | 3 | #define LIBFDT_ENV_H |
| 4 | 4 | ||
| 5 | #include <linux/kernel.h> /* For INT_MAX */ | ||
| 5 | #include <linux/string.h> | 6 | #include <linux/string.h> |
| 6 | 7 | ||
| 7 | #include <asm/byteorder.h> | 8 | #include <asm/byteorder.h> |
diff --git a/include/linux/of.h b/include/linux/of.h index bf577ca3c8e7..ab96025b2382 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
| @@ -247,12 +247,6 @@ static inline unsigned long of_read_ulong(const __be32 *cell, int size) | |||
| 247 | #include <asm/prom.h> | 247 | #include <asm/prom.h> |
| 248 | #endif | 248 | #endif |
| 249 | 249 | ||
| 250 | /* Default #address and #size cells. Allow arch asm/prom.h to override */ | ||
| 251 | #if !defined(OF_ROOT_NODE_ADDR_CELLS_DEFAULT) | ||
| 252 | #define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 1 | ||
| 253 | #define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 | ||
| 254 | #endif | ||
| 255 | |||
| 256 | #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) | 250 | #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) |
| 257 | #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) | 251 | #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) |
| 258 | 252 | ||
| @@ -353,6 +347,8 @@ extern const void *of_get_property(const struct device_node *node, | |||
| 353 | const char *name, | 347 | const char *name, |
| 354 | int *lenp); | 348 | int *lenp); |
| 355 | extern struct device_node *of_get_cpu_node(int cpu, unsigned int *thread); | 349 | extern struct device_node *of_get_cpu_node(int cpu, unsigned int *thread); |
| 350 | extern struct device_node *of_get_next_cpu_node(struct device_node *prev); | ||
| 351 | |||
| 356 | #define for_each_property_of_node(dn, pp) \ | 352 | #define for_each_property_of_node(dn, pp) \ |
| 357 | for (pp = dn->properties; pp != NULL; pp = pp->next) | 353 | for (pp = dn->properties; pp != NULL; pp = pp->next) |
| 358 | 354 | ||
| @@ -758,6 +754,11 @@ static inline struct device_node *of_get_cpu_node(int cpu, | |||
| 758 | return NULL; | 754 | return NULL; |
| 759 | } | 755 | } |
| 760 | 756 | ||
| 757 | static inline struct device_node *of_get_next_cpu_node(struct device_node *prev) | ||
| 758 | { | ||
| 759 | return NULL; | ||
| 760 | } | ||
| 761 | |||
| 761 | static inline int of_n_addr_cells(struct device_node *np) | 762 | static inline int of_n_addr_cells(struct device_node *np) |
| 762 | { | 763 | { |
| 763 | return 0; | 764 | return 0; |
| @@ -1001,7 +1002,7 @@ static inline struct device_node *of_find_matching_node( | |||
| 1001 | 1002 | ||
| 1002 | static inline const char *of_node_get_device_type(const struct device_node *np) | 1003 | static inline const char *of_node_get_device_type(const struct device_node *np) |
| 1003 | { | 1004 | { |
| 1004 | return of_get_property(np, "type", NULL); | 1005 | return of_get_property(np, "device_type", NULL); |
| 1005 | } | 1006 | } |
| 1006 | 1007 | ||
| 1007 | static inline bool of_node_is_type(const struct device_node *np, const char *type) | 1008 | static inline bool of_node_is_type(const struct device_node *np, const char *type) |
| @@ -1228,6 +1229,10 @@ static inline int of_property_read_s32(const struct device_node *np, | |||
| 1228 | for (child = of_get_next_available_child(parent, NULL); child != NULL; \ | 1229 | for (child = of_get_next_available_child(parent, NULL); child != NULL; \ |
| 1229 | child = of_get_next_available_child(parent, child)) | 1230 | child = of_get_next_available_child(parent, child)) |
| 1230 | 1231 | ||
| 1232 | #define for_each_of_cpu_node(cpu) \ | ||
| 1233 | for (cpu = of_get_next_cpu_node(NULL); cpu != NULL; \ | ||
| 1234 | cpu = of_get_next_cpu_node(cpu)) | ||
| 1235 | |||
| 1231 | #define for_each_node_with_property(dn, prop_name) \ | 1236 | #define for_each_node_with_property(dn, prop_name) \ |
| 1232 | for (dn = of_find_node_with_property(NULL, prop_name); dn; \ | 1237 | for (dn = of_find_node_with_property(NULL, prop_name); dn; \ |
| 1233 | dn = of_find_node_with_property(dn, prop_name)) | 1238 | dn = of_find_node_with_property(dn, prop_name)) |
