47 [kDtPwmRegBlockCore] = 0x40450000,
63 [kDtPwmPeriphIoPwm0] = {
67 .periph_input_or_direct_pad = 0,
71 [kDtPwmPeriphIoPwm1] = {
75 .periph_input_or_direct_pad = 0,
79 [kDtPwmPeriphIoPwm2] = {
83 .periph_input_or_direct_pad = 0,
87 [kDtPwmPeriphIoPwm3] = {
91 .periph_input_or_direct_pad = 0,
95 [kDtPwmPeriphIoPwm4] = {
99 .periph_input_or_direct_pad = 0,
103 [kDtPwmPeriphIoPwm5] = {
107 .periph_input_or_direct_pad = 0,
113 .output_channel_count = 6,
123#define TRY_GET_DT(dt, default) ({ if ((dt) < (dt_pwm_t)0 || (dt) >= kDtPwmCount) return (default); &pwm_desc[dt]; })
141 return TRY_GET_DT(dt, 0xdeadbeef)->reg_addr[reg_block];
148 return TRY_GET_DT(dt, 0xdeadbeef)->mem_addr[mem];
162 return (
dt_alert_id_t)((uint32_t)pwm_desc[dt].first_alert + (uint32_t)alert);
169 if (alert < pwm_desc[dt].first_alert || alert >= pwm_desc[dt].first_alert + (
dt_alert_id_t)count) {
180 return TRY_GET_DT(dt, kDtPeriphIoConstantHighZ)->periph_io[sig];
203 return TRY_GET_DT(dt, 0)->ipgen_ext.output_channel_count;