@@ -109,8 +109,13 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
109
109
mp_buffer_info_t bufinfo ;
110
110
mp_get_buffer_raise (args [ARG_init_sequence ].u_obj , & bufinfo , MP_BUFFER_READ );
111
111
112
- mp_obj_t backlight_pin = args [ARG_backlight_pin ].u_obj ;
113
- assert_pin_free (backlight_pin );
112
+ mp_obj_t backlight_pin_obj = args [ARG_backlight_pin ].u_obj ;
113
+ assert_pin (backlight_pin_obj , true);
114
+ const mcu_pin_obj_t * backlight_pin = NULL ;
115
+ if (backlight_pin_obj != NULL && backlight_pin_obj != mp_const_none ) {
116
+ backlight_pin = MP_OBJ_TO_PTR (backlight_pin_obj );
117
+ assert_pin_free (backlight_pin );
118
+ }
114
119
115
120
displayio_display_obj_t * self = NULL ;
116
121
for (uint8_t i = 0 ; i < CIRCUITPY_DISPLAY_LIMIT ; i ++ ) {
@@ -127,7 +132,7 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
127
132
common_hal_displayio_display_construct (self ,
128
133
display_bus , args [ARG_width ].u_int , args [ARG_height ].u_int , args [ARG_colstart ].u_int , args [ARG_rowstart ].u_int ,
129
134
args [ARG_color_depth ].u_int , args [ARG_set_column_command ].u_int , args [ARG_set_row_command ].u_int ,
130
- args [ARG_write_ram_command ].u_int , bufinfo .buf , bufinfo .len , backlight_pin );
135
+ args [ARG_write_ram_command ].u_int , bufinfo .buf , bufinfo .len , MP_OBJ_TO_PTR ( backlight_pin ) );
131
136
132
137
return self ;
133
138
}
0 commit comments