* [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi
@ 2015-11-28 14:47 Marek Vasut
2015-11-28 14:47 ` [PATCH V3 2/2] ARM: dts: imx6q: add Novena board Marek Vasut
2015-12-14 1:36 ` [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi Shawn Guo
0 siblings, 2 replies; 20+ messages in thread
From: Marek Vasut @ 2015-11-28 14:47 UTC (permalink / raw)
To: linux-arm-kernel
From: Sean Cross <xobs@kosagi.com>
Add a vendor prefix for Sutajio Ko-Usagi PTE Ltd., which goes by the
more common name of Kosagi.
Signed-off-by: Sean Cross <xobs@kosagi.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Rob Herring <robh@kernel.org>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
---
Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
1 file changed, 1 insertion(+)
V2: Add my SoB line.
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 62ff22f..d3ee06e 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -124,6 +124,7 @@ jedec JEDEC Solid State Technology Association
karo Ka-Ro electronics GmbH
keymile Keymile GmbH
kinetic Kinetic Technologies
+kosagi Sutajio Ko-Usagi PTE Ltd.
lacie LaCie
lantiq Lantiq Semiconductor
lenovo Lenovo Group Ltd.
--
2.1.4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-11-28 14:47 [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi Marek Vasut
@ 2015-11-28 14:47 ` Marek Vasut
2015-11-30 10:19 ` Lucas Stach
` (2 more replies)
2015-12-14 1:36 ` [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi Shawn Guo
1 sibling, 3 replies; 20+ messages in thread
From: Marek Vasut @ 2015-11-28 14:47 UTC (permalink / raw)
To: linux-arm-kernel
From: Sean Cross <xobs@kosagi.com>
Novena is an open-hardware laptop/desktop/bare board.
See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
Signed-off-by: Sean Cross <xobs@kosagi.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Sean Cross <xobs@kosagi.com>
Cc: Shawn Guo <shawnguo@kernel.org>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6q-novena.dts | 846 +++++++++++++++++++++++++++++++++++++
2 files changed, 847 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
V2: Fix the PCIe regulator, make it always on
Fix the polarity of SD2 WP and CD lines, make them active low.
Drop the simple-bus for regulators, put them in /soc instead.
Configure the mux of all pins instead of depending on bootloader.
Change license to Dual X11/GPLv2+ (Acked by Sean)
Sort the nodes alphabetically.
V3: Drop the spidev node
Drop the fsl,mode = "i2s-slave";
Move regulators into /
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 760a737..9eb8fa8 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -325,6 +325,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6q-hummingboard.dtb \
imx6q-nitrogen6x.dtb \
imx6q-nitrogen6_max.dtb \
+ imx6q-novena.dtb \
imx6q-phytec-pbab01.dtb \
imx6q-rex-pro.dtb \
imx6q-sabreauto.dtb \
diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
new file mode 100644
index 0000000..a6b179e
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-novena.dts
@@ -0,0 +1,846 @@
+/*
+ * Copyright 2015 Sutajio Ko-Usagi PTE LTD
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this file; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Kosagi Novena Dual/Quad";
+ compatible = "kosagi,imx6q-novena", "fsl,imx6q";
+
+ memory {
+ reg = <0x10000000 0xefffffff>;
+ };
+
+ chosen {
+ stdout-path = &uart2;
+ };
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm1 0 10000000>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_backlight_novena>;
+ power-supply = <®_lvds_lcd>;
+
+ brightness-levels = <0 3 6 12 16 24 32 48 64 96 128 192 255>;
+ default-brightness-level = <12>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_keys_novena>;
+
+ user-button {
+ label = "User Button";
+ gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+
+ lid {
+ label = "Lid";
+ gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
+ linux,input-type = <5>; /* EV_SW */
+ linux,code = <0>; /* SW_LID */
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_leds_novena>;
+
+ heartbeat {
+ label = "novena:white:panel";
+ gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+ };
+
+ panel: panel {
+ compatible = "innolux,n133hse-ea1", "simple-panel";
+ backlight = <&backlight>;
+ };
+
+ reg_2p5v: 2p5v {
+ compatible = "regulator-fixed";
+ regulator-name = "2P5V";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-always-on;
+ };
+
+ reg_3p3v: 3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "3P3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_audio_codec: es8328-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "es8328-power";
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ startup-delay-us = <400000>;
+ gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_display: display-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd-display-power";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <200000>;
+ gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_lvds_lcd: lcd-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd-lvds-power";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_pcie: pcie-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "pcie-bus-power";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ reg_sata: sata-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "sata-power";
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <10000>;
+ gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_usb_otg_vbus: usb_otg_vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_otg_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ };
+
+ sound {
+ compatible = "fsl,imx-audio-es8328";
+ model = "imx-audio-es8328";
+ ssi-controller = <&ssi1>;
+ audio-codec = <&codec>;
+ audio-amp-supply = <®_audio_codec>;
+ jack-gpio = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+ audio-routing =
+ "Speaker", "LOUT2",
+ "Speaker", "ROUT2",
+ "Speaker", "audio-amp",
+ "Headphone", "ROUT1",
+ "Headphone", "LOUT1",
+ "LINPUT1", "Mic Jack",
+ "RINPUT1", "Mic Jack",
+ "Mic Jack", "Mic Bias";
+ mux-int-port = <0x1>;
+ mux-ext-port = <0x3>;
+ };
+};
+
+&audmux {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_audmux_novena>;
+ status = "okay";
+};
+
+&ecspi3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ecspi3_novena>;
+ fsl,spi-num-chipselects = <3>;
+ status = "okay";
+};
+
+&fec {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_enet_novena>;
+ phy-mode = "rgmii";
+ phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+ rxc-skew-ps = <3000>;
+ rxdv-skew-ps = <0>;
+ txc-skew-ps = <3000>;
+ txen-skew-ps = <0>;
+ rxd0-skew-ps = <0>;
+ rxd1-skew-ps = <0>;
+ rxd2-skew-ps = <0>;
+ rxd3-skew-ps = <0>;
+ txd0-skew-ps = <3000>;
+ txd1-skew-ps = <3000>;
+ txd2-skew-ps = <3000>;
+ txd3-skew-ps = <3000>;
+ status = "okay";
+};
+
+&hdmi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hdmi_novena>;
+ ddc-i2c-bus = <&i2c2>;
+ status = "okay";
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1_novena>;
+ status = "okay";
+
+ accel: mma8452 at 1c {
+ compatible = "fsl,mma8452";
+ reg = <0x1c>;
+ };
+
+ rtc: pcf8523 at 68 {
+ compatible = "nxp,pcf8523";
+ reg = <0x68>;
+ };
+
+ sbs_battery: bq20z75 at 0b {
+ compatible = "sbs,sbs-battery";
+ reg = <0x0b>;
+ sbs,i2c-retry-count = <50>;
+ };
+
+ touch: stmpe811 at 44 {
+ compatible = "st,stmpe811";
+ reg = <0x44>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ irq-gpio = <&gpio5 13 GPIO_ACTIVE_HIGH>;
+ id = <0>;
+ blocks = <0x5>;
+ irq-trigger = <0x1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_stmpe_novena>;
+ vio-supply = <®_3p3v>;
+ vcc-supply = <®_3p3v>;
+
+ stmpe_touchscreen {
+ compatible = "st,stmpe-ts";
+ st,sample-time = <4>;
+ st,mod-12b = <1>;
+ st,ref-sel = <0>;
+ st,adc-freq = <1>;
+ st,ave-ctrl = <1>;
+ st,touch-det-delay = <2>;
+ st,settling = <2>;
+ st,fraction-z = <7>;
+ st,i-drive = <1>;
+ };
+ };
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2_novena>;
+ status = "okay";
+
+ pmic: pfuze100 at 08 {
+ compatible = "fsl,pfuze100";
+ reg = <0x08>;
+
+ regulators {
+ sw1a_reg: sw1ab {
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1875000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <6250>;
+ };
+
+ sw1c_reg: sw1c {
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1875000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sw2_reg: sw2 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sw3a_reg: sw3a {
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <1975000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sw3b_reg: sw3b {
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <1975000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ sw4_reg: sw4 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ swbst_reg: swbst {
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5150000>;
+ regulator-boot-on;
+ };
+
+ snvs_reg: vsnvs {
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vref_reg: vrefddr {
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vgen1_reg: vgen1 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1550000>;
+ };
+
+ vgen2_reg: vgen2 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1550000>;
+ };
+
+ vgen3_reg: vgen3 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ vgen4_reg: vgen4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ vgen5_reg: vgen5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ vgen6_reg: vgen6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3_novena>;
+ status = "okay";
+
+ codec: es8328 at 11 {
+ compatible = "everest,es8328";
+ reg = <0x11>;
+ DVDD-supply = <®_audio_codec>;
+ AVDD-supply = <®_audio_codec>;
+ PVDD-supply = <®_audio_codec>;
+ HPVDD-supply = <®_audio_codec>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sound_novena>;
+
+ clocks = <&clks IMX6QDL_CLK_CKO1>;
+ assigned-clocks = <&clks IMX6QDL_CLK_CKO>, <&clks IMX6QDL_CLK_CKO1_SEL>, <&clks IMX6QDL_CLK_PLL4_AUDIO>, <&clks IMX6QDL_CLK_CKO1>;
+ assigned-clock-parents = <&clks IMX6QDL_CLK_CKO1>, <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>, <&clks IMX6QDL_CLK_OSC>, <&clks IMX6QDL_CLK_CKO1_PODF>;
+ assigned-clock-rates = <0 0 722534400 22579200>;
+ };
+};
+
+&iomuxc {
+ audmux {
+ pinctrl_audmux_novena: audmuxgrp-novena {
+ fsl,pins = <
+ 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
+ >;
+ };
+ };
+
+ backlight {
+ pinctrl_backlight_novena: backlightgrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0
+ MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x1b0b1
+ MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b1
+ >;
+ };
+ };
+
+ ecspi3 {
+ pinctrl_ecspi3_novena: ecspi3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
+ MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
+ MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
+ >;
+ };
+ };
+
+ enet {
+ pinctrl_enet_novena: enetgrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
+ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
+ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b020
+ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b028
+ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b028
+ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b028
+ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b028
+ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b028
+ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
+ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
+ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
+ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
+ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
+ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
+ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+ MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
+
+ /* Ethernet reset */
+ MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b1
+ >;
+ };
+ };
+
+ fpga {
+ pinctrl_fpga_gpio: fpgagpiogrp-novena {
+ fsl,pins = <
+ /* FPGA power */
+ MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
+
+ /* Reset */
+ MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
+
+ /* FPGA GPIOs */
+ MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b1
+ MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x1b0b1
+ MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1b0b1
+ MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1b0b1
+ MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1b0b1
+ MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0b1
+ MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b0b1
+ MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b0b1
+ MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1b0b1
+ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1b0b1
+ MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x1b0b1
+ MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x1b0b1
+ MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x1b0b1
+ MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b1
+ MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x1b0b1
+ MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b1
+ MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b1
+ MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b1
+ MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b1
+ MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
+ MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x1b0b1
+ MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b1
+ MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1b0b1
+ MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1b0b1
+ MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1b0b1
+ MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b1
+ >;
+ };
+
+ pinctrl_fpga_eim: fpgaeimgrp-novena {
+ fsl,pins = <
+ /* FPGA power */
+ MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
+
+ /* Reset */
+ MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
+
+ /* FPGA GPIOs */
+ MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0f1
+ MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0f1
+ MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0f1
+ MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0f1
+ MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0f1
+ MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0f1
+ MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0f1
+ MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0f1
+ MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0f1
+ MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0f1
+ MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0f1
+ MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0f1
+ MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0f1
+ MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0f1
+ MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0f1
+ MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0f1
+ MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0f1
+ MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0f1
+ MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0f1
+ MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0f1
+ MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0f1
+ MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0xb0f1
+ MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0f1
+ MX6QDL_PAD_EIM_RW__EIM_RW 0xb0f1
+ MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb0f1
+ MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0xb0f1
+ >;
+ };
+ };
+
+ gpio_keys {
+ pinctrl_gpio_keys_novena: gpiokeysgrp-novena {
+ fsl,pins = <
+ /* User button */
+ MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0
+
+ /* PCIe Wakeup */
+ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1f0e0
+
+ /* Lid switch */
+ MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
+ >;
+ };
+ };
+
+ hdmi {
+ pinctrl_hdmi_novena: hdmigrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
+ MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b1
+ >;
+ };
+ };
+
+ i2c1 {
+ pinctrl_i2c1_novena: i2c1grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
+ >;
+ };
+ };
+
+ i2c2 {
+ pinctrl_i2c2_novena: i2c2grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
+ >;
+ };
+ };
+
+ i2c3 {
+ pinctrl_i2c3_novena: i2c3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
+ >;
+ };
+ };
+
+ kpp-keys {
+ pinctrl_kpp_novena: kppgrp-novena {
+ fsl,pins = <
+ /* Front panel button */
+ MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x1b0b1
+
+ /* Fake column driver, not connected */
+ MX6QDL_PAD_KEY_COL1__KEY_COL1 0x1b0b1
+ >;
+ };
+ };
+
+ leds {
+ pinctrl_leds_novena: ledsgrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x1b0b1
+ >;
+ };
+ };
+
+ pcie {
+ pinctrl_pcie_novena: pciegrp-novena {
+ fsl,pins = <
+ /* Reset */
+ MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b1
+
+ /* Power On */
+ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b1
+
+ /* Wifi kill */
+ MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x1b0b1
+ >;
+ };
+ };
+
+ sata {
+ pinctrl_sata_novena: satagrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b1
+ >;
+ };
+ };
+
+ senoko {
+ pinctrl_senoko_novena: senokogrp-novena {
+ fsl,pins = <
+ /* Senoko IRQ line */
+ MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x13048
+
+ /* Senoko reset line */
+ MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x1b0b1
+ >;
+ };
+ };
+
+ sound {
+ pinctrl_sound_novena: soundgrp-novena {
+ fsl,pins = <
+ /* Audio power regulator */
+ MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b1
+
+ /* Headphone plug */
+ MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b1
+
+ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
+ >;
+ };
+ };
+
+ ts {
+ pinctrl_stmpe_novena: stmpegrp-novena {
+ fsl,pins = <
+ /* Touchscreen interrupt */
+ MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b1
+ >;
+ };
+ };
+
+ uart2 {
+ pinctrl_uart2_novena: uart2grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
+ MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
+ >;
+ };
+ };
+
+ uart3 {
+ pinctrl_uart3_novena: uart3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
+ MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
+ >;
+ };
+ };
+ uart4 {
+ pinctrl_uart4_novena: uart4grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
+ MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
+ >;
+ };
+ };
+
+ usbotg {
+ pinctrl_usbotg_novena: usbotggrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
+ >;
+ };
+ };
+
+ usdhc2 {
+ pinctrl_usdhc2_novena: usdhc2grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
+
+ /* Write protect */
+ MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1
+
+ /* Card detect */
+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b1
+ >;
+ };
+ };
+
+ usdhc3 {
+ pinctrl_usdhc3_novena: usdhc3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
+ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
+ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
+ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
+ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
+ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
+ >;
+ };
+ };
+};
+
+&kpp {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_kpp_novena>;
+ linux,keymap = <
+ MATRIX_KEY(1, 1, KEY_CONFIG)
+ >;
+ status = "okay";
+};
+
+&ldb {
+ fsl,dual-channel;
+ status = "okay";
+ lvds-channel at 0 {
+ fsl,data-mapping = "jeida";
+ fsl,data-width = <24>;
+ fsl,panel = <&panel>;
+ status = "okay";
+ };
+};
+
+&pcie {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pcie_novena>;
+ reset-gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+};
+
+&sata {
+ target-supply = <®_sata>;
+ fsl,transmit-level-mV = <1025>;
+ fsl,transmit-boost-mdB = <0>;
+ fsl,transmit-atten-16ths = <8>;
+ status = "okay";
+};
+
+&ssi1 {
+ status = "okay";
+};
+
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart2_novena>;
+ status = "okay";
+};
+
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart3_novena>;
+ status = "okay";
+};
+
+&uart4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart4_novena>;
+ status = "okay";
+};
+
+&usbotg {
+ vbus-supply = <®_usb_otg_vbus>;
+ dr_mode = "otg";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbotg_novena>;
+ disable-over-current;
+ status = "okay";
+};
+
+&usbh1 {
+ vbus-supply = <&swbst_reg>;
+ status = "okay";
+};
+
+&usdhc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc2_novena>;
+ cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+ wp-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ status = "okay";
+};
+
+&usdhc3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc3_novena>;
+ bus-width = <4>;
+ non-removable;
+ status = "okay";
+};
--
2.1.4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-11-28 14:47 ` [PATCH V3 2/2] ARM: dts: imx6q: add Novena board Marek Vasut
@ 2015-11-30 10:19 ` Lucas Stach
2015-11-30 12:21 ` Marek Vasut
2015-11-30 10:57 ` Fabio Estevam
2015-12-02 7:53 ` Shawn Guo
2 siblings, 1 reply; 20+ messages in thread
From: Lucas Stach @ 2015-11-30 10:19 UTC (permalink / raw)
To: linux-arm-kernel
Am Samstag, den 28.11.2015, 15:47 +0100 schrieb Marek Vasut:
> From: Sean Cross <xobs@kosagi.com>
>
> Novena is an open-hardware laptop/desktop/bare board.
>
> See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
>
> Signed-off-by: Sean Cross <xobs@kosagi.com>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Sean Cross <xobs@kosagi.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
Looks really good to me now:
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/imx6q-novena.dts | 846 +++++++++++++++++++++++++++++++++++++
> 2 files changed, 847 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
>
> V2: Fix the PCIe regulator, make it always on
> Fix the polarity of SD2 WP and CD lines, make them active low.
> Drop the simple-bus for regulators, put them in /soc instead.
> Configure the mux of all pins instead of depending on bootloader.
> Change license to Dual X11/GPLv2+ (Acked by Sean)
> Sort the nodes alphabetically.
>
> V3: Drop the spidev node
> Drop the fsl,mode = "i2s-slave";
> Move regulators into /
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 760a737..9eb8fa8 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -325,6 +325,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
> imx6q-hummingboard.dtb \
> imx6q-nitrogen6x.dtb \
> imx6q-nitrogen6_max.dtb \
> + imx6q-novena.dtb \
> imx6q-phytec-pbab01.dtb \
> imx6q-rex-pro.dtb \
> imx6q-sabreauto.dtb \
> diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
> new file mode 100644
> index 0000000..a6b179e
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx6q-novena.dts
> @@ -0,0 +1,846 @@
> +/*
> + * Copyright 2015 Sutajio Ko-Usagi PTE LTD
> + *
> + * This file is dual-licensed: you can use it either under the terms
> + * of the GPL or the X11 license, at your option. Note that this dual
> + * licensing only applies to this file, and not this project as a
> + * whole.
> + *
> + * a) This file is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This file is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public
> + * License along with this file; if not, write to the Free
> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
> + * MA 02110-1301 USA
> + *
> + * Or, alternatively,
> + *
> + * b) Permission is hereby granted, free of charge, to any person
> + * obtaining a copy of this software and associated documentation
> + * files (the "Software"), to deal in the Software without
> + * restriction, including without limitation the rights to use,
> + * copy, modify, merge, publish, distribute, sublicense, and/or
> + * sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following
> + * conditions:
> + *
> + * The above copyright notice and this permission notice shall be
> + * included in all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + *
> + */
> +
> +/dts-v1/;
> +#include "imx6q.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> + model = "Kosagi Novena Dual/Quad";
> + compatible = "kosagi,imx6q-novena", "fsl,imx6q";
> +
> + memory {
> + reg = <0x10000000 0xefffffff>;
> + };
> +
> + chosen {
> + stdout-path = &uart2;
> + };
> +
> + backlight: backlight {
> + compatible = "pwm-backlight";
> + pwms = <&pwm1 0 10000000>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_backlight_novena>;
> + power-supply = <®_lvds_lcd>;
> +
> + brightness-levels = <0 3 6 12 16 24 32 48 64 96 128 192 255>;
> + default-brightness-level = <12>;
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_gpio_keys_novena>;
> +
> + user-button {
> + label = "User Button";
> + gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_POWER>;
> + };
> +
> + lid {
> + label = "Lid";
> + gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
> + linux,input-type = <5>; /* EV_SW */
> + linux,code = <0>; /* SW_LID */
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_leds_novena>;
> +
> + heartbeat {
> + label = "novena:white:panel";
> + gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "default-on";
> + };
> + };
> +
> + panel: panel {
> + compatible = "innolux,n133hse-ea1", "simple-panel";
> + backlight = <&backlight>;
> + };
> +
> + reg_2p5v: 2p5v {
> + compatible = "regulator-fixed";
> + regulator-name = "2P5V";
> + regulator-min-microvolt = <2500000>;
> + regulator-max-microvolt = <2500000>;
> + regulator-always-on;
> + };
> +
> + reg_3p3v: 3p3v {
> + compatible = "regulator-fixed";
> + regulator-name = "3P3V";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + reg_audio_codec: es8328-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "es8328-power";
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + startup-delay-us = <400000>;
> + gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_display: display-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "lcd-display-power";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + startup-delay-us = <200000>;
> + gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_lvds_lcd: lcd-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "lcd-lvds-power";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_pcie: pcie-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "pcie-bus-power";
> + regulator-min-microvolt = <1500000>;
> + regulator-max-microvolt = <1500000>;
> + gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + reg_sata: sata-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "sata-power";
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + startup-delay-us = <10000>;
> + gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_usb_otg_vbus: usb_otg_vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "usb_otg_vbus";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + enable-active-high;
> + };
> +
> + sound {
> + compatible = "fsl,imx-audio-es8328";
> + model = "imx-audio-es8328";
> + ssi-controller = <&ssi1>;
> + audio-codec = <&codec>;
> + audio-amp-supply = <®_audio_codec>;
> + jack-gpio = <&gpio5 15 GPIO_ACTIVE_HIGH>;
> + audio-routing =
> + "Speaker", "LOUT2",
> + "Speaker", "ROUT2",
> + "Speaker", "audio-amp",
> + "Headphone", "ROUT1",
> + "Headphone", "LOUT1",
> + "LINPUT1", "Mic Jack",
> + "RINPUT1", "Mic Jack",
> + "Mic Jack", "Mic Bias";
> + mux-int-port = <0x1>;
> + mux-ext-port = <0x3>;
> + };
> +};
> +
> +&audmux {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_audmux_novena>;
> + status = "okay";
> +};
> +
> +&ecspi3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_ecspi3_novena>;
> + fsl,spi-num-chipselects = <3>;
> + status = "okay";
> +};
> +
> +&fec {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_enet_novena>;
> + phy-mode = "rgmii";
> + phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
> + rxc-skew-ps = <3000>;
> + rxdv-skew-ps = <0>;
> + txc-skew-ps = <3000>;
> + txen-skew-ps = <0>;
> + rxd0-skew-ps = <0>;
> + rxd1-skew-ps = <0>;
> + rxd2-skew-ps = <0>;
> + rxd3-skew-ps = <0>;
> + txd0-skew-ps = <3000>;
> + txd1-skew-ps = <3000>;
> + txd2-skew-ps = <3000>;
> + txd3-skew-ps = <3000>;
> + status = "okay";
> +};
> +
> +&hdmi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_hdmi_novena>;
> + ddc-i2c-bus = <&i2c2>;
> + status = "okay";
> +};
> +
> +&i2c1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c1_novena>;
> + status = "okay";
> +
> + accel: mma8452 at 1c {
> + compatible = "fsl,mma8452";
> + reg = <0x1c>;
> + };
> +
> + rtc: pcf8523 at 68 {
> + compatible = "nxp,pcf8523";
> + reg = <0x68>;
> + };
> +
> + sbs_battery: bq20z75 at 0b {
> + compatible = "sbs,sbs-battery";
> + reg = <0x0b>;
> + sbs,i2c-retry-count = <50>;
> + };
> +
> + touch: stmpe811 at 44 {
> + compatible = "st,stmpe811";
> + reg = <0x44>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + irq-gpio = <&gpio5 13 GPIO_ACTIVE_HIGH>;
> + id = <0>;
> + blocks = <0x5>;
> + irq-trigger = <0x1>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_stmpe_novena>;
> + vio-supply = <®_3p3v>;
> + vcc-supply = <®_3p3v>;
> +
> + stmpe_touchscreen {
> + compatible = "st,stmpe-ts";
> + st,sample-time = <4>;
> + st,mod-12b = <1>;
> + st,ref-sel = <0>;
> + st,adc-freq = <1>;
> + st,ave-ctrl = <1>;
> + st,touch-det-delay = <2>;
> + st,settling = <2>;
> + st,fraction-z = <7>;
> + st,i-drive = <1>;
> + };
> + };
> +};
> +
> +&i2c2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c2_novena>;
> + status = "okay";
> +
> + pmic: pfuze100 at 08 {
> + compatible = "fsl,pfuze100";
> + reg = <0x08>;
> +
> + regulators {
> + sw1a_reg: sw1ab {
> + regulator-min-microvolt = <300000>;
> + regulator-max-microvolt = <1875000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <6250>;
> + };
> +
> + sw1c_reg: sw1c {
> + regulator-min-microvolt = <300000>;
> + regulator-max-microvolt = <1875000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw2_reg: sw2 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw3a_reg: sw3a {
> + regulator-min-microvolt = <400000>;
> + regulator-max-microvolt = <1975000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw3b_reg: sw3b {
> + regulator-min-microvolt = <400000>;
> + regulator-max-microvolt = <1975000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw4_reg: sw4 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + swbst_reg: swbst {
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5150000>;
> + regulator-boot-on;
> + };
> +
> + snvs_reg: vsnvs {
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <3000000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vref_reg: vrefddr {
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vgen1_reg: vgen1 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1550000>;
> + };
> +
> + vgen2_reg: vgen2 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1550000>;
> + };
> +
> + vgen3_reg: vgen3 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + vgen4_reg: vgen4 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vgen5_reg: vgen5 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vgen6_reg: vgen6 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> + };
> + };
> +};
> +
> +&i2c3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c3_novena>;
> + status = "okay";
> +
> + codec: es8328 at 11 {
> + compatible = "everest,es8328";
> + reg = <0x11>;
> + DVDD-supply = <®_audio_codec>;
> + AVDD-supply = <®_audio_codec>;
> + PVDD-supply = <®_audio_codec>;
> + HPVDD-supply = <®_audio_codec>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sound_novena>;
> +
> + clocks = <&clks IMX6QDL_CLK_CKO1>;
> + assigned-clocks = <&clks IMX6QDL_CLK_CKO>, <&clks IMX6QDL_CLK_CKO1_SEL>, <&clks IMX6QDL_CLK_PLL4_AUDIO>, <&clks IMX6QDL_CLK_CKO1>;
> + assigned-clock-parents = <&clks IMX6QDL_CLK_CKO1>, <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>, <&clks IMX6QDL_CLK_OSC>, <&clks IMX6QDL_CLK_CKO1_PODF>;
> + assigned-clock-rates = <0 0 722534400 22579200>;
> + };
> +};
> +
> +&iomuxc {
> + audmux {
> + pinctrl_audmux_novena: audmuxgrp-novena {
> + fsl,pins = <
> + 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
> + >;
> + };
> + };
> +
> + backlight {
> + pinctrl_backlight_novena: backlightgrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0
> + MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x1b0b1
> + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b1
> + >;
> + };
> + };
> +
> + ecspi3 {
> + pinctrl_ecspi3_novena: ecspi3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
> + MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
> + MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
> + >;
> + };
> + };
> +
> + enet {
> + pinctrl_enet_novena: enetgrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
> + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
> + MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b020
> + MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b028
> + MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b028
> + MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b028
> + MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b028
> + MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b028
> + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
> + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
> + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
> + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
> + MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
> + MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
> + MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
> + MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
> +
> + /* Ethernet reset */
> + MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b1
> + >;
> + };
> + };
> +
> + fpga {
> + pinctrl_fpga_gpio: fpgagpiogrp-novena {
> + fsl,pins = <
> + /* FPGA power */
> + MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
> +
> + /* Reset */
> + MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
> +
> + /* FPGA GPIOs */
> + MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b1
> + MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x1b0b1
> + MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1b0b1
> + MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1b0b1
> + MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1b0b1
> + MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0b1
> + MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b0b1
> + MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b0b1
> + MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1b0b1
> + MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1b0b1
> + MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x1b0b1
> + MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x1b0b1
> + MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x1b0b1
> + MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b1
> + MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x1b0b1
> + MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b1
> + MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b1
> + MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b1
> + MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b1
> + MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
> + MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x1b0b1
> + MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b1
> + MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1b0b1
> + MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1b0b1
> + MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1b0b1
> + MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b1
> + >;
> + };
> +
> + pinctrl_fpga_eim: fpgaeimgrp-novena {
> + fsl,pins = <
> + /* FPGA power */
> + MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
> +
> + /* Reset */
> + MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
> +
> + /* FPGA GPIOs */
> + MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0f1
> + MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0f1
> + MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0f1
> + MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0f1
> + MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0f1
> + MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0f1
> + MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0f1
> + MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0f1
> + MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0f1
> + MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0f1
> + MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0f1
> + MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0f1
> + MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0f1
> + MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0f1
> + MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0f1
> + MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0f1
> + MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0f1
> + MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0f1
> + MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0f1
> + MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0f1
> + MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0f1
> + MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0xb0f1
> + MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0f1
> + MX6QDL_PAD_EIM_RW__EIM_RW 0xb0f1
> + MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb0f1
> + MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0xb0f1
> + >;
> + };
> + };
> +
> + gpio_keys {
> + pinctrl_gpio_keys_novena: gpiokeysgrp-novena {
> + fsl,pins = <
> + /* User button */
> + MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0
> +
> + /* PCIe Wakeup */
> + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1f0e0
> +
> + /* Lid switch */
> + MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
> + >;
> + };
> + };
> +
> + hdmi {
> + pinctrl_hdmi_novena: hdmigrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
> + MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b1
> + >;
> + };
> + };
> +
> + i2c1 {
> + pinctrl_i2c1_novena: i2c1grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
> + MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
> + >;
> + };
> + };
> +
> + i2c2 {
> + pinctrl_i2c2_novena: i2c2grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
> + MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
> + >;
> + };
> + };
> +
> + i2c3 {
> + pinctrl_i2c3_novena: i2c3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
> + MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
> + >;
> + };
> + };
> +
> + kpp-keys {
> + pinctrl_kpp_novena: kppgrp-novena {
> + fsl,pins = <
> + /* Front panel button */
> + MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x1b0b1
> +
> + /* Fake column driver, not connected */
> + MX6QDL_PAD_KEY_COL1__KEY_COL1 0x1b0b1
> + >;
> + };
> + };
> +
> + leds {
> + pinctrl_leds_novena: ledsgrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x1b0b1
> + >;
> + };
> + };
> +
> + pcie {
> + pinctrl_pcie_novena: pciegrp-novena {
> + fsl,pins = <
> + /* Reset */
> + MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b1
> +
> + /* Power On */
> + MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b1
> +
> + /* Wifi kill */
> + MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x1b0b1
> + >;
> + };
> + };
> +
> + sata {
> + pinctrl_sata_novena: satagrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b1
> + >;
> + };
> + };
> +
> + senoko {
> + pinctrl_senoko_novena: senokogrp-novena {
> + fsl,pins = <
> + /* Senoko IRQ line */
> + MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x13048
> +
> + /* Senoko reset line */
> + MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x1b0b1
> + >;
> + };
> + };
> +
> + sound {
> + pinctrl_sound_novena: soundgrp-novena {
> + fsl,pins = <
> + /* Audio power regulator */
> + MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b1
> +
> + /* Headphone plug */
> + MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b1
> +
> + MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
> + >;
> + };
> + };
> +
> + ts {
> + pinctrl_stmpe_novena: stmpegrp-novena {
> + fsl,pins = <
> + /* Touchscreen interrupt */
> + MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b1
> + >;
> + };
> + };
> +
> + uart2 {
> + pinctrl_uart2_novena: uart2grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
> + MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
> + >;
> + };
> + };
> +
> + uart3 {
> + pinctrl_uart3_novena: uart3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
> + MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
> + >;
> + };
> + };
> + uart4 {
> + pinctrl_uart4_novena: uart4grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
> + MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
> + >;
> + };
> + };
> +
> + usbotg {
> + pinctrl_usbotg_novena: usbotggrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
> + >;
> + };
> + };
> +
> + usdhc2 {
> + pinctrl_usdhc2_novena: usdhc2grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
> + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
> + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
> + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
> + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
> + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
> +
> + /* Write protect */
> + MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1
> +
> + /* Card detect */
> + MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b1
> + >;
> + };
> + };
> +
> + usdhc3 {
> + pinctrl_usdhc3_novena: usdhc3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
> + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
> + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
> + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
> + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
> + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
> + >;
> + };
> + };
> +};
> +
> +&kpp {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_kpp_novena>;
> + linux,keymap = <
> + MATRIX_KEY(1, 1, KEY_CONFIG)
> + >;
> + status = "okay";
> +};
> +
> +&ldb {
> + fsl,dual-channel;
> + status = "okay";
> + lvds-channel at 0 {
> + fsl,data-mapping = "jeida";
> + fsl,data-width = <24>;
> + fsl,panel = <&panel>;
> + status = "okay";
> + };
> +};
> +
> +&pcie {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pcie_novena>;
> + reset-gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> +};
> +
> +&sata {
> + target-supply = <®_sata>;
> + fsl,transmit-level-mV = <1025>;
> + fsl,transmit-boost-mdB = <0>;
> + fsl,transmit-atten-16ths = <8>;
> + status = "okay";
> +};
> +
> +&ssi1 {
> + status = "okay";
> +};
> +
> +&uart2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart2_novena>;
> + status = "okay";
> +};
> +
> +&uart3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart3_novena>;
> + status = "okay";
> +};
> +
> +&uart4 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart4_novena>;
> + status = "okay";
> +};
> +
> +&usbotg {
> + vbus-supply = <®_usb_otg_vbus>;
> + dr_mode = "otg";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usbotg_novena>;
> + disable-over-current;
> + status = "okay";
> +};
> +
> +&usbh1 {
> + vbus-supply = <&swbst_reg>;
> + status = "okay";
> +};
> +
> +&usdhc2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usdhc2_novena>;
> + cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
> + wp-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
> + bus-width = <4>;
> + status = "okay";
> +};
> +
> +&usdhc3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usdhc3_novena>;
> + bus-width = <4>;
> + non-removable;
> + status = "okay";
> +};
--
Pengutronix e.K. | Lucas Stach |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-11-28 14:47 ` [PATCH V3 2/2] ARM: dts: imx6q: add Novena board Marek Vasut
2015-11-30 10:19 ` Lucas Stach
@ 2015-11-30 10:57 ` Fabio Estevam
2015-12-02 7:53 ` Shawn Guo
2 siblings, 0 replies; 20+ messages in thread
From: Fabio Estevam @ 2015-11-30 10:57 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Nov 28, 2015 at 12:47 PM, Marek Vasut <marex@denx.de> wrote:
> From: Sean Cross <xobs@kosagi.com>
>
> Novena is an open-hardware laptop/desktop/bare board.
>
> See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
>
> Signed-off-by: Sean Cross <xobs@kosagi.com>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Sean Cross <xobs@kosagi.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-11-30 10:19 ` Lucas Stach
@ 2015-11-30 12:21 ` Marek Vasut
0 siblings, 0 replies; 20+ messages in thread
From: Marek Vasut @ 2015-11-30 12:21 UTC (permalink / raw)
To: linux-arm-kernel
aOn Monday, November 30, 2015 at 11:19:29 AM, Lucas Stach wrote:
> Am Samstag, den 28.11.2015, 15:47 +0100 schrieb Marek Vasut:
> > From: Sean Cross <xobs@kosagi.com>
> >
> > Novena is an open-hardware laptop/desktop/bare board.
> >
> > See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
> >
> > Signed-off-by: Sean Cross <xobs@kosagi.com>
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Lucas Stach <l.stach@pengutronix.de>
> > Cc: Sean Cross <xobs@kosagi.com>
> > Cc: Shawn Guo <shawnguo@kernel.org>
>
> Looks really good to me now:
> Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Thanks!
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-11-28 14:47 ` [PATCH V3 2/2] ARM: dts: imx6q: add Novena board Marek Vasut
2015-11-30 10:19 ` Lucas Stach
2015-11-30 10:57 ` Fabio Estevam
@ 2015-12-02 7:53 ` Shawn Guo
2015-12-02 15:41 ` Marek Vasut
2 siblings, 1 reply; 20+ messages in thread
From: Shawn Guo @ 2015-12-02 7:53 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Nov 28, 2015 at 03:47:04PM +0100, Marek Vasut wrote:
> From: Sean Cross <xobs@kosagi.com>
>
> Novena is an open-hardware laptop/desktop/bare board.
>
> See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
>
> Signed-off-by: Sean Cross <xobs@kosagi.com>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Sean Cross <xobs@kosagi.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
Looks pretty good. Some minor comments are below. Most of them are
format/style nits.
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/imx6q-novena.dts | 846 +++++++++++++++++++++++++++++++++++++
> 2 files changed, 847 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
>
> V2: Fix the PCIe regulator, make it always on
> Fix the polarity of SD2 WP and CD lines, make them active low.
> Drop the simple-bus for regulators, put them in /soc instead.
> Configure the mux of all pins instead of depending on bootloader.
> Change license to Dual X11/GPLv2+ (Acked by Sean)
> Sort the nodes alphabetically.
>
> V3: Drop the spidev node
> Drop the fsl,mode = "i2s-slave";
> Move regulators into /
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 760a737..9eb8fa8 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -325,6 +325,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
> imx6q-hummingboard.dtb \
> imx6q-nitrogen6x.dtb \
> imx6q-nitrogen6_max.dtb \
> + imx6q-novena.dtb \
> imx6q-phytec-pbab01.dtb \
> imx6q-rex-pro.dtb \
> imx6q-sabreauto.dtb \
> diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
> new file mode 100644
> index 0000000..a6b179e
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx6q-novena.dts
> @@ -0,0 +1,846 @@
> +/*
> + * Copyright 2015 Sutajio Ko-Usagi PTE LTD
> + *
> + * This file is dual-licensed: you can use it either under the terms
> + * of the GPL or the X11 license, at your option. Note that this dual
> + * licensing only applies to this file, and not this project as a
> + * whole.
> + *
> + * a) This file is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This file is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public
> + * License along with this file; if not, write to the Free
> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
> + * MA 02110-1301 USA
> + *
> + * Or, alternatively,
> + *
> + * b) Permission is hereby granted, free of charge, to any person
> + * obtaining a copy of this software and associated documentation
> + * files (the "Software"), to deal in the Software without
> + * restriction, including without limitation the rights to use,
> + * copy, modify, merge, publish, distribute, sublicense, and/or
> + * sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following
> + * conditions:
> + *
> + * The above copyright notice and this permission notice shall be
> + * included in all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
> + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + *
> + */
> +
> +/dts-v1/;
> +#include "imx6q.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> + model = "Kosagi Novena Dual/Quad";
> + compatible = "kosagi,imx6q-novena", "fsl,imx6q";
> +
> + memory {
> + reg = <0x10000000 0xefffffff>;
> + };
> +
> + chosen {
> + stdout-path = &uart2;
> + };
> +
> + backlight: backlight {
> + compatible = "pwm-backlight";
> + pwms = <&pwm1 0 10000000>;
> +
Drop the new line.
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_backlight_novena>;
> + power-supply = <®_lvds_lcd>;
> +
Ditto
> + brightness-levels = <0 3 6 12 16 24 32 48 64 96 128 192 255>;
> + default-brightness-level = <12>;
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_gpio_keys_novena>;
> +
> + user-button {
> + label = "User Button";
> + gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_POWER>;
> + };
> +
> + lid {
> + label = "Lid";
> + gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
> + linux,input-type = <5>; /* EV_SW */
> + linux,code = <0>; /* SW_LID */
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_leds_novena>;
> +
> + heartbeat {
> + label = "novena:white:panel";
> + gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "default-on";
> + };
> + };
> +
> + panel: panel {
> + compatible = "innolux,n133hse-ea1", "simple-panel";
> + backlight = <&backlight>;
> + };
> +
> + reg_2p5v: 2p5v {
> + compatible = "regulator-fixed";
> + regulator-name = "2P5V";
> + regulator-min-microvolt = <2500000>;
> + regulator-max-microvolt = <2500000>;
> + regulator-always-on;
> + };
> +
> + reg_3p3v: 3p3v {
> + compatible = "regulator-fixed";
> + regulator-name = "3P3V";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + reg_audio_codec: es8328-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "es8328-power";
> + regulator-boot-on;
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + startup-delay-us = <400000>;
> + gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_display: display-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "lcd-display-power";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + startup-delay-us = <200000>;
> + gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_lvds_lcd: lcd-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "lcd-lvds-power";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_pcie: pcie-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "pcie-bus-power";
> + regulator-min-microvolt = <1500000>;
> + regulator-max-microvolt = <1500000>;
> + gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + regulator-always-on;
> + };
> +
> + reg_sata: sata-regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "sata-power";
> + regulator-boot-on;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + startup-delay-us = <10000>;
> + gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +
> + reg_usb_otg_vbus: usb_otg_vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "usb_otg_vbus";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + enable-active-high;
> + };
All these regulator nodes are named so arbitrarily. Can we name them a
bit consistently, something like regulator-xxx?
> +
> + sound {
> + compatible = "fsl,imx-audio-es8328";
> + model = "imx-audio-es8328";
> + ssi-controller = <&ssi1>;
> + audio-codec = <&codec>;
> + audio-amp-supply = <®_audio_codec>;
> + jack-gpio = <&gpio5 15 GPIO_ACTIVE_HIGH>;
> + audio-routing =
> + "Speaker", "LOUT2",
> + "Speaker", "ROUT2",
> + "Speaker", "audio-amp",
> + "Headphone", "ROUT1",
> + "Headphone", "LOUT1",
> + "LINPUT1", "Mic Jack",
> + "RINPUT1", "Mic Jack",
> + "Mic Jack", "Mic Bias";
> + mux-int-port = <0x1>;
> + mux-ext-port = <0x3>;
> + };
> +};
> +
> +&audmux {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_audmux_novena>;
> + status = "okay";
> +};
> +
> +&ecspi3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_ecspi3_novena>;
> + fsl,spi-num-chipselects = <3>;
> + status = "okay";
> +};
> +
> +&fec {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_enet_novena>;
> + phy-mode = "rgmii";
> + phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
> + rxc-skew-ps = <3000>;
> + rxdv-skew-ps = <0>;
> + txc-skew-ps = <3000>;
> + txen-skew-ps = <0>;
> + rxd0-skew-ps = <0>;
> + rxd1-skew-ps = <0>;
> + rxd2-skew-ps = <0>;
> + rxd3-skew-ps = <0>;
> + txd0-skew-ps = <3000>;
> + txd1-skew-ps = <3000>;
> + txd2-skew-ps = <3000>;
> + txd3-skew-ps = <3000>;
> + status = "okay";
> +};
> +
> +&hdmi {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_hdmi_novena>;
> + ddc-i2c-bus = <&i2c2>;
> + status = "okay";
> +};
> +
> +&i2c1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c1_novena>;
> + status = "okay";
> +
> + accel: mma8452 at 1c {
> + compatible = "fsl,mma8452";
> + reg = <0x1c>;
> + };
> +
> + rtc: pcf8523 at 68 {
> + compatible = "nxp,pcf8523";
> + reg = <0x68>;
> + };
> +
> + sbs_battery: bq20z75 at 0b {
> + compatible = "sbs,sbs-battery";
> + reg = <0x0b>;
> + sbs,i2c-retry-count = <50>;
> + };
> +
> + touch: stmpe811 at 44 {
> + compatible = "st,stmpe811";
> + reg = <0x44>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + irq-gpio = <&gpio5 13 GPIO_ACTIVE_HIGH>;
> + id = <0>;
> + blocks = <0x5>;
> + irq-trigger = <0x1>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_stmpe_novena>;
> + vio-supply = <®_3p3v>;
> + vcc-supply = <®_3p3v>;
> +
> + stmpe_touchscreen {
> + compatible = "st,stmpe-ts";
> + st,sample-time = <4>;
> + st,mod-12b = <1>;
> + st,ref-sel = <0>;
> + st,adc-freq = <1>;
> + st,ave-ctrl = <1>;
> + st,touch-det-delay = <2>;
> + st,settling = <2>;
> + st,fraction-z = <7>;
> + st,i-drive = <1>;
> + };
> + };
> +};
> +
> +&i2c2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c2_novena>;
> + status = "okay";
> +
> + pmic: pfuze100 at 08 {
> + compatible = "fsl,pfuze100";
> + reg = <0x08>;
> +
> + regulators {
> + sw1a_reg: sw1ab {
> + regulator-min-microvolt = <300000>;
> + regulator-max-microvolt = <1875000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <6250>;
> + };
> +
> + sw1c_reg: sw1c {
> + regulator-min-microvolt = <300000>;
> + regulator-max-microvolt = <1875000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw2_reg: sw2 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw3a_reg: sw3a {
> + regulator-min-microvolt = <400000>;
> + regulator-max-microvolt = <1975000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw3b_reg: sw3b {
> + regulator-min-microvolt = <400000>;
> + regulator-max-microvolt = <1975000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + sw4_reg: sw4 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + swbst_reg: swbst {
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5150000>;
> + regulator-boot-on;
> + };
> +
> + snvs_reg: vsnvs {
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <3000000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vref_reg: vrefddr {
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + vgen1_reg: vgen1 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1550000>;
> + };
> +
> + vgen2_reg: vgen2 {
> + regulator-min-microvolt = <800000>;
> + regulator-max-microvolt = <1550000>;
> + };
> +
> + vgen3_reg: vgen3 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + vgen4_reg: vgen4 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vgen5_reg: vgen5 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> +
> + vgen6_reg: vgen6 {
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + };
> + };
> + };
> +};
> +
> +&i2c3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c3_novena>;
> + status = "okay";
> +
> + codec: es8328 at 11 {
> + compatible = "everest,es8328";
> + reg = <0x11>;
> + DVDD-supply = <®_audio_codec>;
> + AVDD-supply = <®_audio_codec>;
> + PVDD-supply = <®_audio_codec>;
> + HPVDD-supply = <®_audio_codec>;
> +
Drop this new line.
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_sound_novena>;
> +
Ditto
> + clocks = <&clks IMX6QDL_CLK_CKO1>;
> + assigned-clocks = <&clks IMX6QDL_CLK_CKO>, <&clks IMX6QDL_CLK_CKO1_SEL>, <&clks IMX6QDL_CLK_PLL4_AUDIO>, <&clks IMX6QDL_CLK_CKO1>;
> + assigned-clock-parents = <&clks IMX6QDL_CLK_CKO1>, <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>, <&clks IMX6QDL_CLK_OSC>, <&clks IMX6QDL_CLK_CKO1_PODF>;
Please wrap these long lines a bit.
> + assigned-clock-rates = <0 0 722534400 22579200>;
> + };
> +};
> +
> +&iomuxc {
I suggest you put the &iomuxc node at the bottom of the file to make it
easier to read the file.
> + audmux {
With commit 5fcdf6a7ed95 (pinctrl: imx: Allow parsing DT without function
nodes) in place, all these function nodes can just be saved to reduce one
level of indentation.
> + pinctrl_audmux_novena: audmuxgrp-novena {
> + fsl,pins = <
> + 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
> + >;
> + };
> + };
> +
> + backlight {
> + pinctrl_backlight_novena: backlightgrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0
> + MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x1b0b1
> + MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b1
> + >;
> + };
> + };
> +
> + ecspi3 {
> + pinctrl_ecspi3_novena: ecspi3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
> + MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
> + MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
> + >;
> + };
> + };
> +
> + enet {
> + pinctrl_enet_novena: enetgrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
> + MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
> + MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b020
> + MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b028
> + MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b028
> + MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b028
> + MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b028
> + MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b028
> + MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
> + MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
> + MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
> + MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
> + MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
> + MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
> + MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
> + MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
> +
Drop this new line.
> + /* Ethernet reset */
> + MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b1
> + >;
> + };
> + };
> +
> + fpga {
> + pinctrl_fpga_gpio: fpgagpiogrp-novena {
> + fsl,pins = <
> + /* FPGA power */
> + MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
> +
Ditto
> + /* Reset */
> + MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
Ditto
> +
> + /* FPGA GPIOs */
> + MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b1
> + MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x1b0b1
> + MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1b0b1
> + MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1b0b1
> + MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1b0b1
> + MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0b1
> + MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b0b1
> + MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b0b1
> + MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1b0b1
> + MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1b0b1
> + MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x1b0b1
> + MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x1b0b1
> + MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x1b0b1
> + MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b1
> + MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x1b0b1
> + MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b1
> + MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b1
> + MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b1
> + MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b1
> + MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
> + MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x1b0b1
> + MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b1
> + MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1b0b1
> + MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1b0b1
> + MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1b0b1
> + MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b1
> + >;
> + };
> +
> + pinctrl_fpga_eim: fpgaeimgrp-novena {
> + fsl,pins = <
> + /* FPGA power */
> + MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
> +
> + /* Reset */
> + MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
> +
Ditto
> + /* FPGA GPIOs */
> + MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0f1
> + MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0f1
> + MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0f1
> + MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0f1
> + MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0f1
> + MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0f1
> + MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0f1
> + MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0f1
> + MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0f1
> + MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0f1
> + MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0f1
> + MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0f1
> + MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0f1
> + MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0f1
> + MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0f1
> + MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0f1
> + MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0f1
> + MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0f1
> + MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0f1
> + MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0f1
> + MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0f1
> + MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0xb0f1
> + MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0f1
> + MX6QDL_PAD_EIM_RW__EIM_RW 0xb0f1
> + MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb0f1
> + MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0xb0f1
> + >;
> + };
> + };
> +
> + gpio_keys {
> + pinctrl_gpio_keys_novena: gpiokeysgrp-novena {
> + fsl,pins = <
> + /* User button */
> + MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0
> +
> + /* PCIe Wakeup */
> + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1f0e0
> +
Ditto
> + /* Lid switch */
> + MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
> + >;
> + };
> + };
> +
> + hdmi {
> + pinctrl_hdmi_novena: hdmigrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
> + MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b1
> + >;
> + };
> + };
> +
> + i2c1 {
> + pinctrl_i2c1_novena: i2c1grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
> + MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
> + >;
> + };
> + };
> +
> + i2c2 {
> + pinctrl_i2c2_novena: i2c2grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
> + MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
> + >;
> + };
> + };
> +
> + i2c3 {
> + pinctrl_i2c3_novena: i2c3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
> + MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
> + >;
> + };
> + };
> +
> + kpp-keys {
> + pinctrl_kpp_novena: kppgrp-novena {
> + fsl,pins = <
> + /* Front panel button */
> + MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x1b0b1
> +
Ditto
> + /* Fake column driver, not connected */
> + MX6QDL_PAD_KEY_COL1__KEY_COL1 0x1b0b1
> + >;
> + };
> + };
> +
> + leds {
> + pinctrl_leds_novena: ledsgrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x1b0b1
> + >;
> + };
> + };
> +
> + pcie {
> + pinctrl_pcie_novena: pciegrp-novena {
> + fsl,pins = <
> + /* Reset */
> + MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b1
> +
> + /* Power On */
> + MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b1
> +
Ditto
> + /* Wifi kill */
> + MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x1b0b1
> + >;
> + };
> + };
> +
> + sata {
> + pinctrl_sata_novena: satagrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b1
> + >;
> + };
> + };
> +
> + senoko {
> + pinctrl_senoko_novena: senokogrp-novena {
> + fsl,pins = <
> + /* Senoko IRQ line */
> + MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x13048
> +
Ditto
> + /* Senoko reset line */
> + MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x1b0b1
> + >;
> + };
> + };
> +
> + sound {
> + pinctrl_sound_novena: soundgrp-novena {
> + fsl,pins = <
> + /* Audio power regulator */
> + MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b1
> +
> + /* Headphone plug */
> + MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b1
> +
Ditto
> + MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
> + >;
> + };
> + };
> +
> + ts {
> + pinctrl_stmpe_novena: stmpegrp-novena {
> + fsl,pins = <
> + /* Touchscreen interrupt */
> + MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b1
> + >;
> + };
> + };
> +
> + uart2 {
> + pinctrl_uart2_novena: uart2grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
> + MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
> + >;
> + };
> + };
> +
> + uart3 {
> + pinctrl_uart3_novena: uart3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
> + MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
> + >;
> + };
> + };
Have a new line between nodes.
> + uart4 {
> + pinctrl_uart4_novena: uart4grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
> + MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
> + >;
> + };
> + };
> +
> + usbotg {
> + pinctrl_usbotg_novena: usbotggrp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
> + >;
> + };
> + };
> +
> + usdhc2 {
> + pinctrl_usdhc2_novena: usdhc2grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
> + MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
> + MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
> + MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
> + MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
> + MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
> +
> + /* Write protect */
> + MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1
> +
Drop these new lines.
> + /* Card detect */
> + MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b1
> + >;
> + };
> + };
> +
> + usdhc3 {
> + pinctrl_usdhc3_novena: usdhc3grp-novena {
> + fsl,pins = <
> + MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
> + MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
> + MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
> + MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
> + MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
> + MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
> + >;
> + };
> + };
> +};
> +
> +&kpp {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_kpp_novena>;
> + linux,keymap = <
> + MATRIX_KEY(1, 1, KEY_CONFIG)
> + >;
> + status = "okay";
> +};
> +
> +&ldb {
> + fsl,dual-channel;
> + status = "okay";
Have a new between property list and sub-node.
Shawn
> + lvds-channel at 0 {
> + fsl,data-mapping = "jeida";
> + fsl,data-width = <24>;
> + fsl,panel = <&panel>;
> + status = "okay";
> + };
> +};
> +
> +&pcie {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pcie_novena>;
> + reset-gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> +};
> +
> +&sata {
> + target-supply = <®_sata>;
> + fsl,transmit-level-mV = <1025>;
> + fsl,transmit-boost-mdB = <0>;
> + fsl,transmit-atten-16ths = <8>;
> + status = "okay";
> +};
> +
> +&ssi1 {
> + status = "okay";
> +};
> +
> +&uart2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart2_novena>;
> + status = "okay";
> +};
> +
> +&uart3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart3_novena>;
> + status = "okay";
> +};
> +
> +&uart4 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart4_novena>;
> + status = "okay";
> +};
> +
> +&usbotg {
> + vbus-supply = <®_usb_otg_vbus>;
> + dr_mode = "otg";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usbotg_novena>;
> + disable-over-current;
> + status = "okay";
> +};
> +
> +&usbh1 {
> + vbus-supply = <&swbst_reg>;
> + status = "okay";
> +};
> +
> +&usdhc2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usdhc2_novena>;
> + cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
> + wp-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
> + bus-width = <4>;
> + status = "okay";
> +};
> +
> +&usdhc3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usdhc3_novena>;
> + bus-width = <4>;
> + non-removable;
> + status = "okay";
> +};
> --
> 2.1.4
>
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-12-02 7:53 ` Shawn Guo
@ 2015-12-02 15:41 ` Marek Vasut
2015-12-11 11:07 ` Shawn Guo
0 siblings, 1 reply; 20+ messages in thread
From: Marek Vasut @ 2015-12-02 15:41 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday, December 02, 2015 at 08:53:05 AM, Shawn Guo wrote:
> On Sat, Nov 28, 2015 at 03:47:04PM +0100, Marek Vasut wrote:
> > From: Sean Cross <xobs@kosagi.com>
> >
> > Novena is an open-hardware laptop/desktop/bare board.
> >
> > See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
> >
> > Signed-off-by: Sean Cross <xobs@kosagi.com>
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Lucas Stach <l.stach@pengutronix.de>
> > Cc: Sean Cross <xobs@kosagi.com>
> > Cc: Shawn Guo <shawnguo@kernel.org>
>
> Looks pretty good. Some minor comments are below. Most of them are
> format/style nits.
Thanks
> > ---
> >
> > arch/arm/boot/dts/Makefile | 1 +
> > arch/arm/boot/dts/imx6q-novena.dts | 846
> > +++++++++++++++++++++++++++++++++++++ 2 files changed, 847
> > insertions(+)
> > create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
[...]
> > + reg_sata: sata-regulator {
> > + compatible = "regulator-fixed";
> > + regulator-name = "sata-power";
> > + regulator-boot-on;
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > + startup-delay-us = <10000>;
> > + gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > + };
> > +
> > + reg_usb_otg_vbus: usb_otg_vbus {
> > + compatible = "regulator-fixed";
> > + regulator-name = "usb_otg_vbus";
> > + regulator-min-microvolt = <5000000>;
> > + regulator-max-microvolt = <5000000>;
> > + enable-active-high;
> > + };
>
> All these regulator nodes are named so arbitrarily. Can we name them a
> bit consistently, something like regulator-xxx?
All of them are named like this (well, but the otg_vbus, I can fix that)
reg_something: something-regulator {}
What do you want to see here ?
[...]
> > + assigned-clock-rates = <0 0 722534400 22579200>;
> > + };
> > +};
> > +
> > +&iomuxc {
>
> I suggest you put the &iomuxc node at the bottom of the file to make it
> easier to read the file.
>
> > + audmux {
>
> With commit 5fcdf6a7ed95 (pinctrl: imx: Allow parsing DT without function
> nodes) in place, all these function nodes can just be saved to reduce one
> level of indentation.
OK, that's a good change.
> > + pinctrl_audmux_novena: audmuxgrp-novena {
> > + fsl,pins = <
> > + 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
> > + >;
> > + };
> > + };
[...]
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-12-02 15:41 ` Marek Vasut
@ 2015-12-11 11:07 ` Shawn Guo
2015-12-12 3:25 ` Marek Vasut
2015-12-12 3:27 ` [PATCH V4 " Marek Vasut
0 siblings, 2 replies; 20+ messages in thread
From: Shawn Guo @ 2015-12-11 11:07 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 02, 2015 at 04:41:31PM +0100, Marek Vasut wrote:
> On Wednesday, December 02, 2015 at 08:53:05 AM, Shawn Guo wrote:
> > On Sat, Nov 28, 2015 at 03:47:04PM +0100, Marek Vasut wrote:
> > > + reg_usb_otg_vbus: usb_otg_vbus {
> > > + compatible = "regulator-fixed";
> > > + regulator-name = "usb_otg_vbus";
> > > + regulator-min-microvolt = <5000000>;
> > > + regulator-max-microvolt = <5000000>;
> > > + enable-active-high;
> > > + };
> >
> > All these regulator nodes are named so arbitrarily. Can we name them a
> > bit consistently, something like regulator-xxx?
>
> All of them are named like this (well, but the otg_vbus, I can fix that)
>
> reg_something: something-regulator {}
>
> What do you want to see here ?
reg_something: regulator-something {}
Shawn
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V3 2/2] ARM: dts: imx6q: add Novena board
2015-12-11 11:07 ` Shawn Guo
@ 2015-12-12 3:25 ` Marek Vasut
2015-12-12 3:27 ` [PATCH V4 " Marek Vasut
1 sibling, 0 replies; 20+ messages in thread
From: Marek Vasut @ 2015-12-12 3:25 UTC (permalink / raw)
To: linux-arm-kernel
On Friday, December 11, 2015 at 12:07:00 PM, Shawn Guo wrote:
> On Wed, Dec 02, 2015 at 04:41:31PM +0100, Marek Vasut wrote:
> > On Wednesday, December 02, 2015 at 08:53:05 AM, Shawn Guo wrote:
> > > On Sat, Nov 28, 2015 at 03:47:04PM +0100, Marek Vasut wrote:
> > > > + reg_usb_otg_vbus: usb_otg_vbus {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "usb_otg_vbus";
> > > > + regulator-min-microvolt = <5000000>;
> > > > + regulator-max-microvolt = <5000000>;
> > > > + enable-active-high;
> > > > + };
> > >
> > > All these regulator nodes are named so arbitrarily. Can we name them a
> > > bit consistently, something like regulator-xxx?
> >
> > All of them are named like this (well, but the otg_vbus, I can fix that)
> >
> > reg_something: something-regulator {}
> >
> > What do you want to see here ?
>
> reg_something: regulator-something {}
OK, let me send a V4.
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-11 11:07 ` Shawn Guo
2015-12-12 3:25 ` Marek Vasut
@ 2015-12-12 3:27 ` Marek Vasut
2015-12-14 1:38 ` Shawn Guo
1 sibling, 1 reply; 20+ messages in thread
From: Marek Vasut @ 2015-12-12 3:27 UTC (permalink / raw)
To: linux-arm-kernel
From: Sean Cross <xobs@kosagi.com>
Novena is an open-hardware laptop/desktop/bare board.
See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
Signed-off-by: Sean Cross <xobs@kosagi.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Sean Cross <xobs@kosagi.com>
Cc: Shawn Guo <shawnguo@kernel.org>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6q-novena.dts | 789 +++++++++++++++++++++++++++++++++++++
2 files changed, 790 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
V2: Fix the PCIe regulator, make it always on
Fix the polarity of SD2 WP and CD lines, make them active low.
Drop the simple-bus for regulators, put them in /soc instead.
Configure the mux of all pins instead of depending on bootloader.
Change license to Dual X11/GPLv2+ (Acked by Sean)
Sort the nodes alphabetically.
V3: Drop the spidev node
Drop the fsl,mode = "i2s-slave";
Move regulators into /
V4: Move iomux node to the end of the file
Drop the first level of functions from iomux
Tweak the names of the regulator nodes to reg_nnn: regulator-nnn {},
Remove various newlines
Formatting fixes
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 0fe130e..ba6c6d7 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -325,6 +325,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6q-hummingboard.dtb \
imx6q-nitrogen6x.dtb \
imx6q-nitrogen6_max.dtb \
+ imx6q-novena.dtb \
imx6q-phytec-pbab01.dtb \
imx6q-rex-pro.dtb \
imx6q-sabreauto.dtb \
diff --git a/arch/arm/boot/dts/imx6q-novena.dts b/arch/arm/boot/dts/imx6q-novena.dts
new file mode 100644
index 0000000..0dea08a
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-novena.dts
@@ -0,0 +1,789 @@
+/*
+ * Copyright 2015 Sutajio Ko-Usagi PTE LTD
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this file; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+/dts-v1/;
+#include "imx6q.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Kosagi Novena Dual/Quad";
+ compatible = "kosagi,imx6q-novena", "fsl,imx6q";
+
+ memory {
+ reg = <0x10000000 0xefffffff>;
+ };
+
+ chosen {
+ stdout-path = &uart2;
+ };
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm1 0 10000000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_backlight_novena>;
+ power-supply = <®_lvds_lcd>;
+ brightness-levels = <0 3 6 12 16 24 32 48 64 96 128 192 255>;
+ default-brightness-level = <12>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_keys_novena>;
+
+ user-button {
+ label = "User Button";
+ gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_POWER>;
+ };
+
+ lid {
+ label = "Lid";
+ gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
+ linux,input-type = <5>; /* EV_SW */
+ linux,code = <0>; /* SW_LID */
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_leds_novena>;
+
+ heartbeat {
+ label = "novena:white:panel";
+ gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "default-on";
+ };
+ };
+
+ panel: panel {
+ compatible = "innolux,n133hse-ea1", "simple-panel";
+ backlight = <&backlight>;
+ };
+
+ reg_2p5v: regulator-2p5v {
+ compatible = "regulator-fixed";
+ regulator-name = "2P5V";
+ regulator-min-microvolt = <2500000>;
+ regulator-max-microvolt = <2500000>;
+ regulator-always-on;
+ };
+
+ reg_3p3v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "3P3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_audio_codec: regulator-audio-codec {
+ compatible = "regulator-fixed";
+ regulator-name = "es8328-power";
+ regulator-boot-on;
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ startup-delay-us = <400000>;
+ gpio = <&gpio5 17 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_display: regulator-display {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd-display-power";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <200000>;
+ gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_lvds_lcd: regulator-lvds-lcd {
+ compatible = "regulator-fixed";
+ regulator-name = "lcd-lvds-power";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_pcie: regulator-pcie {
+ compatible = "regulator-fixed";
+ regulator-name = "pcie-bus-power";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ reg_sata: regulator-sata {
+ compatible = "regulator-fixed";
+ regulator-name = "sata-power";
+ regulator-boot-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ startup-delay-us = <10000>;
+ gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+
+ reg_usb_otg_vbus: regulator-usb-otg-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_otg_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ };
+
+ sound {
+ compatible = "fsl,imx-audio-es8328";
+ model = "imx-audio-es8328";
+ ssi-controller = <&ssi1>;
+ audio-codec = <&codec>;
+ audio-amp-supply = <®_audio_codec>;
+ jack-gpio = <&gpio5 15 GPIO_ACTIVE_HIGH>;
+ audio-routing =
+ "Speaker", "LOUT2",
+ "Speaker", "ROUT2",
+ "Speaker", "audio-amp",
+ "Headphone", "ROUT1",
+ "Headphone", "LOUT1",
+ "LINPUT1", "Mic Jack",
+ "RINPUT1", "Mic Jack",
+ "Mic Jack", "Mic Bias";
+ mux-int-port = <0x1>;
+ mux-ext-port = <0x3>;
+ };
+};
+
+&audmux {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_audmux_novena>;
+ status = "okay";
+};
+
+&ecspi3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ecspi3_novena>;
+ fsl,spi-num-chipselects = <3>;
+ status = "okay";
+};
+
+&fec {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_enet_novena>;
+ phy-mode = "rgmii";
+ phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+ rxc-skew-ps = <3000>;
+ rxdv-skew-ps = <0>;
+ txc-skew-ps = <3000>;
+ txen-skew-ps = <0>;
+ rxd0-skew-ps = <0>;
+ rxd1-skew-ps = <0>;
+ rxd2-skew-ps = <0>;
+ rxd3-skew-ps = <0>;
+ txd0-skew-ps = <3000>;
+ txd1-skew-ps = <3000>;
+ txd2-skew-ps = <3000>;
+ txd3-skew-ps = <3000>;
+ status = "okay";
+};
+
+&hdmi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hdmi_novena>;
+ ddc-i2c-bus = <&i2c2>;
+ status = "okay";
+};
+
+&i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1_novena>;
+ status = "okay";
+
+ accel: mma8452 at 1c {
+ compatible = "fsl,mma8452";
+ reg = <0x1c>;
+ };
+
+ rtc: pcf8523 at 68 {
+ compatible = "nxp,pcf8523";
+ reg = <0x68>;
+ };
+
+ sbs_battery: bq20z75 at 0b {
+ compatible = "sbs,sbs-battery";
+ reg = <0x0b>;
+ sbs,i2c-retry-count = <50>;
+ };
+
+ touch: stmpe811 at 44 {
+ compatible = "st,stmpe811";
+ reg = <0x44>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ irq-gpio = <&gpio5 13 GPIO_ACTIVE_HIGH>;
+ id = <0>;
+ blocks = <0x5>;
+ irq-trigger = <0x1>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_stmpe_novena>;
+ vio-supply = <®_3p3v>;
+ vcc-supply = <®_3p3v>;
+
+ stmpe_touchscreen {
+ compatible = "st,stmpe-ts";
+ st,sample-time = <4>;
+ st,mod-12b = <1>;
+ st,ref-sel = <0>;
+ st,adc-freq = <1>;
+ st,ave-ctrl = <1>;
+ st,touch-det-delay = <2>;
+ st,settling = <2>;
+ st,fraction-z = <7>;
+ st,i-drive = <1>;
+ };
+ };
+};
+
+&i2c2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2_novena>;
+ status = "okay";
+
+ pmic: pfuze100 at 08 {
+ compatible = "fsl,pfuze100";
+ reg = <0x08>;
+
+ regulators {
+ reg_sw1a: regulator-sw1a {
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1875000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <6250>;
+ };
+
+ reg_sw1c: sw1c {
+ regulator-min-microvolt = <300000>;
+ regulator-max-microvolt = <1875000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_sw2: sw2 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_sw3a: sw3a {
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <1975000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_sw3b: sw3b {
+ regulator-min-microvolt = <400000>;
+ regulator-max-microvolt = <1975000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_sw4: sw4 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ reg_swbst: swbst {
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5150000>;
+ regulator-boot-on;
+ };
+
+ reg_snvs: vsnvs {
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_vref: vrefddr {
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ reg_vgen1: vgen1 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1550000>;
+ };
+
+ reg_vgen2: vgen2 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <1550000>;
+ };
+
+ reg_vgen3: vgen3 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ reg_vgen4: vgen4 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_vgen5: vgen5 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+
+ reg_vgen6: vgen6 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
+ };
+ };
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3_novena>;
+ status = "okay";
+
+ codec: es8328 at 11 {
+ compatible = "everest,es8328";
+ reg = <0x11>;
+ DVDD-supply = <®_audio_codec>;
+ AVDD-supply = <®_audio_codec>;
+ PVDD-supply = <®_audio_codec>;
+ HPVDD-supply = <®_audio_codec>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sound_novena>;
+ clocks = <&clks IMX6QDL_CLK_CKO1>;
+ assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
+ <&clks IMX6QDL_CLK_CKO1_SEL>,
+ <&clks IMX6QDL_CLK_PLL4_AUDIO>,
+ <&clks IMX6QDL_CLK_CKO1>;
+ assigned-clock-parents = <&clks IMX6QDL_CLK_CKO1>,
+ <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>,
+ <&clks IMX6QDL_CLK_OSC>,
+ <&clks IMX6QDL_CLK_CKO1_PODF>;
+ assigned-clock-rates = <0 0 722534400 22579200>;
+ };
+};
+
+&kpp {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_kpp_novena>;
+ linux,keymap = <
+ MATRIX_KEY(1, 1, KEY_CONFIG)
+ >;
+ status = "okay";
+};
+
+&ldb {
+ fsl,dual-channel;
+ status = "okay";
+
+ lvds-channel at 0 {
+ fsl,data-mapping = "jeida";
+ fsl,data-width = <24>;
+ fsl,panel = <&panel>;
+ status = "okay";
+ };
+};
+
+&pcie {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pcie_novena>;
+ reset-gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+};
+
+&sata {
+ target-supply = <®_sata>;
+ fsl,transmit-level-mV = <1025>;
+ fsl,transmit-boost-mdB = <0>;
+ fsl,transmit-atten-16ths = <8>;
+ status = "okay";
+};
+
+&ssi1 {
+ status = "okay";
+};
+
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart2_novena>;
+ status = "okay";
+};
+
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart3_novena>;
+ status = "okay";
+};
+
+&uart4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart4_novena>;
+ status = "okay";
+};
+
+&usbotg {
+ vbus-supply = <®_usb_otg_vbus>;
+ dr_mode = "otg";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbotg_novena>;
+ disable-over-current;
+ status = "okay";
+};
+
+&usbh1 {
+ vbus-supply = <®_swbst>;
+ status = "okay";
+};
+
+&usdhc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc2_novena>;
+ cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+ wp-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+ bus-width = <4>;
+ status = "okay";
+};
+
+&usdhc3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc3_novena>;
+ bus-width = <4>;
+ non-removable;
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_audmux_novena: audmuxgrp-novena {
+ fsl,pins = <
+ 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_novena: backlightgrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b0
+ MX6QDL_PAD_CSI0_DAT10__GPIO5_IO28 0x1b0b1
+ MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b1
+ >;
+ };
+
+ pinctrl_ecspi3_novena: ecspi3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
+ MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
+ MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x100b1
+ >;
+ };
+
+ pinctrl_enet_novena: enetgrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
+ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
+ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b020
+ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b028
+ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b028
+ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b028
+ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b028
+ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b028
+ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
+ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
+ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
+ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
+ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
+ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
+ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
+ MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
+ /* Ethernet reset */
+ MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b1
+ >;
+ };
+
+ pinctrl_fpga_gpio: fpgagpiogrp-novena {
+ fsl,pins = <
+ /* FPGA power */
+ MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
+ /* Reset */
+ MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
+ /* FPGA GPIOs */
+ MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b1
+ MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x1b0b1
+ MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x1b0b1
+ MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x1b0b1
+ MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x1b0b1
+ MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x1b0b1
+ MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x1b0b1
+ MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x1b0b1
+ MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x1b0b1
+ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x1b0b1
+ MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x1b0b1
+ MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x1b0b1
+ MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x1b0b1
+ MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x1b0b1
+ MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x1b0b1
+ MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x1b0b1
+ MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b0b1
+ MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x1b0b1
+ MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b1
+ MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b1
+ MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x1b0b1
+ MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x1b0b1
+ MX6QDL_PAD_EIM_OE__GPIO2_IO25 0x1b0b1
+ MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x1b0b1
+ MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x1b0b1
+ MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b1
+ >;
+ };
+
+ pinctrl_fpga_eim: fpgaeimgrp-novena {
+ fsl,pins = <
+ /* FPGA power */
+ MX6QDL_PAD_SD1_DAT1__GPIO1_IO17 0x1b0b1
+ /* Reset */
+ MX6QDL_PAD_DISP0_DAT13__GPIO5_IO07 0x1b0b1
+ /* FPGA GPIOs */
+ MX6QDL_PAD_EIM_DA0__EIM_AD00 0xb0f1
+ MX6QDL_PAD_EIM_DA1__EIM_AD01 0xb0f1
+ MX6QDL_PAD_EIM_DA2__EIM_AD02 0xb0f1
+ MX6QDL_PAD_EIM_DA3__EIM_AD03 0xb0f1
+ MX6QDL_PAD_EIM_DA4__EIM_AD04 0xb0f1
+ MX6QDL_PAD_EIM_DA5__EIM_AD05 0xb0f1
+ MX6QDL_PAD_EIM_DA6__EIM_AD06 0xb0f1
+ MX6QDL_PAD_EIM_DA7__EIM_AD07 0xb0f1
+ MX6QDL_PAD_EIM_DA8__EIM_AD08 0xb0f1
+ MX6QDL_PAD_EIM_DA9__EIM_AD09 0xb0f1
+ MX6QDL_PAD_EIM_DA10__EIM_AD10 0xb0f1
+ MX6QDL_PAD_EIM_DA11__EIM_AD11 0xb0f1
+ MX6QDL_PAD_EIM_DA12__EIM_AD12 0xb0f1
+ MX6QDL_PAD_EIM_DA13__EIM_AD13 0xb0f1
+ MX6QDL_PAD_EIM_DA14__EIM_AD14 0xb0f1
+ MX6QDL_PAD_EIM_DA15__EIM_AD15 0xb0f1
+ MX6QDL_PAD_EIM_A16__EIM_ADDR16 0xb0f1
+ MX6QDL_PAD_EIM_A17__EIM_ADDR17 0xb0f1
+ MX6QDL_PAD_EIM_A18__EIM_ADDR18 0xb0f1
+ MX6QDL_PAD_EIM_CS0__EIM_CS0_B 0xb0f1
+ MX6QDL_PAD_EIM_CS1__EIM_CS1_B 0xb0f1
+ MX6QDL_PAD_EIM_LBA__EIM_LBA_B 0xb0f1
+ MX6QDL_PAD_EIM_OE__EIM_OE_B 0xb0f1
+ MX6QDL_PAD_EIM_RW__EIM_RW 0xb0f1
+ MX6QDL_PAD_EIM_WAIT__EIM_WAIT_B 0xb0f1
+ MX6QDL_PAD_EIM_BCLK__EIM_BCLK 0xb0f1
+ >;
+ };
+
+ pinctrl_gpio_keys_novena: gpiokeysgrp-novena {
+ fsl,pins = <
+ /* User button */
+ MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0
+ /* PCIe Wakeup */
+ MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1f0e0
+ /* Lid switch */
+ MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
+ >;
+ };
+
+ pinctrl_hdmi_novena: hdmigrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
+ MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x1b0b1
+ >;
+ };
+
+ pinctrl_i2c1_novena: i2c1grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
+ >;
+ };
+
+ pinctrl_i2c2_novena: i2c2grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
+ >;
+ };
+
+ pinctrl_i2c3_novena: i2c3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
+ >;
+ };
+
+ pinctrl_kpp_novena: kppgrp-novena {
+ fsl,pins = <
+ /* Front panel button */
+ MX6QDL_PAD_KEY_ROW1__KEY_ROW1 0x1b0b1
+ /* Fake column driver, not connected */
+ MX6QDL_PAD_KEY_COL1__KEY_COL1 0x1b0b1
+ >;
+ };
+
+ pinctrl_leds_novena: ledsgrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_SD1_DAT3__GPIO1_IO21 0x1b0b1
+ >;
+ };
+
+ pinctrl_pcie_novena: pciegrp-novena {
+ fsl,pins = <
+ /* Reset */
+ MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b1
+ /* Power On */
+ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b1
+ /* Wifi kill */
+ MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x1b0b1
+ >;
+ };
+
+ pinctrl_sata_novena: satagrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b1
+ >;
+ };
+
+ pinctrl_senoko_novena: senokogrp-novena {
+ fsl,pins = <
+ /* Senoko IRQ line */
+ MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x13048
+ /* Senoko reset line */
+ MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x1b0b1
+ >;
+ };
+
+ pinctrl_sound_novena: soundgrp-novena {
+ fsl,pins = <
+ /* Audio power regulator */
+ MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b1
+ /* Headphone plug */
+ MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b1
+ MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x000b0
+ >;
+ };
+
+ pinctrl_stmpe_novena: stmpegrp-novena {
+ fsl,pins = <
+ /* Touchscreen interrupt */
+ MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13 0x1b0b1
+ >;
+ };
+
+ pinctrl_uart2_novena: uart2grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D26__UART2_TX_DATA 0x1b0b1
+ MX6QDL_PAD_EIM_D27__UART2_RX_DATA 0x1b0b1
+ >;
+ };
+
+ pinctrl_uart3_novena: uart3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
+ MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
+ >;
+ };
+
+ pinctrl_uart4_novena: uart4grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
+ MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
+ >;
+ };
+
+ pinctrl_usbotg_novena: usbotggrp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
+ >;
+ };
+
+ pinctrl_usdhc2_novena: usdhc2grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
+ /* Write protect */
+ MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b1
+ /* Card detect */
+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b1
+ >;
+ };
+
+ pinctrl_usdhc3_novena: usdhc3grp-novena {
+ fsl,pins = <
+ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
+ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
+ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
+ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
+ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
+ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
+ >;
+ };
+};
--
2.1.4
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi
2015-11-28 14:47 [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi Marek Vasut
2015-11-28 14:47 ` [PATCH V3 2/2] ARM: dts: imx6q: add Novena board Marek Vasut
@ 2015-12-14 1:36 ` Shawn Guo
1 sibling, 0 replies; 20+ messages in thread
From: Shawn Guo @ 2015-12-14 1:36 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Nov 28, 2015 at 03:47:03PM +0100, Marek Vasut wrote:
> From: Sean Cross <xobs@kosagi.com>
>
> Add a vendor prefix for Sutajio Ko-Usagi PTE Ltd., which goes by the
> more common name of Kosagi.
>
> Signed-off-by: Sean Cross <xobs@kosagi.com>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Rob Herring <robh@kernel.org>
Hi Rob,
Are you okay with this patch?
Shawn
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
> 1 file changed, 1 insertion(+)
>
> V2: Add my SoB line.
>
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
> index 62ff22f..d3ee06e 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.txt
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
> @@ -124,6 +124,7 @@ jedec JEDEC Solid State Technology Association
> karo Ka-Ro electronics GmbH
> keymile Keymile GmbH
> kinetic Kinetic Technologies
> +kosagi Sutajio Ko-Usagi PTE Ltd.
> lacie LaCie
> lantiq Lantiq Semiconductor
> lenovo Lenovo Group Ltd.
> --
> 2.1.4
>
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-12 3:27 ` [PATCH V4 " Marek Vasut
@ 2015-12-14 1:38 ` Shawn Guo
2015-12-14 3:56 ` Marek Vasut
0 siblings, 1 reply; 20+ messages in thread
From: Shawn Guo @ 2015-12-14 1:38 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, Dec 12, 2015 at 04:27:13AM +0100, Marek Vasut wrote:
> From: Sean Cross <xobs@kosagi.com>
>
> Novena is an open-hardware laptop/desktop/bare board.
>
> See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
>
> Signed-off-by: Sean Cross <xobs@kosagi.com>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Lucas Stach <l.stach@pengutronix.de>
> Cc: Sean Cross <xobs@kosagi.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
It looks pretty good to me now, except a small question below.
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/imx6q-novena.dts | 789 +++++++++++++++++++++++++++++++++++++
> 2 files changed, 790 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
<snip>
> +/ {
> + model = "Kosagi Novena Dual/Quad";
> + compatible = "kosagi,imx6q-novena", "fsl,imx6q";
> +
> + memory {
> + reg = <0x10000000 0xefffffff>;
What's the trick of having memory size being 0xefffffff?
Shawn
> + };
>
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 1:38 ` Shawn Guo
@ 2015-12-14 3:56 ` Marek Vasut
2015-12-14 13:53 ` Sergei Shtylyov
0 siblings, 1 reply; 20+ messages in thread
From: Marek Vasut @ 2015-12-14 3:56 UTC (permalink / raw)
To: linux-arm-kernel
On Monday, December 14, 2015 at 02:38:45 AM, Shawn Guo wrote:
> On Sat, Dec 12, 2015 at 04:27:13AM +0100, Marek Vasut wrote:
> > From: Sean Cross <xobs@kosagi.com>
> >
> > Novena is an open-hardware laptop/desktop/bare board.
> >
> > See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
> >
> > Signed-off-by: Sean Cross <xobs@kosagi.com>
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Lucas Stach <l.stach@pengutronix.de>
> > Cc: Sean Cross <xobs@kosagi.com>
> > Cc: Shawn Guo <shawnguo@kernel.org>
>
> It looks pretty good to me now, except a small question below.
Thanks
> > ---
> >
> > arch/arm/boot/dts/Makefile | 1 +
> > arch/arm/boot/dts/imx6q-novena.dts | 789
> > +++++++++++++++++++++++++++++++++++++ 2 files changed, 790
> > insertions(+)
> > create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
>
> <snip>
>
> > +/ {
> > + model = "Kosagi Novena Dual/Quad";
> > + compatible = "kosagi,imx6q-novena", "fsl,imx6q";
> > +
> > + memory {
> > + reg = <0x10000000 0xefffffff>;
>
> What's the trick of having memory size being 0xefffffff?
That is a typo, should obviously be 0xffffffff , I just tested it on the board.
Thanks for spotting it, do you want me to repost a V5 or can you fix it ?
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 3:56 ` Marek Vasut
@ 2015-12-14 13:53 ` Sergei Shtylyov
2015-12-14 14:12 ` Marek Vasut
0 siblings, 1 reply; 20+ messages in thread
From: Sergei Shtylyov @ 2015-12-14 13:53 UTC (permalink / raw)
To: linux-arm-kernel
Hello.
On 12/14/2015 6:56 AM, Marek Vasut wrote:
>>> From: Sean Cross <xobs@kosagi.com>
>>>
>>> Novena is an open-hardware laptop/desktop/bare board.
>>>
>>> See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
>>>
>>> Signed-off-by: Sean Cross <xobs@kosagi.com>
>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>> Cc: Fabio Estevam <fabio.estevam@freescale.com>
>>> Cc: Lucas Stach <l.stach@pengutronix.de>
>>> Cc: Sean Cross <xobs@kosagi.com>
>>> Cc: Shawn Guo <shawnguo@kernel.org>
>>
>> It looks pretty good to me now, except a small question below.
>
> Thanks
>
>>> ---
>>>
>>> arch/arm/boot/dts/Makefile | 1 +
>>> arch/arm/boot/dts/imx6q-novena.dts | 789
>>> +++++++++++++++++++++++++++++++++++++ 2 files changed, 790
>>> insertions(+)
>>> create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
>>
>> <snip>
>>
>>> +/ {
>>> + model = "Kosagi Novena Dual/Quad";
>>> + compatible = "kosagi,imx6q-novena", "fsl,imx6q";
>>> +
>>> + memory {
>>> + reg = <0x10000000 0xefffffff>;
>>
>> What's the trick of having memory size being 0xefffffff?
> That is a typo, should obviously be 0xffffffff ,
You didn't get it. :-) It' the _size_, not limit.
[...]
> Best regards,
> Marek Vasut
MBR, Sergei
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 13:53 ` Sergei Shtylyov
@ 2015-12-14 14:12 ` Marek Vasut
2015-12-14 14:17 ` Fabio Estevam
0 siblings, 1 reply; 20+ messages in thread
From: Marek Vasut @ 2015-12-14 14:12 UTC (permalink / raw)
To: linux-arm-kernel
On Monday, December 14, 2015 at 02:53:42 PM, Sergei Shtylyov wrote:
> Hello.
>
> On 12/14/2015 6:56 AM, Marek Vasut wrote:
> >>> From: Sean Cross <xobs@kosagi.com>
> >>>
> >>> Novena is an open-hardware laptop/desktop/bare board.
> >>>
> >>> See http://www.kosagi.com/w/index.php?title=Novena_Main_Page
> >>>
> >>> Signed-off-by: Sean Cross <xobs@kosagi.com>
> >>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> >>> Cc: Lucas Stach <l.stach@pengutronix.de>
> >>> Cc: Sean Cross <xobs@kosagi.com>
> >>> Cc: Shawn Guo <shawnguo@kernel.org>
> >>
> >> It looks pretty good to me now, except a small question below.
> >
> > Thanks
> >
> >>> ---
> >>>
> >>> arch/arm/boot/dts/Makefile | 1 +
> >>> arch/arm/boot/dts/imx6q-novena.dts | 789
> >>> +++++++++++++++++++++++++++++++++++++ 2 files changed, 790
> >>> insertions(+)
> >>> create mode 100644 arch/arm/boot/dts/imx6q-novena.dts
> >>
> >> <snip>
> >>
> >>> +/ {
> >>> + model = "Kosagi Novena Dual/Quad";
> >>> + compatible = "kosagi,imx6q-novena", "fsl,imx6q";
> >>> +
> >>> + memory {
> >>> + reg = <0x10000000 0xefffffff>;
> >>
> >> What's the trick of having memory size being 0xefffffff?
> >
> > That is a typo, should obviously be 0xffffffff ,
>
> You didn't get it. :-) It' the _size_, not limit.
So it was correct from the get-go ? Uh ...
Thanks for clarification, I will remember this :)
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 14:12 ` Marek Vasut
@ 2015-12-14 14:17 ` Fabio Estevam
2015-12-14 14:41 ` Marek Vasut
0 siblings, 1 reply; 20+ messages in thread
From: Fabio Estevam @ 2015-12-14 14:17 UTC (permalink / raw)
To: linux-arm-kernel
Hi Marek,
On Mon, Dec 14, 2015 at 12:12 PM, Marek Vasut <marex@denx.de> wrote:
> So it was correct from the get-go ? Uh ...
>
> Thanks for clarification, I will remember this :)
If you prefer, you can even remove this memory node entry from the dts
and let the bootloader pass the correct amount of RAM to the kernel.
This is useful when a board has variants in RAM size.
Regards,
Fabio Estevam
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 14:17 ` Fabio Estevam
@ 2015-12-14 14:41 ` Marek Vasut
2015-12-14 14:45 ` Fabio Estevam
0 siblings, 1 reply; 20+ messages in thread
From: Marek Vasut @ 2015-12-14 14:41 UTC (permalink / raw)
To: linux-arm-kernel
On Monday, December 14, 2015 at 03:17:04 PM, Fabio Estevam wrote:
> Hi Marek,
Hi!
> On Mon, Dec 14, 2015 at 12:12 PM, Marek Vasut <marex@denx.de> wrote:
> > So it was correct from the get-go ? Uh ...
> >
> > Thanks for clarification, I will remember this :)
>
> If you prefer, you can even remove this memory node entry from the dts
> and let the bootloader pass the correct amount of RAM to the kernel.
>
> This is useful when a board has variants in RAM size.
Well that's a good idea, but some sort of sane default should be present
anyway, right ?
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 14:41 ` Marek Vasut
@ 2015-12-14 14:45 ` Fabio Estevam
2015-12-14 14:47 ` Marek Vasut
0 siblings, 1 reply; 20+ messages in thread
From: Fabio Estevam @ 2015-12-14 14:45 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Dec 14, 2015 at 12:41 PM, Marek Vasut <marex@denx.de> wrote:
> Well that's a good idea, but some sort of sane default should be present
> anyway, right ?
No, not needed. The bootloader should pass the correct RAM size.
See imx6qdl-hummingboard and imx6qdl-cubox-i.dtsi for a reference,
where 'memory' node is not passed.
Regards,
Fabio Estevam
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 14:45 ` Fabio Estevam
@ 2015-12-14 14:47 ` Marek Vasut
2015-12-15 3:33 ` Marek Vasut
0 siblings, 1 reply; 20+ messages in thread
From: Marek Vasut @ 2015-12-14 14:47 UTC (permalink / raw)
To: linux-arm-kernel
On Monday, December 14, 2015 at 03:45:16 PM, Fabio Estevam wrote:
> On Mon, Dec 14, 2015 at 12:41 PM, Marek Vasut <marex@denx.de> wrote:
> > Well that's a good idea, but some sort of sane default should be present
> > anyway, right ?
>
> No, not needed. The bootloader should pass the correct RAM size.
>
> See imx6qdl-hummingboard and imx6qdl-cubox-i.dtsi for a reference,
> where 'memory' node is not passed.
So, if bootloader does not do the changes to the DT, then what ?
(U-Boot does them, so it would work, but I don't think we should depend on that)
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH V4 2/2] ARM: dts: imx6q: add Novena board
2015-12-14 14:47 ` Marek Vasut
@ 2015-12-15 3:33 ` Marek Vasut
0 siblings, 0 replies; 20+ messages in thread
From: Marek Vasut @ 2015-12-15 3:33 UTC (permalink / raw)
To: linux-arm-kernel
On Monday, December 14, 2015 at 03:47:10 PM, Marek Vasut wrote:
> On Monday, December 14, 2015 at 03:45:16 PM, Fabio Estevam wrote:
> > On Mon, Dec 14, 2015 at 12:41 PM, Marek Vasut <marex@denx.de> wrote:
> > > Well that's a good idea, but some sort of sane default should be
> > > present anyway, right ?
> >
> > No, not needed. The bootloader should pass the correct RAM size.
> >
> > See imx6qdl-hummingboard and imx6qdl-cubox-i.dtsi for a reference,
> > where 'memory' node is not passed.
>
> So, if bootloader does not do the changes to the DT, then what ?
> (U-Boot does them, so it would work, but I don't think we should depend on
> that)
I just tested that removing the whole memory {} node has no impact.
Would you thus prefer a V5 or can you remove that node yourself when applying?
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2015-12-15 3:33 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-28 14:47 [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi Marek Vasut
2015-11-28 14:47 ` [PATCH V3 2/2] ARM: dts: imx6q: add Novena board Marek Vasut
2015-11-30 10:19 ` Lucas Stach
2015-11-30 12:21 ` Marek Vasut
2015-11-30 10:57 ` Fabio Estevam
2015-12-02 7:53 ` Shawn Guo
2015-12-02 15:41 ` Marek Vasut
2015-12-11 11:07 ` Shawn Guo
2015-12-12 3:25 ` Marek Vasut
2015-12-12 3:27 ` [PATCH V4 " Marek Vasut
2015-12-14 1:38 ` Shawn Guo
2015-12-14 3:56 ` Marek Vasut
2015-12-14 13:53 ` Sergei Shtylyov
2015-12-14 14:12 ` Marek Vasut
2015-12-14 14:17 ` Fabio Estevam
2015-12-14 14:41 ` Marek Vasut
2015-12-14 14:45 ` Fabio Estevam
2015-12-14 14:47 ` Marek Vasut
2015-12-15 3:33 ` Marek Vasut
2015-12-14 1:36 ` [PATCH V2 1/2] devicetree: bindings: Add vendor prefix for Kosagi Shawn Guo
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.