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

Quelle  nfcmrvl.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Marvell NFC driver
 *
 * Copyright (C) 2014-2015, Marvell International Ltd.
 */


#ifndef _NFCMRVL_H_
#define _NFCMRVL_H_

#include "fw_dnld.h"

/* Define private flags: */
#define NFCMRVL_NCI_RUNNING   1
#define NFCMRVL_PHY_ERROR   2

#define NFCMRVL_EXT_COEX_ID   0xE0
#define NFCMRVL_NOT_ALLOWED_ID   0xE1
#define NFCMRVL_ACTIVE_ID   0xE2
#define NFCMRVL_EXT_COEX_ENABLE   1
#define NFCMRVL_GPIO_PIN_NFC_NOT_ALLOWED 0xA
#define NFCMRVL_GPIO_PIN_NFC_ACTIVE  0xB
#define NFCMRVL_NCI_MAX_EVENT_SIZE  260

/*
 * NCI FW Parameters
 */


#define NFCMRVL_PB_BAIL_OUT   0x11
#define NFCMRVL_PROP_REF_CLOCK   0xF0
#define NFCMRVL_PROP_SET_HI_CONFIG  0xF1

/*
 * HCI defines
 */


#define NFCMRVL_HCI_EVENT_HEADER_SIZE  0x04
#define NFCMRVL_HCI_EVENT_CODE   0x04
#define NFCMRVL_HCI_NFC_EVENT_CODE  0xFF
#define NFCMRVL_HCI_COMMAND_CODE  0x01
#define NFCMRVL_HCI_OGF    0x81
#define NFCMRVL_HCI_OCF    0xFE

enum nfcmrvl_phy {
 NFCMRVL_PHY_USB  = 0,
 NFCMRVL_PHY_UART = 1,
 NFCMRVL_PHY_I2C  = 2,
 NFCMRVL_PHY_SPI  = 3,
};

struct nfcmrvl_platform_data {
 /*
 * Generic
 */


 /* GPIO that is wired to RESET_N signal */
 int reset_n_io;
 /* Tell if transport is muxed in HCI one */
 bool hci_muxed;

 /*
 * UART specific
 */


 /* Tell if UART needs flow control at init */
 bool flow_control;
 /* Tell if firmware supports break control for power management */
 bool break_control;


 /*
 * I2C specific
 */


 unsigned int irq;
 unsigned int irq_polarity;
};

struct nfcmrvl_private {

 unsigned long flags;

 /* Platform configuration */
 struct nfcmrvl_platform_data config;

 /* Parent dev */
 struct nci_dev *ndev;

 /* FW download context */
 struct nfcmrvl_fw_dnld fw_dnld;

 /* FW download support */
 bool support_fw_dnld;

 /*
 * PHY related information
 */


 /* PHY driver context */
 void *drv_data;
 /* PHY device */
 struct device *dev;
 /* PHY type */
 enum nfcmrvl_phy phy;
 /* Low level driver ops */
 const struct nfcmrvl_if_ops *if_ops;
};

struct nfcmrvl_if_ops {
 int (*nci_open) (struct nfcmrvl_private *priv);
 int (*nci_close) (struct nfcmrvl_private *priv);
 int (*nci_send) (struct nfcmrvl_private *priv, struct sk_buff *skb);
 void (*nci_update_config)(struct nfcmrvl_private *priv,
      const void *param);
};

void nfcmrvl_nci_unregister_dev(struct nfcmrvl_private *priv);
int nfcmrvl_nci_recv_frame(struct nfcmrvl_private *priv, struct sk_buff *skb);
struct nfcmrvl_private *nfcmrvl_nci_register_dev(enum nfcmrvl_phy phy,
    void *drv_data,
    const struct nfcmrvl_if_ops *ops,
    struct device *dev,
    const struct nfcmrvl_platform_data *pdata);


void nfcmrvl_chip_reset(struct nfcmrvl_private *priv);
void nfcmrvl_chip_halt(struct nfcmrvl_private *priv);

int nfcmrvl_parse_dt(struct device_node *node,
       struct nfcmrvl_platform_data *pdata);

#endif

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

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