linux/drivers/pinctrl/uniphier/pinctrl-uniphier.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Copyright (C) 2015-2017 Socionext Inc.
 *   Author: Masahiro Yamada <[email protected]>
 */

#ifndef __PINCTRL_UNIPHIER_H__
#define __PINCTRL_UNIPHIER_H__

#include <linux/bits.h>
#include <linux/build_bug.h>
#include <linux/kernel.h>
#include <linux/types.h>

struct platform_device;

/* input enable control register bit */
#define UNIPHIER_PIN_IECTRL_SHIFT
#define UNIPHIER_PIN_IECTRL_BITS
#define UNIPHIER_PIN_IECTRL_MASK

/* drive strength control register number */
#define UNIPHIER_PIN_DRVCTRL_SHIFT
#define UNIPHIER_PIN_DRVCTRL_BITS
#define UNIPHIER_PIN_DRVCTRL_MASK

/* drive control type */
#define UNIPHIER_PIN_DRV_TYPE_SHIFT
#define UNIPHIER_PIN_DRV_TYPE_BITS
#define UNIPHIER_PIN_DRV_TYPE_MASK

/* pull-up / pull-down register number */
#define UNIPHIER_PIN_PUPDCTRL_SHIFT
#define UNIPHIER_PIN_PUPDCTRL_BITS
#define UNIPHIER_PIN_PUPDCTRL_MASK

/* direction of pull register */
#define UNIPHIER_PIN_PULL_DIR_SHIFT
#define UNIPHIER_PIN_PULL_DIR_BITS
#define UNIPHIER_PIN_PULL_DIR_MASK

#if UNIPHIER_PIN_PULL_DIR_SHIFT + UNIPHIER_PIN_PULL_DIR_BITS > BITS_PER_LONG
#error "unable to pack pin attributes."
#endif

#define UNIPHIER_PIN_IECTRL_NONE
#define UNIPHIER_PIN_IECTRL_EXIST

/* drive control type */
enum uniphier_pin_drv_type {};

/* direction of pull register (no pin supports bi-directional pull biasing) */
enum uniphier_pin_pull_dir {};

#define UNIPHIER_PIN_IECTRL(x)
#define UNIPHIER_PIN_DRVCTRL(x)
#define UNIPHIER_PIN_DRV_TYPE(x)
#define UNIPHIER_PIN_PUPDCTRL(x)
#define UNIPHIER_PIN_PULL_DIR(x)

#define UNIPHIER_PIN_ATTR_PACKED(iectrl, drvctrl, drv_type, pupdctrl, pull_dir)

static inline unsigned int uniphier_pin_get_iectrl(void *drv_data)
{}

static inline unsigned int uniphier_pin_get_drvctrl(void *drv_data)
{}

static inline unsigned int uniphier_pin_get_drv_type(void *drv_data)
{}

static inline unsigned int uniphier_pin_get_pupdctrl(void *drv_data)
{}

static inline unsigned int uniphier_pin_get_pull_dir(void *drv_data)
{}

struct uniphier_pinctrl_group {};

struct uniphier_pinmux_function {};

struct uniphier_pinctrl_socdata {};

#define UNIPHIER_PINCTRL_PIN(a, b, c, d, e, f, g)

#define __UNIPHIER_PINCTRL_GROUP(grp, mux)

#define UNIPHIER_PINCTRL_GROUP(grp)

#define UNIPHIER_PINCTRL_GROUP_GPIO(grp)

#define UNIPHIER_PINMUX_FUNCTION(func)

int uniphier_pinctrl_probe(struct platform_device *pdev,
			   const struct uniphier_pinctrl_socdata *socdata);

extern const struct dev_pm_ops uniphier_pinctrl_pm_ops;

#endif /* __PINCTRL_UNIPHIER_H__ */