AnsweredAssumed Answered

i.MX6 DCIC - When I read/write on DCIC registers the linux system gets freezed

Question asked by Jorge Guzmán on Feb 11, 2016
Latest reply on Mar 29, 2016 by maddie

I'm trying to enable the DCIC. I already have the DCIC test application, but when I try to run it, the linux system gets freezed. I have placed some "printk" in the driver and it seems that the problem is when it's trying to write on the DCICC register, in the function "dcic_configure". Below we can see the line where it's getting stuck:

 

writel(val, &dcic->regs->dcicc);

 

So I checked the DCIC Memory Map/Register Definition and I tested those addresses with "devmem" and I got the same result, the whole system it's getting freezed. I tried with other registers from different modules and devmem worked correctly. So my assumption is that there is something wrong with the DCIC registers or maybe I'm only missing some pre-configuration in order to start using DCIC.

 

This is what I have on my device tree:

 

&dcic1 {

        compatible = "fsl,imx6q-dcic";

        reg = <0x020e4000 0x4000>;

        interrupts = <0 124 0x04>;

        /*clocks = <&clks 231>, <&clks 231>;*/

        clocks = <&clks 142>, <&clks 173>;

        clock-names = "dcic", "disp-axi";

        gpr = <&gpr>;

        status = "okay";

        dcic_id = <0>; /* dcic device index 0-dcic1, i-dcic2 */

        dcic_mux = "dcic-lvds0"; /* DCIC input select */

};

 

&dcic2 {

        compatible = "fsl,imx6q-dcic";

        reg = <0x020e8000 0x4000>;

        interrupts = <0 125 0x04>;

        /*clocks = <&clks 232>, <&clks 232>;*/

        clocks = <&clks 143>, <&clks 173>;

        clock-names = "dcic", "disp-axi";

        gpr = <&gpr>;

        status = "okay";

        dcic_id = <1>; /* dcic device index 0-dcic1, i-dcic2 */

        dcic_mux = "dcic-lvds0"; /* DCIC input select */

};

 

 

Any advice?

Outcomes