1.1 --- a/pkg/devices/lib/cpm/src/x1600.cc Thu Apr 04 00:26:27 2024 +0200
1.2 +++ b/pkg/devices/lib/cpm/src/x1600.cc Thu Apr 04 00:31:36 2024 +0200
1.3 @@ -102,6 +102,19 @@
1.4 Clock_source_sfc (Divider_sfc, 3, 30), // SFCS
1.5 Clock_source_ssi (Divider_ssi, 3, 30), // SPCS
1.6
1.7 + Clock_stop_ddr (Divider_ddr, 1, 27, true),
1.8 + Clock_stop_mac (Divider_mac, 1, 27, true),
1.9 + Clock_stop_lcd (Divider_lcd, 1, 27, true),
1.10 + Clock_stop_msc0 (Divider_msc0, 1, 27, true),
1.11 + Clock_stop_msc1 (Divider_msc1, 1, 27, true),
1.12 + Clock_stop_sfc (Divider_sfc, 1, 27, true),
1.13 + Clock_stop_ssi (Divider_ssi, 1, 27, true),
1.14 + Clock_stop_cim (Divider_cim, 1, 27, true),
1.15 + Clock_stop_pwm (Divider_pwm, 1, 27, true),
1.16 + Clock_stop_can0 (Divider_can0, 1, 27, true),
1.17 + Clock_stop_can1 (Divider_can1, 1, 27, true),
1.18 + Clock_stop_cdbus (Divider_cdbus, 1, 27, true),
1.19 +
1.20 Clock_busy_cpu (Clock_status, 1, 0),
1.21 Clock_busy_hclock0 (Clock_status, 1, 1),
1.22 Clock_busy_hclock2 (Clock_status, 1, 2),
1.23 @@ -321,19 +334,23 @@
1.24
1.25 static Clock_divided
1.26 clock_can0(Source(mux_bus, Clock_source_can0),
1.27 - Control(Clock_gate_can0, Clock_change_enable_can0, Clock_busy_can0),
1.28 + Control(Clock_gate_can0, Clock_change_enable_can0, Clock_busy_can0,
1.29 + Clock_stop_can0),
1.30 Divider(Clock_divider_can0)),
1.31
1.32 clock_can1(Source(mux_bus, Clock_source_can1),
1.33 - Control(Clock_gate_can1, Clock_change_enable_can1, Clock_busy_can1),
1.34 + Control(Clock_gate_can1, Clock_change_enable_can1, Clock_busy_can1,
1.35 + Clock_stop_can1),
1.36 Divider(Clock_divider_can1)),
1.37
1.38 clock_cdbus(Source(mux_dev, Clock_source_cdbus),
1.39 - Control(Clock_gate_cdbus, Clock_change_enable_cdbus, Clock_busy_cdbus),
1.40 + Control(Clock_gate_cdbus, Clock_change_enable_cdbus, Clock_busy_cdbus,
1.41 + Clock_stop_cdbus),
1.42 Divider(Clock_divider_cdbus)),
1.43
1.44 clock_cim(Source(mux_dev, Clock_source_cim),
1.45 - Control(Clock_gate_cim, Clock_change_enable_cim, Clock_busy_cim),
1.46 + Control(Clock_gate_cim, Clock_change_enable_cim, Clock_busy_cim,
1.47 + Clock_stop_cim),
1.48 Divider(Clock_divider_cim)),
1.49
1.50 clock_cpu(Source(mux_core, Clock_source_cpu),
1.51 @@ -341,7 +358,8 @@
1.52 Divider(Clock_divider_cpu)),
1.53
1.54 clock_ddr(Source(mux_core, Clock_source_ddr),
1.55 - Control(Clock_gate_ddr, Clock_change_enable_ddr, Clock_busy_ddr),
1.56 + Control(Clock_gate_ddr, Clock_change_enable_ddr, Clock_busy_ddr,
1.57 + Clock_stop_ddr),
1.58 Divider(Clock_divider_ddr)),
1.59
1.60 clock_hclock0(Source(mux_core, Clock_source_hclock0),
1.61 @@ -355,33 +373,40 @@
1.62 Divider(Clock_divider_l2cache)),
1.63
1.64 clock_lcd_pixel(Source(mux_dev, Clock_source_lcd),
1.65 - Control(Clock_gate_lcd_pixel, Clock_change_enable_lcd, Clock_busy_lcd),
1.66 + Control(Clock_gate_lcd_pixel, Clock_change_enable_lcd, Clock_busy_lcd,
1.67 + Clock_stop_lcd),
1.68 Divider(Clock_divider_lcd)),
1.69
1.70 clock_mac(Source(mux_dev, Clock_source_mac),
1.71 - Control(Clock_gate_gmac0, Clock_change_enable_mac, Clock_busy_mac),
1.72 + Control(Clock_gate_gmac0, Clock_change_enable_mac, Clock_busy_mac,
1.73 + Clock_stop_mac),
1.74 Divider(Clock_divider_mac)),
1.75
1.76 clock_msc0(Source(mux_dev, Clock_source_msc0),
1.77 - Control(Clock_gate_msc0, Clock_change_enable_msc0, Clock_busy_msc0),
1.78 + Control(Clock_gate_msc0, Clock_change_enable_msc0, Clock_busy_msc0,
1.79 + Clock_stop_msc0),
1.80 Divider(Clock_divider_msc0, 2)),
1.81
1.82 clock_msc1(Source(mux_dev, Clock_source_msc1),
1.83 - Control(Clock_gate_msc1, Clock_change_enable_msc1, Clock_busy_msc1),
1.84 + Control(Clock_gate_msc1, Clock_change_enable_msc1, Clock_busy_msc1,
1.85 + Clock_stop_msc1),
1.86 Divider(Clock_divider_msc1, 2)),
1.87
1.88 clock_pclock((Source(mux_hclock2_pclock)), (Divider(Clock_divider_pclock))),
1.89
1.90 clock_pwm0(Source(mux_dev, Clock_source_pwm),
1.91 - Control(Clock_gate_pwm, Clock_change_enable_pwm, Clock_busy_pwm),
1.92 + Control(Clock_gate_pwm, Clock_change_enable_pwm, Clock_busy_pwm,
1.93 + Clock_stop_pwm),
1.94 Divider(Clock_divider_pwm)),
1.95
1.96 clock_sfc(Source(mux_dev, Clock_source_sfc),
1.97 - Control(Clock_gate_sfc, Clock_change_enable_sfc, Clock_busy_sfc),
1.98 + Control(Clock_gate_sfc, Clock_change_enable_sfc, Clock_busy_sfc,
1.99 + Clock_stop_sfc),
1.100 Divider(Clock_divider_sfc)),
1.101
1.102 clock_ssi0(Source(mux_dev, Clock_source_ssi),
1.103 - Control(Clock_gate_ssi0, Clock_change_enable_ssi, Clock_busy_ssi),
1.104 + Control(Clock_gate_ssi0, Clock_change_enable_ssi, Clock_busy_ssi,
1.105 + Clock_stop_ssi),
1.106 Divider(Clock_divider_ssi));
1.107
1.108 static Clock_divided_fixed