Re: [PATCH v7][ 3/5] video: mx3fb: Introduce regulator support.
Alexander Shiyan
shc_work at mail.ru
Fri Mar 14 08:38:35 EDT 2014
Пятница, 14 марта 2014, 12:23 +01:00 от Denis Carikli <denis at eukrea.com>:
Sascha, Shawn, can you comment on that?
> On 03/14/2014 10:23 AM, Alexander Shiyan wrote:
> > Why this cannot be devm_regulator_get(dev, "lcd") in both DT and non-DT case?
>
> I need to add device tree support to the mx3fb driver.
> My first approach gave a binding that looked like that:
>
> cmo_qvga: display {
> model = "CMO-QVGA";
> [...]
> display-timings {
> qvga_timings: 320x240 {
> hactive = <320>;
> vactive = <240>;
> [...]
> };
> };
>
> ipu: ipu at 53fc0000 {
> compatible = "fsl,imx31-ipu";
> reg = < 0x53fc0000 0x5f
> 0x53fc0088 0x2b >;
> interrupts = <42 41>;
> dma-channels = <32>;
> #dma-cells = <1>;
> clocks = <&clks 55>;
> clock-names = "";
> };
>
> lcdc: mx3fb at 53fc00b4 {
> compatible = "fsl,mx3-fb";
> reg = <0x53fc00b4 0x0b>;
> clocks = <&clks 55>;
> dmas = <&ipu 14>;
> dma-names = "tx";
> display = <&cmo_qvga>;
> };
>
> The issue was that exporting the "dma ipu driver" was not a good idea.
> I was told to instead make bindings that looks very similar to the ipuv3
> driver[1]
> So at the end that gave something like that:
>
> cmo_qvga: display at di0 {
> compatible = "fsl,mx3-parallel-display";
> regulator-name = "lcd";
> lcd-supply = <®_lcd_3v3>;
> model = "CMO-QVGA";
> display-timings {
> qvga_timings: 320x240 {
> hactive = <320>;
> vactive = <240>;
> [...]
> };
> };
>
> ipu: ipu at 53fc0000 {
> compatible = "fsl,imx35-ipu";
> reg = <0x53fc0000 0x4000>;
> clocks = <&clks 55>;
> display = <&cmo_qvga>;
> };
>
> So here fsl,imx35-ipu is binded to the mx3fb driver.
> But the mx3fb driver still need to use the dma-ipu driver somehow.
> That's why the dma-ipu driver is handled behind the scenes, that way
> it's not exported to the device tree bindings.
>
> Now, since the mx3fb driver is binded to the "fsl,imx35-ipu" compatible,
> if I would do a "mx3fbi->reg_lcd = devm_regulator_get(dev, "lcd");",
> that would then lookup for the regulator in the mx3fb node
> (The last "ipu at 53fc0000" here).
>
> Instead the regulator can be found in the display node,
> which has no driver associated with it.
>
> In the case of the ipuv3, the parallel display driver is associated
> with the display at di0 node, so the device matches with the device tree
> node directly.
>
> References:
> -----------
> [1] The ipuv3 driver is in drivers/staging/imx-drm/
> [2] the dma ipu driver is in drivers/dma/ipu/
>
---
More information about the linux-arm-kernel
mailing list