summaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2019-08-22 15:20:23 -0400
committerDan Halbert <halbert@halwitz.org>2019-08-22 15:20:23 -0400
commit7cc15e56c831e302db2c61ac4fb4f8bc9b1bfe8f (patch)
treea1c11233deacc8777395009072dba6de8d60df5a /ports
parent95d728faf0c87b011b9ab13ad67f26820bb6401f (diff)
parent18f441ae3519899fbdff5afc2d2e47a94cb36a73 (diff)
make translate
Diffstat (limited to 'ports')
-rw-r--r--ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk3
-rw-r--r--ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c2
-rw-r--r--ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h7
-rw-r--r--ports/nrf/common-hal/bleio/Adapter.c13
-rw-r--r--ports/nrf/common-hal/bleio/Characteristic.c2
-rw-r--r--ports/nrf/mpconfigport.h5
-rw-r--r--ports/nrf/peripherals/nrf/clocks.c8
7 files changed, 30 insertions, 10 deletions
diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk
index e427e9430..fd66f425d 100644
--- a/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk
+++ b/ports/atmel-samd/boards/itsybitsy_m0_express/mpconfigboard.mk
@@ -14,3 +14,6 @@ LONGINT_IMPL = MPZ
CFLAGS_INLINE_LIMIT = 60
SUPEROPT_GC = 0
+
+CIRCUITPY_I2CSLAVE = 0
+CIRCUITPY_RTC = 0
diff --git a/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c b/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
index e3bcf395b..0922718f9 100644
--- a/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
+++ b/ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
@@ -35,7 +35,7 @@
void common_hal_rotaryio_incrementalencoder_construct(rotaryio_incrementalencoder_obj_t* self,
const mcu_pin_obj_t* pin_a, const mcu_pin_obj_t* pin_b) {
- if (!pin_a->has_extint || !pin_a->has_extint) {
+ if (!pin_a->has_extint || !pin_b->has_extint) {
mp_raise_RuntimeError(translate("Both pins must support hardware interrupts"));
}
diff --git a/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h b/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h
index 04c7e8d60..1e55cd026 100644
--- a/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h
+++ b/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h
@@ -34,10 +34,11 @@
#define FLASH_SIZE (0x100000)
#define FLASH_PAGE_SIZE (4096)
-#define MICROPY_HW_NEOPIXEL (&pin_P0_13)
-
#define MICROPY_HW_LED_STATUS (&pin_P1_14)
+// Unusually, board does not have a 32 kHz xtal. Nearly all boards do.
+#define BOARD_HAS_32KHZ_XTAL (0)
+
#if QSPI_FLASH_FILESYSTEM
#define MICROPY_QSPI_DATA0 NRF_GPIO_PIN_MAP(0, 21)
#define MICROPY_QSPI_DATA1 NRF_GPIO_PIN_MAP(0, 23)
@@ -60,8 +61,6 @@
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
-#define BOARD_HAS_CRYSTAL 1
-
#define DEFAULT_I2C_BUS_SCL (&pin_P0_04)
#define DEFAULT_I2C_BUS_SDA (&pin_P0_05)
diff --git a/ports/nrf/common-hal/bleio/Adapter.c b/ports/nrf/common-hal/bleio/Adapter.c
index 936dfcb9b..15ae8840b 100644
--- a/ports/nrf/common-hal/bleio/Adapter.c
+++ b/ports/nrf/common-hal/bleio/Adapter.c
@@ -47,8 +47,17 @@ STATIC void softdevice_assert_handler(uint32_t id, uint32_t pc, uint32_t info) {
STATIC uint32_t ble_stack_enable(void) {
nrf_clock_lf_cfg_t clock_config = {
- .source = NRF_CLOCK_LF_SRC_XTAL,
- .accuracy = NRF_CLOCK_LF_ACCURACY_20_PPM
+#if BOARD_HAS_32KHZ_XTAL
+ .source = NRF_CLOCK_LF_SRC_XTAL,
+ .rc_ctiv = 0,
+ .rc_temp_ctiv = 0,
+ .accuracy = NRF_CLOCK_LF_ACCURACY_20_PPM,
+#else
+ .source = NRF_CLOCK_LF_SRC_RC,
+ .rc_ctiv = 16,
+ .rc_temp_ctiv = 2,
+ .accuracy = NRF_CLOCK_LF_ACCURACY_250_PPM,
+#endif
};
uint32_t err_code = sd_softdevice_enable(&clock_config, softdevice_assert_handler);
diff --git a/ports/nrf/common-hal/bleio/Characteristic.c b/ports/nrf/common-hal/bleio/Characteristic.c
index 45e8d2495..604d24d73 100644
--- a/ports/nrf/common-hal/bleio/Characteristic.c
+++ b/ports/nrf/common-hal/bleio/Characteristic.c
@@ -183,7 +183,7 @@ void common_hal_bleio_characteristic_set_value(bleio_characteristic_obj_t *self,
(self->props & CHAR_PROP_WRITE_NO_RESPONSE));
} else {
if (self->fixed_length && bufinfo->len != self->max_length) {
- mp_raise_ValueError(translate("Value length required fixed length"));
+ mp_raise_ValueError(translate("Value length != required fixed length"));
}
if (bufinfo->len > self->max_length) {
mp_raise_ValueError(translate("Value length > max_length"));
diff --git a/ports/nrf/mpconfigport.h b/ports/nrf/mpconfigport.h
index 5ed521e85..0b755a156 100644
--- a/ports/nrf/mpconfigport.h
+++ b/ports/nrf/mpconfigport.h
@@ -53,6 +53,11 @@
#include "py/circuitpy_mpconfig.h"
+#ifndef BOARD_HAS_32KHZ_XTAL
+// Assume crystal is present, which is the most common case.
+#define BOARD_HAS_32KHZ_XTAL (1)
+#endif
+
#define MICROPY_PORT_ROOT_POINTERS \
CIRCUITPY_COMMON_ROOT_POINTERS \
ble_drv_evt_handler_entry_t* ble_drv_evt_handler_entries; \
diff --git a/ports/nrf/peripherals/nrf/clocks.c b/ports/nrf/peripherals/nrf/clocks.c
index 4acb878db..269365cc9 100644
--- a/ports/nrf/peripherals/nrf/clocks.c
+++ b/ports/nrf/peripherals/nrf/clocks.c
@@ -26,11 +26,15 @@
*/
#include "nrfx.h"
+#include "mpconfigport.h"
void nrf_peripherals_clocks_init(void) {
- // Set low-frequency clock source to be crystal. If there's a crystalless board, this will need to be
- // generalized.
+
+#if BOARD_HAS_32KHZ_XTAL
NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
+#else
+ NRF_CLOCK->LFCLKSRC = (uint32_t)((CLOCK_LFCLKSRC_SRC_RC << CLOCK_LFCLKSRC_SRC_Pos) & CLOCK_LFCLKSRC_SRC_Msk);
+#endif
NRF_CLOCK->TASKS_LFCLKSTART = 1UL;
// Wait for clocks to start.