Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  pinctrl-cv18xx.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2024 Inochi Amaoto <inochiama@outlook.com>
 */


#ifndef _PINCTRL_SOPHGO_CV18XX_H
#define _PINCTRL_SOPHGO_CV18XX_H

#include <linux/bits.h>
#include <linux/bitfield.h>
#include <linux/mutex.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/pinctrl/pinconf.h>

#include "pinctrl-sophgo.h"

enum cv1800_pin_io_type {
 IO_TYPE_1V8_ONLY = 0,
 IO_TYPE_1V8_OR_3V3 = 1,
 IO_TYPE_AUDIO = 2,
 IO_TYPE_ETH = 3
};

#define CV1800_PINCONF_AREA_SYS  0
#define CV1800_PINCONF_AREA_RTC  1

struct cv1800_pinmux {
 u16 offset;
 u8 area;
 u8 max;
};

struct cv1800_pinmux2 {
 u16 offset;
 u8 area;
 u8 max;
 u8 pfunc;
};

struct cv1800_pinconf {
 u16 offset;
 u8 area;
};

#define CV1800_PIN_HAVE_MUX2  BIT(0)
#define CV1800_PIN_IO_TYPE  GENMASK(2, 1)

#define CV1800_PIN_FLAG_IO_TYPE(type)  \
 FIELD_PREP_CONST(CV1800_PIN_IO_TYPE, type)
struct cv1800_pin {
 struct sophgo_pin  pin;
 u8    power_domain;
 struct cv1800_pinmux  mux;
 struct cv1800_pinmux2  mux2;
 struct cv1800_pinconf  conf;
};

#define sophgo_to_cv1800_pin(_pin)  \
 container_of((_pin), struct cv1800_pin, pin)

#define PIN_POWER_STATE_1V8  1800
#define PIN_POWER_STATE_3V3  3300

static inline enum cv1800_pin_io_type cv1800_pin_io_type(const struct cv1800_pin *pin)
{
 return FIELD_GET(CV1800_PIN_IO_TYPE, pin->pin.flags);
};

extern const struct pinctrl_ops cv1800_pctrl_ops;
extern const struct pinmux_ops cv1800_pmx_ops;
extern const struct pinconf_ops cv1800_pconf_ops;
extern const struct sophgo_cfg_ops cv1800_cfg_ops;

#define CV1800_FUNC_PIN(_id, _power_domain, _type,   \
   _mux_area, _mux_offset, _mux_func_max)  \
 {        \
  .pin = {      \
   .id = (_id),     \
   .flags = CV1800_PIN_FLAG_IO_TYPE(_type), \
  },       \
  .power_domain = (_power_domain),   \
  .mux = {      \
   .area = (_mux_area),    \
   .offset = (_mux_offset),   \
   .max = (_mux_func_max),    \
  },       \
 }

#define CV1800_GENERAL_PIN(_id, _power_domain, _type,   \
      _mux_area, _mux_offset, _mux_func_max, \
      _conf_area, _conf_offset)   \
 {        \
  .pin = {      \
   .id = (_id),     \
   .flags = CV1800_PIN_FLAG_IO_TYPE(_type), \
  },       \
  .power_domain = (_power_domain),   \
  .mux = {      \
   .area = (_mux_area),    \
   .offset = (_mux_offset),   \
   .max = (_mux_func_max),    \
  },       \
  .conf = {      \
   .area = (_conf_area),    \
   .offset = (_conf_offset),   \
  },       \
 }

#define CV1800_GENERATE_PIN_MUX2(_id, _power_domain, _type,  \
     _mux_area, _mux_offset, _mux_func_max, \
     _mux2_area, _mux2_offset,  \
     _mux2_func_max,   \
     _conf_area, _conf_offset)  \
 {        \
  .pin = {      \
   .id = (_id),     \
   .flags = CV1800_PIN_FLAG_IO_TYPE(_type) | \
     CV1800_PIN_HAVE_MUX2,   \
  },       \
  .power_domain = (_power_domain),   \
  .mux = {      \
   .area = (_mux_area),    \
   .offset = (_mux_offset),   \
   .max = (_mux_func_max),    \
  },       \
  .mux2 = {      \
   .area = (_mux2_area),    \
   .offset = (_mux2_offset),   \
   .max = (_mux2_func_max),   \
  },       \
  .conf = {      \
   .area = (_conf_area),    \
   .offset = (_conf_offset),   \
  },       \
 }

#endif

Messung V0.5
C=99 H=100 G=99

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






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge