From: Logan B <mrbojangles3@gmail.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: robh+dt@kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.org, jon@solid-run.com
Subject: Re: [PATCH] Add support for SolidRun Clearfog CN9130 base,pro.
Date: Fri, 10 Feb 2023 09:21:21 -0500 [thread overview]
Message-ID: <CAFR4CiuYqp5k6gcjmt8JV0a=LeNh5hTyVUEaa1HshYkYnS_rXQ@mail.gmail.com> (raw)
In-Reply-To: <ef8eec8a-2ce5-ad1a-afcf-86ee78231017@kernel.org>
On Fri, Feb 10, 2023 at 7:32 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
> Please use scripts/get_maintainers.pl to get a list of necessary people
> and lists to CC. It might happen, that command when run on an older
> kernel, gives you outdated entries. Therefore please be sure you base
> your patches on recent Linux kernel.
>
> There is no one to apply your patch as you missed several people.
>
> On 13/01/2023 20:28, Logan Blyth wrote:
>
> Thank you for your patch. There is something to discuss/improve.
>
> 1. Use subject prefixes matching the subsystem (which you can get for
> example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
> your patch is touching).
>
> 2. Subject: no full stop.
>
> > From: Logan Blyth <mrbojangles3@gmail.com>
> >
>
> 3. Missing commit msg. Please describe here hardware.
>
>
> > Signed-off-by: Logan Blyth <mrbojangles3@gmail.com>
> > ---
> > arch/arm64/boot/dts/marvell/Makefile | 2 +
> > .../arm64/boot/dts/marvell/cn9130-cf-base.dts | 367 +++++++++++++++
> > arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts | 428 ++++++++++++++++++
>
> 4. As I wrote on IRC, missing bindings patch (first in the series).
>
> > 3 files changed, 797 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/marvell/cn9130-cf-base.dts
> > create mode 100644 arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts
> >
> > diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
> > index 058237681fe5..6b3b4c4856c1 100644
> > --- a/arch/arm64/boot/dts/marvell/Makefile
> > +++ b/arch/arm64/boot/dts/marvell/Makefile
> > @@ -25,4 +25,6 @@ dtb-$(CONFIG_ARCH_MVEBU) += cn9132-db.dtb
> > dtb-$(CONFIG_ARCH_MVEBU) += cn9132-db-B.dtb
> > dtb-$(CONFIG_ARCH_MVEBU) += cn9130-crb-A.dtb
> > dtb-$(CONFIG_ARCH_MVEBU) += cn9130-crb-B.dtb
> > +dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-pro.dtb
> > +dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-base.dtb
> > dtb-$(CONFIG_ARCH_MVEBU) += ac5-98dx35xx-rd.dtb
> > diff --git a/arch/arm64/boot/dts/marvell/cn9130-cf-base.dts b/arch/arm64/boot/dts/marvell/cn9130-cf-base.dts
> > new file mode 100644
> > index 000000000000..f258a539e378
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/marvell/cn9130-cf-base.dts
> > @@ -0,0 +1,367 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +/*
> > + * Copyright SolidRun Ltd.
> > + *
> > + * Device tree for the CN9130 based SOM.
>
> 5. Drop weird space/indent in the middle.
>
> > + */
> > +
> > +#include "cn9130.dtsi"
> > +
> > +#include <dt-bindings/gpio/gpio.h>
> > +
> > +/ {
> > + model = "SolidRun CN9130 based SOM Clearfog Base";
>
> 6. Missing compatible.
>
> > +
> > + chosen {
> > + stdout-path = "serial0:115200n8";
> > + };
> > +
> > + aliases {
> > + gpio1 = &cp0_gpio1;
> > + gpio2 = &cp0_gpio2;
> > + i2c0 = &cp0_i2c0;
> > + ethernet0 = &cp0_eth0;
> > + ethernet1 = &cp0_eth1;
> > + ethernet2 = &cp0_eth2;
> > + spi1 = &cp0_spi0;
> > + spi2 = &cp0_spi1;
> > + };
> > +
> > + memory@00000000 {
> > + device_type = "memory";
> > + reg = <0x0 0x0 0x0 0x80000000>;
> > + };
>
> Missing blank line.
>
> > + v_3_3: regulator-3-3v {
> > + compatible = "regulator-fixed";
> > + regulator-name = "v_3_3";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-always-on;
> > + status = "okay";
>
> Drop, it's by default okay.
>
> > + };
>
> Missing blank line.
>
> > + ap0_reg_sd_vccq: ap0_sd_vccq@0 {
>
> Do not use undercores in node names.
>
> Node names should contain generic prefix or suffix. In your case -
> "regulator-" prefix as your node above.
>
>
> > + compatible = "regulator-gpio";
> > + regulator-name = "ap0_sd_vccq";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + states = <1800000 0x1 3300000 0x0>;
> > + };
> > +
> > + cp0_reg_usb3_vbus0: cp0_usb3_vbus@0 {
> > + compatible = "regulator-fixed";
> > + regulator-name = "cp0-xhci0-vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + enable-active-high;
>
> That's not correct property if you do not have GPIO... where is GPIO?
>
> > + };
> > +
> > + cp0_usb3_0_phy0: cp0_usb3_phy@0 {
>
> Multiple issues here...
>
> Node names should be generic, so "phy".
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
> @0 points you have reg=0, where is it? Why 0?
>
> All problems above are also in other places.
>
>
> > + compatible = "usb-nop-xceiv";
> > + vcc-supply = <&cp0_reg_usb3_vbus0>;
> > + };
> > +
> > + cp0_reg_usb3_vbus1: cp0_usb3_vbus@1 {
> > + compatible = "regulator-fixed";
> > + regulator-name = "cp0-xhci1-vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + enable-active-high;
> > + };
> > +
> > + cp0_usb3_0_phy1: cp0_usb3_phy@1 {
> > + compatible = "usb-nop-xceiv";
> > + vcc-supply = <&cp0_reg_usb3_vbus1>;
> > + };
> > +
> > + cp0_reg_sd_vccq: cp0_sd_vccq@0 {
> > + compatible = "regulator-gpio";
> > + regulator-name = "cp0_sd_vccq";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > + states = <1800000 0x1
> > + 3300000 0x0>;
> > + };
> > +
> > + cp0_reg_sd_vcc: cp0_sd_vcc@0 {
> > + compatible = "regulator-fixed";
> > + regulator-name = "cp0_sd_vcc";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + enable-active-high;
> > + regulator-always-on;
> > + };
> > +
> > + cp0_sfp_eth0: sfp-eth@0 {
> > + compatible = "sff,sfp";
> > + i2c-bus = <&cp0_i2c1>;
> > + los-gpio = <&expander0 12 GPIO_ACTIVE_HIGH>;
> > + mod-def0-gpio = <&expander0 15 GPIO_ACTIVE_LOW>;
> > + tx-disable-gpio = <&expander0 14 GPIO_ACTIVE_HIGH>;
> > + tx-fault-gpio = <&expander0 13 GPIO_ACTIVE_HIGH>;
> > + maximum-power-milliwatt = <2000>;
>
> Be sure you run `make dtbs_check` (see
> Documentation/devicetree/bindings/writing-schema.rst for instructions).
>
>
> > + };
> > +};
> > +
> > +&uart0 {
>
> Overrides are usually ordered by name. Isn't the case for Marvell?
>
> > + status = "okay";
> > +};
> > +
> > +// on-board eMMC
>
> Comment style /* */
>
> > +&ap_sdhci0 {
> > + pinctrl-names = "default";
> > + bus-width = <8>;
> > + vqmmc-supply = <&ap0_reg_sd_vccq>;
> > + status = "okay";
> > +};
> > +
> > +&cp0_crypto {
> > + status = "disabled";
> > +};
> > +
> > +&cp0_ethernet {
> > + status = "okay";
> > +};
> > +
> > +&cp0_gpio1 {
> > + status = "okay";
> > +};
> > +
> > +&cp0_gpio2 {
> > + status = "okay";
> > +};
> > +
> > +// EEPROM
> > +&cp0_i2c0 {
> > + status = "okay";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&cp0_i2c0_pins>;
> > + clock-frequency = <100000>;
> > +
> > + /*
> > + * PCA9655 GPIO expander, up to 1MHz clock.
> > + * 0-CON3 CLKREQ#
> > + * 1-CON3 PERST#
> > + * 2-CON2 PERST#
> > + * 3-CON3 W_DISABLE
> > + * 4-CON2 CLKREQ#
> > + * 5-USB3 overcurrent
> > + * 6-USB3 power
> > + * 7-CON2 W_DISABLE
> > + * 8-JP4 P1
> > + * 9-JP4 P4
> > + * 10-JP4 P5
> > + * 11-m.2 DEVSLP
> > + * 12-SFP_LOS
> > + * 13-SFP_TX_FAULT
> > + * 14-SFP_TX_DISABLE
> > + * 15-SFP_MOD_DEF0
> > + */
> > + expander0: gpio-expander@20 {
> > + /*
> > + * This is how it should be:
> > + * compatible = "onnn,pca9655", "nxp,pca9555";
> > + * but you can't do this because of the way I2C works.
>
> ??? Why?
>
> > + */
> > + compatible = "nxp,pca9555";
> > + gpio-controller;
> > + #gpio-cells = <2>;
> > + reg = <0x20>;
>
> reg is usually second property, after compatible
>
> > +
> > + pcie1_0_clkreq {
>
> No underscores in node names. Use hyphens/dashes.
>
> > + gpio-hog;
> > + gpios = <0 GPIO_ACTIVE_LOW>;
> > + input;
> > + line-name = "pcie1.0-clkreq";
> > + };
> > + pcie1_0_w_disable {
> > + gpio-hog;
> > + gpios = <3 GPIO_ACTIVE_LOW>;
> > + output-low;
> > + line-name = "pcie1.0-w-disable";
> > + };
> > + usb3_ilimit {
> > + gpio-hog;
> > + gpios = <5 GPIO_ACTIVE_LOW>;
> > + input;
> > + line-name = "usb3-current-limit";
> > + };
> > + usb3_power {
> > + gpio-hog;
> > + gpios = <6 GPIO_ACTIVE_HIGH>;
> > + output-high;
> > + line-name = "usb3-power";
> > + };
> > + m2_devslp {
> > + gpio-hog;
> > + gpios = <11 GPIO_ACTIVE_HIGH>;
> > + output-low;
> > + line-name = "m.2 devslp";
> > + };
> > + };
> > +
> > + // The MCP3021 supports standard and fast modes
> > + mikrobus_adc: mcp3021@4c {
>
> Node names should be generic.
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
>
> > + compatible = "microchip,mcp3021";
> > + reg = <0x4c>;
> > + };
> > +
> > + // EEPROM on the SOM
> > + eeprom@53 {
> > + compatible = "atmel,24c02";
> > + reg = <0x53>;
> > + pagesize = <16>;
> > + };
> > +};
> > +
> > +// I2C Master
> > +&cp0_i2c1 {
> > + status = "okay";
> > + clock-frequency = <100000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&cp0_i2c1_pins>;
> > +};
> > +
> > +&cp0_gpio1 {
> > + // Release switch reset
> > + phy_reset {
>
> No underscores in node names
>
> All the comments apply everywhere else. I'll stop review at this place.
>
> Best regards,
> Krzysztof
>
Thank you for your comments and instructions. I will use the scripts
provided in the kernel and make the changes you have indicated.
--
Logan
prev parent reply other threads:[~2023-02-10 14:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-13 19:28 Add Support for SolidRun Clearfog CN9130 Logan Blyth
2023-01-13 19:28 ` [PATCH] Add support for SolidRun Clearfog CN9130 base,pro Logan Blyth
2023-02-10 12:32 ` Krzysztof Kozlowski
2023-02-10 14:21 ` Logan B [this message]
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='CAFR4CiuYqp5k6gcjmt8JV0a=LeNh5hTyVUEaa1HshYkYnS_rXQ@mail.gmail.com' \
--to=mrbojangles3@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=jon@solid-run.com \
--cc=krzk@kernel.org \
--cc=linux-kernel@vger.org \
--cc=mr.bo.jangles3@gmail.com \
--cc=robh+dt@kernel.org \
/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).