| /* |
| * Copyright (c) 2017, The Linux Foundation. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 and |
| * only version 2 as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| */ |
| |
| #define pr_fmt(fmt) "dsi-hw:" fmt |
| |
| #include "dsi_ctrl_hw.h" |
| #include "dsi_ctrl_reg.h" |
| #include "dsi_hw.h" |
| |
| /* Equivalent to register DISP_CC_MISC_CMD */ |
| #define DISP_CC_CLAMP_REG_OFF 0x00 |
| |
| /** |
| * dsi_ctrl_hw_22_phy_reset_config() - to configure clamp control during ulps |
| * @ctrl: Pointer to the controller host hardware. |
| * @enable: boolean to specify enable/disable. |
| */ |
| void dsi_ctrl_hw_22_phy_reset_config(struct dsi_ctrl_hw *ctrl, |
| bool enable) |
| { |
| u32 reg = 0; |
| |
| reg = DSI_DISP_CC_R32(ctrl, DISP_CC_CLAMP_REG_OFF); |
| |
| /* Mask/unmask disable PHY reset bit */ |
| if (enable) |
| reg &= ~BIT(ctrl->index); |
| else |
| reg |= BIT(ctrl->index); |
| DSI_DISP_CC_W32(ctrl, DISP_CC_CLAMP_REG_OFF, reg); |
| } |