18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2014 NVIDIA CORPORATION.  All rights reserved.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#include <linux/of.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <soc/tegra/common.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cistatic const struct of_device_id tegra_machine_match[] = {
118c2ecf20Sopenharmony_ci	{ .compatible = "nvidia,tegra20", },
128c2ecf20Sopenharmony_ci	{ .compatible = "nvidia,tegra30", },
138c2ecf20Sopenharmony_ci	{ .compatible = "nvidia,tegra114", },
148c2ecf20Sopenharmony_ci	{ .compatible = "nvidia,tegra124", },
158c2ecf20Sopenharmony_ci	{ .compatible = "nvidia,tegra132", },
168c2ecf20Sopenharmony_ci	{ .compatible = "nvidia,tegra210", },
178c2ecf20Sopenharmony_ci	{ }
188c2ecf20Sopenharmony_ci};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cibool soc_is_tegra(void)
218c2ecf20Sopenharmony_ci{
228c2ecf20Sopenharmony_ci	const struct of_device_id *match;
238c2ecf20Sopenharmony_ci	struct device_node *root;
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	root = of_find_node_by_path("/");
268c2ecf20Sopenharmony_ci	if (!root)
278c2ecf20Sopenharmony_ci		return false;
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	match = of_match_node(tegra_machine_match, root);
308c2ecf20Sopenharmony_ci	of_node_put(root);
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	return match != NULL;
338c2ecf20Sopenharmony_ci}
34