Skip to content

Commit ccb2d5a

Browse files
jaz1-nordicbjarki-andreasen
authored andcommitted
[nrf noup] drivers: pinctrl: Add SDP MSPI pin configuration
Configure SDP MSPI pins to switch their control to VPR core Signed-off-by: Jakub Zymelka <[email protected]> Signed-off-by: Andrzej Głąbek <[email protected]> Signed-off-by: Magdalena Pastula <[email protected]> (cherry picked from commit c55bfc3)
1 parent 4124dae commit ccb2d5a

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-0
lines changed

drivers/pinctrl/pinctrl_nrf.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,18 @@ static const nrf_gpio_pin_drive_t drive_modes[NRF_DRIVE_COUNT] = {
111111
#define NRF_PSEL_TDM(reg, line) ((NRF_TDM_Type *)reg)->PSEL.line
112112
#endif
113113

114+
#if DT_HAS_COMPAT_STATUS_OKAY(nordic_hpf_mspi_controller) || \
115+
defined(CONFIG_MSPI_HPF) || \
116+
DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY(nordic_nrf_vpr_coprocessor, pinctrl_0)
117+
#if defined(CONFIG_SOC_SERIES_NRF54LX)
118+
#define NRF_PSEL_SDP_MSPI(psel) \
119+
nrf_gpio_pin_control_select(psel, NRF_GPIO_PIN_SEL_VPR);
120+
#elif defined(CONFIG_SOC_SERIES_NRF54HX)
121+
/* On nRF54H, pin routing is controlled by secure domain, via UICR. */
122+
#define NRF_PSEL_SDP_MSPI(psel)
123+
#endif
124+
#endif /* DT_HAS_COMPAT_STATUS_OKAY(nordic_hpf_mspi_controller) || ... */
125+
114126
#if DT_HAS_COMPAT_STATUS_OKAY(nordic_nrf_gpio_pad_group)
115127
#define NRF_GPIO_HAS_PAD_GROUP 1
116128
#else
@@ -555,6 +567,26 @@ int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt,
555567
input = NRF_GPIO_PIN_INPUT_CONNECT;
556568
break;
557569
#endif /* defined(NRF_PSEL_TWIS) */
570+
#if defined(NRF_PSEL_SDP_MSPI)
571+
case NRF_FUN_SDP_MSPI_CS0:
572+
case NRF_FUN_SDP_MSPI_CS1:
573+
case NRF_FUN_SDP_MSPI_CS2:
574+
case NRF_FUN_SDP_MSPI_CS3:
575+
case NRF_FUN_SDP_MSPI_CS4:
576+
case NRF_FUN_SDP_MSPI_SCK:
577+
case NRF_FUN_SDP_MSPI_DQ0:
578+
case NRF_FUN_SDP_MSPI_DQ1:
579+
case NRF_FUN_SDP_MSPI_DQ2:
580+
case NRF_FUN_SDP_MSPI_DQ3:
581+
case NRF_FUN_SDP_MSPI_DQ4:
582+
case NRF_FUN_SDP_MSPI_DQ5:
583+
case NRF_FUN_SDP_MSPI_DQ6:
584+
case NRF_FUN_SDP_MSPI_DQ7:
585+
NRF_PSEL_SDP_MSPI(psel);
586+
dir = NRF_GPIO_PIN_DIR_OUTPUT;
587+
input = NRF_GPIO_PIN_INPUT_CONNECT;
588+
break;
589+
#endif /* defined(NRF_PSEL_SDP_MSPI) */
558590
default:
559591
return -ENOTSUP;
560592
}

include/zephyr/dt-bindings/pinctrl/nrf-pinctrl.h

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,62 @@
172172
#define NRF_FUN_GRTC_CLKOUT_FAST 55U
173173
/** GRTC slow clock output */
174174
#define NRF_FUN_GRTC_CLKOUT_32K 56U
175+
/** SDP_MSPI clock pin */
176+
#define NRF_FUN_SDP_MSPI_SCK 57U
177+
/** SDP_MSPI data pin 0 */
178+
#define NRF_FUN_SDP_MSPI_DQ0 58U
179+
/** SDP_MSPI data pin 1 */
180+
#define NRF_FUN_SDP_MSPI_DQ1 59U
181+
/** SDP_MSPI data pin 2 */
182+
#define NRF_FUN_SDP_MSPI_DQ2 60U
183+
/** SDP_MSPI data pin 3 */
184+
#define NRF_FUN_SDP_MSPI_DQ3 61U
185+
/** SDP_MSPI data pin 4 */
186+
#define NRF_FUN_SDP_MSPI_DQ4 62U
187+
/** SDP_MSPI data pin 5 */
188+
#define NRF_FUN_SDP_MSPI_DQ5 63U
189+
/** SDP_MSPI data pin 6 */
190+
#define NRF_FUN_SDP_MSPI_DQ6 64U
191+
/** SDP_MSPI data pin 7 */
192+
#define NRF_FUN_SDP_MSPI_DQ7 65U
193+
/** SDP_MSPI chip select 0 */
194+
#define NRF_FUN_SDP_MSPI_CS0 66U
195+
/** SDP_MSPI chip select 1 */
196+
#define NRF_FUN_SDP_MSPI_CS1 67U
197+
/** SDP_MSPI chip select 2 */
198+
#define NRF_FUN_SDP_MSPI_CS2 68U
199+
/** SDP_MSPI chip select 3 */
200+
#define NRF_FUN_SDP_MSPI_CS3 69U
201+
/** SDP_MSPI chip select 4 */
202+
#define NRF_FUN_SDP_MSPI_CS4 70U
203+
/** High-Performance Framework MSPI clock pin */
204+
#define NRF_FUN_HPF_MSPI_SCK NRF_FUN_SDP_MSPI_SCK
205+
/** High-Performance Framework MSPI data pin 0 */
206+
#define NRF_FUN_HPF_MSPI_DQ0 NRF_FUN_SDP_MSPI_DQ0
207+
/** High-Performance Framework MSPI data pin 1 */
208+
#define NRF_FUN_HPF_MSPI_DQ1 NRF_FUN_SDP_MSPI_DQ1
209+
/** High-Performance Framework MSPI data pin 2 */
210+
#define NRF_FUN_HPF_MSPI_DQ2 NRF_FUN_SDP_MSPI_DQ2
211+
/** High-Performance Framework MSPI data pin 3 */
212+
#define NRF_FUN_HPF_MSPI_DQ3 NRF_FUN_SDP_MSPI_DQ3
213+
/** High-Performance Framework MSPI data pin 4 */
214+
#define NRF_FUN_HPF_MSPI_DQ4 NRF_FUN_SDP_MSPI_DQ4
215+
/** High-Performance Framework MSPI data pin 5 */
216+
#define NRF_FUN_HPF_MSPI_DQ5 NRF_FUN_SDP_MSPI_DQ5
217+
/** High-Performance Framework MSPI data pin 6 */
218+
#define NRF_FUN_HPF_MSPI_DQ6 NRF_FUN_SDP_MSPI_DQ6
219+
/** High-Performance Framework MSPI data pin 7 */
220+
#define NRF_FUN_HPF_MSPI_DQ7 NRF_FUN_SDP_MSPI_DQ7
221+
/** High-Performance Framework MSPI chip select pin 0 */
222+
#define NRF_FUN_HPF_MSPI_CS0 NRF_FUN_SDP_MSPI_CS0
223+
/** High-Performance Framework MSPI chip select pin 1 */
224+
#define NRF_FUN_HPF_MSPI_CS1 NRF_FUN_SDP_MSPI_CS1
225+
/** High-Performance Framework MSPI chip select pin 2 */
226+
#define NRF_FUN_HPF_MSPI_CS2 NRF_FUN_SDP_MSPI_CS2
227+
/** High-Performance Framework MSPI chip select pin 3 */
228+
#define NRF_FUN_HPF_MSPI_CS3 NRF_FUN_SDP_MSPI_CS3
229+
/** High-Performance Framework MSPI chip select pin 4 */
230+
#define NRF_FUN_HPF_MSPI_CS4 NRF_FUN_SDP_MSPI_CS4
175231
/** TDM SCK in master mode */
176232
#define NRF_FUN_TDM_SCK_M 71U
177233
/** TDM SCK in slave mode */

0 commit comments

Comments
 (0)