Import zmk sources for future tidbit work
This commit is contained in:
parent
51687dac33
commit
34b1a591f7
4
zmk/.clang-format
Normal file
4
zmk/.clang-format
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
IndentWidth: 4
|
||||||
|
ColumnLimit: 100
|
||||||
|
SortIncludes: false
|
8
zmk/.devcontainer/.bashrc
Normal file
8
zmk/.devcontainer/.bashrc
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
export LS_OPTIONS='-F --color=auto'
|
||||||
|
alias ls='ls $LS_OPTIONS'
|
||||||
|
if [ "${CODESPACES}" = "true" ]; then
|
||||||
|
export WORKSPACE_DIR="$HOME/workspace/zmk"
|
||||||
|
fi
|
||||||
|
if [ -f "$WORKSPACE_DIR/zephyr/zephyr-env.sh" ]; then
|
||||||
|
source "$WORKSPACE_DIR/zephyr/zephyr-env.sh"
|
||||||
|
fi
|
11
zmk/.devcontainer/Dockerfile
Normal file
11
zmk/.devcontainer/Dockerfile
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
FROM zmkfirmware/zephyr-west-action-arm
|
||||||
|
|
||||||
|
RUN apt-get -y update && \
|
||||||
|
apt-get -y upgrade && \
|
||||||
|
apt-get install --no-install-recommends -y \
|
||||||
|
ssh \
|
||||||
|
gpg && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY .bashrc tmp
|
||||||
|
RUN mv /tmp/.bashrc ~/.bashrc
|
11
zmk/.devcontainer/devcontainer.json
Normal file
11
zmk/.devcontainer/devcontainer.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"name": "ZMK Development",
|
||||||
|
"dockerFile": "Dockerfile",
|
||||||
|
"extensions": ["ms-vscode.cpptools"],
|
||||||
|
"runArgs": ["--security-opt", "label=disable"],
|
||||||
|
"containerEnv": {"WORKSPACE_DIR": "${containerWorkspaceFolder}"},
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.shell.linux": "/bin/bash"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
6
zmk/.gitattributes
vendored
Normal file
6
zmk/.gitattributes
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# Always use Unix-style line endings for Bash scripts so they work in
|
||||||
|
# Docker on Windows.
|
||||||
|
.bashrc text eol=lf
|
||||||
|
*.sh text eol=lf
|
90
zmk/.github/workflows/build.yml
vendored
Normal file
90
zmk/.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "app/**"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "app/**"
|
||||||
|
|
||||||
|
name: Build
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Build Test
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
board: [proton_c, nice_nano, bluemicro840_v1, nrfmicro_13]
|
||||||
|
shield:
|
||||||
|
- boardsource3x4
|
||||||
|
- corne_left
|
||||||
|
- corne_right
|
||||||
|
- kyria_left
|
||||||
|
- kyria_right
|
||||||
|
- lily58_left
|
||||||
|
- lily58_right
|
||||||
|
- iris_left
|
||||||
|
- iris_right
|
||||||
|
- reviung41
|
||||||
|
- romac
|
||||||
|
- romac_plus
|
||||||
|
- settings_reset
|
||||||
|
- quefrency_left
|
||||||
|
- quefrency_right
|
||||||
|
- nibble
|
||||||
|
include:
|
||||||
|
- board: proton_c
|
||||||
|
shield: clueboard_california
|
||||||
|
steps:
|
||||||
|
# To use this repository's private action,
|
||||||
|
# you must check out the repository
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Cache west modules
|
||||||
|
timeout-minutes: 2
|
||||||
|
continue-on-error: true
|
||||||
|
uses: actions/cache@v2
|
||||||
|
env:
|
||||||
|
cache-name: cache-zephyr-modules
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
modules/
|
||||||
|
tools/
|
||||||
|
zephyr/
|
||||||
|
bootloader/
|
||||||
|
key: 2-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
||||||
|
restore-keys: |
|
||||||
|
2-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
|
2-${{ runner.os }}-build-
|
||||||
|
2-${{ runner.os }}-
|
||||||
|
- name: West Init
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-init
|
||||||
|
with:
|
||||||
|
args: 'init "-l app"'
|
||||||
|
- name: West Update
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-update
|
||||||
|
with:
|
||||||
|
args: "update"
|
||||||
|
- name: West Config Zephyr Base
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-config
|
||||||
|
with:
|
||||||
|
args: 'config "--global zephyr.base-prefer configfile"'
|
||||||
|
- name: West Zephyr Export
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-zephyr-export
|
||||||
|
with:
|
||||||
|
args: "zephyr-export"
|
||||||
|
- name: West Build
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-build
|
||||||
|
with:
|
||||||
|
args: 'build "-s app -b ${{ matrix.board }} -- -DSHIELD=${{ matrix.shield }}"'
|
||||||
|
- name: Archive Build
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
if: ${{ matrix.board != 'proton_c' }}
|
||||||
|
with:
|
||||||
|
name: "${{ matrix.board }}-${{ matrix.shield }}-zmk-uf2"
|
||||||
|
path: build/zephyr/zmk.uf2
|
29
zmk/.github/workflows/clang-format-lint.yml
vendored
Normal file
29
zmk/.github/workflows/clang-format-lint.yml
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
name: clang-format-lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "app/boards/**/*.c"
|
||||||
|
- "app/include/**/*.h"
|
||||||
|
- "app/src/**"
|
||||||
|
- "app/drivers/**/*.c"
|
||||||
|
- "app/drivers/**/*.h"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "app/boards/**/*.c"
|
||||||
|
- "app/include/**/*.h"
|
||||||
|
- "app/src/**"
|
||||||
|
- "app/drivers/**/*.c"
|
||||||
|
- "app/drivers/**/*.h"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: clang-format lint
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: DoozyX/clang-format-lint-action@v0.9
|
||||||
|
with:
|
||||||
|
source: "./app"
|
||||||
|
extensions: "h,c"
|
35
zmk/.github/workflows/doc-checks.yml
vendored
Normal file
35
zmk/.github/workflows/doc-checks.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
name: doc-checks
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "docs/**"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "docs/**"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: ESLint
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: bahmutov/npm-install@v1
|
||||||
|
with:
|
||||||
|
working-directory: docs
|
||||||
|
- name: ESLint
|
||||||
|
run: npm run lint
|
||||||
|
working-directory: docs
|
||||||
|
prettier:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Prettier
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: bahmutov/npm-install@v1
|
||||||
|
with:
|
||||||
|
working-directory: docs
|
||||||
|
- name: Prettier Check
|
||||||
|
run: npm run prettier:check
|
||||||
|
working-directory: docs
|
70
zmk/.github/workflows/test.yml
vendored
Normal file
70
zmk/.github/workflows/test.yml
vendored
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "app/tests/**"
|
||||||
|
- "app/src/**"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "app/tests/**"
|
||||||
|
- "app/src/**"
|
||||||
|
|
||||||
|
name: Test
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
integration_test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Integration Tests
|
||||||
|
steps:
|
||||||
|
# To use this repository's private action,
|
||||||
|
# you must check out the repository
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Cache west modules
|
||||||
|
timeout-minutes: 2
|
||||||
|
continue-on-error: true
|
||||||
|
uses: actions/cache@v2
|
||||||
|
env:
|
||||||
|
cache-name: cache-zephyr-modules
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
modules/
|
||||||
|
tools/
|
||||||
|
zephyr/
|
||||||
|
bootloader/
|
||||||
|
key: 2-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
||||||
|
restore-keys: |
|
||||||
|
2-${{ runner.os }}-build-${{ env.cache-name }}-
|
||||||
|
2-${{ runner.os }}-build-
|
||||||
|
2-${{ runner.os }}-
|
||||||
|
- name: West Init
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-init
|
||||||
|
with:
|
||||||
|
args: 'init "-l app"'
|
||||||
|
- name: West Update
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-update
|
||||||
|
with:
|
||||||
|
args: "update"
|
||||||
|
- name: West Config Zephyr Base
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-config
|
||||||
|
with:
|
||||||
|
args: 'config "--global zephyr.base-prefer configfile"'
|
||||||
|
- name: West Zephyr Export
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-zephyr-export
|
||||||
|
with:
|
||||||
|
args: "zephyr-export"
|
||||||
|
- name: Test All
|
||||||
|
uses: "docker://zmkfirmware/zephyr-west-action-arm:latest"
|
||||||
|
id: west-build
|
||||||
|
with:
|
||||||
|
entrypoint: /bin/bash
|
||||||
|
args: '-c "cd app && ./run-test.sh all"'
|
||||||
|
- name: Archive Build
|
||||||
|
if: ${{ always() }}
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: "log-files"
|
||||||
|
path: app/build/**/*.log
|
8
zmk/.gitignore
vendored
Normal file
8
zmk/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
/.west
|
||||||
|
/bootloader
|
||||||
|
/modules
|
||||||
|
/tools
|
||||||
|
/zephyr
|
||||||
|
/zmk-config
|
||||||
|
/build
|
||||||
|
*.DS_Store
|
6
zmk/.vscode/settings.json
vendored
Normal file
6
zmk/.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"*.overlay": "dts",
|
||||||
|
"*.keymap": "dts"
|
||||||
|
}
|
||||||
|
}
|
28
zmk/.vscode/tasks.json
vendored
Normal file
28
zmk/.vscode/tasks.json
vendored
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Build",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "cd app && west build",
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Flash",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "cd app && west flash",
|
||||||
|
"group": "test"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Debug",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "cd app && west debug",
|
||||||
|
"group": "test"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
11
zmk/AUTHORS
Normal file
11
zmk/AUTHORS
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# The ZMK Project consists of many contributors. This file includes individuals
|
||||||
|
# who have contributed significant changes to the project. To be added to here,
|
||||||
|
# please submit a PR to the project repo.
|
||||||
|
Peter Johanson (@petejohanson)
|
||||||
|
Innovaker (@innovaker)
|
||||||
|
Nick Winans (@Nicell)
|
||||||
|
Okke Formsma (@okke-formsma)
|
||||||
|
Cody McGinnis (@BrainWart)
|
||||||
|
Kurtis Lew (@kurtis-lew)
|
||||||
|
Richard Jones (@bmcgavin)
|
||||||
|
Kevin Chen (@chenkevinh)
|
128
zmk/CODE_OF_CONDUCT.md
Normal file
128
zmk/CODE_OF_CONDUCT.md
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
- Demonstrating empathy and kindness toward other people
|
||||||
|
- Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
- Giving and gracefully accepting constructive feedback
|
||||||
|
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
- Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
- The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
- Public or private harassment
|
||||||
|
- Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
- Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
conduct@zmkfirmware.dev.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
120
zmk/CONTRIBUTING.md
Normal file
120
zmk/CONTRIBUTING.md
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
# Contributing To ZMK
|
||||||
|
|
||||||
|
Thanks for taking an interest in contributing to ZMK! After reading through the documentation, if
|
||||||
|
you have any questions, please come join us on the
|
||||||
|
[ZMK Discord Server][discord-invite].
|
||||||
|
|
||||||
|
## Code of Conduct
|
||||||
|
|
||||||
|
All community members are expected to abide by the [Code of Conduct][code-of-conduct].
|
||||||
|
For any and all conduct inquiries or concerns, please contact conduct@zmkfirmware.dev.
|
||||||
|
|
||||||
|
[code-of-conduct]: https://github.com/zmkfirmware/zmk/blob/main/CODE_OF_CONDUCT.md
|
||||||
|
|
||||||
|
## How Can I Contribute
|
||||||
|
|
||||||
|
There are many different ways that you can contribute to ZMK, several of which require no coding
|
||||||
|
abilities. These include:
|
||||||
|
|
||||||
|
- Chat Support
|
||||||
|
- Issue Reporting/Commenting
|
||||||
|
- Testing
|
||||||
|
- Documentation
|
||||||
|
- Code Contributions
|
||||||
|
|
||||||
|
## Chat Support
|
||||||
|
|
||||||
|
Providing user support on the [ZMK Discord Server][discord-invite] is a great way to help the
|
||||||
|
project. In particular, answering questions in the [#help](https://discord.com/channels/719497620560543766/719909884769992755) channel is incredibly appreciated.
|
||||||
|
|
||||||
|
## Issue Reporting/Commenting
|
||||||
|
|
||||||
|
Often, you might encounter unexpected behavior when building, flashing, or running the ZMK
|
||||||
|
firmware. Submitting or commenting on issues on GitHub is a great way to contribute to the
|
||||||
|
ZMK project.
|
||||||
|
|
||||||
|
### Before Submitting a Report
|
||||||
|
|
||||||
|
- Review the [Frequently Asked Questions](https://zmkfirmware.dev/docs/faq).
|
||||||
|
- Check the [Troubleshooting Guide](https://zmkfirmware.dev/docs/troubleshooting) for answers.
|
||||||
|
- Search the [open issues](https://github.com/zmkfirmware/zmk/issues) for an existing report that
|
||||||
|
matches your problem.
|
||||||
|
|
||||||
|
### Opening A Report
|
||||||
|
|
||||||
|
To open a report:
|
||||||
|
|
||||||
|
- Head to https://github.com/zmkfirmware/zmk/issues/new
|
||||||
|
- Provide an accurate summary of the issue in the title.
|
||||||
|
- Provide as much detail as you can about the issue including:
|
||||||
|
- What [board/shield](https://zmkfirmware.dev/docs/faq#what-is-a-board) you are using.
|
||||||
|
- A link to the user repository, if you used it to build your firmware.
|
||||||
|
- Exact steps to reproduce the problem.
|
||||||
|
- Any relevant screenshots or [logs](https://zmkfirmware.dev/docs/dev-guide-usb-logging)
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
The `help wanted` label will be added to any [pull requests](https://github.com/zmkfirmware/zmk/pulls?q=is%3Aopen+is%3Apr+label%3A%22help+wanted%22)
|
||||||
|
or [issues](https://github.com/zmkfirmware/zmk/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
|
||||||
|
where user testing can assist the ZMK contributors to verify fixes, confirm
|
||||||
|
bugs, etc.
|
||||||
|
|
||||||
|
When providing testing feedback, please provide:
|
||||||
|
|
||||||
|
- Exact steps used to test
|
||||||
|
- Any hardware details relevant to testing
|
||||||
|
- Pass/fail summary for testing.
|
||||||
|
- Full details of any failures, including:
|
||||||
|
- Logs
|
||||||
|
- Screenshots
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Quality documentation is a huge part of what makes a successful project. Contributions to add
|
||||||
|
documentation to areas not currently covered are greatly appreciated.
|
||||||
|
|
||||||
|
### Contributing
|
||||||
|
|
||||||
|
- The documentation site can be found in the main ZMK repo, in the
|
||||||
|
[docs/](https://github.com/zmkfirmware/zmk/tree/main/docs) subdirectory.
|
||||||
|
- The documentation is maintained using [Docusaurus V2](https://v2.docusaurus.io/docs/).
|
||||||
|
- To get started, from the `docs/` directory, run `npm ci` and then `npm start`.
|
||||||
|
- Enhancements should be submitted as pull requests to the `main` branch of ZMK.
|
||||||
|
|
||||||
|
## Code Contributions
|
||||||
|
|
||||||
|
### Development Setup
|
||||||
|
|
||||||
|
To get your development environment setup going, start at the
|
||||||
|
[basic setup](https://zmkfirmware.dev/docs/dev-setup) docs, and make sure you can build and flash
|
||||||
|
your own locally built firmware.
|
||||||
|
|
||||||
|
### Formatting
|
||||||
|
|
||||||
|
ZMK uses `clang-format` to ensure consist formatting for our source code. Before submitting your
|
||||||
|
changes, make sure you've manually run `clang-format`, or have your IDE configured to auto-format
|
||||||
|
on save.
|
||||||
|
|
||||||
|
### Commit Messages
|
||||||
|
|
||||||
|
The ZMK project is working towards, but not yet enforcing, the use of
|
||||||
|
[conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages.
|
||||||
|
|
||||||
|
Further documentation and details will be provided here soon.
|
||||||
|
|
||||||
|
### Pull Requests
|
||||||
|
|
||||||
|
When opening a pull request with your changes, please:
|
||||||
|
|
||||||
|
- Submit the PR to the `main` branch of the
|
||||||
|
[`zmkfirmware/zmk`](https://github.com/zmkfirmware/zmk) repository.
|
||||||
|
- Use a descriptive title that summarizes the change.
|
||||||
|
- In the description, include:
|
||||||
|
- References to any open issues fixed by the PR.
|
||||||
|
- Feature added by the PR
|
||||||
|
- Bugs fixed by the PR.
|
||||||
|
- Testing you've performed locally.
|
||||||
|
- Requested testing by reviewers or testers.
|
||||||
|
- Screenshots or logs that support understanding the change.
|
||||||
|
|
||||||
|
[discord-invite]: https://zmkfirmware.dev/community/discord/invite
|
21
zmk/LICENSE
Normal file
21
zmk/LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 The ZMK Contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
14
zmk/README.md
Normal file
14
zmk/README.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Zephyr™ Mechanical Keyboard (ZMK) Firmware
|
||||||
|
|
||||||
|
[![Discord](https://img.shields.io/discord/719497620560543766)](https://zmkfirmware.dev/community/discord/invite)
|
||||||
|
[![Build](https://github.com/zmkfirmware/zmk/workflows/Build/badge.svg)](https://github.com/zmkfirmware/zmk/actions)
|
||||||
|
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
|
||||||
|
|
||||||
|
This project is a complete work in progress, with only basic things functioning. The goal is to explore a new MK firmware
|
||||||
|
with a less restrictive license and better BLE support, built on top of the [Zephyr™ Project](https://www.zephyrproject.org/)
|
||||||
|
|
||||||
|
Check out the website to learn more: https://zmkfirmware.dev/
|
||||||
|
|
||||||
|
You can also come join our [ZMK Discord Server](https://zmkfirmware.dev/community/discord/invite)
|
||||||
|
|
||||||
|
To review planned features, check out the [enhancement label](https://github.com/zmkfirmware/zmk/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) in GitHub. Please feel free to add 👍 to the issue description of any requests to upvote the feature.
|
1
zmk/app/.gitignore
vendored
Normal file
1
zmk/app/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
build/
|
70
zmk/app/CMakeLists.txt
Normal file
70
zmk/app/CMakeLists.txt
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
cmake_minimum_required(VERSION 3.13.1)
|
||||||
|
|
||||||
|
set(CONFIG_APPLICATION_DEFINED_SYSCALL true)
|
||||||
|
list(APPEND BOARD_ROOT ${CMAKE_SOURCE_DIR})
|
||||||
|
list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
|
# Add our custom Zephyr module for drivers w/ syscalls, etc.
|
||||||
|
list(APPEND DTS_ROOT ${CMAKE_SOURCE_DIR}/drivers/zephyr)
|
||||||
|
|
||||||
|
list(APPEND ZEPHYR_EXTRA_MODULES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/drivers
|
||||||
|
)
|
||||||
|
list(APPEND SYSCALL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/drivers/zephyr)
|
||||||
|
|
||||||
|
include(cmake/zmk_config.cmake)
|
||||||
|
|
||||||
|
# Find Zephyr. This also loads Zephyr's build system.
|
||||||
|
find_package(Zephyr REQUIRED HINTS ../zephyr)
|
||||||
|
project(zmk)
|
||||||
|
|
||||||
|
zephyr_linker_sources(RODATA include/linker/zmk-events.ld)
|
||||||
|
|
||||||
|
# Add your source file to the "app" target. This must come after
|
||||||
|
# find_package(Zephyr) which defines the target.
|
||||||
|
target_include_directories(app PRIVATE include)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_SLEEP app PRIVATE src/power.c)
|
||||||
|
target_sources(app PRIVATE src/kscan.c)
|
||||||
|
target_sources(app PRIVATE src/matrix_transform.c)
|
||||||
|
target_sources(app PRIVATE src/hid.c)
|
||||||
|
target_sources(app PRIVATE src/sensors.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_DISPLAY app PRIVATE src/display.c)
|
||||||
|
target_sources(app PRIVATE src/event_manager.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/ext_power_generic.c)
|
||||||
|
target_sources(app PRIVATE src/events/position_state_changed.c)
|
||||||
|
target_sources(app PRIVATE src/events/keycode_state_changed.c)
|
||||||
|
target_sources(app PRIVATE src/events/modifiers_state_changed.c)
|
||||||
|
target_sources(app PRIVATE src/events/sensor_event.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/events/ble_active_profile_changed.c)
|
||||||
|
target_sources_ifdef(CONFIG_USB app PRIVATE src/events/usb_conn_state_changed.c)
|
||||||
|
if (NOT CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_key_press.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_reset.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_hold_tap.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_momentary_layer.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_outputs.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_toggle_layer.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_transparent.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_none.c)
|
||||||
|
target_sources(app PRIVATE src/behaviors/behavior_sensor_rotate_key_press.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_EXT_POWER app PRIVATE src/behaviors/behavior_ext_power.c)
|
||||||
|
target_sources(app PRIVATE src/keymap.c)
|
||||||
|
endif()
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/behaviors/behavior_rgb_underglow.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/behaviors/behavior_bt.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/ble.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/battery.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL app PRIVATE src/split_listener.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL app PRIVATE src/split/bluetooth/service.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL app PRIVATE src/split/bluetooth/central.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_KSCAN_MOCK_DRIVER app PRIVATE src/kscan_mock.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_KSCAN_COMPOSITE_DRIVER app PRIVATE src/kscan_composite.c)
|
||||||
|
target_sources_ifdef(CONFIG_USB app PRIVATE src/usb.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/hog.c)
|
||||||
|
target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
|
||||||
|
target_sources(app PRIVATE src/endpoints.c)
|
||||||
|
target_sources(app PRIVATE src/hid_listener.c)
|
||||||
|
target_sources_ifdef(CONFIG_SETTINGS app PRIVATE src/settings.c)
|
||||||
|
target_sources(app PRIVATE src/main.c)
|
||||||
|
|
||||||
|
zephyr_cc_option(-Wfatal-errors)
|
327
zmk/app/Kconfig
Normal file
327
zmk/app/Kconfig
Normal file
|
@ -0,0 +1,327 @@
|
||||||
|
mainmenu "ZMK Firmware"
|
||||||
|
|
||||||
|
menu "ZMK"
|
||||||
|
|
||||||
|
menu "Basic Keyboard Setup"
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
string "Keyboard Name"
|
||||||
|
|
||||||
|
config USB_DEVICE_PRODUCT
|
||||||
|
default ZMK_KEYBOARD_NAME
|
||||||
|
|
||||||
|
config BT_DEVICE_NAME
|
||||||
|
default ZMK_KEYBOARD_NAME
|
||||||
|
|
||||||
|
config USB_DEVICE_VID
|
||||||
|
default 0x1D50
|
||||||
|
|
||||||
|
config USB_DEVICE_PID
|
||||||
|
default 0x615E
|
||||||
|
|
||||||
|
config USB_DEVICE_MANUFACTURER
|
||||||
|
default "ZMK Project"
|
||||||
|
|
||||||
|
menu "HID Output Types"
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
bool "USB"
|
||||||
|
select USB
|
||||||
|
select USB_DEVICE_STACK
|
||||||
|
select USB_DEVICE_HID
|
||||||
|
|
||||||
|
if ZMK_USB
|
||||||
|
|
||||||
|
config USB_NUMOF_EP_WRITE_RETRIES
|
||||||
|
default 10
|
||||||
|
|
||||||
|
#ZMK_USB
|
||||||
|
endif
|
||||||
|
|
||||||
|
config ZMK_BLE
|
||||||
|
bool "BLE (HID over GATT)"
|
||||||
|
select BT
|
||||||
|
select BT_SMP
|
||||||
|
select BT_SMP_SC_PAIR_ONLY
|
||||||
|
select BT_SMP_APP_PAIRING_ACCEPT
|
||||||
|
select BT_PERIPHERAL
|
||||||
|
select BT_GATT_DIS
|
||||||
|
select BT_GATT_BAS
|
||||||
|
select BT_SETTINGS
|
||||||
|
select SETTINGS
|
||||||
|
|
||||||
|
if ZMK_BLE
|
||||||
|
|
||||||
|
config SYSTEM_WORKQUEUE_STACK_SIZE
|
||||||
|
default 2048
|
||||||
|
|
||||||
|
config ZMK_BLE_CLEAR_BONDS_ON_START
|
||||||
|
bool "Configuration that clears all bond information from the keyboard on startup."
|
||||||
|
default n
|
||||||
|
|
||||||
|
# HID GATT notifications sent this way are *not* picked up by Linux, and possibly others.
|
||||||
|
config BT_GATT_NOTIFY_MULTIPLE
|
||||||
|
default n
|
||||||
|
|
||||||
|
config BT_DEVICE_APPEARANCE
|
||||||
|
default 961
|
||||||
|
|
||||||
|
config ZMK_BLE_PASSKEY_ENTRY
|
||||||
|
bool "Experimental: Requiring typing passkey from host to pair BLE connection"
|
||||||
|
default n
|
||||||
|
|
||||||
|
#ZMK_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#HID Output Types
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "Split Support"
|
||||||
|
|
||||||
|
config ZMK_SPLIT
|
||||||
|
bool "Split keyboard support"
|
||||||
|
default n
|
||||||
|
|
||||||
|
if ZMK_SPLIT
|
||||||
|
|
||||||
|
config ZMK_SPLIT_BLE
|
||||||
|
bool "Split keyboard support via BLE transport"
|
||||||
|
depends on ZMK_BLE
|
||||||
|
default y
|
||||||
|
select BT_USER_PHY_UPDATE
|
||||||
|
|
||||||
|
if ZMK_SPLIT_BLE
|
||||||
|
|
||||||
|
choice ZMK_SPLIT_BLE_ROLE
|
||||||
|
bool "BLE Role For Split Communication"
|
||||||
|
default ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
|
config ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
bool "Central"
|
||||||
|
select BT_CENTRAL
|
||||||
|
select BT_GATT_CLIENT
|
||||||
|
|
||||||
|
config ZMK_SPLIT_BLE_ROLE_PERIPHERAL
|
||||||
|
bool "Peripheral"
|
||||||
|
|
||||||
|
if ZMK_SPLIT_BLE_ROLE_PERIPHERAL
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default n
|
||||||
|
|
||||||
|
config BT_MAX_PAIRED
|
||||||
|
default 1
|
||||||
|
|
||||||
|
config BT_MAX_CONN
|
||||||
|
default 1
|
||||||
|
|
||||||
|
config BT_GAP_AUTO_UPDATE_CONN_PARAMS
|
||||||
|
default n
|
||||||
|
|
||||||
|
#ZMK_SPLIT_BLE_ROLE_PERIPHERAL
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ZMK_SPLIT_BLE_ROLE
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
#ZMK_SPLIT_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ZMK_SPLIT
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ZMK_BLE
|
||||||
|
|
||||||
|
if ZMK_SPLIT_BLE && ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
|
config BT_MAX_CONN
|
||||||
|
default 6
|
||||||
|
|
||||||
|
config BT_MAX_PAIRED
|
||||||
|
default 6
|
||||||
|
|
||||||
|
#ZMK_SPLIT_BLE && ZMK_SPLIT_BLE_ROLE_CENTRAL
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !ZMK_SPLIT_BLE
|
||||||
|
|
||||||
|
config BT_MAX_CONN
|
||||||
|
default 5
|
||||||
|
|
||||||
|
config BT_MAX_PAIRED
|
||||||
|
default 5
|
||||||
|
|
||||||
|
#!ZMK_SPLIT_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ZMK_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#Split Support
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
#Basic Keyboard Setup
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "Display/LED Options"
|
||||||
|
|
||||||
|
config ZMK_DISPLAY
|
||||||
|
bool "ZMK display support"
|
||||||
|
default n
|
||||||
|
select DISPLAY
|
||||||
|
select LVGL
|
||||||
|
select LVGL_THEMES
|
||||||
|
select LVGL_THEME_MONO
|
||||||
|
select LVGL_OBJ_LABEL
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW
|
||||||
|
bool "RGB Adressable LED Underglow"
|
||||||
|
select LED_STRIP
|
||||||
|
|
||||||
|
if ZMK_RGB_UNDERGLOW
|
||||||
|
|
||||||
|
# This default value cuts down on tons of excess .conf files, if you're using GPIO, manually disable this
|
||||||
|
config SPI
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_HUE_STEP
|
||||||
|
int "RGB underglow hue step in degrees of 360"
|
||||||
|
default 10
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_SAT_STEP
|
||||||
|
int "RGB underglow sturation step in percent"
|
||||||
|
default 10
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_BRT_STEP
|
||||||
|
int "RGB underglow brightness step in percent"
|
||||||
|
default 10
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_HUE_START
|
||||||
|
int "RGB underglow start hue value from 0-359"
|
||||||
|
default 0
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_SAT_START
|
||||||
|
int "RGB underglow start saturations value from 0-100"
|
||||||
|
default 100
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_BRT_START
|
||||||
|
int "RGB underglow start brightness value from 0-100"
|
||||||
|
default 100
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_SPD_START
|
||||||
|
int "RGB underglow start animation speed value from 1-5"
|
||||||
|
default 3
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_EFF_START
|
||||||
|
int "RGB underglow start effect int value related to the effect enum list"
|
||||||
|
default 0
|
||||||
|
|
||||||
|
config ZMK_RGB_UNDERGLOW_ON_START
|
||||||
|
bool "Whether RGB underglow starts on by default"
|
||||||
|
default y
|
||||||
|
|
||||||
|
#ZMK_RGB_UNDERGLOW
|
||||||
|
endif
|
||||||
|
|
||||||
|
#Display/LED Options
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "Power Management"
|
||||||
|
|
||||||
|
config ZMK_SLEEP
|
||||||
|
bool "Enable deep sleep support"
|
||||||
|
imply USB
|
||||||
|
|
||||||
|
if ZMK_SLEEP
|
||||||
|
|
||||||
|
config SYS_POWER_DEEP_SLEEP_STATES
|
||||||
|
default y
|
||||||
|
|
||||||
|
choice SYS_PM_POLICY
|
||||||
|
default SYS_PM_POLICY_APP
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config ZMK_IDLE_SLEEP_TIMEOUT
|
||||||
|
int "Milliseconds to wait to sleep when going idle"
|
||||||
|
default 900000
|
||||||
|
|
||||||
|
#ZMK_SLEEP
|
||||||
|
endif
|
||||||
|
|
||||||
|
config ZMK_EXT_POWER
|
||||||
|
bool "Enable support to control external power output"
|
||||||
|
default y
|
||||||
|
|
||||||
|
#Power Management
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "Advanced"
|
||||||
|
|
||||||
|
menu "Initialization Priorities"
|
||||||
|
|
||||||
|
if USB
|
||||||
|
|
||||||
|
config ZMK_USB_INIT_PRIORITY
|
||||||
|
int "USB Init Priority"
|
||||||
|
default 50
|
||||||
|
|
||||||
|
#USB
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ZMK_BLE || ZMK_SPLIT_BLE
|
||||||
|
|
||||||
|
config ZMK_BLE_INIT_PRIORITY
|
||||||
|
int "BLE Init Priority"
|
||||||
|
default 50
|
||||||
|
|
||||||
|
#ZMK_BLE || ZMK_SPLIT_BLE
|
||||||
|
endif
|
||||||
|
|
||||||
|
#Initialization Priorities
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
menu "KSCAN Settings"
|
||||||
|
|
||||||
|
config ZMK_KSCAN_EVENT_QUEUE_SIZE
|
||||||
|
int "Size of the event queue for KSCAN events to buffer events"
|
||||||
|
default 4
|
||||||
|
|
||||||
|
config ZMK_KSCAN_MOCK_DRIVER
|
||||||
|
bool "Enable mock kscan driver to simulate key presses"
|
||||||
|
default n
|
||||||
|
|
||||||
|
config ZMK_KSCAN_COMPOSITE_DRIVER
|
||||||
|
bool "Enable composite kscan driver to combine kscan devices"
|
||||||
|
default n
|
||||||
|
|
||||||
|
#KSCAN Settings
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
#Advanced
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
#ZMK
|
||||||
|
endmenu
|
||||||
|
|
||||||
|
config HEAP_MEM_POOL_SIZE
|
||||||
|
default 8192
|
||||||
|
|
||||||
|
config KERNEL_BIN_NAME
|
||||||
|
default "zmk"
|
||||||
|
|
||||||
|
config REBOOT
|
||||||
|
default y
|
||||||
|
|
||||||
|
module = ZMK
|
||||||
|
module-str = zmk
|
||||||
|
source "subsys/logging/Kconfig.template.log_config"
|
||||||
|
|
||||||
|
rsource "boards/Kconfig"
|
||||||
|
rsource "boards/shields/*/Kconfig.defconfig"
|
||||||
|
rsource "boards/shields/*/Kconfig.shield"
|
||||||
|
|
||||||
|
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.defconfig"
|
||||||
|
osource "$(ZMK_CONFIG)/boards/shields/*/Kconfig.shield"
|
||||||
|
|
||||||
|
source "Kconfig.zephyr"
|
||||||
|
|
1
zmk/app/boards/Kconfig
Normal file
1
zmk/app/boards/Kconfig
Normal file
|
@ -0,0 +1 @@
|
||||||
|
rsource "shields/*/Kconfig.shield"
|
8
zmk/app/boards/arm/bluemicro840/CMakeLists.txt
Normal file
8
zmk/app/boards/arm/bluemicro840/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py
|
||||||
|
-c
|
||||||
|
-b 0x26000
|
||||||
|
-f 0xADA52840
|
||||||
|
-o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2
|
||||||
|
${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin
|
||||||
|
)
|
8
zmk/app/boards/arm/bluemicro840/Kconfig
Normal file
8
zmk/app/boards/arm/bluemicro840/Kconfig
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_ENABLE_DCDC
|
||||||
|
bool "Enable DCDC mode"
|
||||||
|
select SOC_DCDC_NRF52X
|
||||||
|
default y
|
||||||
|
depends on BOARD_BLUEMICRO840_V1
|
||||||
|
|
8
zmk/app/boards/arm/bluemicro840/Kconfig.board
Normal file
8
zmk/app/boards/arm/bluemicro840/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# BlueMicro840 board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 Pete Johanson, Derek Schmell
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_BLUEMICRO840_V1
|
||||||
|
bool "BlueMicro840_V1"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
33
zmk/app/boards/arm/bluemicro840/Kconfig.defconfig
Normal file
33
zmk/app/boards/arm/bluemicro840/Kconfig.defconfig
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# BlueMicro840 board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 Pete Johanson, Derek Schmell
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if BOARD_BLUEMICRO840_V1
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "bluemicro840_v1"
|
||||||
|
|
||||||
|
if USB
|
||||||
|
|
||||||
|
config USB_NRFX
|
||||||
|
default y
|
||||||
|
|
||||||
|
config USB_DEVICE_STACK
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
|
config BT_CTLR
|
||||||
|
default BT
|
||||||
|
|
||||||
|
config ZMK_BLE
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_BATTERY_VOLTAGE_DIVIDER
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_BLUEMICRO840_V1
|
52
zmk/app/boards/arm/bluemicro840/arduino_pro_micro_pins.dtsi
Normal file
52
zmk/app/boards/arm/bluemicro840/arduino_pro_micro_pins.dtsi
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Derek Schmell
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
pro_micro_d: connector_d {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 8 0> /* D0 D2 */
|
||||||
|
, <1 0 &gpio0 6 0> /* D1 D3*/
|
||||||
|
, <2 0 &gpio0 15 0> /* D2 D1*/
|
||||||
|
, <3 0 &gpio0 17 0> /* D3 D0*/
|
||||||
|
, <4 0 &gpio0 20 0> /* D4/A6 D4*/
|
||||||
|
, <5 0 &gpio0 13 0> /* D5 C6*/
|
||||||
|
, <6 0 &gpio0 24 0> /* D6/A7 D7*/
|
||||||
|
, <7 0 &gpio0 9 0> /* D7 E6*/
|
||||||
|
, <8 0 &gpio0 10 0> /* D8/A8 B4*/
|
||||||
|
, <9 0 &gpio1 6 0> /* D9/A9 B5*/
|
||||||
|
, <10 0 &gpio1 11 0> /* D10/A10 B6*/
|
||||||
|
, <16 0 &gpio0 28 0> /* D16 B2*/
|
||||||
|
, <14 0 &gpio0 3 0> /* D14 B3*/
|
||||||
|
, <15 0 &gpio1 13 0> /* D15 B1*/
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_a: connector_a {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 2 0> /* A0 F7*/
|
||||||
|
, <1 0 &gpio0 29 0> /* A1 F6*/
|
||||||
|
, <2 0 &gpio0 26 0> /* A2 F5*/
|
||||||
|
, <3 0 &gpio0 30 0> /* A3 F4*/
|
||||||
|
, <6 0 &gpio0 20 0> /* D4/A6 D4*/
|
||||||
|
, <7 0 &gpio0 24 0> /* D6/A7 D7*/
|
||||||
|
, <8 0 &gpio0 10 0> /* D8/A8 B4*/
|
||||||
|
, <9 0 &gpio1 6 0> /* D9/A9 B5*/
|
||||||
|
, <10 0 &gpio1 13 0> /* D10/A10 B6*/
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_i2c: &i2c0 {};
|
||||||
|
pro_micro_spi: &spi0 {};
|
||||||
|
pro_micro_serial: &uart0 {};
|
120
zmk/app/boards/arm/bluemicro840/bluemicro840_v1.dts
Normal file
120
zmk/app/boards/arm/bluemicro840/bluemicro840_v1.dts
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Pete Johanson, Derek Schmell
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
#include "arduino_pro_micro_pins.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "BlueMicro840_V1";
|
||||||
|
compatible = "bluemicro840,v1";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue_led: led_0 {
|
||||||
|
gpios = <&gpio0 42 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Blue LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ext-power {
|
||||||
|
compatible = "zmk,ext-power-generic";
|
||||||
|
label = "EXT_POWER";
|
||||||
|
control-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbatt {
|
||||||
|
compatible = "zmk,battery-voltage-divider";
|
||||||
|
label = "BATTERY";
|
||||||
|
io-channels = <&adc 7>;
|
||||||
|
output-ohms = <2000000>;
|
||||||
|
full-ohms = <(2000000 + 806000)>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
&adc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
compatible = "nordic,nrf-twi";
|
||||||
|
sda-pin = <15>;
|
||||||
|
scl-pin = <17>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
compatible = "nordic,nrf-uarte";
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
tx-pin = <19>;
|
||||||
|
rx-pin = <21>;
|
||||||
|
rts-pin = <23>;
|
||||||
|
cts-pin = <25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbd {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
label = "softdevice";
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
label = "adafruit_boot";
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
zmk/app/boards/arm/bluemicro840/bluemicro840_v1.yaml
Normal file
15
zmk/app/boards/arm/bluemicro840/bluemicro840_v1.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: bluemicro840_v1
|
||||||
|
name: BlueMicro840_V1
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- usb_device
|
||||||
|
- ble
|
||||||
|
- ieee802154
|
||||||
|
- pwm
|
||||||
|
- watchdog
|
20
zmk/app/boards/arm/bluemicro840/bluemicro840_v1_defconfig
Normal file
20
zmk/app/boards/arm/bluemicro840/bluemicro840_v1_defconfig
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_BLUEMICRO840_V1=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
5
zmk/app/boards/arm/bluemicro840/board.cmake
Normal file
5
zmk/app/boards/arm/bluemicro840/board.cmake
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
7
zmk/app/boards/arm/dz60rgb/CMakeLists.txt
Normal file
7
zmk/app/boards/arm/dz60rgb/CMakeLists.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if(CONFIG_PINMUX)
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(pinmux.c)
|
||||||
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
||||||
|
endif()
|
6
zmk/app/boards/arm/dz60rgb/Kconfig.board
Normal file
6
zmk/app/boards/arm/dz60rgb/Kconfig.board
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_DZ60RGB_REV1
|
||||||
|
bool "DZ60RGB Keyboard"
|
||||||
|
depends on SOC_STM32F303XC
|
14
zmk/app/boards/arm/dz60rgb/Kconfig.defconfig
Normal file
14
zmk/app/boards/arm/dz60rgb/Kconfig.defconfig
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# DZ60RGB keyboard configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if BOARD_DZ60RGB_REV1
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
default "DZ60RGB Rev 1"
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_DZ60RGB_REV1
|
7
zmk/app/boards/arm/dz60rgb/board.cmake
Normal file
7
zmk/app/boards/arm/dz60rgb/board.cmake
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
|
||||||
|
board_runner_args(jlink "--device=STM32F303CC" "--speed=4000")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
88
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.dts
Normal file
88
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.dts
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <st/f3/stm32f303Xc.dtsi>
|
||||||
|
|
||||||
|
#include <dt-bindings/zmk/matrix-transform.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "DZ60RGB, Rev 1";
|
||||||
|
compatible = "dz60rgb,rev1", "st,stm32f303";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
zmk,kscan = &kscan0;
|
||||||
|
zmk,matrix_transform = &default_transform;
|
||||||
|
};
|
||||||
|
|
||||||
|
default_transform: keymap_transform_0 {
|
||||||
|
compatible = "zmk,matrix-transform";
|
||||||
|
columns = <14>;
|
||||||
|
rows = <5>;
|
||||||
|
map = <
|
||||||
|
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13)
|
||||||
|
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
|
||||||
|
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,13)
|
||||||
|
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) RC(3,13)
|
||||||
|
RC(4,0) RC(4,1) RC(4,2) RC(4,5) RC(4,8) RC(4,9) RC(4,10) RC(4,11) RC(4,13)
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
kscan0: kscan {
|
||||||
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
label = "KSCAN";
|
||||||
|
|
||||||
|
diode-direction = "col2row";
|
||||||
|
row-gpios
|
||||||
|
= <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpiob 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpiob 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpiob 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpiob 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
;
|
||||||
|
col-gpios
|
||||||
|
= <&gpioa 6 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpioa 7 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 0 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 13 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 15 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpioa 8 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpioa 15 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 3 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 4 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 5 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 8 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 9 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpioc 13 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpioc 14 GPIO_ACTIVE_HIGH>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
/* Set 6Kb of storage at the end of the 256Kb of flash */
|
||||||
|
storage_partition: partition@3e800 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x0003e800 0x00001800>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
25
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.keymap
Normal file
25
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.keymap
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
// ------------------------------------------------------------------------------------------
|
||||||
|
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BKSP |
|
||||||
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | "|" |
|
||||||
|
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER |
|
||||||
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | SHIFT(/) | ^ | DEL |
|
||||||
|
// | CTL | WIN | ALT | SPACE | ALT | MO(1) | <- | v | -> |
|
||||||
|
// ------------------------------------------------------------------------------------------
|
||||||
|
bindings = <
|
||||||
|
&kp ESC &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS &kp EQL &kp BKSP
|
||||||
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
|
||||||
|
&kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT &kp RET
|
||||||
|
&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &mt MOD_RSFT FSLH &kp UARW &kp DEL
|
||||||
|
&kp LCTL &kp LGUI &kp LALT &kp SPC &kp RALT &mo 1 &kp LARW &kp DARW &kp RARW
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
19
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.yaml
Normal file
19
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1.yaml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
identifier: DZ60RGB_rev1
|
||||||
|
name: DZ60RGBREV1
|
||||||
|
type: keyboard
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
ram: 40
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- i2c
|
||||||
|
- counter
|
||||||
|
- spi
|
||||||
|
- usb_device
|
||||||
|
- lsm303dlhc
|
||||||
|
- nvs
|
||||||
|
- can
|
||||||
|
- kscan
|
27
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1_defconfig
Normal file
27
zmk/app/boards/arm/dz60rgb/dz60rgb_rev1_defconfig
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_STM32F3X=y
|
||||||
|
CONFIG_SOC_STM32F303XC=y
|
||||||
|
# 72MHz system clock
|
||||||
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
||||||
|
|
||||||
|
# enable pinmux
|
||||||
|
CONFIG_PINMUX=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# clock configuration
|
||||||
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|
||||||
|
# Clock configuration for Cube Clock control driver
|
||||||
|
CONFIG_CLOCK_STM32_HSE_CLOCK=8000000
|
||||||
|
CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y
|
||||||
|
# use HSE as PLL input
|
||||||
|
CONFIG_CLOCK_STM32_PLL_SRC_HSE=y
|
||||||
|
# produce 72MHz clock at PLL output
|
||||||
|
CONFIG_CLOCK_STM32_PLL_PREDIV=1
|
||||||
|
CONFIG_CLOCK_STM32_PLL_MULTIPLIER=9
|
||||||
|
CONFIG_CLOCK_STM32_AHB_PRESCALER=1
|
||||||
|
CONFIG_CLOCK_STM32_APB1_PRESCALER=2
|
||||||
|
CONFIG_CLOCK_STM32_APB2_PRESCALER=1
|
67
zmk/app/boards/arm/dz60rgb/pinmux.c
Normal file
67
zmk/app/boards/arm/dz60rgb/pinmux.c
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 I-SENSE group of ICCS
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <kernel.h>
|
||||||
|
#include <device.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <drivers/pinmux.h>
|
||||||
|
#include <sys/sys_io.h>
|
||||||
|
|
||||||
|
#include <pinmux/stm32/pinmux_stm32.h>
|
||||||
|
|
||||||
|
/* pin assignments for STM32F3DISCOVERY board */
|
||||||
|
static const struct pin_config pinconf[] = {
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart1), okay) && CONFIG_SERIAL
|
||||||
|
{STM32_PIN_PC4, STM32F3_PINMUX_FUNC_PC4_USART1_TX},
|
||||||
|
{STM32_PIN_PC5, STM32F3_PINMUX_FUNC_PC5_USART1_RX},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart2), okay) && CONFIG_SERIAL
|
||||||
|
{STM32_PIN_PA2, STM32F3_PINMUX_FUNC_PA2_USART2_TX},
|
||||||
|
{STM32_PIN_PA3, STM32F3_PINMUX_FUNC_PA3_USART2_RX},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c1), okay) && CONFIG_I2C
|
||||||
|
{STM32_PIN_PB6, STM32F3_PINMUX_FUNC_PB6_I2C1_SCL},
|
||||||
|
{STM32_PIN_PB7, STM32F3_PINMUX_FUNC_PB7_I2C1_SDA},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c2), okay) && CONFIG_I2C
|
||||||
|
{STM32_PIN_PA9, STM32F3_PINMUX_FUNC_PA9_I2C2_SCL},
|
||||||
|
{STM32_PIN_PA10, STM32F3_PINMUX_FUNC_PA10_I2C2_SDA},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi1), okay) && CONFIG_SPI
|
||||||
|
#ifdef CONFIG_SPI_STM32_USE_HW_SS
|
||||||
|
{STM32_PIN_PA4, STM32F3_PINMUX_FUNC_PA4_SPI1_NSS},
|
||||||
|
#endif /* CONFIG_SPI_STM32_USE_HW_SS */
|
||||||
|
{STM32_PIN_PA5, STM32F3_PINMUX_FUNC_PA5_SPI1_SCK},
|
||||||
|
{STM32_PIN_PA6, STM32F3_PINMUX_FUNC_PA6_SPI1_MISO},
|
||||||
|
{STM32_PIN_PA7, STM32F3_PINMUX_FUNC_PA7_SPI1_MOSI},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi2), okay) && CONFIG_SPI
|
||||||
|
#ifdef CONFIG_SPI_STM32_USE_HW_SS
|
||||||
|
{STM32_PIN_PB12, STM32F3_PINMUX_FUNC_PB12_SPI2_NSS},
|
||||||
|
#endif /* CONFIG_SPI_STM32_USE_HW_SS */
|
||||||
|
{STM32_PIN_PB13, STM32F3_PINMUX_FUNC_PB13_SPI2_SCK},
|
||||||
|
{STM32_PIN_PB14, STM32F3_PINMUX_FUNC_PB14_SPI2_MISO},
|
||||||
|
{STM32_PIN_PB15, STM32F3_PINMUX_FUNC_PB15_SPI2_MOSI},
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_USB_DC_STM32
|
||||||
|
{STM32_PIN_PA11, STM32F3_PINMUX_FUNC_PA11_USB_DM},
|
||||||
|
{STM32_PIN_PA12, STM32F3_PINMUX_FUNC_PA12_USB_DP},
|
||||||
|
#endif /* CONFIG_USB_DC_STM32 */
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(can1), okay) && CONFIG_CAN
|
||||||
|
{STM32_PIN_PD0, STM32F3_PINMUX_FUNC_PD0_CAN1_RX},
|
||||||
|
{STM32_PIN_PD1, STM32F3_PINMUX_FUNC_PD1_CAN1_TX},
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
static int pinmux_stm32_init(struct device *port) {
|
||||||
|
ARG_UNUSED(port);
|
||||||
|
|
||||||
|
stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY);
|
8
zmk/app/boards/arm/nice_nano/CMakeLists.txt
Normal file
8
zmk/app/boards/arm/nice_nano/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py
|
||||||
|
-c
|
||||||
|
-b 0x26000
|
||||||
|
-f 0xADA52840
|
||||||
|
-o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2
|
||||||
|
${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin
|
||||||
|
)
|
7
zmk/app/boards/arm/nice_nano/Kconfig
Normal file
7
zmk/app/boards/arm/nice_nano/Kconfig
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_ENABLE_DCDC
|
||||||
|
bool "Enable DCDC mode"
|
||||||
|
select SOC_DCDC_NRF52X
|
||||||
|
default y
|
||||||
|
depends on BOARD_NICE_NANO
|
9
zmk/app/boards/arm/nice_nano/Kconfig.board
Normal file
9
zmk/app/boards/arm/nice_nano/Kconfig.board
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# nice!nano board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 Pete Johanson
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_NICE_NANO
|
||||||
|
bool "nice!nano"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
||||||
|
|
31
zmk/app/boards/arm/nice_nano/Kconfig.defconfig
Normal file
31
zmk/app/boards/arm/nice_nano/Kconfig.defconfig
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Copyright (c) 2020 Pete Johanson
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if BOARD_NICE_NANO
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "nice_nano"
|
||||||
|
|
||||||
|
if USB
|
||||||
|
|
||||||
|
config USB_NRFX
|
||||||
|
default y
|
||||||
|
|
||||||
|
config USB_DEVICE_STACK
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
|
config BT_CTLR
|
||||||
|
default BT
|
||||||
|
|
||||||
|
config ZMK_BLE
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_BATTERY_VOLTAGE_DIVIDER
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_NICE_NANO
|
52
zmk/app/boards/arm/nice_nano/arduino_pro_micro_pins.dtsi
Normal file
52
zmk/app/boards/arm/nice_nano/arduino_pro_micro_pins.dtsi
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Pete Johanson
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
pro_micro_d: connector_d {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 8 0> /* D0 */
|
||||||
|
, <1 0 &gpio0 6 0> /* D1 */
|
||||||
|
, <2 0 &gpio0 17 0> /* D2 */
|
||||||
|
, <3 0 &gpio0 20 0> /* D3 */
|
||||||
|
, <4 0 &gpio0 22 0> /* D4/A6 */
|
||||||
|
, <5 0 &gpio0 24 0> /* D5 */
|
||||||
|
, <6 0 &gpio1 0 0> /* D6/A7 */
|
||||||
|
, <7 0 &gpio0 11 0> /* D7 */
|
||||||
|
, <8 0 &gpio1 4 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpio1 6 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpio0 9 0> /* D10/A10 */
|
||||||
|
, <16 0 &gpio0 10 0> /* D16 */
|
||||||
|
, <14 0 &gpio1 11 0> /* D14 */
|
||||||
|
, <15 0 &gpio1 13 0> /* D15 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_a: connector_a {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio1 15 0> /* A0 */
|
||||||
|
, <1 0 &gpio0 2 0> /* A1 */
|
||||||
|
, <2 0 &gpio0 29 0> /* A2 */
|
||||||
|
, <3 0 &gpio0 31 0> /* A3 */
|
||||||
|
, <6 0 &gpio0 22 0> /* D4/A6 */
|
||||||
|
, <7 0 &gpio1 0 0> /* D6/A7 */
|
||||||
|
, <8 0 &gpio1 4 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpio1 6 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpio0 9 0> /* D10/A10 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_i2c: &i2c0 {};
|
||||||
|
pro_micro_spi: &spi0 {};
|
||||||
|
pro_micro_serial: &uart0 {};
|
5
zmk/app/boards/arm/nice_nano/board.cmake
Normal file
5
zmk/app/boards/arm/nice_nano/board.cmake
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
119
zmk/app/boards/arm/nice_nano/nice_nano.dts
Normal file
119
zmk/app/boards/arm/nice_nano/nice_nano.dts
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Pete Johanson
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
#include "arduino_pro_micro_pins.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "nice!nano";
|
||||||
|
compatible = "nice,nano";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue_led: led_0 {
|
||||||
|
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Blue LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ext-power {
|
||||||
|
compatible = "zmk,ext-power-generic";
|
||||||
|
label = "EXT_POWER";
|
||||||
|
control-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbatt {
|
||||||
|
compatible = "zmk,battery-voltage-divider";
|
||||||
|
label = "BATTERY";
|
||||||
|
io-channels = <&adc 2>;
|
||||||
|
output-ohms = <2000000>;
|
||||||
|
full-ohms = <(2000000 + 806000)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&adc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
compatible = "nordic,nrf-twi";
|
||||||
|
sda-pin = <17>;
|
||||||
|
scl-pin = <20>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
compatible = "nordic,nrf-uarte";
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
tx-pin = <19>;
|
||||||
|
rx-pin = <21>;
|
||||||
|
rts-pin = <23>;
|
||||||
|
cts-pin = <25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbd {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
label = "softdevice";
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
label = "adafruit_boot";
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
zmk/app/boards/arm/nice_nano/nice_nano.yaml
Normal file
15
zmk/app/boards/arm/nice_nano/nice_nano.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: nice_nano
|
||||||
|
name: nice!nano
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- usb_device
|
||||||
|
- ble
|
||||||
|
- ieee802154
|
||||||
|
- pwm
|
||||||
|
- watchdog
|
20
zmk/app/boards/arm/nice_nano/nice_nano_defconfig
Normal file
20
zmk/app/boards/arm/nice_nano/nice_nano_defconfig
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_NICE_NANO=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
13
zmk/app/boards/arm/nrf52840_m2/CMakeLists.txt
Normal file
13
zmk/app/boards/arm/nrf52840_m2/CMakeLists.txt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py
|
||||||
|
-c
|
||||||
|
-b 0x26000
|
||||||
|
-f 0xADA52840
|
||||||
|
-o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2
|
||||||
|
${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin
|
||||||
|
)
|
10
zmk/app/boards/arm/nrf52840_m2/Kconfig
Normal file
10
zmk/app/boards/arm/nrf52840_m2/Kconfig
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD_ENABLE_DCDC
|
||||||
|
bool "Enable DCDC mode"
|
||||||
|
select SOC_DCDC_NRF52X
|
||||||
|
default y
|
||||||
|
depends on BOARD_NRF52840_M2
|
10
zmk/app/boards/arm/nrf52840_m2/Kconfig.board
Normal file
10
zmk/app/boards/arm/nrf52840_m2/Kconfig.board
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Maker Diary nrf52840 M.2 board configuration
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD_NRF52840_M2
|
||||||
|
bool "nrf52480_m2"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
||||||
|
|
30
zmk/app/boards/arm/nrf52840_m2/Kconfig.defconfig
Normal file
30
zmk/app/boards/arm/nrf52840_m2/Kconfig.defconfig
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
if BOARD_NRF52840_M2
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "nrf52480_m2"
|
||||||
|
|
||||||
|
if USB
|
||||||
|
|
||||||
|
config USB_NRFX
|
||||||
|
default y
|
||||||
|
|
||||||
|
config USB_DEVICE_STACK
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
|
config BT_CTLR
|
||||||
|
default BT
|
||||||
|
|
||||||
|
config ZMK_BLE
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_NRF52840_M2
|
9
zmk/app/boards/arm/nrf52840_m2/board.cmake
Normal file
9
zmk/app/boards/arm/nrf52840_m2/board.cmake
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
107
zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.dts
Normal file
107
zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.dts
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Makerdiary nRF52840 M.2 module";
|
||||||
|
compatible = "makerdiary,nrf52840_m2";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
red_led: led_0 {
|
||||||
|
gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Red LED";
|
||||||
|
};
|
||||||
|
green_led: led_1 {
|
||||||
|
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Green LED";
|
||||||
|
};
|
||||||
|
blue_led: led_2 {
|
||||||
|
gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Blue LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
&adc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
compatible = "nordic,nrf-uarte";
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
tx-pin = <19>;
|
||||||
|
rx-pin = <21>;
|
||||||
|
rts-pin = <23>;
|
||||||
|
cts-pin = <25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbd {
|
||||||
|
compatible = "nordic,nrf-usbd";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
label = "softdevice";
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
label = "adafruit_boot";
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.yaml
Normal file
15
zmk/app/boards/arm/nrf52840_m2/nrf52840_m2.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: nrf52840_m2
|
||||||
|
name: Makerdiary nRF52840 M.2 module
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- usb_device
|
||||||
|
- ble
|
||||||
|
- ieee802154
|
||||||
|
- pwm
|
||||||
|
- watchdog
|
23
zmk/app/boards/arm/nrf52840_m2/nrf52840_m2_defconfig
Normal file
23
zmk/app/boards/arm/nrf52840_m2/nrf52840_m2_defconfig
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_NRF52840_M2=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
14
zmk/app/boards/arm/nrfmicro/CMakeLists.txt
Normal file
14
zmk/app/boards/arm/nrfmicro/CMakeLists.txt
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
|
||||||
|
COMMAND ${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/../tools/uf2/utils/uf2conv.py
|
||||||
|
-c
|
||||||
|
-b 0x26000
|
||||||
|
-f 0xADA52840
|
||||||
|
-o ${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.uf2
|
||||||
|
${PROJECT_BINARY_DIR}/${CONFIG_KERNEL_BIN_NAME}.bin
|
||||||
|
)
|
||||||
|
|
||||||
|
if(CONFIG_PINMUX)
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(pinmux.c)
|
||||||
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
||||||
|
endif()
|
10
zmk/app/boards/arm/nrfmicro/Kconfig
Normal file
10
zmk/app/boards/arm/nrfmicro/Kconfig
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
config BOARD_ENABLE_DCDC
|
||||||
|
bool "Enable DCDC mode"
|
||||||
|
select SOC_DCDC_NRF52X
|
||||||
|
default y
|
||||||
|
depends on (BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13)
|
||||||
|
|
||||||
|
config BOARD_NRFMICRO_CHARGER
|
||||||
|
bool "Enable battery charger"
|
||||||
|
default y
|
||||||
|
depends on (BOARD_NRFMICRO_13)
|
16
zmk/app/boards/arm/nrfmicro/Kconfig.board
Normal file
16
zmk/app/boards/arm/nrfmicro/Kconfig.board
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# nrfmicro board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_NRFMICRO_11
|
||||||
|
bool "nrfmicro_11"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
||||||
|
|
||||||
|
config BOARD_NRFMICRO_11_FLIPPED
|
||||||
|
bool "nrfmicro_11_flipped"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
||||||
|
|
||||||
|
config BOARD_NRFMICRO_13
|
||||||
|
bool "nrfmicro_13"
|
||||||
|
depends on SOC_NRF52840_QIAA
|
43
zmk/app/boards/arm/nrfmicro/Kconfig.defconfig
Normal file
43
zmk/app/boards/arm/nrfmicro/Kconfig.defconfig
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# Electronut Labs Papyr board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "nrfmicro"
|
||||||
|
|
||||||
|
if USB
|
||||||
|
|
||||||
|
config USB_NRFX
|
||||||
|
default y
|
||||||
|
|
||||||
|
config USB_DEVICE_STACK
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # USB
|
||||||
|
|
||||||
|
config BT_CTLR
|
||||||
|
default BT
|
||||||
|
|
||||||
|
config ZMK_BLE
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
config PINMUX
|
||||||
|
default y
|
||||||
|
|
||||||
|
if BOARD_NRFMICRO_13
|
||||||
|
|
||||||
|
config BOARD_NRFMICRO_CHARGER
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_BATTERY_VOLTAGE_DIVIDER
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_NRFMICRO_13
|
||||||
|
|
||||||
|
endif # BOARD_NRFMICRO_11 || BOARD_NRFMICRO_11_FLIPPED || BOARD_NRFMICRO_13
|
54
zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins.dtsi
Normal file
54
zmk/app/boards/arm/nrfmicro/arduino_pro_micro_pins.dtsi
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/ {
|
||||||
|
pro_micro_d: connector_d {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 8 0> /* D0 */
|
||||||
|
, <1 0 &gpio0 6 0> /* D1 */
|
||||||
|
, <2 0 &gpio0 15 0> /* D2 */
|
||||||
|
, <3 0 &gpio0 17 0> /* D3 */
|
||||||
|
, <4 0 &gpio0 20 0> /* D4/A6 */
|
||||||
|
, <5 0 &gpio0 13 0> /* D5 */
|
||||||
|
, <6 0 &gpio0 24 0> /* D6/A7 */
|
||||||
|
, <7 0 &gpio0 9 0> /* D7 */
|
||||||
|
, <8 0 &gpio0 10 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpio1 6 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpio1 11 0> /* D10/A10 */
|
||||||
|
, <16 0 &gpio0 28 0> /* D16 */
|
||||||
|
, <14 0 &gpio0 3 0> /* D14 */
|
||||||
|
, <15 0 &gpio1 13 0> /* D15 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_a: connector_a {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 2 0> /* A0 */
|
||||||
|
, <1 0 &gpio0 29 0> /* A1 */
|
||||||
|
, <2 0 &gpio0 31 0> /* A2 */
|
||||||
|
, <3 0 &gpio0 30 0> /* A3 */
|
||||||
|
, <6 0 &gpio0 20 0> /* D4/A6 */
|
||||||
|
, <7 0 &gpio0 24 0> /* D6/A7 */
|
||||||
|
, <8 0 &gpio0 10 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpio1 6 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpio1 11 0> /* D10/A10 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
pro_micro_i2c: &i2c0 {};
|
||||||
|
pro_micro_spi: &spi0 {};
|
||||||
|
pro_micro_serial: &uart0 {};
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
pro_micro_d: connector_d {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 8 0> /* D0 */
|
||||||
|
, <1 0 &gpio0 6 0> /* D1 */
|
||||||
|
, <2 0 &gpio0 30 0> /* D2 */
|
||||||
|
, <3 0 &gpio0 31 0> /* D3 */
|
||||||
|
, <4 0 &gpio0 29 0> /* D4/A6 */
|
||||||
|
, <5 0 &gpio0 2 0> /* D5 */
|
||||||
|
, <6 0 &gpio1 13 0> /* D6/A7 */
|
||||||
|
, <7 0 &gpio0 3 0> /* D7 */
|
||||||
|
, <8 0 &gpio0 28 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpio1 11 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpio1 6 0> /* D10/A10 */
|
||||||
|
, <16 0 &gpio0 10 0> /* D16 */
|
||||||
|
, <14 0 &gpio0 9 0> /* D14 */
|
||||||
|
, <15 0 &gpio0 24 0> /* D15 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_a: connector_a {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpio0 13 0> /* A0 */
|
||||||
|
, <1 0 &gpio0 20 0> /* A1 */
|
||||||
|
, <2 0 &gpio0 17 0> /* A2 */
|
||||||
|
, <3 0 &gpio0 15 0> /* A3 */
|
||||||
|
, <6 0 &gpio0 29 0> /* D4/A6 */
|
||||||
|
, <7 0 &gpio1 13 0> /* D6/A7 */
|
||||||
|
, <8 0 &gpio0 28 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpio1 11 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpio1 6 0> /* D10/A10 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_i2c: &i2c0 {};
|
||||||
|
pro_micro_spi: &spi0 {};
|
||||||
|
pro_micro_serial: &uart0 {};
|
5
zmk/app/boards/arm/nrfmicro/board.cmake
Normal file
5
zmk/app/boards/arm/nrfmicro/board.cmake
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
|
107
zmk/app/boards/arm/nrfmicro/nrfmicro_11.dts
Normal file
107
zmk/app/boards/arm/nrfmicro/nrfmicro_11.dts
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
#include "arduino_pro_micro_pins.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "nrfmicro";
|
||||||
|
compatible = "joric,nrfmicro";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue_led: led_0 {
|
||||||
|
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Blue LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ext-power {
|
||||||
|
compatible = "zmk,ext-power-generic";
|
||||||
|
label = "EXT_POWER";
|
||||||
|
control-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
compatible = "nordic,nrf-twi";
|
||||||
|
sda-pin = <15>;
|
||||||
|
scl-pin = <17>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
compatible = "nordic,nrf-uarte";
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
tx-pin = <19>;
|
||||||
|
rx-pin = <21>;
|
||||||
|
rts-pin = <23>;
|
||||||
|
cts-pin = <25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbd {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
label = "softdevice";
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
label = "adafruit_boot";
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
zmk/app/boards/arm/nrfmicro/nrfmicro_11.yaml
Normal file
15
zmk/app/boards/arm/nrfmicro/nrfmicro_11.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: nrfmicro_11
|
||||||
|
name: nrfmicro_11
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- usb_device
|
||||||
|
- ble
|
||||||
|
- ieee802154
|
||||||
|
- pwm
|
||||||
|
- watchdog
|
22
zmk/app/boards/arm/nrfmicro/nrfmicro_11_defconfig
Normal file
22
zmk/app/boards/arm/nrfmicro/nrfmicro_11_defconfig
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_NRFMICRO_11=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
|
107
zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.dts
Normal file
107
zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.dts
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
#include "arduino_pro_micro_pins_flipped.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "nrfmicro";
|
||||||
|
compatible = "joric,nrfmicro";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue_led: led_0 {
|
||||||
|
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Blue LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ext-power {
|
||||||
|
compatible = "zmk,ext-power-generic";
|
||||||
|
label = "EXT_POWER";
|
||||||
|
control-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
compatible = "nordic,nrf-twi";
|
||||||
|
sda-pin = <30>;
|
||||||
|
scl-pin = <31>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
compatible = "nordic,nrf-uarte";
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
tx-pin = <19>;
|
||||||
|
rx-pin = <21>;
|
||||||
|
rts-pin = <23>;
|
||||||
|
cts-pin = <25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbd {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
label = "softdevice";
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
label = "adafruit_boot";
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.yaml
Normal file
15
zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: nrfmicro_11_flipped
|
||||||
|
name: nrfmicro_11_flipped
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- usb_device
|
||||||
|
- ble
|
||||||
|
- ieee802154
|
||||||
|
- pwm
|
||||||
|
- watchdog
|
22
zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped_defconfig
Normal file
22
zmk/app/boards/arm/nrfmicro/nrfmicro_11_flipped_defconfig
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_NRFMICRO_11_FLIPPED=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
|
119
zmk/app/boards/arm/nrfmicro/nrfmicro_13.dts
Normal file
119
zmk/app/boards/arm/nrfmicro/nrfmicro_13.dts
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <nordic/nrf52840_qiaa.dtsi>
|
||||||
|
#include "arduino_pro_micro_pins.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "nrfmicro";
|
||||||
|
compatible = "joric,nrfmicro";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &code_partition;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
blue_led: led_0 {
|
||||||
|
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "Blue LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ext-power {
|
||||||
|
compatible = "zmk,ext-power-generic";
|
||||||
|
label = "EXT_POWER";
|
||||||
|
control-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
vbatt {
|
||||||
|
compatible = "zmk,battery-voltage-divider";
|
||||||
|
label = "BATTERY";
|
||||||
|
io-channels = <&adc 2>;
|
||||||
|
output-ohms = <2000000>;
|
||||||
|
full-ohms = <(2000000 + 820000)>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&adc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpiote {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpio1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
compatible = "nordic,nrf-twi";
|
||||||
|
sda-pin = <15>;
|
||||||
|
scl-pin = <17>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
compatible = "nordic,nrf-uarte";
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
tx-pin = <19>;
|
||||||
|
rx-pin = <21>;
|
||||||
|
rts-pin = <23>;
|
||||||
|
cts-pin = <25>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbd {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
sd_partition: partition@0 {
|
||||||
|
label = "softdevice";
|
||||||
|
reg = <0x00000000 0x00026000>;
|
||||||
|
};
|
||||||
|
code_partition: partition@26000 {
|
||||||
|
label = "code_partition";
|
||||||
|
reg = <0x00026000 0x000c6000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x000ec000 and ending at
|
||||||
|
* 0x000f3fff is reserved for use by the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Storage partition will be used by FCB/LittleFS/NVS
|
||||||
|
* if enabled.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@ec000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x000ec000 0x00008000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot_partition: partition@f4000 {
|
||||||
|
label = "adafruit_boot";
|
||||||
|
reg = <0x000f4000 0x0000c000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
15
zmk/app/boards/arm/nrfmicro/nrfmicro_13.yaml
Normal file
15
zmk/app/boards/arm/nrfmicro/nrfmicro_13.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
identifier: nrfmicro_13
|
||||||
|
name: nrfmicro_13
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
supported:
|
||||||
|
- adc
|
||||||
|
- usb_device
|
||||||
|
- ble
|
||||||
|
- ieee802154
|
||||||
|
- pwm
|
||||||
|
- watchdog
|
22
zmk/app/boards/arm/nrfmicro/nrfmicro_13_defconfig
Normal file
22
zmk/app/boards/arm/nrfmicro/nrfmicro_13_defconfig
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_NRF52X=y
|
||||||
|
CONFIG_SOC_NRF52840_QIAA=y
|
||||||
|
CONFIG_BOARD_NRFMICRO_13=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
CONFIG_USE_DT_CODE_PARTITION=y
|
||||||
|
|
||||||
|
CONFIG_MPU_ALLOW_FLASH_WRITE=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF=y
|
||||||
|
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
|
29
zmk/app/boards/arm/nrfmicro/pinmux.c
Normal file
29
zmk/app/boards/arm/nrfmicro/pinmux.c
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <kernel.h>
|
||||||
|
#include <device.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <drivers/gpio.h>
|
||||||
|
#include <sys/sys_io.h>
|
||||||
|
#include <devicetree.h>
|
||||||
|
|
||||||
|
static int pinmux_nrfmicro_init(struct device *port) {
|
||||||
|
ARG_UNUSED(port);
|
||||||
|
|
||||||
|
#if CONFIG_BOARD_NRFMICRO_13
|
||||||
|
struct device *p0 = device_get_binding("GPIO_0");
|
||||||
|
#if CONFIG_BOARD_NRFMICRO_CHARGER
|
||||||
|
gpio_pin_configure(p0, 5, GPIO_OUTPUT);
|
||||||
|
gpio_pin_set(p0, 5, 0);
|
||||||
|
#else
|
||||||
|
gpio_pin_configure(p0, 5, GPIO_INPUT);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(pinmux_nrfmicro_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY);
|
9
zmk/app/boards/arm/planck/CMakeLists.txt
Normal file
9
zmk/app/boards/arm/planck/CMakeLists.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
list(APPEND EXTRA_DTC_FLAGS "-qq")
|
||||||
|
|
||||||
|
if(CONFIG_PINMUX)
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(pinmux.c)
|
||||||
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
||||||
|
endif()
|
8
zmk/app/boards/arm/planck/Kconfig.board
Normal file
8
zmk/app/boards/arm/planck/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Planck V6 board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_PLANCK_REV6
|
||||||
|
bool "Planck V6 Keyboard"
|
||||||
|
depends on SOC_STM32F303XC
|
17
zmk/app/boards/arm/planck/Kconfig.defconfig
Normal file
17
zmk/app/boards/arm/planck/Kconfig.defconfig
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# Planck keyboard configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if BOARD_PLANCK_REV6
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
default "Planck V6"
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
config ZMK_KSCAN_MATRIX_POLLING
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_PLANCK_REV6
|
7
zmk/app/boards/arm/planck/board.cmake
Normal file
7
zmk/app/boards/arm/planck/board.cmake
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
|
||||||
|
board_runner_args(jlink "--device=STM32F303VC" "--speed=4000")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
67
zmk/app/boards/arm/planck/pinmux.c
Normal file
67
zmk/app/boards/arm/planck/pinmux.c
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 I-SENSE group of ICCS
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <kernel.h>
|
||||||
|
#include <device.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <drivers/pinmux.h>
|
||||||
|
#include <sys/sys_io.h>
|
||||||
|
|
||||||
|
#include <pinmux/stm32/pinmux_stm32.h>
|
||||||
|
|
||||||
|
/* pin assignments for STM32F3DISCOVERY board */
|
||||||
|
static const struct pin_config pinconf[] = {
|
||||||
|
#ifdef CONFIG_UART_1
|
||||||
|
{STM32_PIN_PC4, STM32F3_PINMUX_FUNC_PC4_USART1_TX},
|
||||||
|
{STM32_PIN_PC5, STM32F3_PINMUX_FUNC_PC5_USART1_RX},
|
||||||
|
#endif /* CONFIG_UART_1 */
|
||||||
|
#ifdef CONFIG_UART_2
|
||||||
|
{STM32_PIN_PA2, STM32F3_PINMUX_FUNC_PA2_USART2_TX},
|
||||||
|
{STM32_PIN_PA3, STM32F3_PINMUX_FUNC_PA3_USART2_RX},
|
||||||
|
#endif /* CONFIG_UART_2 */
|
||||||
|
#ifdef CONFIG_I2C_1
|
||||||
|
{STM32_PIN_PB6, STM32F3_PINMUX_FUNC_PB6_I2C1_SCL},
|
||||||
|
{STM32_PIN_PB7, STM32F3_PINMUX_FUNC_PB7_I2C1_SDA},
|
||||||
|
#endif /* CONFIG_I2C_1 */
|
||||||
|
#ifdef CONFIG_I2C_2
|
||||||
|
{STM32_PIN_PA9, STM32F3_PINMUX_FUNC_PA9_I2C2_SCL},
|
||||||
|
{STM32_PIN_PA10, STM32F3_PINMUX_FUNC_PA10_I2C2_SDA},
|
||||||
|
#endif /* CONFIG_I2C_2 */
|
||||||
|
#ifdef CONFIG_SPI_1
|
||||||
|
#ifdef CONFIG_SPI_STM32_USE_HW_SS
|
||||||
|
{STM32_PIN_PA4, STM32F3_PINMUX_FUNC_PA4_SPI1_NSS},
|
||||||
|
#endif /* CONFIG_SPI_STM32_USE_HW_SS */
|
||||||
|
{STM32_PIN_PA5, STM32F3_PINMUX_FUNC_PA5_SPI1_SCK},
|
||||||
|
{STM32_PIN_PA6, STM32F3_PINMUX_FUNC_PA6_SPI1_MISO},
|
||||||
|
{STM32_PIN_PA7, STM32F3_PINMUX_FUNC_PA7_SPI1_MOSI},
|
||||||
|
#endif /* CONFIG_SPI_1 */
|
||||||
|
#ifdef CONFIG_SPI_2
|
||||||
|
#ifdef CONFIG_SPI_STM32_USE_HW_SS
|
||||||
|
{STM32_PIN_PB12, STM32F3_PINMUX_FUNC_PB12_SPI2_NSS},
|
||||||
|
#endif /* CONFIG_SPI_STM32_USE_HW_SS */
|
||||||
|
{STM32_PIN_PB13, STM32F3_PINMUX_FUNC_PB13_SPI2_SCK},
|
||||||
|
{STM32_PIN_PB14, STM32F3_PINMUX_FUNC_PB14_SPI2_MISO},
|
||||||
|
{STM32_PIN_PB15, STM32F3_PINMUX_FUNC_PB15_SPI2_MOSI},
|
||||||
|
#endif /* CONFIG_SPI_2 */
|
||||||
|
#ifdef CONFIG_USB_DC_STM32
|
||||||
|
{STM32_PIN_PA11, STM32F3_PINMUX_FUNC_PA11_USB_DM},
|
||||||
|
{STM32_PIN_PA12, STM32F3_PINMUX_FUNC_PA12_USB_DP},
|
||||||
|
#endif /* CONFIG_USB_DC_STM32 */
|
||||||
|
#ifdef CONFIG_CAN_1
|
||||||
|
{STM32_PIN_PD0, STM32F3_PINMUX_FUNC_PD0_CAN1_RX},
|
||||||
|
{STM32_PIN_PD1, STM32F3_PINMUX_FUNC_PD1_CAN1_TX},
|
||||||
|
#endif /* CONFIG_CAN_1 */
|
||||||
|
};
|
||||||
|
|
||||||
|
static int pinmux_stm32_init(struct device *port) {
|
||||||
|
ARG_UNUSED(port);
|
||||||
|
|
||||||
|
stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY);
|
65
zmk/app/boards/arm/planck/planck_rev6.dts
Normal file
65
zmk/app/boards/arm/planck/planck_rev6.dts
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 I-SENSE group of ICCS
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <st/f3/stm32f303Xc.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Plack PCD, rev6";
|
||||||
|
compatible = "planck,rev6", "st,stm32f303";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
zmk,kscan = &kscan0;
|
||||||
|
};
|
||||||
|
|
||||||
|
kscan0: kscan {
|
||||||
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
label = "KSCAN";
|
||||||
|
row-gpios
|
||||||
|
= <&gpioa 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpioa 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpiob 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpioc 13 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpioc 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpioc 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&gpioa 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
;
|
||||||
|
col-gpios
|
||||||
|
= <&gpiob 11 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 10 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 2 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 1 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpioa 7 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&gpiob 0 GPIO_ACTIVE_HIGH>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
/* Set 6Kb of storage at the end of the 256Kb of flash */
|
||||||
|
storage_partition: partition@3e800 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x0003e800 0x00001800>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
22
zmk/app/boards/arm/planck/planck_rev6.keymap
Normal file
22
zmk/app/boards/arm/planck/planck_rev6.keymap
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
// -----------------------------------------------------------------------------------------
|
||||||
|
// | TAB | Q | W | E | R | T | Y | U | I | O | P | BSPC |
|
||||||
|
// | ESC | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||||
|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | RET |
|
||||||
|
// | FN | LGUI | LALT | LCTL | LOWR | SPACE | RAIS | LARW | DARW | UARW | RARW |
|
||||||
|
bindings = <
|
||||||
|
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp DEL
|
||||||
|
&kp ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SCLN &kp QUOT
|
||||||
|
&kp LSFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp BSLH &kp RET
|
||||||
|
&trans &kp LGUI &kp LALT &kp LCTL &trans &trans &kp SPC &trans &kp LARW &kp DARW &kp UARW &kp RARW
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
19
zmk/app/boards/arm/planck/planck_rev6.yaml
Normal file
19
zmk/app/boards/arm/planck/planck_rev6.yaml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
identifier: planck_rev6
|
||||||
|
name: PLANKREV6
|
||||||
|
type: keyboard
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
ram: 40
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- i2c
|
||||||
|
- counter
|
||||||
|
- spi
|
||||||
|
- usb_device
|
||||||
|
- lsm303dlhc
|
||||||
|
- nvs
|
||||||
|
- can
|
||||||
|
- kscan
|
28
zmk/app/boards/arm/planck/planck_rev6_defconfig
Normal file
28
zmk/app/boards/arm/planck/planck_rev6_defconfig
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_STM32F3X=y
|
||||||
|
CONFIG_SOC_STM32F303XC=y
|
||||||
|
# 72MHz system clock
|
||||||
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
||||||
|
|
||||||
|
|
||||||
|
# enable pinmux
|
||||||
|
CONFIG_PINMUX=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# clock configuration
|
||||||
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|
||||||
|
# Clock configuration for Cube Clock control driver
|
||||||
|
CONFIG_CLOCK_STM32_HSE_CLOCK=8000000
|
||||||
|
CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y
|
||||||
|
# use HSE as PLL input
|
||||||
|
CONFIG_CLOCK_STM32_PLL_SRC_HSE=y
|
||||||
|
# produce 72MHz clock at PLL output
|
||||||
|
CONFIG_CLOCK_STM32_PLL_PREDIV=1
|
||||||
|
CONFIG_CLOCK_STM32_PLL_MULTIPLIER=9
|
||||||
|
CONFIG_CLOCK_STM32_AHB_PRESCALER=1
|
||||||
|
CONFIG_CLOCK_STM32_APB1_PRESCALER=2
|
||||||
|
CONFIG_CLOCK_STM32_APB2_PRESCALER=1
|
7
zmk/app/boards/arm/proton_c/CMakeLists.txt
Normal file
7
zmk/app/boards/arm/proton_c/CMakeLists.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if(CONFIG_PINMUX)
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(pinmux.c)
|
||||||
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
||||||
|
endif()
|
8
zmk/app/boards/arm/proton_c/Kconfig.board
Normal file
8
zmk/app/boards/arm/proton_c/Kconfig.board
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# QMK Proton-C board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 Pete Johanson
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config BOARD_QMK_PROTON_C
|
||||||
|
bool "QMK Proton-C"
|
||||||
|
depends on SOC_STM32F303XC
|
14
zmk/app/boards/arm/proton_c/Kconfig.defconfig
Normal file
14
zmk/app/boards/arm/proton_c/Kconfig.defconfig
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# QMK Proton-C board configuration
|
||||||
|
|
||||||
|
# Copyright (c) 2020 Pete Johanson
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if BOARD_QMK_PROTON_C
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "proton_c"
|
||||||
|
|
||||||
|
config ZMK_USB
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # BOARD_QMK_PROTON_C
|
52
zmk/app/boards/arm/proton_c/arduino_pro_micro_pins.dtsi
Normal file
52
zmk/app/boards/arm/proton_c/arduino_pro_micro_pins.dtsi
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Pete Johanson
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
pro_micro_d: connector_d {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpioa 10 0> /* D0 */
|
||||||
|
, <1 0 &gpioa 9 0> /* D1 */
|
||||||
|
, <2 0 &gpiob 7 0> /* D2 */
|
||||||
|
, <3 0 &gpiob 6 0> /* D3 */
|
||||||
|
, <4 0 &gpiob 5 0> /* D4/A6 */
|
||||||
|
, <5 0 &gpiob 4 0> /* D5 */
|
||||||
|
, <6 0 &gpiob 3 0> /* D6/A7 */
|
||||||
|
, <7 0 &gpiob 2 0> /* D7 */
|
||||||
|
, <8 0 &gpiob 1 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpiob 0 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpiob 9 0> /* D10/A10 */
|
||||||
|
, <16 0 &gpiob 15 0> /* D16 */
|
||||||
|
, <14 0 &gpiob 14 0> /* D14 */
|
||||||
|
, <15 0 &gpiob 13 0> /* D15 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_a: connector_a {
|
||||||
|
compatible = "arduino-pro-micro";
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||||
|
gpio-map-pass-thru = <0 0x3f>;
|
||||||
|
gpio-map
|
||||||
|
= <0 0 &gpiob 8 0> /* A0 */
|
||||||
|
, <1 0 &gpioa 0 0> /* A1 */
|
||||||
|
, <2 0 &gpioa 1 0> /* A2 */
|
||||||
|
, <3 0 &gpioa 2 0> /* A3 */
|
||||||
|
, <6 0 &gpiob 5 0> /* D4/A6 */
|
||||||
|
, <7 0 &gpiob 3 0> /* D6/A7 */
|
||||||
|
, <8 0 &gpiob 1 0> /* D8/A8 */
|
||||||
|
, <9 0 &gpiob 0 0> /* D9/A9 */
|
||||||
|
, <10 0 &gpiob 9 0> /* D10/A10 */
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pro_micro_i2c: &i2c1 {};
|
||||||
|
pro_micro_spi: &spi1 {};
|
||||||
|
pro_micro_serial: &usart1 {};
|
7
zmk/app/boards/arm/proton_c/board.cmake
Normal file
7
zmk/app/boards/arm/proton_c/board.cmake
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
|
||||||
|
board_runner_args(jlink "--device=STM32F303CC" "--speed=4000")
|
||||||
|
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
67
zmk/app/boards/arm/proton_c/pinmux.c
Normal file
67
zmk/app/boards/arm/proton_c/pinmux.c
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2017 I-SENSE group of ICCS
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <kernel.h>
|
||||||
|
#include <device.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <drivers/pinmux.h>
|
||||||
|
#include <sys/sys_io.h>
|
||||||
|
|
||||||
|
#include <pinmux/stm32/pinmux_stm32.h>
|
||||||
|
|
||||||
|
/* pin assignments for STM32F3DISCOVERY board */
|
||||||
|
static const struct pin_config pinconf[] = {
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart1), okay) && CONFIG_SERIAL
|
||||||
|
{STM32_PIN_PC4, STM32F3_PINMUX_FUNC_PC4_USART1_TX},
|
||||||
|
{STM32_PIN_PC5, STM32F3_PINMUX_FUNC_PC5_USART1_RX},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(usart2), okay) && CONFIG_SERIAL
|
||||||
|
{STM32_PIN_PA2, STM32F3_PINMUX_FUNC_PA2_USART2_TX},
|
||||||
|
{STM32_PIN_PA3, STM32F3_PINMUX_FUNC_PA3_USART2_RX},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c1), okay) && CONFIG_I2C
|
||||||
|
{STM32_PIN_PB6, STM32F3_PINMUX_FUNC_PB6_I2C1_SCL},
|
||||||
|
{STM32_PIN_PB7, STM32F3_PINMUX_FUNC_PB7_I2C1_SDA},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(i2c2), okay) && CONFIG_I2C
|
||||||
|
{STM32_PIN_PA9, STM32F3_PINMUX_FUNC_PA9_I2C2_SCL},
|
||||||
|
{STM32_PIN_PA10, STM32F3_PINMUX_FUNC_PA10_I2C2_SDA},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi1), okay) && CONFIG_SPI
|
||||||
|
#ifdef CONFIG_SPI_STM32_USE_HW_SS
|
||||||
|
{STM32_PIN_PA4, STM32F3_PINMUX_FUNC_PA4_SPI1_NSS},
|
||||||
|
#endif /* CONFIG_SPI_STM32_USE_HW_SS */
|
||||||
|
{STM32_PIN_PA5, STM32F3_PINMUX_FUNC_PA5_SPI1_SCK},
|
||||||
|
{STM32_PIN_PA6, STM32F3_PINMUX_FUNC_PA6_SPI1_MISO},
|
||||||
|
{STM32_PIN_PA7, STM32F3_PINMUX_FUNC_PA7_SPI1_MOSI},
|
||||||
|
#endif
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(spi2), okay) && CONFIG_SPI
|
||||||
|
#ifdef CONFIG_SPI_STM32_USE_HW_SS
|
||||||
|
{STM32_PIN_PB12, STM32F3_PINMUX_FUNC_PB12_SPI2_NSS},
|
||||||
|
#endif /* CONFIG_SPI_STM32_USE_HW_SS */
|
||||||
|
{STM32_PIN_PB13, STM32F3_PINMUX_FUNC_PB13_SPI2_SCK},
|
||||||
|
{STM32_PIN_PB14, STM32F3_PINMUX_FUNC_PB14_SPI2_MISO},
|
||||||
|
{STM32_PIN_PB15, STM32F3_PINMUX_FUNC_PB15_SPI2_MOSI},
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_USB_DC_STM32
|
||||||
|
{STM32_PIN_PA11, STM32F3_PINMUX_FUNC_PA11_USB_DM},
|
||||||
|
{STM32_PIN_PA12, STM32F3_PINMUX_FUNC_PA12_USB_DP},
|
||||||
|
#endif /* CONFIG_USB_DC_STM32 */
|
||||||
|
#if DT_NODE_HAS_STATUS(DT_NODELABEL(can1), okay) && CONFIG_CAN
|
||||||
|
{STM32_PIN_PD0, STM32F3_PINMUX_FUNC_PD0_CAN1_RX},
|
||||||
|
{STM32_PIN_PD1, STM32F3_PINMUX_FUNC_PD1_CAN1_TX},
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
static int pinmux_stm32_init(struct device *port) {
|
||||||
|
ARG_UNUSED(port);
|
||||||
|
|
||||||
|
stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf));
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY);
|
53
zmk/app/boards/arm/proton_c/proton_c.dts
Normal file
53
zmk/app/boards/arm/proton_c/proton_c.dts
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 Pete Johanson
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <st/f3/stm32f303Xc.dtsi>
|
||||||
|
#include "arduino_pro_micro_pins.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "QMK Proton C";
|
||||||
|
compatible = "qmk,proton_c", "st,stm32f303";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
led: led_0 {
|
||||||
|
gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "User LED";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rtc {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
/*
|
||||||
|
* For more information, see:
|
||||||
|
* http://docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
|
||||||
|
*/
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
/* Set 6Kb of storage at the end of the 256Kb of flash */
|
||||||
|
storage_partition: partition@3e800 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x0003e800 0x00001800>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
18
zmk/app/boards/arm/proton_c/proton_c.yaml
Normal file
18
zmk/app/boards/arm/proton_c/proton_c.yaml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
identifier: proton_c
|
||||||
|
name: QMK Proton-C
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
ram: 40
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- i2c
|
||||||
|
- counter
|
||||||
|
- spi
|
||||||
|
- usb_device
|
||||||
|
- lsm303dlhc
|
||||||
|
- nvs
|
||||||
|
- can
|
30
zmk/app/boards/arm/proton_c/proton_c_defconfig
Normal file
30
zmk/app/boards/arm/proton_c/proton_c_defconfig
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
CONFIG_SOC_SERIES_STM32F3X=y
|
||||||
|
CONFIG_SOC_STM32F303XC=y
|
||||||
|
# 72MHz system clock
|
||||||
|
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
|
||||||
|
|
||||||
|
# Floating Point Options
|
||||||
|
CONFIG_FPU=y
|
||||||
|
|
||||||
|
# enable pinmux
|
||||||
|
CONFIG_PINMUX=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# clock configuration
|
||||||
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|
||||||
|
# Clock configuration for Cube Clock control driver
|
||||||
|
CONFIG_CLOCK_STM32_HSE_CLOCK=8000000
|
||||||
|
CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y
|
||||||
|
# use HSE as PLL input
|
||||||
|
CONFIG_CLOCK_STM32_PLL_SRC_HSE=y
|
||||||
|
# produce 72MHz clock at PLL output
|
||||||
|
CONFIG_CLOCK_STM32_PLL_PREDIV=1
|
||||||
|
CONFIG_CLOCK_STM32_PLL_MULTIPLIER=9
|
||||||
|
CONFIG_CLOCK_STM32_AHB_PRESCALER=1
|
||||||
|
CONFIG_CLOCK_STM32_APB1_PRESCALER=2
|
||||||
|
CONFIG_CLOCK_STM32_APB2_PRESCALER=1
|
8
zmk/app/boards/native_posix.conf
Normal file
8
zmk/app/boards/native_posix.conf
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
CONFIG_KSCAN=n
|
||||||
|
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y
|
||||||
|
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n
|
||||||
|
CONFIG_GPIO=n
|
||||||
|
CONFIG_ZMK_BLE=n
|
||||||
|
CONFIG_LOG=y
|
||||||
|
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||||
|
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
18
zmk/app/boards/native_posix.overlay
Normal file
18
zmk/app/boards/native_posix.overlay
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
zmk,kscan = &kscan;
|
||||||
|
};
|
||||||
|
|
||||||
|
kscan: kscan {
|
||||||
|
compatible = "zmk,kscan-mock";
|
||||||
|
label = "KSCAN_MOCK";
|
||||||
|
|
||||||
|
rows = <2>;
|
||||||
|
columns = <2>;
|
||||||
|
exit-after;
|
||||||
|
};
|
||||||
|
};
|
14
zmk/app/boards/shields/Kconfig.defconfig
Normal file
14
zmk/app/boards/shields/Kconfig.defconfig
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
default "cradios"
|
||||||
|
|
||||||
|
# Unable to use interrupts as the same pin number is used
|
||||||
|
# across A & B controllers, and STM32F303CCT6 can't enable
|
||||||
|
# interrutps for multiple controllers for the same "line"
|
||||||
|
# for the external interrupts.
|
||||||
|
config ZMK_KSCAN_GPIO_POLLING
|
||||||
|
default y
|
||||||
|
|
||||||
|
|
5
zmk/app/boards/shields/Kconfig.shield
Normal file
5
zmk/app/boards/shields/Kconfig.shield
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Copyright (c) 2020 Pete Johanson
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config SHIELD_CRADIOS
|
||||||
|
def_bool $(shields_list_contains,cradios)
|
9
zmk/app/boards/shields/boardsource3x4/Kconfig.defconfig
Normal file
9
zmk/app/boards/shields/boardsource3x4/Kconfig.defconfig
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
if SHIELD_BOARDSOURCE3X4
|
||||||
|
|
||||||
|
config ZMK_KEYBOARD_NAME
|
||||||
|
default "Boardsource 3x4"
|
||||||
|
|
||||||
|
endif
|
6
zmk/app/boards/shields/boardsource3x4/Kconfig.shield
Normal file
6
zmk/app/boards/shields/boardsource3x4/Kconfig.shield
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (c) 2020 The ZMK Contributors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
config SHIELD_BOARDSOURCE3X4
|
||||||
|
def_bool $(shields_list_contains,boardsource3x4)
|
||||||
|
|
49
zmk/app/boards/shields/boardsource3x4/boardsource3x4.keymap
Normal file
49
zmk/app/boards/shields/boardsource3x4/boardsource3x4.keymap
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <dt-bindings/zmk/bt.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
|
||||||
|
bindings = <
|
||||||
|
&tog 1 &kp M_PREV &kp M_PLAY &kp M_NEXT
|
||||||
|
&mo 2 &kp M_VOLD &kp UARW &kp M_VOLU
|
||||||
|
&mo 3 &kp LARW &kp DARW &kp RARW
|
||||||
|
>;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
num_layer {
|
||||||
|
bindings = <
|
||||||
|
&trans &kp NUM_7 &kp NUM_8 &kp NUM_9
|
||||||
|
&trans &kp NUM_4 &kp NUM_5 &kp NUM_6
|
||||||
|
< 3 NUM_0 &kp NUM_1 &kp NUM_2 &kp NUM_3
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lower_layer {
|
||||||
|
bindings = <
|
||||||
|
&bt BT_CLR &none &reset &bootloader
|
||||||
|
&trans &bt BT_SEL 3 &bt BT_SEL 4 &none
|
||||||
|
&none &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
raise_layer {
|
||||||
|
bindings = <
|
||||||
|
&kp 0x68 &kp 0x69 &kp 0x6A &kp 0x6B
|
||||||
|
&kp 0x6C &kp 0x6D &kp 0x6E &kp 0x6F
|
||||||
|
&trans &kp 0x70 &kp 0x71 &kp 0x72
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
32
zmk/app/boards/shields/boardsource3x4/boardsource3x4.overlay
Normal file
32
zmk/app/boards/shields/boardsource3x4/boardsource3x4.overlay
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 The ZMK Contributors
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dt-bindings/zmk/matrix-transform.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
zmk,kscan = &kscan0;
|
||||||
|
};
|
||||||
|
|
||||||
|
kscan0: kscan {
|
||||||
|
compatible = "zmk,kscan-gpio-matrix";
|
||||||
|
label = "KSCAN";
|
||||||
|
diode-direction = "col2row";
|
||||||
|
|
||||||
|
row-gpios
|
||||||
|
= <&pro_micro_a 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&pro_micro_a 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
, <&pro_micro_a 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
|
||||||
|
;
|
||||||
|
|
||||||
|
col-gpios
|
||||||
|
= <&pro_micro_d 10 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&pro_micro_d 16 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&pro_micro_d 14 GPIO_ACTIVE_HIGH>
|
||||||
|
, <&pro_micro_d 15 GPIO_ACTIVE_HIGH>
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue