aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/machine
AgeCommit message (Collapse)Author
6 daysfeature: make RNG implementation shared for rp2040/rp2350deadprogram
Signed-off-by: deadprogram <[email protected]>
6 daystargets: add support for Pimoroni Tiny2350 boarddeadprogram
Signed-off-by: deadprogram <[email protected]>
6 daysfeature: make SPI implementation shared for rp2040/rp2350deadprogram
Signed-off-by: deadprogram <[email protected]>
7 daysfeature: make i2c implementation shared for rp2040/rp2350deadprogram
Signed-off-by: deadprogram <[email protected]>
7 daysAdd RP2350 support (#4459)Patricio Whittingslow
machine/rp2350: add support * add linker scripts for rp2350 * add bootloader * begin melding rp2040 and rp2350 APIs * add UART * add rp2350 boot patching * Fix RP2350 memory layout (#4626) * Remove rp2040-style second stage bootloader. * Add 'minimum viable' IMAGE_DEF embedded block * Create a pico2 specific target * Implement rp2350 init, clock, and uart support * Merge rp2 reset code back together * Separate chip-specific clock definitions * Clear pad isolation bit on rp2350 * Init UART in rp2350 runtime * Correct usb/serial initialization order * Implement jump-to-bootloader * test: add pico2 to smoketests --------- Signed-off-by: deadprogram <[email protected]> Co-authored-by: Matthew Mets <[email protected]> Co-authored-by: Matt Mets <[email protected]> Co-authored-by: deadprogram <[email protected]>
7 daysfeature: modify i2s interface/implementation to better match specificationdeadprogram
Signed-off-by: deadprogram <[email protected]>
11 daystargets: add implementation for Tillitis TKey device (#4631)Ron Evans
* initial implementation for Tillitis TKey device * add UART implementation for TKey * add Pin interface implementation for TKey touch sensor * add RNG interface implementation for TKey * add helpful machine package functions to return identifiers such as name and version for TKey * use built-in timer for sleep timing on TKey * modify UART implementation for TKey to implement Serialer interface * implement BLAKE2s ROM function call for TKey device * handle abort by triggering TKey device fault using illegal instruction to halt CPU * simplify TKey implementation by inheriting from existing riscv32 target * return error for trying to configure invalid baudrates on UART * add tkey to builder test * be very specific for features passed to LLVM for specific config in use for TKey * handle feedback items from TKey device code review Signed-off-by: deadprogram <[email protected]>
2024-10-25machine/usb/adc/midi: fix PitchBendsago35
2024-10-25machine/usb/adc/midi: clarify operator precedencesago35
2024-10-22targets: add WaveShare ESP-C3-32S-KitAyke van Laethem
I've had this board for a while now, but never added proper TinyGo support. So here is a PR to do just that.
2024-10-22esp32c3: add smoke tests for a few boardsAyke van Laethem
These boards probably haven't been working since the addition of I2C, because they were missing some constants in the machine package.
2024-10-21fe310: support GPIO PinInputAyke van Laethem
This is needed to support switching between input and output.
2024-09-05add board: RAKwireless RAK4631 (#4454)Warren Guy
targets: add rak4631
2024-08-15misspell.csv: add new misspellings; also check in result of 'make spellfix'.Dan Kegel
2024-08-14machine/usb/descriptor: Reset joystick physicalUnrud
2024-08-14machine/usb/descriptor: Drop second joystick hatUnrud
2024-08-14machine/usb/hid/joystick: Allow more hat switchesUnrud
2024-08-14machine/usb/descriptor: Add more HID... functionsUnrud
2024-08-14machine/usb/descriptor: Fix encoding of valuesUnrud
The limit for positive values is incorrect and leads to an overflow (e.g. 0xFF and 0xFFFF become -1)
2024-08-14make spell: add a few missing misspellings, fix format of .csv file, also ↵Dan Kegel
fix *.md
2024-08-12GNUmakefile: add spellfix target, use it. (#4387)dkegel-fastly
TODO: Remove the go.mod/go.sum in internal/tools once doing so doesn't break CI (e.g. once we drop support for go 1.19) * builder/cc1as.h: fix typo found by 'make spell' * GNUmakefile: remove exception for inbetween, fix instance now found by 'make spell' * GNUmakefile: remove exception for programmmer, fix instance now found by 'make spell' * go.mod: use updated misspell. GNUmakefile: add spellfix target, use it. * ignore directories properly when invoking spellchecker. * make spell: give internal/tools its own go.mod, as misspell requires newer go * make lint: depend on tools and run the installed revive (which was perhaps implied by the change that added revive to internal/tools, but not required in GNUmakefile until we gave internal/tools its own temporary go.mod) * .github: now that 'make spell' works well, run it from CI * GNUmakefile: make spell now aborts if it finds misspelt words, so what it finds doesn't get lost in CI logs * GNUmakefile: tools: avoid -C option on go generate to make test-llvm15-go119 circleci job happy, see https://cs.opensource.google/go/go/+/2af48cbb7d85e5fdc635e75b99f949010c607786 * internal/tools/go.mod: fix format of go version to leave out patchlevel, else go complains.
2024-07-20rewrite Reply() to fix sending long replies in I2C Target ModeMatthew Hiles
2024-06-24machine: use new internal/binary packageAyke van Laethem
The encoding/binary package in Go 1.23 imports the slices package, which results in circular import when imported from the machine package. Therefore, encoding/binary cannot be used in the machine package. This commit fixes that by introducing a new internal/binary package that is just plain Go code without dependencies. It can be safely used anywhere (including the runtime if needed).
2024-05-13Add I2C support for esp32 (#4259)Johann Freymuth
machine/esp32: add i2c support
2024-05-13targets: add support for Badger2040 Wdeadprogram
Signed-off-by: deadprogram <[email protected]>
2024-05-12targets: add support for m5paperJohann Freymuth
2024-05-10machine: add TxFifoFreeLevel() for CANsago35
2024-05-08machine/stm32: add i2c Frequency and SetBaudRate() function for boards that ↵deadprogram
were missing implementation Signed-off-by: deadprogram <[email protected]>
2024-04-28simulator: add support for GetRNGAyke van Laethem
This is needed to be able to simulate the Gopher Badge code: https://github.com/conejoninja/gopherbadge
2024-04-28simulator: fix I2C supportAyke van Laethem
- Add ReadRegister and WriteRegister (because they're still used by some packages). - Fix out-of-bounds panic in I2C.Tx when either w or r has a length of zero (or is nil).
2024-04-24machine/thingplus_rp2040, machine/waveshare-rp2040-zero:add WS2812 definitionsago35
2024-04-20chore: fix function names in commenthongkuang
Signed-off-by: hongkuang <[email protected]>
2024-04-19add stm32 nucleol476rg supportPatrick Ting
2024-04-19Run Nick G's spellchecker github.com/client9/misspell, carefuly fix what it ↵dkegel-fastly
found (#4235)
2024-04-13machine: add __tinygo_spi_tx function to simulatorAyke van Laethem
This is much, _much_ faster than __tinygo_spi_transfer which can only transfer a single byte at a time. This is especially important for simulated displays. I've already implemented the browser side of this on the playground and have used this patch for local testing where it massively speeds up display operations.
2024-04-04rp2040: make all RP2040 boards available for simulationAyke van Laethem
This makes all rp2040 boards available for simulation using -tags=<board_name>. Importantly, this includes the Gopher Badge which I'm working on to add to the TinyGo Playground.
2024-04-04rp2040: move UART0 and UART1 to common fileAyke van Laethem
This is makes it easier to use these in simulation, plus it avoids duplication. The only downside I see is that more UARTs get defined than a board supports, but no existing code should break (no UARTs get renamed for example).
2024-03-27Map the rest of the pinoutPatrick Lindsay
2024-03-27Begin implementing support for Adafruit ESP32 Feather V2Patrick Lindsay
2024-03-21feather-nrf52840-sense doesn't use LFXOAnders Savill
2024-02-23targets: add support for Thumbydeadprogram
Signed-off-by: deadprogram <[email protected]>
2024-02-19device: update SVD filesAyke van Laethem
This updates lib/cmsis-svd, pulling in the updates to the Espressif SVD files here: https://github.com/cmsis-svd/cmsis-svd-data/pull/3 This is needed for wifi/BLE support on the ESP32-C3 (the older SVD files were missing some necessary interrupts).
2024-02-19all: make TinyGo code usable with "big Go" CGoAyke van Laethem
I managed to get CGo sort-of working in VSCode (meaning that it will typecheck code in the IDE itself) using a few crude hacks, but it requires a few minor changes to the TinyGo standard library. I intend to eventually add this support in the TinyGo extension for VSCode directly, but for now I've manually updated .vscode/settings.json to get IDE support. In any case, it would be nice to have this for when I hopefully add this to the TinyGo extension eventually.
2024-02-12nrf52840: generic board support (#4121)BCG
machine/nrf52840: generic board support
2024-02-11machine/rp2040: set XOSC startup delay multiplierXudong Zheng
XOSC requires additional time to stablize on certain RP2040 boards. Signed-off-by: Xudong Zheng <[email protected]>
2024-02-09esp32: switch over to the official SVD fileAyke van Laethem
2024-01-29rp2040: add definition for machine.PinToggleBCG
2024-01-23targets: add motor control pin definitions for MKS Nano V3x boardsElias Naur
Signed-off-by: Elias Naur <[email protected]>
2024-01-23targets: add support for the MKS Robin Nano V3.xElias Naur
Signed-off-by: Elias Naur <[email protected]>
2024-01-23fix typoDaniel Esteban