当我加载TC358749XBG驱动时mipi_csi2寄存器发生如下变化,在调用mipi_csi2_disable中的clk_disable_unprepare(info->dphy_clk);后mipi_csi2的寄存器全变为0,想知道是什么原因会导致这种情况呢?
MIPI_CSI2_VERSION = 0x3130302A
MIPI_CSI2_N_LANES = 0x00000001
MIPI_CSI2_PHY_SHUTDOWNZ = 0x00000001
MIPI_CSI2_DPHY_RSTZ = 0x00000001
MIPI_CSI2_CSI2_RESETN = 0x00000001
MIPI_CSI2_PHY_STATE = 0x00000300
MIPI_CSI2_DATA_IDS_1 = 0x00000000
MIPI_CSI2_DATA_IDS_2 = 0x00000000
MIPI_CSI2_ERR1 = 0x00000000
MIPI_CSI2_ERR2 = 0x00000000
MIPI_CSI2_MASK1 = 0x00000000
MIPI_CSI2_MASK2 = 0x00000000
MIPI_CSI2_PHY_TST_CTRL0 = 0x00000000
MIPI_CSI2_PHY_TST_CTRL1 = 0x00001414
MIPI_CSI2_SFT_RESET = 0x00000000
mipi_csi2_disable:130
MIPI_CSI2_VERSION = 0x00000000
MIPI_CSI2_N_LANES = 0x00000000
MIPI_CSI2_PHY_SHUTDOWNZ = 0x00000000
MIPI_CSI2_DPHY_RSTZ = 0x00000000
MIPI_CSI2_CSI2_RESETN = 0x00000000
MIPI_CSI2_PHY_STATE = 0x00000000
MIPI_CSI2_DATA_IDS_1 = 0x00000000
MIPI_CSI2_DATA_IDS_2 = 0x00000000
MIPI_CSI2_ERR1 = 0x00000000
MIPI_CSI2_ERR2 = 0x00000000
MIPI_CSI2_MASK1 = 0x00000000
MIPI_CSI2_MASK2 = 0x00000000
MIPI_CSI2_PHY_TST_CTRL0 = 0x00000000
MIPI_CSI2_PHY_TST_CTRL1 = 0x00000000
MIPI_CSI2_SFT_RESET = 0x00000000
So you disable the clk? then read the value of register is zero ?
官方代码都是disable的,而且在我们其他项目里面也是有disable clk的操作,但是他们操作完了之后还是能正常读取寄存器的值
I think you should not disable the clock if you want to read the value from the register.
我在官方代码上在dts中把fb1的hdmi输出disable后就会出现这种情况,当我把他okay后,就能正常读取寄存器,不知道这两者有没有实际联系,我在代码上是没有看到任何联系的,可以的话,麻烦指点一下!谢谢!