@@ -95,31 +95,19 @@ void common_hal_displayio_parallelbus_construct(displayio_parallelbus_obj_t* sel
95
95
never_reset_pin_number (data_pin + i );
96
96
}
97
97
98
- // Calculate pin usage all data pins + write pin
99
- uint32_t pin_usage = 0 ;
100
- for (uint8_t pin_number = data_pin ; pin_number < data_pin + 8 ; pin_number ++ ) {
101
- pin_usage += (1 << pin_number );
102
- }
103
- pin_usage += (1 << write_pin );
104
-
105
- bool ok = rp2pio_statemachine_construct (& self -> state_machine ,
98
+ common_hal_rp2pio_statemachine_construct (& self -> state_machine ,
106
99
parallel_program , sizeof (parallel_program ) / sizeof (parallel_program [0 ]),
107
100
frequency , // frequency
108
101
NULL , 0 , // init
109
- data0 , 8 , // first out pin, # out pins
102
+ data0 , 8 , 0 , 255 , // first out pin, # out pins
110
103
NULL , 0 , // first in pin, # in pins
111
- NULL , 0 , // first set pin
112
- write , 1 , // first sideset pin
113
- pin_usage , // pins we use
114
- true, // tx fifo
115
- false, // rx fifo
104
+ NULL , 0 , 0 , 0 , // first set pin
105
+ write , 1 , 0 , 1 , // first sideset pin
106
+ true, // exclusive pin usage
116
107
true, 8 , true, // TX, auto pull every 8 bits. shift left to output msb first
117
- false, 32 , true, // RX setting we don't use
118
- false); // claim pins
119
- if (!ok ) {
120
- // Do nothing. Maybe bitbang?
121
- return ;
122
- }
108
+ false, // wait for TX stall
109
+ false, 32 , true // RX setting we don't use
110
+ );
123
111
}
124
112
125
113
void common_hal_displayio_parallelbus_deinit (displayio_parallelbus_obj_t * self ) {
@@ -162,7 +150,7 @@ void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byt
162
150
displayio_parallelbus_obj_t * self = MP_OBJ_TO_PTR (obj );
163
151
164
152
common_hal_digitalio_digitalinout_set_value (& self -> command , byte_type == DISPLAY_DATA );
165
- common_hal_rp2pio_statemachine_write (& self -> state_machine , data , data_length );
153
+ common_hal_rp2pio_statemachine_write (& self -> state_machine , data , data_length , 1 );
166
154
}
167
155
168
156
void common_hal_displayio_parallelbus_end_transaction (mp_obj_t obj ) {
0 commit comments