@@ -48,6 +48,8 @@ pub enum DynFunction {
48
48
/// The 'Clock' function. This can be used to input or output clock references to or from the
49
49
/// rp235x.
50
50
Clock ,
51
+ /// The XIP CS1 function.
52
+ XipCs1 ,
51
53
/// The 'USB' function. Only VBUS detect, VBUS enable and overcurrent detect are configurable.
52
54
/// Other USB io have dedicated pins.
53
55
Usb ,
@@ -105,7 +107,7 @@ macro_rules! pin_func {
105
107
} ) *
106
108
} ;
107
109
}
108
- pin_func ! ( Xip , Spi , Uart , I2c as I2C , Pwm , Pio0 , Pio1 , Pio2 , Clock , Usb , UartAux , Null ) ;
110
+ pin_func ! ( Xip , Spi , Uart , I2c as I2C , Pwm , Pio0 , Pio1 , Pio2 , Clock , XipCs1 , Usb , UartAux , Null ) ;
109
111
110
112
//==============================================================================
111
113
// SIO sub-types
@@ -169,6 +171,7 @@ impl DynFunction {
169
171
let dyn_pin = id. as_dyn ( ) ;
170
172
match ( self , dyn_pin. bank , dyn_pin. num ) {
171
173
( Xip , Bank0 , _) => false ,
174
+ ( XipCs1 , Bank0 , 0 | 8 | 19 | 47 ) => true ,
172
175
( Clock , _, 0 ..=19 | 26 ..=29 ) => false ,
173
176
( UartAux , _, n) if ( n & 0x02 ) == 0 => false ,
174
177
( _, Bank0 , 0 ..=29 ) => true ,
@@ -205,6 +208,7 @@ pin_valid_func!(
205
208
[ 2 , 3 , 6 , 7 , 10 , 11 , 14 , 15 , 18 , 19 , 22 , 23 , 26 , 27 ]
206
209
) ;
207
210
pin_valid_func ! ( bank0 as Gpio , [ Clock ] , [ 20 , 21 , 22 , 23 , 24 , 25 ] ) ;
211
+ pin_valid_func ! ( bank0 as Gpio , [ XipCs1 ] , [ 0 , 8 , 19 , 47 ] ) ;
208
212
pin_valid_func ! ( qspi as Qspi , [ Xip , Null ] , [ Sclk , Sd0 , Sd1 , Sd2 , Sd3 , Ss ] ) ;
209
213
210
214
macro_rules! pin_valid_func_sio {
0 commit comments