diff options
Diffstat (limited to 'drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c')
| -rw-r--r-- | drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c b/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c index 30b454c369ab..9d67e7fa6366 100644 --- a/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c +++ b/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c @@ -16,6 +16,7 @@ #define CAMSS_CSI_PHY_LNn_CFG2(n) (0x004 + 0x40 * (n)) #define CAMSS_CSI_PHY_LNn_CFG3(n) (0x008 + 0x40 * (n)) +#define CAMSS_CSI_PHY_LN_CLK 1 #define CAMSS_CSI_PHY_GLBL_RESET 0x140 #define CAMSS_CSI_PHY_GLBL_PWR_CFG 0x144 #define CAMSS_CSI_PHY_GLBL_IRQ_CMD 0x164 @@ -26,6 +27,19 @@ #define CAMSS_CSI_PHY_GLBL_T_INIT_CFG0 0x1ec #define CAMSS_CSI_PHY_T_WAKEUP_CFG0 0x1f4 +static u8 csiphy_get_lane_mask(struct csiphy_lanes_cfg *lane_cfg) +{ + u8 lane_mask; + int i; + + lane_mask = 1 << CAMSS_CSI_PHY_LN_CLK; + + for (i = 0; i < lane_cfg->num_data; i++) + lane_mask |= 1 << lane_cfg->data[i].pos; + + return lane_mask; +} + static void csiphy_hw_version_read(struct csiphy_device *csiphy, struct device *dev) { @@ -105,7 +119,7 @@ static void csiphy_lanes_enable(struct csiphy_device *csiphy, for (i = 0; i <= c->num_data; i++) { if (i == c->num_data) - l = c->clk.pos; + l = CAMSS_CSI_PHY_LN_CLK; else l = c->data[i].pos; @@ -129,7 +143,7 @@ static void csiphy_lanes_disable(struct csiphy_device *csiphy, for (i = 0; i <= c->num_data; i++) { if (i == c->num_data) - l = c->clk.pos; + l = CAMSS_CSI_PHY_LN_CLK; else l = c->data[i].pos; @@ -166,10 +180,17 @@ static irqreturn_t csiphy_isr(int irq, void *dev) return IRQ_HANDLED; } +static int csiphy_init(struct csiphy_device *csiphy) +{ + return 0; +} + const struct csiphy_hw_ops csiphy_ops_2ph_1_0 = { + .get_lane_mask = csiphy_get_lane_mask, .hw_version_read = csiphy_hw_version_read, .reset = csiphy_reset, .lanes_enable = csiphy_lanes_enable, .lanes_disable = csiphy_lanes_disable, .isr = csiphy_isr, + .init = csiphy_init, }; |
