devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: <Dharma.B@microchip.com>
To: <Conor.Dooley@microchip.com>
Cc: <conor@kernel.org>, <sam@ravnborg.org>, <bbrezillon@kernel.org>,
	<maarten.lankhorst@linux.intel.com>, <mripard@kernel.org>,
	<tzimmermann@suse.de>, <airlied@gmail.com>, <daniel@ffwll.ch>,
	<robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>,
	<conor+dt@kernel.org>, <Nicolas.Ferre@microchip.com>,
	<alexandre.belloni@bootlin.com>, <claudiu.beznea@tuxon.dev>,
	<dri-devel@lists.freedesktop.org>, <devicetree@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <lee@kernel.org>,
	<thierry.reding@gmail.com>, <u.kleine-koenig@pengutronix.de>,
	<linux-pwm@vger.kernel.org>, <Linux4Microchip@microchip.com>
Subject: Re: [PATCH v3 3/3] dt-bindings: mfd: atmel,hlcdc: Convert to DT schema format
Date: Fri, 26 Jan 2024 14:22:42 +0000	[thread overview]
Message-ID: <51da296d-a8a9-417a-8875-3b5e866a89a3@microchip.com> (raw)
In-Reply-To: <20240125-proved-passage-7fa128f828db@wendy>

Hi Conor,

On 25/01/24 1:57 pm, Conor Dooley - M52691 wrote:
> 
>>> If the lvds pll is an input to the hlcdc, you need to add it here.
>>>   From your description earlier it does sound like it is an input to
>>> the hlcdc, but now you are claiming that it is not.
>>
>> The LVDS PLL serves as an input to both the LCDC and LVDSC
> 
> Then it should be an input to both the LCDC and LVDSC in the devicetree.

For the LVDSC to operate, the presence of the LVDS PLL is crucial. However, in the case of the LCDC, LVDS PLL is not essential for its operation unless LVDS interface is used and when it is used lvds driver will take care of preparing and enabling the LVDS PLL.

Consequently, it seems that there might not be any significant actions we can take within the LCD driver regarding the LVDS PLL.

If there are no intentions to utilize it within the driver, is it necessary to explicitly designate it as an input in the device tree?

If yes, I will update the bindings with optional LVDS PLL clock.

clock-names:
  items:
    - const: periph_clk
    - const: sys_clk
    - const: slow_clk
    - const: lvds_pll  # Optional clock


> 
>> with the
>> LVDS_PLL multiplied by 7 for the Pixel clock to the LVDS PHY, and
> 
> Are you sure? The diagram doesn't show a multiplier, the 7x comment
> there seems to be showing relations?

Sorry, 
LVDS PLL = (PCK * 7) goes to LVDSC PHY
PCK = (LVDS PLL / 7) goes to LCDC

> 
>> LVDS_PLL divided by 7 for the Pixel clock to the LCDC.
> 
>> I am inclined to believe that appropriately configuring and enabling it
>> in the LVDS driver would be the appropriate course of action.
> 
> We're talking about bindings here, not drivers, but I would imagine that
> if two peripherals are using the same clock then both of them should be
> getting a reference to and enabling that clock so that the clock
> framework can correctly track the users.
> 
>>> I don't know your hardware, so I have no idea which of the two is
>>> correct, but it sounds like the former. Without digging into how this
>>> works my assumption about the hardware here looks like is that the lvds
>>> controller is a clock provider,
>>
>> It's a PLL clock from PMC.
>>
>>> and that the lvds controller's clock is
>>> an optional input for the hlcdc.
>>
>> Again it's a PLL clock from PMC.
>>
>> Please refer Section 39.3
>> https://ww1.microchip.com/downloads/aemDocuments/documents/MPU32/ProductDocuments/DataSheets/SAM9X7-Series-Data-Sheet-DS60001813.pdf
> 
> It is not the same exact clock as you pointed out above though, so the
> by 7 divider should be modelled.

Modelled in mfd binding? If possible, could you please provide an example for better clarity? Thank you.

> 
>>> Can you please explain what provides the lvds pll clock and show an
>>> example of how you think the devictree would look with "the lvds pll in
>>> the lvds dt node"?
>>
>> Sure, Please see the below example
>>
>> The typical lvds node will look like
>>
>>                   lvds_controller: lvds-controller@f8060000 {
>>                           compatible = "microchip,sam9x7-lvds";
>>                           reg = <0xf8060000 0x100>;
>>                           interrupts = <56 IRQ_TYPE_LEVEL_HIGH 0>;
>>                           clocks = <&pmc PMC_TYPE_PERIPHERAL 56>, <&pmc
>> PMC_TYPE_CORE PMC_LVDSPLL>;
>>                           clock-names = "pclk", "lvds_pll_clk";
>>                           status = "disabled";
>>                   };
> 
> In isolation, this looks fine.
> 
> Cheers,
> Conor.
-- 
With Best Regards,
Dharma B.


  reply	other threads:[~2024-01-26 14:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-18  9:26 [PATCH v3 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema Dharma Balasubiramani
2024-01-18  9:26 ` [PATCH v3 1/3] dt-bindings: display: convert Atmel's HLCDC to DT schema Dharma Balasubiramani
2024-01-18 15:31   ` Conor Dooley
2024-01-19  2:51     ` Dharma.B
2024-01-18  9:26 ` [PATCH v3 2/3] dt-bindings: atmel,hlcdc: convert pwm bindings to json-schema Dharma Balasubiramani
2024-01-18 10:16   ` Uwe Kleine-König
2024-01-20 10:03     ` Uwe Kleine-König
2024-01-19 19:45   ` Rob Herring
2024-01-24  9:58     ` Dharma.B
2024-01-18  9:26 ` [PATCH v3 3/3] dt-bindings: mfd: atmel,hlcdc: Convert to DT schema format Dharma Balasubiramani
2024-01-18 15:40   ` Conor Dooley
2024-01-19  3:32     ` Dharma.B
2024-01-19 12:03       ` Conor Dooley
2024-01-22  3:38         ` Dharma.B
2024-01-22  9:16           ` Conor Dooley
2024-01-24  5:18             ` Dharma.B
2024-01-24 16:39               ` Conor Dooley
2024-01-25  6:47                 ` Dharma.B
2024-01-25  8:27                   ` Conor Dooley
2024-01-26 14:22                     ` Dharma.B [this message]
2024-01-26 15:33                       ` Conor Dooley
2024-01-29  3:41                         ` Dharma.B
2024-01-29 17:14                           ` Conor Dooley
2024-01-18 19:30 ` [PATCH v3 0/3] Convert Microchip's HLCDC Text based DT bindings to JSON schema Sam Ravnborg
2024-01-19  8:41   ` Dharma.B
2024-01-19 21:33     ` Sam Ravnborg
2024-01-19 19:51   ` Rob Herring
2024-01-20 13:23     ` Sam Ravnborg
2024-01-22  3:52       ` Dharma.B
2024-01-22 16:02         ` Sam Ravnborg
2024-01-22 16:04         ` Sam Ravnborg
2024-01-24  8:55           ` Dharma.B

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51da296d-a8a9-417a-8875-3b5e866a89a3@microchip.com \
    --to=dharma.b@microchip.com \
    --cc=Conor.Dooley@microchip.com \
    --cc=Linux4Microchip@microchip.com \
    --cc=Nicolas.Ferre@microchip.com \
    --cc=airlied@gmail.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=bbrezillon@kernel.org \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=conor+dt@kernel.org \
    --cc=conor@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=thierry.reding@gmail.com \
    --cc=tzimmermann@suse.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).