Skip to content
Permalink
Branch: master
Commits on Jun 24, 2019
  1. drivers: sam0: Fix deprecated instance macro usage

    Sizurka authored and nashif committed Jun 22, 2019
    During conversion in #16815 a few device tree instance macro aliases
    where missed (probably due to them existing to support future SoCs
    and so not currently compiled), this fixes their usage.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  2. drivers: sam0: Fix deprecated IRQ macro usage

    Sizurka authored and nashif committed Jun 22, 2019
    During conversion in #16937 a few IRQ macro aliases where missed
    (probably due to lack of enabled test cases that compile them),
    this fixes their usage.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 30, 2019
  1. drivers: serial: sam0: Implement DMA async API

    Sizurka authored and nashif committed Mar 24, 2019
    This adds support for the async API for SAM0 SERCOM USARTs using
    DMA to drive the device.
    
    Tested on SAMD21 with a few trivial programs and with
    tests/drivers/uart/uart_async_api.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  2. drivers: dma: sam0: Implement get_status API

    Sizurka authored and nashif committed May 8, 2019
    Implement the get_status DMA API for the SAM0 DMA controller.
    The busy field is set only when the selected channel is
    actively transferring data (i.e. both enabled and selected by the
    arbiter).  The direction field is left unset, since that
    information is not normally retained by the DMA controller.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 28, 2019
  1. drivers: counter: Add SAM0 basic counter support

    Sizurka authored and nashif committed Apr 2, 2019
    This adds support for the basic timer counter (TC) found on SAM0
    series parts.  This driver only supports running the counter
    in 32 bit wide mode.  Since this mode explicitly slaves the odd
    counters to the even ones, only instances of the even ones are
    defined.
    
    Tested with tests/drivers/counter/counter_basic_api on SAMD21.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 27, 2019
  1. include/uart.h: Clarify async receive event length

    Sizurka authored and nashif committed May 13, 2019
    Clarify that the async receive event length is relative to the
    offset, rather than representing an absolute length of data
    received.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  2. tests: drivers: uart: Explicitly test incremental receive length

    Sizurka authored and nashif committed May 13, 2019
    Add an explict test for the length of the receive event when
    doing incremental receives.  This was not tested anywhere in the
    normal code path (only implicitly in the abort, which wasn't
    exercised on the only current implementation, nrfx).  So add an
    explicit check for it during the chained reads, so that the
    test can catch the case where multiple receive events do not set
    the length correctly on events past the first.
    
    Tested on nrf52840_pca10056.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  3. Revert "tests: drivers: uart: Fix async write abort test"

    Sizurka authored and nashif committed May 13, 2019
    This reverts commit d09b91f.  I was incorrect in my interpretation
    of the async API: the number of bytes received is relative
    to the previous event, so it does "reset" between calls.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 21, 2019
  1. drivers: i2c: sam0: Fix missing break in speed setup

    Sizurka authored and nashif committed May 16, 2019
    There was a missing break at the end of the high speed setup case,
    so it would always return -ENOTSUP even when the high speed baud
    was available.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 12, 2019
  1. tests: drivers: uart: Fix async write abort test

    Sizurka authored and nashif committed May 9, 2019
    During the write abort test, a second write is started then quickly
    aborted.  This means that the number of bytes sent is relative
    to that second write.  So when comparing it against the number
    of bytes received which is NOT reset, the first (completed)
    send of five bytes has to be accounted for.  The current
    nrfx implementations abort quick enough that no bytes are reported
    sent, so this wasn't currently being exercised (i.e. the short
    circuit of zero bytes sent was taken).
    
    Tested on nrf52840_pca10056.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 7, 2019
  1. drivers: gpio: sam0: Add interrupt support

    Sizurka authored and nashif committed Mar 2, 2019
    This adds interrupt support to the SAM0 GPIO driver.  This is heavily
    inspired by @nzmichaelh work in #5715.  The primary difference
    from that implementation is that here the External Interrupt
    Controller (EIC) is separated out into an interrupt controller driver
    that is less tightly coupled to the GPIO API.  Instead it implements
    more of a conversion from the EIC's own odd multiplexing to a more
    traditional port and pin mask IRQ-like callback.  Unfortunately,
    through the EIC on the SAMD2x are relatively well behaved
    in terms of pin to EIC line mappings, other chips that share the
    peripheral interface are not.  So the EIC driver implements a
    per-line lookup to the pin and port pair using definitions extracted
    from the ASF headers.
    
    The EIC driver still makes some assumptions about how it will be used:
    mostly it assumes exactly one callback per port.  This should be fine
    as the only intended user is the GPIO driver itself.
    
    This has been tested with some simple programs and with
    tests/drivers/gpio/gpio_basic_api on a SAMD21 breakout and an
    adafruit_trinket_m0 board.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  2. CODEOWNERS: Add ownership for SAM0 I2C driver

    Sizurka authored and nashif committed Apr 29, 2019
    Add myself as owner for the SAM0 I2C driver.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  3. drivers: i2c: Add SAM0 I2C driver

    Sizurka authored and nashif committed Mar 7, 2019
    This adds a SERCOM I2C driver for SAM0 series chips.
    
    Tested with a SAMD21 chip on a SSD1306 display and a MLX90393
    sensor.  Only compile tested for SAMD20 and SAMR21.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  4. tests: drivers: adc: Add SAM0 support

    Sizurka authored and nashif committed Apr 3, 2019
    This adds generic support for any board using the SAM0 ADC driver.
    The test selects the internal input from the scaled I/O voltage,
    which is always available on the ADC.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  5. drivers: adc: Add SAM0 ADC driver

    Sizurka authored and nashif committed Feb 24, 2019
    This adds a driver for the SAM0 series ADC.
    
    Tested with /tests/drivers/adc/adc_api on SAMD21.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 3, 2019
  1. soc: sam0: Remove SERCOM defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed Mar 25, 2019
    Move SERCOM peripherals to use the raw defines generated from DTS
    parsing.  This adds aliases to the DTS so that the SERCOM number
    can still be used for clocking and pinmux.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  2. drivers: usb: sam0: Remove defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed May 1, 2019
    Move SAM0 flash to use the raw defines generated from the DTS
    parsing.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  3. drivers: timer: sam0: Remove RTC defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed May 1, 2019
    Move SAM0 flash to use the raw defines generated from the DTS
    parsing.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  4. drivers: watchdog: sam0: Remove defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed May 1, 2019
    Move SAM0 GPIO to use the raw defines generated from the DTS
    parsing.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  5. drivers: flash: sam0: Remove defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed May 1, 2019
    Move SAM0 flash to use the raw defines generated from the DTS
    parsing.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  6. drivers: gpio: sam0: Remove defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed May 1, 2019
    Move SAM0 GPIO to use the raw defines generated from the DTS
    parsing.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  7. drivers: pinmux: sam0: Remove defines from dts_fixup.h

    Sizurka authored and MaureenHelm committed May 1, 2019
    Move SAM0 pinmux to use the raw defines generated from the DTS
    parsing.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
  8. CODEOWNERS: Add ownership for SAM0 DMA driver

    Sizurka authored and galak committed Apr 29, 2019
    Add myself as owner for the SAM0 DMA driver.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on May 1, 2019
  1. drivers: spi: sam0: Implement DMA async API

    Sizurka authored and nashif committed Mar 28, 2019
    This adds support for the async API for SAM0 SERCOM SPI using
    DMA to drive the device.  This implementation does the reload
    for both transmit and receive in the receive DMA handler.
    Doing this simplifies the implementation but means that the
    transmit drains completely, resulting in the SPI clock pausing
    between buffers while both are reloaded in the receive handler.
    
    Tested with tests/drivers/spi/spi_loopback and several simple
    programs monitored with a logic analyzer.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
Commits on Apr 17, 2019
  1. soc: sam0: Fix SAMD20 IRQ assignments

    Sizurka authored and galak committed Apr 2, 2019
    SAMD20 does not have the DMA or USB peripherals and as a result
    the IRQs for all subsequent lines are shifted down from SAMD21.
    This splits the interrupt assignment for the SERCOMs into the
    SoC specific DTS file and moves the USB definition to SAMD21 only.
    
    Signed-off-by: Derek Hageman <hageman@inthat.cloud>
You can’t perform that action at this time.