162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * OF helpers for the GPIO API
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2007-2008  MontaVista Software, Inc.
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#ifndef __LINUX_OF_GPIO_H
1162306a36Sopenharmony_ci#define __LINUX_OF_GPIO_H
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <linux/compiler.h>
1462306a36Sopenharmony_ci#include <linux/gpio/driver.h>
1562306a36Sopenharmony_ci#include <linux/gpio.h>		/* FIXME: Shouldn't be here */
1662306a36Sopenharmony_ci#include <linux/of.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_cistruct device_node;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#ifdef CONFIG_OF_GPIO
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciextern int of_get_named_gpio(const struct device_node *np,
2362306a36Sopenharmony_ci			     const char *list_name, int index);
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#else /* CONFIG_OF_GPIO */
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci#include <linux/errno.h>
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci/* Drivers may not strictly depend on the GPIO support, so let them link. */
3062306a36Sopenharmony_cistatic inline int of_get_named_gpio(const struct device_node *np,
3162306a36Sopenharmony_ci                                   const char *propname, int index)
3262306a36Sopenharmony_ci{
3362306a36Sopenharmony_ci	return -ENOSYS;
3462306a36Sopenharmony_ci}
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#endif /* CONFIG_OF_GPIO */
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#endif /* __LINUX_OF_GPIO_H */
39