diff --git a/micropython/modules/pimoroni_i2c/pimoroni_i2c.cpp b/micropython/modules/pimoroni_i2c/pimoroni_i2c.cpp index 609e9acb..63f851ad 100644 --- a/micropython/modules/pimoroni_i2c/pimoroni_i2c.cpp +++ b/micropython/modules/pimoroni_i2c/pimoroni_i2c.cpp @@ -51,8 +51,8 @@ mp_obj_t PimoroniI2C_make_new(const mp_obj_type_t *type, size_t n_args, size_t n enum { ARG_sda, ARG_scl, ARG_baudrate }; static const mp_arg_t allowed_args[] = { - { MP_QSTR_sda, MP_ARG_INT, {.u_int = I2C_DEFAULT_SDA} }, - { MP_QSTR_scl, MP_ARG_INT, {.u_int = I2C_DEFAULT_SCL} }, + { MP_QSTR_sda, MP_ARG_OBJ, {.u_obj = MP_ROM_INT(I2C_DEFAULT_SDA)} }, + { MP_QSTR_scl, MP_ARG_OBJ, {.u_obj = MP_ROM_INT(I2C_DEFAULT_SCL)} }, { MP_QSTR_baudrate, MP_ARG_INT, {.u_int = I2C_DEFAULT_BAUDRATE} }, }; @@ -61,8 +61,8 @@ mp_obj_t PimoroniI2C_make_new(const mp_obj_type_t *type, size_t n_args, size_t n mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); // Get I2C bus. - int sda = args[ARG_sda].u_int; - int scl = args[ARG_scl].u_int; + int sda = mp_hal_get_pin_obj(args[ARG_sda].u_obj); + int scl = mp_hal_get_pin_obj(args[ARG_scl].u_obj); int baud = args[ARG_baudrate].u_int; int i2c_id = (sda >> 1) & 0b1; // i2c bus for given SDA pin