From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kishon Vijay Abraham I Subject: Re: [RFC 0/2] exynos5250/hdmi: replace dummy hdmiphy clock with pmu reg control Date: Tue, 30 Jul 2013 10:37:38 +0530 Message-ID: <51F74A1A.7000608@ti.com> References: <1370935073-7475-1-git-send-email-rahul.sharma@samsung.com> <51B98908.8050403@samsung.com> <02c101ce6828$29ab0f20$7d012d60$%dae@samsung.com> <51B9C0ED.2040605@ti.com> <51BAB398.8090409@samsung.com> <51C04688.3090205@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: Sender: linux-samsung-soc-owner@vger.kernel.org To: Rahul Sharma Cc: sw0312.kim@samsung.com, Inki Dae , Sylwester Nawrocki , Rahul Sharma , linux-samsung-soc@vger.kernel.org, devicetree-discuss@lists.ozlabs.org, DRI mailing list , Kukjin Kim , Sean Paul , sunil joshi , Stephen Warren , grant.likely@linaro.org List-Id: devicetree@vger.kernel.org Hi, On Tuesday 30 July 2013 09:12 AM, Rahul Sharma wrote: >=20 >=20 > On Tue, Jun 18, 2013 at 5:07 PM, Kishon Vijay Abraham I > wrote: >=20 > Hi, >=20 > On Tuesday 18 June 2013 03:33 PM, Rahul Sharma wrote: > > Thanks all, > > > > On Fri, Jun 14, 2013 at 11:39 AM, =B1=E8=BD=C2=BF=EC > wrote: > >> Hello Kishon, > >> > >> On 2013=B3=E2 06=BF=F9 13=C0=CF 21:54, Kishon Vijay Abraham I = wrote: > >>> Hi, > >>> > >>> On Thursday 13 June 2013 04:51 PM, Inki Dae wrote: > >>>> > >>>> > >>>>> -----Original Message----- > >>>>> From: Sylwester Nawrocki [mailto:s.nawrocki@samsung.com > ] > >>>>> Sent: Thursday, June 13, 2013 5:56 PM > >>>>> To: Rahul Sharma > >>>>> Cc: Rahul Sharma; Inki Dae; linux-samsung-soc@vger.kernel.o= rg > ; > >>>>> devicetree- > >>>>> discuss@lists.ozlabs.org ;= DRI > mailing list; Kukjin Kim; Seung-Woo Kim; > >>>>> Sean Paul; sunil joshi; Kishon Vijay Abraham I; Stephen War= ren; > >>>>> grant.likely@linaro.org > >>>>> Subject: Re: [RFC 0/2] exynos5250/hdmi: replace dummy hdmip= hy clock with > >>>>> pmu reg control > >>>>> > >>>>> Hi, > >>>>> > >>>>> On 06/13/2013 06:26 AM, Rahul Sharma wrote: > >>>>>> Mr. Dae, > >>>>>> > >>>>>> Thanks for your valuable inputs. > >>>>>> > >>>>>> I posted it as RFC because, I also have received comments = to register > >>>>>> hdmiphy as a clock controller. As we always configure it f= or specific > >>>>>> frequency, hdmi-phy looks similar to a PLL. But it really = doesn't > >>>>>> belong to that class. Secondly prior to exynos5420, it was= a i2c > >>>>>> device. I am not sure we can register a I2C device as a cl= ock > >>>>>> controller. I wanted to discuss and explore this option he= re. > >>>>> > >>>>> Have you considered using the generic PHY framework for tho= se HDMI > >>>>> PHY devices [1] ? I guess we could add a dedicated group of= ops for > >>>>> video PHYs, similarly as is is done with struct v4l2_subdev= _ops. For > >>>>> configuring things like the carrier/pixel clock frequency o= r anything > >>>>> what's common across the video PHYs. > >>>>> > >>>>> Perhaps you could have a look and see if this framework wou= ld be > >>>>> useful for HDMI and possibly point out anything what might = be missing ? > >>>>> > >>>>> I'm not sure it it really solves the issues specific to the= Exynos > >>>>> HDMI but at least with a generic PHY driver the PHY module = would be > >>>>> separate from the PHY controller, as often same HDMI DPHY c= an be used > >>>>> with various types of a HDMI controller. So this would allo= w to not > >>>>> duplicate the HDMI PHY drivers in the long-term perspective= =2E > >>>> > >>>> Yeah, at least, it seems that we could use PHY module to con= trol PMU > >>>> register, HDMI_PHY_CONTROL. However, PHY module provides onl= y init/on/off > >>>> callbacks. As you may know, HDMIPHY needs i2c interfaces to = control > >>>> HDMIPHY > >>>> clock. So with PHY module, HDMIPHY driver could enable PMU m= ore > >>>> generically, > >>>> but also has to use existing i2c stuff to control HDMIPHY cl= ock. I had a > >>>> quick review to Generic PHY Framework[v6] but I didn't see t= hat the PHY > >>>> module could generically support more features such as i2c s= tuff. > >>> > >>> I don't think PHY framework needs to provide i2c interfaces t= o program > >>> certain configurations. Instead in one of the callbacks (init= /on/off) > >>> PHY driver can program whatever it wants using any of the int= erfaces it > >>> needs. IMO PHY framework should work independent of the inter= faces. > >> > >> In exnoys hdmi case, i2c interface is not the exact issue. In = exynos > >> hdmi, hdmiphy should send i2c configuration about video clock > >> information as the video mode information including resolution= , bit per > >> pixel, refresh rate passed from drm subsystem. So init/on/off = callbacks > >> of phy framework are not enough for exynos hdmiphy and it shou= ld have a > >> callback to set video mode. > >> > >> Do you have plan to add driver specific extend callback pointe= rs to phy > >> framework? > >> > >> Currently, hdmi directly calls phy operations, but Rahul's ano= ther patch > >> set, mentioned by Inki, divides hdmi and hdmiphy and hdmi and = hdmiphy is > >> connected with exynos hdmi own sub driver callback operations. > >> > >> IMHO, if phy framework can support extend callback feature, th= en this > >> own sub driver callbacks can be replaced with phy framework at= long term > >> view. > > > > Extended callbacks are always welcome. I can also use phy devic= e > > private data to pass on private ops like get_pixelclk and set_p= ixelclk. >=20 > I would recommend creating a wrapper to the existing PHY framewor= k > for HDMI PHY. That way, we can have other HDMI phys added > easily. We need to figure out all the ops that might be needed by= the > HDMI PHY to be added to the wrapper. > IMO extended callbacks can lead to abuse of the system and should= be > used only when absolutely necessary. >=20 > Thanks > Kishon >=20 >=20 > Thanks Kishon, >=20 > I have started working on this wrapper layer which is customized for = video phys. > As if now, adding set_dv_timing, get_dv_timing as the only additional= callbacks. > I will post the RFC patches. Idea of creating wrapper layer for different types of controller is sho= t down in the community [1] :-s [1] -> http://lists.infradead.org/pipermail/linux-arm-kernel/2013-July/= 181710.html Thanks Kishon