Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp5632418pxb; Sun, 7 Nov 2021 16:50:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJyIAhRGED3sH//vo0bM9YEbKAVXWx9wcyUX2bXMqZBMMvstpWaHom3B+uwrr54+ejU7zTPM X-Received: by 2002:a17:906:4452:: with SMTP id i18mr89886698ejp.374.1636332612478; Sun, 07 Nov 2021 16:50:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636332612; cv=none; d=google.com; s=arc-20160816; b=vSNxG1HUHxINfuhG6k2d/eVGEzbDuH9ZmsAdP3BUTl3NMQOIzWLEIL8B7PnQyyTZ34 4dMjH9TTo+TeKf+L4y+jbPqEbA3H9mLBDkJ13wxcMjTGZzBWfQrUcSkDkCNEmS11VxVt ik+G6XJpju+HBniNHAaTfGj3C5d3+u/pmtC2kyMR0X3rWcFMHrJWwdYfiBmnTsFk52TM clWdh44PsxLk1xW0WRa1ZtdcN6M/mlEYjLpxtUAaUeAjelhd+D2MCdg6CSwDUW1wCSkM 6OQq7nDNRmC2ouFTd0bb1vmAxpP3Zm4rDLm/YvzhH+X7LHGqjM/enCUc+s+qrKyEUVv5 abfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:cc:to:subject:from:date; bh=kJmJN893Vzfs65k3fWvu1TlTJLoTPXwGAfRGPZ/FZ18=; b=FzTpIFKSYLd737Du8aQ5ZcJHvdRdDvh6H2mLdc2D48DUYmCiH4tcvqV8et7wCz83Md iylvRWiFpIukzHt3shZTsEKvdfjTDI7CW3CqGlnHzfiOoUg8z7O5h0RcWJoIhzgCEZch e7ECD0gQQIxJ9Y7quyphMAE6FYCDO+xeiGdBCL7y6BUas7RisT7NsNW75D/+dwXb54pV 6J5jyNZv5oK8jhqCq/lhGPZBDK1uTFNfRbeJiPZFl39MgWM4U7Uo5dsHRV4xbGe6SR0k +uMXZz3TaV+g8piwdUxQziV37fhqO9vWx5Qy5MpHgtGhDFhETHyq+UI3Y5BambFHpDPQ LTpw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dr6si7396749ejc.567.2021.11.07.16.49.49; Sun, 07 Nov 2021 16:50:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234715AbhKGTIi convert rfc822-to-8bit (ORCPT + 99 others); Sun, 7 Nov 2021 14:08:38 -0500 Received: from aposti.net ([89.234.176.197]:54376 "EHLO aposti.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229990AbhKGTIh (ORCPT ); Sun, 7 Nov 2021 14:08:37 -0500 Date: Sun, 07 Nov 2021 19:05:35 +0000 From: Paul Cercueil Subject: Re: [PATCH v5 5/7] MIPS: DTS: jz4780: Account for Synopsys HDMI driver and LCD controllers To: "H. Nikolaus Schaller" Cc: Paul Boddie , Rob Herring , Mark Rutland , Thomas Bogendoerfer , Geert Uytterhoeven , Kees Cook , "Eric W. Biederman" , Miquel Raynal , David Airlie , Daniel Vetter , Neil Armstrong , Robert Foss , Laurent Pinchart , Jernej Skrabec , Ezequiel Garcia , Harry Wentland , Sam Ravnborg , Maxime Ripard , Hans Verkuil , Liam Girdwood , Mark Brown , OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS , linux-mips , linux-kernel , Discussions about the Letux Kernel , Jon as Karlman , dri-devel Message-Id: In-Reply-To: <95D1DE70-DDF4-419B-8F0C-E9A6E0995D1F@goldelico.com> References: <3514743.EH6qe8WxYI@jason> <95D1DE70-DDF4-419B-8F0C-E9A6E0995D1F@goldelico.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Le dim., nov. 7 2021 at 14:45:37 +0100, H. Nikolaus Schaller a ?crit : > Hi Paul, > >> Am 05.10.2021 um 23:52 schrieb Paul Cercueil : >> >> Hi Paul, >> >> Le mar., oct. 5 2021 at 23:44:12 +0200, Paul Boddie >> a ?crit : >>> On Tuesday, 5 October 2021 22:50:12 CEST Paul Cercueil wrote: >>>> Hi Nikolaus & Paul, >>>> Le mar., oct. 5 2021 at 14:29:17 +0200, H. Nikolaus Schaller >>> a ?crit : >>>> > >>>> > diff --git a/arch/mips/boot/dts/ingenic/jz4780.dtsi >>>> > b/arch/mips/boot/dts/ingenic/jz4780.dtsi >>>> > index 9e34f433b9b5..c3c18a59c377 100644 >>>> > --- a/arch/mips/boot/dts/ingenic/jz4780.dtsi >>>> > +++ b/arch/mips/boot/dts/ingenic/jz4780.dtsi >>>> > @@ -424,6 +424,51 @@ i2c4: i2c@10054000 { >>>> > >>>> > status = "disabled"; >>>> > >>>> > }; >>>> > >>>> > + hdmi: hdmi@10180000 { >>>> > + compatible = "ingenic,jz4780-dw-hdmi"; >>>> > + reg = <0x10180000 0x8000>; >>>> > + reg-io-width = <4>; >>>> > + >>>> > + clocks = <&cgu JZ4780_CLK_AHB0>, <&cgu JZ4780_CLK_HDMI>; >>>> > + clock-names = "iahb", "isfr"; >>>> > + >>>> > + assigned-clocks = <&cgu JZ4780_CLK_HDMI>; >>>> > + assigned-clock-rates = <27000000>; >>>> Any reason why this is set to 27 MHz? Is it even required? >>>> Because with >>>> the current ci20.dts, it won't be clocked at anything but 48 MHz. >>> EXCLK will be 48MHz, but the aim is to set the HDMI peripheral >>> clock to 27MHz, >>> which is supposedly required. I vaguely recall a conversation >>> about whether we >>> were doing this right, but I don't recall any conclusion. >> >> But right now your HDMI clock is 48 MHz and HDMI works. > > Is it? How did you find out? > > And have you tried to remove assigned-clocks from jz4780.dtsi? > > 1. I read back: > > root@letux:~# cat /sys/kernel/debug/clk/hdmi/clk_rate > 26909090 > root@letux:~# > > So for me it seems to be running at ~27 MHz. > > 2. If I remove the assigned-clocks or assigned-clock-rates from DT > the boot process hangs shortly after initializing drm. > > 3. If I set assigned-clock-rates = <48000000>, HDMI also works. > > I get it read back from /sys/kernel/debug/clk/hdmi/clk_rate > of 46736842. > > 4. Conclusions: > * assigned-clocks are required > * it does not matter if 27 or 48 MHz > * I have no idea which value is more correct > * so I'd stay on the safe side of 27 MHz > > 5. But despite that found, please look into the programming > manual section 18.1.2.16. There is an > > "Import Note: The clock must be between 18M and 27M, it occurs > fatal error if exceeding the range. " Ok, that's the important information that was missing. So 27 MHz is OK. > 6. Therefore I think it *may* work overclocked with 48MHz > but is not guaranteed or reliable above 27 MHz. > > So everything is ok here. One thing though - the "assigned-clocks" and "assigned-clock-rates", while it works here, should be moved to the CGU node, to respect the YAML schemas. Cheers, -Paul > >> >>>> > + >>>> > + interrupt-parent = <&intc>; >>>> > + interrupts = <3>; >>>> > + >>>> > + /* ddc-i2c-bus = <&i2c4>; */ >>>> > + >>>> > + status = "disabled"; >>>> > + }; >>>> > + >>>> > + lcdc0: lcdc0@13050000 { >>>> > + compatible = "ingenic,jz4780-lcd"; >>>> > + reg = <0x13050000 0x1800>; >>>> > + >>>> > + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; >>>> > + clock-names = "lcd", "lcd_pclk"; >>>> > + >>>> > + interrupt-parent = <&intc>; >>>> > + interrupts = <31>; >>>> > + >>>> > + status = "disabled"; >>>> I think you can keep lcdc0 enabled by default (not lcdc1 though), >>>> since >>>> it is highly likely that you'd want that. >>> As far as I know, the clock gating for the LCD controllers acts >>> like a series >>> circuit, meaning that they both need to be enabled. Some testing >>> seemed to >>> confirm this. Indeed, I seem to remember only enabling one clock >>> and not >>> getting any output until I figured this weird arrangement out. >> >> I'm not talking about clocks though, but about LCDC0 and LCDC1. > > Ah, you mean status = "okay"; vs. status = "disabled"; > > Well, IMHO it is common practise to keep SoC subsystems disabled by > default (to save power and boot time) unless a board specific DTS > explicitly > requests the SoC feature to be active. See for example mmc0, mmc1 or > i2c0..i2c4. > > All these are disabled in jz4780.dtsi and partially enabled in > ci20.dts. > > Why should lcdc0 be an exception in jz4780.dtsi? > > BR and thanks, > Nikolaus >