summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/apbirthday/hardware.stm32.cc
diff options
context:
space:
mode:
authorNicolas Schodet2013-04-05 23:42:16 +0200
committerNicolas Schodet2013-04-05 23:42:16 +0200
commitfa22e3f3204043504669f960ab3c33340f23b0d3 (patch)
tree8ec8043481bced7f12f16e53993ec82a98f3db2c /digital/io-hub/src/apbirthday/hardware.stm32.cc
parent143327bb7e9472691718572243c0f59bb0c02086 (diff)
digital/io-hub/src/apbirthday: add zigbit update mode from UART
Diffstat (limited to 'digital/io-hub/src/apbirthday/hardware.stm32.cc')
-rw-r--r--digital/io-hub/src/apbirthday/hardware.stm32.cc26
1 files changed, 15 insertions, 11 deletions
diff --git a/digital/io-hub/src/apbirthday/hardware.stm32.cc b/digital/io-hub/src/apbirthday/hardware.stm32.cc
index abbfa477..48b69c2b 100644
--- a/digital/io-hub/src/apbirthday/hardware.stm32.cc
+++ b/digital/io-hub/src/apbirthday/hardware.stm32.cc
@@ -123,16 +123,20 @@ Hardware::zb_handle ()
{
// Switch to AVRISP?
if (zb_usb_avrisp.poll ())
- {
- // Uart pins are reused.
- zb_uart.disable ();
- gpio_mode_setup (GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO8 | GPIO9);
- // Go to special AVRISP mode.
- zb_avrisp (zb_usb_avrisp);
- // Restore.
- gpio_mode_setup (GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO8 | GPIO9);
- gpio_set_af (GPIOD, GPIO_AF7, GPIO8 | GPIO9);
- zb_uart.enable (38400, ucoo::Uart::EVEN, 1);
- }
+ zb_handle (zb_usb_avrisp);
+}
+
+void
+Hardware::zb_handle (ucoo::Stream &s)
+{
+ // Uart pins are reused.
+ zb_uart.disable ();
+ gpio_mode_setup (GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO8 | GPIO9);
+ // Go to special AVRISP mode.
+ zb_avrisp (s);
+ // Restore.
+ gpio_mode_setup (GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO8 | GPIO9);
+ gpio_set_af (GPIOD, GPIO_AF7, GPIO8 | GPIO9);
+ zb_uart.enable (38400, ucoo::Uart::EVEN, 1);
}