[PATCH] ARM: dts: imx6q-icore-rqs: Add Engicam IMX6 Q7 initial support
Michael Trimarchi
michael at amarulasolutions.com
Mon Nov 16 03:41:32 PST 2015
Hi
On Mon, Nov 16, 2015 at 12:38:15PM +0100, Lucas Stach wrote:
> Am Montag, den 16.11.2015, 12:29 +0100 schrieb Michael Trimarchi:
> > Hi
> >
> > On Mon, Nov 16, 2015 at 10:19:12AM +0100, Lucas Stach wrote:
> > > Am Sonntag, den 15.11.2015, 11:54 +0100 schrieb Michael Trimarchi:
> > > > www.engicam.com/en/products/embedded/som/standard/i-core-rqs-m6s-dl-d-q
> > > >
> > > > Signed-off-by: Michael Trimarchi <michael at amarulasolutions.com>
> > > > ---
> > > > arch/arm/boot/dts/Makefile | 1 +
> > > > arch/arm/boot/dts/imx6q-icore-rqs.dts | 36 +++
> > > > arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi | 372 +++++++++++++++++++++++++++++++
> > > > 3 files changed, 409 insertions(+)
> > > > create mode 100644 arch/arm/boot/dts/imx6q-icore-rqs.dts
> > > > create mode 100644 arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
> > > >
> [...]
> > > > diff --git a/arch/arm/boot/dts/imx6q-icore-rqs.dts b/arch/arm/boot/dts/imx6q-icore-rqs.dts
> > > > new file mode 100644
> > > > index 0000000..cded07d
> > > > --- /dev/null
> > > > +++ b/arch/arm/boot/dts/imx6q-icore-rqs.dts
> > > > @@ -0,0 +1,36 @@
> > > > +/*
> > > > + * Copyright (C) 2015 Amarula Solutions B.V.
> > > > + *
> > > > + * This program is free software; you can redistribute it and/or modify
> > > > + * it under the terms of the GNU General Public License version 2 as
> > > > + * published by the Free Software Foundation.
> > > > + */
> > > > +
> > > > +/dts-v1/;
> > > > +
> > > > +#include "imx6q.dtsi"
> > > > +#include "imx6qdl-icore-rqs.dtsi"
> > > > +
> > > > +/ {
> > > > + model = "Engicam i.CoreM6 Quad SOM";
> > > > + compatible = "fsl,imx6-icore-rqs", "fsl,imx6q";
> > > > + cpus {
> > > > + cpu at 0 {
> > > > + operating-points = <
> > > > + /* kHz uV */
> > > > + 792000 1150000
> > > > + 396000 1150000
> > > > + >;
> > > > +
> > > > + fsl,soc-operating-points = <
> > > > + /* ARM kHz SOC-PU uV */
> > > > + 792000 1175000
> > > > + 396000 1175000
> > > > + >;
> > > > + };
> > > Why do you need to edit the OPPS here? Just to fix them on a specific
> > > voltage? Why?
> > >
> >
> > Board has no pmu regulator
> >
> The default i.MX6 configuration (see imx6q.dtsi) is to connect the ARM
> and SOC domain to the internal LDOs, so voltage scaling is not dependent
> on an external PMIC being present.
>
Sorry, It was a mistake based on original patch. So I need to limit the max
allowed frequency suggested by the vendor. So including the operating points
that I support. Is this fine?
> > > > + };
> > > > +};
> > > > +
> > > > +&sata {
> > > > + status = "okay";
> > > > +};
> > > > diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
> > > > new file mode 100644
> > > > index 0000000..59c416e
> > > > --- /dev/null
> > > > +++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
> > > > @@ -0,0 +1,372 @@
> > > > +/*
> > > > + * Copyright 2015 Amarula Solutions B.V.
> > > > + *
> > > > + * The code contained herein is licensed under the GNU General Public
> > > > + * License. You may obtain a copy of the GNU General Public License
> > > > + * Version 2 or later at the following locations:
> > > > + *
> > > > + * http://www.opensource.org/licenses/gpl-license.html
> > > > + * http://www.gnu.org/copyleft/gpl.html
> > > > + */
> > > > +#include <dt-bindings/gpio/gpio.h>
> > > > +#include <dt-bindings/clock/imx6qdl-clock.h>
> > > > +
> > > > +/ {
> > > > + memory {
> > > > + reg = <0x10000000 0x80000000>;
> > > > + };
> > > > +
> > > > + regulators {
> > > > + compatible = "simple-bus";
> > > > +
> > > > + reg_usb_h1_vbus: usb_h1_vbus {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "usb_h1_vbus";
> > > > + regulator-min-microvolt = <5000000>;
> > > > + regulator-max-microvolt = <5000000>;
> > > > + gpio = <&gpio1 6 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>;
> > > > + regulator-always-on;
> > > > + };
> > > > +
> > > > + reg_3p3v: 3p3v {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "3P3V";
> > > > + regulator-min-microvolt = <3300000>;
> > > > + regulator-max-microvolt = <3300000>;
> > > > + regulator-always-on;
> > > > + };
> > > > +
> > > > + reg_2p5v: 2p5v {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "2P5V";
> > > > + regulator-min-microvolt = <2500000>;
> > > > + regulator-max-microvolt = <2500000>;
> > > > + regulator-always-on;
> > > > + };
> > > > +
> > > > + reg_1p8v: 1p8v {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "1P8V";
> > > > + regulator-min-microvolt = <1800000>;
> > > > + regulator-max-microvolt = <1800000>;
> > > > + regulator-always-on;
> > > > + };
> > > > +
> > > > + reg_sd4_vmmc: sd4_vmmc {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "P3V3_SD4_SWITCHED";
> > > > + regulator-min-microvolt = <3300000>;
> > > > + regulator-max-microvolt = <3300000>;
> > > > + regulator-boot-on;
> > > > + regulator-always-on;
> > > > + };
> > > > +
> > > > + reg_sd3_vmmc: sd3_vmmc {
> > > > + compatible = "regulator-fixed";
> > > > + regulator-name = "P3V3_SD3_SWITCHED";
> > > > + regulator-min-microvolt = <3300000>;
> > > > + regulator-max-microvolt = <3300000>;
> > > > + gpio = <&gpio1 4 GPIO_ACTIVE_LOW>;
> > > > + regulator-boot-on;
> > > > + regulator-always-on;
> > > > + };
> > >
> > > A lot of those regulators look like they don't need to be always-on.
> > >
> > > Also the use of a simple-bus, while giving some structure to the DT is
> > > considered bad style as it doesn't reflect any real hardware.
> > >
> >
> > I will check how other boards do it
> >
> Note that there are a lot of bad examples still around. What you need to
> do is essentially just remove the additional DT level of the regulator
> bus. The regulators are board components that belong to the same level
> as the usb hub below, or the memory node above.
Understand. I will do
>
> Regards,
> Lucas
>
> --
> Pengutronix e.K. | Lucas Stach |
> Industrial Linux Solutions | http://www.pengutronix.de/ |
>
--
| Michael Nazzareno Trimarchi Amarula Solutions BV |
| COO - Founder Cruquiuskade 47 |
| +31(0)851119172 Amsterdam 1018 AM NL |
| [`as] http://www.amarulasolutions.com |
More information about the linux-arm-kernel
mailing list