/* * Copyright 2022, 2024-25 NXP * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #define NON_AON_PINS_START 0 #define NON_AON_PINS_BREAK 21 #define NON_AON_PINS_RESTART 28 #define NON_AON_PINS_END 63 #define RF_CNTL_PINS_START 0 #define RF_CNTL_PINS_END 3 static void rdrw61x_power_init_config(void) { power_init_config_t initCfg = { /* VCORE AVDD18 supplied from iBuck on RD board. */ .iBuck = true, /* CAU_SOC_SLP_REF_CLK is needed for LPOSC. */ .gateCauRefClk = false, }; POWER_InitPowerConfig(&initCfg); } #if CONFIG_PM static void rdrw61x_pm_state_exit(enum pm_state state) { switch (state) { case PM_STATE_STANDBY: rdrw61x_power_init_config(); break; default: break; } } #endif void board_early_init_hook(void) { rdrw61x_power_init_config(); #if CONFIG_PM static struct pm_notifier rdrw61x_pm_notifier = { .state_exit = rdrw61x_pm_state_exit, }; pm_notifier_register(&rdrw61x_pm_notifier); int32_t i; /* Set all non-AON pins output low level in sleep mode. */ for (i = NON_AON_PINS_START; i <= NON_AON_PINS_BREAK; i++) { IO_MUX_SetPinOutLevelInSleep(i, IO_MUX_SleepPinLevelLow); } for (i = NON_AON_PINS_RESTART; i <= NON_AON_PINS_END; i++) { IO_MUX_SetPinOutLevelInSleep(i, IO_MUX_SleepPinLevelLow); } /* Set RF_CNTL 0-3 output low level in sleep mode. */ for (i = RF_CNTL_PINS_START; i <= RF_CNTL_PINS_END; i++) { IO_MUX_SetRfPinOutLevelInSleep(i, IO_MUX_SleepPinLevelLow); } #endif #ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES /* * Eventually this code should not be here * but should be configured by some SYSCTL node */ /* Set shared signal set 0 SCK, WS from Transmit I2S - Flexcomm1 */ SYSCTL1->SHAREDCTRLSET[0] = SYSCTL1_SHAREDCTRLSET_SHAREDSCKSEL(1) | SYSCTL1_SHAREDCTRLSET_SHAREDWSSEL(1); /* Select Data in from Transmit I2S - Flexcomm 1 */ SYSCTL1->SHAREDCTRLSET[0] |= SYSCTL1_SHAREDCTRLSET_SHAREDDATASEL(1); /* Enable Transmit I2S - Flexcomm 1 for Shared Data Out */ SYSCTL1->SHAREDCTRLSET[0] |= SYSCTL1_SHAREDCTRLSET_FC1DATAOUTEN(1); /* Set Receive I2S - Flexcomm 0 SCK, WS from shared signal set 0 */ SYSCTL1->FCCTRLSEL[0] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | SYSCTL1_FCCTRLSEL_WSINSEL(1); /* Set Transmit I2S - Flexcomm 1 SCK, WS from shared signal set 0 */ SYSCTL1->FCCTRLSEL[1] = SYSCTL1_FCCTRLSEL_SCKINSEL(1) | SYSCTL1_FCCTRLSEL_WSINSEL(1); /* Select Receive I2S - Flexcomm 0 Data in from shared signal set 0 */ SYSCTL1->FCCTRLSEL[0] |= SYSCTL1_FCCTRLSEL_DATAINSEL(1); /* Select Transmit I2S - Flexcomm 1 Data out to shared signal set 0 */ SYSCTL1->FCCTRLSEL[1] |= SYSCTL1_FCCTRLSEL_DATAOUTSEL(1); #endif /* CONFIG_I2S_TEST_SEPARATE_DEVICES */ }