mirror of
https://github.com/saymrwulf/pulp-runtime.git
synced 2026-06-06 00:03:25 +00:00
807 lines
47 KiB
C++
807 lines
47 KiB
C++
|
||
/* THIS FILE HAS BEEN GENERATED, DO NOT MODIFY IT.
|
||
*/
|
||
|
||
/*
|
||
* Copyright (C) 2018 ETH Zurich, University of Bologna
|
||
*
|
||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
* you may not use this file except in compliance with the License.
|
||
* You may obtain a copy of the License at
|
||
*
|
||
* http://www.apache.org/licenses/LICENSE-2.0
|
||
*
|
||
* Unless required by applicable law or agreed to in writing, software
|
||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
* See the License for the specific language governing permissions and
|
||
* limitations under the License.
|
||
*/
|
||
|
||
#ifndef __INCLUDE_ARCHI_UDMA_I2S_UDMA_I2S_V2_H__
|
||
#define __INCLUDE_ARCHI_UDMA_I2S_UDMA_I2S_V2_H__
|
||
|
||
#ifndef LANGUAGE_ASSEMBLY
|
||
|
||
#include <stdint.h>
|
||
#include "archi/utils.h"
|
||
|
||
#endif
|
||
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS
|
||
//
|
||
|
||
// RX Channel 0 I2S uDMA transfer address of associated buffer
|
||
#define UDMA_I2S_I2S_RX_SADDR_OFFSET 0x0
|
||
|
||
// RX Channel 0 I2S uDMA transfer size of buffer
|
||
#define UDMA_I2S_I2S_RX_SIZE_OFFSET 0x4
|
||
|
||
// RX Channel 0 I2S uDMA transfer configuration
|
||
#define UDMA_I2S_I2S_RX_CFG_OFFSET 0x8
|
||
|
||
// -
|
||
#define UDMA_I2S_I2S_RX_INITCFG_OFFSET 0xc
|
||
|
||
// TX Channel I2S uDMA transfer address of associated buffer
|
||
#define UDMA_I2S_I2S_TX_SADDR_OFFSET 0x10
|
||
|
||
// TX Channel I2S uDMA transfer size of buffer
|
||
#define UDMA_I2S_I2S_TX_SIZE_OFFSET 0x14
|
||
|
||
// TX Channel I2S uDMA transfer configuration
|
||
#define UDMA_I2S_I2S_TX_CFG_OFFSET 0x18
|
||
|
||
// -
|
||
#define UDMA_I2S_I2S_TX_INITCFG_OFFSET 0x1c
|
||
|
||
// Clock configuration for both master, slave and pdm
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_OFFSET 0x20
|
||
|
||
// Configuration of I2S slave
|
||
#define UDMA_I2S_I2S_SLV_SETUP_OFFSET 0x24
|
||
|
||
// Configuration of I2S master
|
||
#define UDMA_I2S_I2S_MST_SETUP_OFFSET 0x28
|
||
|
||
// Configuration of PDM module
|
||
#define UDMA_I2S_I2S_PDM_SETUP_OFFSET 0x2c
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS FIELDS
|
||
//
|
||
|
||
// Configure pointer to memory buffer: - Read: value of the pointer until transfer is over. Else returns 0 - Write: set Address Pointer to memory buffer start address (access: R/W)
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR_BIT 0
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR_WIDTH 16
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR_MASK 0xffff
|
||
|
||
// Buffer size in byte. (128kBytes maximum) - Read: buffer size left - Write: set buffer size (access: R/W)
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE_BIT 0
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE_WIDTH 17
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE_MASK 0x1ffff
|
||
|
||
// Channel continuous mode: -1'b0: disable -1'b1: enable At the end of the buffer the uDMA reloads the address and size and starts a new transfer. (access: R/W)
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS_BIT 0
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS_WIDTH 1
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS_MASK 0x1
|
||
|
||
// Channel transfer size used to increment uDMA buffer address pointer: - 2'b00: +1 (8 bits) - 2'b01: +2 (16 bits) - 2'b10: +4 (32 bits) - 2'b11: +0 (access: R/W)
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE_BIT 1
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE_WIDTH 2
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE_MASK 0x6
|
||
|
||
// Channel enable and start transfer: -1'b0: disable -1'b1: enable This signal is used also to queue a transfer if one is already ongoing. (access: R/W)
|
||
#define UDMA_I2S_I2S_RX_CFG_EN_BIT 4
|
||
#define UDMA_I2S_I2S_RX_CFG_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_RX_CFG_EN_MASK 0x10
|
||
|
||
// Channel clear and stop transfer: -1'b0: disable -1'b1: enable (access: W)
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR_BIT 5
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR_WIDTH 1
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR_MASK 0x20
|
||
|
||
// Transfer pending in queue status flag: -1'b0: free -1'b1: pending (access: R)
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING_BIT 5
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING_WIDTH 1
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING_MASK 0x20
|
||
|
||
// Configure pointer to memory buffer: - Read: value of the pointer until transfer is over. Else returns 0 - Write: set Address Pointer to memory buffer start address (access: R/W)
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR_BIT 0
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR_WIDTH 16
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR_MASK 0xffff
|
||
|
||
// Buffer size in byte. (128kBytes maximum) - Read: buffer size left - Write: set buffer size (access: R/W)
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE_BIT 0
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE_WIDTH 17
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE_MASK 0x1ffff
|
||
|
||
// Channel continuous mode: -1'b0: disable -1'b1: enable At the end of the buffer the uDMA reloads the address and size and starts a new transfer. (access: R/W)
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS_BIT 0
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS_WIDTH 1
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS_MASK 0x1
|
||
|
||
// Channel transfer size used to increment uDMA buffer address pointer: - 2'b00: +1 (8 bits) - 2'b01: +2 (16 bits) - 2'b10: +4 (32 bits) - 2'b11: +0 (access: R/W)
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE_BIT 1
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE_WIDTH 2
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE_MASK 0x6
|
||
|
||
// Channel enable and start transfer: -1'b0: disable -1'b1: enable This signal is used also to queue a transfer if one is already ongoing. (access: R/W)
|
||
#define UDMA_I2S_I2S_TX_CFG_EN_BIT 4
|
||
#define UDMA_I2S_I2S_TX_CFG_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_TX_CFG_EN_MASK 0x10
|
||
|
||
// Channel clear and stop transfer: -1'b0: disable -1'b1: enable (access: R/W)
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR_BIT 5
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR_WIDTH 1
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR_MASK 0x20
|
||
|
||
// Transfer pending in queue status flag: -1'b0: free -1'b1: pending (access: R)
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING_BIT 5
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING_WIDTH 1
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING_MASK 0x20
|
||
|
||
// LSB of master clock divider (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_BIT 0
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_WIDTH 8
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_MASK 0xff
|
||
|
||
// LSB of slave clock divider (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_BIT 8
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_WIDTH 8
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_MASK 0xff00
|
||
|
||
// MSBs of both master and slave clock divider (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_BIT 16
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_WIDTH 8
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_MASK 0xff0000
|
||
|
||
// Enables Slave clock (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_BIT 24
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_MASK 0x1000000
|
||
|
||
// Enables Master clock (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_BIT 25
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_MASK 0x2000000
|
||
|
||
// When enabled slave output clock is taken from PDM module (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_BIT 26
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_MASK 0x4000000
|
||
|
||
// When set uses external clock for slave (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_BIT 28
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_MASK 0x10000000
|
||
|
||
// Selects slave clock source(either ext or generated): -1’b0:selects master -1’b1:selects slave (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_BIT 29
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_MASK 0x20000000
|
||
|
||
// When set uses external clock for master (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_BIT 30
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_MASK 0x40000000
|
||
|
||
// Selects master clock source(either ext or generated): -1’b0:selects master -1’b1:selects slave (access: R/W)
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_BIT 31
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_WIDTH 1
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_MASK 0x80000000
|
||
|
||
// Sets how many words for each I2S phase (access: R/W)
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_BIT 0
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_WIDTH 3
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_MASK 0x7
|
||
|
||
// Sets how many bits per word (access: R/W)
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_BIT 8
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_WIDTH 5
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_MASK 0x1f00
|
||
|
||
// Enables LSB shifting (access: R/W)
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_BIT 16
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_WIDTH 1
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_MASK 0x10000
|
||
|
||
// Enables both channels (access: R/W)
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_BIT 17
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_WIDTH 1
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_MASK 0x20000
|
||
|
||
// Enables the Slave (access: R/W)
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_BIT 31
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_MASK 0x80000000
|
||
|
||
// Sets how many words for each I2S phase (access: R/W)
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_BIT 0
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_WIDTH 3
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_MASK 0x7
|
||
|
||
// Sets how many bits per word (access: R/W)
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_BIT 8
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_WIDTH 5
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_MASK 0x1f00
|
||
|
||
// Enables LSB shifting (access: R/W)
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_BIT 16
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_WIDTH 1
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_MASK 0x10000
|
||
|
||
// Enables both channels (access: R/W)
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_BIT 17
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_WIDTH 1
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_MASK 0x20000
|
||
|
||
// Enables the Master (access: R/W)
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN_BIT 31
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN_MASK 0x80000000
|
||
|
||
// Shifts the output of the filter (access: R/W)
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_BIT 0
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_WIDTH 3
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_MASK 0x7
|
||
|
||
// Sets the decimation ratio of the filter (access: R/W)
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_BIT 3
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_WIDTH 10
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_MASK 0x1ff8
|
||
|
||
// nan (access: R/W)
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_BIT 13
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_WIDTH 2
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_MASK 0x6000
|
||
|
||
// nan (access: R/W)
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN_BIT 31
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN_WIDTH 1
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN_MASK 0x80000000
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS STRUCTS
|
||
//
|
||
|
||
#ifndef LANGUAGE_ASSEMBLY
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int rx_saddr :16; // Configure pointer to memory buffer: - Read: value of the pointer until transfer is over. Else returns 0 - Write: set Address Pointer to memory buffer start address
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_rx_saddr_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int rx_size :17; // Buffer size in byte. (128kBytes maximum) - Read: buffer size left - Write: set buffer size
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_rx_size_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int continous :1 ; // Channel continuous mode: -1'b0: disable -1'b1: enable At the end of the buffer the uDMA reloads the address and size and starts a new transfer.
|
||
unsigned int datasize :2 ; // Channel transfer size used to increment uDMA buffer address pointer: - 2'b00: +1 (8 bits) - 2'b01: +2 (16 bits) - 2'b10: +4 (32 bits) - 2'b11: +0
|
||
unsigned int padding0:1 ;
|
||
unsigned int en :1 ; // Channel enable and start transfer: -1'b0: disable -1'b1: enable This signal is used also to queue a transfer if one is already ongoing.
|
||
unsigned int clr :1 ; // Channel clear and stop transfer: -1'b0: disable -1'b1: enable
|
||
unsigned int pending :1 ; // Transfer pending in queue status flag: -1'b0: free -1'b1: pending
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_rx_cfg_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_rx_initcfg_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int tx_saddr :16; // Configure pointer to memory buffer: - Read: value of the pointer until transfer is over. Else returns 0 - Write: set Address Pointer to memory buffer start address
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_tx_saddr_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int tx_size :17; // Buffer size in byte. (128kBytes maximum) - Read: buffer size left - Write: set buffer size
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_tx_size_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int continous :1 ; // Channel continuous mode: -1'b0: disable -1'b1: enable At the end of the buffer the uDMA reloads the address and size and starts a new transfer.
|
||
unsigned int datasize :2 ; // Channel transfer size used to increment uDMA buffer address pointer: - 2'b00: +1 (8 bits) - 2'b01: +2 (16 bits) - 2'b10: +4 (32 bits) - 2'b11: +0
|
||
unsigned int padding0:1 ;
|
||
unsigned int en :1 ; // Channel enable and start transfer: -1'b0: disable -1'b1: enable This signal is used also to queue a transfer if one is already ongoing.
|
||
unsigned int clr :1 ; // Channel clear and stop transfer: -1'b0: disable -1'b1: enable
|
||
unsigned int pending :1 ; // Transfer pending in queue status flag: -1'b0: free -1'b1: pending
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_tx_cfg_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_tx_initcfg_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int master_clk_div :8 ; // LSB of master clock divider
|
||
unsigned int slave_clk_div :8 ; // LSB of slave clock divider
|
||
unsigned int common_clk_div :8 ; // MSBs of both master and slave clock divider
|
||
unsigned int slave_clk_en :1 ; // Enables Slave clock
|
||
unsigned int master_clk_en :1 ; // Enables Master clock
|
||
unsigned int pdm_clk_en :1 ; // When enabled slave output clock is taken from PDM module
|
||
unsigned int padding0:1 ;
|
||
unsigned int slave_ext :1 ; // When set uses external clock for slave
|
||
unsigned int slave_num :1 ; // Selects slave clock source(either ext or generated): -1’b0:selects master -1’b1:selects slave
|
||
unsigned int master_ext :1 ; // When set uses external clock for master
|
||
unsigned int master_num :1 ; // Selects master clock source(either ext or generated): -1’b0:selects master -1’b1:selects slave
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_clkcfg_setup_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int slave_words :3 ; // Sets how many words for each I2S phase
|
||
unsigned int padding0:5 ;
|
||
unsigned int slave_bits :5 ; // Sets how many bits per word
|
||
unsigned int padding1:3 ;
|
||
unsigned int slave_lsb :1 ; // Enables LSB shifting
|
||
unsigned int slave_2ch :1 ; // Enables both channels
|
||
unsigned int padding2:13;
|
||
unsigned int slave_en :1 ; // Enables the Slave
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_slv_setup_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int master_words :3 ; // Sets how many words for each I2S phase
|
||
unsigned int padding0:5 ;
|
||
unsigned int master_bits :5 ; // Sets how many bits per word
|
||
unsigned int padding1:3 ;
|
||
unsigned int master_lsb :1 ; // Enables LSB shifting
|
||
unsigned int master_2ch :1 ; // Enables both channels
|
||
unsigned int padding2:13;
|
||
unsigned int master_en :1 ; // Enables the Master
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_mst_setup_t;
|
||
|
||
typedef union {
|
||
struct {
|
||
unsigned int pdm_shift :3 ; // Shifts the output of the filter
|
||
unsigned int pdm_decimation :10; // Sets the decimation ratio of the filter
|
||
unsigned int pdm_mode :2 ; // nan
|
||
unsigned int padding0:16;
|
||
unsigned int pdm_en :1 ; // nan
|
||
};
|
||
unsigned int raw;
|
||
} __attribute__((packed)) udma_i2s_i2s_pdm_setup_t;
|
||
|
||
#endif
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS STRUCTS
|
||
//
|
||
|
||
#ifdef __GVSOC__
|
||
|
||
class vp_udma_i2s_i2s_rx_saddr : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void rx_saddr_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_SADDR_RX_SADDR_BIT, UDMA_I2S_I2S_RX_SADDR_RX_SADDR_WIDTH); }
|
||
inline uint32_t rx_saddr_get() { return this->get_field(UDMA_I2S_I2S_RX_SADDR_RX_SADDR_BIT, UDMA_I2S_I2S_RX_SADDR_RX_SADDR_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_rx_size : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void rx_size_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_SIZE_RX_SIZE_BIT, UDMA_I2S_I2S_RX_SIZE_RX_SIZE_WIDTH); }
|
||
inline uint32_t rx_size_get() { return this->get_field(UDMA_I2S_I2S_RX_SIZE_RX_SIZE_BIT, UDMA_I2S_I2S_RX_SIZE_RX_SIZE_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_rx_cfg : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void continous_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_CFG_CONTINOUS_BIT, UDMA_I2S_I2S_RX_CFG_CONTINOUS_WIDTH); }
|
||
inline uint32_t continous_get() { return this->get_field(UDMA_I2S_I2S_RX_CFG_CONTINOUS_BIT, UDMA_I2S_I2S_RX_CFG_CONTINOUS_WIDTH); }
|
||
inline void datasize_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_CFG_DATASIZE_BIT, UDMA_I2S_I2S_RX_CFG_DATASIZE_WIDTH); }
|
||
inline uint32_t datasize_get() { return this->get_field(UDMA_I2S_I2S_RX_CFG_DATASIZE_BIT, UDMA_I2S_I2S_RX_CFG_DATASIZE_WIDTH); }
|
||
inline void en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_CFG_EN_BIT, UDMA_I2S_I2S_RX_CFG_EN_WIDTH); }
|
||
inline uint32_t en_get() { return this->get_field(UDMA_I2S_I2S_RX_CFG_EN_BIT, UDMA_I2S_I2S_RX_CFG_EN_WIDTH); }
|
||
inline void clr_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_CFG_CLR_BIT, UDMA_I2S_I2S_RX_CFG_CLR_WIDTH); }
|
||
inline uint32_t clr_get() { return this->get_field(UDMA_I2S_I2S_RX_CFG_CLR_BIT, UDMA_I2S_I2S_RX_CFG_CLR_WIDTH); }
|
||
inline void pending_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_RX_CFG_PENDING_BIT, UDMA_I2S_I2S_RX_CFG_PENDING_WIDTH); }
|
||
inline uint32_t pending_get() { return this->get_field(UDMA_I2S_I2S_RX_CFG_PENDING_BIT, UDMA_I2S_I2S_RX_CFG_PENDING_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_tx_saddr : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void tx_saddr_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_SADDR_TX_SADDR_BIT, UDMA_I2S_I2S_TX_SADDR_TX_SADDR_WIDTH); }
|
||
inline uint32_t tx_saddr_get() { return this->get_field(UDMA_I2S_I2S_TX_SADDR_TX_SADDR_BIT, UDMA_I2S_I2S_TX_SADDR_TX_SADDR_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_tx_size : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void tx_size_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_SIZE_TX_SIZE_BIT, UDMA_I2S_I2S_TX_SIZE_TX_SIZE_WIDTH); }
|
||
inline uint32_t tx_size_get() { return this->get_field(UDMA_I2S_I2S_TX_SIZE_TX_SIZE_BIT, UDMA_I2S_I2S_TX_SIZE_TX_SIZE_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_tx_cfg : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void continous_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_CFG_CONTINOUS_BIT, UDMA_I2S_I2S_TX_CFG_CONTINOUS_WIDTH); }
|
||
inline uint32_t continous_get() { return this->get_field(UDMA_I2S_I2S_TX_CFG_CONTINOUS_BIT, UDMA_I2S_I2S_TX_CFG_CONTINOUS_WIDTH); }
|
||
inline void datasize_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_CFG_DATASIZE_BIT, UDMA_I2S_I2S_TX_CFG_DATASIZE_WIDTH); }
|
||
inline uint32_t datasize_get() { return this->get_field(UDMA_I2S_I2S_TX_CFG_DATASIZE_BIT, UDMA_I2S_I2S_TX_CFG_DATASIZE_WIDTH); }
|
||
inline void en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_CFG_EN_BIT, UDMA_I2S_I2S_TX_CFG_EN_WIDTH); }
|
||
inline uint32_t en_get() { return this->get_field(UDMA_I2S_I2S_TX_CFG_EN_BIT, UDMA_I2S_I2S_TX_CFG_EN_WIDTH); }
|
||
inline void clr_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_CFG_CLR_BIT, UDMA_I2S_I2S_TX_CFG_CLR_WIDTH); }
|
||
inline uint32_t clr_get() { return this->get_field(UDMA_I2S_I2S_TX_CFG_CLR_BIT, UDMA_I2S_I2S_TX_CFG_CLR_WIDTH); }
|
||
inline void pending_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_TX_CFG_PENDING_BIT, UDMA_I2S_I2S_TX_CFG_PENDING_WIDTH); }
|
||
inline uint32_t pending_get() { return this->get_field(UDMA_I2S_I2S_TX_CFG_PENDING_BIT, UDMA_I2S_I2S_TX_CFG_PENDING_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_clkcfg_setup : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void master_clk_div_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_WIDTH); }
|
||
inline uint32_t master_clk_div_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_WIDTH); }
|
||
inline void slave_clk_div_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_WIDTH); }
|
||
inline uint32_t slave_clk_div_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_WIDTH); }
|
||
inline void common_clk_div_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_WIDTH); }
|
||
inline uint32_t common_clk_div_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_WIDTH); }
|
||
inline void slave_clk_en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_WIDTH); }
|
||
inline uint32_t slave_clk_en_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_WIDTH); }
|
||
inline void master_clk_en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_WIDTH); }
|
||
inline uint32_t master_clk_en_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_WIDTH); }
|
||
inline void pdm_clk_en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_WIDTH); }
|
||
inline uint32_t pdm_clk_en_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_WIDTH); }
|
||
inline void slave_ext_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_WIDTH); }
|
||
inline uint32_t slave_ext_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_WIDTH); }
|
||
inline void slave_num_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_WIDTH); }
|
||
inline uint32_t slave_num_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_WIDTH); }
|
||
inline void master_ext_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_WIDTH); }
|
||
inline uint32_t master_ext_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_WIDTH); }
|
||
inline void master_num_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_WIDTH); }
|
||
inline uint32_t master_num_get() { return this->get_field(UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_BIT, UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_slv_setup : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void slave_words_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_WIDTH); }
|
||
inline uint32_t slave_words_get() { return this->get_field(UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_WIDTH); }
|
||
inline void slave_bits_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_WIDTH); }
|
||
inline uint32_t slave_bits_get() { return this->get_field(UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_WIDTH); }
|
||
inline void slave_lsb_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_WIDTH); }
|
||
inline uint32_t slave_lsb_get() { return this->get_field(UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_WIDTH); }
|
||
inline void slave_2ch_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_WIDTH); }
|
||
inline uint32_t slave_2ch_get() { return this->get_field(UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_WIDTH); }
|
||
inline void slave_en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_WIDTH); }
|
||
inline uint32_t slave_en_get() { return this->get_field(UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_BIT, UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_mst_setup : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void master_words_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_WIDTH); }
|
||
inline uint32_t master_words_get() { return this->get_field(UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_WIDTH); }
|
||
inline void master_bits_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_WIDTH); }
|
||
inline uint32_t master_bits_get() { return this->get_field(UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_WIDTH); }
|
||
inline void master_lsb_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_WIDTH); }
|
||
inline uint32_t master_lsb_get() { return this->get_field(UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_WIDTH); }
|
||
inline void master_2ch_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_WIDTH); }
|
||
inline uint32_t master_2ch_get() { return this->get_field(UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_WIDTH); }
|
||
inline void master_en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_MST_SETUP_MASTER_EN_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_EN_WIDTH); }
|
||
inline uint32_t master_en_get() { return this->get_field(UDMA_I2S_I2S_MST_SETUP_MASTER_EN_BIT, UDMA_I2S_I2S_MST_SETUP_MASTER_EN_WIDTH); }
|
||
};
|
||
|
||
class vp_udma_i2s_i2s_pdm_setup : public vp::reg_32
|
||
{
|
||
public:
|
||
inline void pdm_shift_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_WIDTH); }
|
||
inline uint32_t pdm_shift_get() { return this->get_field(UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_WIDTH); }
|
||
inline void pdm_decimation_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_WIDTH); }
|
||
inline uint32_t pdm_decimation_get() { return this->get_field(UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_WIDTH); }
|
||
inline void pdm_mode_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_WIDTH); }
|
||
inline uint32_t pdm_mode_get() { return this->get_field(UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_WIDTH); }
|
||
inline void pdm_en_set(uint32_t value) { this->set_field(value, UDMA_I2S_I2S_PDM_SETUP_PDM_EN_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_EN_WIDTH); }
|
||
inline uint32_t pdm_en_get() { return this->get_field(UDMA_I2S_I2S_PDM_SETUP_PDM_EN_BIT, UDMA_I2S_I2S_PDM_SETUP_PDM_EN_WIDTH); }
|
||
};
|
||
|
||
#endif
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS GLOBAL STRUCT
|
||
//
|
||
|
||
#ifndef LANGUAGE_ASSEMBLY
|
||
|
||
typedef struct {
|
||
unsigned int i2s_rx_saddr ; // RX Channel 0 I2S uDMA transfer address of associated buffer
|
||
unsigned int i2s_rx_size ; // RX Channel 0 I2S uDMA transfer size of buffer
|
||
unsigned int i2s_rx_cfg ; // RX Channel 0 I2S uDMA transfer configuration
|
||
unsigned int i2s_rx_initcfg ; // -
|
||
unsigned int i2s_tx_saddr ; // TX Channel I2S uDMA transfer address of associated buffer
|
||
unsigned int i2s_tx_size ; // TX Channel I2S uDMA transfer size of buffer
|
||
unsigned int i2s_tx_cfg ; // TX Channel I2S uDMA transfer configuration
|
||
unsigned int i2s_tx_initcfg ; // -
|
||
unsigned int i2s_clkcfg_setup; // Clock configuration for both master, slave and pdm
|
||
unsigned int i2s_slv_setup ; // Configuration of I2S slave
|
||
unsigned int i2s_mst_setup ; // Configuration of I2S master
|
||
unsigned int i2s_pdm_setup ; // Configuration of PDM module
|
||
} __attribute__((packed)) udma_i2s_udma_i2s_t;
|
||
|
||
#endif
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS ACCESS FUNCTIONS
|
||
//
|
||
|
||
#ifndef LANGUAGE_ASSEMBLY
|
||
|
||
static inline uint32_t udma_i2s_i2s_rx_saddr_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_RX_SADDR_OFFSET); }
|
||
static inline void udma_i2s_i2s_rx_saddr_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_RX_SADDR_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_rx_size_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_RX_SIZE_OFFSET); }
|
||
static inline void udma_i2s_i2s_rx_size_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_RX_SIZE_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_rx_cfg_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_RX_CFG_OFFSET); }
|
||
static inline void udma_i2s_i2s_rx_cfg_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_RX_CFG_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_rx_initcfg_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_RX_INITCFG_OFFSET); }
|
||
static inline void udma_i2s_i2s_rx_initcfg_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_RX_INITCFG_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_tx_saddr_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_TX_SADDR_OFFSET); }
|
||
static inline void udma_i2s_i2s_tx_saddr_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_TX_SADDR_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_tx_size_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_TX_SIZE_OFFSET); }
|
||
static inline void udma_i2s_i2s_tx_size_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_TX_SIZE_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_tx_cfg_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_TX_CFG_OFFSET); }
|
||
static inline void udma_i2s_i2s_tx_cfg_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_TX_CFG_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_tx_initcfg_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_TX_INITCFG_OFFSET); }
|
||
static inline void udma_i2s_i2s_tx_initcfg_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_TX_INITCFG_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_clkcfg_setup_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_CLKCFG_SETUP_OFFSET); }
|
||
static inline void udma_i2s_i2s_clkcfg_setup_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_CLKCFG_SETUP_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_slv_setup_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_SLV_SETUP_OFFSET); }
|
||
static inline void udma_i2s_i2s_slv_setup_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_SLV_SETUP_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_mst_setup_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_MST_SETUP_OFFSET); }
|
||
static inline void udma_i2s_i2s_mst_setup_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_MST_SETUP_OFFSET, value); }
|
||
|
||
static inline uint32_t udma_i2s_i2s_pdm_setup_get(uint32_t base) { return ARCHI_READ(base, UDMA_I2S_I2S_PDM_SETUP_OFFSET); }
|
||
static inline void udma_i2s_i2s_pdm_setup_set(uint32_t base, uint32_t value) { ARCHI_WRITE(base, UDMA_I2S_I2S_PDM_SETUP_OFFSET, value); }
|
||
|
||
#endif
|
||
|
||
|
||
|
||
//
|
||
// REGISTERS FIELDS MACROS
|
||
//
|
||
|
||
#ifndef LANGUAGE_ASSEMBLY
|
||
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR_GET(value) (ARCHI_BEXTRACTU((value),16,0))
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR_GETS(value) (ARCHI_BEXTRACT((value),16,0))
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR_SET(value,field) (ARCHI_BINSERT((value),(field),16,0))
|
||
#define UDMA_I2S_I2S_RX_SADDR_RX_SADDR(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE_GET(value) (ARCHI_BEXTRACTU((value),17,0))
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE_GETS(value) (ARCHI_BEXTRACT((value),17,0))
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE_SET(value,field) (ARCHI_BINSERT((value),(field),17,0))
|
||
#define UDMA_I2S_I2S_RX_SIZE_RX_SIZE(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS_GET(value) (ARCHI_BEXTRACTU((value),1,0))
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS_GETS(value) (ARCHI_BEXTRACT((value),1,0))
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS_SET(value,field) (ARCHI_BINSERT((value),(field),1,0))
|
||
#define UDMA_I2S_I2S_RX_CFG_CONTINOUS(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE_GET(value) (ARCHI_BEXTRACTU((value),2,1))
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE_GETS(value) (ARCHI_BEXTRACT((value),2,1))
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE_SET(value,field) (ARCHI_BINSERT((value),(field),2,1))
|
||
#define UDMA_I2S_I2S_RX_CFG_DATASIZE(val) ((val) << 1)
|
||
|
||
#define UDMA_I2S_I2S_RX_CFG_EN_GET(value) (ARCHI_BEXTRACTU((value),1,4))
|
||
#define UDMA_I2S_I2S_RX_CFG_EN_GETS(value) (ARCHI_BEXTRACT((value),1,4))
|
||
#define UDMA_I2S_I2S_RX_CFG_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,4))
|
||
#define UDMA_I2S_I2S_RX_CFG_EN(val) ((val) << 4)
|
||
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR_GET(value) (ARCHI_BEXTRACTU((value),1,5))
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR_GETS(value) (ARCHI_BEXTRACT((value),1,5))
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR_SET(value,field) (ARCHI_BINSERT((value),(field),1,5))
|
||
#define UDMA_I2S_I2S_RX_CFG_CLR(val) ((val) << 5)
|
||
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING_GET(value) (ARCHI_BEXTRACTU((value),1,5))
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING_GETS(value) (ARCHI_BEXTRACT((value),1,5))
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING_SET(value,field) (ARCHI_BINSERT((value),(field),1,5))
|
||
#define UDMA_I2S_I2S_RX_CFG_PENDING(val) ((val) << 5)
|
||
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR_GET(value) (ARCHI_BEXTRACTU((value),16,0))
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR_GETS(value) (ARCHI_BEXTRACT((value),16,0))
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR_SET(value,field) (ARCHI_BINSERT((value),(field),16,0))
|
||
#define UDMA_I2S_I2S_TX_SADDR_TX_SADDR(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE_GET(value) (ARCHI_BEXTRACTU((value),17,0))
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE_GETS(value) (ARCHI_BEXTRACT((value),17,0))
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE_SET(value,field) (ARCHI_BINSERT((value),(field),17,0))
|
||
#define UDMA_I2S_I2S_TX_SIZE_TX_SIZE(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS_GET(value) (ARCHI_BEXTRACTU((value),1,0))
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS_GETS(value) (ARCHI_BEXTRACT((value),1,0))
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS_SET(value,field) (ARCHI_BINSERT((value),(field),1,0))
|
||
#define UDMA_I2S_I2S_TX_CFG_CONTINOUS(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE_GET(value) (ARCHI_BEXTRACTU((value),2,1))
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE_GETS(value) (ARCHI_BEXTRACT((value),2,1))
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE_SET(value,field) (ARCHI_BINSERT((value),(field),2,1))
|
||
#define UDMA_I2S_I2S_TX_CFG_DATASIZE(val) ((val) << 1)
|
||
|
||
#define UDMA_I2S_I2S_TX_CFG_EN_GET(value) (ARCHI_BEXTRACTU((value),1,4))
|
||
#define UDMA_I2S_I2S_TX_CFG_EN_GETS(value) (ARCHI_BEXTRACT((value),1,4))
|
||
#define UDMA_I2S_I2S_TX_CFG_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,4))
|
||
#define UDMA_I2S_I2S_TX_CFG_EN(val) ((val) << 4)
|
||
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR_GET(value) (ARCHI_BEXTRACTU((value),1,5))
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR_GETS(value) (ARCHI_BEXTRACT((value),1,5))
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR_SET(value,field) (ARCHI_BINSERT((value),(field),1,5))
|
||
#define UDMA_I2S_I2S_TX_CFG_CLR(val) ((val) << 5)
|
||
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING_GET(value) (ARCHI_BEXTRACTU((value),1,5))
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING_GETS(value) (ARCHI_BEXTRACT((value),1,5))
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING_SET(value,field) (ARCHI_BINSERT((value),(field),1,5))
|
||
#define UDMA_I2S_I2S_TX_CFG_PENDING(val) ((val) << 5)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_GET(value) (ARCHI_BEXTRACTU((value),8,0))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_GETS(value) (ARCHI_BEXTRACT((value),8,0))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV_SET(value,field) (ARCHI_BINSERT((value),(field),8,0))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_DIV(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_GET(value) (ARCHI_BEXTRACTU((value),8,8))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_GETS(value) (ARCHI_BEXTRACT((value),8,8))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV_SET(value,field) (ARCHI_BINSERT((value),(field),8,8))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_DIV(val) ((val) << 8)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_GET(value) (ARCHI_BEXTRACTU((value),8,16))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_GETS(value) (ARCHI_BEXTRACT((value),8,16))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV_SET(value,field) (ARCHI_BINSERT((value),(field),8,16))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_COMMON_CLK_DIV(val) ((val) << 16)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_GET(value) (ARCHI_BEXTRACTU((value),1,24))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_GETS(value) (ARCHI_BEXTRACT((value),1,24))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,24))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_CLK_EN(val) ((val) << 24)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_GET(value) (ARCHI_BEXTRACTU((value),1,25))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_GETS(value) (ARCHI_BEXTRACT((value),1,25))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,25))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_CLK_EN(val) ((val) << 25)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_GET(value) (ARCHI_BEXTRACTU((value),1,26))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_GETS(value) (ARCHI_BEXTRACT((value),1,26))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,26))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_PDM_CLK_EN(val) ((val) << 26)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_GET(value) (ARCHI_BEXTRACTU((value),1,28))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_GETS(value) (ARCHI_BEXTRACT((value),1,28))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT_SET(value,field) (ARCHI_BINSERT((value),(field),1,28))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_EXT(val) ((val) << 28)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_GET(value) (ARCHI_BEXTRACTU((value),1,29))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_GETS(value) (ARCHI_BEXTRACT((value),1,29))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM_SET(value,field) (ARCHI_BINSERT((value),(field),1,29))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_SLAVE_NUM(val) ((val) << 29)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_GET(value) (ARCHI_BEXTRACTU((value),1,30))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_GETS(value) (ARCHI_BEXTRACT((value),1,30))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT_SET(value,field) (ARCHI_BINSERT((value),(field),1,30))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_EXT(val) ((val) << 30)
|
||
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_GET(value) (ARCHI_BEXTRACTU((value),1,31))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_GETS(value) (ARCHI_BEXTRACT((value),1,31))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM_SET(value,field) (ARCHI_BINSERT((value),(field),1,31))
|
||
#define UDMA_I2S_I2S_CLKCFG_SETUP_MASTER_NUM(val) ((val) << 31)
|
||
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_GET(value) (ARCHI_BEXTRACTU((value),3,0))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_GETS(value) (ARCHI_BEXTRACT((value),3,0))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS_SET(value,field) (ARCHI_BINSERT((value),(field),3,0))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_WORDS(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_GET(value) (ARCHI_BEXTRACTU((value),5,8))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_GETS(value) (ARCHI_BEXTRACT((value),5,8))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS_SET(value,field) (ARCHI_BINSERT((value),(field),5,8))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_BITS(val) ((val) << 8)
|
||
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_GET(value) (ARCHI_BEXTRACTU((value),1,16))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_GETS(value) (ARCHI_BEXTRACT((value),1,16))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB_SET(value,field) (ARCHI_BINSERT((value),(field),1,16))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_LSB(val) ((val) << 16)
|
||
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_GET(value) (ARCHI_BEXTRACTU((value),1,17))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_GETS(value) (ARCHI_BEXTRACT((value),1,17))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH_SET(value,field) (ARCHI_BINSERT((value),(field),1,17))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_2CH(val) ((val) << 17)
|
||
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_GET(value) (ARCHI_BEXTRACTU((value),1,31))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_GETS(value) (ARCHI_BEXTRACT((value),1,31))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,31))
|
||
#define UDMA_I2S_I2S_SLV_SETUP_SLAVE_EN(val) ((val) << 31)
|
||
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_GET(value) (ARCHI_BEXTRACTU((value),3,0))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_GETS(value) (ARCHI_BEXTRACT((value),3,0))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS_SET(value,field) (ARCHI_BINSERT((value),(field),3,0))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_WORDS(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_GET(value) (ARCHI_BEXTRACTU((value),5,8))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_GETS(value) (ARCHI_BEXTRACT((value),5,8))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS_SET(value,field) (ARCHI_BINSERT((value),(field),5,8))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_BITS(val) ((val) << 8)
|
||
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_GET(value) (ARCHI_BEXTRACTU((value),1,16))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_GETS(value) (ARCHI_BEXTRACT((value),1,16))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB_SET(value,field) (ARCHI_BINSERT((value),(field),1,16))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_LSB(val) ((val) << 16)
|
||
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_GET(value) (ARCHI_BEXTRACTU((value),1,17))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_GETS(value) (ARCHI_BEXTRACT((value),1,17))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH_SET(value,field) (ARCHI_BINSERT((value),(field),1,17))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_2CH(val) ((val) << 17)
|
||
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN_GET(value) (ARCHI_BEXTRACTU((value),1,31))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN_GETS(value) (ARCHI_BEXTRACT((value),1,31))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,31))
|
||
#define UDMA_I2S_I2S_MST_SETUP_MASTER_EN(val) ((val) << 31)
|
||
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_GET(value) (ARCHI_BEXTRACTU((value),3,0))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_GETS(value) (ARCHI_BEXTRACT((value),3,0))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT_SET(value,field) (ARCHI_BINSERT((value),(field),3,0))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_SHIFT(val) ((val) << 0)
|
||
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_GET(value) (ARCHI_BEXTRACTU((value),10,3))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_GETS(value) (ARCHI_BEXTRACT((value),10,3))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION_SET(value,field) (ARCHI_BINSERT((value),(field),10,3))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_DECIMATION(val) ((val) << 3)
|
||
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_GET(value) (ARCHI_BEXTRACTU((value),2,13))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_GETS(value) (ARCHI_BEXTRACT((value),2,13))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE_SET(value,field) (ARCHI_BINSERT((value),(field),2,13))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_MODE(val) ((val) << 13)
|
||
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN_GET(value) (ARCHI_BEXTRACTU((value),1,31))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN_GETS(value) (ARCHI_BEXTRACT((value),1,31))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN_SET(value,field) (ARCHI_BINSERT((value),(field),1,31))
|
||
#define UDMA_I2S_I2S_PDM_SETUP_PDM_EN(val) ((val) << 31)
|
||
|
||
#endif
|
||
|
||
#endif
|