-
Notifications
You must be signed in to change notification settings - Fork 8.2k
stm32h7rs xspi Node with domain clock for peripheral clock configuration #88051
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
Changes from all commits
0cfdd54
c41a0c7
c7b54c2
15bcfb6
09493b9
c2ddf9f
e7a1f50
20adb4b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -85,6 +85,19 @@ | |
| status = "okay"; | ||
| }; | ||
|
|
||
| /* PLL2 for clocking the xspi peripheral */ | ||
| &pll2 { | ||
| div-m = <12>; | ||
| mul-n = <200>; | ||
| div-p = <2>; | ||
| div-q = <2>; | ||
| div-r = <2>; | ||
| div-s = <2>; | ||
| div-t = <2>; | ||
| clocks = <&clk_hse>; | ||
| status = "okay"; | ||
| }; | ||
|
|
||
| &rcc { | ||
| clocks = <&pll>; | ||
| clock-frequency = <DT_FREQ_M(200)>; | ||
|
|
@@ -139,3 +152,62 @@ | |
| status = "okay"; | ||
| clock-frequency = <I2C_BITRATE_FAST>; | ||
| }; | ||
|
|
||
| &flash0 { | ||
| partitions { | ||
| compatible = "fixed-partitions"; | ||
| #address-cells = <1>; | ||
| #size-cells = <1>; | ||
|
|
||
| /* Set the partitions with first MB to make use of the whole Bank1 */ | ||
| boot_partition: partition@0 { | ||
| label = "mcuboot"; | ||
| reg = <0x00000000 DT_SIZE_K(64)>; | ||
| }; | ||
| }; | ||
| }; | ||
|
|
||
| &xspi2 { | ||
| pinctrl-0 = <&xspim_p2_clk_pn6 &xspim_p2_ncs1_pn1 | ||
| &xspim_p2_io0_pn2 &xspim_p2_io1_pn3 | ||
| &xspim_p2_io2_pn4 &xspim_p2_io3_pn5 | ||
| &xspim_p2_io4_pn8 &xspim_p2_io5_pn9 | ||
| &xspim_p2_io6_pn10 &xspim_p2_io7_pn11 | ||
| &xspim_p2_dqs0_pn0>; | ||
| pinctrl-names = "default"; | ||
|
|
||
| status = "okay"; | ||
|
|
||
| mx25uw25645: xspi-nor-flash@0 { | ||
| compatible = "st,stm32-xspi-nor"; | ||
| reg = <0>; | ||
| size = <DT_SIZE_M(256)>; /* 256Mbits */ | ||
| ospi-max-frequency = <DT_FREQ_M(50)>; | ||
| spi-bus-width = <XSPI_OCTO_MODE>; | ||
| data-rate = <XSPI_DTR_TRANSFER>; | ||
| status = "okay"; | ||
|
|
||
| partitions { | ||
| compatible = "fixed-partitions"; | ||
| #address-cells = <1>; | ||
| #size-cells = <1>; | ||
|
|
||
| slot0_partition: partition@0 { | ||
| label = "image-0"; | ||
| reg = <0x00000000 DT_SIZE_K(512)>; | ||
| }; | ||
| slot1_partition: partition@80000 { | ||
| label = "image-1"; | ||
| reg = <0x0080000 DT_SIZE_K(512)>; | ||
| }; | ||
| scratch_partition: partition@100000 { | ||
| label = "image-scratch"; | ||
| reg = <0x00100000 DT_SIZE_K(64)>; | ||
| }; | ||
| storage_partition: partition@110000 { | ||
| label = "storage"; | ||
| reg = <0x00110000 DT_SIZE_K(64)>; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Intentionally waste the remaining of the internal flash? 64kB is not much. Maybe increase to 1 or 2 MByte, or even |
||
| }; | ||
| }; | ||
| }; | ||
| }; | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,4 +12,5 @@ supported: | |
| - watchdog | ||
| - entropy | ||
| - adc | ||
| - octospi | ||
| vendor: st | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -207,6 +207,65 @@ | |
| }; | ||
| }; | ||
|
|
||
| &flash0 { | ||
| partitions { | ||
| compatible = "fixed-partitions"; | ||
| #address-cells = <1>; | ||
| #size-cells = <1>; | ||
|
|
||
| /* Set the partitions with first MB to make use of the whole Bank1 */ | ||
| boot_partition: partition@0 { | ||
| label = "mcuboot"; | ||
| reg = <0x00000000 DT_SIZE_K(64)>; | ||
| }; | ||
| }; | ||
| }; | ||
|
|
||
| &xspi2 { | ||
| pinctrl-0 = <&xspim_p2_clk_pn6 &xspim_p2_ncs1_pn1 | ||
| &xspim_p2_io0_pn2 &xspim_p2_io1_pn3 | ||
| &xspim_p2_io2_pn4 &xspim_p2_io3_pn5 | ||
| &xspim_p2_io4_pn8 &xspim_p2_io5_pn9 | ||
| &xspim_p2_io6_pn10 &xspim_p2_io7_pn11 | ||
| &xspim_p2_dqs0_pn0>; | ||
| pinctrl-names = "default"; | ||
|
|
||
| status = "okay"; | ||
|
|
||
| mx66uw1g45: xspi-nor-flash@0 { | ||
| compatible = "st,stm32-xspi-nor"; | ||
| reg = <0>; | ||
| size = <DT_SIZE_M(1024)>; /* 1 Gbits */ | ||
| ospi-max-frequency = <DT_FREQ_M(50)>; | ||
| spi-bus-width = <XSPI_OCTO_MODE>; | ||
| data-rate = <XSPI_DTR_TRANSFER>; | ||
| status = "okay"; | ||
|
|
||
| partitions { | ||
| compatible = "fixed-partitions"; | ||
| #address-cells = <1>; | ||
| #size-cells = <1>; | ||
|
|
||
| slot0_partition: partition@0 { | ||
| label = "image-0"; | ||
| reg = <0x00000000 DT_SIZE_K(512)>; | ||
| }; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add an empty line between each subnode. |
||
| slot1_partition: partition@80000 { | ||
| label = "image-1"; | ||
| reg = <0x0080000 DT_SIZE_K(512)>; | ||
| }; | ||
| scratch_partition: partition@100000 { | ||
| label = "image-scratch"; | ||
| reg = <0x00100000 DT_SIZE_K(64)>; | ||
| }; | ||
| storage_partition: partition@110000 { | ||
| label = "storage"; | ||
| reg = <0x00110000 DT_SIZE_K(64)>; | ||
| }; | ||
FRASTM marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| }; | ||
| }; | ||
| }; | ||
|
|
||
| &die_temp { | ||
| status = "okay"; | ||
| }; | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -337,6 +337,16 @@ int enabled_clock(uint32_t src_clk) | |
| ((src_clk == STM32_SRC_PLL2_R) && IS_ENABLED(STM32_PLL2_R_ENABLED)) || | ||
| ((src_clk == STM32_SRC_PLL3_P) && IS_ENABLED(STM32_PLL3_P_ENABLED)) || | ||
| ((src_clk == STM32_SRC_PLL3_Q) && IS_ENABLED(STM32_PLL3_Q_ENABLED)) || | ||
| #if defined(CONFIG_SOC_SERIES_STM32H7RSX) | ||
| (src_clk == STM32_SRC_HCLK1) || | ||
| (src_clk == STM32_SRC_HCLK2) || | ||
| (src_clk == STM32_SRC_HCLK3) || | ||
| (src_clk == STM32_SRC_HCLK4) || | ||
| (src_clk == STM32_SRC_HCLK5) || | ||
| ((src_clk == STM32_SRC_PLL2_S) && IS_ENABLED(STM32_PLL2_S_ENABLED)) || | ||
| ((src_clk == STM32_SRC_PLL2_T) && IS_ENABLED(STM32_PLL2_T_ENABLED)) || | ||
| ((src_clk == STM32_SRC_PLL3_S) && IS_ENABLED(STM32_PLL3_S_ENABLED)) || | ||
| #endif | ||
| ((src_clk == STM32_SRC_PLL3_R) && IS_ENABLED(STM32_PLL3_R_ENABLED))) { | ||
| return 0; | ||
| } | ||
|
|
@@ -460,6 +470,14 @@ static int stm32_clock_control_get_subsys_rate(const struct device *clock, | |
| case STM32_CLOCK_BUS_AHB2: | ||
| case STM32_CLOCK_BUS_AHB3: | ||
| case STM32_CLOCK_BUS_AHB4: | ||
| #if defined(CONFIG_SOC_SERIES_STM32H7RSX) | ||
| /* HCLKn is a possible source clock for some peripherals */ | ||
| case STM32_SRC_HCLK1: | ||
| case STM32_SRC_HCLK2: | ||
| case STM32_SRC_HCLK3: | ||
| case STM32_SRC_HCLK4: | ||
| case STM32_SRC_HCLK5: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. STM32_SRC_HCLK1/2/3/4 (added in the previous commit) and STM32_CLOCK_BUS_AHB5 should also be added here.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. moved to the other commit
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. STM32_SRC_HCLK1/2/3/4 and STM32_CLOCK_BUS_AHB5 cases are still missing in this function. |
||
| #endif /* CONFIG_SOC_SERIES_STM32H7RSX */ | ||
| *rate = ahb_clock; | ||
| break; | ||
| case STM32_CLOCK_BUS_APB1: | ||
|
|
@@ -544,7 +562,7 @@ static int stm32_clock_control_get_subsys_rate(const struct device *clock, | |
| STM32_PLL_N_MULTIPLIER, | ||
| STM32_PLL_S_DIVISOR); | ||
| break; | ||
| /* PLL 1 has no T-divider */ | ||
| /* PLL 1 has no T-divider */ | ||
| #endif /* CONFIG_SOC_SERIES_STM32H7RSX */ | ||
| #endif /* STM32_PLL_ENABLED */ | ||
| #if defined(STM32_PLL2_ENABLED) | ||
|
|
||
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.
Prefer with an empty line before each subnodes.