Lines Matching +full:- +full:- +full:list +full:- +full:error +full:- +full:boards

3  * SPDX-License-Identifier:	GPL-2.0+
25 * turn this into a sparse list later, and keeps the ID with the name.
27 * NOTE: This list is basically a TODO list for things that need to be
29 * good reason why driver-model conversion is infeasible. Examples include
35 COMPAT(NVIDIA_TEGRA20_EMC, "nvidia,tegra20-emc"),
36 COMPAT(NVIDIA_TEGRA20_EMC_TABLE, "nvidia,tegra20-emc-table"),
37 COMPAT(NVIDIA_TEGRA20_NAND, "nvidia,tegra20-nand"),
38 COMPAT(NVIDIA_TEGRA124_XUSB_PADCTL, "nvidia,tegra124-xusb-padctl"),
39 COMPAT(NVIDIA_TEGRA210_XUSB_PADCTL, "nvidia,tegra210-xusb-padctl"),
41 COMPAT(SAMSUNG_EXYNOS5_SROMC, "samsung,exynos-sromc"),
42 COMPAT(SAMSUNG_S3C2440_I2C, "samsung,s3c2440-i2c"),
43 COMPAT(SAMSUNG_EXYNOS5_SOUND, "samsung,exynos-sound"),
44 COMPAT(WOLFSON_WM8994_CODEC, "wolfson,wm8994-codec"),
45 COMPAT(SAMSUNG_EXYNOS_USB_PHY, "samsung,exynos-usb-phy"),
46 COMPAT(SAMSUNG_EXYNOS5_USB3_PHY, "samsung,exynos5250-usb3-phy"),
47 COMPAT(SAMSUNG_EXYNOS_TMU, "samsung,exynos-tmu"),
48 COMPAT(SAMSUNG_EXYNOS_MIPI_DSI, "samsung,exynos-mipi-dsi"),
49 COMPAT(SAMSUNG_EXYNOS_DWMMC, "samsung,exynos-dwmmc"),
50 COMPAT(SAMSUNG_EXYNOS_MMC, "samsung,exynos-mmc"),
52 COMPAT(GENERIC_SPI_FLASH, "spi-flash"),
53 COMPAT(MAXIM_98095_CODEC, "maxim,max98095-codec"),
54 COMPAT(SAMSUNG_EXYNOS5_I2C, "samsung,exynos5-hsi2c"),
55 COMPAT(SAMSUNG_EXYNOS_SYSMMU, "samsung,sysmmu-v3.3"),
58 COMPAT(INTEL_QRK_MRC, "intel,quark-mrc"),
59 COMPAT(ALTERA_SOCFPGA_DWMAC, "altr,socfpga-stmmac"),
60 COMPAT(ALTERA_SOCFPGA_DWMMC, "altr,socfpga-dw-mshc"),
62 COMPAT(INTEL_BAYTRAIL_FSP, "intel,baytrail-fsp"),
63 COMPAT(INTEL_BAYTRAIL_FSP_MDP, "intel,baytrail-fsp-mdp"),
64 COMPAT(INTEL_IVYBRIDGE_FSP, "intel,ivybridge-fsp"),
65 COMPAT(COMPAT_SUNXI_NAND, "allwinner,sun4i-a10-nand"),
66 COMPAT(ALTERA_SOCFPGA_CLK, "altr,clk-mgr"),
67 COMPAT(ALTERA_SOCFPGA_PINCTRL_SINGLE, "pinctrl-single"),
68 COMPAT(ALTERA_SOCFPGA_H2F_BRG, "altr,socfpga-hps2fpga-bridge"),
69 COMPAT(ALTERA_SOCFPGA_LWH2F_BRG, "altr,socfpga-lwhps2fpga-bridge"),
70 COMPAT(ALTERA_SOCFPGA_F2H_BRG, "altr,socfpga-fpga2hps-bridge"),
71 COMPAT(ALTERA_SOCFPGA_F2SDR0, "altr,socfpga-fpga2sdram0-bridge"),
72 COMPAT(ALTERA_SOCFPGA_F2SDR1, "altr,socfpga-fpga2sdram1-bridge"),
73 COMPAT(ALTERA_SOCFPGA_F2SDR2, "altr,socfpga-fpga2sdram2-bridge"),
74 COMPAT(ROCKCHIP_NANDC, "rockchip,rk-nandc"),
107 (u32)(prop_after_size - prop), ((u32)(prop_end - prop))); in fdtdec_get_addr_size_fixed()
139 debug("(bad #address-cells)\n"); in fdtdec_get_addr_size_auto_parent()
145 debug("(bad #size-cells)\n"); in fdtdec_get_addr_size_auto_parent()
177 /* In case of 64-bit U-Boot use 32-bit platform dtb */ in fdtdec_get_addr_size()
201 int ret = -ENOENT; in fdtdec_get_pci_addr()
207 * the value of the node's parent node's #address-cells and in fdtdec_get_pci_addr()
208 * #size-cells. They need to be 3 and 2 accordingly. However, in fdtdec_get_pci_addr()
225 addr->phys_hi = fdt32_to_cpu(cell[0]); in fdtdec_get_pci_addr()
226 addr->phys_mid = fdt32_to_cpu(cell[1]); in fdtdec_get_pci_addr()
227 addr->phys_lo = fdt32_to_cpu(cell[1]); in fdtdec_get_pci_addr()
236 ret = -ENXIO; in fdtdec_get_pci_addr()
242 ret = -EINVAL; in fdtdec_get_pci_addr()
252 const char *list, *end; in fdtdec_get_pci_vendev() local
255 list = fdt_getprop(blob, node, "compatible", &len); in fdtdec_get_pci_vendev()
256 if (!list) in fdtdec_get_pci_vendev()
257 return -ENOENT; in fdtdec_get_pci_vendev()
259 end = list + len; in fdtdec_get_pci_vendev()
260 while (list < end) { in fdtdec_get_pci_vendev()
263 len = strlen(list); in fdtdec_get_pci_vendev()
265 s = strstr(list, "pci"); in fdtdec_get_pci_vendev()
282 list += (len + 1); in fdtdec_get_pci_vendev()
285 return -ENOENT; in fdtdec_get_pci_vendev()
294 barnum = addr->phys_hi & 0xff; in fdtdec_get_pci_bar32()
296 return -EINVAL; in fdtdec_get_pci_bar32()
298 barnum = (barnum - PCI_BASE_ADDRESS_0) / 4; in fdtdec_get_pci_bar32()
327 * http://www.mail-archive.com/u-boot@lists.denx.de/msg71598.html in fdtdec_get_is_enabled()
365 return -FDT_ERR_NOTFOUND; in fdtdec_next_compatible_subnode()
385 return -FDT_ERR_NOTFOUND; in fdtdec_next_alias()
440 path = fdt_string(blob, fdt32_to_cpu(prop->nameoff)); in fdtdec_add_aliases_for_id()
441 if (prop->len && 0 == strncmp(path, name, name_len)) in fdtdec_add_aliases_for_id()
442 node = fdt_path_offset(blob, prop->data); in fdtdec_add_aliases_for_id()
454 /* Make sure the node we found is actually in our list! */ in fdtdec_add_aliases_for_id()
455 found = -1; in fdtdec_add_aliases_for_id()
462 if (found == -1) { in fdtdec_add_aliases_for_id()
472 * Add this node to our list in the right place, and mark in fdtdec_add_aliases_for_id()
478 "a node be placed in the list in a " in fdtdec_add_aliases_for_id()
535 debug(" - %s, %s\n", name, prop); in fdtdec_get_alias_seq()
536 if (len < find_namelen || *prop != '/' || prop[len - 1] || in fdtdec_get_alias_seq()
544 if (val != -1) { in fdtdec_get_alias_seq()
552 return -ENOENT; in fdtdec_get_alias_seq()
571 return -FDT_ERR_NOTFOUND; in fdtdec_get_chosen_node()
579 * is not ready. So for now, just assert(). Boards which need an early in fdtdec_check_fdt()
594 if (!gd->fdt_blob || ((uintptr_t)gd->fdt_blob & 3) || in fdtdec_prepare_fdt()
595 fdt_check_header(gd->fdt_blob)) { in fdtdec_prepare_fdt()
599 …device tree binary found - please append one to U-Boot binary, use u-boot-dtb.bin or define CONFIG… in fdtdec_prepare_fdt()
601 if (gd->fdt_blob) { in fdtdec_prepare_fdt()
602 printf("fdt_blob=%p\n", gd->fdt_blob); in fdtdec_prepare_fdt()
603 print_buffer((ulong)gd->fdt_blob, gd->fdt_blob, 4, in fdtdec_prepare_fdt()
608 return -1; in fdtdec_prepare_fdt()
621 return -FDT_ERR_NOTFOUND; in fdtdec_lookup_phandle()
634 * @param err 0 if ok, or -FDT_ERR_NOTFOUND if the property is not
635 found, or -FDT_ERR_BADLAYOUT if not enough data
647 *err = -FDT_ERR_NOTFOUND; in get_prop_check_min_len()
649 *err = -FDT_ERR_BADLAYOUT; in get_prop_check_min_len()
681 return -FDT_ERR_NOTFOUND; in fdtdec_get_int_array_count()
718 const __be32 *list, *list_end; in fdtdec_parse_phandle_with_args() local
721 int node = -1; in fdtdec_parse_phandle_with_args()
724 /* Retrieve the phandle list property */ in fdtdec_parse_phandle_with_args()
725 list = fdt_getprop(blob, src_node, list_name, &size); in fdtdec_parse_phandle_with_args()
726 if (!list) in fdtdec_parse_phandle_with_args()
727 return -ENOENT; in fdtdec_parse_phandle_with_args()
728 list_end = list + size / sizeof(*list); in fdtdec_parse_phandle_with_args()
731 while (list < list_end) { in fdtdec_parse_phandle_with_args()
732 rc = -EINVAL; in fdtdec_parse_phandle_with_args()
739 phandle = be32_to_cpup(list++); in fdtdec_parse_phandle_with_args()
742 * Find the provider node and parse the #*-cells in fdtdec_parse_phandle_with_args()
745 * This is not needed if the cell count is hard-coded in fdtdec_parse_phandle_with_args()
763 -1); in fdtdec_parse_phandle_with_args()
764 if (count == -1) { in fdtdec_parse_phandle_with_args()
781 if (list + count > list_end) { in fdtdec_parse_phandle_with_args()
789 * All of the error cases above bail out of the loop, so at in fdtdec_parse_phandle_with_args()
792 * or return -ENOENT for an empty entry. in fdtdec_parse_phandle_with_args()
794 rc = -ENOENT; in fdtdec_parse_phandle_with_args()
808 out_args->node = node; in fdtdec_parse_phandle_with_args()
809 out_args->args_count = count; in fdtdec_parse_phandle_with_args()
811 out_args->args[i] = in fdtdec_parse_phandle_with_args()
812 be32_to_cpup(list++); in fdtdec_parse_phandle_with_args()
820 node = -1; in fdtdec_parse_phandle_with_args()
821 list += count; in fdtdec_parse_phandle_with_args()
827 * -ENOENT : index is for empty phandle in fdtdec_parse_phandle_with_args()
828 * -EINVAL : parsing error on data in fdtdec_parse_phandle_with_args()
829 * [1..n] : Number of phandle (count mode; when index = -1) in fdtdec_parse_phandle_with_args()
831 rc = index < 0 ? cur_index : -ENOENT; in fdtdec_parse_phandle_with_args()
926 return -1; in fdtdec_decode_region()
941 while (cells--) in fdtdec_get_number()
970 res->start = fdt_translate_address(fdt, node, ptr); in fdt_get_resource()
972 res->start = fdtdec_get_number(ptr, na); in fdt_get_resource()
974 res->end = res->start; in fdt_get_resource()
975 res->end += fdtdec_get_number(&ptr[na], ns) - 1; in fdt_get_resource()
983 return -FDT_ERR_NOTFOUND; in fdt_get_resource()
1009 if (config_node == -1) { in fdtdec_decode_memory_region()
1013 return -ENOENT; in fdtdec_decode_memory_region()
1019 snprintf(prop_name, sizeof(prop_name), "%s-memory%s", mem_type, in fdtdec_decode_memory_region()
1032 return -ENOENT; in fdtdec_decode_memory_region()
1036 * Not strictly correct - the memory may have multiple banks. We just in fdtdec_decode_memory_region()
1042 return -EINVAL; in fdtdec_decode_memory_region()
1045 snprintf(prop_name, sizeof(prop_name), "%s-offset%s", mem_type, in fdtdec_decode_memory_region()
1051 return -EINVAL; in fdtdec_decode_memory_region()
1074 result->typ = fdtdec_get_int(blob, node, name, 0); in decode_timing_property()
1075 result->min = result->typ; in decode_timing_property()
1076 result->max = result->typ; in decode_timing_property()
1078 ret = fdtdec_get_int_array(blob, node, name, &result->min, 3); in decode_timing_property()
1091 timings_node = fdt_subnode_offset(blob, parent, "display-timings"); in fdtdec_decode_display_timing()
1105 ret |= decode_timing_property(blob, node, "hback-porch", in fdtdec_decode_display_timing()
1106 &dt->hback_porch); in fdtdec_decode_display_timing()
1107 ret |= decode_timing_property(blob, node, "hfront-porch", in fdtdec_decode_display_timing()
1108 &dt->hfront_porch); in fdtdec_decode_display_timing()
1109 ret |= decode_timing_property(blob, node, "hactive", &dt->hactive); in fdtdec_decode_display_timing()
1110 ret |= decode_timing_property(blob, node, "hsync-len", &dt->hsync_len); in fdtdec_decode_display_timing()
1111 ret |= decode_timing_property(blob, node, "vback-porch", in fdtdec_decode_display_timing()
1112 &dt->vback_porch); in fdtdec_decode_display_timing()
1113 ret |= decode_timing_property(blob, node, "vfront-porch", in fdtdec_decode_display_timing()
1114 &dt->vfront_porch); in fdtdec_decode_display_timing()
1115 ret |= decode_timing_property(blob, node, "vactive", &dt->vactive); in fdtdec_decode_display_timing()
1116 ret |= decode_timing_property(blob, node, "vsync-len", &dt->vsync_len); in fdtdec_decode_display_timing()
1117 ret |= decode_timing_property(blob, node, "clock-frequency", in fdtdec_decode_display_timing()
1118 &dt->pixelclock); in fdtdec_decode_display_timing()
1120 dt->flags = 0; in fdtdec_decode_display_timing()
1121 val = fdtdec_get_int(blob, node, "vsync-active", -1); in fdtdec_decode_display_timing()
1122 if (val != -1) { in fdtdec_decode_display_timing()
1123 dt->flags |= val ? DISPLAY_FLAGS_VSYNC_HIGH : in fdtdec_decode_display_timing()
1126 val = fdtdec_get_int(blob, node, "hsync-active", -1); in fdtdec_decode_display_timing()
1127 if (val != -1) { in fdtdec_decode_display_timing()
1128 dt->flags |= val ? DISPLAY_FLAGS_HSYNC_HIGH : in fdtdec_decode_display_timing()
1131 val = fdtdec_get_int(blob, node, "de-active", -1); in fdtdec_decode_display_timing()
1132 if (val != -1) { in fdtdec_decode_display_timing()
1133 dt->flags |= val ? DISPLAY_FLAGS_DE_HIGH : in fdtdec_decode_display_timing()
1136 val = fdtdec_get_int(blob, node, "pixelclk-active", -1); in fdtdec_decode_display_timing()
1137 if (val != -1) { in fdtdec_decode_display_timing()
1138 dt->flags |= val ? DISPLAY_FLAGS_PIXDATA_POSEDGE : in fdtdec_decode_display_timing()
1143 dt->flags |= DISPLAY_FLAGS_INTERLACED; in fdtdec_decode_display_timing()
1145 dt->flags |= DISPLAY_FLAGS_DOUBLESCAN; in fdtdec_decode_display_timing()
1147 dt->flags |= DISPLAY_FLAGS_DOUBLECLK; in fdtdec_decode_display_timing()
1157 mem = fdt_path_offset(gd->fdt_blob, "/memory"); in fdtdec_setup_memory_size()
1160 return -EINVAL; in fdtdec_setup_memory_size()
1163 ret = fdt_get_resource(gd->fdt_blob, mem, "reg", 0, &res); in fdtdec_setup_memory_size()
1166 return -EINVAL; in fdtdec_setup_memory_size()
1169 gd->ram_size = (phys_size_t)(res.end - res.start + 1); in fdtdec_setup_memory_size()
1171 (unsigned long long)gd->ram_size); in fdtdec_setup_memory_size()
1182 mem = fdt_node_offset_by_prop_value(gd->fdt_blob, -1, "device_type", in fdtdec_setup_memory_banksize()
1186 return -EINVAL; in fdtdec_setup_memory_banksize()
1190 ret = fdt_get_resource(gd->fdt_blob, mem, "reg", reg++, &res); in fdtdec_setup_memory_banksize()
1191 if (ret == -FDT_ERR_NOTFOUND) { in fdtdec_setup_memory_banksize()
1193 mem = fdt_node_offset_by_prop_value(gd->fdt_blob, mem, in fdtdec_setup_memory_banksize()
1196 if (mem == -FDT_ERR_NOTFOUND) in fdtdec_setup_memory_banksize()
1199 ret = fdt_get_resource(gd->fdt_blob, mem, "reg", reg++, &res); in fdtdec_setup_memory_banksize()
1200 if (ret == -FDT_ERR_NOTFOUND) in fdtdec_setup_memory_banksize()
1204 return -EINVAL; in fdtdec_setup_memory_banksize()
1207 gd->bd->bi_dram[bank].start = (phys_addr_t)res.start; in fdtdec_setup_memory_banksize()
1208 gd->bd->bi_dram[bank].size = in fdtdec_setup_memory_banksize()
1209 (phys_size_t)(res.end - res.start + 1); in fdtdec_setup_memory_banksize()
1213 (unsigned long long)gd->bd->bi_dram[bank].start, in fdtdec_setup_memory_banksize()
1214 (unsigned long long)gd->bd->bi_dram[bank].size); in fdtdec_setup_memory_banksize()
1233 return -1; in uncompress_blob()
1236 return -EBADMSG; in uncompress_blob()
1242 return -ENOMEM; in uncompress_blob()
1248 return -ENOTSUPP; in uncompress_blob()
1262 return -EBADMSG; in uncompress_blob()
1270 return -ENOTSUPP; in uncompress_blob()
1284 gd->fdt_blob = __dtb_dt_spl_begin; in fdtdec_setup()
1286 gd->fdt_blob = __dtb_dt_begin; in fdtdec_setup()
1292 gd->fdt_blob = (ulong *)&_image_binary_end; in fdtdec_setup()
1294 gd->fdt_blob = (ulong *)&__bss_end; in fdtdec_setup()
1297 gd->fdt_blob = (ulong *)&_end; in fdtdec_setup()
1300 gd->fdt_blob_kern = (ulong *)ALIGN((ulong)gd->fdt_blob + in fdtdec_setup()
1301 fdt_totalsize(gd->fdt_blob), 8); in fdtdec_setup()
1302 if (fdt_check_header(gd->fdt_blob_kern)) in fdtdec_setup()
1303 gd->fdt_blob_kern = NULL; in fdtdec_setup()
1308 gd->fdt_blob = board_fdt_blob_setup(); in fdtdec_setup()
1312 return -1; in fdtdec_setup()
1318 gd->fdt_blob = (void *)prior_stage_fdt_address; in fdtdec_setup()
1320 gd->fdt_blob = (void *)env_get_ulong("fdtcontroladdr", 16, in fdtdec_setup()
1321 (uintptr_t)gd->fdt_blob); in fdtdec_setup()
1332 if (uncompress_blob(gd->fdt_blob, 0x1000000, &fdt_blob) == 0) in fdtdec_setup()
1333 gd->fdt_blob = fdt_blob; in fdtdec_setup()
1339 fdt_blob = locate_dtb_in_fit(gd->fdt_blob); in fdtdec_setup()
1341 gd->fdt_blob = fdt_blob; in fdtdec_setup()