@@ -109,8 +109,13 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
109109 mp_buffer_info_t bufinfo ;
110110 mp_get_buffer_raise (args [ARG_init_sequence ].u_obj , & bufinfo , MP_BUFFER_READ );
111111
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+ }
114119
115120 displayio_display_obj_t * self = NULL ;
116121 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
127132 common_hal_displayio_display_construct (self ,
128133 display_bus , args [ARG_width ].u_int , args [ARG_height ].u_int , args [ARG_colstart ].u_int , args [ARG_rowstart ].u_int ,
129134 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 ) );
131136
132137 return self ;
133138}
0 commit comments