]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 Mar 2017 00:15:48 +0000 (16:15 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 Mar 2017 00:15:48 +0000 (16:15 -0800)
Pull ARM SoC late DT updates from Arnd Bergmann:
 "These updates have been kept in a separate branch mostly because they
  rely on updates to the respective clk drivers to keep the shared
  header files in sync.

  This includes two branches for arm64 dt updates, both following up on
  earlier changes for the same platforms that are already merged:

  Samsung:
   - add USB3 support in Exynos7
   - minor PM related updates

  Amlogic:
   - new machines: WeTek Set-top-boxes
   - various devices added to DT

  There are also a couple of bugfixes that trickled in since the start
  of the merge window:

   - The moxart_defconfig was not building the intended platform
   - CPU-hotplug was broken on ux500
   - Coresight was broken on Juno (never worked)"

* tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
  ARM: deconfig: fix the moxart defconfig
  ARM: ux500: resume the second core properly
  arm64: dts: juno: update definition for programmable replicator
  arm64: dts: exynos: Add regulators for Vbus and Vbus-Boost
  arm64: dts: exynos: Add USB 3.0 controller node for Exynos7
  arm64: dts: exynos: Use macros for pinctrl configuration on Exynos7
  pinctrl: dt-bindings: samsung: Add Exynos7 specific pinctrl macro definitions
  arm64: dts: exynos: Add initial configuration for DISP clocks for TM2/TM2e
  ARM64: dts: meson-gxbb-p200: add ADC laddered keys
  ARM64: dts: meson: meson-gx: add the SAR ADC
  ARM64: dts: meson-gxl: add the pwm_ao_b pin
  ARM64: dts: meson-gx: add the missing pwm_AO_ab node
  clk: gxbb: fix CLKID_ETH defined twice
  ARM64: dts: meson-gxl: rename Nexbox A95x for consistency
  clk: gxbb: add the SAR ADC clocks and expose them
  dt-bindings: amlogic: Add WeTek boards
  ARM64: dts: meson-gxbb: Add support for WeTek Hub and Play
  dt-bindings: vendor-prefix: Add wetek vendor prefix
  ARM64: dts: meson-gxm: Rename q200 and q201 DT files for consistency
  ARM64: dts: meson-gx: Add HDMI HPD/DDC pinctrl nodes
  ...

31 files changed:
Documentation/devicetree/bindings/arm/amlogic.txt
Documentation/devicetree/bindings/vendor-prefixes.txt
arch/arm/configs/moxart_defconfig
arch/arm/mach-ux500/Makefile
arch/arm/mach-ux500/cpu-db8500.c
arch/arm/mach-ux500/hotplug.c [deleted file]
arch/arm/mach-ux500/platsmp.c
arch/arm/mach-ux500/setup.h [deleted file]
arch/arm64/boot/dts/amlogic/Makefile
arch/arm64/boot/dts/amlogic/meson-gx.dtsi
arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-hub.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts [new file with mode: 0644]
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts [moved from arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts with 100% similarity]
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts [moved from arch/arm64/boot/dts/amlogic/meson-gxm-s912-q200.dts with 100% similarity]
arch/arm64/boot/dts/amlogic/meson-gxm-q201.dts [moved from arch/arm64/boot/dts/amlogic/meson-gxm-s912-q201.dts with 100% similarity]
arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
arch/arm64/boot/dts/arm/juno-base.dtsi
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
arch/arm64/boot/dts/exynos/exynos5433-tm2.dts
arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
arch/arm64/boot/dts/exynos/exynos7-espresso.dts
arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi
arch/arm64/boot/dts/exynos/exynos7.dtsi
drivers/clk/meson/gxbb.c
drivers/clk/meson/gxbb.h
include/dt-bindings/clock/gxbb-clkc.h
include/dt-bindings/pinctrl/samsung.h

index 9b2b41ab68177dad35208438306d2b7dba184e29..c246cd2730d90669787e0bb5a0f0f50ed5ad3376 100644 (file)
@@ -40,6 +40,8 @@ Board compatible values:
   - "hardkernel,odroid-c2" (Meson gxbb)
   - "amlogic,p200" (Meson gxbb)
   - "amlogic,p201" (Meson gxbb)
+  - "wetek,hub" (Meson gxbb)
+  - "wetek,play2" (Meson gxbb)
   - "amlogic,p212" (Meson gxl s905x)
   - "amlogic,p230" (Meson gxl s905d)
   - "amlogic,p231" (Meson gxl s905d)
index bd0ed3cb49946cb9fc625a1dea071e038b6850d5..ec0bfb9bbebd42c828a3b4978db070924275f609 100644 (file)
@@ -332,6 +332,7 @@ virtio      Virtual I/O Device Specification, developed by the OASIS consortium
 vivante        Vivante Corporation
 voipac Voipac Technologies s.r.o.
 wd     Western Digital Corp.
+wetek  WeTek Electronics, limited.
 wexler Wexler
 winbond Winbond Electronics corp.
 wlf    Wolfson Microelectronics
index a3cb76cfb8282fad245cae6476eba906a7c807aa..b2ddd534867fcb8b6f4fdb61b9e1f42a5c15b766 100644 (file)
@@ -18,9 +18,8 @@ CONFIG_EMBEDDED=y
 # CONFIG_LBDAF is not set
 # CONFIG_BLK_DEV_BSG is not set
 # CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_ARCH_MULTI_V4T=y
+CONFIG_ARCH_MULTI_V4=y
 # CONFIG_ARCH_MULTI_V7 is not set
-CONFIG_KEYBOARD_GPIO_POLLED=y
 CONFIG_ARCH_MOXART=y
 CONFIG_MACH_UC7112LX=y
 CONFIG_PREEMPT=y
@@ -94,12 +93,10 @@ CONFIG_SERIAL_8250_EXTENDED=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
 CONFIG_SERIAL_OF_PLATFORM=y
 # CONFIG_HW_RANDOM is not set
-CONFIG_DEBUG_GPIO=y
-CONFIG_GPIO_SYSFS=y
 CONFIG_GPIO_MOXART=y
-CONFIG_POWER_SUPPLY=y
 CONFIG_POWER_RESET=y
 CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_SUPPLY=y
 # CONFIG_HWMON is not set
 CONFIG_WATCHDOG=y
 CONFIG_WATCHDOG_CORE=y
@@ -107,10 +104,13 @@ CONFIG_WATCHDOG_NOWAYOUT=y
 CONFIG_MOXART_WDT=y
 # CONFIG_USB_SUPPORT is not set
 CONFIG_MMC=y
-CONFIG_MMC_SDHCI_MOXART=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_MOXART=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_ONESHOT=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
index c2499bff4986704351d1f6ba35c282e860fc4e50..a9a3453548f49c921d13057c891348a9c6362dc4 100644 (file)
@@ -5,7 +5,4 @@
 obj-y                          := pm.o
 obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o
 obj-$(CONFIG_SMP)              += platsmp.o
-obj-$(CONFIG_HOTPLUG_CPU)      += hotplug.o
 obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
-
-CFLAGS_hotplug.o               += -march=armv7-a
index 24529cf58df60f5eebcb0723a921934d87a0e418..28083ef728195816b440b4076d0f1d4a69aa3092 100644 (file)
@@ -31,8 +31,6 @@
 #include <asm/mach/map.h>
 #include <asm/mach/arch.h>
 
-#include "setup.h"
-
 #include "db8500-regs.h"
 
 static int __init ux500_l2x0_unlock(void)
diff --git a/arch/arm/mach-ux500/hotplug.c b/arch/arm/mach-ux500/hotplug.c
deleted file mode 100644 (file)
index 1cbed03..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) STMicroelectronics 2009
- * Copyright (C) ST-Ericsson SA 2010
- *
- * License Terms: GNU General Public License v2
- *     Based on ARM realview platform
- *
- * Author: Sundar Iyer <sundar.iyer@stericsson.com>
- *
- */
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/smp.h>
-
-#include <asm/smp_plat.h>
-
-#include "setup.h"
-
-/*
- * platform-specific code to shutdown a CPU
- *
- * Called with IRQs disabled
- */
-void ux500_cpu_die(unsigned int cpu)
-{
-       /* directly enter low power state, skipping secure registers */
-       for (;;) {
-               __asm__ __volatile__("dsb\n\t" "wfi\n\t"
-                               : : : "memory");
-               if (pen_release == cpu_logical_map(cpu)) {
-                       /*
-                        * OK, proper wakeup, we're done
-                        */
-                       break;
-               }
-       }
-}
index 9b124c22035f4a336456eaaa5afc92799f4c68d2..69c2361ca688c3e2d04a0fbe7685525dad06e8d7 100644 (file)
@@ -23,8 +23,6 @@
 #include <asm/smp_plat.h>
 #include <asm/smp_scu.h>
 
-#include "setup.h"
-
 #include "db8500-regs.h"
 
 /* Magic triggers in backup RAM */
@@ -90,6 +88,13 @@ static int ux500_boot_secondary(unsigned int cpu, struct task_struct *idle)
        return 0;
 }
 
+#ifdef CONFIG_HOTPLUG_CPU
+void ux500_cpu_die(unsigned int cpu)
+{
+       wfi();
+}
+#endif
+
 static const struct smp_operations ux500_smp_ops __initconst = {
        .smp_prepare_cpus       = ux500_smp_prepare_cpus,
        .smp_boot_secondary     = ux500_boot_secondary,
diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h
deleted file mode 100644 (file)
index 988e7c7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (C) 2009 ST-Ericsson.
- *
- * 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.
- *
- * These symbols are needed for board-specific files to call their
- * own cpu-specific files
- */
-#ifndef __ASM_ARCH_SETUP_H
-#define __ASM_ARCH_SETUP_H
-
-extern void ux500_cpu_die(unsigned int cpu);
-
-#endif /*  __ASM_ARCH_SETUP_H */
index 0d7bfbf7d922bb3164b2e5b10bed9d425bbceaf2..3f94bce33b7f4ac1455528f59724e0944f2c53d7 100644 (file)
@@ -5,12 +5,14 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-nexbox-a95x.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-q200.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-q201.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb
 
 always         := $(dtb-y)
index 0cbe24b49710fd4057aec2da23ccbf3830ca4b92..5d995f7724af67e847587504a36beb7b16d0bf05 100644 (file)
@@ -83,6 +83,7 @@
                        reg = <0x0 0x0>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 0>;
                };
 
                cpu1: cpu@1 {
@@ -91,6 +92,7 @@
                        reg = <0x0 0x1>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 0>;
                };
 
                cpu2: cpu@2 {
                        reg = <0x0 0x2>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 0>;
                };
 
                cpu3: cpu@3 {
                        reg = <0x0 0x3>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 0>;
                };
 
                l2: l2-cache0 {
                };
        };
 
+       scpi {
+               compatible = "amlogic,meson-gxbb-scpi", "arm,scpi-pre-1.0";
+               mboxes = <&mailbox 1 &mailbox 2>;
+               shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
+
+               scpi_clocks: clocks {
+                       compatible = "arm,scpi-clocks";
+
+                       scpi_dvfs: scpi_clocks@0 {
+                               compatible = "arm,scpi-dvfs-clocks";
+                               #clock-cells = <1>;
+                               clock-indices = <0>;
+                               clock-output-names = "vcpu";
+                       };
+               };
+
+               scpi_sensors: sensors {
+                       compatible = "arm,scpi-sensors";
+                       #thermal-sensor-cells = <1>;
+               };
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                                status = "disabled";
                        };
 
+                       saradc: adc@8680 {
+                               compatible = "amlogic,meson-saradc";
+                               reg = <0x0 0x8680 0x0 0x34>;
+                               #io-channel-cells = <1>;
+                               interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
+                               status = "disabled";
+                       };
+
                        pwm_ef: pwm@86c0 {
                                compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
                                reg = <0x0 0x086c0 0x0 0x10>;
                        #address-cells = <0>;
                };
 
+               sram: sram@c8000000 {
+                       compatible = "amlogic,meson-gxbb-sram", "mmio-sram";
+                       reg = <0x0 0xc8000000 0x0 0x14000>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x0 0xc8000000 0x14000>;
+
+                       cpu_scp_lpri: scp-shmem@0 {
+                               compatible = "amlogic,meson-gxbb-scp-shmem";
+                               reg = <0x13000 0x400>;
+                       };
+
+                       cpu_scp_hpri: scp-shmem@200 {
+                               compatible = "amlogic,meson-gxbb-scp-shmem";
+                               reg = <0x13400 0x400>;
+                       };
+               };
+
                aobus: aobus@c8100000 {
                        compatible = "simple-bus";
                        reg = <0x0 0xc8100000 0x0 0x100000>;
                                status = "disabled";
                        };
 
+                       uart_AO_B: serial@4e0 {
+                               compatible = "amlogic,meson-uart";
+                               reg = <0x0 0x004e0 0x0 0x14>;
+                               interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
+                               clocks = <&xtal>;
+                               status = "disabled";
+                       };
+
+                       pwm_AO_ab: pwm@550 {
+                               compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
+                               reg = <0x0 0x00550 0x0 0x10>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
                        ir: ir@580 {
                                compatible = "amlogic,meson-gxbb-ir";
                                reg = <0x0 0x00580 0x0 0x40>;
index 03e3d76626ddc45c1f35b95725c768e9221c8498..fc0e86cb4cdedc00a8796b2276bc3b53c0df9b03 100644 (file)
 /dts-v1/;
 
 #include "meson-gxbb-p20x.dtsi"
+#include <dt-bindings/input/input.h>
 
 / {
        compatible = "amlogic,p200", "amlogic,meson-gxbb";
        model = "Amlogic Meson GXBB P200 Development Board";
+
+       avdd18_usb_adc: regulator-avdd18_usb_adc {
+               compatible = "regulator-fixed";
+               regulator-name = "AVDD18_USB_ADC";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       adc_keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+
+               button-home {
+                       label = "Home";
+                       linux,code = <KEY_HOME>;
+                       press-threshold-microvolt = <900000>; /* 50% */
+               };
+
+               button-esc {
+                       label = "Esc";
+                       linux,code = <KEY_ESC>;
+                       press-threshold-microvolt = <684000>; /* 38% */
+               };
+
+               button-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <468000>; /* 26% */
+               };
+
+               button-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <252000>; /* 14% */
+               };
+
+               button-menu {
+                       label = "Menu";
+                       linux,code = <KEY_MENU>;
+                       press-threshold-microvolt = <0>; /* 0% */
+               };
+       };
 };
 
 &i2c_B {
        pinctrl-0 = <&i2c_b_pins>;
        pinctrl-names = "default";
 };
+
+&saradc {
+       status = "okay";
+       vref-supply = <&avdd18_usb_adc>;
+};
index e59ad308192f625aac8d7ae9d09cfb48c2d826c3..86709929fd208cf1d66221bf5d58687a1acedc22 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       leds {
+               compatible = "gpio-leds";
+
+               blue {
+                       label = "vega-s95:blue:on";
+                       gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       panic-indicator;
+               };
+       };
+
        usb_vbus: regulator-usb0-vbus {
                compatible = "regulator-fixed";
 
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-hub.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-hub.dts
new file mode 100644 (file)
index 0000000..56f8559
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2016 BayLibre, Inc.
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ *
+ * 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 library 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 library 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.
+ *
+ * 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 "meson-gxbb-p20x.dtsi"
+
+/ {
+       compatible = "wetek,hub", "amlogic,meson-gxbb";
+       model = "WeTek Hub";
+
+       leds {
+               compatible = "gpio-leds";
+
+               system {
+                       label = "wetek-play:system-status";
+                       gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       panic-indicator;
+               };
+       };
+
+       cvbs-connector {
+               status = "disabled";
+       };
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts
new file mode 100644 (file)
index 0000000..ea79fdd
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2016 BayLibre, Inc.
+ * Author: Neil Armstrong <narmstrong@baylibre.com>
+ *
+ * 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 library 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 library 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.
+ *
+ * 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 "meson-gxbb-p20x.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       compatible = "wetek,play2", "amlogic,meson-gxbb";
+       model = "WeTek Play 2";
+
+       leds {
+               compatible = "gpio-leds";
+
+               system {
+                       label = "wetek-play:system-status";
+                       gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       panic-indicator;
+               };
+
+               wifi {
+                       label = "wetek-play:wifi-status";
+                       gpios = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               ethernet {
+                       label = "wetek-play:ethernet-status";
+                       gpios = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               poll-interval = <100>;
+
+               button@0 {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&i2c_A {
+       status = "okay";
+       pinctrl-0 = <&i2c_a_pins>;
+       pinctrl-names = "default";
+};
index b35307321b63981cc7c8dee4042d4c0ba99b7ee9..04b3324bc1329d9e2107cc86f15f6d6aef834497 100644 (file)
 / {
        compatible = "amlogic,meson-gxbb";
 
-       scpi {
-               compatible = "amlogic,meson-gxbb-scpi", "arm,scpi-pre-1.0";
-               mboxes = <&mailbox 1 &mailbox 2>;
-               shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
-
-               scpi_clocks: clocks {
-                       compatible = "arm,scpi-clocks";
-
-                       scpi_dvfs: scpi_clocks@0 {
-                               compatible = "arm,scpi-dvfs-clocks";
-                               #clock-cells = <1>;
-                               clock-indices = <0>;
-                               clock-output-names = "vcpu";
-                       };
-               };
-
-               scpi_sensors: sensors {
-                       compatible = "arm,scpi-sensors";
-                       #thermal-sensor-cells = <1>;
-               };
-       };
-
        soc {
                usb0_phy: phy@c0000000 {
                        compatible = "amlogic,meson-gxbb-usb2-phy";
                        status = "disabled";
                };
 
-               sram: sram@c8000000 {
-                       compatible = "amlogic,meson-gxbb-sram", "mmio-sram";
-                       reg = <0x0 0xc8000000 0x0 0x14000>;
-
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x0 0xc8000000 0x14000>;
-
-                       cpu_scp_lpri: scp-shmem@0 {
-                               compatible = "amlogic,meson-gxbb-scp-shmem";
-                               reg = <0x13000 0x400>;
-                       };
-
-                       cpu_scp_hpri: scp-shmem@200 {
-                               compatible = "amlogic,meson-gxbb-scp-shmem";
-                               reg = <0x13400 0x400>;
-                       };
-               };
-
                usb0: usb@c9000000 {
                        compatible = "amlogic,meson-gxbb-usb", "snps,dwc2";
                        reg = <0x0 0xc9000000 0x0 0x40000>;
        };
 };
 
-&cpu0 {
-       clocks = <&scpi_dvfs 0>;
-};
-
-&cpu1 {
-       clocks = <&scpi_dvfs 0>;
-};
-
-&cpu2 {
-       clocks = <&scpi_dvfs 0>;
-};
-
-&cpu3 {
-       clocks = <&scpi_dvfs 0>;
-};
-
 &cbus {
        spifc: spi@8c80 {
                compatible = "amlogic,meson-gxbb-spifc";
                        };
                };
 
+               uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
+                       mux {
+                               groups = "uart_cts_ao_a",
+                                      "uart_rts_ao_a";
+                               function = "uart_ao";
+                       };
+               };
+
+               uart_ao_b_pins: uart_ao_b {
+                       mux {
+                               groups = "uart_tx_ao_b", "uart_rx_ao_b";
+                               function = "uart_ao_b";
+                       };
+               };
+
+               uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
+                       mux {
+                               groups = "uart_cts_ao_b",
+                                      "uart_rts_ao_b";
+                               function = "uart_ao_b";
+                       };
+               };
+
                remote_input_ao_pins: remote_input_ao {
                        mux {
                                groups = "remote_input_ao";
                        };
                };
 
+               uart_a_cts_rts_pins: uart_a_cts_rts {
+                       mux {
+                               groups = "uart_cts_a",
+                                      "uart_rts_a";
+                               function = "uart_a";
+                       };
+               };
+
                uart_b_pins: uart_b {
                        mux {
                                groups = "uart_tx_b",
                        };
                };
 
+               uart_b_cts_rts_pins: uart_b_cts_rts {
+                       mux {
+                               groups = "uart_cts_b",
+                                      "uart_rts_b";
+                               function = "uart_b";
+                       };
+               };
+
                uart_c_pins: uart_c {
                        mux {
                                groups = "uart_tx_c",
                        };
                };
 
+               uart_c_cts_rts_pins: uart_c_cts_rts {
+                       mux {
+                               groups = "uart_cts_c",
+                                      "uart_rts_c";
+                               function = "uart_c";
+                       };
+               };
+
                i2c_a_pins: i2c_a {
                        mux {
                                groups = "i2c_sck_a",
                                function = "pwm_f_y";
                        };
                };
+
+               hdmi_hpd_pins: hdmi_hpd {
+                       mux {
+                               groups = "hdmi_hpd";
+                               function = "hdmi_hpd";
+                       };
+               };
+
+               hdmi_i2c_pins: hdmi_i2c {
+                       mux {
+                               groups = "hdmi_sda", "hdmi_scl";
+                               function = "hdmi_i2c";
+                       };
+               };
        };
 };
 
        clocks = <&clkc CLKID_I2C>;
 };
 
+&saradc {
+       compatible = "amlogic,meson-gxbb-saradc", "amlogic,meson-saradc";
+       clocks = <&xtal>,
+                <&clkc CLKID_SAR_ADC>,
+                <&clkc CLKID_SANA>,
+                <&clkc CLKID_SAR_ADC_CLK>,
+                <&clkc CLKID_SAR_ADC_SEL>;
+       clock-names = "clkin", "core", "sana", "adc_clk", "adc_sel";
+};
+
 &sd_emmc_a {
        clocks = <&clkc CLKID_SD_EMMC_A>,
                 <&xtal>,
index 69216246275dfa05e852e513337eea1cb8d53e55..fe11b5fc61f78e02ae8972bed013969de854e840 100644 (file)
                        };
                };
 
+               uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
+                       mux {
+                               groups = "uart_cts_ao_a",
+                                      "uart_rts_ao_a";
+                               function = "uart_ao";
+                       };
+               };
+
+               uart_ao_b_pins: uart_ao_b {
+                       mux {
+                               groups = "uart_tx_ao_b", "uart_rx_ao_b";
+                               function = "uart_ao_b";
+                       };
+               };
+
+               uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
+                       mux {
+                               groups = "uart_cts_ao_b",
+                                      "uart_rts_ao_b";
+                               function = "uart_ao_b";
+                       };
+               };
+
                remote_input_ao_pins: remote_input_ao {
                        mux {
                                groups = "remote_input_ao";
                                function = "remote_input_ao";
                        };
                };
+
+               pwm_ao_b_pins: pwm_ao_b {
+                       mux {
+                               groups = "pwm_ao_b";
+                               function = "pwm_ao_b";
+                       };
+               };
        };
 };
 
                        };
                };
 
+               uart_a_cts_rts_pins: uart_a_cts_rts {
+                       mux {
+                               groups = "uart_cts_a",
+                                      "uart_rts_a";
+                               function = "uart_a";
+                       };
+               };
+
                uart_b_pins: uart_b {
                        mux {
                                groups = "uart_tx_b",
                        };
                };
 
+               uart_b_cts_rts_pins: uart_b_cts_rts {
+                       mux {
+                               groups = "uart_cts_b",
+                                      "uart_rts_b";
+                               function = "uart_b";
+                       };
+               };
+
                uart_c_pins: uart_c {
                        mux {
                                groups = "uart_tx_c",
                        };
                };
 
+               uart_c_cts_rts_pins: uart_c_cts_rts {
+                       mux {
+                               groups = "uart_cts_c",
+                                      "uart_rts_c";
+                               function = "uart_c";
+                       };
+               };
+
                i2c_a_pins: i2c_a {
                        mux {
                                groups = "i2c_sck_a",
                                function = "pwm_e";
                        };
                };
+
+               hdmi_hpd_pins: hdmi_hpd {
+                       mux {
+                               groups = "hdmi_hpd";
+                               function = "hdmi_hpd";
+                       };
+               };
+
+               hdmi_i2c_pins: hdmi_i2c {
+                       mux {
+                               groups = "hdmi_sda", "hdmi_scl";
+                               function = "hdmi_i2c";
+                       };
+               };
        };
 
        eth-phy-mux {
        clocks = <&clkc CLKID_I2C>;
 };
 
+&saradc {
+       compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
+       clocks = <&xtal>,
+                <&clkc CLKID_SAR_ADC>,
+                <&clkc CLKID_SANA>,
+                <&clkc CLKID_SAR_ADC_CLK>,
+                <&clkc CLKID_SAR_ADC_SEL>;
+       clock-names = "clkin", "core", "sana", "adc_clk", "adc_sel";
+};
+
 &sd_emmc_a {
        clocks = <&clkc CLKID_SD_EMMC_A>,
                 <&xtal>,
index eb2f0c3e5e538e4bebf211512bccd4a8eaab02b5..ddea7305c644afdb7d1358395ea8f58ab7e26321 100644 (file)
@@ -85,6 +85,7 @@
                        reg = <0x0 0x100>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 1>;
                };
 
                cpu5: cpu@101 {
@@ -93,6 +94,7 @@
                        reg = <0x0 0x101>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 1>;
                };
 
                cpu6: cpu@102 {
                        reg = <0x0 0x102>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 1>;
                };
 
                cpu7: cpu@103 {
                        reg = <0x0 0x103>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       clocks = <&scpi_dvfs 1>;
                };
        };
 };
 
+&saradc {
+       compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
+};
+
+&scpi_dvfs {
+       clock-indices = <0 1>;
+       clock-output-names = "vbig", "vlittle";
+};
+
 &vpu {
        compatible = "amlogic,meson-gxm-vpu", "amlogic,meson-gx-vpu";
 };
+
index 9d799d938d2f6b1b56c81cdf4ba8731e3ca47dc4..df539e865b903cc0ecc9870573bf5b57d5198b25 100644 (file)
                };
        };
 
-       coresight-replicator {
-               /*
-                * Non-configurable replicators don't show up on the
-                * AMBA bus.  As such no need to add "arm,primecell".
-                */
-               compatible = "arm,coresight-replicator";
+       replicator@20120000 {
+               compatible = "qcom,coresight-replicator1x", "arm,primecell";
+               reg = <0 0x20120000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
 
                ports {
                        #address-cells = <1>;
index 53fd0683d4001b7d9dedbbc2c87cb7cca68f84ae..098ad557fee3259677340800eef05d10e71e06bd 100644 (file)
        assigned-clock-parents = <&cmu_top CLK_FOUT_AUD_PLL>;
 };
 
-&cmu_disp {
-       assigned-clocks = <&cmu_mif CLK_MOUT_SCLK_DECON_TV_ECLK_A>,
-                         <&cmu_mif CLK_DIV_SCLK_DECON_TV_ECLK>,
-                         <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK_USER>,
-                         <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK>;
-       assigned-clock-parents = <&cmu_mif CLK_MOUT_BUS_PLL_DIV2>,
-                                <0>,
-                                <&cmu_mif CLK_SCLK_DECON_TV_ECLK_DISP>,
-                                <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK_USER>;
-       assigned-clock-rates = <0>, <400000000>;
-};
-
 &cmu_fsys {
        assigned-clocks = <&cmu_top CLK_MOUT_SCLK_USBDRD30>,
                <&cmu_top CLK_MOUT_SCLK_USBHOST30>,
index ddba2f889326b10171877b632fc4e654f29b87eb..dea0a6f5bc18f048b30fa6d543e19623cc18ca4c 100644 (file)
        compatible = "samsung,tm2", "samsung,exynos5433";
 };
 
+&cmu_disp {
+       /*
+        * TM2 and TM2e differ only by DISP_PLL rate, but define all assigned
+        * clocks properties for DISP CMU for each board to keep them together
+        * for easier review and maintenance.
+        */
+       assigned-clocks = <&cmu_disp CLK_FOUT_DISP_PLL>,
+                         <&cmu_mif CLK_DIV_SCLK_DECON_TV_ECLK>,
+                         <&cmu_disp CLK_MOUT_ACLK_DISP_333_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DSIM0_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DSIM0>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_ECLK_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_ECLK>,
+                         <&cmu_disp CLK_MOUT_PHYCLK_MIPIDPHY0_RXCLKESC0_USER>,
+                         <&cmu_disp CLK_MOUT_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER>,
+                         <&cmu_disp CLK_MOUT_DISP_PLL>,
+                         <&cmu_mif CLK_MOUT_SCLK_DECON_TV_ECLK_A>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK>;
+       assigned-clock-parents = <0>, <0>,
+                                <&cmu_mif CLK_ACLK_DISP_333>,
+                                <&cmu_mif CLK_SCLK_DSIM0_DISP>,
+                                <&cmu_disp CLK_MOUT_SCLK_DSIM0_USER>,
+                                <&cmu_mif CLK_SCLK_DECON_ECLK_DISP>,
+                                <&cmu_disp CLK_MOUT_SCLK_DECON_ECLK_USER>,
+                                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0_PHY>,
+                                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8_PHY>,
+                                <&cmu_disp CLK_FOUT_DISP_PLL>,
+                                <&cmu_mif CLK_MOUT_BUS_PLL_DIV2>,
+                                <&cmu_mif CLK_SCLK_DECON_TV_ECLK_DISP>,
+                                <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK_USER>;
+       assigned-clock-rates = <250000000>, <400000000>;
+};
+
 &hsi2c_9 {
        status = "okay";
 
index 2fbf3a8603168933d185275ac72c9850821e8c60..7891a31adc17594112a8edf1a9ad4914f3446718 100644 (file)
        compatible = "samsung,tm2e", "samsung,exynos5433";
 };
 
+&cmu_disp {
+       /*
+        * TM2 and TM2e differ only by DISP_PLL rate, but define all assigned
+        * clocks properties for DISP CMU for each board to keep them together
+        * for easier review and maintenance.
+        */
+       assigned-clocks = <&cmu_disp CLK_FOUT_DISP_PLL>,
+                         <&cmu_mif CLK_DIV_SCLK_DECON_TV_ECLK>,
+                         <&cmu_disp CLK_MOUT_ACLK_DISP_333_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DSIM0_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DSIM0>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_ECLK_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_ECLK>,
+                         <&cmu_disp CLK_MOUT_PHYCLK_MIPIDPHY0_RXCLKESC0_USER>,
+                         <&cmu_disp CLK_MOUT_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER>,
+                         <&cmu_disp CLK_MOUT_DISP_PLL>,
+                         <&cmu_mif CLK_MOUT_SCLK_DECON_TV_ECLK_A>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK_USER>,
+                         <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK>;
+       assigned-clock-parents = <0>, <0>,
+                                <&cmu_mif CLK_ACLK_DISP_333>,
+                                <&cmu_mif CLK_SCLK_DSIM0_DISP>,
+                                <&cmu_disp CLK_MOUT_SCLK_DSIM0_USER>,
+                                <&cmu_mif CLK_SCLK_DECON_ECLK_DISP>,
+                                <&cmu_disp CLK_MOUT_SCLK_DECON_ECLK_USER>,
+                                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0_PHY>,
+                                <&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8_PHY>,
+                                <&cmu_disp CLK_FOUT_DISP_PLL>,
+                                <&cmu_mif CLK_MOUT_BUS_PLL_DIV2>,
+                                <&cmu_mif CLK_SCLK_DECON_TV_ECLK_DISP>,
+                                <&cmu_disp CLK_MOUT_SCLK_DECON_TV_ECLK_USER>;
+       assigned-clock-rates = <278000000>, <400000000>;
+};
+
 &ldo31_reg {
        regulator-name = "TSP_VDD_1.8V_AP";
        regulator-min-microvolt = <1800000>;
index c528dd52ba2d39b30547ab964eda219b1068a043..e5892bb0ae6e55ccf5ba0cc7b30b7b616fea6413 100644 (file)
@@ -13,6 +13,7 @@
 #include "exynos7.dtsi"
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/clock/samsung,s2mps11.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "Samsung Exynos7 Espresso board based on EXYNOS7";
                device_type = "memory";
                reg = <0x0 0x40000000 0x0 0xC0000000>;
        };
+
+       usb30_vbus_reg: regulator-usb30 {
+               compatible = "regulator-fixed";
+               regulator-name = "VBUS_5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gph1 1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb30_vbus_en>;
+               enable-active-high;
+       };
+
+       usb3drd_boost_5v: regulator-usb3drd-boost {
+               compatible = "regulator-fixed";
+               regulator-name = "VUSB_VBUS_5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpf4 1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb3drd_boost_en>;
+               enable-active-high;
+       };
+
 };
 
 &fin_pll {
 &pinctrl_alive {
        pmic_irq: pmic-irq {
                samsung,pins = "gpa0-2";
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 };
 
        vqmmc-supply = <&ldo2_reg>;
        disable-wp;
 };
+
+&pinctrl_bus1 {
+       usb30_vbus_en: usb30-vbus-en {
+               samsung,pins = "gph1-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+       };
+
+       usb3drd_boost_en: usb3drd-boost-en {
+               samsung,pins = "gpf4-1";
+               samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+       };
+};
+
+&usbdrd_phy {
+       vbus-supply = <&usb30_vbus_reg>;
+       vbus-boost-supply = <&usb3drd_boost_5v>;
+};
index 7ebb93927f136a4a72ff625d8bf9dee7b16f4964..8f58850cd28cdd1a77c23bcfb957d06302bd6dea 100644 (file)
@@ -12,6 +12,8 @@
  * published by the Free Software Foundation.
 */
 
+#include <dt-bindings/pinctrl/samsung.h>
+
 &pinctrl_alive {
        gpa0: gpa0 {
                gpio-controller;
 
        hs_i2c10_bus: hs-i2c10-bus {
                samsung,pins = "gpb0-1", "gpb0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c11_bus: hs-i2c11-bus {
                samsung,pins = "gpb0-3", "gpb0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c2_bus: hs-i2c2-bus {
                samsung,pins = "gpd0-3", "gpd0-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart0_data: uart0-data {
                samsung,pins = "gpd0-0", "gpd0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart0_fctl: uart0-fctl {
                samsung,pins = "gpd0-2", "gpd0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart2_data: uart2-data {
                samsung,pins = "gpd1-4", "gpd1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c3_bus: hs-i2c3-bus {
                samsung,pins = "gpd1-3", "gpd1-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_data: uart1-data {
                samsung,pins = "gpd1-0", "gpd1-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart1_fctl: uart1-fctl {
                samsung,pins = "gpd1-2", "gpd1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c0_bus: hs-i2c0-bus {
                samsung,pins = "gpd2-1", "gpd2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c1_bus: hs-i2c1-bus {
                samsung,pins = "gpd2-3", "gpd2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c9_bus: hs-i2c9-bus {
                samsung,pins = "gpd2-7", "gpd2-6";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm0_out: pwm0-out {
                samsung,pins = "gpd2-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm1_out: pwm1-out {
                samsung,pins = "gpd2-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm2_out: pwm2-out {
                samsung,pins = "gpd2-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        pwm3_out: pwm3-out {
                samsung,pins = "gpd2-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c8_bus: hs-i2c8-bus {
                samsung,pins = "gpd5-3", "gpd5-2";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        uart3_data: uart3-data {
                samsung,pins = "gpd5-0", "gpd5-1";
-               samsung,pin-function = <3>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi2_bus: spi2-bus {
                samsung,pins = "gpd5-0", "gpd5-1", "gpd5-2", "gpd5-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi1_bus: spi1-bus {
                samsung,pins = "gpd6-2", "gpd6-3", "gpd6-4", "gpd6-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        spi0_bus: spi0-bus {
                samsung,pins = "gpd8-0", "gpd8-1", "gpd6-0", "gpd6-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c4_bus: hs-i2c4-bus {
                samsung,pins = "gpg3-1", "gpg3-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        hs_i2c5_bus: hs-i2c5-bus {
                samsung,pins = "gpg3-3", "gpg3-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        hs_i2c6_bus: hs-i2c6-bus {
                samsung,pins = "gpj0-1", "gpj0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        hs_i2c7_bus: hs-i2c7-bus {
                samsung,pins = "gpj1-1", "gpj1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        spi3_bus: spi3-bus {
                samsung,pins = "gpg4-0", "gpg4-1", "gpg4-2", "gpg4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        spi4_bus: spi4-bus {
                samsung,pins = "gpv7-0", "gpv7-1", "gpv7-2", "gpv7-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
 
 
        sd2_clk: sd2-clk {
                samsung,pins = "gpr4-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cmd: sd2-cmd {
                samsung,pins = "gpr4-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_cd: sd2-cd {
                samsung,pins = "gpr4-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus1: sd2-bus-width1 {
                samsung,pins = "gpr4-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 
        sd2_bus4: sd2-bus-width4 {
                samsung,pins = "gpr4-4", "gpr4-5", "gpr4-6";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <3>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
        };
 };
 
 
        sd0_clk: sd0-clk {
                samsung,pins = "gpr0-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd0_cmd: sd0-cmd {
                samsung,pins = "gpr0-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd0_ds: sd0-ds {
                samsung,pins = "gpr0-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd0_qrdy: sd0-qrdy {
                samsung,pins = "gpr0-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd0_bus1: sd0-bus-width1 {
                samsung,pins = "gpr1-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd0_bus4: sd0-bus-width4 {
                samsung,pins = "gpr1-1", "gpr1-2", "gpr1-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd0_bus8: sd0-bus-width8 {
                samsung,pins = "gpr1-4", "gpr1-5", "gpr1-6", "gpr1-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <4>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV2>;
        };
 
        sd1_clk: sd1-clk {
                samsung,pins = "gpr2-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV3>;
        };
 
        sd1_cmd: sd1-cmd {
                samsung,pins = "gpr2-1";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV3>;
        };
 
        sd1_ds: sd1-ds {
                samsung,pins = "gpr2-2";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <6>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV4>;
        };
 
        sd1_qrdy: sd1-qrdy {
                samsung,pins = "gpr2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <6>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV4>;
        };
 
        sd1_int: sd1-int {
                samsung,pins = "gpr2-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <1>;
-               samsung,pin-drv = <6>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV4>;
        };
 
        sd1_bus1: sd1-bus-width1 {
                samsung,pins = "gpr3-0";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV3>;
        };
 
        sd1_bus4: sd1-bus-width4 {
                samsung,pins = "gpr3-1", "gpr3-2", "gpr3-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV3>;
        };
 
        sd1_bus8: sd1-bus-width8 {
                samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS7_FSYS1_PIN_DRV_LV3>;
        };
 };
 
 
        spi5_bus: spi5-bus {
                samsung,pins = "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
        ufs_refclk_out: ufs-refclk-out {
                samsung,pins = "gpg2-4";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <0>;
-               samsung,pin-drv = <2>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV2>;
        };
 
        ufs_rst_n: ufs-rst-n {
                samsung,pins = "gph1-5";
-               samsung,pin-function = <2>;
-               samsung,pin-pud = <3>;
-               samsung,pin-drv = <0>;
+               samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
+               samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 };
index 80aa60e38237a22008eaf4426a9fd56ee852255a..9a3fbed1765af6d7e1bf944cc8272843dcf3a216 100644 (file)
                                #include "exynos7-trip-points.dtsi"
                        };
                };
+
+               usbdrd_phy: phy@15500000 {
+                       compatible = "samsung,exynos7-usbdrd-phy";
+                       reg = <0x15500000 0x100>;
+                       clocks = <&clock_fsys0 ACLK_USBDRD300>,
+                              <&clock_fsys0 OSCCLK_PHY_CLKOUT_USB30_PHY>,
+                              <&clock_fsys0 PHYCLK_USBDRD300_UDRD30_PIPE_PCLK_USER>,
+                              <&clock_fsys0 PHYCLK_USBDRD300_UDRD30_PHYCLK_USER>,
+                              <&clock_fsys0 SCLK_USBDRD300_REFCLK>;
+                       clock-names = "phy", "ref", "phy_pipe",
+                               "phy_utmi", "itp";
+                       samsung,pmu-syscon = <&pmu_system_controller>;
+                       #phy-cells = <1>;
+               };
+
+               usbdrd3 {
+                       compatible = "samsung,exynos7-dwusb3";
+                       clocks = <&clock_fsys0 ACLK_USBDRD300>,
+                              <&clock_fsys0 SCLK_USBDRD300_SUSPENDCLK>,
+                              <&clock_fsys0 ACLK_AXIUS_USBDRD30X_FSYS0X>;
+                       clock-names = "usbdrd30", "usbdrd30_susp_clk",
+                               "usbdrd30_axius_clk";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       dwc3@15400000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x15400000 0x10000>;
+                               interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
+                               phys = <&usbdrd_phy 0>, <&usbdrd_phy 1>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
        };
 };
 
index 9d9af446bafc942db897159f2e077eb5d2440693..1c1ec137a3cc72e8712e172b4eca862e90aa69eb 100644 (file)
@@ -564,6 +564,46 @@ static struct clk_gate gxbb_clk81 = {
        },
 };
 
+static struct clk_mux gxbb_sar_adc_clk_sel = {
+       .reg = (void *)HHI_SAR_CLK_CNTL,
+       .mask = 0x3,
+       .shift = 9,
+       .lock = &clk_lock,
+       .hw.init = &(struct clk_init_data){
+               .name = "sar_adc_clk_sel",
+               .ops = &clk_mux_ops,
+               /* NOTE: The datasheet doesn't list the parents for bit 10 */
+               .parent_names = (const char *[]){ "xtal", "clk81", },
+               .num_parents = 2,
+       },
+};
+
+static struct clk_divider gxbb_sar_adc_clk_div = {
+       .reg = (void *)HHI_SAR_CLK_CNTL,
+       .shift = 0,
+       .width = 8,
+       .lock = &clk_lock,
+       .hw.init = &(struct clk_init_data){
+               .name = "sar_adc_clk_div",
+               .ops = &clk_divider_ops,
+               .parent_names = (const char *[]){ "sar_adc_clk_sel" },
+               .num_parents = 1,
+       },
+};
+
+static struct clk_gate gxbb_sar_adc_clk = {
+       .reg = (void *)HHI_SAR_CLK_CNTL,
+       .bit_idx = 8,
+       .lock = &clk_lock,
+       .hw.init = &(struct clk_init_data){
+               .name = "sar_adc_clk",
+               .ops = &clk_gate_ops,
+               .parent_names = (const char *[]){ "sar_adc_clk_div" },
+               .num_parents = 1,
+               .flags = CLK_SET_RATE_PARENT,
+       },
+};
+
 /* Everything Else (EE) domain gates */
 static MESON_GATE(gxbb_ddr, HHI_GCLK_MPEG0, 0);
 static MESON_GATE(gxbb_dos, HHI_GCLK_MPEG0, 1);
@@ -754,6 +794,9 @@ static struct clk_hw_onecell_data gxbb_hw_onecell_data = {
                [CLKID_SD_EMMC_A]           = &gxbb_emmc_a.hw,
                [CLKID_SD_EMMC_B]           = &gxbb_emmc_b.hw,
                [CLKID_SD_EMMC_C]           = &gxbb_emmc_c.hw,
+               [CLKID_SAR_ADC_CLK]         = &gxbb_sar_adc_clk.hw,
+               [CLKID_SAR_ADC_SEL]         = &gxbb_sar_adc_clk_sel.hw,
+               [CLKID_SAR_ADC_DIV]         = &gxbb_sar_adc_clk_div.hw,
        },
        .num = NR_CLKS,
 };
@@ -856,6 +899,7 @@ static struct clk_gate *gxbb_clk_gates[] = {
        &gxbb_emmc_a,
        &gxbb_emmc_b,
        &gxbb_emmc_c,
+       &gxbb_sar_adc_clk,
 };
 
 static int gxbb_clkc_probe(struct platform_device *pdev)
@@ -888,6 +932,10 @@ static int gxbb_clkc_probe(struct platform_device *pdev)
        gxbb_mpeg_clk_sel.reg = clk_base + (u64)gxbb_mpeg_clk_sel.reg;
        gxbb_mpeg_clk_div.reg = clk_base + (u64)gxbb_mpeg_clk_div.reg;
 
+       /* Populate the base address for the SAR ADC clks */
+       gxbb_sar_adc_clk_sel.reg = clk_base + (u64)gxbb_sar_adc_clk_sel.reg;
+       gxbb_sar_adc_clk_div.reg = clk_base + (u64)gxbb_sar_adc_clk_div.reg;
+
        /* Populate base address for gates */
        for (i = 0; i < ARRAY_SIZE(gxbb_clk_gates); i++)
                gxbb_clk_gates[i]->reg = clk_base +
index 0252939ba58f3e81aa0e55704c967ec0f4a03697..8ee2022ce5d563a20a6ee8b252b9e6f99543c8af 100644 (file)
 #define CLKID_PERIPHS            20
 #define CLKID_SPICC              21
 /* CLKID_I2C */
-#define CLKID_SAR_ADC            23
+/* #define CLKID_SAR_ADC */
 #define CLKID_SMART_CARD         24
 #define CLKID_RNG0               25
 #define CLKID_UART0              26
 #define CLKID_ASSIST_MISC        33
 /* CLKID_SPI */
 #define CLKID_I2S_SPDIF                  35
-#define CLKID_ETH                36
+/* CLKID_ETH */
 #define CLKID_DEMUX              37
 #define CLKID_AIU_GLUE           38
 #define CLKID_IEC958             39
 #define CLKID_AHB_DATA_BUS       60
 #define CLKID_AHB_CTRL_BUS       61
 #define CLKID_HDMI_INTR_SYNC     62
-#define CLKID_HDMI_PCLK                  63
+/* CLKID_HDMI_PCLK */
 /* CLKID_USB1_DDR_BRIDGE */
 /* CLKID_USB0_DDR_BRIDGE */
 #define CLKID_MMC_PCLK           66
 #define CLKID_DVIN               67
 #define CLKID_UART2              68
-#define CLKID_SANA               69
+/* #define CLKID_SANA */
 #define CLKID_VPU_INTR           70
 #define CLKID_SEC_AHB_AHB3_BRIDGE 71
 #define CLKID_CLK81_A53                  72
 #define CLKID_VCLK2_VENCI1       74
 #define CLKID_VCLK2_VENCP0       75
 #define CLKID_VCLK2_VENCP1       76
-#define CLKID_GCLK_VENCI_INT0    77
+/* CLKID_GCLK_VENCI_INT0 */
 #define CLKID_GCLK_VENCI_INT     78
 #define CLKID_DAC_CLK            79
 #define CLKID_AOCLK_GATE         80
 /* CLKID_SD_EMMC_A */
 /* CLKID_SD_EMMC_B */
 /* CLKID_SD_EMMC_C */
+/* CLKID_SAR_ADC_CLK */
+/* CLKID_SAR_ADC_SEL */
+#define CLKID_SAR_ADC_DIV        99
 
-#define NR_CLKS                          97
+#define NR_CLKS                          100
 
 /* include the CLKIDs that have been made part of the stable DT binding */
 #include <dt-bindings/clock/gxbb-clkc.h>
index baade6f429d01a5f37dfeac84e74ca002863c99e..692846c7941b53ac8449ed69a21b2a946a89c3bf 100644 (file)
 #define CLKID_MPLL2            15
 #define CLKID_SPI              34
 #define CLKID_I2C              22
+#define CLKID_SAR_ADC          23
 #define CLKID_ETH              36
 #define CLKID_USB0             50
 #define CLKID_USB1             51
 #define CLKID_USB              55
+#define CLKID_HDMI_PCLK                63
 #define CLKID_USB1_DDR_BRIDGE  64
 #define CLKID_USB0_DDR_BRIDGE  65
+#define CLKID_SANA             69
+#define CLKID_GCLK_VENCI_INT0  77
 #define CLKID_AO_I2C           93
 #define CLKID_SD_EMMC_A                94
 #define CLKID_SD_EMMC_B                95
 #define CLKID_SD_EMMC_C                96
+#define CLKID_SAR_ADC_CLK      97
+#define CLKID_SAR_ADC_SEL      98
 
 #endif /* __GXBB_CLKC_H */
index e0ebb20ffdd3a7f498cc21747312398ad00cc92c..b7aa3646208b1c5c83a8f4656eef6767a350fb38 100644 (file)
 #define EXYNOS_PIN_FUNC_6              6
 #define EXYNOS_PIN_FUNC_F              0xf
 
+/* Drive strengths for Exynos7 FSYS1 block */
+#define EXYNOS7_FSYS1_PIN_DRV_LV1      0
+#define EXYNOS7_FSYS1_PIN_DRV_LV2      4
+#define EXYNOS7_FSYS1_PIN_DRV_LV3      2
+#define EXYNOS7_FSYS1_PIN_DRV_LV4      6
+#define EXYNOS7_FSYS1_PIN_DRV_LV5      1
+#define EXYNOS7_FSYS1_PIN_DRV_LV6      5
+
 #endif /* __DT_BINDINGS_PINCTRL_SAMSUNG_H__ */