1.1 --- a/pkg/devices/lib/cpm/include/cpm-jz4780.h Sat Jan 25 16:07:18 2020 +0100
1.2 +++ b/pkg/devices/lib/cpm/include/cpm-jz4780.h Fri May 22 00:17:25 2020 +0200
1.3 @@ -1,5 +1,5 @@
1.4 /*
1.5 - * Copyright (C) 2017, 2018 Paul Boddie <paul@boddie.org.uk>
1.6 + * Copyright (C) 2017, 2018, 2020 Paul Boddie <paul@boddie.org.uk>
1.7 *
1.8 * This program is free software; you can redistribute it and/or
1.9 * modify it under the terms of the GNU General Public License as
1.10 @@ -63,6 +63,7 @@
1.11
1.12 // Clock dividers.
1.13
1.14 + void set_hdmi_divider(uint16_t division);
1.15 void set_lcd_pixel_divider(uint16_t division);
1.16
1.17 // Clock control.
1.18 @@ -76,6 +77,7 @@
1.19 // Clock sources.
1.20
1.21 void set_hclock2_source(uint8_t source);
1.22 + void set_hdmi_source(uint8_t source);
1.23 void set_lcd_source(uint8_t source);
1.24
1.25 public:
1.26 @@ -91,11 +93,15 @@
1.27 uint8_t get_hclock0_divider();
1.28 uint8_t get_hclock2_divider();
1.29 uint8_t get_pclock_divider();
1.30 + uint8_t get_hdmi_divider();
1.31 uint8_t get_lcd_pixel_divider();
1.32 uint8_t get_memory_divider();
1.33
1.34 // Clock control.
1.35
1.36 + void start_hdmi();
1.37 + void stop_hdmi();
1.38 +
1.39 void start_lcd();
1.40 void stop_lcd();
1.41
1.42 @@ -112,6 +118,7 @@
1.43 uint8_t get_cpu_source();
1.44 uint8_t get_hclock0_source();
1.45 uint8_t get_hclock2_source();
1.46 + uint8_t get_hdmi_source();
1.47 uint8_t get_lcd_source();
1.48 uint8_t get_memory_source();
1.49 uint8_t get_pclock_source();
1.50 @@ -119,6 +126,7 @@
1.51 uint32_t get_cpu_source_frequency();
1.52 uint32_t get_hclock0_source_frequency();
1.53 uint32_t get_hclock2_source_frequency();
1.54 + uint32_t get_hdmi_source_frequency();
1.55 uint32_t get_lcd_source_frequency();
1.56 uint32_t get_memory_source_frequency();
1.57 uint32_t get_pclock_source_frequency();
1.58 @@ -128,6 +136,7 @@
1.59 uint32_t get_cpu_frequency();
1.60 uint32_t get_hclock0_frequency();
1.61 uint32_t get_hclock2_frequency();
1.62 + uint32_t get_hdmi_frequency();
1.63 uint32_t get_lcd_pixel_frequency();
1.64 uint32_t get_memory_frequency();
1.65 uint32_t get_pclock_frequency();
1.66 @@ -137,6 +146,7 @@
1.67 uint32_t get_mpll_frequency();
1.68 uint32_t get_vpll_frequency();
1.69
1.70 + void set_hdmi_frequency(uint32_t pclk);
1.71 void set_lcd_pixel_frequency(uint32_t pclk);
1.72 void set_lcd_frequencies(uint32_t pclk, uint8_t multiplier);
1.73 void set_pll_parameters(uint32_t pll_reg, uint16_t multiplier, uint8_t in_divider, uint8_t out_divider);
1.74 @@ -157,24 +167,30 @@
1.75 int jz4780_cpm_have_clock(void *cpm);
1.76 void jz4780_cpm_start_clock(void *cpm);
1.77
1.78 +void jz4780_cpm_start_hdmi(void *cpm);
1.79 +void jz4780_cpm_stop_hdmi(void *cpm);
1.80 +
1.81 void jz4780_cpm_start_lcd(void *cpm);
1.82 void jz4780_cpm_stop_lcd(void *cpm);
1.83
1.84 uint8_t jz4780_cpm_get_cpu_divider(void *cpm);
1.85 uint8_t jz4780_cpm_get_hclock0_divider(void *cpm);
1.86 uint8_t jz4780_cpm_get_hclock2_divider(void *cpm);
1.87 +uint8_t jz4780_cpm_get_hdmi_divider(void *cpm);
1.88 uint8_t jz4780_cpm_get_lcd_pixel_divider(void *cpm);
1.89 uint8_t jz4780_cpm_get_memory_divider(void *cpm);
1.90 uint8_t jz4780_cpm_get_pclock_divider(void *cpm);
1.91
1.92 uint8_t jz4780_cpm_get_hclock0_source(void *cpm);
1.93 uint8_t jz4780_cpm_get_hclock2_source(void *cpm);
1.94 +uint8_t jz4780_cpm_get_hdmi_source(void *cpm);
1.95 uint8_t jz4780_cpm_get_lcd_source(void *cpm);
1.96 uint8_t jz4780_cpm_get_memory_source(void *cpm);
1.97 uint8_t jz4780_cpm_get_pclock_source(void *cpm);
1.98
1.99 uint32_t jz4780_cpm_get_hclock0_source_frequency(void *cpm);
1.100 uint32_t jz4780_cpm_get_hclock2_source_frequency(void *cpm);
1.101 +uint32_t jz4780_cpm_get_hdmi_source_frequency(void *cpm);
1.102 uint32_t jz4780_cpm_get_lcd_source_frequency(void *cpm);
1.103 uint32_t jz4780_cpm_get_memory_source_frequency(void *cpm);
1.104 uint32_t jz4780_cpm_get_pclock_source_frequency(void *cpm);
1.105 @@ -187,6 +203,7 @@
1.106 uint32_t jz4780_cpm_get_cpu_frequency(void *cpm);
1.107 uint32_t jz4780_cpm_get_hclock0_frequency(void *cpm);
1.108 uint32_t jz4780_cpm_get_hclock2_frequency(void *cpm);
1.109 +uint32_t jz4780_cpm_get_hdmi_frequency(void *cpm);
1.110 uint32_t jz4780_cpm_get_lcd_pixel_frequency(void *cpm);
1.111 uint32_t jz4780_cpm_get_memory_frequency(void *cpm);
1.112 uint32_t jz4780_cpm_get_pclock_frequency(void *cpm);
1.113 @@ -196,6 +213,7 @@
1.114 uint32_t jz4780_cpm_get_mpll_frequency(void *cpm);
1.115 uint32_t jz4780_cpm_get_vpll_frequency(void *cpm);
1.116
1.117 +void jz4780_cpm_set_hdmi_frequency(void *cpm, uint32_t pclk);
1.118 void jz4780_cpm_set_lcd_pixel_frequency(void *cpm, uint32_t pclk);
1.119 void jz4780_cpm_set_mpll_parameters(void *cpm, uint16_t multiplier, uint8_t in_divider, uint8_t out_divider);
1.120