diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index fd4b7ab5519..75925b7e0d3 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.13.1) set(CONFIG_APPLICATION_DEFINED_SYSCALL true) +set(ZEPHYR_BOARD_ALIASES "boards/aliases.cmake") set(ZEPHYR_EXTRA_MODULES "${ZMK_EXTRA_MODULES};${CMAKE_CURRENT_SOURCE_DIR}/module;${CMAKE_CURRENT_SOURCE_DIR}/keymap-module") # Find Zephyr. This also loads Zephyr's build system. diff --git a/app/boards/aliases.cmake b/app/boards/aliases.cmake new file mode 100644 index 00000000000..d0a4d81d88e --- /dev/null +++ b/app/boards/aliases.cmake @@ -0,0 +1,2 @@ +# defines board aliases for shorter names (or for renaming boards) +set(mikoto_520_BOARD_ALIAS "mikoto") diff --git a/app/boards/arm/mikoto/Kconfig b/app/boards/arm/mikoto/Kconfig index fab2218c049..616d63a5dd4 100644 --- a/app/boards/arm/mikoto/Kconfig +++ b/app/boards/arm/mikoto/Kconfig @@ -2,17 +2,17 @@ config BOARD_ENABLE_DCDC bool "Enable DCDC mode" select SOC_DCDC_NRF52X default y - depends on (BOARD_MIKOTO_520) + depends on (BOARD_MIKOTO) config BOARD_ENABLE_DCDC_HV bool "High voltage DCDC converter" select SOC_DCDC_NRF52X_HV default y - depends on (BOARD_MIKOTO_520) + depends on (BOARD_MIKOTO) choice BOARD_MIKOTO_CHARGER_CURRENT prompt "Charge current to supply to attached batteries" - depends on (BOARD_MIKOTO_520) + depends on (BOARD_MIKOTO) config BOARD_MIKOTO_CHARGER_CURRENT_40MA bool "40mA charge current, for battery capacity 40mAh or higher" @@ -32,4 +32,4 @@ config BOARD_MIKOTO_CHARGER_CURRENT_350MA config BOARD_MIKOTO_CHARGER_CURRENT_NONE bool "Disable charge current" -endchoice \ No newline at end of file +endchoice diff --git a/app/boards/arm/mikoto/Kconfig.board b/app/boards/arm/mikoto/Kconfig.board index a872fa1fa01..b51dce8adb2 100644 --- a/app/boards/arm/mikoto/Kconfig.board +++ b/app/boards/arm/mikoto/Kconfig.board @@ -3,6 +3,6 @@ # Copyright (c) 2020 The ZMK Contributors # SPDX-License-Identifier: MIT -config BOARD_MIKOTO_520 - bool "mikoto_520" +config BOARD_MIKOTO + bool "mikoto" depends on SOC_NRF52840_QIAA diff --git a/app/boards/arm/mikoto/Kconfig.defconfig b/app/boards/arm/mikoto/Kconfig.defconfig index 5702c6de347..0710f6fde84 100644 --- a/app/boards/arm/mikoto/Kconfig.defconfig +++ b/app/boards/arm/mikoto/Kconfig.defconfig @@ -3,7 +3,7 @@ # Copyright (c) 2020 The ZMK Contributors # SPDX-License-Identifier: MIT -if BOARD_MIKOTO_520 +if BOARD_MIKOTO config BOARD default "mikoto" @@ -25,4 +25,4 @@ choice BOARD_MIKOTO_CHARGER_CURRENT default BOARD_MIKOTO_CHARGER_CURRENT_100MA endchoice -endif # BOARD_MIKOTO_520 +endif # BOARD_MIKOTO diff --git a/app/boards/arm/mikoto/arduino_pro_micro_pins.dtsi b/app/boards/arm/mikoto/arduino_pro_micro_pins_v5.dtsi similarity index 100% rename from app/boards/arm/mikoto/arduino_pro_micro_pins.dtsi rename to app/boards/arm/mikoto/arduino_pro_micro_pins_v5.dtsi diff --git a/app/boards/arm/mikoto/arduino_pro_micro_pins_v6.dtsi b/app/boards/arm/mikoto/arduino_pro_micro_pins_v6.dtsi new file mode 100644 index 00000000000..79d8b1558b9 --- /dev/null +++ b/app/boards/arm/mikoto/arduino_pro_micro_pins_v6.dtsi @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + + +/ { + pro_micro: connector { + compatible = "arduino-pro-micro"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map + = <0 0 &gpio0 4 0> /* D0 */ + , <1 0 &gpio0 8 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 8 0> /* D6/A7 */ + , <7 0 &gpio1 2 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 13 0> /* D14 */ + , <15 0 &gpio0 2 0> /* D15 */ + , <18 0 &gpio0 29 0> /* D18/A0 */ + , <19 0 &gpio0 31 0> /* D19/A1 */ + , <20 0 &gpio0 25 0> /* D20/A2 */ + , <21 0 &gpio0 11 0> /* D21/A3 */ + ; + }; + + 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 29 0> /* D18/A0 */ + , <1 0 &gpio0 31 0> /* D19/A1 */ + , <2 0 &gpio0 25 0> /* D20/A2 */ + , <3 0 &gpio0 11 0> /* D21/A3 */ + , <6 0 &gpio0 22 0> /* D4/A6 */ + , <7 0 &gpio1 8 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_d: &pro_micro {}; +pro_micro_i2c: &i2c0 {}; +pro_micro_spi: &spi0 {}; +pro_micro_serial: &uart0 {}; diff --git a/app/boards/arm/mikoto/mikoto_520-pinctrl.dtsi b/app/boards/arm/mikoto/mikoto-pinctrl.dtsi similarity index 88% rename from app/boards/arm/mikoto/mikoto_520-pinctrl.dtsi rename to app/boards/arm/mikoto/mikoto-pinctrl.dtsi index 8cd1e0afc13..1c85c203ad7 100644 --- a/app/boards/arm/mikoto/mikoto_520-pinctrl.dtsi +++ b/app/boards/arm/mikoto/mikoto-pinctrl.dtsi @@ -17,7 +17,7 @@ uart0_sleep: uart0_sleep { group1 { psels = , - ; + ; low-power-enable; }; }; @@ -25,14 +25,14 @@ i2c0_default: i2c0_default { group1 { psels = , - ; + ; }; }; i2c0_sleep: i2c0_sleep { group1 { psels = , - ; + ; low-power-enable; }; }; diff --git a/app/boards/arm/mikoto/mikoto_520.dts b/app/boards/arm/mikoto/mikoto.dts similarity index 97% rename from app/boards/arm/mikoto/mikoto_520.dts rename to app/boards/arm/mikoto/mikoto.dts index 3ea48cd9911..b8dca950308 100644 --- a/app/boards/arm/mikoto/mikoto_520.dts +++ b/app/boards/arm/mikoto/mikoto.dts @@ -6,8 +6,6 @@ /dts-v1/; #include -#include "arduino_pro_micro_pins.dtsi" -#include "mikoto_520-pinctrl.dtsi" / { model = "mikoto"; diff --git a/app/boards/arm/mikoto/mikoto_520.yaml b/app/boards/arm/mikoto/mikoto.yaml similarity index 78% rename from app/boards/arm/mikoto/mikoto_520.yaml rename to app/boards/arm/mikoto/mikoto.yaml index 8d9f49ae855..7410471eb57 100644 --- a/app/boards/arm/mikoto/mikoto_520.yaml +++ b/app/boards/arm/mikoto/mikoto.yaml @@ -1,5 +1,5 @@ -identifier: mikoto_520 -name: mikoto_520 +identifier: mikoto +name: mikoto type: mcu arch: arm toolchain: diff --git a/app/boards/arm/mikoto/mikoto_520.zmk.yml b/app/boards/arm/mikoto/mikoto.zmk.yml similarity index 55% rename from app/boards/arm/mikoto/mikoto_520.zmk.yml rename to app/boards/arm/mikoto/mikoto.zmk.yml index 91dcc9e09a6..6e073410fa6 100644 --- a/app/boards/arm/mikoto/mikoto_520.zmk.yml +++ b/app/boards/arm/mikoto/mikoto.zmk.yml @@ -1,6 +1,6 @@ file_format: "1" -id: mikoto_520 -name: Mikoto 5.20 +id: mikoto +name: Mikoto type: board arch: arm outputs: @@ -8,3 +8,9 @@ outputs: - ble url: https://github.com/zhiayang/mikoto exposes: [pro_micro] +revisions: + - "5.20" + - "6.1" + - "6.3" + - "7.2" +default_revision: "5.20" diff --git a/app/boards/arm/mikoto/mikoto_5_20_0.overlay b/app/boards/arm/mikoto/mikoto_5_20_0.overlay new file mode 100644 index 00000000000..f9e744ea372 --- /dev/null +++ b/app/boards/arm/mikoto/mikoto_5_20_0.overlay @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "mikoto-pinctrl.dtsi" +#include "arduino_pro_micro_pins_v5.dtsi" diff --git a/app/boards/arm/mikoto/mikoto_6_1_0.overlay b/app/boards/arm/mikoto/mikoto_6_1_0.overlay new file mode 100644 index 00000000000..80466fd2589 --- /dev/null +++ b/app/boards/arm/mikoto/mikoto_6_1_0.overlay @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "mikoto-pinctrl.dtsi" +#include "arduino_pro_micro_pins_v6.dtsi" diff --git a/app/boards/arm/mikoto/mikoto_7_2_0.conf b/app/boards/arm/mikoto/mikoto_7_2_0.conf new file mode 100644 index 00000000000..8bf928868c5 --- /dev/null +++ b/app/boards/arm/mikoto/mikoto_7_2_0.conf @@ -0,0 +1,2 @@ +CONFIG_I2C=y +CONFIG_ZMK_MAX17048=y diff --git a/app/boards/arm/mikoto/mikoto_7_2_0.overlay b/app/boards/arm/mikoto/mikoto_7_2_0.overlay new file mode 100644 index 00000000000..30c05510a82 --- /dev/null +++ b/app/boards/arm/mikoto/mikoto_7_2_0.overlay @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "mikoto-pinctrl.dtsi" +#include "arduino_pro_micro_pins_v6.dtsi" + +&pinctrl { + i2c1_default: i2c1_default { + group1 { + psels = , + ; + bias-pull-up; + }; + }; + + i2c1_sleep: i2c1_sleep { + group1 { + psels = , + ; + low-power-enable; + bias-pull-up; + }; + }; +}; + +&i2c1 { + status = "okay"; + compatible = "nordic,nrf-twi"; + pinctrl-0 = <&i2c1_default>; + pinctrl-1 = <&i2c1_sleep>; + pinctrl-names = "default", "sleep"; + + builtin_fuel_gauge: max17048@36 { + compatible = "zmk,maxim-max17048"; + status = "okay"; + reg = <0x36>; + }; +}; + +/ { + chosen { + zmk,battery = &builtin_fuel_gauge; + }; +}; diff --git a/app/boards/arm/mikoto/mikoto_520_defconfig b/app/boards/arm/mikoto/mikoto_defconfig similarity index 93% rename from app/boards/arm/mikoto/mikoto_520_defconfig rename to app/boards/arm/mikoto/mikoto_defconfig index 354fa56aa34..4b3bc7d9758 100644 --- a/app/boards/arm/mikoto/mikoto_520_defconfig +++ b/app/boards/arm/mikoto/mikoto_defconfig @@ -2,11 +2,10 @@ CONFIG_SOC_SERIES_NRF52X=y CONFIG_SOC_NRF52840_QIAA=y -CONFIG_BOARD_MIKOTO_520=y +CONFIG_BOARD_MIKOTO=y # Enable MPU CONFIG_ARM_MPU=y - CONFIG_PINCTRL=y # enable GPIO diff --git a/app/boards/arm/mikoto/pinmux.c b/app/boards/arm/mikoto/pinmux.c index c34c2dc85b1..a39014247c5 100644 --- a/app/boards/arm/mikoto/pinmux.c +++ b/app/boards/arm/mikoto/pinmux.c @@ -13,7 +13,7 @@ static int pinmux_mikoto_init(void) { -#if CONFIG_BOARD_MIKOTO_520 +#if CONFIG_BOARD_MIKOTO const struct device *p0 = DEVICE_DT_GET(DT_NODELABEL(gpio0)); const struct device *p1 = DEVICE_DT_GET(DT_NODELABEL(gpio1)); #if CONFIG_BOARD_MIKOTO_CHARGER_CURRENT_40MA diff --git a/app/boards/arm/mikoto/revision.cmake b/app/boards/arm/mikoto/revision.cmake new file mode 100644 index 00000000000..12fd4bd4da0 --- /dev/null +++ b/app/boards/arm/mikoto/revision.cmake @@ -0,0 +1,7 @@ +board_check_revision(FORMAT MAJOR.MINOR.PATCH + DEFAULT_REVISION 5.20.0 + VALID_REVISIONS + 5.20.0 # first public release + 6.1.0 6.3.0 # incompatible pinout change from v5+ + 7.2.0 # addition of MAX17048; compatible pinout with v6+ +) diff --git a/app/boards/shields/nice_view_adapter/boards/mikoto_520.overlay b/app/boards/shields/nice_view_adapter/boards/mikoto.overlay similarity index 100% rename from app/boards/shields/nice_view_adapter/boards/mikoto_520.overlay rename to app/boards/shields/nice_view_adapter/boards/mikoto.overlay