From: Sui Jingfeng <15330273260@189.cn>
To: Jiaxun Yang <jiaxun.yang@flygoat.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
Roland Scheidegger <sroland@vmware.com>,
Zack Rusin <zackr@vmware.com>,
Christian Gmeiner <christian.gmeiner@gmail.com>,
David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
Rob Herring <robh+dt@kernel.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Dan Carpenter <dan.carpenter@oracle.com>,
Krzysztof Kozlowski <krzk@kernel.org>,
Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>,
Sam Ravnborg <sam@ravnborg.org>,
"David S . Miller" <davem@davemloft.net>,
Lucas Stach <l.stach@pengutronix.de>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Ilia Mirkin <imirkin@alum.mit.edu>,
Qing Zhang <zhangqing@loongson.cn>,
suijingfeng <suijingfeng@loongson.cn>
Cc: linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v12 3/6] dt-bindings: display: Add Loongson display controller
Date: Mon, 28 Mar 2022 09:52:30 +0800 [thread overview]
Message-ID: <30b8ee6e-d890-a76a-96fd-080042af1d7a@189.cn> (raw)
In-Reply-To: <169412ca-9167-b214-d613-4fe0e76ad36a@flygoat.com>
On 2022/3/27 20:54, Jiaxun Yang wrote:
>
>
> 在 2022/3/27 12:38, Sui Jingfeng 写道:
>> Add DT bindings and simple usages for Loongson display controller
>> found in LS7A1000 bridges chip and LS2k1000 SoC.
>>
>> Signed-off-by: Sui Jingfeng <15330273260@189.cn>
> [...]
>> +
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + bus {
>> +
>> + #address-cells = <3>;
>> + #size-cells = <2>;
>> + #interrupt-cells = <2>;
>> +
>> + display-controller@6,1 {
>> + compatible = "loongson,ls7a1000-dc";
>> + reg = <0x3100 0x0 0x0 0x0 0x0>;
>> + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
>> +
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + i2c@6 {
>> + compatible = "loongson,gpio-i2c";
>> + reg = <0x00001650 0x00000020>;
> Hi Jingfeng,
>
> Thanks for your patch.
>
> Just curious about what is this "reg" for?
Hi, Jiaxun
Thanks for you take valuable time to review my patch.
Without it make dt_binding_check generate warnings:
Documentation/devicetree/bindings/display/loongson/loongson,display-controller.example.dts:65.23-73.19:
Warning (unit_address_vs_reg):
/example-1/bus/display-controller@6,1/i2c@6: node has a unit name, but
no reg or ranges property
reg are the control register offset and size of the dedicate GPIO, they
are not get used by the driver currently,
put in there just for silence the warning .
>> + loongson,nr = <6>;
> Why nr start from 6?
Bus number greater than 6 is safe because ls7a1000 bridge have 6 hardware I2C controller integrated. but
the driver for it is not upstream yet. To avoid potential conflict with the bus number of the hardware I2C driver.
In the future, if someone contribute the hardware I2C driver to upstream,
you don't need change it. Let me give you an example to show what it will be:
aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
i2c6 = &i2c6;
i2c7 = &i2c7;
};
i2c0: i2c@10090000 {
compatible = "loongson,ls-i2c";
reg = <0x10090000 0x8>;
interrupts = <73>;
interrupt-parent = <&platic>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c1: i2c@10090100 {
compatible = "loongson,ls-i2c";
reg = <0x10090100 0x8>;
interrupts = <73>;
interrupt-parent = <&platic>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c2: i2c@10090200 {
compatible = "loongson,ls-i2c";
reg = <0x10090200 0x8>;
interrupts = <73>;
interrupt-parent = <&platic>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c3: i2c@10090300 {
compatible = "loongson,ls-i2c";
reg = <0x10090300 0x8>;
interrupts = <73>;
interrupt-parent = <&platic>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c4: i2c@10090400 {
compatible = "loongson,ls-i2c";
reg = <0x10090400 0x8>;
interrupts = <73>;
interrupt-parent = <&platic>;
#address-cells = <1>;
#size-cells = <0>;
};
i2c5: i2c@10090500 {
compatible = "loongson,ls-i2c";
reg = <0x10090500 0x8>;
interrupts = <73>;
interrupt-parent = <&platic>;
#address-cells = <1>;
#size-cells = <0>;
};
> The approach you are handling I2C seems to be wired..
>
It is not wired, you can change it to 0 or 1 it you like currently,
you can even remove loongson,nr = <6> and loongson,nr = <7>,
then the i2c core driver will automatically allocate one for you.
It is very flexible actually.
> Actually you can reference how network subsystem is handling
> MDIO controller built-in into Ethernet controller [1] in this case. It is
> basically the same problem.
>
> [1]:
> https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>
> Thanks.
> - Jiaxun
>
>> + loongson,sda = <0>;
>> + loongson,scl = <1>;
>> + loongson,udelay = <5>;
>> + loongson,timeout = <2200>;
>> + };
>> +
>> + i2c@7 {
>> + compatible = "loongson,gpio-i2c";
>> + reg = <0x00001650 0x00000020>;
>> + loongson,nr = <7>;
>> + loongson,sda = <2>;
>> + loongson,scl = <3>;
>> + loongson,udelay = <5>;
>> + loongson,timeout = <2200>;
>> + };
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + port@0 {
>> + reg = <0>;
>> + endpoint {
>> + remote-endpoint = <&vga_encoder_in>;
>> + };
>> + };
>> +
>> + port@1 {
>> + reg = <1>;
>> + endpoint {
>> + remote-endpoint = <&dvi_encoder_in>;
>> + };
>> + };
>> + };
>> + };
>> + };
>> +
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + bus {
>> +
>> + #address-cells = <3>;
>> + #size-cells = <2>;
>> + #interrupt-cells = <2>;
>> +
>> + display-controller@6,0 {
>> + compatible = "loongson,ls2k1000-dc";
>> + reg = <0x3100 0x0 0x0 0x0 0x0>;
>> + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + port@0 {
>> + reg = <0>;
>> + endpoint {
>> + remote-endpoint = <&panel_in>;
>> + };
>> + };
>> +
>> + port@1 {
>> + reg = <1>;
>> + endpoint {
>> + remote-endpoint = <&hdmi_encoder_in>;
>> + };
>> + };
>> + };
>> + };
>> + };
>> +...
>
next prev parent reply other threads:[~2022-03-28 1:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-27 11:38 [PATCH v12 0/6] drm/loongson: add drm driver for loongson display controller Sui Jingfeng
2022-03-27 11:38 ` [PATCH v12 1/6] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng
2022-03-27 11:38 ` [PATCH v12 2/6] MIPS: Loongson64: introduce board specific dts and add model property Sui Jingfeng
2022-03-27 11:38 ` [PATCH v12 3/6] dt-bindings: display: Add Loongson display controller Sui Jingfeng
2022-03-27 12:54 ` Jiaxun Yang
2022-03-28 1:52 ` Sui Jingfeng [this message]
2022-03-27 14:02 ` Rob Herring
2022-03-28 2:24 ` Sui Jingfeng
2022-03-27 11:38 ` [PATCH v12 4/6] MIPS: Loongson64: defconfig: enable display bridge drivers Sui Jingfeng
2022-03-27 11:38 ` [PATCH v12 6/6] MAINTAINERS: add maintainers for DRM LSDC driver Sui Jingfeng
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=30b8ee6e-d890-a76a-96fd-080042af1d7a@189.cn \
--to=15330273260@189.cn \
--cc=airlied@linux.ie \
--cc=andrey.zhizhikin@leica-geosystems.com \
--cc=christian.gmeiner@gmail.com \
--cc=dan.carpenter@oracle.com \
--cc=daniel@ffwll.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=imirkin@alum.mit.edu \
--cc=jiaxun.yang@flygoat.com \
--cc=krzk@kernel.org \
--cc=l.stach@pengutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sam@ravnborg.org \
--cc=sroland@vmware.com \
--cc=suijingfeng@loongson.cn \
--cc=tsbogend@alpha.franken.de \
--cc=tzimmermann@suse.de \
--cc=zackr@vmware.com \
--cc=zhangqing@loongson.cn \
/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