* [PATCH 0/2] arm: dts: Add device tree for bosch acc board
@ 2022-04-12 10:19 Philip Oberfichtner
2022-04-12 10:19 ` [PATCH 1/2] dt-bindings: arm: Add " Philip Oberfichtner
2022-04-12 10:19 ` [PATCH 2/2] arm: dts: Add device tree for " Philip Oberfichtner
0 siblings, 2 replies; 8+ messages in thread
From: Philip Oberfichtner @ 2022-04-12 10:19 UTC (permalink / raw)
To: devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias,
Philip Oberfichtner
Add dt and dt binding for bosch acc board, based on i.MX6 Dual.
Philip Oberfichtner (2):
dt-bindings: arm: Add bosch acc board
arm: dts: Add device tree for bosch acc board
.../devicetree/bindings/arm/fsl.yaml | 1 +
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6q-bosch-acc.dts | 1048 +++++++++++++++++
3 files changed, 1050 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6q-bosch-acc.dts
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] dt-bindings: arm: Add bosch acc board
2022-04-12 10:19 [PATCH 0/2] arm: dts: Add device tree for bosch acc board Philip Oberfichtner
@ 2022-04-12 10:19 ` Philip Oberfichtner
2022-04-12 11:00 ` Krzysztof Kozlowski
2022-04-12 10:19 ` [PATCH 2/2] arm: dts: Add device tree for " Philip Oberfichtner
1 sibling, 1 reply; 8+ messages in thread
From: Philip Oberfichtner @ 2022-04-12 10:19 UTC (permalink / raw)
To: devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias,
Philip Oberfichtner
Add device tree binding for the Bosch ACC board, based on i.MX6 Dual.
Signed-off-by: Philip Oberfichtner <pro@denx.de>
---
Documentation/devicetree/bindings/arm/fsl.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 08bdd30e511c..9deb568761c1 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -192,6 +192,7 @@ properties:
items:
- enum:
- auvidea,h100 # Auvidea H100
+ - bosch,imx6q-acc # Bosch ACC i.MX6 Dual
- boundary,imx6q-nitrogen6_max
- boundary,imx6q-nitrogen6_som2
- boundary,imx6q-nitrogen6x
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] arm: dts: Add device tree for bosch acc board
2022-04-12 10:19 [PATCH 0/2] arm: dts: Add device tree for bosch acc board Philip Oberfichtner
2022-04-12 10:19 ` [PATCH 1/2] dt-bindings: arm: Add " Philip Oberfichtner
@ 2022-04-12 10:19 ` Philip Oberfichtner
2022-04-12 11:10 ` Krzysztof Kozlowski
2022-04-12 11:11 ` Krzysztof Kozlowski
1 sibling, 2 replies; 8+ messages in thread
From: Philip Oberfichtner @ 2022-04-12 10:19 UTC (permalink / raw)
To: devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias,
Philip Oberfichtner
Add device tree for the Bosch ACC board, based on i.MX6 Dual.
Signed-off-by: Philip Oberfichtner <pro@denx.de>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6q-bosch-acc.dts | 1048 +++++++++++++++++++++++++
2 files changed, 1049 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6q-bosch-acc.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7c16f8a2b738..a6eff45bfee3 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -547,6 +547,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6q-b450v3.dtb \
imx6q-b650v3.dtb \
imx6q-b850v3.dtb \
+ imx6q-bosch-acc.dtb \
imx6q-cm-fx6.dtb \
imx6q-cubox-i.dtb \
imx6q-cubox-i-emmc-som-v15.dtb \
diff --git a/arch/arm/boot/dts/imx6q-bosch-acc.dts b/arch/arm/boot/dts/imx6q-bosch-acc.dts
new file mode 100644
index 000000000000..957916b1e7f2
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-bosch-acc.dts
@@ -0,0 +1,1048 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Support for the i.MX6-based Bosch ACC board.
+ *
+ * Copyright (C) 2016 Garz & Fricke GmbH
+ * Copyright (C) 2018 DENX Software Engineering GmbH, Heiko Schocher <hs@denx.de>
+ * Copyright (C) 2018 DENX Software Engineering GmbH, Niel Fourie <lusus@denx.de>
+ * Copyright (C) 2019-2021 Bosch Thermotechnik GmbH, Matthias Winker <matthias.winker@bosch.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx6q.dtsi"
+
+/ {
+ model = "Bosch ACC";
+ compatible = "bosch,imx6q-acc", "fsl,imx6q";
+
+ aliases {
+ serial0 = &uart2;
+ serial1 = &uart1;
+
+ i2c0 = &i2c1;
+ i2c1 = &i2c2;
+ i2c2 = &i2c3;
+ /* eMMC is connected to USDHC interface 4, but shall get the name 0 */
+ mmc0 = &usdhc4;
+ /* SC-Cards is connected to USDHC interface 2, but shall get the name 1 */
+ mmc1 = &usdhc2;
+ };
+
+ backlight {
+ status = "okay";
+
+ compatible = "pwm-backlight";
+ /* The last value is the PWM period in nano-seconds!
+ * -> 5 kHz = 200 µS = 200.000 ns
+ */
+ 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>;
+ };
+
+ usb3503_refclk: usb3503_refclk {
+ compatible = "fixed-factor-clock";
+ #clock-cells = <0>;
+
+ clocks = <&clks IMX6QDL_CLK_CKO2>;
+ clock-div = <1>;
+ clock-mult = <1>;
+ clock-output-names = "12mhz_refclk";
+
+ assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
+ <&clks IMX6QDL_CLK_CKO2>,
+ <&clks IMX6QDL_CLK_CKO2_SEL>;
+ assigned-clock-parents = <&clks IMX6QDL_CLK_CKO2>,
+ <&clks IMX6QDL_CLK_CKO2_PODF>,
+ <&clks IMX6QDL_CLK_OSC>;
+ assigned-clock-rates = <0>, <12000000>, <0>;
+ };
+
+ cpus {
+ /* Override operating points with board-specific values */
+ cpu0: cpu@0 {
+ operating-points = <
+ /* kHz uV */
+ 1200000 1275000
+ 996000 1225000
+ 852000 1225000
+ 792000 1150000
+ 396000 950000
+ >;
+ fsl,soc-operating-points = <
+ /* ARM kHz SOC-PU uV */
+ 1200000 1225000
+ 996000 1175000
+ 852000 1175000
+ 792000 1150000
+ 396000 1150000
+ >;
+ };
+
+ cpu1: cpu@1 {
+ operating-points = <
+ /* kHz uV */
+ 1200000 1275000
+ 996000 1225000
+ 852000 1225000
+ 792000 1150000
+ 396000 950000
+ >;
+ fsl,soc-operating-points = <
+ /* ARM kHz SOC-PU uV */
+ 1200000 1225000
+ 996000 1175000
+ 852000 1175000
+ 792000 1150000
+ 396000 1150000
+ >;
+ };
+ };
+
+ leds {
+ compatible = "pwm-leds";
+
+ led_red: red {
+ label = "red";
+ max-brightness = <248>;
+ default-state = "off";
+ pwms = <&pwm2 0 500000>;
+ };
+
+ led_white: white {
+ label = "white";
+ max-brightness = <248>;
+ default-state = "off";
+ pwms = <&pwm3 0 500000>;
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ memory {
+ reg = <0x10000000 0x40000000>;
+ };
+
+ regulators: regulators {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ supply_5P0: regulator@0 {
+ compatible = "regulator-fixed";
+ reg = <0>;
+ regulator-name = "5P0";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
+
+ supply_VIN: regulator@1 {
+ compatible = "regulator-fixed";
+ reg = <1>;
+ regulator-name = "VIN";
+ regulator-min-microvolt = <4500000>;
+ regulator-max-microvolt = <4500000>;
+ regulator-always-on;
+ vin-supply = <&supply_5P0>;
+ };
+
+ reg_usb_otg_vbus: regulator@2 {
+ compatible = "regulator-fixed";
+ reg = <2>;
+ regulator-name = "usb_otg_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ };
+
+ reg_usb_h1_vbus: regulator@3 {
+ compatible = "regulator-fixed";
+ reg = <3>;
+ regulator-name = "usb_h1_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ vin-supply = <&supply_5P0>;
+ };
+
+ supply_VSNVS_3V0: regulator@4 {
+ compatible = "regulator-fixed";
+ reg = <4>;
+ regulator-name = "VSNVS_3V0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-always-on;
+ vin-supply = <&supply_5P0>;
+ };
+
+ reg_lcd0_pwr: regulator-lcd0-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "LCD0 POWER";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lcd_enable>;
+ gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-boot-on;
+ };
+
+ reg_usb_h2_vbus: regulator@6 {
+ compatible = "regulator-fixed";
+ reg = <6>;
+ regulator-name = "usb_h2_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <&supply_5P0> ;
+ regulator-always-on;
+ };
+
+ supply_vref_dac: vref_dac {
+ compatible = "regulator-fixed";
+ regulator-name = "vref_dac";
+ regulator-min-microvolt = <20000>;
+ regulator-max-microvolt = <20000>;
+ vin-supply = <&supply_5P0> ;
+ regulator-boot-on;
+ };
+ };
+
+ reset_gpio_led {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reset_gpio_led>;
+
+ reset {
+ label = "red_reset";
+ gpios = <&gpio5 18 0>;
+ default-state = "off";
+ };
+ };
+
+ soc {
+ aips1: bus@2000000 {};
+ };
+};
+
+®_arm {
+ vin-supply = <&pmic_sw2>;
+};
+
+®_soc {
+ vin-supply = <&pmic_sw1abc>;
+};
+
+®_vdd1p1 {
+ vin-supply = <&supply_VSNVS_3V0>;
+};
+
+®_vdd2p5 {
+ vin-supply = <&supply_VSNVS_3V0>;
+};
+
+®_vdd3p0 {
+ vin-supply = <&supply_VSNVS_3V0>;
+};
+
+&audmux {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_audmux>;
+ status = "okay";
+};
+
+&fec {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_enet>;
+ status = "okay";
+
+ 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;
+ };
+ };
+};
+
+
+&gpu_vg {
+ status = "disabled";
+};
+
+&gpu_2d {
+ status = "disabled";
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1>;
+ clock-frequency = <400000>;
+ status = "okay";
+
+ eeprom: eeprom@50 {
+ compatible = "atmel,24c32";
+ reg = <0x50>;
+ pagesize = <32>;
+ bytelen = <4096>;
+ bus-id = <0>;
+ flags = <0x80>; /* AT24_FLAG_ADDR16 */
+ };
+
+ lm75: lm75@49 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lm75>;
+
+ compatible = "national,lm75b";
+ reg = <0x49>;
+
+ interrupts = <7 0x4>;
+ interrupt-parent = <&gpio4>;
+ };
+
+ pmic: pfuze100@8 {
+ compatible = "fsl,pfuze100";
+ reg = <0x08>;
+ uboot,bootcounter;
+
+ VGEN1-supply = <&supply_AUX_3V15>;
+ VGEN2-supply = <&supply_AUX_3V15>;
+ VGEN3-supply = <&supply_sw4_3V3>;
+ VGEN4-supply = <&supply_sw4_3V3>;
+ VGEN5-supply = <&supply_SYS_4V2>;
+ VGEN6-supply = <&supply_SYS_4V2>;
+
+ VREFDDR-supply = <&supply_DDR_1V5>;
+
+ SW1AB-supply = <&supply_SYS_4V2>;
+ SW1C-supply = <&supply_SYS_4V2>;
+ SW2-supply = <&supply_SYS_4V2>;
+ SW3A-supply = <&supply_SYS_4V2>;
+ SW3B-supply = <&supply_SYS_4V2>;
+ SW4-supply = <&supply_SYS_4V2>;
+
+ 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>;
+ };
+
+ 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>;
+
+ default-voltage = <1300000>;
+ };
+
+ pmic_sw3a: sw3a {
+ /* U-Boot sets correct voltage, shall not be touched by the OS */
+ compatible = "regulator-fixed";
+ regulator-name = "DDR_1V5a";
+ regulator-boot-on;
+ regulator-always-on;
+
+ };
+
+ supply_DDR_1V5: sw3b {
+ /* U-Boot sets correct voltage, shall not be touched by the OS */
+ compatible = "regulator-fixed";
+ regulator-name = "DDR_1V5b";
+ regulator-boot-on;
+ regulator-always-on;
+
+ };
+
+ supply_AUX_3V15: sw4 {
+ regulator-name = "AUX 3V15 (sw4)";
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3300000>;
+
+ default-voltage = <3150000>;
+
+ };
+
+ swbst_reg: swbst {
+ status = "disabled";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5150000>;
+ regulator-boot-on;
+ regulator-always-on;
+
+ };
+
+ snvs_reg: vsnvs {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-boot-on;
+ regulator-always-on;
+
+ default-voltage = <3000000>;
+ };
+
+ vref_reg: vrefddr {
+ regulator-boot-on;
+ regulator-always-on;
+
+ default-voltage = <675000>;
+ };
+
+ vgen1_reg: vgen1 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1550000>;
+ regulator-always-on;
+
+ default-voltage = <1500000>;
+ };
+
+ vgen2_reg: vgen2 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1550000>;
+ regulator-always-on;
+
+ default-voltage = <1200000>;
+ };
+
+ vgen3_reg: vgen3 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+
+ default-voltage = <2500000>;
+ };
+
+ vgen4_reg: vgen4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+
+ default-voltage = <1800000>;
+ };
+
+ vgen5_reg: vgen5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+
+ default-voltage = <2800000>;
+ };
+
+ vgen6_reg: vgen6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+
+ default-voltage = <2800000>;
+ };
+
+ };
+ };
+
+ rtc: rtcpcf8563@51 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_rtc>;
+
+ compatible = "nxp,pcf8563";
+ reg = <0x51>;
+ };
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2>;
+ clock-frequency = <100000>;
+ status = "okay";
+
+ adc101c: ac101c@54 {
+ compatible = "ti,adc101c";
+ reg = <0x54>;
+ status = "okay";
+ vref-supply = <&supply_vref_dac>;
+ vcc-supply = <&supply_vref_dac>;
+ };
+
+ ad5602: ad5602@c {
+ compatible = "adi,ad5602";
+ reg = <0x0c>;
+ status = "okay";
+ vcc-supply = <&supply_vref_dac>;
+ };
+
+ eeprom_ext: eeprom_ext@50 {
+ compatible = "atmel,24c32";
+ reg = <0x50>;
+ pagesize = <32>;
+ bytelen = <4096>;
+ bus-id = <1>;
+ flags = <0x80>; /* AT24_FLAG_ADDR16 */
+ };
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3>;
+ clock-frequency = <400000>;
+ status = "okay";
+
+ exc3000: exc3000@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>;
+
+ status = "okay";
+ };
+
+ usb3503: usb3503@8 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb3503>;
+ status = "okay";
+
+ compatible = "smsc,usb3503";
+ reg = <0x08>;
+ connect-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; /* Old: 0, SS: HIGH */
+ intn-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; /* Old: 1, SS: HIGH */
+ reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; /* Old: 0, SS: HIGH */
+ initial-mode = <1>;
+
+ clocks = <&usb3503_refclk>;
+ clock-names = "refclk";
+ refclk-frequency = <12000000>;
+ };
+
+ vcnl4035: vcnl4035@60 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_proximity>;
+ compatible = "vishay,vcnl4035";
+ reg = <0x60>;
+ status = "okay";
+ };
+};
+
+&iomuxc {
+ pinctrl_audmux: audmuxgrp {
+ fsl,pins = <
+ MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0
+ MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x130b0
+ MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x110b0
+ MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x130b0
+ >;
+ };
+
+ pinctrl_enet: enetgrp {
+ fsl,pins = <
+ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
+ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
+ MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
+ MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1b0b0 /* FEC INT */
+ MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
+ MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x0001B098
+ MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
+ MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
+ MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x0001B098
+ MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x0001B098
+ MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
+ >;
+ };
+
+ pinctrl_gpio_export_gpio_fixed_in: pinctrl_gpio_export_gpio_fixed_in_grp {
+ 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 {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18 0x80000000
+ >;
+ };
+
+ pinctrl_gpio_export_gpio_fixed_out: pinctrl_gpio_export_gpio_fixed_out_grp {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_DAT6__GPIO5_IO24 0x0001B0B0 /* DIG_OUT_1 */
+ MX6QDL_PAD_CSI0_DAT7__GPIO5_IO25 0x0001B0B0 /* DIG_OUT_2 */
+ MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16 0x0001B0B0 /* nUART_RESET */
+ MX6QDL_PAD_DI0_PIN2__GPIO4_IO18 0x0001B0B0 /* nETH1_RESET */
+ MX6QDL_PAD_DI0_PIN3__GPIO4_IO19 0x0001B0B0 /* nETH2_RESET */
+ MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0001B0B0 /* RS485#1_PWR */
+ MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x0001B0B0 /* RS485#2_PWR */
+ MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x0001B0B0 /* RS485#3_PWR */
+ MX6QDL_PAD_DISP0_DAT1__GPIO4_IO22 0x0001B0B0 /* RS485#4_PWR */
+ MX6QDL_PAD_DISP0_DAT6__GPIO4_IO27 0x0001B0B0 /* FEC_RESET_B */
+ MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x0001B0B0 /* AN_IN_PWR */
+ MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001B0B0 /* AN_OUT_PWR */
+ MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x0001B0B0 /* nUSBH1_PWR */
+ >;
+ };
+
+ pinctrl_hog: hoggrp {
+ fsl,pins = <
+ /* not used SD2 and SD3 pins */
+ /* [HYS 1] [100K PU] [PU] [PU EN] [CMOS] [Med. Speed] [40R] [Slow SR] */
+ MX6QDL_PAD_SD3_CLK__GPIO7_IO03 0x0001B0B0
+ MX6QDL_PAD_SD3_CMD__GPIO7_IO02 0x0001B0B0
+ MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x0000B0B1
+ MX6QDL_PAD_EIM_D17__GPIO3_IO17 0x0001B0B0
+ MX6QDL_PAD_EIM_D18__GPIO3_IO18 0x0001B0B0
+ MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x0001B0B0
+ MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x0000B0B1
+ MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x0001B0B0
+ MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x0001B8B1
+ MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x0001B8B1
+ MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x000138B1
+ >;
+ };
+
+ pinctrl_i2c1: i2c1grp {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
+ MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
+ >;
+ };
+
+ pinctrl_i2c1_gpio: i2c1grp-gpio {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26 0x80000000
+ MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27 0x80000000
+ >;
+ };
+
+ 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 */
+ >;
+ };
+
+ pinctrl_i2c2_gpio: i2c2grp-gpio {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x80000000
+ MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x80000000
+ >;
+ };
+
+ pinctrl_i2c3: i2c3grp {
+ fsl,pins = <
+ MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
+ MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
+ >;
+ };
+ pinctrl_i2c3_gpio: i2c3grp-gpio {
+ fsl,pins = <
+ MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x80000000
+ MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x80000000
+ >;
+ };
+
+ pinctrl_lcd_enable: lcdenablerp {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000 /* lcd enable */
+ MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x80000000 /* sel6_8 */
+ >;
+ };
+
+ pinctrl_lm75: lm75grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x80000000
+ >;
+ };
+
+ pinctrl_pfid_0_2: pfid_0_2_grp {
+ fsl,pins = <
+ MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x0001B0B0
+ MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x0001B0B0
+ MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x0001B0B0
+ >;
+ };
+
+ pinctrl_pfid_3_4: pfid_3_4_grp {
+ fsl,pins = <
+ MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x0001B0B0
+ MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x0001B0B0
+ >;
+ };
+
+ pinctrl_pfid_5_7: pfid_5_7_grp {
+ fsl,pins = <
+ MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x0001B0B0
+ MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x0001B0B0
+ MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x0001B0B0
+ >;
+ };
+
+ pinctrl_pfid_8_9: pfid_8_9_grp {
+ fsl,pins = <
+ MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x0001B0B0
+ MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x0001B0B0
+ >;
+ };
+
+ pinctrl_proximity: proximitygrp {
+ fsl,pins = <
+ /* PROXIMITY_INT */
+ MX6QDL_PAD_KEY_ROW2__GPIO4_IO11 0x80000000
+ >;
+ };
+
+ pinctrl_pwm1: pwm1grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x0001B0B0
+ >;
+ };
+
+ pinctrl_pwm2: pwm2grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x0001B0B0
+ >;
+ };
+
+ pinctrl_pwm3: pwm3grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x0001B0B0
+ >;
+ };
+
+
+ pinctrl_pwm4: pwm4grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x0001B0B0
+ >;
+ };
+
+ pinctrl_rtc: rtc-grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x80000000 /* RTC INT */
+ >;
+ };
+
+ pinctrl_ctouch: ctouch-grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x80000000 /* CTOUCH_INT */
+ MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x0001B0B0 /* CTOUCH_RESET */
+ >;
+ };
+
+ pinctrl_uart1: uart1grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
+ MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
+ MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x0001B0B0
+ >;
+ };
+
+ pinctrl_uart2: uart2grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x1b0b1
+ MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x1b0b1
+ MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
+ MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
+ >;
+ };
+
+ pinctrl_usbh2_idle: usbh2-idle-grp {
+ fsl,pins = <
+ /* 100K Pull-Down, 76_OHM drive strength */
+ MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x00013018
+ /* 100K Pull-Down, 76_OHM drive strength */
+ MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x00013018
+ >;
+ };
+
+ pinctrl_usbh2_active: usbh2-active-grp {
+ fsl,pins = <
+ /* 100K Pull-Down, 76_OHM drive strength */
+ MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x00013018
+ /* 47K Pull-Up, 76_OHM drive strength */
+ MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x00017018
+ >;
+ };
+
+ pinctrl_usb3503: pinctrl_usb3503-grp {
+ fsl,pins = <
+ /* USB Hub REFCLK - No pull-up/pull-down, CMOS output, low speed, 90 Ohm */
+ MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x00000018
+ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x80000000 /* USB INT */
+ MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x0001B0B0 /* USB Reset */
+ MX6QDL_PAD_SD1_DAT0__GPIO1_IO16 0x80000000 /* USB Connect */
+ >;
+ };
+
+ pinctrl_usbotg: usbotggrp {
+ fsl,pins = <
+ MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
+ >;
+ };
+
+ pinctrl_usdhc2: usdhc2grp {
+ /* CMD and DATA0..3 have external pull-up, CLK does not need a pull-up.
+ * CLK signal is half the speed than the others (52 MHz compared to 104 MHz)
+ */
+ fsl,pins = <
+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x00017069
+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x00010038
+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x00017069
+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x00017069
+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x00017069
+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x00017069
+ MX6QDL_PAD_GPIO_4__SD2_CD_B 0x0001B0B0
+ >;
+ };
+
+ pinctrl_usdhc4: usdhc4grp {
+ /* CMD has external pull-up, DATA0..7 within eMMC, CLK does not need a pull-up.
+ * CLK signal is half the speed than the others (52 MHz compared to 104 MHz)
+ */
+ fsl,pins = <
+ MX6QDL_PAD_SD4_CMD__SD4_CMD 0x00017059
+ MX6QDL_PAD_SD4_CLK__SD4_CLK 0x00010059
+ MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x00017059
+ MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x00017059
+ MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x00017059
+ MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x00017059
+ MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x00017059
+ MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x00017059
+ MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x00017059
+ MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x00017059
+ >;
+ };
+
+ pinctrl_wdog1: wdoggrp {
+ fsl,pins = <
+ MX6QDL_PAD_GPIO_9__WDOG1_B 0x1b0b0
+ >;
+ };
+};
+
+&ldb {
+ status = "okay";
+
+ lvds0: lvds-channel@0 {
+ fsl,data-mapping = "spwg";
+ fsl,data-width = <24>;
+ status = "okay";
+
+ display-timings {
+ native-mode = <&lvds0_timing0>;
+ lvds0_timing0: hsd100pxn1 {
+ clock-frequency = <79479000>;
+ hactive = <1280>;
+ vactive = <800>;
+ hback-porch = <100>;
+ hfront-porch = <100>;
+ vback-porch = <5>;
+ vfront-porch = <5>;
+ hsync-len = <24>;
+ vsync-len = <3>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ pixelclk-active = <1>;
+ };
+ };
+ };
+};
+
+&pmu {
+ interrupt-affinity = <&{/cpus/cpu@0}>,
+ <&{/cpus/cpu@1}>;
+};
+
+&pwm1 {
+ #pwm-cells = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm1>;
+ status = "okay";
+};
+
+&pwm2 {
+ #pwm-cells = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm2>;
+ status = "okay";
+};
+
+&pwm3 {
+ #pwm-cells = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm3>;
+ status = "okay";
+ linux,default-trigger = "heartbeat";
+};
+
+&pwm4 {
+ #pwm-cells = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm4>;
+ status = "okay";
+};
+
+®ulators {
+ supply_sw4_3V3: regulator@8 {
+ compatible = "regulator-fixed";
+ reg = <8>;
+ regulator-name = "SW4_3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <&supply_5P0>;
+ };
+
+ supply_SYS_4V2: regulator@9 {
+ compatible = "regulator-fixed";
+ reg = <9>;
+ regulator-name = "SYS_4V2";
+ regulator-min-microvolt = <4200000>;
+ regulator-max-microvolt = <4200000>;
+ regulator-always-on;
+ vin-supply = <&supply_5P0>;
+ };
+};
+
+&sdma {
+ fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
+ iram = <&ocram>;
+};
+
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart1>;
+ status = "okay";
+
+ rts-gpios = <&gpio7 8 0>;
+ linux,rs485-enabled-at-boot-time;
+ rs485-rx-during-tx;
+};
+
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart2>;
+ fsl,uart-has-rtscts;
+ status = "okay";
+};
+
+&usbh1 {
+ vbus-supply = <®_usb_h1_vbus>;
+ status = "okay";
+};
+
+&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>;
+
+ pad-supply = <&vgen2_reg>;
+};
+
+&usbotg {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbotg>;
+ status = "okay";
+
+ vbus-supply = <®_usb_otg_vbus>;
+ disable-over-current;
+ dr_mode = "otg";
+ srp-disable;
+ hnp-disable;
+ adp-disable;
+};
+
+&usbphynop1 {
+ clocks = <&clks IMX6QDL_CLK_USBPHY1>;
+ clock-names = "main_clk";
+ vcc-supply = <®_usb_h1_vbus>;
+};
+
+&usbphynop2 {
+ vcc-supply = <®_usb_h2_vbus>;
+};
+
+/* sdcard */
+&usdhc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc2>;
+ status = "okay";
+
+ cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+ no-1-8-v;
+ keep-power-in-suspend;
+ enable-sdio-wakeup;
+ voltage-ranges = <3300 3300>;
+ vmmc-supply = <&supply_sw4_3V3>;
+ fsl,wp-controller;
+};
+
+/* emmc */
+&usdhc4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc4>;
+ status = "okay";
+
+ bus-width = <8>;
+ non-removable;
+ no-1-8-v;
+ keep-power-in-suspend;
+ voltage-ranges = <3300 3300>;
+ vmmc-supply = <&supply_sw4_3V3>;
+ fsl,wp-controller;
+};
+
+&wdog1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_wdog1>;
+ fsl,ext-reset-output;
+ status = "okay";
+ timeout-sec=<10>;
+};
+
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: arm: Add bosch acc board
2022-04-12 10:19 ` [PATCH 1/2] dt-bindings: arm: Add " Philip Oberfichtner
@ 2022-04-12 11:00 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-12 11:00 UTC (permalink / raw)
To: Philip Oberfichtner, devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias
On 12/04/2022 12:19, Philip Oberfichtner wrote:
> Add device tree binding for the Bosch ACC board, based on i.MX6 Dual.
>
> Signed-off-by: Philip Oberfichtner <pro@denx.de>
> ---
> Documentation/devicetree/bindings/arm/fsl.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm: dts: Add device tree for bosch acc board
2022-04-12 10:19 ` [PATCH 2/2] arm: dts: Add device tree for " Philip Oberfichtner
@ 2022-04-12 11:10 ` Krzysztof Kozlowski
2022-04-21 7:06 ` Philip Oberfichtner
2022-04-12 11:11 ` Krzysztof Kozlowski
1 sibling, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-12 11:10 UTC (permalink / raw)
To: Philip Oberfichtner, devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias
On 12/04/2022 12:19, Philip Oberfichtner wrote:
> Add device tree for the Bosch ACC board, based on i.MX6 Dual.
>
Thank you for your patch. There is something to discuss/improve.
> + };
> +
> + backlight {
> + status = "okay";
Are you overriding any node? Looks like not, so status is not needed.
> +
> + compatible = "pwm-backlight";
> + /* The last value is the PWM period in nano-seconds!
> + * -> 5 kHz = 200 µS = 200.000 ns
> + */
> + 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>;
> + };
> +
> + usb3503_refclk: usb3503_refclk {
hyphens in node names, not underscores. Node names should be generic,
but if you need a specific prefix, it's ok.
> + compatible = "fixed-factor-clock";
> + #clock-cells = <0>;
> +
> + clocks = <&clks IMX6QDL_CLK_CKO2>;
> + clock-div = <1>;
> + clock-mult = <1>;
> + clock-output-names = "12mhz_refclk";
> +
> + assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
> + <&clks IMX6QDL_CLK_CKO2>,
> + <&clks IMX6QDL_CLK_CKO2_SEL>;
> + assigned-clock-parents = <&clks IMX6QDL_CLK_CKO2>,
> + <&clks IMX6QDL_CLK_CKO2_PODF>,
> + <&clks IMX6QDL_CLK_OSC>;
> + assigned-clock-rates = <0>, <12000000>, <0>;
> + };
> +
> + cpus {
> + /* Override operating points with board-specific values */
> + cpu0: cpu@0 {
> + operating-points = <
Anything blocking from using OPP v2 bindings?
> + /* kHz uV */
> + 1200000 1275000
> + 996000 1225000
> + 852000 1225000
> + 792000 1150000
> + 396000 950000
> + >;
> + fsl,soc-operating-points = <
This seems undocumented and actually - why do you need it if you have
generic operating points?
> + /* ARM kHz SOC-PU uV */
> + 1200000 1225000
> + 996000 1175000
> + 852000 1175000
> + 792000 1150000
> + 396000 1150000
> + >;
> + };
> +
> + cpu1: cpu@1 {
> + operating-points = <
> + /* kHz uV */
> + 1200000 1275000
> + 996000 1225000
> + 852000 1225000
> + 792000 1150000
> + 396000 950000
> + >;
> + fsl,soc-operating-points = <
> + /* ARM kHz SOC-PU uV */
> + 1200000 1225000
> + 996000 1175000
> + 852000 1175000
> + 792000 1150000
> + 396000 1150000
> + >;
> + };
> + };
> +
> + leds {
> + compatible = "pwm-leds";
> +
> + led_red: red {
Generic node names, so led-0.
Add common properties for color and function.
> + label = "red";
> + max-brightness = <248>;
> + default-state = "off";
> + pwms = <&pwm2 0 500000>;
> + };
> +
> + led_white: white {
The same.
> + label = "white";
> + max-brightness = <248>;
> + default-state = "off";
> + pwms = <&pwm3 0 500000>;
> + linux,default-trigger = "heartbeat";
> + };
> + };
> +
> + memory {
> + reg = <0x10000000 0x40000000>;
> + };
> +
> + regulators: regulators {
> + compatible = "simple-bus";
> + #address-cells = <1>;
> + #size-cells = <0>;
This should not be a bus. Instead "regulator-0" and so on.
> +
> + supply_5P0: regulator@0 {
> + compatible = "regulator-fixed";
> + reg = <0>;
Please run `make dtbs_check` (see Docs for this) and fix the warnings.
Please fix automated check warnings before using reviewers time.
> + regulator-name = "5P0";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
Why do you need it? There is no control here, it's only used as a supply
for other uncontrollable regulators (unless I missed something).
> + };
> +
> + supply_VIN: regulator@1 {
> + compatible = "regulator-fixed";
> + reg = <1>;
> + regulator-name = "VIN";
> + regulator-min-microvolt = <4500000>;
> + regulator-max-microvolt = <4500000>;
> + regulator-always-on;
> + vin-supply = <&supply_5P0>;
> + };
> +
> + reg_usb_otg_vbus: regulator@2 {
> + compatible = "regulator-fixed";
> + reg = <2>;
> + regulator-name = "usb_otg_vbus";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + };
> +
> + reg_usb_h1_vbus: regulator@3 {
> + compatible = "regulator-fixed";
> + reg = <3>;
> + regulator-name = "usb_h1_vbus";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + vin-supply = <&supply_5P0>;
> + };
> +
> + supply_VSNVS_3V0: regulator@4 {
> + compatible = "regulator-fixed";
> + reg = <4>;
> + regulator-name = "VSNVS_3V0";
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3000000>;
> + regulator-always-on;
> + vin-supply = <&supply_5P0>;
> + };
> +
> + reg_lcd0_pwr: regulator-lcd0-pwr {
> + compatible = "regulator-fixed";
> + regulator-name = "LCD0 POWER";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lcd_enable>;
> + gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + regulator-boot-on;
> + };
> +
> + reg_usb_h2_vbus: regulator@6 {
> + compatible = "regulator-fixed";
> + reg = <6>;
> + regulator-name = "usb_h2_vbus";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + vin-supply = <&supply_5P0> ;
> + regulator-always-on;
> + };
> +
> + supply_vref_dac: vref_dac {
1. No underscores in node names.
2. Did you compile dts with W=1 and fixed warnings?
> + compatible = "regulator-fixed";
> + regulator-name = "vref_dac";
> + regulator-min-microvolt = <20000>;
> + regulator-max-microvolt = <20000>;
> + vin-supply = <&supply_5P0> ;
> + regulator-boot-on;
> + };
> + };
> +
> + reset_gpio_led {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_reset_gpio_led>;
> +
> + reset {
> + label = "red_reset";
> + gpios = <&gpio5 18 0>;
> + default-state = "off";
> + };
> + };
> +
> + soc {
> + aips1: bus@2000000 {};
> + };
> +};
> +
> +®_arm {
> + vin-supply = <&pmic_sw2>;
> +};
> +
> +®_soc {
> + vin-supply = <&pmic_sw1abc>;
> +};
> +
> +®_vdd1p1 {
> + vin-supply = <&supply_VSNVS_3V0>;
> +};
> +
> +®_vdd2p5 {
> + vin-supply = <&supply_VSNVS_3V0>;
> +};
> +
> +®_vdd3p0 {
> + vin-supply = <&supply_VSNVS_3V0>;
> +};
> +
> +&audmux {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_audmux>;
> + status = "okay";
> +};
> +
> +&fec {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_enet>;
> + status = "okay";
> +
> + 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;
> + };
> + };
> +};
> +
> +
No need for two blank lines.
> +&gpu_vg {
> + status = "disabled";
> +};
> +
> +&gpu_2d {
> + status = "disabled";
> +};
> +
> +&i2c1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c1>;
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + eeprom: eeprom@50 {
> + compatible = "atmel,24c32";
> + reg = <0x50>;
> + pagesize = <32>;
> + bytelen = <4096>;
> + bus-id = <0>;
> + flags = <0x80>; /* AT24_FLAG_ADDR16 */
> + };
> +
> + lm75: lm75@49 {
Generic node name.
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_lm75>;
> +
> + compatible = "national,lm75b";
> + reg = <0x49>;
> +
> + interrupts = <7 0x4>;
> + interrupt-parent = <&gpio4>;
> + };
> +
> + pmic: pfuze100@8 {
pmic, not pfuze
> + compatible = "fsl,pfuze100";
> + reg = <0x08>;
> + uboot,bootcounter;
Do not add undocumented properties. Please check all entire DTS for such
undocumented stuff.
> +
> + VGEN1-supply = <&supply_AUX_3V15>;
> + VGEN2-supply = <&supply_AUX_3V15>;
> + VGEN3-supply = <&supply_sw4_3V3>;
> + VGEN4-supply = <&supply_sw4_3V3>;
> + VGEN5-supply = <&supply_SYS_4V2>;
> + VGEN6-supply = <&supply_SYS_4V2>;
> +
> + VREFDDR-supply = <&supply_DDR_1V5>;
> +
> + SW1AB-supply = <&supply_SYS_4V2>;
> + SW1C-supply = <&supply_SYS_4V2>;
> + SW2-supply = <&supply_SYS_4V2>;
> + SW3A-supply = <&supply_SYS_4V2>;
> + SW3B-supply = <&supply_SYS_4V2>;
> + SW4-supply = <&supply_SYS_4V2>;
> +
> + 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>;
> + };
> +
> + pmic_sw2: sw2{
Missing space.
> + regulator-name = "VDD_ARM (sw2)";
> +
Why blank line here and not in other places?
> + regulator-min-microvolt = <1050000>;
> + regulator-max-microvolt = <1500000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <6250>;
> +
> + default-voltage = <1300000>;
> + };
> +
> + pmic_sw3a: sw3a {
> + /* U-Boot sets correct voltage, shall not be touched by the OS */
> + compatible = "regulator-fixed";
> + regulator-name = "DDR_1V5a";
> + regulator-boot-on;
> + regulator-always-on;
> +
> + };
> +
> + supply_DDR_1V5: sw3b {
> + /* U-Boot sets correct voltage, shall not be touched by the OS */
> + compatible = "regulator-fixed";
> + regulator-name = "DDR_1V5b";
> + regulator-boot-on;
> + regulator-always-on;
> +
> + };
> +
> + supply_AUX_3V15: sw4 {
> + regulator-name = "AUX 3V15 (sw4)";
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <3300000>;
> +
> + default-voltage = <3150000>;
> +
> + };
> +
> + swbst_reg: swbst {
> + status = "disabled";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5150000>;
> + regulator-boot-on;
> + regulator-always-on;
> +
> + };
> +
> + snvs_reg: vsnvs {
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <3000000>;
> + regulator-boot-on;
> + regulator-always-on;
> +
> + default-voltage = <3000000>;
> + };
> +
> + vref_reg: vrefddr {
> + regulator-boot-on;
> + regulator-always-on;
> +
> + default-voltage = <675000>;
> + };
> +
> + vgen1_reg: vgen1 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1550000>;
> + regulator-always-on;
> +
> + default-voltage = <1500000>;
> + };
> +
> + vgen2_reg: vgen2 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1550000>;
> + regulator-always-on;
> +
> + default-voltage = <1200000>;
> + };
> +
> + vgen3_reg: vgen3 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> +
> + default-voltage = <2500000>;
> + };
> +
> + vgen4_reg: vgen4 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + regulator-boot-on;
> +
> + default-voltage = <1800000>;
> + };
> +
> + vgen5_reg: vgen5 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + regulator-boot-on;
> +
> + default-voltage = <2800000>;
> + };
> +
> + vgen6_reg: vgen6 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> +
> + default-voltage = <2800000>;
> + };
> +
> + };
> + };
> +
> + rtc: rtcpcf8563@51 {
Generic node names.
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_rtc>;
> +
> + compatible = "nxp,pcf8563";
> + reg = <0x51>;
> + };
> +};
> +
> +&i2c2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c2>;
> + clock-frequency = <100000>;
> + status = "okay";
> +
> + adc101c: ac101c@54 {
Ugh...
> + compatible = "ti,adc101c";
> + reg = <0x54>;
> + status = "okay";
> + vref-supply = <&supply_vref_dac>;
> + vcc-supply = <&supply_vref_dac>;
> + };
> +
> + ad5602: ad5602@c {
> + compatible = "adi,ad5602";
> + reg = <0x0c>;
> + status = "okay";
> + vcc-supply = <&supply_vref_dac>;
> + };
> +
> + eeprom_ext: eeprom_ext@50 {
Generic node names, no underscores in node names.
OK, I'll stop for now. :)
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm: dts: Add device tree for bosch acc board
2022-04-12 10:19 ` [PATCH 2/2] arm: dts: Add device tree for " Philip Oberfichtner
2022-04-12 11:10 ` Krzysztof Kozlowski
@ 2022-04-12 11:11 ` Krzysztof Kozlowski
1 sibling, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-12 11:11 UTC (permalink / raw)
To: Philip Oberfichtner, devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias
On 12/04/2022 12:19, Philip Oberfichtner wrote:
> Add device tree for the Bosch ACC board, based on i.MX6 Dual.
>
> Signed-off-by: Philip Oberfichtner <pro@denx.de>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/imx6q-bosch-acc.dts | 1048 +++++++++++++++++++++++++
> 2 files changed, 1049 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx6q-bosch-acc.dts
>
One more point - wrong subject prefix.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm: dts: Add device tree for bosch acc board
2022-04-12 11:10 ` Krzysztof Kozlowski
@ 2022-04-21 7:06 ` Philip Oberfichtner
2022-04-21 7:37 ` Krzysztof Kozlowski
0 siblings, 1 reply; 8+ messages in thread
From: Philip Oberfichtner @ 2022-04-21 7:06 UTC (permalink / raw)
To: Krzysztof Kozlowski, devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias
On Tue, 2022-04-12 at 13:10 +0200, Krzysztof Kozlowski wrote:
> On 12/04/2022 12:19, Philip Oberfichtner wrote:
> > Add device tree for the Bosch ACC board, based on i.MX6 Dual.
> >
>
> Thank you for your patch. There is something to discuss/improve.
Hi Krzysztof,
thank you for the feedback. I will fix most of your comments in V2, but
there are open questions left:
>
> > + };
> > +
> > + backlight {
> > + status = "okay";
>
> Are you overriding any node? Looks like not, so status is not needed.
>
> > +
> > + compatible = "pwm-backlight";
> > + /* The last value is the PWM period in nano-seconds!
> > + * -> 5 kHz = 200 µS = 200.000 ns
> > + */
> > + 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>;
> > + };
> > +
> > + usb3503_refclk: usb3503_refclk {
>
> hyphens in node names, not underscores. Node names should be generic,
> but if you need a specific prefix, it's ok.
>
> > + compatible = "fixed-factor-clock";
> > + #clock-cells = <0>;
> > +
> > + clocks = <&clks IMX6QDL_CLK_CKO2>;
> > + clock-div = <1>;
> > + clock-mult = <1>;
> > + clock-output-names = "12mhz_refclk";
> > +
> > + assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
> > + <&clks IMX6QDL_CLK_CKO2>,
> > + <&clks IMX6QDL_CLK_CKO2_SEL>;
> > + assigned-clock-parents = <&clks IMX6QDL_CLK_CKO2>,
> > + <&clks IMX6QDL_CLK_CKO2_PODF>,
> > + <&clks IMX6QDL_CLK_OSC>;
> > + assigned-clock-rates = <0>, <12000000>, <0>;
> > + };
> > +
> > + cpus {
> > + /* Override operating points with board-specific values
> > */
> > + cpu0: cpu@0 {
> > + operating-points = <
>
> Anything blocking from using OPP v2 bindings?
>
> > + /* kHz uV */
> > + 1200000 1275000
> > + 996000 1225000
> > + 852000 1225000
> > + 792000 1150000
> > + 396000 950000
> > + >;
> > + fsl,soc-operating-points = <
>
> This seems undocumented and actually - why do you need it if you have
> generic operating points?
The "operating-points" and "fsl,soc-operating-points" properties are
defined in imx6q.dtsi. We are just overwriting them here.
>
> > + /* ARM kHz SOC-PU uV */
> > + 1200000 1225000
> > + 996000 1175000
> > + 852000 1175000
> > + 792000 1150000
> > + 396000 1150000
> > + >;
> > + };
> > +
> > + cpu1: cpu@1 {
> > + operating-points = <
> > + /* kHz uV */
> > + 1200000 1275000
> > + 996000 1225000
> > + 852000 1225000
> > + 792000 1150000
> > + 396000 950000
> > + >;
> > + fsl,soc-operating-points = <
> > + /* ARM kHz SOC-PU uV */
> > + 1200000 1225000
> > + 996000 1175000
> > + 852000 1175000
> > + 792000 1150000
> > + 396000 1150000
> > + >;
> > + };
> > + };
> > +
> > + leds {
> > + compatible = "pwm-leds";
> > +
> > + led_red: red {
>
> Generic node names, so led-0.
>
> Add common properties for color and function.
>
> > + label = "red";
> > + max-brightness = <248>;
> > + default-state = "off";
> > + pwms = <&pwm2 0 500000>;
> > + };
> > +
> > + led_white: white {
>
> The same.
>
> > + label = "white";
> > + max-brightness = <248>;
> > + default-state = "off";
> > + pwms = <&pwm3 0 500000>;
> > + linux,default-trigger = "heartbeat";
> > + };
> > + };
> > +
> > + memory {
> > + reg = <0x10000000 0x40000000>;
> > + };
> > +
> > + regulators: regulators {
> > + compatible = "simple-bus";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
>
> This should not be a bus. Instead "regulator-0" and so on.
>
> > +
> > + supply_5P0: regulator@0 {
> > + compatible = "regulator-fixed";
> > + reg = <0>;
>
> Please run `make dtbs_check` (see Docs for this) and fix the
> warnings.
> Please fix automated check warnings before using reviewers time.
I built with W=1 and used checkpatch.pl. But I'm having trouble using
make dtbs_check. Seems like I get all warnings for all possible dts. Is
there a way to get warnings for a single dt only?
Best regards,
Philip Oberfichtner
>
> > + regulator-name = "5P0";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + regulator-always-on;
>
> Why do you need it? There is no control here, it's only used as a
> supply
> for other uncontrollable regulators (unless I missed something).
>
> > + };
> > +
> > + supply_VIN: regulator@1 {
> > + compatible = "regulator-fixed";
> > + reg = <1>;
> > + regulator-name = "VIN";
> > + regulator-min-microvolt = <4500000>;
> > + regulator-max-microvolt = <4500000>;
> > + regulator-always-on;
> > + vin-supply = <&supply_5P0>;
> > + };
> > +
> > + reg_usb_otg_vbus: regulator@2 {
> > + compatible = "regulator-fixed";
> > + reg = <2>;
> > + regulator-name = "usb_otg_vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + };
> > +
> > + reg_usb_h1_vbus: regulator@3 {
> > + compatible = "regulator-fixed";
> > + reg = <3>;
> > + regulator-name = "usb_h1_vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + regulator-always-on;
> > + vin-supply = <&supply_5P0>;
> > + };
> > +
> > + supply_VSNVS_3V0: regulator@4 {
> > + compatible = "regulator-fixed";
> > + reg = <4>;
> > + regulator-name = "VSNVS_3V0";
> > + regulator-min-microvolt = <3000000>;
> > + regulator-max-microvolt = <3000000>;
> > + regulator-always-on;
> > + vin-supply = <&supply_5P0>;
> > + };
> > +
> > + reg_lcd0_pwr: regulator-lcd0-pwr {
> > + compatible = "regulator-fixed";
> > + regulator-name = "LCD0 POWER";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_lcd_enable>;
> > + gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + regulator-boot-on;
> > + };
> > +
> > + reg_usb_h2_vbus: regulator@6 {
> > + compatible = "regulator-fixed";
> > + reg = <6>;
> > + regulator-name = "usb_h2_vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + vin-supply = <&supply_5P0> ;
> > + regulator-always-on;
> > + };
> > +
> > + supply_vref_dac: vref_dac {
>
> 1. No underscores in node names.
> 2. Did you compile dts with W=1 and fixed warnings?
>
>
> > + compatible = "regulator-fixed";
> > + regulator-name = "vref_dac";
> > + regulator-min-microvolt = <20000>;
> > + regulator-max-microvolt = <20000>;
> > + vin-supply = <&supply_5P0> ;
> > + regulator-boot-on;
> > + };
> > + };
> > +
> > + reset_gpio_led {
> > + compatible = "gpio-leds";
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_reset_gpio_led>;
> > +
> > + reset {
> > + label = "red_reset";
> > + gpios = <&gpio5 18 0>;
> > + default-state = "off";
> > + };
> > + };
> > +
> > + soc {
> > + aips1: bus@2000000 {};
> > + };
> > +};
> > +
> > +®_arm {
> > + vin-supply = <&pmic_sw2>;
> > +};
> > +
> > +®_soc {
> > + vin-supply = <&pmic_sw1abc>;
> > +};
> > +
> > +®_vdd1p1 {
> > + vin-supply = <&supply_VSNVS_3V0>;
> > +};
> > +
> > +®_vdd2p5 {
> > + vin-supply = <&supply_VSNVS_3V0>;
> > +};
> > +
> > +®_vdd3p0 {
> > + vin-supply = <&supply_VSNVS_3V0>;
> > +};
> > +
> > +&audmux {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_audmux>;
> > + status = "okay";
> > +};
> > +
> > +&fec {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_enet>;
> > + status = "okay";
> > +
> > + 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;
> > + };
> > + };
> > +};
> > +
> > +
>
> No need for two blank lines.
>
> > +&gpu_vg {
> > + status = "disabled";
> > +};
> > +
> > +&gpu_2d {
> > + status = "disabled";
> > +};
> > +
> > +&i2c1 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c1>;
> > + clock-frequency = <400000>;
> > + status = "okay";
> > +
> > + eeprom: eeprom@50 {
> > + compatible = "atmel,24c32";
> > + reg = <0x50>;
> > + pagesize = <32>;
> > + bytelen = <4096>;
> > + bus-id = <0>;
> > + flags = <0x80>; /* AT24_FLAG_ADDR16 */
> > + };
> > +
> > + lm75: lm75@49 {
>
> Generic node name.
>
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_lm75>;
> > +
> > + compatible = "national,lm75b";
> > + reg = <0x49>;
> > +
> > + interrupts = <7 0x4>;
> > + interrupt-parent = <&gpio4>;
> > + };
> > +
> > + pmic: pfuze100@8 {
>
> pmic, not pfuze
>
> > + compatible = "fsl,pfuze100";
> > + reg = <0x08>;
> > + uboot,bootcounter;
>
> Do not add undocumented properties. Please check all entire DTS for
> such
> undocumented stuff.
>
> > +
> > + VGEN1-supply = <&supply_AUX_3V15>;
> > + VGEN2-supply = <&supply_AUX_3V15>;
> > + VGEN3-supply = <&supply_sw4_3V3>;
> > + VGEN4-supply = <&supply_sw4_3V3>;
> > + VGEN5-supply = <&supply_SYS_4V2>;
> > + VGEN6-supply = <&supply_SYS_4V2>;
> > +
> > + VREFDDR-supply = <&supply_DDR_1V5>;
> > +
> > + SW1AB-supply = <&supply_SYS_4V2>;
> > + SW1C-supply = <&supply_SYS_4V2>;
> > + SW2-supply = <&supply_SYS_4V2>;
> > + SW3A-supply = <&supply_SYS_4V2>;
> > + SW3B-supply = <&supply_SYS_4V2>;
> > + SW4-supply = <&supply_SYS_4V2>;
> > +
> > + 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>;
> > + };
> > +
> > + pmic_sw2: sw2{
>
> Missing space.
>
> > + regulator-name = "VDD_ARM (sw2)";
> > +
>
> Why blank line here and not in other places?
>
> > + regulator-min-microvolt = <1050000>;
> > + regulator-max-microvolt = <1500000>;
> > + regulator-boot-on;
> > + regulator-always-on;
> > + regulator-ramp-delay = <6250>;
> > +
> > + default-voltage = <1300000>;
> > + };
> > +
> > + pmic_sw3a: sw3a {
> > + /* U-Boot sets correct voltage, shall
> > not be touched by the OS */
> > + compatible = "regulator-fixed";
> > + regulator-name = "DDR_1V5a";
> > + regulator-boot-on;
> > + regulator-always-on;
> > +
> > + };
> > +
> > + supply_DDR_1V5: sw3b {
> > + /* U-Boot sets correct voltage, shall
> > not be touched by the OS */
> > + compatible = "regulator-fixed";
> > + regulator-name = "DDR_1V5b";
> > + regulator-boot-on;
> > + regulator-always-on;
> > +
> > + };
> > +
> > + supply_AUX_3V15: sw4 {
> > + regulator-name = "AUX 3V15 (sw4)";
> > + regulator-min-microvolt = <800000>;
> > + regulator-max-microvolt = <3300000>;
> > +
> > + default-voltage = <3150000>;
> > +
> > + };
> > +
> > + swbst_reg: swbst {
> > + status = "disabled";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5150000>;
> > + regulator-boot-on;
> > + regulator-always-on;
> > +
> > + };
> > +
> > + snvs_reg: vsnvs {
> > + regulator-min-microvolt = <1200000>;
> > + regulator-max-microvolt = <3000000>;
> > + regulator-boot-on;
> > + regulator-always-on;
> > +
> > + default-voltage = <3000000>;
> > + };
> > +
> > + vref_reg: vrefddr {
> > + regulator-boot-on;
> > + regulator-always-on;
> > +
> > + default-voltage = <675000>;
> > + };
> > +
> > + vgen1_reg: vgen1 {
> > + regulator-min-microvolt = <800000>;
> > + regulator-max-microvolt = <1550000>;
> > + regulator-always-on;
> > +
> > + default-voltage = <1500000>;
> > + };
> > +
> > + vgen2_reg: vgen2 {
> > + regulator-min-microvolt = <800000>;
> > + regulator-max-microvolt = <1550000>;
> > + regulator-always-on;
> > +
> > + default-voltage = <1200000>;
> > + };
> > +
> > + vgen3_reg: vgen3 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-always-on;
> > +
> > + default-voltage = <2500000>;
> > + };
> > +
> > + vgen4_reg: vgen4 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-always-on;
> > + regulator-boot-on;
> > +
> > + default-voltage = <1800000>;
> > + };
> > +
> > + vgen5_reg: vgen5 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-always-on;
> > + regulator-boot-on;
> > +
> > + default-voltage = <2800000>;
> > + };
> > +
> > + vgen6_reg: vgen6 {
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <3300000>;
> > + regulator-always-on;
> > +
> > + default-voltage = <2800000>;
> > + };
> > +
> > + };
> > + };
> > +
> > + rtc: rtcpcf8563@51 {
>
> Generic node names.
>
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_rtc>;
> > +
> > + compatible = "nxp,pcf8563";
> > + reg = <0x51>;
> > + };
> > +};
> > +
> > +&i2c2 {
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&pinctrl_i2c2>;
> > + clock-frequency = <100000>;
> > + status = "okay";
> > +
> > + adc101c: ac101c@54 {
>
> Ugh...
>
> > + compatible = "ti,adc101c";
> > + reg = <0x54>;
> > + status = "okay";
> > + vref-supply = <&supply_vref_dac>;
> > + vcc-supply = <&supply_vref_dac>;
> > + };
> > +
> > + ad5602: ad5602@c {
> > + compatible = "adi,ad5602";
> > + reg = <0x0c>;
> > + status = "okay";
> > + vcc-supply = <&supply_vref_dac>;
> > + };
> > +
> > + eeprom_ext: eeprom_ext@50 {
>
> Generic node names, no underscores in node names.
>
> OK, I'll stop for now. :)
>
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] arm: dts: Add device tree for bosch acc board
2022-04-21 7:06 ` Philip Oberfichtner
@ 2022-04-21 7:37 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2022-04-21 7:37 UTC (permalink / raw)
To: Philip Oberfichtner, devicetree
Cc: Rob Herring, Krzysztof Kozlowski, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
linux-arm-kernel, linux-kernel, Winker Matthias
On 21/04/2022 09:06, Philip Oberfichtner wrote:
>
> The "operating-points" and "fsl,soc-operating-points" properties are
> defined in imx6q.dtsi. We are just overwriting them here.
OK, thanks for explanation.
(...)
>> Please run `make dtbs_check` (see Docs for this) and fix the
>> warnings.
>> Please fix automated check warnings before using reviewers time.
>
> I built with W=1 and used checkpatch.pl. But I'm having trouble using
> make dtbs_check. Seems like I get all warnings for all possible dts. Is
> there a way to get warnings for a single dt only?
I think no, it is not possible at the moment. I understand it's a pain
and already someone proposed to have a ability to check only subset of
DTS files.
Workaround is to build imx defconfig, run dtbs_check, touch your files
and run dtbs_check again looking for results.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-04-21 7:38 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-12 10:19 [PATCH 0/2] arm: dts: Add device tree for bosch acc board Philip Oberfichtner
2022-04-12 10:19 ` [PATCH 1/2] dt-bindings: arm: Add " Philip Oberfichtner
2022-04-12 11:00 ` Krzysztof Kozlowski
2022-04-12 10:19 ` [PATCH 2/2] arm: dts: Add device tree for " Philip Oberfichtner
2022-04-12 11:10 ` Krzysztof Kozlowski
2022-04-21 7:06 ` Philip Oberfichtner
2022-04-21 7:37 ` Krzysztof Kozlowski
2022-04-12 11:11 ` Krzysztof Kozlowski
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).