[PATCH v2 2/2] ARM: dts: Add bosch acc board

Fabio Estevam festevam at gmail.com
Thu Apr 21 13:42:34 PDT 2022


Hi Philip,

On Thu, Apr 21, 2022 at 9:26 AM Philip Oberfichtner <pro at denx.de> wrote:
>
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/leds/common.h>
> +#include "imx6q.dtsi"
> +
> +/ {
> +       model = "Bosch ACC";
> +       compatible = "bosch,imx6q-acc", "fsl,imx6q";
> +
> +       aliases {
> +               serial0 = &uart2;
> +               serial1 = &uart1;
> +

Unneeded blank line. Please remove it.

> +               i2c0 = &i2c1;
> +               i2c1 = &i2c2;
> +               i2c2 = &i2c3;
> +               /* eMMC is connected to USDHC interface 4, but shall get the name 0 */

Unneeded comment. Please remove it.

> +               mmc0 = &usdhc4;
> +               /* SC-Cards is connected to USDHC interface 2, but shall get the name 1 */

Ditto.

> +               mmc1 = &usdhc2;
> +       };
> +
> +       backlight {
> +               compatible = "pwm-backlight";
> +               /* The last value is the PWM period in nano-seconds!
> +                * -> 5 kHz = 200 µS = 200.000 ns
> +                */

This is not the correct style for multi-line comments.

It should be:

/*
 * bla bla
 * bla bla
 */

Actually, I think you could just remove these comments.

> +               pwms = <&pwm1 0 200000>;
> +               brightness-levels = <0 61 499 1706 4079 8022 13938 22237 33328 47623 65535>;
> +               num-interpolated-steps = <10>;
> +               default-brightness-level = <60>;
> +               power-supply = <&reg_lcd0_pwr>;
> +       };
> +
> +       refclk: refclk {
> +               compatible = "fixed-factor-clock";
> +               #clock-cells = <0>;
> +

Unnecessary blank line.

> +               clocks = <&clks IMX6QDL_CLK_CKO2>;
> +               clock-div = <1>;
> +               clock-mult = <1>;
> +               clock-output-names = "12mhz_refclk";

Ditto.

> +
> +       gpio-leds {
> +               compatible = "gpio-leds";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_reset_gpio_led>;
> +
> +               led-2 {
> +                       color = <LED_COLOR_ID_RED>;
> +                       gpios = <&gpio5 18 0>;

Better use GPIO label:

gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;

> +       memory at 10000000 {
> +               device_type = "memory";
> +               reg = <0x10000000 0x40000000>;
> +       };

Please put the memory node below the alias.

> +
> +       supply_5P0: regulator-0 {

Please check arch/arm/boot/dts/imx6qdl-sabresd.dtsi for a reference
on how to name the regulators.

> +       soc {
> +               aips1: bus at 2000000 {};

Why is this needed?

> +&audmux {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_audmux>;
> +       status = "okay";

Is this needed? I don't see audio support present on this board.

> +&fec {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_enet>;
> +       status = "okay";

Please move the status property as the last one.

No need for blank lines.
> +
> +       clocks = <&clks IMX6QDL_CLK_ENET>,
> +               <&clks IMX6QDL_CLK_ENET>,
> +               <&clks IMX6QDL_CLK_ENET>,
> +               <&clks IMX6QDL_CLK_ENET_REF>;
> +       clock-names = "ipg", "ahb", "ptp", "enet_out";
> +       phy-mode = "rmii";
> +       phy-supply = <&supply_sw4_3V3>;
> +       phy-handle = <&ethphy>;
> +
> +       mdio {
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               ethphy: ethernet-phy at 0 {
> +                       compatible = "ethernet-phy-ieee802.3-c22";
> +                       reg = <0>;
> +                       interrupt-parent = <&gpio1>;
> +                       interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
> +                       smsc,disable-energy-detect;
> +               };
> +       };
> +};

> +       lm75: sensor at 49 {
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_lm75>;
> +

Uneeded blank line.

> +       pmic: pmic at 8 {
> +               compatible = "fsl,pfuze100";
> +               reg = <0x08>;
> +
> +               regulators {
> +                       /*
> +                        * VDD_CORE is connected to SW1 ABC
> +                        * We need to define sw1ab and sw1c, but later it is controlled solely with
> +                        * sw1c and therefore only this is named "VDD_SOC".
> +                        * See PMIC datasheet Rev. 18, chapter 6.4.4.3.1: "The feedback and all
> +                        * other controls are accomplished by use of pin SW1CFB and SW1C control
> +                        * registers, respectively."
> +                        * Setting min and max according to SOC datasheet
> +                        */
> +                       pmic_sw1abc: sw1c {
> +                               regulator-name = "VDD_SOC (sw1abc)";
> +                               regulator-min-microvolt = <1275000>;
> +                               regulator-max-microvolt = <1500000>;
> +                               regulator-boot-on;
> +                               regulator-always-on;
> +                               regulator-ramp-delay = <6250>;
> +
> +                               default-voltage = <1300000>;

This is not a valid property.

> +
> +                       pmic_sw2: sw2 {
> +                               regulator-name = "VDD_ARM (sw2)";
> +                               regulator-min-microvolt = <1050000>;
> +                               regulator-max-microvolt = <1500000>;
> +                               regulator-boot-on;
> +                               regulator-always-on;
> +                               regulator-ramp-delay = <6250>;
> +

Unneeded blank line.

> +                               default-voltage = <1300000>;

Invalid property.

> +&i2c3 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_i2c3>;
> +       clock-frequency = <400000>;
> +       status = "okay";
> +
> +       exc3000: touchscreen at 2a {
> +               compatible = "eeti,exc3000";
> +               reg = <0x2a>;
> +
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pinctrl_ctouch>;
> +
> +               interrupt-parent = <&gpio4>;
> +               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
> +
> +               touchscreen-size-x = <4096>;
> +               touchscreen-size-y = <4096>;

Remove all the blank lines.

> +&iomuxc {

We usually put the iomuxc node as the last one.

> +       pinctrl_gpio_export_gpio_fixed_in: pinctrl-gpio-export-gpio-fixed-in-grp {

Not referenced anywhere.

> +               fsl,pins = <
> +                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x80000000      /* CLEAR ALL */
> +                       MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22        0x80000000      /* DIG_IN_1 */
> +                       MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23        0x80000000      /* DIG_IN_2 */
> +                       MX6QDL_PAD_SD3_CMD__GPIO7_IO02          0x80000000      /* PoE */
> +                       MX6QDL_PAD_SD3_CLK__GPIO7_IO03          0x80000000      /* PoE T2P */
> +               >;
> +       };
> +
> +       pinctrl_reset_gpio_led: pinctrl-reset-gpio-led-pin {

pinctrl_reset_gpio_led: pinctrl-reset-gpio-led-grp

> +               fsl,pins = <
> +                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18              0x80000000

Please avoid 0x80000000. Use the real pad setting instead.

> +               >;
> +       };
> +
> +       pinctrl_gpio_export_gpio_fixed_out: pinctrl-gpio-export-gpio-fixed-out-grp {

This is not called anywhere. Please check globally.

> +               fsl,pins = <
> +                       MX6QDL_PAD_CSI0_DAT6__GPIO5_IO24        0x0001B0B0      /*  DIG_OUT_1 */

0x1b0b0 for consistency. Please check globally.


> +       pinctrl_i2c2: i2c2grp {
> +               fsl,pins = <
> +                       MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b810
> +                       MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b810
> +                       /* NO SRE | 130 Ohm | SPEED LOW | Open Drain | PKE | PUE | 100k PU | HYS  */

No need for comment.

> +       pinctrl_i2c2_gpio: i2c2-gpiogrp {
> +               fsl,pins = <
> +                       MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x80000000

Avoid  0x80000000. Please check globally.

> +       lvds0: lvds-channel at 0 {
> +               fsl,data-mapping = "spwg";
> +               fsl,data-width = <24>;
> +
> +               display-timings {
> +                       native-mode = <&lvds0_timing0>;
> +                       lvds0_timing0: timing0 {
> +                               clock-frequency = <79479000>;

Please add this panel support in drivers/gpu/drm/panel/panel-simple.c
and then reference its compatible here.

> +&sdma {
> +       fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";

Why is this needed?

> +       iram = <&ocram>;

Not a valid property for sdma.


> +&uart1 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_uart1>;
> +       status = "okay";
> +
> +       rts-gpios = <&gpio7 8 0>;

Use GPIO label.

> +       linux,rs485-enabled-at-boot-time;
> +       rs485-rx-during-tx;
> +};
> +
> +&uart2 {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_uart2>;
> +       fsl,uart-has-rtscts;

s/ fsl,uart-has-rtscts/uart-has-rtscts;

> +&usbh2 {
> +       pinctrl-names = "idle", "active";
> +       pinctrl-0 = <&pinctrl_usbh2_idle>;
> +       pinctrl-1 = <&pinctrl_usbh2_active>;
> +       status = "okay";
> +
> +       vbus-supply = <&reg_usb_h2_vbus>;
> +       osc-clkgate-delay = <0x3>;

Not a valid property.

> +       pad-supply = <&vgen2_reg>;

Not a valid property.



More information about the linux-arm-kernel mailing list