File tree Expand file tree Collapse file tree 6 files changed +31
-1
lines changed Expand file tree Collapse file tree 6 files changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -195,6 +195,8 @@ static const struct pwm_driver_api mcux_tpm_driver_api = {
195195 .get_cycles_per_sec = mcux_tpm_get_cycles_per_sec ,
196196};
197197
198+ #define TO_TPM_PRESCALE_DIVIDE (val ) _DO_CONCAT(kTPM_Prescale_Divide_, val)
199+
198200#define TPM_DEVICE (n ) \
199201 PINCTRL_DT_INST_DEFINE(n); \
200202 static const struct mcux_tpm_config mcux_tpm_config_##n = { \
@@ -204,7 +206,7 @@ static const struct pwm_driver_api mcux_tpm_driver_api = {
204206 .clock_subsys = (clock_control_subsys_t) \
205207 DT_INST_CLOCKS_CELL(n, name), \
206208 .tpm_clock_source = kTPM_SystemClock, \
207- .prescale = kTPM_Prescale_Divide_16 , \
209+ .prescale = TO_TPM_PRESCALE_DIVIDE(DT_INST_PROP(n, prescaler)) , \
208210 .channel_count = FSL_FEATURE_TPM_CHANNEL_COUNTn((TPM_Type *) \
209211 DT_INST_REG_ADDR(n)), \
210212 .mode = kTPM_EdgeAlignedPwm, \
Original file line number Diff line number Diff line change 9191 reg = <0x424e0000 0x88>;
9292 interrupts = <73 0>;
9393 clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
94+ prescaler = <16>;
9495 status = "disabled";
9596 #pwm-cells = <3>;
9697 };
100101 reg = <0x424f0000 0x88>;
101102 interrupts = <74 0>;
102103 clocks = <&scmi_clk IMX95_CLK_TPM4>;
104+ prescaler = <16>;
103105 status = "disabled";
104106 #pwm-cells = <3>;
105107 };
109111 reg = <0x42500000 0x88>;
110112 interrupts = <75 0>;
111113 clocks = <&scmi_clk IMX95_CLK_TPM5>;
114+ prescaler = <16>;
112115 status = "disabled";
113116 #pwm-cells = <3>;
114117 };
118121 reg = <0x42510000 0x88>;
119122 interrupts = <76 0>;
120123 clocks = <&scmi_clk IMX95_CLK_TPM6>;
124+ prescaler = <16>;
121125 status = "disabled";
122126 #pwm-cells = <3>;
123127 };
254258 reg = <0x44310000 0x88>;
255259 interrupts = <29 0>;
256260 clocks = <&scmi_clk IMX95_CLK_BUSAON>;
261+ prescaler = <16>;
257262 status = "disabled";
258263 #pwm-cells = <3>;
259264 };
263268 reg = <0x44320000 0x88>;
264269 interrupts = <30 0>;
265270 clocks = <&scmi_clk IMX95_CLK_TPM2>;
271+ prescaler = <16>;
266272 status = "disabled";
267273 #pwm-cells = <3>;
268274 };
Original file line number Diff line number Diff line change 204204 interrupts = <0x84 0>;
205205 /* channel information needed - fixme */
206206 clocks = <&sim KINETIS_SIM_BUS_CLK 0x103C 24>;
207+ prescaler = <16>;
207208 status = "disabled";
208209 #pwm-cells = <3>;
209210 };
214215 interrupts = <0x88 0>;
215216 /* channel information needed - fixme */
216217 clocks = <&sim KINETIS_SIM_BUS_CLK 0x103C 25>;
218+ prescaler = <16>;
217219 status = "disabled";
218220 #pwm-cells = <3>;
219221 };
224226 interrupts = <0x8C 0>;
225227 /* channel information needed - fixme */
226228 clocks = <&sim KINETIS_SIM_BUS_CLK 0x103C 26>;
229+ prescaler = <16>;
227230 status = "disabled";
228231 #pwm-cells = <3>;
229232 };
Original file line number Diff line number Diff line change 252252 reg = <0x40038000 0x88>;
253253 interrupts = <17 0>;
254254 clocks = <&sim KINETIS_SIM_MCGPCLK 0x103C 24>;
255+ prescaler = <16>;
255256 status = "disabled";
256257 #pwm-cells = <3>;
257258 };
261262 reg = <0x40039000 0x88>;
262263 interrupts = <18 0>;
263264 clocks = <&sim KINETIS_SIM_MCGPCLK 0x103C 25>;
265+ prescaler = <16>;
264266 status = "disabled";
265267 #pwm-cells = <3>;
266268 };
270272 reg = <0x4003a000 0x88>;
271273 interrupts = <19 0>;
272274 clocks = <&sim KINETIS_SIM_MCGPCLK 0x103C 26>;
275+ prescaler = <16>;
273276 status = "disabled";
274277 #pwm-cells = <3>;
275278 };
Original file line number Diff line number Diff line change 248248 reg = <0x31000 0x100>;
249249 interrupts = <37 0>;
250250 clocks = <&scg SCG_K4_FIRC_CLK 0xc4>;
251+ prescaler = <16>;
251252 status = "disabled";
252253 #pwm-cells = <3>;
253254 };
257258 reg = <0x32000 0x100>;
258259 interrupts = <38 0>;
259260 clocks = <&scg SCG_K4_FIRC_CLK 0xc8>;
261+ prescaler = <16>;
260262 status = "disabled";
261263 #pwm-cells = <3>;
262264 };
Original file line number Diff line number Diff line change @@ -17,6 +17,20 @@ properties:
1717 pinctrl-0 :
1818 required : true
1919
20+ prescaler :
21+ type : int
22+ required : true
23+ enum :
24+ - 1
25+ - 2
26+ - 4
27+ - 8
28+ - 16
29+ - 32
30+ - 64
31+ - 128
32+ description : Input clock prescaler
33+
2034 " #pwm-cells " :
2135 const : 3
2236
You can’t perform that action at this time.
0 commit comments