mirror of https://github.com/esphome/esphome.git
generate zephyr,user during configuration
This commit is contained in:
parent
de236e7ea1
commit
4e5ff2e06d
|
@ -25,6 +25,7 @@ from . import (
|
||||||
from esphome.components.zephyr import (
|
from esphome.components.zephyr import (
|
||||||
zephyr_add_overlay,
|
zephyr_add_overlay,
|
||||||
zephyr_add_prj_conf,
|
zephyr_add_prj_conf,
|
||||||
|
zephyr_add_user,
|
||||||
)
|
)
|
||||||
|
|
||||||
AUTO_LOAD = ["voltage_sampler"]
|
AUTO_LOAD = ["voltage_sampler"]
|
||||||
|
@ -105,14 +106,7 @@ async def to_code(config):
|
||||||
adc = cg.new_Pvariable(nrf_saadc, rhs)
|
adc = cg.new_Pvariable(nrf_saadc, rhs)
|
||||||
cg.add(var.set_adc_channel(adc))
|
cg.add(var.set_adc_channel(adc))
|
||||||
gain = "ADC_GAIN_1_6"
|
gain = "ADC_GAIN_1_6"
|
||||||
zephyr_add_overlay(
|
zephyr_add_user("io-channels", f"<&adc {channel_id}>")
|
||||||
"""
|
|
||||||
/ {
|
|
||||||
zephyr,user {
|
|
||||||
io-channels = <&adc 0>, <&adc 1>, <&adc 2>;
|
|
||||||
};
|
|
||||||
};"""
|
|
||||||
)
|
|
||||||
zephyr_add_overlay(
|
zephyr_add_overlay(
|
||||||
f"""
|
f"""
|
||||||
&adc {{
|
&adc {{
|
||||||
|
|
|
@ -25,12 +25,15 @@ from .const import (
|
||||||
AUTO_LOAD = ["preferences"]
|
AUTO_LOAD = ["preferences"]
|
||||||
KEY_BOARD = "board"
|
KEY_BOARD = "board"
|
||||||
|
|
||||||
|
KEY_USER = "user"
|
||||||
|
|
||||||
|
|
||||||
def zephyr_set_core_data(config):
|
def zephyr_set_core_data(config):
|
||||||
CORE.data[KEY_ZEPHYR] = {}
|
CORE.data[KEY_ZEPHYR] = {}
|
||||||
CORE.data[KEY_ZEPHYR][KEY_BOARD] = config[CONF_BOARD]
|
CORE.data[KEY_ZEPHYR][KEY_BOARD] = config[CONF_BOARD]
|
||||||
CORE.data[KEY_ZEPHYR][KEY_PRJ_CONF] = {}
|
CORE.data[KEY_ZEPHYR][KEY_PRJ_CONF] = {}
|
||||||
CORE.data[KEY_ZEPHYR][KEY_OVERLAY] = ""
|
CORE.data[KEY_ZEPHYR][KEY_OVERLAY] = ""
|
||||||
|
CORE.data[KEY_ZEPHYR][KEY_USER] = {}
|
||||||
CORE.data[KEY_ZEPHYR][KEY_BOOTLOADER] = config[KEY_BOOTLOADER]
|
CORE.data[KEY_ZEPHYR][KEY_BOOTLOADER] = config[KEY_BOOTLOADER]
|
||||||
CORE.data[KEY_ZEPHYR][KEY_EXTRA_BUILD_FILES] = {}
|
CORE.data[KEY_ZEPHYR][KEY_EXTRA_BUILD_FILES] = {}
|
||||||
return config
|
return config
|
||||||
|
@ -55,6 +58,12 @@ def zephyr_add_prj_conf(name: str, value: PrjConfValueType, required: bool = Tru
|
||||||
CORE.data[KEY_ZEPHYR][KEY_PRJ_CONF][name] = (value, required)
|
CORE.data[KEY_ZEPHYR][KEY_PRJ_CONF][name] = (value, required)
|
||||||
|
|
||||||
|
|
||||||
|
def zephyr_add_user(key, value):
|
||||||
|
if key not in CORE.data[KEY_ZEPHYR][KEY_USER]:
|
||||||
|
CORE.data[KEY_ZEPHYR][KEY_USER][key] = []
|
||||||
|
CORE.data[KEY_ZEPHYR][KEY_USER][key] += [value]
|
||||||
|
|
||||||
|
|
||||||
def zephyr_add_overlay(content):
|
def zephyr_add_overlay(content):
|
||||||
CORE.data[KEY_ZEPHYR][KEY_OVERLAY] += content
|
CORE.data[KEY_ZEPHYR][KEY_OVERLAY] += content
|
||||||
|
|
||||||
|
@ -143,7 +152,8 @@ def zephyr_add_cdc_acm(config):
|
||||||
# Called by writer.py
|
# Called by writer.py
|
||||||
def copy_files():
|
def copy_files():
|
||||||
want_opts = CORE.data[KEY_ZEPHYR][KEY_PRJ_CONF]
|
want_opts = CORE.data[KEY_ZEPHYR][KEY_PRJ_CONF]
|
||||||
contents = (
|
|
||||||
|
prj_conf = (
|
||||||
"\n".join(
|
"\n".join(
|
||||||
f"{name}={_format_prj_conf_val(value[0])}"
|
f"{name}={_format_prj_conf_val(value[0])}"
|
||||||
for name, value in sorted(want_opts.items())
|
for name, value in sorted(want_opts.items())
|
||||||
|
@ -151,7 +161,17 @@ def copy_files():
|
||||||
+ "\n"
|
+ "\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
write_file_if_changed(CORE.relative_build_path("zephyr/prj.conf"), contents)
|
write_file_if_changed(CORE.relative_build_path("zephyr/prj.conf"), prj_conf)
|
||||||
|
|
||||||
|
zephyr_add_overlay(
|
||||||
|
f"""
|
||||||
|
/ {{
|
||||||
|
zephyr,user {{
|
||||||
|
{[f"{key} = {', '.join(value)};" for key, value in CORE.data[KEY_ZEPHYR][KEY_USER].items()][0]}
|
||||||
|
}};
|
||||||
|
}};"""
|
||||||
|
)
|
||||||
|
|
||||||
write_file_if_changed(
|
write_file_if_changed(
|
||||||
CORE.relative_build_path("zephyr/app.overlay"),
|
CORE.relative_build_path("zephyr/app.overlay"),
|
||||||
CORE.data[KEY_ZEPHYR][KEY_OVERLAY],
|
CORE.data[KEY_ZEPHYR][KEY_OVERLAY],
|
||||||
|
|
Loading…
Reference in New Issue