mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-10-01 01:26:06 -04:00
LPC43xx: Add CREG6 struct definition. Add I2S CREG6 configuration.
This commit is contained in:
parent
80d96b08cf
commit
49252dc1bc
@ -55,6 +55,7 @@ constexpr i2s::ConfigTX i2s0_config_tx {
|
|||||||
.four_pin = 0,
|
.four_pin = 0,
|
||||||
.mclk_out_en = 1,
|
.mclk_out_en = 1,
|
||||||
},
|
},
|
||||||
|
.sck_in_sel = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr i2s::ConfigRX i2s0_config_rx {
|
constexpr i2s::ConfigRX i2s0_config_rx {
|
||||||
@ -78,6 +79,7 @@ constexpr i2s::ConfigRX i2s0_config_rx {
|
|||||||
.four_pin = 1,
|
.four_pin = 1,
|
||||||
.mclk_out_en = 0,
|
.mclk_out_en = 0,
|
||||||
},
|
},
|
||||||
|
.sck_in_sel = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr i2s::ConfigDMA i2s0_config_dma {
|
constexpr i2s::ConfigDMA i2s0_config_dma {
|
||||||
|
@ -41,6 +41,19 @@ extern "C" {
|
|||||||
* @brief Product name title=UM10503 Chapter title=LPC43xx Configuration Registers (CREG) Modification date=1/28/2014 Major revision=1 Minor revision=8
|
* @brief Product name title=UM10503 Chapter title=LPC43xx Configuration Registers (CREG) Modification date=1/28/2014 Major revision=1 Minor revision=8
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
__IO uint32_t ETHMODE : 3;
|
||||||
|
uint32_t RESERVED0 : 1;
|
||||||
|
__IO uint32_t CTOUTCTRL : 1;
|
||||||
|
uint32_t RESERVED1 : 7;
|
||||||
|
__IO uint32_t I2S0_TX_SCK_IN_SEL : 1;
|
||||||
|
__IO uint32_t I2S0_RX_SCK_IN_SEL : 1;
|
||||||
|
__IO uint32_t I2S1_TX_SCK_IN_SEL : 1;
|
||||||
|
__IO uint32_t I2S1_RX_SCK_IN_SEL : 1;
|
||||||
|
__IO uint32_t EMC_CLK_SEL : 1;
|
||||||
|
uint32_t RESERVED2 : 15;
|
||||||
|
} LPC_CREG_CREG6_Type;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint32_t RESERVED0;
|
uint32_t RESERVED0;
|
||||||
__IO uint32_t CREG0;
|
__IO uint32_t CREG0;
|
||||||
@ -52,7 +65,7 @@ typedef struct {
|
|||||||
__IO uint32_t FLASHCFGA;
|
__IO uint32_t FLASHCFGA;
|
||||||
__IO uint32_t FLASHCFGB;
|
__IO uint32_t FLASHCFGB;
|
||||||
__IO uint32_t ETBCFG;
|
__IO uint32_t ETBCFG;
|
||||||
__IO uint32_t CREG6;
|
LPC_CREG_CREG6_Type CREG6;
|
||||||
__IO uint32_t M4TXEVENT;
|
__IO uint32_t M4TXEVENT;
|
||||||
uint32_t RESERVED3[51];
|
uint32_t RESERVED3[51];
|
||||||
__I uint32_t CHIPID;
|
__I uint32_t CHIPID;
|
||||||
|
@ -138,6 +138,7 @@ struct ConfigTX {
|
|||||||
uint32_t txrate;
|
uint32_t txrate;
|
||||||
uint32_t txbitrate;
|
uint32_t txbitrate;
|
||||||
uint32_t txmode;
|
uint32_t txmode;
|
||||||
|
uint32_t sck_in_sel;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ConfigRX {
|
struct ConfigRX {
|
||||||
@ -145,6 +146,7 @@ struct ConfigRX {
|
|||||||
uint32_t rxrate;
|
uint32_t rxrate;
|
||||||
uint32_t rxbitrate;
|
uint32_t rxbitrate;
|
||||||
uint32_t rxmode;
|
uint32_t rxmode;
|
||||||
|
uint32_t sck_in_sel;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ConfigDMA {
|
struct ConfigDMA {
|
||||||
@ -161,21 +163,13 @@ public:
|
|||||||
) {
|
) {
|
||||||
reset();
|
reset();
|
||||||
|
|
||||||
/* I2S operates in master mode, use PLL0AUDIO as MCLK source for TX. */
|
|
||||||
/* NOTE: Documentation of CREG6 is quite confusing. Refer to "I2S clocking and
|
|
||||||
* pin connections" and other I2S diagrams for more clarity.
|
|
||||||
*/
|
|
||||||
if( &p() == LPC_I2S0 ) {
|
if( &p() == LPC_I2S0 ) {
|
||||||
LPC_CREG->CREG6 |=
|
LPC_CREG->CREG6.I2S0_TX_SCK_IN_SEL = config_tx.sck_in_sel;
|
||||||
(1U << 12)
|
LPC_CREG->CREG6.I2S0_RX_SCK_IN_SEL = config_rx.sck_in_sel;
|
||||||
| (1U << 13)
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
if( &p() == LPC_I2S1 ) {
|
if( &p() == LPC_I2S1 ) {
|
||||||
LPC_CREG->CREG6 |=
|
LPC_CREG->CREG6.I2S1_TX_SCK_IN_SEL = config_tx.sck_in_sel;
|
||||||
(1U << 14)
|
LPC_CREG->CREG6.I2S1_RX_SCK_IN_SEL = config_rx.sck_in_sel;
|
||||||
| (1U << 15)
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p().DAO = config_tx.dao;
|
p().DAO = config_tx.dao;
|
||||||
|
Loading…
Reference in New Issue
Block a user