cregit-Linux how code gets into the kernel

Release 4.14 drivers/pinctrl/pinctrl-adi2.h

Directory: drivers/pinctrl
/*
 * Pinctrl Driver for ADI GPIO2 controller
 *
 * Copyright 2007-2013 Analog Devices Inc.
 *
 * Licensed under the GPLv2 or later
 */

#ifndef PINCTRL_PINCTRL_ADI2_H

#define PINCTRL_PINCTRL_ADI2_H

#include <linux/pinctrl/pinctrl.h>

 /**
 * struct adi_pin_group - describes a pin group
 * @name: the name of this pin group
 * @pins: an array of pins
 * @num: the number of pins in this array
 */

struct adi_pin_group {
	
const char *name;
	
const unsigned *pins;
	
const unsigned num;
	
const unsigned short *mux;
};


#define ADI_PIN_GROUP(n, p, m)  \
	{                       \
                .name = n,      \
                .pins = p,      \
                .num = ARRAY_SIZE(p),   \
                .mux = m,                       \
        }

 /**
 * struct adi_pmx_func - describes function mux setting of pin groups
 * @name: the name of this function mux setting
 * @groups: an array of pin groups
 * @num_groups: the number of pin groups in this array
 * @mux: the function mux setting array, end by zero
 */

struct adi_pmx_func {
	
const char *name;
	
const char * const *groups;
	
const unsigned num_groups;
};


#define ADI_PMX_FUNCTION(n, g)		\
	{                                       \
                .name = n,                      \
                .groups = g,                    \
                .num_groups = ARRAY_SIZE(g),    \
        }

/**
 * struct adi_pinctrl_soc_data - ADI pin controller per-SoC configuration
 * @functions:  The functions supported on this SoC.
 * @nfunction:  The number of entries in @functions.
 * @groups:     An array describing all pin groups the pin SoC supports.
 * @ngroups:    The number of entries in @groups.
 * @pins:       An array describing all pins the pin controller affects.
 * @npins:      The number of entries in @pins.
 */

struct adi_pinctrl_soc_data {
	
const struct adi_pmx_func *functions;
	
int nfunctions;
	
const struct adi_pin_group *groups;
	
int ngroups;
	
const struct pinctrl_pin_desc *pins;
	
int npins;
};

void adi_pinctrl_soc_init(const struct adi_pinctrl_soc_data **soc);

#endif /* PINCTRL_PINCTRL_ADI2_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Sonic Zhang127100.00%2100.00%
Total127100.00%2100.00%
Directory: drivers/pinctrl
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.