@@ -183,6 +183,70 @@ static int lpcxpresso_55s69_pinmux_init(const struct device *dev)
183183 IOCON_PIO_OPENDRAIN_DI );
184184#endif
185185
186+ #if (DT_NODE_HAS_COMPAT_STATUS (DT_NODELABEL (flexcomm6 ), nxp_lpc_i2s , okay )) && \
187+ (DT_NODE_HAS_COMPAT_STATUS (DT_NODELABEL (flexcomm7 ), nxp_lpc_i2s , okay )) && \
188+ CONFIG_I2S
189+ CLOCK_EnableClock (kCLOCK_Sysctl );
190+ /* Set shared signal set 0 SCK, WS from Transmit I2S - Flexcomm 7 */
191+ SYSCTL -> SHAREDCTRLSET [0 ] = SYSCTL_SHAREDCTRLSET_SHAREDSCKSEL (7 ) |
192+ SYSCTL_SHAREDCTRLSET_SHAREDWSSEL (7 );
193+
194+ #ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES
195+ /* Select Data in from Transmit I2S - Flexcomm 7 */
196+ SYSCTL -> SHAREDCTRLSET [0 ] |= SYSCTL_SHAREDCTRLSET_SHAREDDATASEL (7 );
197+ /* Enable Transmit I2S - Flexcomm 7 for Shared Data Out */
198+ SYSCTL -> SHAREDCTRLSET [0 ] |= SYSCTL_SHAREDCTRLSET_FC7DATAOUTEN (1 );
199+ #endif
200+
201+ /* Set Receive I2S - Flexcomm 6 SCK, WS from shared signal set 0 */
202+ SYSCTL -> FCCTRLSEL [6 ] = SYSCTL_FCCTRLSEL_SCKINSEL (1 ) |
203+ SYSCTL_FCCTRLSEL_WSINSEL (1 );
204+
205+ /* Set Transmit I2S - Flexcomm 7 SCK, WS from shared signal set 0 */
206+ SYSCTL -> FCCTRLSEL [7 ] = SYSCTL_FCCTRLSEL_SCKINSEL (1 ) |
207+ SYSCTL_FCCTRLSEL_WSINSEL (1 );
208+
209+ #ifdef CONFIG_I2S_TEST_SEPARATE_DEVICES
210+ /* Select Receive I2S - Flexcomm 6 Data in from shared signal set 0 */
211+ SYSCTL -> FCCTRLSEL [6 ] |= SYSCTL_FCCTRLSEL_DATAINSEL (1 );
212+ /* Select Transmit I2S - Flexcomm 7 Data out to shared signal set 0 */
213+ SYSCTL -> FCCTRLSEL [7 ] |= SYSCTL_FCCTRLSEL_DATAOUTSEL (1 );
214+ #endif
215+
216+ /* Pin is configured as FC7_TXD_SCL_MISO_WS */
217+ pinmux_pin_set (port0 , 19 , IOCON_PIO_FUNC7 |
218+ IOCON_PIO_MODE_PULLUP |
219+ IOCON_PIO_SLEW_FAST |
220+ IOCON_PIO_INV_DI |
221+ IOCON_PIO_DIGITAL_EN |
222+ IOCON_PIO_OPENDRAIN_DI );
223+
224+ /* Pin is configured as FC7_RXD_SDA_MOSI_DATA */
225+ pinmux_pin_set (port0 , 20 , IOCON_PIO_FUNC7 |
226+ IOCON_PIO_MODE_PULLUP |
227+ IOCON_PIO_SLEW_FAST |
228+ IOCON_PIO_INV_DI |
229+ IOCON_PIO_DIGITAL_EN |
230+ IOCON_PIO_OPENDRAIN_DI );
231+
232+ /* Pin is configured as FC7_SCK */
233+ pinmux_pin_set (port0 , 21 , IOCON_PIO_FUNC7 |
234+ IOCON_PIO_MODE_PULLUP |
235+ IOCON_PIO_SLEW_FAST |
236+ IOCON_PIO_INV_DI |
237+ IOCON_PIO_DIGITAL_EN |
238+ IOCON_PIO_OPENDRAIN_DI );
239+
240+ /* Pin is configured as FC6_RXD_SDA_MOSI_DATA */
241+ pinmux_pin_set (port1 , 13 , IOCON_PIO_FUNC2 |
242+ IOCON_PIO_MODE_PULLUP |
243+ IOCON_PIO_SLEW_FAST |
244+ IOCON_PIO_INV_DI |
245+ IOCON_PIO_DIGITAL_EN |
246+ IOCON_PIO_OPENDRAIN_DI );
247+
248+ #endif
249+
186250 return 0 ;
187251}
188252
0 commit comments