forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.3 KiB
62 lines
1.3 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* Marvell Berlin SoC pinctrl driver. |
|
* |
|
* Copyright (C) 2014 Marvell Technology Group Ltd. |
|
* |
|
* Antoine Ténart <[email protected]> |
|
*/ |
|
|
|
#ifndef __PINCTRL_BERLIN_H |
|
#define __PINCTRL_BERLIN_H |
|
|
|
struct berlin_desc_function { |
|
const char *name; |
|
u8 muxval; |
|
}; |
|
|
|
struct berlin_desc_group { |
|
const char *name; |
|
u8 offset; |
|
u8 bit_width; |
|
u8 lsb; |
|
struct berlin_desc_function *functions; |
|
}; |
|
|
|
struct berlin_pinctrl_desc { |
|
const struct berlin_desc_group *groups; |
|
unsigned ngroups; |
|
}; |
|
|
|
struct berlin_pinctrl_function { |
|
const char *name; |
|
const char **groups; |
|
unsigned ngroups; |
|
}; |
|
|
|
#define BERLIN_PINCTRL_GROUP(_name, _offset, _width, _lsb, ...) \ |
|
{ \ |
|
.name = _name, \ |
|
.offset = _offset, \ |
|
.bit_width = _width, \ |
|
.lsb = _lsb, \ |
|
.functions = (struct berlin_desc_function[]){ \ |
|
__VA_ARGS__, { } }, \ |
|
} |
|
|
|
#define BERLIN_PINCTRL_FUNCTION(_muxval, _name) \ |
|
{ \ |
|
.name = _name, \ |
|
.muxval = _muxval, \ |
|
} |
|
|
|
#define BERLIN_PINCTRL_FUNCTION_UNKNOWN {} |
|
|
|
int berlin_pinctrl_probe(struct platform_device *pdev, |
|
const struct berlin_pinctrl_desc *desc); |
|
|
|
int berlin_pinctrl_probe_regmap(struct platform_device *pdev, |
|
const struct berlin_pinctrl_desc *desc, |
|
struct regmap *regmap); |
|
|
|
#endif /* __PINCTRL_BERLIN_H */
|
|
|