| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __BOARD_H__ |
| #define __BOARD_H__ |
| |
| #include <linux/init.h> |
| #include <linux/of.h> |
| |
| struct board_staging_clk { |
| const char *clk; |
| const char *con_id; |
| const char *dev_id; |
| }; |
| |
| struct board_staging_dev { |
| /* Platform Device */ |
| struct platform_device *pdev; |
| /* Clocks (optional) */ |
| const struct board_staging_clk *clocks; |
| unsigned int nclocks; |
| /* Generic PM Domain (optional) */ |
| const char *domain; |
| }; |
| |
| struct resource; |
| |
| bool board_staging_dt_node_available(const struct resource *resource, |
| unsigned int num_resources); |
| int board_staging_gic_setup_xlate(const char *gic_match, unsigned int base); |
| void board_staging_gic_fixup_resources(struct resource *res, unsigned int nres); |
| int board_staging_register_clock(const struct board_staging_clk *bsc); |
| int board_staging_register_device(const struct board_staging_dev *dev); |
| void board_staging_register_devices(const struct board_staging_dev *devs, |
| unsigned int ndevs); |
| |
| #define board_staging(str, fn) \ |
| static int __init runtime_board_check(void) \ |
| { \ |
| if (of_machine_is_compatible(str)) \ |
| fn(); \ |
| \ |
| return 0; \ |
| } \ |
| \ |
| device_initcall(runtime_board_check) |
| |
| #endif /* __BOARD_H__ */ |