@@ -67,9 +67,13 @@ void common_hal_paralleldisplay_parallelbus_construct(paralleldisplay_parallelbu
6767 common_hal_digitalio_digitalinout_construct (& self -> chip_select , chip_select );
6868 common_hal_digitalio_digitalinout_switch_to_output (& self -> chip_select , true, DRIVE_MODE_PUSH_PULL );
6969
70- self -> read .base .type = & digitalio_digitalinout_type ;
71- common_hal_digitalio_digitalinout_construct (& self -> read , read );
72- common_hal_digitalio_digitalinout_switch_to_output (& self -> read , true, DRIVE_MODE_PUSH_PULL );
70+ self -> read .base .type = & mp_type_NoneType ;
71+ if (read != NULL ) {
72+ self -> read .base .type = & digitalio_digitalinout_type ;
73+ common_hal_digitalio_digitalinout_construct (& self -> read , read );
74+ common_hal_digitalio_digitalinout_switch_to_output (& self -> read , true, DRIVE_MODE_PUSH_PULL );
75+ never_reset_pin_number (read -> number );
76+ }
7377
7478 self -> data0_pin = data_pin ;
7579 self -> write = write_pin ;
@@ -86,7 +90,6 @@ void common_hal_paralleldisplay_parallelbus_construct(paralleldisplay_parallelbu
8690 never_reset_pin_number (command -> number );
8791 never_reset_pin_number (chip_select -> number );
8892 never_reset_pin_number (write_pin );
89- never_reset_pin_number (read -> number );
9093 for (uint8_t i = 0 ; i < 8 ; i ++ ) {
9194 never_reset_pin_number (data_pin + i );
9295 }
@@ -121,8 +124,12 @@ void common_hal_paralleldisplay_parallelbus_deinit(paralleldisplay_parallelbus_o
121124 reset_pin_number (self -> command .pin -> number );
122125 reset_pin_number (self -> chip_select .pin -> number );
123126 reset_pin_number (self -> write );
124- reset_pin_number (self -> read .pin -> number );
125- reset_pin_number (self -> reset .pin -> number );
127+ if (self -> read .base .type != & mp_type_NoneType ) {
128+ reset_pin_number (self -> read .pin -> number );
129+ }
130+ if (self -> reset .base .type != & mp_type_NoneType ) {
131+ reset_pin_number (self -> reset .pin -> number );
132+ }
126133}
127134
128135bool common_hal_paralleldisplay_parallelbus_reset (mp_obj_t obj ) {
0 commit comments