1.1 --- a/pkg/landfall-examples/ci20_cpm/ci20_cpm.c Sat Oct 28 00:28:42 2023 +0200
1.2 +++ b/pkg/landfall-examples/ci20_cpm/ci20_cpm.c Sat Oct 28 01:15:45 2023 +0200
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>
1.6 * economic rights: Technische Universität Dresden (Germany)
1.7 - * Copyright (C) 2017, 2018, 2021 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2017, 2018, 2021, 2023 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This file is part of TUD:OS and distributed under the terms of the
1.11 * GNU General Public License 2.
1.12 @@ -130,59 +130,54 @@
1.13 /* Read information from the clock and power management unit. */
1.14
1.15 printf("Main source: %d\n", jz4780_cpm_get_source(cpm, Clock_main));
1.16 - printf(" Main frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_main));
1.17 - printf("APLL frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pll_A));
1.18 - printf("EPLL frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pll_E));
1.19 - printf("MPLL frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pll_M));
1.20 - printf("VPLL frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pll_V));
1.21 - printf("CPU frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_cpu));
1.22 + printf(" Main frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_main));
1.23 + printf("APLL frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_pll_A));
1.24 + printf("EPLL frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_pll_E));
1.25 + printf("MPLL frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_pll_M));
1.26 + printf("VPLL frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_pll_V));
1.27 + printf("CPU frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_cpu));
1.28 printf("Memory source: %d\n", jz4780_cpm_get_source(cpm, Clock_ddr));
1.29 - printf(" Memory source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_ddr));
1.30 - printf(" Memory frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_ddr));
1.31 + printf(" Memory source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_ddr));
1.32 + printf(" Memory frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_ddr));
1.33 printf("APB source: %d\n", jz4780_cpm_get_source(cpm, Clock_pclock));
1.34 - printf(" APB source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_pclock));
1.35 - printf(" Slow peripheral (APB) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pclock));
1.36 + printf(" APB source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_pclock));
1.37 + printf(" Slow peripheral (APB) frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_pclock));
1.38 printf("AHB0 source: %d\n", jz4780_cpm_get_source(cpm, Clock_hclock0));
1.39 - printf(" AHB0 source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_hclock0));
1.40 - printf(" Fast peripheral (AHB0) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_hclock0));
1.41 + printf(" AHB0 source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_hclock0));
1.42 + printf(" Fast peripheral (AHB0) frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_hclock0));
1.43 printf("AHB2 source: %d\n", jz4780_cpm_get_source(cpm, Clock_hclock2));
1.44 - printf(" AHB2 source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_hclock2));
1.45 - printf(" Fast peripheral (AHB2) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_hclock2));
1.46 + printf(" AHB2 source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_hclock2));
1.47 + printf(" Fast peripheral (AHB2) frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_hclock2));
1.48 printf("LCD source: %d\n", jz4780_cpm_get_source(cpm, Clock_lcd));
1.49 - printf(" LCD source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_lcd));
1.50 - printf(" LCD frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_lcd));
1.51 - printf(" LCD pixel clock frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_lcd_pixel0));
1.52 + printf(" LCD source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_lcd));
1.53 + printf(" LCD frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_lcd));
1.54 + printf(" LCD pixel clock frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_lcd_pixel0));
1.55
1.56 /* Attempt to set the pixel clock frequency. */
1.57
1.58 jz4780_cpm_set_frequency(cpm, Clock_lcd_pixel0, 108000000);
1.59
1.60 printf("LCD source: %d\n", jz4780_cpm_get_source(cpm, Clock_lcd));
1.61 - printf(" LCD source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_lcd));
1.62 - printf(" LCD frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_lcd));
1.63 - printf(" LCD pixel clock frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_lcd_pixel0));
1.64 + printf(" LCD source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_lcd));
1.65 + printf(" LCD frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_lcd));
1.66 + printf(" LCD pixel clock frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_lcd_pixel0));
1.67
1.68 - /* Attempt to set the peripheral clock frequency. */
1.69 + /* Change the pixel clock source. */
1.70
1.71 - jz4780_cpm_set_source(cpm, Clock_pclock, 1);
1.72 + jz4780_cpm_set_source_clock(cpm, Clock_lcd_pixel0, Clock_pll_V);
1.73
1.74 - printf("APB source: %d\n", jz4780_cpm_get_source(cpm, Clock_pclock));
1.75 - printf(" APB source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_pclock));
1.76 - printf(" Slow peripheral (APB) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pclock));
1.77 - printf("AHB2 source: %d\n", jz4780_cpm_get_source(cpm, Clock_hclock2));
1.78 - printf(" AHB2 source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_hclock2));
1.79 - printf(" Fast peripheral (AHB2) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_hclock2));
1.80 -
1.81 - /* Attempt to set the MPLL output to EXCLK divided by 4. */
1.82 + printf("LCD source: %d\n", jz4780_cpm_get_source(cpm, Clock_lcd));
1.83 + printf(" LCD source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_lcd));
1.84 + printf(" LCD frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_lcd));
1.85 + printf(" LCD pixel clock frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_lcd_pixel0));
1.86
1.87 - jz4780_cpm_set_parameters(cpm, Clock_pll_M, 3, (uint32_t []) {1, 4, 1});
1.88 + /* Attempt to set the VPLL output to EXCLK divided by 4. */
1.89 +
1.90 + jz4780_cpm_set_parameters(cpm, Clock_pll_V, 3, (uint32_t []) {1, 4, 1});
1.91
1.92 - printf("APB source: %d\n", jz4780_cpm_get_source(cpm, Clock_pclock));
1.93 - printf(" APB source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_pclock));
1.94 - printf(" Slow peripheral (APB) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_pclock));
1.95 - printf("AHB2 source: %d\n", jz4780_cpm_get_source(cpm, Clock_hclock2));
1.96 - printf(" AHB2 source frequency: %d\n", jz4780_cpm_get_source_frequency(cpm, Clock_hclock2));
1.97 - printf(" Fast peripheral (AHB2) frequency: %d\n", jz4780_cpm_get_frequency(cpm, Clock_hclock2));
1.98 + printf("VPLL source: %d\n", jz4780_cpm_get_source(cpm, Clock_pll_V));
1.99 + printf(" VPLL source frequency: %lld\n", jz4780_cpm_get_source_frequency(cpm, Clock_pll_V));
1.100 + printf(" VPLL frequency: %lld\n", jz4780_cpm_get_frequency(cpm, Clock_pll_V));
1.101
1.102 return 0;
1.103 }