Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/pinctrl/visconti/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  pinctrl-common.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2020 TOSHIBA CORPORATION
 * Copyright (c) 2020 Toshiba Electronic Devices & Storage Corporation
 * Copyright (c) 2020 Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
 */


#ifndef __VISCONTI_PINCTRL_COMMON_H__
#define __VISCONTI_PINCTRL_COMMON_H__

struct pinctrl_pin_desc;

/* PIN */
#define VISCONTI_PINS(pins_name, ...)  \
 static const unsigned int pins_name ## _pins[] = { __VA_ARGS__ }

struct visconti_desc_pin {
 struct pinctrl_pin_desc pin;
 unsigned int dsel_offset;
 unsigned int dsel_shift;
 unsigned int pude_offset;
 unsigned int pudsel_offset;
 unsigned int pud_shift;
};

#define VISCONTI_PIN(_pin, dsel, d_sh, pude, pudsel, p_sh) \
{        \
 .pin = _pin,      \
 .dsel_offset = dsel,     \
 .dsel_shift = d_sh,     \
 .pude_offset = pude,     \
 .pudsel_offset = pudsel,    \
 .pud_shift = p_sh,     \
}

/* Group */
#define VISCONTI_GROUPS(groups_name, ...) \
 static const char * const groups_name ## _grps[] = { __VA_ARGS__ }

struct visconti_mux {
 unsigned int offset;
 unsigned int mask;
 unsigned int val;
};

struct visconti_pin_group {
 const char *name;
 const unsigned int *pins;
 unsigned int nr_pins;
 struct visconti_mux mux;
};

#define VISCONTI_PIN_GROUP(group_name, off, msk, v) \
{       \
 .name = __stringify(group_name) "_grp",  \
 .pins = group_name ## _pins,   \
 .nr_pins = ARRAY_SIZE(group_name ## _pins), \
 .mux = {     \
  .offset = off,    \
  .mask = msk,    \
  .val = v,    \
 }      \
}

/* MUX */
struct visconti_pin_function {
 const char *name;
 const char * const *groups;
 unsigned int nr_groups;
};

#define VISCONTI_PIN_FUNCTION(func)  \
{      \
 .name = #func,    \
 .groups = func ## _grps,  \
 .nr_groups = ARRAY_SIZE(func ## _grps), \
}

/* chip dependent data */
struct visconti_pinctrl_devdata {
 const struct visconti_desc_pin *pins;
 unsigned int nr_pins;
 const struct visconti_pin_group *groups;
 unsigned int nr_groups;
 const struct visconti_pin_function *functions;
 unsigned int nr_functions;

 const struct visconti_mux *gpio_mux;

 void (*unlock)(void __iomem *base);
};

int visconti_pinctrl_probe(struct platform_device *pdev,
      const struct visconti_pinctrl_devdata *devdata);

#endif /* __VISCONTI_PINCTRL_COMMON_H__ */

Messung V0.5
C=95 H=92 G=93

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.