diff --git a/Cargo.lock b/Cargo.lock index a8266fda..0f0bb0be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1123,34 +1123,6 @@ dependencies = [ "libc", ] -[[package]] -name = "corne-nrf" -version = "0.2.0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "embassy-executor", - "embassy-nrf", - "nrf-softdevice", - "rktk", - "rktk-drivers-common", - "rktk-drivers-nrf", -] - -[[package]] -name = "corne-rp" -version = "0.2.0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "embassy-executor", - "embassy-rp", - "portable-atomic", - "rktk", - "rktk-drivers-common", - "rktk-drivers-rp", -] - [[package]] name = "cortex-m" version = "0.7.7" @@ -2183,19 +2155,6 @@ dependencies = [ "shared_thread", ] -[[package]] -name = "dummy-rp" -version = "0.2.0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "embassy-executor", - "embassy-rp", - "portable-atomic", - "rktk", - "rktk-drivers-rp", -] - [[package]] name = "dunce" version = "1.0.5" @@ -4000,52 +3959,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "keyball61-common" -version = "0.2.0" -dependencies = [ - "rktk", - "rktk-drivers-common", -] - -[[package]] -name = "keyball61-nrf" -version = "0.2.0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "embassy-embedded-hal", - "embassy-executor", - "embassy-nrf", - "embassy-sync 0.7.2", - "embassy-time", - "keyball61-common", - "nrf-softdevice", - "once_cell", - "rktk", - "rktk-drivers-common", - "rktk-drivers-nrf", -] - -[[package]] -name = "keyball61-rp" -version = "0.2.0" -dependencies = [ - "cortex-m", - "cortex-m-rt", - "defmt 1.0.1", - "embassy-embedded-hal", - "embassy-executor", - "embassy-rp", - "embassy-sync 0.7.2", - "embassy-time", - "keyball61-common", - "portable-atomic", - "rktk", - "rktk-drivers-common", - "rktk-drivers-rp", -] - [[package]] name = "keyboard-types" version = "0.7.0" @@ -4621,32 +4534,6 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "neg-nrf" -version = "0.2.0" -dependencies = [ - "cfg-if", - "cortex-m", - "cortex-m-rt", - "defmt 1.0.1", - "embassy-embedded-hal", - "embassy-executor", - "embassy-nrf", - "embassy-sync 0.7.2", - "embassy-time", - "embedded-alloc", - "log", - "nrf-sdc", - "nrf-softdevice", - "once_cell", - "rand_chacha 0.3.1", - "rktk", - "rktk-drivers-common", - "rktk-drivers-nrf", - "rktk-log", - "static_cell", -] - [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -6114,6 +6001,115 @@ dependencies = [ "static_cell", ] +[[package]] +name = "rktk-ksp" +version = "0.2.0" +dependencies = [ + "embassy-executor", + "rktk", +] + +[[package]] +name = "rktk-ksp-corne-nrf" +version = "0.2.0" +dependencies = [ + "cortex-m", + "cortex-m-rt", + "embassy-executor", + "embassy-nrf", + "nrf-softdevice", + "rktk", + "rktk-drivers-common", + "rktk-drivers-nrf", +] + +[[package]] +name = "rktk-ksp-corne-rp" +version = "0.2.0" +dependencies = [ + "cortex-m", + "cortex-m-rt", + "embassy-executor", + "embassy-rp", + "portable-atomic", + "rktk", + "rktk-drivers-common", + "rktk-drivers-rp", +] + +[[package]] +name = "rktk-ksp-keyball61-common" +version = "0.2.0" +dependencies = [ + "rktk", + "rktk-drivers-common", +] + +[[package]] +name = "rktk-ksp-keyball61-nrf" +version = "0.2.0" +dependencies = [ + "cortex-m", + "cortex-m-rt", + "embassy-embedded-hal", + "embassy-executor", + "embassy-nrf", + "embassy-sync 0.7.2", + "embassy-time", + "nrf-softdevice", + "once_cell", + "rktk", + "rktk-drivers-common", + "rktk-drivers-nrf", + "rktk-ksp-keyball61-common", +] + +[[package]] +name = "rktk-ksp-keyball61-rp" +version = "0.2.0" +dependencies = [ + "cortex-m", + "cortex-m-rt", + "defmt 1.0.1", + "embassy-embedded-hal", + "embassy-executor", + "embassy-rp", + "embassy-sync 0.7.2", + "embassy-time", + "portable-atomic", + "rktk", + "rktk-drivers-common", + "rktk-drivers-rp", + "rktk-ksp-keyball61-common", +] + +[[package]] +name = "rktk-ksp-neg-nrf" +version = "0.2.0" +dependencies = [ + "cfg-if", + "cortex-m", + "cortex-m-rt", + "defmt 1.0.1", + "embassy-embedded-hal", + "embassy-executor", + "embassy-nrf", + "embassy-sync 0.7.2", + "embassy-time", + "embedded-alloc", + "log", + "nrf-sdc", + "nrf-softdevice", + "once_cell", + "rand_chacha 0.3.1", + "rktk", + "rktk-drivers-common", + "rktk-drivers-nrf", + "rktk-ksp", + "rktk-log", + "static_cell", +] + [[package]] name = "rktk-log" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index 47e87b5e..4ba52dc5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ cargo-features = ["profile-rustflags"] [workspace] resolver = "3" -members = ["crates/*", "keyboards/*/crates/*"] +members = ["crates/*", "keyboards/ksps/*"] exclude = ["crates/.cargo"] [workspace.package] @@ -21,6 +21,7 @@ rktk-drivers-rp = { path = "crates/rktk-drivers-rp", version = "0.2.0" } rktk = { path = "crates/rktk", version = "0.2.0" } rktk-log = { path = "crates/rktk-log", version = "0.2.0" } rktk-rrp = { path = "crates/rktk-rrp", version = "0.2.0" } +rktk-ksp = { path = "crates/rktk-ksp", version = "0.2.0" } # embedded core libraries embedded-hal = "1.0.0" diff --git a/crates/rktk-ksp/Cargo.toml b/crates/rktk-ksp/Cargo.toml new file mode 100644 index 00000000..e874f258 --- /dev/null +++ b/crates/rktk-ksp/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "rktk-ksp" +authors.workspace = true +license.workspace = true +version.workspace = true +edition.workspace = true +repository.workspace = true + +[dependencies] +embassy-executor.workspace = true +rktk.workspace = true diff --git a/crates/rktk-ksp/src/lib.rs b/crates/rktk-ksp/src/lib.rs new file mode 100644 index 00000000..a8a7647f --- /dev/null +++ b/crates/rktk-ksp/src/lib.rs @@ -0,0 +1,22 @@ +#![no_std] + +use rktk::hooks::{ + AllHooks, Hooks, + interface::{CommonHooks, MasterHooks, RgbHooks, SlaveHooks}, +}; + +pub trait RktkKsp { + type Irqs: Clone + Copy; + type Peri; + + type PeriConfig; + type RunConfig; + + fn init_peripherals(config: Self::PeriConfig) -> Self::Peri; + async fn start( + spawner: embassy_executor::Spawner, + p: Self::Peri, + hooks: impl AllHooks, + config: Self::RunConfig, + ); +} diff --git a/keyboards/.cargo/config.toml b/keyboards/.cargo/config.toml deleted file mode 100644 index cd61a2e8..00000000 --- a/keyboards/.cargo/config.toml +++ /dev/null @@ -1,17 +0,0 @@ -# Configuration to minimize binary size - -[profile.release] -debug = true -opt-level = "z" -lto = "fat" -codegen-units = 1 -panic = "abort" -rustflags = ["-Zlocation-detail=none"] - -[unstable] -build-std = ["core", "alloc"] -build-std-features = [ - # Temporary disabled (ref: #62) - # "panic_immediate_abort", - "optimize_for_size", -] diff --git a/keyboards/corne/rktk.json b/keyboards/configs/corne.json similarity index 100% rename from keyboards/corne/rktk.json rename to keyboards/configs/corne.json diff --git a/keyboards/keyball61/rktk.json b/keyboards/configs/keyball61.json similarity index 100% rename from keyboards/keyball61/rktk.json rename to keyboards/configs/keyball61.json diff --git a/keyboards/neg/rktk.json b/keyboards/configs/neg.json similarity index 100% rename from keyboards/neg/rktk.json rename to keyboards/configs/neg.json diff --git a/keyboards/corne/.cargo/config.toml b/keyboards/corne/.cargo/config.toml deleted file mode 100644 index 4114a855..00000000 --- a/keyboards/corne/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[env] -RKTK_CONFIG_PATH = { value = "rktk.json", relative = true } diff --git a/keyboards/corne/crates/corne-nrf/.cargo/config.toml b/keyboards/examples/corne-nrf/.cargo/config.toml similarity index 100% rename from keyboards/corne/crates/corne-nrf/.cargo/config.toml rename to keyboards/examples/corne-nrf/.cargo/config.toml diff --git a/keyboards/corne/crates/corne-nrf/Cargo.toml b/keyboards/examples/corne-nrf/Cargo.toml similarity index 100% rename from keyboards/corne/crates/corne-nrf/Cargo.toml rename to keyboards/examples/corne-nrf/Cargo.toml diff --git a/keyboards/corne/crates/corne-nrf/build.rs b/keyboards/examples/corne-nrf/build.rs similarity index 100% rename from keyboards/corne/crates/corne-nrf/build.rs rename to keyboards/examples/corne-nrf/build.rs diff --git a/keyboards/corne/crates/corne-nrf/memory.x b/keyboards/examples/corne-nrf/memory.x similarity index 100% rename from keyboards/corne/crates/corne-nrf/memory.x rename to keyboards/examples/corne-nrf/memory.x diff --git a/keyboards/corne/crates/corne-nrf/src/keymap.rs b/keyboards/examples/corne-nrf/src/keymap.rs similarity index 100% rename from keyboards/corne/crates/corne-nrf/src/keymap.rs rename to keyboards/examples/corne-nrf/src/keymap.rs diff --git a/keyboards/corne/crates/corne-nrf/src/main.rs b/keyboards/examples/corne-nrf/src/main.rs similarity index 100% rename from keyboards/corne/crates/corne-nrf/src/main.rs rename to keyboards/examples/corne-nrf/src/main.rs diff --git a/keyboards/corne/crates/corne-rp/.cargo/config.toml b/keyboards/examples/corne-rp/.cargo/config.toml similarity index 100% rename from keyboards/corne/crates/corne-rp/.cargo/config.toml rename to keyboards/examples/corne-rp/.cargo/config.toml diff --git a/keyboards/corne/crates/corne-rp/Cargo.toml b/keyboards/examples/corne-rp/Cargo.toml similarity index 100% rename from keyboards/corne/crates/corne-rp/Cargo.toml rename to keyboards/examples/corne-rp/Cargo.toml diff --git a/keyboards/corne/crates/corne-rp/README.md b/keyboards/examples/corne-rp/README.md similarity index 100% rename from keyboards/corne/crates/corne-rp/README.md rename to keyboards/examples/corne-rp/README.md diff --git a/keyboards/corne/crates/corne-rp/build.rs b/keyboards/examples/corne-rp/build.rs similarity index 100% rename from keyboards/corne/crates/corne-rp/build.rs rename to keyboards/examples/corne-rp/build.rs diff --git a/keyboards/corne/crates/corne-rp/memory.x b/keyboards/examples/corne-rp/memory.x similarity index 100% rename from keyboards/corne/crates/corne-rp/memory.x rename to keyboards/examples/corne-rp/memory.x diff --git a/keyboards/corne/crates/corne-rp/src/keymap.rs b/keyboards/examples/corne-rp/src/keymap.rs similarity index 100% rename from keyboards/corne/crates/corne-rp/src/keymap.rs rename to keyboards/examples/corne-rp/src/keymap.rs diff --git a/keyboards/corne/crates/corne-rp/src/main.rs b/keyboards/examples/corne-rp/src/main.rs similarity index 100% rename from keyboards/corne/crates/corne-rp/src/main.rs rename to keyboards/examples/corne-rp/src/main.rs diff --git a/keyboards/dummy/.cargo/config.toml b/keyboards/examples/dummy-rp/.cargo/config.toml similarity index 65% rename from keyboards/dummy/.cargo/config.toml rename to keyboards/examples/dummy-rp/.cargo/config.toml index d4e8f6be..d55d62f4 100644 --- a/keyboards/dummy/.cargo/config.toml +++ b/keyboards/examples/dummy-rp/.cargo/config.toml @@ -1,2 +1,5 @@ [env] RKTK_CONFIG_PATH = { value = "../corne/rktk.json", relative = true } + +[build] +target = "thumbv6m-none-eabi" diff --git a/keyboards/dummy/crates/dummy-rp/Cargo.toml b/keyboards/examples/dummy-rp/Cargo.toml similarity index 100% rename from keyboards/dummy/crates/dummy-rp/Cargo.toml rename to keyboards/examples/dummy-rp/Cargo.toml diff --git a/keyboards/dummy/crates/dummy-rp/src/keymap.rs b/keyboards/examples/dummy-rp/src/keymap.rs similarity index 100% rename from keyboards/dummy/crates/dummy-rp/src/keymap.rs rename to keyboards/examples/dummy-rp/src/keymap.rs diff --git a/keyboards/dummy/crates/dummy-rp/src/main.rs b/keyboards/examples/dummy-rp/src/main.rs similarity index 100% rename from keyboards/dummy/crates/dummy-rp/src/main.rs rename to keyboards/examples/dummy-rp/src/main.rs diff --git a/keyboards/keyball61/crates/keyball61-nrf/.cargo/config.toml b/keyboards/examples/keyball61-nrf/.cargo/config.toml similarity index 100% rename from keyboards/keyball61/crates/keyball61-nrf/.cargo/config.toml rename to keyboards/examples/keyball61-nrf/.cargo/config.toml diff --git a/keyboards/keyball61/crates/keyball61-nrf/Cargo.toml b/keyboards/examples/keyball61-nrf/Cargo.toml similarity index 100% rename from keyboards/keyball61/crates/keyball61-nrf/Cargo.toml rename to keyboards/examples/keyball61-nrf/Cargo.toml diff --git a/keyboards/keyball61/crates/keyball61-nrf/build.rs b/keyboards/examples/keyball61-nrf/build.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-nrf/build.rs rename to keyboards/examples/keyball61-nrf/build.rs diff --git a/keyboards/keyball61/crates/keyball61-nrf/memory.x b/keyboards/examples/keyball61-nrf/memory.x similarity index 100% rename from keyboards/keyball61/crates/keyball61-nrf/memory.x rename to keyboards/examples/keyball61-nrf/memory.x diff --git a/keyboards/keyball61/crates/keyball61-nrf/src/bin/keyball61.rs b/keyboards/examples/keyball61-nrf/src/main.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-nrf/src/bin/keyball61.rs rename to keyboards/examples/keyball61-nrf/src/main.rs diff --git a/keyboards/dummy/crates/dummy-rp/.cargo/config.toml b/keyboards/examples/keyball61-rp/.cargo/config.toml similarity index 100% rename from keyboards/dummy/crates/dummy-rp/.cargo/config.toml rename to keyboards/examples/keyball61-rp/.cargo/config.toml diff --git a/keyboards/keyball61/crates/keyball61-rp/Cargo.toml b/keyboards/examples/keyball61-rp/Cargo.toml similarity index 100% rename from keyboards/keyball61/crates/keyball61-rp/Cargo.toml rename to keyboards/examples/keyball61-rp/Cargo.toml diff --git a/keyboards/keyball61/crates/keyball61-rp/build.rs b/keyboards/examples/keyball61-rp/build.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-rp/build.rs rename to keyboards/examples/keyball61-rp/build.rs diff --git a/keyboards/keyball61/crates/keyball61-rp/memory.x b/keyboards/examples/keyball61-rp/memory.x similarity index 100% rename from keyboards/keyball61/crates/keyball61-rp/memory.x rename to keyboards/examples/keyball61-rp/memory.x diff --git a/keyboards/keyball61/crates/keyball61-rp/src/bin/keyball61.rs b/keyboards/examples/keyball61-rp/src/main.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-rp/src/bin/keyball61.rs rename to keyboards/examples/keyball61-rp/src/main.rs diff --git a/keyboards/neg/crates/neg-nrf/.cargo/config.toml b/keyboards/examples/neg-nrf/.cargo/config.toml similarity index 100% rename from keyboards/neg/crates/neg-nrf/.cargo/config.toml rename to keyboards/examples/neg-nrf/.cargo/config.toml diff --git a/keyboards/neg/crates/neg-nrf/Cargo.toml b/keyboards/examples/neg-nrf/Cargo.toml similarity index 100% rename from keyboards/neg/crates/neg-nrf/Cargo.toml rename to keyboards/examples/neg-nrf/Cargo.toml diff --git a/keyboards/neg/crates/neg-nrf/build.rs b/keyboards/examples/neg-nrf/build.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/build.rs rename to keyboards/examples/neg-nrf/build.rs diff --git a/keyboards/neg/crates/neg-nrf/memory.x b/keyboards/examples/neg-nrf/memory.x similarity index 100% rename from keyboards/neg/crates/neg-nrf/memory.x rename to keyboards/examples/neg-nrf/memory.x diff --git a/keyboards/neg/crates/neg-nrf/src/bin/neg_nrf_master.rs b/keyboards/examples/neg-nrf/src/bin/neg_nrf_master.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/bin/neg_nrf_master.rs rename to keyboards/examples/neg-nrf/src/bin/neg_nrf_master.rs diff --git a/keyboards/neg/crates/neg-nrf/src/bin/neg_nrf_slave.rs b/keyboards/examples/neg-nrf/src/bin/neg_nrf_slave.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/bin/neg_nrf_slave.rs rename to keyboards/examples/neg-nrf/src/bin/neg_nrf_slave.rs diff --git a/keyboards/keyball61/.cargo/config.toml b/keyboards/keyball61/.cargo/config.toml deleted file mode 100644 index 4114a855..00000000 --- a/keyboards/keyball61/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[env] -RKTK_CONFIG_PATH = { value = "rktk.json", relative = true } diff --git a/keyboards/keyball61/crates/keyball61-rp/.cargo/config.toml b/keyboards/keyball61/crates/keyball61-rp/.cargo/config.toml deleted file mode 100644 index b10f29d0..00000000 --- a/keyboards/keyball61/crates/keyball61-rp/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] -target = "thumbv6m-none-eabi" diff --git a/keyboards/ksps/corne-nrf/Cargo.toml b/keyboards/ksps/corne-nrf/Cargo.toml new file mode 100644 index 00000000..2d3ed657 --- /dev/null +++ b/keyboards/ksps/corne-nrf/Cargo.toml @@ -0,0 +1,52 @@ +# You can remove this line and `forced-target` property and use `.cargo/config.toml` if your crate isn't in workspace. +cargo-features = ["per-package-target"] + +[lib] +path = "src/lib.rs" +test = false +doctest = false +bench = false + +[package] +name = "rktk-ksp-corne-nrf" +authors.workspace = true +license.workspace = true +version.workspace = true +edition.workspace = true +repository.workspace = true +publish = false +forced-target = "thumbv7em-none-eabihf" + +[dependencies] +rktk = { workspace = true } +rktk-drivers-nrf = { workspace = true, features = ["softdevice-ble"] } +rktk-drivers-common = { workspace = true } + +cortex-m = { workspace = true } +cortex-m-rt = { workspace = true } +embassy-executor = { workspace = true, features = [ + "arch-cortex-m", + "executor-thread", + "executor-interrupt", +] } + +embassy-nrf = { workspace = true, features = [ + "gpiote", + "time-driver-rtc1", + "nrf52840", + "nfc-pins-as-gpio", +] } +nrf-softdevice = { workspace = true, features = [ + "critical-section-impl", + "s140", + "nrf52840", +] } + +[features] +default = ["right"] + +right = [] +left = [] + +# Remove this line in your project. It's just used in this workspace for check. +_check = [] diff --git a/keyboards/ksps/corne-nrf/src/lib.rs b/keyboards/ksps/corne-nrf/src/lib.rs new file mode 100644 index 00000000..e69de29b diff --git a/keyboards/ksps/corne-rp/Cargo.toml b/keyboards/ksps/corne-rp/Cargo.toml new file mode 100644 index 00000000..aca4a3c6 --- /dev/null +++ b/keyboards/ksps/corne-rp/Cargo.toml @@ -0,0 +1,47 @@ +# You can remove this line and `forced-target` property and use `.cargo/config.toml` if your crate isn't in workspace. +cargo-features = ["per-package-target"] + +[lib] +path = "src/lib.rs" +test = false +doctest = false +bench = false + +[package] +name = "rktk-ksp-corne-rp" +authors.workspace = true +license.workspace = true +version.workspace = true +edition.workspace = true +repository.workspace = true +publish = false +forced-target = "thumbv6m-none-eabi" + +[dependencies] +rktk = { workspace = true } +rktk-drivers-rp = { workspace = true } +rktk-drivers-common = { workspace = true } + +cortex-m = { workspace = true } +cortex-m-rt = { workspace = true } +embassy-rp = { workspace = true, features = [ + "time-driver", + "critical-section-impl", + "rp2040", +] } +embassy-executor = { workspace = true, features = [ + "arch-cortex-m", + "executor-thread", + "executor-interrupt", +] } + +portable-atomic = { workspace = true, features = ["unsafe-assume-single-core"] } + +[features] +default = ["right"] + +right = [] +left = [] + +_check = [] +# Remove this line in your project. It's just used in this workspace for check. diff --git a/keyboards/ksps/corne-rp/src/lib.rs b/keyboards/ksps/corne-rp/src/lib.rs new file mode 100644 index 00000000..e69de29b diff --git a/keyboards/keyball61/crates/keyball61-common/Cargo.toml b/keyboards/ksps/keyball61-common/Cargo.toml similarity index 87% rename from keyboards/keyball61/crates/keyball61-common/Cargo.toml rename to keyboards/ksps/keyball61-common/Cargo.toml index b1eb6e13..01db7691 100644 --- a/keyboards/keyball61/crates/keyball61-common/Cargo.toml +++ b/keyboards/ksps/keyball61-common/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "keyball61-common" +name = "rktk-ksp-keyball61-common" version.workspace = true license.workspace = true edition.workspace = true diff --git a/keyboards/keyball61/crates/keyball61-common/src/lib.rs b/keyboards/ksps/keyball61-common/src/lib.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-common/src/lib.rs rename to keyboards/ksps/keyball61-common/src/lib.rs diff --git a/keyboards/ksps/keyball61-nrf/Cargo.toml b/keyboards/ksps/keyball61-nrf/Cargo.toml new file mode 100644 index 00000000..c6df1fcd --- /dev/null +++ b/keyboards/ksps/keyball61-nrf/Cargo.toml @@ -0,0 +1,58 @@ +cargo-features = ["per-package-target"] + +[package] +name = "rktk-ksp-keyball61-nrf" +version.workspace = true +license.workspace = true +edition.workspace = true +authors.workspace = true +repository.workspace = true +forced-target = "thumbv7em-none-eabihf" + +[lib] +path = "src/lib.rs" +test = false +doctest = false +bench = false + +[dependencies] +rktk-ksp-keyball61-common = { path = "../keyball61-common/" } + +rktk = { workspace = true } +rktk-drivers-nrf = { workspace = true } +rktk-drivers-common = { workspace = true } + +embassy-executor = { workspace = true, features = [ + "arch-cortex-m", + "executor-thread", + "executor-interrupt", +] } +embassy-sync = { workspace = true } +embassy-time = { workspace = true } +embassy-embedded-hal = { workspace = true } + +embassy-nrf = { workspace = true, features = [ + "gpiote", + "time-driver-rtc1", + "nrf52840", + "nfc-pins-as-gpio", + "unstable-pac", +] } +nrf-softdevice = { workspace = true, features = [ + "ble-peripheral", + "ble-central", + "critical-section-impl", + "s140", + "nrf52840", +] } +cortex-m = { workspace = true } +cortex-m-rt = { workspace = true } + +once_cell = { workspace = true, features = ["critical-section"] } + +[features] +_check = [] + +usb = ["rktk-drivers-nrf/softdevice"] +ble = ["rktk-drivers-nrf/softdevice-ble"] +default = ["ble", "usb"] diff --git a/keyboards/keyball61/crates/keyball61-nrf/src/lib.rs b/keyboards/ksps/keyball61-nrf/src/lib.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-nrf/src/lib.rs rename to keyboards/ksps/keyball61-nrf/src/lib.rs diff --git a/keyboards/ksps/keyball61-rp/Cargo.toml b/keyboards/ksps/keyball61-rp/Cargo.toml new file mode 100644 index 00000000..fd6f22ab --- /dev/null +++ b/keyboards/ksps/keyball61-rp/Cargo.toml @@ -0,0 +1,57 @@ +[package] +name = "rktk-ksp-keyball61-rp" +authors.workspace = true +license.workspace = true +version.workspace = true +edition.workspace = true +repository.workspace = true + +[lib] +path = "src/lib.rs" +test = false +doctest = false +bench = false + +[dependencies] +rktk-ksp-keyball61-common = { path = "../keyball61-common/" } + +rktk = { workspace = true, features = ["rrp"] } +rktk-drivers-rp = { workspace = true } +rktk-drivers-common = { workspace = true } + +embassy-executor = { workspace = true, features = [ + "arch-cortex-m", + "executor-thread", + "executor-interrupt", +] } +embassy-sync = { workspace = true } +embassy-time = { workspace = true } +embassy-embedded-hal = { workspace = true } + +embassy-rp = { workspace = true, features = [ + "time-driver", + "critical-section-impl", + "rp2040", +] } + +cortex-m = { workspace = true } +cortex-m-rt = { workspace = true } + +portable-atomic = { version = "1.6.0", features = [ + "unsafe-assume-single-core", +] } + +defmt = { workspace = true, optional = true } + +[features] +_check = [] + +default = ["defmt"] + +defmt = [ + "dep:defmt", + "rktk/defmt", + "rktk-drivers-common/defmt-usb", + "rktk-drivers-common/defmt-timestamp", + "rktk-drivers-rp/defmt", +] diff --git a/keyboards/keyball61/crates/keyball61-rp/src/lib.rs b/keyboards/ksps/keyball61-rp/src/lib.rs similarity index 100% rename from keyboards/keyball61/crates/keyball61-rp/src/lib.rs rename to keyboards/ksps/keyball61-rp/src/lib.rs diff --git a/keyboards/ksps/neg-nrf/.cargo/config.toml b/keyboards/ksps/neg-nrf/.cargo/config.toml new file mode 100644 index 00000000..450b6469 --- /dev/null +++ b/keyboards/ksps/neg-nrf/.cargo/config.toml @@ -0,0 +1,2 @@ +[env] +RKTK_CONFIG_PATH = { value = "../../configs/neg.json", relative = true } diff --git a/keyboards/ksps/neg-nrf/Cargo.toml b/keyboards/ksps/neg-nrf/Cargo.toml new file mode 100644 index 00000000..1987cbe9 --- /dev/null +++ b/keyboards/ksps/neg-nrf/Cargo.toml @@ -0,0 +1,103 @@ +cargo-features = ["per-package-target"] + +[package] +name = "rktk-ksp-neg-nrf" +authors.workspace = true +license.workspace = true +version.workspace = true +edition.workspace = true +repository.workspace = true + +forced-target = "thumbv7em-none-eabihf" + +[lib] +path = "src/lib.rs" +test = false +doctest = false +bench = false + +[dependencies] +rktk-drivers-nrf = { workspace = true } +rktk-drivers-common = { workspace = true } +rktk = { workspace = true } +rktk-log = { workspace = true } +rktk-ksp = { workspace = true } + +cortex-m = { workspace = true } +cortex-m-rt = { workspace = true } +embassy-embedded-hal = { workspace = true } +embassy-time = { workspace = true } +embassy-executor = { workspace = true, features = [ + "arch-cortex-m", + "executor-thread", + "executor-interrupt", +] } +embassy-nrf = { workspace = true, features = [ + "gpiote", + "time-driver-rtc1", + "nrf52840", + "nfc-pins-as-gpio", +] } +embassy-sync = { workspace = true } + +once_cell = { version = "1.19.0", default-features = false, features = [ + "atomic-polyfill", +] } +static_cell = { workspace = true } +cfg-if = "1.0.0" + +log = { workspace = true, optional = true } +defmt = { workspace = true, optional = true } + +# alloc +embedded-alloc = { version = "0.6.0", optional = true } + +# sd +nrf-softdevice = { workspace = true, features = [ + "critical-section-impl", + "s140", + "nrf52840", +], optional = true } + +# trouble +rand_chacha = { version = "0.3", default-features = false, optional = true } +nrf-sdc = { workspace = true, optional = true, features = ["nrf52840"] } + +[features] +_check = ["trouble", "sd", "log", "left", "pmw3360"] + +default = ["rrp"] + +alloc = ["dep:embedded-alloc", "rktk/alloc"] +right = [] +left = [] + +rrp = ["rktk/rrp"] + +defmt = [ + "dep:defmt", + "rktk/defmt", + "rktk-log/defmt", + "rktk-drivers-common/defmt-usb", + "rktk-drivers-common/defmt-timestamp", + "rktk-drivers-nrf/defmt", +] +log = [ + "dep:log", + "rktk/log", + "rktk-log/log", + "rktk-drivers-common/log", + "rktk-drivers-nrf/log", +] + +sd = ["rktk-drivers-nrf/softdevice-ble", "dep:nrf-softdevice"] +trouble = [ + "dep:rand_chacha", + "dep:nrf-sdc", + "rktk-drivers-nrf/sdc", + "rktk-drivers-common/reporter-trouble", +] +cs-impl = ["cortex-m/critical-section-single-core"] + +paw3395 = [] +pmw3360 = [] diff --git a/keyboards/neg/crates/neg-nrf/src/common.rs b/keyboards/ksps/neg-nrf/src/common.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/common.rs rename to keyboards/ksps/neg-nrf/src/common.rs diff --git a/keyboards/neg/crates/neg-nrf/src/drivers.rs b/keyboards/ksps/neg-nrf/src/drivers.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/drivers.rs rename to keyboards/ksps/neg-nrf/src/drivers.rs diff --git a/keyboards/neg/crates/neg-nrf/src/lib.rs b/keyboards/ksps/neg-nrf/src/lib.rs similarity index 75% rename from keyboards/neg/crates/neg-nrf/src/lib.rs rename to keyboards/ksps/neg-nrf/src/lib.rs index 4c6672fb..dde2945e 100644 --- a/keyboards/neg/crates/neg-nrf/src/lib.rs +++ b/keyboards/ksps/neg-nrf/src/lib.rs @@ -3,7 +3,9 @@ use core::panic::PanicInfo; use embassy_nrf::bind_interrupts; +use rktk::{config::keymap::Keymap, hooks::AllHooks}; use rktk_drivers_common::panic_utils; +use rktk_ksp::RktkKsp; mod common; mod drivers; @@ -56,6 +58,26 @@ bind_interrupts!(pub struct Irqs { RTC0 => nrf_sdc::mpsl::HighPrioInterruptHandler; }); -pub use common::init_peri; -pub use master::start_master; -pub use slave::start_slave; +pub struct NegMaster; +impl RktkKsp for NegMaster { + type Irqs = Irqs; + + type Peri = embassy_nrf::Peripherals; + + type PeriConfig = (); + + type RunConfig = &'static Keymap; + + fn init_peripherals(_config: Self::PeriConfig) -> Self::Peri { + common::init_peri() + } + + async fn start( + spawner: embassy_executor::Spawner, + p: Self::Peri, + hooks: impl AllHooks, + config: Self::RunConfig, + ) { + master::start_master(spawner, p, hooks, config).await + } +} diff --git a/keyboards/neg/crates/neg-nrf/src/master.rs b/keyboards/ksps/neg-nrf/src/master.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/master.rs rename to keyboards/ksps/neg-nrf/src/master.rs diff --git a/keyboards/neg/crates/neg-nrf/src/misc.rs b/keyboards/ksps/neg-nrf/src/misc.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/misc.rs rename to keyboards/ksps/neg-nrf/src/misc.rs diff --git a/keyboards/neg/crates/neg-nrf/src/slave.rs b/keyboards/ksps/neg-nrf/src/slave.rs similarity index 100% rename from keyboards/neg/crates/neg-nrf/src/slave.rs rename to keyboards/ksps/neg-nrf/src/slave.rs diff --git a/keyboards/neg/.cargo/config.toml b/keyboards/neg/.cargo/config.toml deleted file mode 100644 index 4114a855..00000000 --- a/keyboards/neg/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[env] -RKTK_CONFIG_PATH = { value = "rktk.json", relative = true }