Nishanth Menon | 9a9f647 | 2024-02-12 13:47:17 -0600 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| 2 | /* |
| 3 | * Library to support common device tree manipulation for TI EVMs |
| 4 | * |
| 5 | * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com |
| 6 | */ |
| 7 | |
| 8 | #ifndef __FDT_OPS_H |
| 9 | #define __FDT_OPS_H |
| 10 | |
| 11 | #define TI_BOARD_NAME_MAX 20 |
| 12 | #define TI_FDT_FILE_MAX 200 |
| 13 | |
| 14 | /** |
| 15 | * struct ti_fdt_map - mapping of device tree blob name to board name |
| 16 | * @board_name: board_name up to TI_BOARD_NAME_MAX long |
| 17 | * @fdt_file_name: device tree blob name as described by kernel |
| 18 | */ |
| 19 | struct ti_fdt_map { |
| 20 | const char *board_name; |
| 21 | char *fdt_file_name; |
| 22 | }; |
| 23 | |
| 24 | /** |
| 25 | * ti_set_fdt_env - Find the correct device tree file name based on the |
| 26 | * board name and set 'fdtfile' env variable with correct folder |
| 27 | * structure appropriate to the architecture and Linux kernel's |
| 28 | * 'make install_dtbs' conventions. This function is invoked typically |
| 29 | * as part of board_late_init. |
| 30 | * |
| 31 | * fdt name is picked by: |
| 32 | * a) If a board name match is found, use the match |
| 33 | * b) If not, CONFIG_DEFAULT_FDT_FILE (Boot OS device tree) if that is defined |
| 34 | * and not null |
| 35 | * c) If not, Use CONFIG_DEFAULT_DEVICE_TREE (DT control for bootloader) |
| 36 | * |
| 37 | * @board_name: match to search with (max of TI_BOARD_NAME_MAX chars) |
| 38 | * @fdt_map: NULL terminated array of device tree file name matches. |
| 39 | */ |
| 40 | void ti_set_fdt_env(const char *board_name, struct ti_fdt_map *fdt_map); |
| 41 | |
| 42 | #endif /* __FDT_OPS_H */ |