cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pinconf.h (2544B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Interface the pinconfig portions of the pinctrl subsystem
      4 *
      5 * Copyright (C) 2011 ST-Ericsson SA
      6 * Written on behalf of Linaro for ST-Ericsson
      7 * This interface is used in the core to keep track of pins.
      8 *
      9 * Author: Linus Walleij <linus.walleij@linaro.org>
     10 */
     11#ifndef __LINUX_PINCTRL_PINCONF_H
     12#define __LINUX_PINCTRL_PINCONF_H
     13
     14#include <linux/types.h>
     15
     16struct pinctrl_dev;
     17struct seq_file;
     18
     19/**
     20 * struct pinconf_ops - pin config operations, to be implemented by
     21 * pin configuration capable drivers.
     22 * @is_generic: for pin controllers that want to use the generic interface,
     23 *	this flag tells the framework that it's generic.
     24 * @pin_config_get: get the config of a certain pin, if the requested config
     25 *	is not available on this controller this should return -ENOTSUPP
     26 *	and if it is available but disabled it should return -EINVAL
     27 * @pin_config_set: configure an individual pin
     28 * @pin_config_group_get: get configurations for an entire pin group; should
     29 *	return -ENOTSUPP and -EINVAL using the same rules as pin_config_get.
     30 * @pin_config_group_set: configure all pins in a group
     31 * @pin_config_dbg_show: optional debugfs display hook that will provide
     32 *	per-device info for a certain pin in debugfs
     33 * @pin_config_group_dbg_show: optional debugfs display hook that will provide
     34 *	per-device info for a certain group in debugfs
     35 * @pin_config_config_dbg_show: optional debugfs display hook that will decode
     36 *	and display a driver's pin configuration parameter
     37 */
     38struct pinconf_ops {
     39#ifdef CONFIG_GENERIC_PINCONF
     40	bool is_generic;
     41#endif
     42	int (*pin_config_get) (struct pinctrl_dev *pctldev,
     43			       unsigned pin,
     44			       unsigned long *config);
     45	int (*pin_config_set) (struct pinctrl_dev *pctldev,
     46			       unsigned pin,
     47			       unsigned long *configs,
     48			       unsigned num_configs);
     49	int (*pin_config_group_get) (struct pinctrl_dev *pctldev,
     50				     unsigned selector,
     51				     unsigned long *config);
     52	int (*pin_config_group_set) (struct pinctrl_dev *pctldev,
     53				     unsigned selector,
     54				     unsigned long *configs,
     55				     unsigned num_configs);
     56	void (*pin_config_dbg_show) (struct pinctrl_dev *pctldev,
     57				     struct seq_file *s,
     58				     unsigned offset);
     59	void (*pin_config_group_dbg_show) (struct pinctrl_dev *pctldev,
     60					   struct seq_file *s,
     61					   unsigned selector);
     62	void (*pin_config_config_dbg_show) (struct pinctrl_dev *pctldev,
     63					    struct seq_file *s,
     64					    unsigned long config);
     65};
     66
     67#endif /* __LINUX_PINCTRL_PINCONF_H */