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


Quelle  loongson_i2s.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * ALSA I2S interface for the Loongson platform
 *
 * Copyright (C) 2023 Loongson Technology Corporation Limited
 * Author: Yingkun Meng <mengyingkun@loongson.cn>
 */


#ifndef _LOONGSON_I2S_H
#define _LOONGSON_I2S_H

#include <linux/regmap.h>
#include <sound/dmaengine_pcm.h>

/* I2S Common Registers */
#define LS_I2S_VER 0x00 /* I2S Version */
#define LS_I2S_CFG 0x04 /* I2S Config */
#define LS_I2S_CTRL 0x08 /* I2S Control */
#define LS_I2S_RX_DATA 0x0C /* I2S DMA RX Address */
#define LS_I2S_TX_DATA 0x10 /* I2S DMA TX Address */

/* 2K2000 I2S Specify Registers */
#define LS_I2S_CFG1 0x14 /* I2S Config1 */

/* 7A2000 I2S Specify Registers */
#define LS_I2S_TX_ORDER 0x100 /* TX DMA Order */
#define LS_I2S_RX_ORDER 0x110 /* RX DMA Order */

/* Loongson I2S Control Register */
#define I2S_CTRL_MCLK_READY BIT(16) /* MCLK ready */
#define I2S_CTRL_MASTER  BIT(15) /* Master mode */
#define I2S_CTRL_MSB  BIT(14) /* MSB bit order */
#define I2S_CTRL_RX_EN  BIT(13) /* RX enable */
#define I2S_CTRL_TX_EN  BIT(12) /* TX enable */
#define I2S_CTRL_RX_DMA_EN BIT(11) /* DMA RX enable */
#define I2S_CTRL_CLK_READY BIT(8)  /* BCLK ready */
#define I2S_CTRL_TX_DMA_EN BIT(7)  /* DMA TX enable */
#define I2S_CTRL_RESET  BIT(4)  /* Controller soft reset */
#define I2S_CTRL_MCLK_EN BIT(3)  /* Enable MCLK */
#define I2S_CTRL_RX_INT_EN BIT(1)  /* RX interrupt enable */
#define I2S_CTRL_TX_INT_EN BIT(0)  /* TX interrupt enable */

#define LS_I2S_DRVNAME  "loongson-i2s"

struct loongson_dma_data {
 dma_addr_t dev_addr;  /* device physical address for DMA */
 void __iomem *order_addr; /* DMA order register */
 int irq;   /* DMA irq */
};

struct loongson_i2s {
 struct device *dev;
 union {
  struct snd_dmaengine_dai_dma_data playback_dma_data;
  struct loongson_dma_data tx_dma_data;
 };
 union {
  struct snd_dmaengine_dai_dma_data capture_dma_data;
  struct loongson_dma_data rx_dma_data;
 };
 struct regmap *regmap;
 void __iomem *reg_base;
 u32 rev_id;
 u32 clk_rate;
 u32 sysclk;
};

extern const struct dev_pm_ops loongson_i2s_pm;
extern struct snd_soc_dai_driver loongson_i2s_dai;

#endif

Messung V0.5
C=60 H=100 G=82

¤ 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