disp: msm: dsi: add debug support to configure clock gating

Add support to selectively enable clock gating for supported
DSI clocks using a new debugfs node - config_clk_gating. This
new node would be created for every display node. See below
for usage examples:

To enable clock gating only for BYTE clock:
echo 1 > /sys/kernel/debug/<display_name>/config_clock_gating

To enable clock gating only for PIXEL clock:
echo 2 > /sys/kernel/debug/<display_name>/config_clock_gating

To enable clock gating only for PHY clock:
echo 4 > /sys/kernel/debug/<display_name>/config_clock_gating

To enable clock gating only for all clock:
echo 7 > /sys/kernel/debug/<display_name>/config_clock_gating

To disable clock gating for all clocks:
echo 8 > /sys/kernel/debug/<display_name>/config_clock_gating

To go back to default setting:
echo 0 > /sys/kernel/debug/<display_name>/config_clock_gating

Change-Id: I83713d86eb1b9675d40d51fc20de81cca0aeb1c0
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
这个提交包含在:
Aravind Venkateswaran
2019-05-17 15:58:27 -07:00
父节点 684e070ab1
当前提交 dc65566994
修改 3 个文件,包含 40 行新增7 行删除

查看文件

@@ -181,6 +181,7 @@ struct dsi_display_ext_bridge {
* @misr_frame_count Number of frames to accumulate the MISR value
* @esd_trigger field indicating ESD trigger through debugfs
* @te_source vsync source pin information
* @clk_gating_config Clocks for which clock gating needs to be enabled
*/
struct dsi_display {
struct platform_device *pdev;
@@ -264,6 +265,7 @@ struct dsi_display {
struct dsi_display_boot_param *boot_disp;
u32 te_source;
u32 clk_gating_config;
};
int dsi_display_dev_probe(struct platform_device *pdev);