Merge "ARM: dts: msm: Add support for MDM californium"

This commit is contained in:
Linux Build Service Account 2015-06-20 04:08:16 -07:00 committed by Gerrit - the friendly Code Review server
commit 83b1e222f4
11 changed files with 445 additions and 14 deletions

View File

@ -77,6 +77,9 @@ SoCs:
- MDMFERMIUM
compatible = "qcom,mdmfermium"
- MDMCALIFORNIUM
compatible = "qcom,mdmcalifornium"
- VPIPA
compatible = "qcom,msmvpipa"
@ -243,3 +246,5 @@ compatible = "qcom,msm8929-qrd-skulb"
compatible = "qcom,apq8052-cdp"
compatible = "qcom,apq8052-mtp"
compatible = "qcom,mdmfermium-rumi"
compatible = "qcom,mdmcalifornium-rumi"
compatible = "qcom,mdmcalifornium-sim"

View File

@ -216,6 +216,8 @@ dtb-$(CONFIG_ARCH_MDM9640) += mdm9640-sim.dtb \
mdm9640-emmc-cdp.dtb \
mdm9640-nand-cdp.dtb \
mdm9640-mtp.dtb
dtb-$(CONFIG_ARCH_MDMCALIFORNIUM) += mdmcalifornium-sim.dtb \
mdmcalifornium-rumi.dtb
dtb-$(CONFIG_ARCH_MSMVPIPA) += msmvpipa-sim.dtb
dtb-$(CONFIG_ARCH_APQ8084) += apq8084-v1.0-old-pwr-grid-liquid.dtb \
apq8084-v1.1-old-pwr-grid-liquid.dtb \

View File

@ -0,0 +1,79 @@
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only 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.
*/
&soc {
tlmm_pinmux: pinctrl@1000000 {
compatible = "qcom,msm-tlmm-mdm9640", "qcom,msm-tlmm-8916";
reg = <0x1000000 0x300000>;
interrupts = <0 208 0>;
/* General purpose pins */
gp: gp {
qcom,num-pins = <100>;
#qcom,pin-cells = <1>;
msm_gpio: msm_gpio {
compatible = "qcom,msm-tlmm-gp";
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
num_irqs = <100>;
};
};
pmx-uart2console {
qcom,pins = <&gp 4>, <&gp 5>;
qcom,num-grp-pins = <2>;
qcom,pin-func = <2>;
label = "uart2-console";
uart2_console_active: uart2-console {
drive-strength = <2>;
bias-pull-down;
};
};
pmx-uart3console {
qcom,pins = <&gp 8>, <&gp 9>;
qcom,num-grp-pins = <2>;
qcom,pin-func = <3>;
label = "uart3-console";
uart3_console_active: uart3-console {
drive-strength = <2>;
bias-pull-down;
};
};
blsp1_uart2_active {
qcom,pins = <&gp 4>, <&gp 5>, <&gp 6>, <&gp 7>;
qcom,num-grp-pins = <4>;
qcom,pin-func = <2>;
label = "blsp1_uart2_active";
hsuart_active: default {
drive-strength = <16>;
bias-disable;
};
};
blsp1_uart2_sleep {
qcom,pins = <&gp 4>, <&gp 5>, <&gp 6>, <&gp 7>;
qcom,num-grp-pins = <4>;
qcom,pin-func = <0>;
label = "blsp1_uart2_sleep";
hsuart_sleep: sleep {
drive-strength = <2>;
bias-disable;
};
};
};
};

View File

@ -0,0 +1,28 @@
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only 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 "mdmcalifornium.dtsi"
#include "mdmcalifornium-pinctrl.dtsi"
/ {
model = "Qualcomm Technologies, Inc. MDM Californium RUMI";
compatible = "qcom,mdmcalifornium-rumi", "qcom,mdmcalifornium", "qcom,rumi";
qcom,board-id = <16 0>;
};
&blsp1_uart3 {
status = "ok";
pinctrl-names = "default";
pinctrl-0 = <&uart3_console_active>;
};

View File

@ -0,0 +1,26 @@
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only 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 "mdmcalifornium.dtsi"
#include "mdmcalifornium-pinctrl.dtsi"
/ {
model = "Qualcomm Technologies, Inc. MDM Californium SIM";
compatible = "qcom,mdmcalifornium-sim", "qcom,mdmcalifornium", "qcom,sim";
qcom,board-id = <16 0>;
};
&blsp1_uart1 {
status = "ok";
};

View File

@ -0,0 +1,227 @@
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only 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 "skeleton.dtsi"
/*TODO: Fixup the correct clock tree */
#include <dt-bindings/clock/msm-clocks-8909.h>
#include <dt-bindings/clock/msm-clocks-a7.h>
/ {
model = "Qualcomm Technologies, Inc. MDM CALIFORNIUM";
compatible = "qcom,mdmcalifornium";
qcom,msm-id = <283 0x10000>, <284 0x10000>, <285 0x10000>,
<286 0x10000>;
interrupt-parent = <&intc>;
/*Based on mdm9640 memory map, needs update*/
memory {
peripheral2_mem: peripheral2_region@0x87d00000 {
linux,reserve-contiguous-region;
linux,reserve-region;
linux,remove-completely;
reg = <0x87d00000 0x300000>;
label = "peripheral2_mem";
};
};
cpus {
#size-cells = <0>;
#address-cells = <1>;
CPU0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x0>;
};
};
soc: soc { };
};
&soc {
#address-cells = <1>;
#size-cells = <1>;
ranges;
intc: interrupt-controller@b000000 {
compatible = "qcom,msm-qgic2";
interrupt-controller;
#interrupt-cells = <3>;
reg = <0x0b000000 0x1000>,
<0x0b002000 0x1000>;
};
qcom,mpm2-sleep-counter@4a3000 {
compatible = "qcom,mpm2-sleep-counter";
reg = <0x4a3000 0x1000>;
clock-frequency = <32768>;
};
qcom,msm-imem@8600000 {
compatible = "qcom,msm-imem";
reg = <0x8600000 0x1000>; /* Address and size of IMEM */
ranges = <0x0 0x8600000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
mem_dump_table@10 {
compatible = "qcom,msm-imem-mem_dump_table";
reg = <0x10 8>;
};
restart_reason@65c {
compatible = "qcom,msm-imem-restart_reason";
reg = <0x65c 4>;
};
boot_stats@6b0 {
compatible = "qcom,msm-imem-boot_stats";
reg = <0x6b0 32>;
};
pil@94c {
compatible = "qcom,msm-imem-pil";
reg = <0x94c 200>;
};
};
clock_gcc: qcom,gcc@1800000 {
compatible = "qcom,dummycc";
#clock-cells = <1>;
};
clock_rpm: qcom,rpmcc@1800000 {
compatible = "qcom,dummycc";
#clock-cells = <1>;
};
clock_debug: qcom,cc-debug@1874000 {
compatible = "qcom,dummycc";
#clock-cells = <1>;
};
clock_cpu: qcom,cpu-clock-a7@b111050 {
compatible = "qcom,dummycc";
#clock-cells = <1>;
};
restart@4ab000 {
compatible = "qcom,pshold";
reg = <0x4ab000 0x4>;
};
timer@b020000 {
#address-cells = <1>;
#size-cells = <1>;
ranges;
compatible = "arm,armv7-timer-mem";
reg = <0xb020000 0x1000>;
clock-frequency = <19200000>;
frame@b021000 {
frame-number = <0>;
interrupts = <0 7 0x4>,
<0 6 0x4>;
reg = <0xb021000 0x1000>,
<0xb022000 0x1000>;
};
frame@b023000 {
frame-number = <1>;
interrupts = <0 8 0x4>;
reg = <0xb023000 0x1000>;
status = "disabled";
};
frame@b024000 {
frame-number = <2>;
interrupts = <0 9 0x4>;
reg = <0xb024000 0x1000>;
status = "disabled";
};
frame@b025000 {
frame-number = <3>;
interrupts = <0 10 0x4>;
reg = <0xb025000 0x1000>;
status = "disabled";
};
frame@b026000 {
frame-number = <4>;
interrupts = <0 11 0x4>;
reg = <0xb026000 0x1000>;
status = "disabled";
};
frame@b027000 {
frame-number = <5>;
interrupts = <0 12 0x4>;
reg = <0xb027000 0x1000>;
status = "disabled";
};
frame@b028000 {
frame-number = <6>;
interrupts = <0 13 0x4>;
reg = <0xb028000 0x1000>;
status = "disabled";
};
frame@b029000 {
frame-number = <7>;
interrupts = <0 14 0x4>;
reg = <0xb029000 0x1000>;
status = "disabled";
};
};
blsp1_uart1: serial@78af000 {
compatible = "qcom,msm-lsuart-v14";
reg = <0x78af000 0x200>;
interrupts = <0 107 0>;
clocks = <&clock_gcc clk_gcc_blsp1_uart1_apps_clk>,
<&clock_gcc clk_gcc_blsp1_ahb_clk>;
clock-names = "core_clk", "iface_clk";
status = "disabled";
};
blsp1_uart2: serial@78b0000 {
compatible = "qcom,msm-lsuart-v14";
reg = <0x78b0000 0x200>;
interrupts = <0 108 0>;
clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>,
<&clock_gcc clk_gcc_blsp1_ahb_clk>;
clock-names = "core_clk", "iface_clk";
status = "disabled";
};
blsp1_uart3: serial@78b1000 {
compatible = "qcom,msm-lsuart-v14";
reg = <0x78b1000 0x200>;
interrupts = <0 109 0>;
/*TODO: Fix the clock when tree is available*/
clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>,
<&clock_gcc clk_gcc_blsp1_ahb_clk>;
clock-names = "core_clk", "iface_clk";
status = "disabled";
};
qcom,wdt@b017000 {
compatible = "qcom,msm-watchdog";
reg = <0xb017000 0x1000>;
reg-names = "wdt-base";
interrupts = <1 3 0>, <1 2 0>;
qcom,bark-time = <11000>;
qcom,pet-time = <10000>;
};
};

View File

@ -270,6 +270,22 @@ config ARCH_MDMFERMIUM
select MSM_CLK_CONTROLLER_V2
select MSM_NOPM
config ARCH_MDMCALIFORNIUM
bool "MDMCALIFORNIUM"
select ARM_GIC
select CPU_V7
select REGULATOR
select REGULATOR_RPM_SMD
select HAVE_ARM_ARCH_TIMER
select MSM_RPM_SMD
select MEMORY_HOLE_CARVEOUT
select MSM_CORTEX_A7
select PINCTRL
select PINCTRL_MSM_TLMM
select USE_PINCTRL_IRQ
select MSM_IRQ
select MSM_CLK_CONTROLLER_V2
config ARCH_MSMVPIPA
bool "MSMVPIPA"
select ARM_GIC
@ -453,6 +469,7 @@ config PHYS_OFFSET
default "0x0b600000" if ARCH_FSM9010
default "0x00000000" if ARCH_MDM9630
default "0x80000000" if ARCH_MDM9640
default "0x80000000" if ARCH_MDMCALIFORNIUM
default "0x80000000" if ARCH_MSMVPIPA
default "0x00200000" if !MSM_STACKED_MEMORY
default "0x10000000"

View File

@ -44,6 +44,7 @@ obj-$(CONFIG_ARCH_MSM8610) += clock-dsi-8610.o
obj-$(CONFIG_ARCH_MDM9630) += clock-9630.o
obj-$(CONFIG_ARCH_MDM9640) += board-9640.o
obj-$(CONFIG_ARCH_MDMFERMIUM) += board-fermium.o
obj-$(CONFIG_ARCH_MDMCALIFORNIUM) += board-californium.o
obj-$(CONFIG_ARCH_MSMVPIPA) += board-vpipa.o
obj-$(CONFIG_MSM_PM) += ext-buck-control.o

View File

@ -0,0 +1,33 @@
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only 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 <linux/kernel.h>
#include "board-dt.h"
#include <asm/mach/map.h>
#include <asm/mach/arch.h>
#include <mach/board.h>
static const char *mdmcalifornium_dt_match[] __initconst = {
"qcom,mdmcalifornium",
NULL
};
static void __init mdmcalifornium_init(void)
{
board_dt_populate(NULL);
}
DT_MACHINE_START(MDMCalifornium_DT,
"Qualcomm Technologies, Inc. MDM californium (Flattened Device Tree)")
.init_machine = mdmcalifornium_init,
.dt_compat = mdmcalifornium_dt_match,
MACHINE_END

View File

@ -518,6 +518,12 @@ static struct msm_soc_info cpu_of_id[] = {
/* FERMIUM ID */
[290] = {MSM_CPU_FERMIUM, "MDMFERMIUM"},
/* Californium IDs */
[283] = {MSM_CPU_CALIFORNIUM, "MDMCALIFORNIUM"},
[284] = {MSM_CPU_CALIFORNIUM, "MDMCALIFORNIUM"},
[285] = {MSM_CPU_CALIFORNIUM, "MDMCALIFORNIUM"},
[286] = {MSM_CPU_CALIFORNIUM, "MDMCALIFORNIUM"},
/* Uninitialized IDs are not known to run Linux.
MSM_CPU_UNKNOWN is set to 0 to ensure these IDs are
considered as unknown CPU. */
@ -1020,6 +1026,10 @@ static void * __init setup_dummy_socinfo(void)
dummy_socinfo.id = 238;
strlcpy(dummy_socinfo.build_id, "mdm9640 - ",
sizeof(dummy_socinfo.build_id));
} else if (early_machine_is_mdmcalifornium()) {
dummy_socinfo.id = 286;
strlcpy(dummy_socinfo.build_id, "mdmcalifornium - ",
sizeof(dummy_socinfo.build_id));
} else if (early_machine_is_msmvpipa()) {
dummy_socinfo.id = 238;
strlcpy(dummy_socinfo.build_id, "msmvpipa - ",

View File

@ -69,6 +69,8 @@
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,mdm9630")
#define early_machine_is_mdm9640() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,mdm9640")
#define early_machine_is_mdmcalifornium() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,mdmcalifornium")
#define early_machine_is_msmvpipa() \
of_flat_dt_is_compatible(of_get_flat_dt_root(), "qcom,msmvpipa")
#define early_machine_is_fsm9900() \
@ -109,20 +111,20 @@
#define machine_is_apq8074() 0
#define machine_is_msm8926() 0
#define early_machine_is_msm8610() 0
#define early_machine_is_msm8909() 0
#define early_machine_is_msm8916() 0
#define early_machine_is_msm8936() 0
#define early_machine_is_msm8939() 0
#define early_machine_is_apq8084() 0
#define early_machine_is_mdm9630() 0
#define early_machine_is_fsm9900() 0
#define early_machine_is_fsm9010() 0
#define early_machine_is_msm8952() 0
#define early_machine_is_msm8976() 0
#define early_machine_is_msm8956() 0
#define early_machine_is_msm8929() 0
#define early_machine_is_mdmfermium 0
#define early_machine_is_msm8610() 0
#define early_machine_is_msm8909() 0
#define early_machine_is_msm8916() 0
#define early_machine_is_msm8936() 0
#define early_machine_is_msm8939() 0
#define early_machine_is_apq8084() 0
#define early_machine_is_mdm9630() 0
#define early_machine_is_mdmcalifornium() 0
#define early_machine_is_fsm9900() 0
#define early_machine_is_fsm9010() 0
#define early_machine_is_msm8952() 0
#define early_machine_is_msm8976() 0
#define early_machine_is_msm8929() 0
#define early_machine_is_mdmfermium 0
#endif
#define PLATFORM_SUBTYPE_MDM 1
@ -180,6 +182,7 @@ enum msm_cpu {
MSM_CPU_8956,
MSM_CPU_8929,
MSM_CPU_FERMIUM,
MSM_CPU_CALIFORNIUM,
};
struct msm_soc_info {