From: Marco Felsch <m.felsch@pengutronix.de> To: Oleksij Rempel <o.rempel@pengutronix.de> Cc: Mark Rutland <mark.rutland@arm.com>, Rob Herring <robh+dt@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, Shawn Guo <shawnguo@kernel.org>, devicetree@vger.kernel.org, Rob Herring <robh@kernel.org>, linux-kernel@vger.kernel.org, NXP Linux Team <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, David Jander <david@protonic.nl>, Fabio Estevam <festevam@gmail.com>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v6 1/5] ARM: dts: add Protonic PRTI6Q board Date: Wed, 22 Apr 2020 09:19:38 +0200 [thread overview] Message-ID: <20200422071937.32avvg6cknybnzyp@pengutronix.de> (raw) In-Reply-To: <20200421124057.19238-2-o.rempel@pengutronix.de> On 20-04-21 14:40, Oleksij Rempel wrote: > Protonic PRTI6Q is a development board and a base class for different > specific customer application boards based on the i.MX6 family of SoCs, > developed by Protonic Holland. > > Reviewed-by: Rob Herring <robh@kernel.org> > Signed-off-by: David Jander <david@protonic.nl> > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/imx6q-prti6q.dts | 529 ++++++++++++++++++++++++++ > arch/arm/boot/dts/imx6qdl-prti6q.dtsi | 174 +++++++++ > 3 files changed, 704 insertions(+) > create mode 100644 arch/arm/boot/dts/imx6q-prti6q.dts > create mode 100644 arch/arm/boot/dts/imx6qdl-prti6q.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index e8dd992013973..206a36a50575e 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -538,6 +538,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-pico-nymph.dtb \ > imx6q-pico-pi.dtb \ > imx6q-pistachio.dtb \ > + imx6q-prti6q.dtb \ > imx6q-rex-pro.dtb \ > imx6q-sabreauto.dtb \ > imx6q-sabrelite.dtb \ > diff --git a/arch/arm/boot/dts/imx6q-prti6q.dts b/arch/arm/boot/dts/imx6q-prti6q.dts > new file mode 100644 > index 0000000000000..b0d597a7d59cd > --- /dev/null > +++ b/arch/arm/boot/dts/imx6q-prti6q.dts > @@ -0,0 +1,529 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright (c) 2014 Protonic Holland > + */ > + > +/dts-v1/; > +#include "imx6q.dtsi" > +#include "imx6qdl-prti6q.dtsi" > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/sound/fsl-imx-audmux.h> > + > +/ { > + model = "Protonic PRTI6Q board"; > + compatible = "prt,prti6q", "fsl,imx6q"; > + > + memory@10000000 { > + device_type = "memory"; > + reg = <0x10000000 0xf0000000>; > + }; > + > + backlight_lcd: backlight-lcd { > + compatible = "pwm-backlight"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_backlight>; > + pwms = <&pwm1 0 5000000>; > + brightness-levels = <0 16 64 255>; > + num-interpolated-steps = <16>; > + default-brightness-level = <16>; > + power-supply = <®_3v3>; > + enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; > + }; > + > + can3_25m_osc: can3-25m-osc { Nit, can be named can_osc or can_25m_osc. > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <25000000>; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_leds>; > + > + led-debug0 { > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + > + led-debug1 { > + function = LED_FUNCTION_SD; > + gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "disk-activity"; > + }; > + }; > + > + panel { > + compatible = "kyo,tcg121xglp"; > + backlight = <&backlight_lcd>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <&lvds0_out>; > + }; > + }; > + }; > + > + reg_wifi: regulator-wifi { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_wifi_npd>; > + enable-active-high; > + gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>; > + regulator-max-microvolt = <1800000>; > + regulator-min-microvolt = <1800000>; > + regulator-name = "regulator-WL12xx"; > + startup-delay-us = <70000>; > + }; > + > + sound { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "prti6q-sgtl5000"; > + simple-audio-card,format = "i2s"; > + simple-audio-card,widgets = > + "Microphone", "Microphone Jack", > + "Line", "Line In Jack", > + "Headphone", "Headphone Jack", > + "Speaker", "External Speaker"; > + simple-audio-card,routing = > + "MIC_IN", "Microphone Jack", > + "LINE_IN", "Line In Jack", > + "Headphone Jack", "HP_OUT", > + "External Speaker", "LINE_OUT"; > + > + simple-audio-card,cpu { > + sound-dai = <&ssi1>; > + system-clock-frequency = <0>; > + }; > + > + simple-audio-card,codec { > + sound-dai = <&sgtl5000>; > + bitclock-master; > + frame-master; > + }; > + }; > + > + sound-spdif { > + compatible = "fsl,imx-audio-spdif"; > + model = "imx-spdif"; > + spdif-controller = <&spdif>; > + spdif-in; > + spdif-out; > + }; > +}; > + > +&audmux { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_audmux>; > + status = "okay"; > + > + mux_ssi1 { > + fsl,audmux-port = <0>; > + fsl,port-config = < > + IMX_AUDMUX_V2_PTCR_SYN 0 > + IMX_AUDMUX_V2_PTCR_TFSEL(2) 0 > + IMX_AUDMUX_V2_PTCR_TCSEL(2) 0 > + IMX_AUDMUX_V2_PTCR_TFSDIR 0 > + IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2) > + >; > + }; > + > + mux_pins3 { > + fsl,audmux-port = <2>; > + fsl,port-config = < > + IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0) > + 0 IMX_AUDMUX_V2_PDCR_TXRXEN > + >; > + }; > +}; > + > +&can2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_can2>; > + status = "okay"; > +}; > + > +&ecspi1 { > + cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi1>; > + status = "okay"; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <20000000>; > + }; > +}; > + > +&ecspi2 { > + cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>, <&gpio4 25 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>; > + status = "okay"; > + > + can@0 { > + compatible = "microchip,mcp2515"; > + reg = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_can3>; > + clocks = <&can3_25m_osc>; > + interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>; > + spi-max-frequency = <5000000>; > + }; > + > + adc@1 { > + compatible = "ti,adc128s052"; > + reg = <1>; > + spi-max-frequency = <2000000>; > + vref-supply = <®_3v3>; > + }; > +}; > + > +&ecspi3 { > + cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi3>; > + status = "okay"; > +}; > + > +&fec { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enet>; > + phy-mode = "rgmii-id"; > + phy-handle = <&rgmii_phy>; > + status = "okay"; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* Microchip KSZ9031RNX PHY */ > + rgmii_phy: ethernet-phy@0 { > + reg = <0>; > + interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>; > + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; > + reset-assert-us = <10000>; > + reset-deassert-us = <300>; > + }; > + }; > +}; > + > +&hdmi { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_hdmi>; > + ddc-i2c-bus = <&i2c2>; > + status = "okay"; > +}; > + > +&i2c1 { > + sgtl5000: audio-codec@a { > + compatible = "fsl,sgtl5000"; > + reg = <0xa>; > + #sound-dai-cells = <0>; > + clocks = <&clks 201>; > + VDDA-supply = <®_3v3>; > + VDDIO-supply = <®_3v3>; > + VDDD-supply = <®_1v8>; > + }; > +}; > + > +/* DDC */ > +&i2c2 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + status = "okay"; > +}; > + > +&i2c3 { > + adc@49 { > + compatible = "ti,ads1015"; > + reg = <0x49>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* can2_l */ > + channel@4 { > + reg = <4>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + > + /* can2_h */ > + channel@5 { > + reg = <5>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + > + /* can1_l */ > + channel@6 { > + reg = <6>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + > + /* can1_h */ > + channel@7 { > + reg = <7>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + }; > +}; > + > +&pcie { > + status = "okay"; > +}; > + > +&pwm1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm1>; > + status = "okay"; > +}; > + > +&ldb { > + status = "okay"; > + > + lvds-channel@0 { > + status = "okay"; > + > + port@4 { > + reg = <4>; > + > + lvds0_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + }; > +}; > + > +&sata { > + status = "okay"; > +}; > + > +&snvs_poweroff { > + status = "okay"; > +}; > + > +&spdif { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_spdif>; > + status = "okay"; > +}; > + > +&ssi1 { > + #sound-dai-cells = <0>; > + fsl,mode = "ac97-slave"; > + status = "okay"; > +}; > + > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart2>; > + status = "okay"; > +}; > + > +&uart5 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart5>; > + status = "okay"; > +}; > + > +&usbotg { > + pinctrl-0 = <&pinctrl_usbotg &pinctrl_usbotg_id>; > +}; > + > +&usdhc2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc2>; > + non-removable; > + vmmc-supply = <®_wifi>; > + cap-power-off-card; > + keep-power-in-suspend; > + status = "okay"; > + > + wifi { > + compatible = "ti,wl1271"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_wifi>; > + interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>; > + ref-clock-frequency = "38400000"; > + tcxo-clock-frequency = "19200000"; > + }; > +}; > + > +&iomuxc { > + pinctrl_audmux: audmuxgrp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x030b0 > + MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 > + MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 > + MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0 > + MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 > + >; > + }; > + > + pinctrl_backlight: backlightgrp { > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28 0x1b0b0 > + >; > + }; > + > + pinctrl_can2: can2grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x80000000 > + MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x80000000 > + >; > + }; > + > + pinctrl_can3: can3grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b1 > + >; > + }; > + > + pinctrl_ecspi1: ecspi1grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 > + MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 > + MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 > + /* CS */ > + MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1 > + >; > + }; > + > + pinctrl_ecspi2: ecspi2grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1 > + MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1 > + MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1 > + MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x000b1 > + >; > + }; > + > + pinctrl_ecspi2_cs: ecspi2csgrp { > + fsl,pins = < > + /* ADC128S022 CS */ > + MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x1b0b1 > + >; > + }; > + > + pinctrl_ecspi3: ecspi3grp { > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 > + MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 > + MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 > + MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x000b1 > + >; > + }; > + > + pinctrl_enet: enetgrp { > + fsl,pins = < > + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 > + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 > + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 > + MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 > + MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 > + MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 > + MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x10030 > + MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x10030 > + MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x10030 > + MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x10030 > + MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x10030 > + MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x10030 > + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x10030 > + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x10030 > + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x10030 > + > + /* Phy reset */ > + MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0 > + MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b1 > + >; > + }; > + > + pinctrl_hdmi: hdmigrp { > + fsl,pins = < > + /* NOTE: DDC is done via I2C2, so DON'T > + * configure DDC pins for HDMI! > + */ > + MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0 > + >; > + }; > + > + /* DDC */ > + pinctrl_i2c2: i2c2grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 > + MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_leds: ledsgrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0 > + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 > + >; > + }; > + > + pinctrl_pwm1: pwm1grp { > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0 > + >; > + }; > + > + pinctrl_spdif: spdifgrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_16__SPDIF_IN 0x1b0b0 > + MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x1b0b0 > + >; > + }; > + > + pinctrl_uart2: uart2grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x1b0b1 > + MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x1b0b1 > + MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x1b0b1 > + MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x1b0b1 > + >; > + }; > + > + pinctrl_uart5: uart5grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 > + MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 > + >; > + }; > + > + pinctrl_usbotg_id: usbotgidgrp { > + fsl,pins = < > + MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1f058 > + >; > + }; > + > + pinctrl_usdhc2: usdhc2grp { > + fsl,pins = < > + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9 > + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9 > + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 > + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 > + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 > + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 > + >; > + }; > + > + pinctrl_wifi: wifigrp { > + fsl,pins = < > + /* WL12xx IRQ */ > + MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x10880 > + >; > + }; > + > + pinctrl_wifi_npd: wifinpd { > + fsl,pins = < > + MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b8b0 > + >; > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6qdl-prti6q.dtsi b/arch/arm/boot/dts/imx6qdl-prti6q.dtsi > new file mode 100644 > index 0000000000000..7090a7ca83d8d > --- /dev/null > +++ b/arch/arm/boot/dts/imx6qdl-prti6q.dtsi > @@ -0,0 +1,174 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright (c) 2014 Protonic Holland > + */ > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +/ { > + chosen { > + stdout-path = &uart4; > + }; > + > + reg_1v8: regulator-1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "1v8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > + reg_3v3: regulator-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + }; > + > + reg_usb_h1_vbus: regulator-h1-vbus { > + compatible = "regulator-fixed"; > + regulator-name = "h1-vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > + > + reg_usb_otg_vbus: regulator-otg-vbus { > + compatible = "regulator-fixed"; > + regulator-name = "otg-vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > +}; > + > +&can1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_can1>; > + status = "okay"; > +}; You change the pinctl for every .dts so we can drop it from the common .dtsi completely. > +&i2c1 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c1>; > + status = "okay"; > +}; > + > +&i2c3 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c3>; > + status = "okay"; > + > + temperature-sensor@70 { > + compatible = "ti,tmp103"; > + reg = <0x70>; > + }; > +}; > + > +&uart4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart4>; > + status = "okay"; > +}; > + > +&usbh1 { > + vbus-supply = <®_usb_h1_vbus>; > + phy_type = "utmi"; > + dr_mode = "host"; > + status = "okay"; > +}; > + > +&usbotg { > + vbus-supply = <®_usb_otg_vbus>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usbotg>; > + phy_type = "utmi"; > + dr_mode = "host"; > + disable-over-current; > + status = "okay"; > +}; I don't count the .dts which disables the nodes because we enabled it here. I would setup the mux and stuff here but would not set it to "okay". It is a bit more straight forward to enable a node rather then: imx6qdl.dtsi -> disable common.dtsi -> enable specific.dts -> disable Regards, Marco > + > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc1>; > + cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; > + status = "okay"; > +}; > + > +&usdhc3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc3>; > + bus-width = <8>; > + non-removable; > + status = "okay"; > +}; > + > +&iomuxc { > + pinctrl_can1: can1grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x80000000 > + MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x80000000 > + >; > + }; > + > + pinctrl_i2c1: i2c1grp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001f8b1 > + MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001f8b1 > + >; > + }; > + > + pinctrl_i2c3: i2c3grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 > + MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_uart4: uart4grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 > + MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 > + >; > + }; > + > + pinctrl_usdhc1: usdhc1grp { > + fsl,pins = < > + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170f9 > + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f9 > + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f9 > + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f9 > + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f9 > + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f9 > + MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x1b0b0 > + >; > + }; > + > + pinctrl_usdhc3: usdhc3grp { > + fsl,pins = < > + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17099 > + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10099 > + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17099 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17099 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17099 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17099 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17099 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17099 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17099 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17099 > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x1b0b1 > + >; > + }; > + > + pinctrl_usbotg: usbotggrp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x1b0b0 > + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 > + >; > + }; > +}; > -- > 2.26.1 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
WARNING: multiple messages have this Message-ID (diff)
From: Marco Felsch <m.felsch@pengutronix.de> To: Oleksij Rempel <o.rempel@pengutronix.de> Cc: Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org, Rob Herring <robh@kernel.org>, Fabio Estevam <festevam@gmail.com>, Sascha Hauer <s.hauer@pengutronix.de>, linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>, NXP Linux Team <linux-imx@nxp.com>, Pengutronix Kernel Team <kernel@pengutronix.de>, David Jander <david@protonic.nl>, Shawn Guo <shawnguo@kernel.org>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v6 1/5] ARM: dts: add Protonic PRTI6Q board Date: Wed, 22 Apr 2020 09:19:38 +0200 [thread overview] Message-ID: <20200422071937.32avvg6cknybnzyp@pengutronix.de> (raw) In-Reply-To: <20200421124057.19238-2-o.rempel@pengutronix.de> On 20-04-21 14:40, Oleksij Rempel wrote: > Protonic PRTI6Q is a development board and a base class for different > specific customer application boards based on the i.MX6 family of SoCs, > developed by Protonic Holland. > > Reviewed-by: Rob Herring <robh@kernel.org> > Signed-off-by: David Jander <david@protonic.nl> > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> > --- > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/imx6q-prti6q.dts | 529 ++++++++++++++++++++++++++ > arch/arm/boot/dts/imx6qdl-prti6q.dtsi | 174 +++++++++ > 3 files changed, 704 insertions(+) > create mode 100644 arch/arm/boot/dts/imx6q-prti6q.dts > create mode 100644 arch/arm/boot/dts/imx6qdl-prti6q.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index e8dd992013973..206a36a50575e 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -538,6 +538,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-pico-nymph.dtb \ > imx6q-pico-pi.dtb \ > imx6q-pistachio.dtb \ > + imx6q-prti6q.dtb \ > imx6q-rex-pro.dtb \ > imx6q-sabreauto.dtb \ > imx6q-sabrelite.dtb \ > diff --git a/arch/arm/boot/dts/imx6q-prti6q.dts b/arch/arm/boot/dts/imx6q-prti6q.dts > new file mode 100644 > index 0000000000000..b0d597a7d59cd > --- /dev/null > +++ b/arch/arm/boot/dts/imx6q-prti6q.dts > @@ -0,0 +1,529 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright (c) 2014 Protonic Holland > + */ > + > +/dts-v1/; > +#include "imx6q.dtsi" > +#include "imx6qdl-prti6q.dtsi" > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/sound/fsl-imx-audmux.h> > + > +/ { > + model = "Protonic PRTI6Q board"; > + compatible = "prt,prti6q", "fsl,imx6q"; > + > + memory@10000000 { > + device_type = "memory"; > + reg = <0x10000000 0xf0000000>; > + }; > + > + backlight_lcd: backlight-lcd { > + compatible = "pwm-backlight"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_backlight>; > + pwms = <&pwm1 0 5000000>; > + brightness-levels = <0 16 64 255>; > + num-interpolated-steps = <16>; > + default-brightness-level = <16>; > + power-supply = <®_3v3>; > + enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; > + }; > + > + can3_25m_osc: can3-25m-osc { Nit, can be named can_osc or can_25m_osc. > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-frequency = <25000000>; > + }; > + > + leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_leds>; > + > + led-debug0 { > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + > + led-debug1 { > + function = LED_FUNCTION_SD; > + gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "disk-activity"; > + }; > + }; > + > + panel { > + compatible = "kyo,tcg121xglp"; > + backlight = <&backlight_lcd>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <&lvds0_out>; > + }; > + }; > + }; > + > + reg_wifi: regulator-wifi { > + compatible = "regulator-fixed"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_wifi_npd>; > + enable-active-high; > + gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>; > + regulator-max-microvolt = <1800000>; > + regulator-min-microvolt = <1800000>; > + regulator-name = "regulator-WL12xx"; > + startup-delay-us = <70000>; > + }; > + > + sound { > + compatible = "simple-audio-card"; > + simple-audio-card,name = "prti6q-sgtl5000"; > + simple-audio-card,format = "i2s"; > + simple-audio-card,widgets = > + "Microphone", "Microphone Jack", > + "Line", "Line In Jack", > + "Headphone", "Headphone Jack", > + "Speaker", "External Speaker"; > + simple-audio-card,routing = > + "MIC_IN", "Microphone Jack", > + "LINE_IN", "Line In Jack", > + "Headphone Jack", "HP_OUT", > + "External Speaker", "LINE_OUT"; > + > + simple-audio-card,cpu { > + sound-dai = <&ssi1>; > + system-clock-frequency = <0>; > + }; > + > + simple-audio-card,codec { > + sound-dai = <&sgtl5000>; > + bitclock-master; > + frame-master; > + }; > + }; > + > + sound-spdif { > + compatible = "fsl,imx-audio-spdif"; > + model = "imx-spdif"; > + spdif-controller = <&spdif>; > + spdif-in; > + spdif-out; > + }; > +}; > + > +&audmux { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_audmux>; > + status = "okay"; > + > + mux_ssi1 { > + fsl,audmux-port = <0>; > + fsl,port-config = < > + IMX_AUDMUX_V2_PTCR_SYN 0 > + IMX_AUDMUX_V2_PTCR_TFSEL(2) 0 > + IMX_AUDMUX_V2_PTCR_TCSEL(2) 0 > + IMX_AUDMUX_V2_PTCR_TFSDIR 0 > + IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2) > + >; > + }; > + > + mux_pins3 { > + fsl,audmux-port = <2>; > + fsl,port-config = < > + IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0) > + 0 IMX_AUDMUX_V2_PDCR_TXRXEN > + >; > + }; > +}; > + > +&can2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_can2>; > + status = "okay"; > +}; > + > +&ecspi1 { > + cs-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi1>; > + status = "okay"; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <20000000>; > + }; > +}; > + > +&ecspi2 { > + cs-gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>, <&gpio4 25 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>; > + status = "okay"; > + > + can@0 { > + compatible = "microchip,mcp2515"; > + reg = <0>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_can3>; > + clocks = <&can3_25m_osc>; > + interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>; > + spi-max-frequency = <5000000>; > + }; > + > + adc@1 { > + compatible = "ti,adc128s052"; > + reg = <1>; > + spi-max-frequency = <2000000>; > + vref-supply = <®_3v3>; > + }; > +}; > + > +&ecspi3 { > + cs-gpios = <&gpio4 24 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ecspi3>; > + status = "okay"; > +}; > + > +&fec { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_enet>; > + phy-mode = "rgmii-id"; > + phy-handle = <&rgmii_phy>; > + status = "okay"; > + > + mdio { > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* Microchip KSZ9031RNX PHY */ > + rgmii_phy: ethernet-phy@0 { > + reg = <0>; > + interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>; > + reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; > + reset-assert-us = <10000>; > + reset-deassert-us = <300>; > + }; > + }; > +}; > + > +&hdmi { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_hdmi>; > + ddc-i2c-bus = <&i2c2>; > + status = "okay"; > +}; > + > +&i2c1 { > + sgtl5000: audio-codec@a { > + compatible = "fsl,sgtl5000"; > + reg = <0xa>; > + #sound-dai-cells = <0>; > + clocks = <&clks 201>; > + VDDA-supply = <®_3v3>; > + VDDIO-supply = <®_3v3>; > + VDDD-supply = <®_1v8>; > + }; > +}; > + > +/* DDC */ > +&i2c2 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c2>; > + status = "okay"; > +}; > + > +&i2c3 { > + adc@49 { > + compatible = "ti,ads1015"; > + reg = <0x49>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* can2_l */ > + channel@4 { > + reg = <4>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + > + /* can2_h */ > + channel@5 { > + reg = <5>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + > + /* can1_l */ > + channel@6 { > + reg = <6>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + > + /* can1_h */ > + channel@7 { > + reg = <7>; > + ti,gain = <3>; > + ti,datarate = <3>; > + }; > + }; > +}; > + > +&pcie { > + status = "okay"; > +}; > + > +&pwm1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_pwm1>; > + status = "okay"; > +}; > + > +&ldb { > + status = "okay"; > + > + lvds-channel@0 { > + status = "okay"; > + > + port@4 { > + reg = <4>; > + > + lvds0_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + }; > +}; > + > +&sata { > + status = "okay"; > +}; > + > +&snvs_poweroff { > + status = "okay"; > +}; > + > +&spdif { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_spdif>; > + status = "okay"; > +}; > + > +&ssi1 { > + #sound-dai-cells = <0>; > + fsl,mode = "ac97-slave"; > + status = "okay"; > +}; > + > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart2>; > + status = "okay"; > +}; > + > +&uart5 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart5>; > + status = "okay"; > +}; > + > +&usbotg { > + pinctrl-0 = <&pinctrl_usbotg &pinctrl_usbotg_id>; > +}; > + > +&usdhc2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc2>; > + non-removable; > + vmmc-supply = <®_wifi>; > + cap-power-off-card; > + keep-power-in-suspend; > + status = "okay"; > + > + wifi { > + compatible = "ti,wl1271"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_wifi>; > + interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>; > + ref-clock-frequency = "38400000"; > + tcxo-clock-frequency = "19200000"; > + }; > +}; > + > +&iomuxc { > + pinctrl_audmux: audmuxgrp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x030b0 > + MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 > + MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 > + MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0 > + MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 > + >; > + }; > + > + pinctrl_backlight: backlightgrp { > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28 0x1b0b0 > + >; > + }; > + > + pinctrl_can2: can2grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x80000000 > + MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x80000000 > + >; > + }; > + > + pinctrl_can3: can3grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b1 > + >; > + }; > + > + pinctrl_ecspi1: ecspi1grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 > + MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1 > + MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 > + /* CS */ > + MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x000b1 > + >; > + }; > + > + pinctrl_ecspi2: ecspi2grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1 > + MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1 > + MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1 > + MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x000b1 > + >; > + }; > + > + pinctrl_ecspi2_cs: ecspi2csgrp { > + fsl,pins = < > + /* ADC128S022 CS */ > + MX6QDL_PAD_DISP0_DAT4__GPIO4_IO25 0x1b0b1 > + >; > + }; > + > + pinctrl_ecspi3: ecspi3grp { > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1 > + MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1 > + MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1 > + MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x000b1 > + >; > + }; > + > + pinctrl_enet: enetgrp { > + fsl,pins = < > + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 > + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030 > + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030 > + MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 > + MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 > + MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030 > + MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x10030 > + MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x10030 > + MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x10030 > + MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x10030 > + MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x10030 > + MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x10030 > + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x10030 > + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x10030 > + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x10030 > + > + /* Phy reset */ > + MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0 > + MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b1 > + >; > + }; > + > + pinctrl_hdmi: hdmigrp { > + fsl,pins = < > + /* NOTE: DDC is done via I2C2, so DON'T > + * configure DDC pins for HDMI! > + */ > + MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0 > + >; > + }; > + > + /* DDC */ > + pinctrl_i2c2: i2c2grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1 > + MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_leds: ledsgrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0 > + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 > + >; > + }; > + > + pinctrl_pwm1: pwm1grp { > + fsl,pins = < > + MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0 > + >; > + }; > + > + pinctrl_spdif: spdifgrp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_16__SPDIF_IN 0x1b0b0 > + MX6QDL_PAD_GPIO_19__SPDIF_OUT 0x1b0b0 > + >; > + }; > + > + pinctrl_uart2: uart2grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x1b0b1 > + MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x1b0b1 > + MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B 0x1b0b1 > + MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B 0x1b0b1 > + >; > + }; > + > + pinctrl_uart5: uart5grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1 > + MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1 > + >; > + }; > + > + pinctrl_usbotg_id: usbotgidgrp { > + fsl,pins = < > + MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1f058 > + >; > + }; > + > + pinctrl_usdhc2: usdhc2grp { > + fsl,pins = < > + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9 > + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9 > + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 > + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 > + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 > + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 > + >; > + }; > + > + pinctrl_wifi: wifigrp { > + fsl,pins = < > + /* WL12xx IRQ */ > + MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x10880 > + >; > + }; > + > + pinctrl_wifi_npd: wifinpd { > + fsl,pins = < > + MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b8b0 > + >; > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6qdl-prti6q.dtsi b/arch/arm/boot/dts/imx6qdl-prti6q.dtsi > new file mode 100644 > index 0000000000000..7090a7ca83d8d > --- /dev/null > +++ b/arch/arm/boot/dts/imx6qdl-prti6q.dtsi > @@ -0,0 +1,174 @@ > +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT > +/* > + * Copyright (c) 2014 Protonic Holland > + */ > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > + > +/ { > + chosen { > + stdout-path = &uart4; > + }; > + > + reg_1v8: regulator-1v8 { > + compatible = "regulator-fixed"; > + regulator-name = "1v8"; > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + regulator-always-on; > + }; > + > + reg_3v3: regulator-3v3 { > + compatible = "regulator-fixed"; > + regulator-name = "3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + regulator-always-on; > + }; > + > + reg_usb_h1_vbus: regulator-h1-vbus { > + compatible = "regulator-fixed"; > + regulator-name = "h1-vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + regulator-always-on; > + }; > + > + reg_usb_otg_vbus: regulator-otg-vbus { > + compatible = "regulator-fixed"; > + regulator-name = "otg-vbus"; > + regulator-min-microvolt = <5000000>; > + regulator-max-microvolt = <5000000>; > + gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + }; > +}; > + > +&can1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_can1>; > + status = "okay"; > +}; You change the pinctl for every .dts so we can drop it from the common .dtsi completely. > +&i2c1 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c1>; > + status = "okay"; > +}; > + > +&i2c3 { > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_i2c3>; > + status = "okay"; > + > + temperature-sensor@70 { > + compatible = "ti,tmp103"; > + reg = <0x70>; > + }; > +}; > + > +&uart4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_uart4>; > + status = "okay"; > +}; > + > +&usbh1 { > + vbus-supply = <®_usb_h1_vbus>; > + phy_type = "utmi"; > + dr_mode = "host"; > + status = "okay"; > +}; > + > +&usbotg { > + vbus-supply = <®_usb_otg_vbus>; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usbotg>; > + phy_type = "utmi"; > + dr_mode = "host"; > + disable-over-current; > + status = "okay"; > +}; I don't count the .dts which disables the nodes because we enabled it here. I would setup the mux and stuff here but would not set it to "okay". It is a bit more straight forward to enable a node rather then: imx6qdl.dtsi -> disable common.dtsi -> enable specific.dts -> disable Regards, Marco > + > +&usdhc1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc1>; > + cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; > + status = "okay"; > +}; > + > +&usdhc3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_usdhc3>; > + bus-width = <8>; > + non-removable; > + status = "okay"; > +}; > + > +&iomuxc { > + pinctrl_can1: can1grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x80000000 > + MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x80000000 > + >; > + }; > + > + pinctrl_i2c1: i2c1grp { > + fsl,pins = < > + MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001f8b1 > + MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001f8b1 > + >; > + }; > + > + pinctrl_i2c3: i2c3grp { > + fsl,pins = < > + MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 > + MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 > + >; > + }; > + > + pinctrl_uart4: uart4grp { > + fsl,pins = < > + MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 > + MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 > + >; > + }; > + > + pinctrl_usdhc1: usdhc1grp { > + fsl,pins = < > + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170f9 > + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f9 > + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f9 > + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f9 > + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f9 > + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f9 > + MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x1b0b0 > + >; > + }; > + > + pinctrl_usdhc3: usdhc3grp { > + fsl,pins = < > + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17099 > + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10099 > + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17099 > + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17099 > + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17099 > + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17099 > + MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17099 > + MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17099 > + MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17099 > + MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17099 > + MX6QDL_PAD_SD3_RST__SD3_RESET 0x1b0b1 > + >; > + }; > + > + pinctrl_usbotg: usbotggrp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x1b0b0 > + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 > + >; > + }; > +}; > -- > 2.26.1 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-04-22 7:19 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-21 12:40 [PATCH v6 0/5] mainline Protonic boards Oleksij Rempel 2020-04-21 12:40 ` Oleksij Rempel 2020-04-21 12:40 ` [PATCH v6 1/5] ARM: dts: add Protonic PRTI6Q board Oleksij Rempel 2020-04-21 12:40 ` Oleksij Rempel 2020-04-22 7:19 ` Marco Felsch [this message] 2020-04-22 7:19 ` Marco Felsch 2020-04-21 12:40 ` [PATCH v6 2/5] ARM: dts: add Protonic WD2 board Oleksij Rempel 2020-04-21 12:40 ` Oleksij Rempel 2020-04-21 12:40 ` [PATCH v6 3/5] ARM: dts: add Protonic VT7 board Oleksij Rempel 2020-04-21 12:40 ` Oleksij Rempel 2020-04-22 7:04 ` Marco Felsch 2020-04-22 7:04 ` Marco Felsch 2020-04-22 7:11 ` Marco Felsch 2020-04-22 7:11 ` Marco Felsch 2020-04-22 9:38 ` David Jander 2020-04-22 9:38 ` David Jander 2020-04-22 11:20 ` Marco Felsch 2020-04-22 11:20 ` Marco Felsch 2020-04-21 12:40 ` [PATCH v6 4/5] ARM: dts: add Protonic RVT board Oleksij Rempel 2020-04-21 12:40 ` Oleksij Rempel 2020-04-21 12:40 ` [PATCH v6 5/5] dt-bindings: arm: fsl: add different Protonic boards Oleksij Rempel 2020-04-21 12:40 ` Oleksij Rempel 2020-05-05 19:00 ` Rob Herring 2020-05-05 19:00 ` Rob Herring
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=20200422071937.32avvg6cknybnzyp@pengutronix.de \ --to=m.felsch@pengutronix.de \ --cc=david@protonic.nl \ --cc=devicetree@vger.kernel.org \ --cc=festevam@gmail.com \ --cc=kernel@pengutronix.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-imx@nxp.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=o.rempel@pengutronix.de \ --cc=robh+dt@kernel.org \ --cc=robh@kernel.org \ --cc=s.hauer@pengutronix.de \ --cc=shawnguo@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.