Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrates driver framework #246

Merged
merged 37 commits into from
Nov 14, 2024
Merged

Integrates driver framework #246

merged 37 commits into from
Nov 14, 2024

Conversation

ikskuh
Copy link
Contributor

@ikskuh ikskuh commented Oct 7, 2024

No description provided.

Copy link
Contributor

@mattnite mattnite left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just some cleanup needed.

driver/base/DatagramDevice.zig Outdated Show resolved Hide resolved
driver/base/DatagramDevice.zig Outdated Show resolved Hide resolved
driver/base/DatagramDevice.zig Outdated Show resolved Hide resolved
driver/base/DatagramDevice.zig Outdated Show resolved Hide resolved
driver/base/DatagramDevice.zig Outdated Show resolved Hide resolved
driver/display/ili9488.zig Outdated Show resolved Hide resolved
driver/display/ssd1306.zig Outdated Show resolved Hide resolved
driver/framework.zig Outdated Show resolved Hide resolved
driver/input/touch/xpt2046.zig Outdated Show resolved Hide resolved
driver/wireless/sx1278.zig Outdated Show resolved Hide resolved
@ikskuh
Copy link
Contributor Author

ikskuh commented Oct 8, 2024

Did a pretty extensive clean-up, changed the pattern a bit to use comptime options structs, which are more flexible, more uniform and also more convenient in the end.

Also applied more 🐍 to the code

@ikskuh ikskuh merged commit 2c17eb8 into main Nov 14, 2024
3 checks passed
@ikskuh ikskuh deleted the work/driver_framework branch November 14, 2024 15:38
nosuz pushed a commit to nosuz/microzig that referenced this pull request Nov 15, 2024
* Initial commit

* Initial commit: Keyboard and SSD1306 driver and some basic project structure.

* Introduces StreamDevice and DatagramDevice for the framework as a reference type

* Introduces DigitalIO as a base driver and ports KeyboardMatrix to it.

* Starts implementing the ST77xx driver

* Adjusts to ZEG coding guidelines

* Updates README.md

* Adds some minor fixes.

* Update to 0.13.0

* Updates DigitalIO to make .read() may error (think: port expanders!), fixes some details in rotary-encoder and debounced-button

* Adds a framebuffer type for the SSD1306

* Fixes some bugs in the SSD1306 driver, enables quicker image transfer.

* Removes pre-merge cruft

* Adds missing build.zig

* Applies style guides more thoroughly

* Deletes empty driver files

* Refactors Keyboard_Matrix

* Refactors Debounced_Button

* Refactors Rotary_Encoder

* Renames ./driver to ./drivers, adds the drivers package to '@import(microzig).drivers' so it's exposed in the framework by default.

* Adds README to ./drivers

* Adds missing build.zig.zon to driver framework.

* Renames project to work around bug in boxzer

* Ports SSD1306 and Datagram_Device to use/provide writev/readv functions

* Prepares SSD1306 to be used with 4-wire SPI

* Updates Stream_Device to provide writev/readv

* Adds a unit test for the Datagram_Device.Test_Device

* Implements Stream_Device.Test_Device with a unit test to ensure proper function.

* Enables SSD1306 with 4-wire SPI mode.

* Starts to implement device drivers for RP2 HAL

* Adds rp2.hal.GPIO_Device as a Digital_IO driver

* Introduces the SSD1306 dynamic mode support, which can serve all other modes at runtime

* Drops accidential file clone

* Attempts to fix boxzer CI failure

---------

Co-authored-by: Felix (xq) Queißner <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants