1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * Copyright (C) 2013 Red Hat |
4 | * Author: Rob Clark <robdclark@gmail.com> |
5 | */ |
6 | |
7 | #include "hdmi.h" |
8 | |
9 | static void hdmi_phy_8960_powerup(struct hdmi_phy *phy, |
10 | unsigned long int pixclock) |
11 | { |
12 | DBG("pixclock: %lu" , pixclock); |
13 | |
14 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG2, data: 0x00); |
15 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG0, data: 0x1b); |
16 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG1, data: 0xf2); |
17 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG4, data: 0x00); |
18 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG5, data: 0x00); |
19 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG6, data: 0x00); |
20 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG7, data: 0x00); |
21 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG8, data: 0x00); |
22 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG9, data: 0x00); |
23 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG10, data: 0x00); |
24 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG11, data: 0x00); |
25 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG3, data: 0x20); |
26 | } |
27 | |
28 | static void hdmi_phy_8960_powerdown(struct hdmi_phy *phy) |
29 | { |
30 | DBG("" ); |
31 | |
32 | hdmi_phy_write(phy, REG_HDMI_8960_PHY_REG2, data: 0x7f); |
33 | } |
34 | |
35 | static const char * const hdmi_phy_8960_reg_names[] = { |
36 | "core-vdda" , |
37 | }; |
38 | |
39 | static const char * const hdmi_phy_8960_clk_names[] = { |
40 | "slave_iface" , |
41 | }; |
42 | |
43 | const struct hdmi_phy_cfg msm_hdmi_phy_8960_cfg = { |
44 | .type = MSM_HDMI_PHY_8960, |
45 | .powerup = hdmi_phy_8960_powerup, |
46 | .powerdown = hdmi_phy_8960_powerdown, |
47 | .reg_names = hdmi_phy_8960_reg_names, |
48 | .num_regs = ARRAY_SIZE(hdmi_phy_8960_reg_names), |
49 | .clk_names = hdmi_phy_8960_clk_names, |
50 | .num_clks = ARRAY_SIZE(hdmi_phy_8960_clk_names), |
51 | }; |
52 | |