Commit 8ddb10eae0c0e6936c69b19c21aaa2f6e0433717
Committed by
Gerald Van Baren
1 parent
d8fffa057c
Exists in
master
and in
55 other branches
fdt: Add a do_fixup_by_path_string() function
The do_fixup_by_path_string() will set the specified node's property to the value contained in "status". It would just be an inline wrapper for do_fixup_by_path() that calls strlen on the argument. Signed-off-by: Chunhe Lan <Chunhe.Lan@freescale.com>
Showing 1 changed file with 7 additions and 0 deletions Inline Diff
include/fdt_support.h
1 | /* | 1 | /* |
2 | * (C) Copyright 2007 | 2 | * (C) Copyright 2007 |
3 | * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com | 3 | * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com |
4 | * | 4 | * |
5 | * See file CREDITS for list of people who contributed to this | 5 | * See file CREDITS for list of people who contributed to this |
6 | * project. | 6 | * project. |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or | 8 | * This program is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU General Public License as | 9 | * modify it under the terms of the GNU General Public License as |
10 | * published by the Free Software Foundation; either version 2 of | 10 | * published by the Free Software Foundation; either version 2 of |
11 | * the License, or (at your option) any later version. | 11 | * the License, or (at your option) any later version. |
12 | * | 12 | * |
13 | * This program is distributed in the hope that it will be useful, | 13 | * This program is distributed in the hope that it will be useful, |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | * GNU General Public License for more details. | 16 | * GNU General Public License for more details. |
17 | * | 17 | * |
18 | * You should have received a copy of the GNU General Public License | 18 | * You should have received a copy of the GNU General Public License |
19 | * along with this program; if not, write to the Free Software | 19 | * along with this program; if not, write to the Free Software |
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
21 | * MA 02111-1307 USA | 21 | * MA 02111-1307 USA |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #ifndef __FDT_SUPPORT_H | 24 | #ifndef __FDT_SUPPORT_H |
25 | #define __FDT_SUPPORT_H | 25 | #define __FDT_SUPPORT_H |
26 | 26 | ||
27 | #ifdef CONFIG_OF_LIBFDT | 27 | #ifdef CONFIG_OF_LIBFDT |
28 | 28 | ||
29 | #include <fdt.h> | 29 | #include <fdt.h> |
30 | 30 | ||
31 | u32 fdt_getprop_u32_default(void *fdt, const char *path, const char *prop, | 31 | u32 fdt_getprop_u32_default(void *fdt, const char *path, const char *prop, |
32 | const u32 dflt); | 32 | const u32 dflt); |
33 | int fdt_chosen(void *fdt, int force); | 33 | int fdt_chosen(void *fdt, int force); |
34 | int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int force); | 34 | int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int force); |
35 | void do_fixup_by_path(void *fdt, const char *path, const char *prop, | 35 | void do_fixup_by_path(void *fdt, const char *path, const char *prop, |
36 | const void *val, int len, int create); | 36 | const void *val, int len, int create); |
37 | void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop, | 37 | void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop, |
38 | u32 val, int create); | 38 | u32 val, int create); |
39 | |||
40 | static inline void do_fixup_by_path_string(void *fdt, const char *path, | ||
41 | const char *prop, const char *status) | ||
42 | { | ||
43 | do_fixup_by_path(fdt, path, prop, status, strlen(status) + 1, 1); | ||
44 | } | ||
45 | |||
39 | void do_fixup_by_prop(void *fdt, | 46 | void do_fixup_by_prop(void *fdt, |
40 | const char *pname, const void *pval, int plen, | 47 | const char *pname, const void *pval, int plen, |
41 | const char *prop, const void *val, int len, | 48 | const char *prop, const void *val, int len, |
42 | int create); | 49 | int create); |
43 | void do_fixup_by_prop_u32(void *fdt, | 50 | void do_fixup_by_prop_u32(void *fdt, |
44 | const char *pname, const void *pval, int plen, | 51 | const char *pname, const void *pval, int plen, |
45 | const char *prop, u32 val, int create); | 52 | const char *prop, u32 val, int create); |
46 | void do_fixup_by_compat(void *fdt, const char *compat, | 53 | void do_fixup_by_compat(void *fdt, const char *compat, |
47 | const char *prop, const void *val, int len, int create); | 54 | const char *prop, const void *val, int len, int create); |
48 | void do_fixup_by_compat_u32(void *fdt, const char *compat, | 55 | void do_fixup_by_compat_u32(void *fdt, const char *compat, |
49 | const char *prop, u32 val, int create); | 56 | const char *prop, u32 val, int create); |
50 | int fdt_fixup_memory(void *blob, u64 start, u64 size); | 57 | int fdt_fixup_memory(void *blob, u64 start, u64 size); |
51 | int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks); | 58 | int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks); |
52 | void fdt_fixup_ethernet(void *fdt); | 59 | void fdt_fixup_ethernet(void *fdt); |
53 | int fdt_find_and_setprop(void *fdt, const char *node, const char *prop, | 60 | int fdt_find_and_setprop(void *fdt, const char *node, const char *prop, |
54 | const void *val, int len, int create); | 61 | const void *val, int len, int create); |
55 | void fdt_fixup_qe_firmware(void *fdt); | 62 | void fdt_fixup_qe_firmware(void *fdt); |
56 | 63 | ||
57 | #ifdef CONFIG_HAS_FSL_DR_USB | 64 | #ifdef CONFIG_HAS_FSL_DR_USB |
58 | void fdt_fixup_dr_usb(void *blob, bd_t *bd); | 65 | void fdt_fixup_dr_usb(void *blob, bd_t *bd); |
59 | #else | 66 | #else |
60 | static inline void fdt_fixup_dr_usb(void *blob, bd_t *bd) {} | 67 | static inline void fdt_fixup_dr_usb(void *blob, bd_t *bd) {} |
61 | #endif /* CONFIG_HAS_FSL_DR_USB */ | 68 | #endif /* CONFIG_HAS_FSL_DR_USB */ |
62 | 69 | ||
63 | #if defined(CONFIG_SYS_FSL_SEC_COMPAT) | 70 | #if defined(CONFIG_SYS_FSL_SEC_COMPAT) |
64 | void fdt_fixup_crypto_node(void *blob, int sec_rev); | 71 | void fdt_fixup_crypto_node(void *blob, int sec_rev); |
65 | #else | 72 | #else |
66 | static inline void fdt_fixup_crypto_node(void *blob, int sec_rev) {} | 73 | static inline void fdt_fixup_crypto_node(void *blob, int sec_rev) {} |
67 | #endif | 74 | #endif |
68 | 75 | ||
69 | #ifdef CONFIG_PCI | 76 | #ifdef CONFIG_PCI |
70 | #include <pci.h> | 77 | #include <pci.h> |
71 | int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose); | 78 | int fdt_pci_dma_ranges(void *blob, int phb_off, struct pci_controller *hose); |
72 | #endif | 79 | #endif |
73 | 80 | ||
74 | #ifdef CONFIG_OF_BOARD_SETUP | 81 | #ifdef CONFIG_OF_BOARD_SETUP |
75 | void ft_board_setup(void *blob, bd_t *bd); | 82 | void ft_board_setup(void *blob, bd_t *bd); |
76 | void ft_cpu_setup(void *blob, bd_t *bd); | 83 | void ft_cpu_setup(void *blob, bd_t *bd); |
77 | void ft_pci_setup(void *blob, bd_t *bd); | 84 | void ft_pci_setup(void *blob, bd_t *bd); |
78 | #endif | 85 | #endif |
79 | 86 | ||
80 | void set_working_fdt_addr(void *addr); | 87 | void set_working_fdt_addr(void *addr); |
81 | int fdt_resize(void *blob); | 88 | int fdt_resize(void *blob); |
82 | int fdt_increase_size(void *fdt, int add_len); | 89 | int fdt_increase_size(void *fdt, int add_len); |
83 | 90 | ||
84 | int fdt_fixup_nor_flash_size(void *blob); | 91 | int fdt_fixup_nor_flash_size(void *blob); |
85 | 92 | ||
86 | void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size); | 93 | void fdt_fixup_mtdparts(void *fdt, void *node_info, int node_info_size); |
87 | void fdt_del_node_and_alias(void *blob, const char *alias); | 94 | void fdt_del_node_and_alias(void *blob, const char *alias); |
88 | u64 fdt_translate_address(void *blob, int node_offset, const u32 *in_addr); | 95 | u64 fdt_translate_address(void *blob, int node_offset, const u32 *in_addr); |
89 | int fdt_node_offset_by_compat_reg(void *blob, const char *compat, | 96 | int fdt_node_offset_by_compat_reg(void *blob, const char *compat, |
90 | phys_addr_t compat_off); | 97 | phys_addr_t compat_off); |
91 | int fdt_alloc_phandle(void *blob); | 98 | int fdt_alloc_phandle(void *blob); |
92 | int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle); | 99 | int fdt_set_phandle(void *fdt, int nodeoffset, uint32_t phandle); |
93 | int fdt_create_phandle(void *fdt, int nodeoffset); | 100 | int fdt_create_phandle(void *fdt, int nodeoffset); |
94 | int fdt_add_edid(void *blob, const char *compat, unsigned char *buf); | 101 | int fdt_add_edid(void *blob, const char *compat, unsigned char *buf); |
95 | 102 | ||
96 | int fdt_verify_alias_address(void *fdt, int anode, const char *alias, | 103 | int fdt_verify_alias_address(void *fdt, int anode, const char *alias, |
97 | u64 addr); | 104 | u64 addr); |
98 | u64 fdt_get_base_address(void *fdt, int node); | 105 | u64 fdt_get_base_address(void *fdt, int node); |
99 | 106 | ||
100 | #endif /* ifdef CONFIG_OF_LIBFDT */ | 107 | #endif /* ifdef CONFIG_OF_LIBFDT */ |
101 | #endif /* ifndef __FDT_SUPPORT_H */ | 108 | #endif /* ifndef __FDT_SUPPORT_H */ |
102 | 109 |