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

Quelle  rtl8366rb.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0+ */

#ifndef _RTL8366RB_H
#define _RTL8366RB_H

#include "realtek.h"

#define RTL8366RB_PORT_NUM_CPU  5
#define RTL8366RB_NUM_PORTS  6
#define RTL8366RB_PHY_NO_MAX  4
#define RTL8366RB_NUM_LEDGROUPS  4
#define RTL8366RB_PHY_ADDR_MAX  31

/* LED control registers */
/* The LED blink rate is global; it is used by all triggers in all groups. */
#define RTL8366RB_LED_BLINKRATE_REG  0x0430
#define RTL8366RB_LED_BLINKRATE_MASK  0x0007
#define RTL8366RB_LED_BLINKRATE_28MS  0x0000
#define RTL8366RB_LED_BLINKRATE_56MS  0x0001
#define RTL8366RB_LED_BLINKRATE_84MS  0x0002
#define RTL8366RB_LED_BLINKRATE_111MS  0x0003
#define RTL8366RB_LED_BLINKRATE_222MS  0x0004
#define RTL8366RB_LED_BLINKRATE_446MS  0x0005

/* LED trigger event for each group */
#define RTL8366RB_LED_CTRL_REG   0x0431
#define RTL8366RB_LED_CTRL_OFFSET(led_group) \
 (4 * (led_group))
#define RTL8366RB_LED_CTRL_MASK(led_group) \
 (0xf << RTL8366RB_LED_CTRL_OFFSET(led_group))

/* The RTL8366RB_LED_X_X registers are used to manually set the LED state only
 * when the corresponding LED group in RTL8366RB_LED_CTRL_REG is
 * RTL8366RB_LEDGROUP_FORCE. Otherwise, it is ignored.
 */

#define RTL8366RB_LED_0_1_CTRL_REG  0x0432
#define RTL8366RB_LED_2_3_CTRL_REG  0x0433
#define RTL8366RB_LED_X_X_CTRL_REG(led_group) \
 ((led_group) <= 1 ? \
  RTL8366RB_LED_0_1_CTRL_REG : \
  RTL8366RB_LED_2_3_CTRL_REG)
#define RTL8366RB_LED_0_X_CTRL_MASK  GENMASK(5, 0)
#define RTL8366RB_LED_X_1_CTRL_MASK  GENMASK(11, 6)
#define RTL8366RB_LED_2_X_CTRL_MASK  GENMASK(5, 0)
#define RTL8366RB_LED_X_3_CTRL_MASK  GENMASK(11, 6)

enum rtl8366_ledgroup_mode {
 RTL8366RB_LEDGROUP_OFF   = 0x0,
 RTL8366RB_LEDGROUP_DUP_COL  = 0x1,
 RTL8366RB_LEDGROUP_LINK_ACT  = 0x2,
 RTL8366RB_LEDGROUP_SPD1000  = 0x3,
 RTL8366RB_LEDGROUP_SPD100  = 0x4,
 RTL8366RB_LEDGROUP_SPD10  = 0x5,
 RTL8366RB_LEDGROUP_SPD1000_ACT  = 0x6,
 RTL8366RB_LEDGROUP_SPD100_ACT  = 0x7,
 RTL8366RB_LEDGROUP_SPD10_ACT  = 0x8,
 RTL8366RB_LEDGROUP_SPD100_10_ACT = 0x9,
 RTL8366RB_LEDGROUP_FIBER  = 0xa,
 RTL8366RB_LEDGROUP_AN_FAULT  = 0xb,
 RTL8366RB_LEDGROUP_LINK_RX  = 0xc,
 RTL8366RB_LEDGROUP_LINK_TX  = 0xd,
 RTL8366RB_LEDGROUP_MASTER  = 0xe,
 RTL8366RB_LEDGROUP_FORCE  = 0xf,

 __RTL8366RB_LEDGROUP_MODE_MAX
};

#if IS_ENABLED(CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS)

struct rtl8366rb_led {
 u8 port_num;
 u8 led_group;
 struct realtek_priv *priv;
 struct led_classdev cdev;
};

int rtl8366rb_setup_leds(struct realtek_priv *priv);

#else

static inline int rtl8366rb_setup_leds(struct realtek_priv *priv)
{
 return 0;
}

#endif /* IS_ENABLED(CONFIG_LEDS_CLASS) */

/**
 * struct rtl8366rb - RTL8366RB-specific data
 * @max_mtu: per-port max MTU setting
 * @pvid_enabled: if PVID is set for respective port
 * @leds: per-port and per-ledgroup led info
 */

struct rtl8366rb {
 unsigned int max_mtu[RTL8366RB_NUM_PORTS];
 bool pvid_enabled[RTL8366RB_NUM_PORTS];
#if IS_ENABLED(CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS)
 struct rtl8366rb_led leds[RTL8366RB_NUM_PORTS][RTL8366RB_NUM_LEDGROUPS];
#endif
};

/* This code is used also with LEDs disabled */
int rb8366rb_set_ledgroup_mode(struct realtek_priv *priv,
          u8 led_group,
          enum rtl8366_ledgroup_mode mode);

#endif /* _RTL8366RB_H */

Messung V0.5
C=93 H=100 G=96

¤ 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.