Hi Philip,
On Thu, Apr 21, 2022 at 9:26 AM Philip Oberfichtner <pro@xxxxxxx>
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 = <®_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@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@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 = <ðphy>;
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ ethphy: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+ smsc,disable-energy-detect;
+ };
+ };
+};
+ lm75: sensor@49 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lm75>;
+
Uneeded blank line.
+ pmic: pmic@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@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@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 = <®_usb_h2_vbus>;
+ osc-clkgate-delay = <0x3>;
Not a valid property.
+ pad-supply = <&vgen2_reg>;
Not a valid property.