- ARM: dts: mediatek: add mt6580 basic support

- Document: DT: Add bindings for mediatek MT6580 SoC Platform
 - ARM: dts: mediatek mt8135: Use real UART clocks
 - ARM: dts: mt8135-evbp1: Add PMIC support
 - ARM: dts: mt8135: Add pmic wrapper nodes
 - ARM: dts: mediatek: Enable clock support for Mediatek MT8135.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVt2IWAAoJELQ5Ylss8dNDIiQQAKiRws9uCGxy9JE5ctn0kmRc
 m7u9juM1pBRWIAPReCWBBATivBtlaCMGM00o92zg3biM9npedy0p9xgakNhM/vPR
 pFq1PZX6IU7qnn3dB7WXYy+JOIOvUTKwTVz87z45HEepQXMIJFx3/x6LnxabxEIq
 LlxMupWb+yG5jiwAor63YOXbQy1AF2Ps2+p6rySYEQZrf5wzteozJWxTHZ5Vr0+p
 KW7u8Cb9d0tTb/AxN9Il/+xTeev5O0M6J8LS8qx95h4RvT5hqPGgiBsYL+jLp9fu
 AC3SjEdO6EQfx/yI2bkOLmtzekhfXSrtcupW6lpcUfhEXjlB6uliw3frxZd/qB+F
 lwHmr3j0gWdEdRn9rnPmNciey8xQRgkPWOLKu2Eu3SUS2fxCHKCaG6tVaKBIun/I
 +rl3lksPYSEiK/jqN5aS2GLna6cX21KxkgaWMhldL7jQOlMzns6C5e+xETuJYgTc
 u35XkkcNZ8KzYwX0NEdd86fMMhMx3YOFrEdZglnOwltSKe2ZCAAJiscfkagAOONj
 Oty3Z9jJTUZ0Xd/jytC54wKGzzhu0MWfqcDC1e2sEb3BuACBMx37f5g37/nG/QEV
 cK+ITf2o8KmUj6FIKNZgMF9821KFX4qT9+DzGTQ0Ch09HtKxh+eYxMxFcv8VFHhh
 SG4HmhLaSs6crR95uJpE
 =qKl7
 -----END PGP SIGNATURE-----

Merge tag 'v4.2-next-dts' of https://github.com/mbgg/linux-mediatek into next/dt

- ARM: dts: mediatek: add mt6580 basic support
- Document: DT: Add bindings for mediatek MT6580 SoC Platform
- ARM: dts: mediatek mt8135: Use real UART clocks
- ARM: dts: mt8135-evbp1: Add PMIC support
- ARM: dts: mt8135: Add pmic wrapper nodes
- ARM: dts: mediatek: Enable clock support for Mediatek MT8135.

* tag 'v4.2-next-dts' of https://github.com/mbgg/linux-mediatek:
  ARM: dts: mediatek: add mt6580 basic support
  Document: DT: Add bindings for mediatek MT6580 SoC Platform
  ARM: dts: mediatek mt8135: Use real UART clocks
  ARM: dts: mt8135-evbp1: Add PMIC support
  ARM: dts: mt8135: Add pmic wrapper nodes
  ARM: dts: mediatek: Enable clock support for Mediatek MT8135.

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2015-07-28 18:16:36 +02:00
commit 55e3cfc5f9
9 changed files with 411 additions and 9 deletions

View File

@ -5,6 +5,7 @@ Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property:
Required root node property: Required root node property:
compatible: Must contain one of compatible: Must contain one of
"mediatek,mt6580"
"mediatek,mt6589" "mediatek,mt6589"
"mediatek,mt6592" "mediatek,mt6592"
"mediatek,mt8127" "mediatek,mt8127"
@ -14,6 +15,9 @@ compatible: Must contain one of
Supported boards: Supported boards:
- Evaluation board for MT6580:
Required root node properties:
- compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
- bq Aquaris5 smart phone: - bq Aquaris5 smart phone:
Required root node properties: Required root node properties:
- compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589"; - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589";

View File

@ -11,6 +11,7 @@ Required properties:
"mediatek,mt6592-sysirq" "mediatek,mt6592-sysirq"
"mediatek,mt6589-sysirq" "mediatek,mt6589-sysirq"
"mediatek,mt6582-sysirq" "mediatek,mt6582-sysirq"
"mediatek,mt6580-sysirq"
"mediatek,mt6577-sysirq" "mediatek,mt6577-sysirq"
- interrupt-controller : Identifies the node as an interrupt controller - interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : Use the same format as specified by GIC in - #interrupt-cells : Use the same format as specified by GIC in

View File

@ -7,8 +7,9 @@ Required properties:
* "mediatek,mt8173-uart" for MT8173 compatible UARTS * "mediatek,mt8173-uart" for MT8173 compatible UARTS
* "mediatek,mt6589-uart" for MT6589 compatible UARTS * "mediatek,mt6589-uart" for MT6589 compatible UARTS
* "mediatek,mt6582-uart" for MT6582 compatible UARTS * "mediatek,mt6582-uart" for MT6582 compatible UARTS
* "mediatek,mt6580-uart" for MT6580 compatible UARTS
* "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582, * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582,
MT6577) MT6580, MT6577)
- reg: The base address of the UART register bank. - reg: The base address of the UART register bank.

View File

@ -2,7 +2,11 @@ Mediatek MT6577, MT6572 and MT6589 Timers
--------------------------------------- ---------------------------------------
Required properties: Required properties:
- compatible: Should be "mediatek,mt6577-timer" - compatible should contain:
* "mediatek,mt6589-timer" for MT6589 compatible timers
* "mediatek,mt6580-timer" for MT6580 compatible timers
* "mediatek,mt6577-timer" for all compatible timers (MT6589, MT6580,
MT6577)
- reg: Should contain location and length for timers register. - reg: Should contain location and length for timers register.
- clocks: Clocks driving the timer hardware. This list should include two - clocks: Clocks driving the timer hardware. This list should include two
clocks. The order is system clock and as second clock the RTC clock. clocks. The order is system clock and as second clock the RTC clock.

View File

@ -721,6 +721,7 @@ dtb-$(CONFIG_MACH_DOVE) += \
dove-dove-db.dtb \ dove-dove-db.dtb \
dove-sbc-a510.dtb dove-sbc-a510.dtb
dtb-$(CONFIG_ARCH_MEDIATEK) += \ dtb-$(CONFIG_ARCH_MEDIATEK) += \
mt6580-evbp1.dtb \
mt6589-aquaris5.dtb \ mt6589-aquaris5.dtb \
mt6592-evb.dtb \ mt6592-evb.dtb \
mt8127-moose.dtb \ mt8127-moose.dtb \

View File

@ -0,0 +1,38 @@
/*
* Copyright (c) 2015 MediaTek Inc.
* Author: Mars.C <mars.cheng@mediatek.com>
*
* 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.
*
* This program 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.
*/
/dts-v1/;
#include "mt6580.dtsi"
/ {
model = "MediaTek MT6580 evaluation board";
compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
chosen {
stdout-path = "serial0:921600n8";
};
memory {
reg = <0x80000000 0x20000000>;
};
};
&uart0 {
status = "okay";
};

View File

@ -0,0 +1,116 @@
/*
* Copyright (c) 2015 MediaTek Inc.
* Author: Mars.C <mars.cheng@mediatek.com>
*
* 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.
*
* This program 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.
*/
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include "skeleton.dtsi"
/ {
compatible = "mediatek,mt6580";
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&sysirq>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
};
cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x1>;
};
cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x2>;
};
cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x3>;
};
};
system_clk: dummy13m {
compatible = "fixed-clock";
clock-frequency = <13000000>;
#clock-cells = <0>;
};
rtc_clk: dummy32k {
compatible = "fixed-clock";
clock-frequency = <32000>;
#clock-cells = <0>;
};
uart_clk: dummy26m {
compatible = "fixed-clock";
clock-frequency = <26000000>;
#clock-cells = <0>;
};
timer: timer@10008000 {
compatible = "mediatek,mt6580-timer",
"mediatek,mt6577-timer";
reg = <0x10008000 0x80>;
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
clocks = <&system_clk>, <&rtc_clk>;
clock-names = "system-clk", "rtc-clk";
};
sysirq: interrupt-controller@10200100 {
compatible = "mediatek,mt6580-sysirq",
"mediatek,mt6577-sysirq";
interrupt-controller;
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
reg = <0x10200100 0x1c>;
};
gic: interrupt-controller@10211000 {
compatible = "arm,cortex-a7-gic";
interrupt-controller;
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
reg = <0x10211000 0x1000>,
<0x10212000 0x1000>,
<0x10214000 0x2000>,
<0x10216000 0x2000>;
};
uart0: serial@11005000 {
compatible = "mediatek,mt6580-uart",
"mediatek,mt6577-uart";
reg = <0x11005000 0x400>;
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>;
status = "disabled";
};
uart1: serial@11006000 {
compatible = "mediatek,mt6580-uart",
"mediatek,mt6577-uart";
reg = <0x11006000 0x400>;
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>;
status = "disabled";
};
};

View File

@ -24,6 +24,199 @@
}; };
}; };
&pwrap {
pmic: mt6397 {
compatible = "mediatek,mt6397";
mt6397regulator: mt6397regulator {
compatible = "mediatek,mt6397-regulator";
mt6397_vpca15_reg: buck_vpca15 {
regulator-compatible = "buck_vpca15";
regulator-name = "vpca15";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vpca7_reg: buck_vpca7 {
regulator-compatible = "buck_vpca7";
regulator-name = "vpca7";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vsramca15_reg: buck_vsramca15 {
regulator-compatible = "buck_vsramca15";
regulator-name = "vsramca15";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vsramca7_reg: buck_vsramca7 {
regulator-compatible = "buck_vsramca7";
regulator-name = "vsramca7";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vcore_reg: buck_vcore {
regulator-compatible = "buck_vcore";
regulator-name = "vcore";
regulator-min-microvolt = < 850000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vgpu_reg: buck_vgpu {
regulator-compatible = "buck_vgpu";
regulator-name = "vgpu";
regulator-min-microvolt = < 700000>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <12500>;
regulator-enable-ramp-delay = <115>;
};
mt6397_vdrm_reg: buck_vdrm {
regulator-compatible = "buck_vdrm";
regulator-name = "vdrm";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vio18_reg: buck_vio18 {
regulator-compatible = "buck_vio18";
regulator-name = "vio18";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <1980000>;
regulator-ramp-delay = <12500>;
regulator-always-on;
};
mt6397_vtcxo_reg: ldo_vtcxo {
regulator-compatible = "ldo_vtcxo";
regulator-name = "vtcxo";
regulator-always-on;
};
mt6397_va28_reg: ldo_va28 {
regulator-compatible = "ldo_va28";
regulator-name = "va28";
regulator-always-on;
};
mt6397_vcama_reg: ldo_vcama {
regulator-compatible = "ldo_vcama";
regulator-name = "vcama";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vio28_reg: ldo_vio28 {
regulator-compatible = "ldo_vio28";
regulator-name = "vio28";
regulator-always-on;
};
mt6397_vusb_reg: ldo_vusb {
regulator-compatible = "ldo_vusb";
regulator-name = "vusb";
};
mt6397_vmc_reg: ldo_vmc {
regulator-compatible = "ldo_vmc";
regulator-name = "vmc";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vmch_reg: ldo_vmch {
regulator-compatible = "ldo_vmch";
regulator-name = "vmch";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vemc_3v3_reg: ldo_vemc3v3 {
regulator-compatible = "ldo_vemc3v3";
regulator-name = "vemc_3v3";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp1_reg: ldo_vgp1 {
regulator-compatible = "ldo_vgp1";
regulator-name = "vcamd";
regulator-min-microvolt = <1220000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <240>;
};
mt6397_vgp2_reg: ldo_vgp2 {
regulator-compatible = "ldo_vgp2";
regulator-name = "vcamio";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp3_reg: ldo_vgp3 {
regulator-compatible = "ldo_vgp3";
regulator-name = "vcamaf";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp4_reg: ldo_vgp4 {
regulator-compatible = "ldo_vgp4";
regulator-name = "vgp4";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp5_reg: ldo_vgp5 {
regulator-compatible = "ldo_vgp5";
regulator-name = "vgp5";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vgp6_reg: ldo_vgp6 {
regulator-compatible = "ldo_vgp6";
regulator-name = "vgp6";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
mt6397_vibr_reg: ldo_vibr {
regulator-compatible = "ldo_vibr";
regulator-name = "vibr";
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <218>;
};
};
};
};
&uart3 { &uart3 {
status = "okay"; status = "okay";
}; };

View File

@ -12,8 +12,10 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <dt-bindings/clock/mt8135-clk.h>
#include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset-controller/mt8135-resets.h>
#include "skeleton64.dtsi" #include "skeleton64.dtsi"
#include "mt8135-pinfunc.h" #include "mt8135-pinfunc.h"
@ -88,12 +90,11 @@
#clock-cells = <0>; #clock-cells = <0>;
}; };
uart_clk: dummy26m { clk26m: clk26m {
compatible = "fixed-clock"; compatible = "fixed-clock";
clock-frequency = <26000000>;
#clock-cells = <0>; #clock-cells = <0>;
clock-frequency = <26000000>;
}; };
}; };
soc { soc {
@ -102,6 +103,26 @@
compatible = "simple-bus"; compatible = "simple-bus";
ranges; ranges;
topckgen: topckgen@10000000 {
compatible = "mediatek,mt8135-topckgen";
reg = <0 0x10000000 0 0x1000>;
#clock-cells = <1>;
};
infracfg: infracfg@10001000 {
#reset-cells = <1>;
#clock-cells = <1>;
compatible = "mediatek,mt8135-infracfg", "syscon";
reg = <0 0x10001000 0 0x1000>;
};
pericfg: pericfg@10003000 {
#reset-cells = <1>;
#clock-cells = <1>;
compatible = "mediatek,mt8135-pericfg", "syscon";
reg = <0 0x10003000 0 0x1000>;
};
/* /*
* Pinctrl access register at 0x10005000 and 0x1020c000 through * Pinctrl access register at 0x10005000 and 0x1020c000 through
* regmap. Register 0x1000b000 is used by EINT. * regmap. Register 0x1000b000 is used by EINT.
@ -134,6 +155,19 @@
clock-names = "system-clk", "rtc-clk"; clock-names = "system-clk", "rtc-clk";
}; };
pwrap: pwrap@1000f000 {
compatible = "mediatek,mt8135-pwrap";
reg = <0 0x1000f000 0 0x1000>,
<0 0x11017000 0 0x1000>;
reg-names = "pwrap", "pwrap-bridge";
interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>,
<&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>;
reset-names = "pwrap", "pwrap-bridge";
clocks = <&clk26m>, <&clk26m>;
clock-names = "spi", "wrap";
};
sysirq: interrupt-controller@10200030 { sysirq: interrupt-controller@10200030 {
compatible = "mediatek,mt8135-sysirq", compatible = "mediatek,mt8135-sysirq",
"mediatek,mt6577-sysirq"; "mediatek,mt6577-sysirq";
@ -143,6 +177,12 @@
reg = <0 0x10200030 0 0x1c>; reg = <0 0x10200030 0 0x1c>;
}; };
apmixedsys: apmixedsys@10209000 {
compatible = "mediatek,mt8135-apmixedsys";
reg = <0 0x10209000 0 0x1000>;
#clock-cells = <1>;
};
syscfg_pctl_b: syscfg_pctl_b@1020c000 { syscfg_pctl_b: syscfg_pctl_b@1020c000 {
compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon"; compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon";
reg = <0 0x1020c000 0 0x1000>; reg = <0 0x1020c000 0 0x1000>;
@ -163,7 +203,8 @@
compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
reg = <0 0x11006000 0 0x400>; reg = <0 0x11006000 0 0x400>;
interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>; interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>; clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
clock-names = "baud", "bus";
status = "disabled"; status = "disabled";
}; };
@ -171,7 +212,8 @@
compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
reg = <0 0x11007000 0 0x400>; reg = <0 0x11007000 0 0x400>;
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>; interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>; clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
clock-names = "baud", "bus";
status = "disabled"; status = "disabled";
}; };
@ -179,7 +221,8 @@
compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
reg = <0 0x11008000 0 0x400>; reg = <0 0x11008000 0 0x400>;
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>; interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>; clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
clock-names = "baud", "bus";
status = "disabled"; status = "disabled";
}; };
@ -187,7 +230,8 @@
compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
reg = <0 0x11009000 0 0x400>; reg = <0 0x11009000 0 0x400>;
interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>; interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
clocks = <&uart_clk>; clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
clock-names = "baud", "bus";
status = "disabled"; status = "disabled";
}; };