imx6qdl, weim ranges and gpr1

Shawn Guo shawn.guo at linaro.org
Mon Feb 10 10:10:30 EST 2014


On Mon, Feb 10, 2014 at 01:15:47AM +0100, Philippe De Muyter wrote:
> Hello linux on i.mx6 experts,
> 
> on our i.mx6q/dl-based custom hardware we have used the weim interface to
> connect some peripherals.  Our weim dts description looks like that:
> 
> &weim {
> 	compatible = "fsl,imx6q-weim";
> 	pinctrl-names = "default";
> 	pinctrl-0 = <&pinctrl_weim_sram_1>;
> 	clocks = <&clks 196>;
> 	reg = <0x021b8000 0x4000>;
> 	#address-cells = <2>;
> 	#size-cells = <1>;
> 	ranges = <0 0 0x08000000 0x04000000>, /* 64Mb for CS0 */
> 		<1 0 0x0c000000 0x04000000>; /* 64Mb for CS1 */
> 	status = "okay";
> 
> 	...
> };
> 
> Actually, to achieve this mapping, I must configure some bits in IOMUXC_GPR1,
> like that:
> 	regmap_update_bits(gpr, IOMUXC_GPR1, 0xfff, 0x1b);
> 
> Would it be possible to set the IOMUXC_GPR1 bits automagically, based on the
> dts description ?

It's possible, I think.

> Where should that go, in drivers/bus/imx-weim.c or in
> arch/arm/mach-imx/mach-imx6q.c ?

I prefer to drivers/bus/imx-weim.c.

> Also, I do not know how to retrieve
> the 'ranges' property of the weim description.

Just read it as an array of integers.  I will post a patch for it
tomorrow.  And please help test it.

Shawn




More information about the linux-arm-kernel mailing list