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

Quelle  pinctrl-tangier.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Intel Tangier pinctrl functions
 *
 * Copyright (C) 2016, 2023 Intel Corporation
 *
 * Authors: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
 *          Raag Jadav <raag.jadav@intel.com>
 */


#ifndef PINCTRL_TANGIER_H
#define PINCTRL_TANGIER_H

#include <linux/spinlock_types.h>
#include <linux/types.h>

#include <linux/pinctrl/pinctrl.h>

#include "pinctrl-intel.h"

struct device;
struct platform_device;

#define TNG_FAMILY_NR   64
#define TNG_FAMILY_LEN   0x400

/**
 * struct tng_family - Tangier pin family description
 * @barno: MMIO BAR number where registers for this family reside
 * @pin_base: Starting pin of pins in this family
 * @npins: Number of pins in this family
 * @protected: True if family is protected by access
 * @regs: Family specific common registers
 */

struct tng_family {
 unsigned int barno;
 unsigned int pin_base;
 size_t npins;
 bool protected;
 void __iomem *regs;
};

#define TNG_FAMILY(b, s, e)    \
 {      \
  .barno = (b),    \
  .pin_base = (s),   \
  .npins = (e) - (s) + 1,   \
 }

#define TNG_FAMILY_PROTECTED(b, s, e)   \
 {      \
  .barno = (b),    \
  .pin_base = (s),   \
  .npins = (e) - (s) + 1,   \
  .protected = true,   \
 }

/**
 * struct tng_pinctrl - Tangier pinctrl private structure
 * @dev: Pointer to the device structure
 * @lock: Lock to serialize register access
 * @pctldesc: Pin controller description
 * @pctldev: Pointer to the pin controller device
 * @families: Array of families this pinctrl handles
 * @nfamilies: Number of families in the array
 * @functions: Array of functions
 * @nfunctions: Number of functions in the array
 * @groups: Array of pin groups
 * @ngroups: Number of groups in the array
 * @pins: Array of pins this pinctrl controls
 * @npins: Number of pins in the array
 */

struct tng_pinctrl {
 struct device *dev;
 raw_spinlock_t lock;
 struct pinctrl_desc pctldesc;
 struct pinctrl_dev *pctldev;

 /* Pin controller configuration */
 const struct tng_family *families;
 size_t nfamilies;
 const struct intel_function *functions;
 size_t nfunctions;
 const struct intel_pingroup *groups;
 size_t ngroups;
 const struct pinctrl_pin_desc *pins;
 size_t npins;
};

int devm_tng_pinctrl_probe(struct platform_device *pdev);

#endif /* PINCTRL_TANGIER_H */

Messung V0.5
C=93 H=97 G=94

¤ Dauer der Verarbeitung: 0.1 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.