Skip to content

Commit

Permalink
feat(boards): Update for mikoto board definition (zmkfirmware#1946)
Browse files Browse the repository at this point in the history
* Set default revision to 5.20
* update mikoto board defs
* add revision info to mikoto.zmk.yml
* use zephyr aliases to handle mikoto_520
* enable pull-ups for on-board i2c
  • Loading branch information
zhiayang authored Dec 5, 2024
1 parent 40925d4 commit b26058b
Show file tree
Hide file tree
Showing 19 changed files with 157 additions and 20 deletions.
1 change: 1 addition & 0 deletions app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 2 additions & 0 deletions app/boards/aliases.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# defines board aliases for shorter names (or for renaming boards)
set(mikoto_520_BOARD_ALIAS "mikoto")
8 changes: 4 additions & 4 deletions app/boards/arm/mikoto/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -32,4 +32,4 @@ config BOARD_MIKOTO_CHARGER_CURRENT_350MA
config BOARD_MIKOTO_CHARGER_CURRENT_NONE
bool "Disable charge current"

endchoice
endchoice
4 changes: 2 additions & 2 deletions app/boards/arm/mikoto/Kconfig.board
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions app/boards/arm/mikoto/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -25,4 +25,4 @@ choice BOARD_MIKOTO_CHARGER_CURRENT
default BOARD_MIKOTO_CHARGER_CURRENT_100MA
endchoice

endif # BOARD_MIKOTO_520
endif # BOARD_MIKOTO
59 changes: 59 additions & 0 deletions app/boards/arm/mikoto/arduino_pro_micro_pins_v6.dtsi
Original file line number Diff line number Diff line change
@@ -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 {};
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,22 @@
uart0_sleep: uart0_sleep {
group1 {
psels = <NRF_PSEL(UART_RX, 0, 4)>,
<NRF_PSEL(UART_TX, 0, 8)>;
<NRF_PSEL(UART_TX, 0, 8)>;
low-power-enable;
};
};

i2c0_default: i2c0_default {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
<NRF_PSEL(TWIM_SCL, 0, 20)>;
<NRF_PSEL(TWIM_SCL, 0, 20)>;
};
};

i2c0_sleep: i2c0_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
<NRF_PSEL(TWIM_SCL, 0, 20)>;
<NRF_PSEL(TWIM_SCL, 0, 20)>;
low-power-enable;
};
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

/dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi>
#include "arduino_pro_micro_pins.dtsi"
#include "mikoto_520-pinctrl.dtsi"

/ {
model = "mikoto";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
identifier: mikoto_520
name: mikoto_520
identifier: mikoto
name: mikoto
type: mcu
arch: arm
toolchain:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
file_format: "1"
id: mikoto_520
name: Mikoto 5.20
id: mikoto
name: Mikoto
type: board
arch: arm
outputs:
- usb
- ble
url: https://github.com/zhiayang/mikoto
exposes: [pro_micro]
revisions:
- "5.20"
- "6.1"
- "6.3"
- "7.2"
default_revision: "5.20"
8 changes: 8 additions & 0 deletions app/boards/arm/mikoto/mikoto_5_20_0.overlay
Original file line number Diff line number Diff line change
@@ -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"
8 changes: 8 additions & 0 deletions app/boards/arm/mikoto/mikoto_6_1_0.overlay
Original file line number Diff line number Diff line change
@@ -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"
2 changes: 2 additions & 0 deletions app/boards/arm/mikoto/mikoto_7_2_0.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CONFIG_I2C=y
CONFIG_ZMK_MAX17048=y
47 changes: 47 additions & 0 deletions app/boards/arm/mikoto/mikoto_7_2_0.overlay
Original file line number Diff line number Diff line change
@@ -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 = <NRF_PSEL(TWIM_SDA, 0, 23)>,
<NRF_PSEL(TWIM_SCL, 0, 19)>;
bias-pull-up;
};
};

i2c1_sleep: i2c1_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 23)>,
<NRF_PSEL(TWIM_SCL, 0, 19)>;
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;
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion app/boards/arm/mikoto/pinmux.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 7 additions & 0 deletions app/boards/arm/mikoto/revision.cmake
Original file line number Diff line number Diff line change
@@ -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+
)

0 comments on commit b26058b

Please sign in to comment.