@@ -67,7 +67,9 @@ struct flash_stm32_sector_t {
67
67
volatile uint32_t * sr ;
68
68
};
69
69
70
- static __unused int commit_optb (const struct device * dev )
70
+ #if defined(CONFIG_FLASH_STM32_READOUT_PROTECTION ) || defined(CONFIG_FLASH_STM32_WRITE_PROTECT )
71
+
72
+ static int commit_optb (const struct device * dev )
71
73
{
72
74
FLASH_TypeDef * regs = FLASH_STM32_REGS (dev );
73
75
int64_t timeout_time = k_uptime_get () + STM32H7_FLASH_OPT_TIMEOUT_MS ;
@@ -87,8 +89,8 @@ static __unused int commit_optb(const struct device *dev)
87
89
}
88
90
89
91
/* Returns negative value on error, 0 if a change was not need, 1 if a change has been made. */
90
- static __unused int write_opt (const struct device * dev , uint32_t mask , uint32_t value ,
91
- uintptr_t cur , bool commit )
92
+ static int write_opt (const struct device * dev , uint32_t mask , uint32_t value , uintptr_t cur ,
93
+ bool commit )
92
94
{
93
95
FLASH_TypeDef * regs = FLASH_STM32_REGS (dev );
94
96
/* PRG register always follows CUR register. */
@@ -124,34 +126,17 @@ static __unused int write_opt(const struct device *dev, uint32_t mask, uint32_t
124
126
return 1 ;
125
127
}
126
128
127
- static __unused int write_optsr (const struct device * dev , uint32_t mask , uint32_t value )
129
+ #endif /* CONFIG_FLASH_STM32_WRITE_PROTECT || CONFIG_FLASH_STM32_READOUT_PROTECTION */
130
+
131
+ #if defined(CONFIG_FLASH_STM32_READOUT_PROTECTION )
132
+ static int write_optsr (const struct device * dev , uint32_t mask , uint32_t value )
128
133
{
129
134
FLASH_TypeDef * regs = FLASH_STM32_REGS (dev );
130
135
uintptr_t cur = (uintptr_t )regs + offsetof(FLASH_TypeDef , OPTSR_CUR );
131
136
132
137
return write_opt (dev , mask , value , cur , true);
133
138
}
134
139
135
- static __unused int write_optwp (const struct device * dev , uint32_t mask , uint32_t value ,
136
- uint32_t bank )
137
- {
138
- FLASH_TypeDef * regs = FLASH_STM32_REGS (dev );
139
- uintptr_t cur = (uintptr_t )regs + offsetof(FLASH_TypeDef , WPSN_CUR1 );
140
-
141
- if (bank >= NUMBER_OF_BANKS ) {
142
- return - EINVAL ;
143
- }
144
-
145
- #ifdef DUAL_BANK
146
- if (bank == 1 ) {
147
- cur = (uintptr_t )regs + offsetof(FLASH_TypeDef , WPSN_CUR2 );
148
- }
149
- #endif /* DUAL_BANK */
150
-
151
- return write_opt (dev , mask , value , cur , false);
152
- }
153
-
154
- #if defined(CONFIG_FLASH_STM32_READOUT_PROTECTION )
155
140
uint8_t flash_stm32_get_rdp_level (const struct device * dev )
156
141
{
157
142
FLASH_TypeDef * regs = FLASH_STM32_REGS (dev );
@@ -170,6 +155,24 @@ void flash_stm32_set_rdp_level(const struct device *dev, uint8_t level)
170
155
#define WP_MSK FLASH_WPSN_WRPSN_Msk
171
156
#define WP_POS FLASH_WPSN_WRPSN_Pos
172
157
158
+ static int write_optwp (const struct device * dev , uint32_t mask , uint32_t value , uint32_t bank )
159
+ {
160
+ FLASH_TypeDef * regs = FLASH_STM32_REGS (dev );
161
+ uintptr_t cur = (uintptr_t )regs + offsetof(FLASH_TypeDef , WPSN_CUR1 );
162
+
163
+ if (bank >= NUMBER_OF_BANKS ) {
164
+ return - EINVAL ;
165
+ }
166
+
167
+ #ifdef DUAL_BANK
168
+ if (bank == 1 ) {
169
+ cur = (uintptr_t )regs + offsetof(FLASH_TypeDef , WPSN_CUR2 );
170
+ }
171
+ #endif /* DUAL_BANK */
172
+
173
+ return write_opt (dev , mask , value , cur , false);
174
+ }
175
+
173
176
int flash_stm32_update_wp_sectors (const struct device * dev , uint64_t changed_sectors ,
174
177
uint64_t protected_sectors )
175
178
{
0 commit comments