-
Notifications
You must be signed in to change notification settings - Fork 7.6k
boards: silabs: Add support for Silabs EFR32ZG28 SoC #89597
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Hello @shontal1005, and thank you very much for your first pull request to the Zephyr project! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is missing a documentation page
see https://github.com/zephyrproject-rtos/zephyr/blob/76e1fc7713a4a3f2b50c497afddec0364a34c10b/doc/templates/board.tmpl or other SiLabs boards for examples
Thanks!
The commit is large. Would you mind to split it in two parts (or more)? Maybe one commit for the soc and one commit for the board? BTW, don't this PR require any change on the hal? If yes, you need to update |
dts/arm/silabs/efr32xg28.dtsi
Outdated
compatible = "fixed-factor-clock"; | ||
clocks = <&lfrco>; | ||
}; | ||
wdog0clk: wdog0clk { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
peripherals need to be disabled in the base dts file, then enabled as-needed by boards
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems that on all other platforms the peripherals are not disabled
config SOC_GECKO_SDID | ||
default 235 if SOC_SERIES_EFR32ZG28 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if this is an existing symbol, put it in Kconfig.defconfig
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand, it seems like all the other platforms do the same thing as I did
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then they need to move Kconfig
adds new symbols, if you are changing the default of an existing symbol then it goes in Kconfig.defconfig
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shontal1005, do you want to carry this change or you prefer I open a PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the change I made is what you meant, I can open another PR.
7248fcf
to
6c91b24
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the late review, only few comments but otherwise LGTM. Don't forget to resolve the compliance problem.
7ec7292
to
98db4fd
Compare
Add support for Silicon Labs EFR32ZG28 SoC. Signed-off-by: Shontal Biton <shontal1005@gmail.com>
83c55f7
to
b603287
Compare
Add support for Silicon Labs BRD4401C (a.k.a xG28-RB4401C) Radio Board. Signed-off-by: Shontal Biton <shontal1005@gmail.com>
FYI: I've created a PR to resolve the CI failure. |
Added support for xg28 in eeprom test. Signed-off-by: Shontal Biton <shontal1005@gmail.com>
|
&dcdc { | ||
regulator-boot-on; | ||
regulator-initial-mode = <SILABS_DCDC_MODE_BUCK>; | ||
silabs,pfmx-peak-current-milliamp = <80>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In SiSDK, the default peak current is set to 100 mA on xG28: https://github.com/SiliconLabs/simplicity_sdk/blob/v2025.6.0/platform/service/device_init/config/s2/sdid235/20dbm/sl_device_init_dcdc_config.h#L54
Is there a reason it's different here?
}; | ||
|
||
&hfxo { | ||
ctune = <106>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In SiSDK, the HFXO tuning value is 115
for this board: https://github.com/SiliconLabs/simplicity_sdk/blob/v2025.6.0/hardware/board/config/brd4401c_brd4002a/sl_device_init_hfxo_config.h#L53
}; | ||
|
||
&lfxo { | ||
ctune = <38>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In SiSDK, the LFXO tuning value is 44
for this board: https://github.com/SiliconLabs/simplicity_sdk/blob/v2025.6.0/hardware/board/config/brd4401c_brd4002a/sl_device_init_lfxo_config.h#L46
CONFIG_UART_CONSOLE=y | ||
CONFIG_SERIAL=y | ||
CONFIG_GPIO=y | ||
CONFIG_SOC_GECKO_EMU_DCDC=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two DCDC options aren't used on Series 2, and should be removed.
status = "disabled"; | ||
}; | ||
|
||
gpiod: gpio@5003c0C0 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: inconsistent capitalization of the unit address
|
||
gpiod: gpio@5003c0C0 { | ||
compatible = "silabs,gecko-gpio-port"; | ||
reg = <0x5003c0C0 0x30>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: inconsistent capitalization of the register address
Adds support for Silicon Labs EFR32ZG28 SoC and BRD4401C Radio Board.