1515#include "shared/runtime/buffer_helper.h"
1616#include "shared/runtime/context_manager_helpers.h"
1717#include "py/runtime.h"
18+ #include "py/objproperty.h"
1819
1920//| class SPIDevice:
2021//| """SPI Device Manager"""
@@ -96,6 +97,48 @@ static mp_obj_t adafruit_bus_device_spidevice_make_new(const mp_obj_type_t *type
9697 return (mp_obj_t )self ;
9798}
9899
100+ //| polarity: int
101+ //| """Polarity of the SPIDevice."""
102+ static mp_obj_t adafruit_bus_device_spidevice_obj_get_polarity (mp_obj_t self_in ) {
103+ adafruit_bus_device_spidevice_obj_t * self = MP_OBJ_TO_PTR (self_in );
104+ return MP_OBJ_NEW_SMALL_INT (common_hal_adafruit_bus_device_spidevice_get_polarity (self ));
105+ }
106+ MP_DEFINE_CONST_FUN_OBJ_1 (adafruit_bus_device_spidevice_get_polarity_obj , adafruit_bus_device_spidevice_obj_get_polarity );
107+
108+ static mp_obj_t adafruit_bus_device_spidevice_obj_set_polarity (mp_obj_t self_in , mp_obj_t polarity_obj ) {
109+ adafruit_bus_device_spidevice_obj_t * self = MP_OBJ_TO_PTR (self_in );
110+
111+ mp_int_t polarity = mp_obj_get_int (polarity_obj );
112+ common_hal_adafruit_bus_device_spidevice_set_polarity (self , polarity );
113+ return mp_const_none ;
114+ }
115+ MP_DEFINE_CONST_FUN_OBJ_2 (adafruit_bus_device_spidevice_set_polarity_obj , adafruit_bus_device_spidevice_obj_set_polarity );
116+
117+ MP_PROPERTY_GETSET (adafruit_bus_device_spidevice_polarity_obj ,
118+ (mp_obj_t )& adafruit_bus_device_spidevice_get_polarity_obj ,
119+ (mp_obj_t )& adafruit_bus_device_spidevice_set_polarity_obj );
120+
121+ //| phase: int
122+ //| """Phase of the SPIDevice."""
123+ static mp_obj_t adafruit_bus_device_spidevice_obj_get_phase (mp_obj_t self_in ) {
124+ adafruit_bus_device_spidevice_obj_t * self = MP_OBJ_TO_PTR (self_in );
125+ return MP_OBJ_NEW_SMALL_INT (common_hal_adafruit_bus_device_spidevice_get_phase (self ));
126+ }
127+ MP_DEFINE_CONST_FUN_OBJ_1 (adafruit_bus_device_spidevice_get_phase_obj , adafruit_bus_device_spidevice_obj_get_phase );
128+
129+ static mp_obj_t adafruit_bus_device_spidevice_obj_set_phase (mp_obj_t self_in , mp_obj_t phase_obj ) {
130+ adafruit_bus_device_spidevice_obj_t * self = MP_OBJ_TO_PTR (self_in );
131+
132+ mp_int_t phase = mp_obj_get_int (phase_obj );
133+ common_hal_adafruit_bus_device_spidevice_set_phase (self , phase );
134+ return mp_const_none ;
135+ }
136+ MP_DEFINE_CONST_FUN_OBJ_2 (adafruit_bus_device_spidevice_set_phase_obj , adafruit_bus_device_spidevice_obj_set_phase );
137+
138+ MP_PROPERTY_GETSET (adafruit_bus_device_spidevice_phase_obj ,
139+ (mp_obj_t )& adafruit_bus_device_spidevice_get_phase_obj ,
140+ (mp_obj_t )& adafruit_bus_device_spidevice_set_phase_obj );
141+
99142//| def __enter__(self) -> busio.SPI:
100143//| """Starts a SPI transaction by configuring the SPI and asserting chip select."""
101144//| ...
@@ -122,14 +165,16 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(adafruit_bus_device_spidevice___exit_
122165static const mp_rom_map_elem_t adafruit_bus_device_spidevice_locals_dict_table [] = {
123166 { MP_ROM_QSTR (MP_QSTR___enter__ ), MP_ROM_PTR (& adafruit_bus_device_spidevice___enter___obj ) },
124167 { MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& adafruit_bus_device_spidevice___exit___obj ) },
168+ { MP_ROM_QSTR (MP_QSTR_polarity ), MP_ROM_PTR (& adafruit_bus_device_spidevice_polarity_obj ) },
169+ { MP_ROM_QSTR (MP_QSTR_phase ), MP_ROM_PTR (& adafruit_bus_device_spidevice_phase_obj ) },
125170};
126171
127172static MP_DEFINE_CONST_DICT (adafruit_bus_device_spidevice_locals_dict , adafruit_bus_device_spidevice_locals_dict_table ) ;
128173
129174MP_DEFINE_CONST_OBJ_TYPE (
130175 adafruit_bus_device_spidevice_type ,
131176 MP_QSTR_SPIDevice ,
132- MP_TYPE_FLAG_NONE ,
177+ MP_TYPE_FLAG_HAS_SPECIAL_ACCESSORS ,
133178 make_new , adafruit_bus_device_spidevice_make_new ,
134179 locals_dict , & adafruit_bus_device_spidevice_locals_dict
135180 );
0 commit comments