forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/gpu/drm/armada/armada_crtc.h
....@@ -1,12 +1,11 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Copyright (C) 2012 Russell King
3
- *
4
- * This program is free software; you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License version 2 as
6
- * published by the Free Software Foundation.
74 */
85 #ifndef ARMADA_CRTC_H
96 #define ARMADA_CRTC_H
7
+
8
+#include <drm/drm_crtc.h>
109
1110 struct armada_gem_object;
1211
....@@ -37,10 +36,10 @@
3736 struct armada_crtc {
3837 struct drm_crtc crtc;
3938 const struct armada_variant *variant;
39
+ void *variant_data;
4040 unsigned num;
4141 void __iomem *base;
4242 struct clk *clk;
43
- struct clk *extclk[2];
4443 struct {
4544 uint32_t spu_v_h_total;
4645 uint32_t spu_v_porch;
....@@ -73,6 +72,25 @@
7372
7473 void armada_drm_crtc_update_regs(struct armada_crtc *, struct armada_regs *);
7574
75
+struct armada_clocking_params {
76
+ unsigned long permillage_min;
77
+ unsigned long permillage_max;
78
+ u32 settable;
79
+ u32 div_max;
80
+};
81
+
82
+struct armada_clk_result {
83
+ unsigned long desired_clk_hz;
84
+ struct clk *clk;
85
+ u32 div;
86
+};
87
+
88
+int armada_crtc_select_clock(struct armada_crtc *dcrtc,
89
+ struct armada_clk_result *res,
90
+ const struct armada_clocking_params *params,
91
+ struct clk *clks[], size_t num_clks,
92
+ unsigned long desired_khz);
93
+
7694 extern struct platform_driver armada_lcd_platform_driver;
7795
7896 #endif