Merge tag 'v4.13-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorOlof Johansson <olof@lixom.net>
Mon, 19 Jun 2017 02:07:25 +0000 (19:07 -0700)
committerOlof Johansson <olof@lixom.net>
Mon, 19 Jun 2017 02:07:25 +0000 (19:07 -0700)
A bunch of changes including mali gpu nodes for rk3288 boards
following (and including) the new Mali Midgard binding; a lot of
improvements for the rk3228/rk3229 socs (tsadc, operating points,
usb, clock-rates, pinctrl, watchdog); finalizing the rk1108->rv1108
rename and adc buttons for the rk3288 firefly boards.

* tag 'v4.13-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: dts: rockchip: enable usb for rk3229 evb board
  ARM: dts: rockchip: add usb nodes on rk322x
  ARM: dts: rockchip: add adc button for Firefly
  ARM: dts: rockchip: enable ARM Mali GPU on rk3288-veyron
  ARM: dts: rockchip: enable ARM Mali GPU on rk3288-firefly
  ARM: dts: rockchip: enable ARM Mali GPU on rk3288-rock2-som
  ARM: dts: rockchip: add ARM Mali GPU node for rk3288
  dt-bindings: gpu: add bindings for the ARM Mali Midgard GPU
  ARM: dts: rockchip: set a sane frequence for tsadc on rk322x
  ARM: dts: rockchip: add operating-points-v2 for cpu on rk322x
  ARM: dts: rockchip: set default rates for core clocks on rk322x
  ARM: dts: rockchip: add second uart2 pinctrl on rk322x
  ARM: dts: rockchip: correct rk322x uart2 pinctrl
  ARM: dts: rockchip: add watchdog device node on rk322x
  clk: rockchip: add clock-ids for more rk3228 clocks
  clk: rockchip: add ids for camera on rk3399
  ARM: dts: rockchip: fix rk322x i2s1 pinctrl error
  ARM: dts: rockchip: rename RK1108-evb to RV1108-evb
  ARM: dts: rockchip: rename core dtsi from RK1108 to RV1108
  ARM: dts: rockchip: Setup usb vbus-supply on rk3288-rock2

Signed-off-by: Olof Johansson <olof@lixom.net>
17 files changed:
Documentation/devicetree/bindings/arm/rockchip.txt
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt [new file with mode: 0644]
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/rk1108-evb.dts [deleted file]
arch/arm/boot/dts/rk1108.dtsi [deleted file]
arch/arm/boot/dts/rk3229-evb.dts
arch/arm/boot/dts/rk322x.dtsi
arch/arm/boot/dts/rk3288-firefly-reload.dts
arch/arm/boot/dts/rk3288-firefly.dtsi
arch/arm/boot/dts/rk3288-rock2-som.dtsi
arch/arm/boot/dts/rk3288-rock2-square.dts
arch/arm/boot/dts/rk3288-veyron.dtsi
arch/arm/boot/dts/rk3288.dtsi
arch/arm/boot/dts/rv1108-evb.dts [new file with mode: 0644]
arch/arm/boot/dts/rv1108.dtsi [new file with mode: 0644]
include/dt-bindings/clock/rk3228-cru.h
include/dt-bindings/clock/rk3399-cru.h

index c965d99e86c2b8413c5b5463d2bbc46966f53005..7b4847420ab596d61dd897366e090129119e4936 100644 (file)
@@ -138,9 +138,9 @@ Rockchip platforms device tree bindings
     Required root node properties:
       - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";
 
-- Rockchip RK1108 Evaluation board
+- Rockchip RV1108 Evaluation board
     Required root node properties:
-      - compatible = "rockchip,rk1108-evb", "rockchip,rk1108";
+      - compatible = "rockchip,rv1108-evb", "rockchip,rv1108";
 
 - Rockchip RK3368 evb:
     Required root node properties:
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
new file mode 100644 (file)
index 0000000..d3b6e1a
--- /dev/null
@@ -0,0 +1,86 @@
+ARM Mali Midgard GPU
+====================
+
+Required properties:
+
+- compatible :
+  * Must contain one of the following:
+    + "arm,mali-t604"
+    + "arm,mali-t624"
+    + "arm,mali-t628"
+    + "arm,mali-t720"
+    + "arm,mali-t760"
+    + "arm,mali-t820"
+    + "arm,mali-t830"
+    + "arm,mali-t860"
+    + "arm,mali-t880"
+  * which must be preceded by one of the following vendor specifics:
+    + "amlogic,meson-gxm-mali"
+    + "rockchip,rk3288-mali"
+
+- reg : Physical base address of the device and length of the register area.
+
+- interrupts : Contains the three IRQ lines required by Mali Midgard devices.
+
+- interrupt-names : Contains the names of IRQ resources in the order they were
+  provided in the interrupts property. Must contain: "job", "mmu", "gpu".
+
+
+Optional properties:
+
+- clocks : Phandle to clock for the Mali Midgard device.
+
+- mali-supply : Phandle to regulator for the Mali device. Refer to
+  Documentation/devicetree/bindings/regulator/regulator.txt for details.
+
+- operating-points-v2 : Refer to Documentation/devicetree/bindings/power/opp.txt
+  for details.
+
+
+Example for a Mali-T760:
+
+gpu@ffa30000 {
+       compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard";
+       reg = <0xffa30000 0x10000>;
+       interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+       interrupt-names = "job", "mmu", "gpu";
+       clocks = <&cru ACLK_GPU>;
+       mali-supply = <&vdd_gpu>;
+       operating-points-v2 = <&gpu_opp_table>;
+       power-domains = <&power RK3288_PD_GPU>;
+};
+
+gpu_opp_table: opp_table0 {
+       compatible = "operating-points-v2";
+
+       opp@533000000 {
+               opp-hz = /bits/ 64 <533000000>;
+               opp-microvolt = <1250000>;
+       };
+       opp@450000000 {
+               opp-hz = /bits/ 64 <450000000>;
+               opp-microvolt = <1150000>;
+       };
+       opp@400000000 {
+               opp-hz = /bits/ 64 <400000000>;
+               opp-microvolt = <1125000>;
+       };
+       opp@350000000 {
+               opp-hz = /bits/ 64 <350000000>;
+               opp-microvolt = <1075000>;
+       };
+       opp@266000000 {
+               opp-hz = /bits/ 64 <266000000>;
+               opp-microvolt = <1025000>;
+       };
+       opp@160000000 {
+               opp-hz = /bits/ 64 <160000000>;
+               opp-microvolt = <925000>;
+       };
+       opp@100000000 {
+               opp-hz = /bits/ 64 <100000000>;
+               opp-microvolt = <912500>;
+       };
+};
index 663b1132c5c484e8a8e9bf3f929819c023954c99..7209ab22cbf3f7c49fbfced120bb19871c8118c8 100644 (file)
@@ -719,7 +719,7 @@ dtb-$(CONFIG_ARCH_RENESAS) += \
        r8a7794-silk.dtb \
        sh73a0-kzm9g.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += \
-       rk1108-evb.dtb \
+       rv1108-evb.dtb \
        rk3036-evb.dtb \
        rk3036-kylin.dtb \
        rk3066a-bqcurie2.dtb \
diff --git a/arch/arm/boot/dts/rk1108-evb.dts b/arch/arm/boot/dts/rk1108-evb.dts
deleted file mode 100644 (file)
index 3956cff..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *  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 "rk1108.dtsi"
-
-/ {
-       model = "Rockchip RK1108 Evaluation board";
-       compatible = "rockchip,rk1108-evb", "rockchip,rk1108";
-
-       memory@60000000 {
-               device_type = "memory";
-               reg = <0x60000000 0x08000000>;
-       };
-
-       chosen {
-               stdout-path = "serial2:1500000n8";
-       };
-};
-
-&uart0 {
-       status = "okay";
-};
-
-&uart1 {
-       status = "okay";
-};
-
-&uart2 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/rk1108.dtsi b/arch/arm/boot/dts/rk1108.dtsi
deleted file mode 100644 (file)
index 1297924..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * 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.
- */
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/clock/rv1108-cru.h>
-#include <dt-bindings/pinctrl/rockchip.h>
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       compatible = "rockchip,rk1108";
-
-       interrupt-parent = <&gic>;
-
-       aliases {
-               serial0 = &uart0;
-               serial1 = &uart1;
-               serial2 = &uart2;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: cpu@f00 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a7";
-                       reg = <0xf00>;
-               };
-       };
-
-       arm-pmu {
-               compatible = "arm,cortex-a7-pmu";
-               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
-       };
-
-       timer {
-               compatible = "arm,armv7-timer";
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
-               clock-frequency = <24000000>;
-       };
-
-       xin24m: oscillator {
-               compatible = "fixed-clock";
-               clock-frequency = <24000000>;
-               clock-output-names = "xin24m";
-               #clock-cells = <0>;
-       };
-
-       amba {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               pdma: pdma@102a0000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x102a0000 0x4000>;
-                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <1>;
-                       arm,pl330-broken-no-flushp;
-                       clocks = <&cru ACLK_DMAC>;
-                       clock-names = "apb_pclk";
-               };
-       };
-
-       bus_intmem@10080000 {
-               compatible = "mmio-sram";
-               reg = <0x10080000 0x2000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0 0x10080000 0x2000>;
-       };
-
-       uart2: serial@10210000 {
-               compatible = "rockchip,rk1108-uart", "snps,dw-apb-uart";
-               reg = <0x10210000 0x100>;
-               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               clock-frequency = <24000000>;
-               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
-               clock-names = "baudclk", "apb_pclk";
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart2m0_xfer>;
-               status = "disabled";
-       };
-
-       uart1: serial@10220000 {
-               compatible = "rockchip,rk1108-uart", "snps,dw-apb-uart";
-               reg = <0x10220000 0x100>;
-               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               clock-frequency = <24000000>;
-               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
-               clock-names = "baudclk", "apb_pclk";
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart1_xfer>;
-               status = "disabled";
-       };
-
-       uart0: serial@10230000 {
-               compatible = "rockchip,rk1108-uart", "snps,dw-apb-uart";
-               reg = <0x10230000 0x100>;
-               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               clock-frequency = <24000000>;
-               clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
-               clock-names = "baudclk", "apb_pclk";
-               pinctrl-names = "default";
-               pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
-               status = "disabled";
-       };
-
-       grf: syscon@10300000 {
-               compatible = "rockchip,rk1108-grf", "syscon";
-               reg = <0x10300000 0x1000>;
-       };
-
-       pmugrf: syscon@20060000 {
-               compatible = "rockchip,rk1108-pmugrf", "syscon";
-               reg = <0x20060000 0x1000>;
-       };
-
-       cru: clock-controller@20200000 {
-               compatible = "rockchip,rk1108-cru";
-               reg = <0x20200000 0x1000>;
-               rockchip,grf = <&grf>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-       };
-
-       emmc: dwmmc@30110000 {
-               compatible = "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc";
-               clock-freq-min-max = <400000 150000000>;
-               clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
-                        <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0x30110000 0x4000>;
-               status = "disabled";
-       };
-
-       sdio: dwmmc@30120000 {
-               compatible = "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc";
-               clock-freq-min-max = <400000 150000000>;
-               clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
-                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0x30120000 0x4000>;
-               status = "disabled";
-       };
-
-       sdmmc: dwmmc@30130000 {
-               compatible = "rockchip,rk1108-dw-mshc", "rockchip,rk3288-dw-mshc";
-               clock-freq-min-max = <400000 100000000>;
-               clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
-                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0x30130000 0x4000>;
-               status = "disabled";
-       };
-
-       gic: interrupt-controller@32010000 {
-               compatible = "arm,gic-400";
-               interrupt-controller;
-               #interrupt-cells = <3>;
-               #address-cells = <0>;
-
-               reg = <0x32011000 0x1000>,
-                     <0x32012000 0x2000>,
-                     <0x32014000 0x2000>,
-                     <0x32016000 0x2000>;
-               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
-       };
-
-       pinctrl: pinctrl {
-               compatible = "rockchip,rv1108-pinctrl";
-               rockchip,grf = <&grf>;
-               rockchip,pmu = <&pmugrf>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               gpio0: gpio0@20030000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x20030000 0x100>;
-                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&xin24m>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio1: gpio1@10310000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x10310000 0x100>;
-                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&xin24m>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio2: gpio2@10320000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x10320000 0x100>;
-                       interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&xin24m>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio3: gpio3@10330000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x10330000 0x100>;
-                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&xin24m>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-
-               pcfg_pull_up: pcfg-pull-up {
-                       bias-pull-up;
-               };
-
-               pcfg_pull_down: pcfg-pull-down {
-                       bias-pull-down;
-               };
-
-               pcfg_pull_none: pcfg-pull-none {
-                       bias-disable;
-               };
-
-               pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
-                       drive-strength = <8>;
-               };
-
-               pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
-                       drive-strength = <12>;
-               };
-
-               pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
-                       bias-pull-up;
-                       drive-strength = <8>;
-               };
-
-               pcfg_pull_none_drv_4ma: pcfg-pull-none-drv-4ma {
-                       drive-strength = <4>;
-               };
-
-               pcfg_pull_up_drv_4ma: pcfg-pull-up-drv-4ma {
-                       bias-pull-up;
-                       drive-strength = <4>;
-               };
-
-               pcfg_output_high: pcfg-output-high {
-                       output-high;
-               };
-
-               pcfg_output_low: pcfg-output-low {
-                       output-low;
-               };
-
-               pcfg_input_high: pcfg-input-high {
-                       bias-pull-up;
-                       input-enable;
-               };
-
-               i2c1 {
-                       i2c1_xfer: i2c1-xfer {
-                               rockchip,pins = <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
-                                               <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
-                       };
-               };
-
-               i2c2m1 {
-                       i2c2m1_xfer: i2c2m1-xfer {
-                               rockchip,pins = <0 RK_PC2 RK_FUNC_2 &pcfg_pull_none>,
-                                               <0 RK_PC6 RK_FUNC_3 &pcfg_pull_none>;
-                       };
-
-                       i2c2m1_gpio: i2c2m1-gpio {
-                               rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
-                                               <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
-                       };
-               };
-
-               i2c2m05v {
-                       i2c2m05v_xfer: i2c2m05v-xfer {
-                               rockchip,pins = <1 RK_PD5 RK_FUNC_2 &pcfg_pull_none>,
-                                               <1 RK_PD4 RK_FUNC_2 &pcfg_pull_none>;
-                       };
-
-                       i2c2m05v_gpio: i2c2m05v-gpio {
-                               rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>,
-                                               <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
-                       };
-               };
-
-               i2c3 {
-                       i2c3_xfer: i2c3-xfer {
-                               rockchip,pins = <0 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
-                                               <0 RK_PC4 RK_FUNC_2 &pcfg_pull_none>;
-                       };
-               };
-
-               sdmmc {
-                       sdmmc_clk: sdmmc-clk {
-                               rockchip,pins = <3 RK_PC4 RK_FUNC_1 &pcfg_pull_none_drv_4ma>;
-                       };
-
-                       sdmmc_cmd: sdmmc-cmd {
-                               rockchip,pins = <3 RK_PC5 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
-                       };
-
-                       sdmmc_cd: sdmmc-cd {
-                               rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
-                       };
-
-                       sdmmc_bus1: sdmmc-bus1 {
-                               rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
-                       };
-
-                       sdmmc_bus4: sdmmc-bus4 {
-                               rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
-                                               <3 RK_PC2 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
-                                               <3 RK_PC1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
-                                               <3 RK_PC0 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
-                       };
-               };
-
-               uart0 {
-                       uart0_xfer: uart0-xfer {
-                               rockchip,pins = <3 RK_PA6 RK_FUNC_1 &pcfg_pull_up>,
-                                               <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
-                       uart0_cts: uart0-cts {
-                               rockchip,pins = <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
-                       uart0_rts: uart0-rts {
-                               rockchip,pins = <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
-                       uart0_rts_gpio: uart0-rts-gpio {
-                               rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
-                       };
-               };
-
-               uart1 {
-                       uart1_xfer: uart1-xfer {
-                               rockchip,pins = <1 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
-                                               <1 RK_PD2 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
-                       uart1_cts: uart1-cts {
-                               rockchip,pins = <1 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
-                       uart1_rts: uart1-rts {
-                               rockchip,pins = <1 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-               };
-
-               uart2m0 {
-                       uart2m0_xfer: uart2m0-xfer {
-                               rockchip,pins = <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>,
-                                               <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-               };
-
-               uart2m1 {
-                       uart2m1_xfer: uart2m1-xfer {
-                               rockchip,pins = <3 RK_PC3 RK_FUNC_2 &pcfg_pull_up>,
-                                               <3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
-                       };
-               };
-
-               uart2_5v {
-                       uart2_5v_cts: uart2_5v-cts {
-                               rockchip,pins = <1 RK_PD4 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
-                       uart2_5v_rts: uart2_5v-rts {
-                               rockchip,pins = <1 RK_PD5 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-               };
-       };
-};
index 275092a950efa50afb60861ae422d92de0354b38..1b55192b7d04683ce464eb824f45cee43fd4c486 100644 (file)
                #clock-cells = <0>;
        };
 
+       vcc_host: vcc-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host_vbus_drv>;
+               regulator-name = "vcc_host";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
        vcc_phy: vcc-phy-regulator {
                compatible = "regulator-fixed";
                enable-active-high;
        status = "okay";
 };
 
+&pinctrl {
+       usb {
+               host_vbus_drv: host-vbus-drv {
+                       rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
 &uart2 {
        status = "okay";
 };
+
+&u2phy0 {
+       status = "okay";
+
+       u2phy0_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy0_host: host-port {
+               phy-supply = <&vcc_host>;
+               status = "okay";
+       };
+};
+
+&u2phy1 {
+       status = "okay";
+
+       u2phy1_otg: otg-port {
+               phy-supply = <&vcc_host>;
+               status = "okay";
+       };
+
+       u2phy1_host: host-port {
+               phy-supply = <&vcc_host>;
+               status = "okay";
+       };
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host2_ehci {
+       status = "okay";
+};
+
+&usb_host2_ohci {
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+};
index 48a0c1cf430127bd8e8324cd791661cd1aef43fe..f3e4ffd9f8180bfaade6a9ecfb0e7abaa502f0d1 100644 (file)
                        compatible = "arm,cortex-a7";
                        reg = <0xf00>;
                        resets = <&cru SRST_CORE0>;
-                       operating-points = <
-                               /* KHz    uV */
-                                816000 1000000
-                       >;
+                       operating-points-v2 = <&cpu0_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                        clock-latency = <40000>;
                        clocks = <&cru ARMCLK>;
@@ -80,6 +77,7 @@
                        compatible = "arm,cortex-a7";
                        reg = <0xf01>;
                        resets = <&cru SRST_CORE1>;
+                       operating-points-v2 = <&cpu0_opp_table>;
                };
 
                cpu2: cpu@f02 {
@@ -87,6 +85,7 @@
                        compatible = "arm,cortex-a7";
                        reg = <0xf02>;
                        resets = <&cru SRST_CORE2>;
+                       operating-points-v2 = <&cpu0_opp_table>;
                };
 
                cpu3: cpu@f03 {
                        compatible = "arm,cortex-a7";
                        reg = <0xf03>;
                        resets = <&cru SRST_CORE3>;
+                       operating-points-v2 = <&cpu0_opp_table>;
+               };
+       };
+
+       cpu0_opp_table: opp_table0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-408000000 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <950000>;
+                       clock-latency-ns = <40000>;
+                       opp-suspend;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <975000>;
+               };
+               opp-816000000 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <1000000>;
+               };
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1175000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1275000>;
                };
        };
 
        };
 
        grf: syscon@11000000 {
-               compatible = "syscon";
+               compatible = "syscon", "simple-mfd";
                reg = <0x11000000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy0: usb2-phy@760 {
+                       compatible = "rockchip,rk3228-usb2phy";
+                       reg = <0x0760 0x0c>;
+                       clocks = <&cru SCLK_OTGPHY0>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy0";
+                       #clock-cells = <0>;
+                       status = "disabled";
+
+                       u2phy0_otg: otg-port {
+                               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "otg-bvalid", "otg-id",
+                                                 "linestate";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       u2phy0_host: host-port {
+                               interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
+               u2phy1: usb2-phy@800 {
+                       compatible = "rockchip,rk3228-usb2phy";
+                       reg = <0x0800 0x0c>;
+                       clocks = <&cru SCLK_OTGPHY1>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy1";
+                       #clock-cells = <0>;
+                       status = "disabled";
+
+                       u2phy1_otg: otg-port {
+                               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       u2phy1_host: host-port {
+                               interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
        };
 
        uart0: serial@11010000 {
                status = "disabled";
        };
 
+       wdt: watchdog@110a0000 {
+               compatible = "snps,dw-wdt";
+               reg = <0x110a0000 0x100>;
+               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_CPU>;
+               status = "disabled";
+       };
+
        pwm0: pwm@110b0000 {
                compatible = "rockchip,rk3288-pwm";
                reg = <0x110b0000 0x10>;
                rockchip,grf = <&grf>;
                #clock-cells = <1>;
                #reset-cells = <1>;
-               assigned-clocks = <&cru PLL_GPLL>;
-               assigned-clock-rates = <594000000>;
+               assigned-clocks =
+                       <&cru PLL_GPLL>, <&cru ARMCLK>,
+                       <&cru PLL_CPLL>, <&cru ACLK_PERI>,
+                       <&cru HCLK_PERI>, <&cru PCLK_PERI>,
+                       <&cru ACLK_CPU>, <&cru HCLK_CPU>,
+                       <&cru PCLK_CPU>;
+               assigned-clock-rates =
+                       <594000000>, <816000000>,
+                       <500000000>, <150000000>,
+                       <150000000>, <75000000>,
+                       <150000000>, <150000000>,
+                       <75000000>;
        };
 
        thermal-zones {
                interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
                clock-names = "tsadc", "apb_pclk";
+               assigned-clocks = <&cru SCLK_TSADC>;
+               assigned-clock-rates = <32768>;
                resets = <&cru SRST_TSADC>;
                reset-names = "tsadc-apb";
                pinctrl-names = "init", "default", "sleep";
                status = "disabled";
        };
 
+       usb_otg: usb@30040000 {
+               compatible = "rockchip,rk3228-usb", "rockchip,rk3066-usb",
+                            "snps,dwc2";
+               reg = <0x30040000 0x40000>;
+               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_OTG>;
+               clock-names = "otg";
+               dr_mode = "otg";
+               g-np-tx-fifo-size = <16>;
+               g-rx-fifo-size = <280>;
+               g-tx-fifo-size = <256 128 128 64 32 16>;
+               g-use-dma;
+               phys = <&u2phy0_otg>;
+               phy-names = "usb2-phy";
+               status = "disabled";
+       };
+
+       usb_host0_ehci: usb@30080000 {
+               compatible = "generic-ehci";
+               reg = <0x30080000 0x20000>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST0>, <&u2phy0>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy0_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host0_ohci: usb@300a0000 {
+               compatible = "generic-ohci";
+               reg = <0x300a0000 0x20000>;
+               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST0>, <&u2phy0>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy0_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host1_ehci: usb@300c0000 {
+               compatible = "generic-ehci";
+               reg = <0x300c0000 0x20000>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST1>, <&u2phy1>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy1_otg>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host1_ohci: usb@300e0000 {
+               compatible = "generic-ohci";
+               reg = <0x300e0000 0x20000>;
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST1>, <&u2phy1>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy1_otg>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host2_ehci: usb@30100000 {
+               compatible = "generic-ehci";
+               reg = <0x30100000 0x20000>;
+               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST2>, <&u2phy1>;
+               phys = <&u2phy1_host>;
+               phy-names = "usb";
+               clock-names = "usbhost", "utmi";
+               status = "disabled";
+       };
+
+       usb_host2_ohci: usb@30120000 {
+               compatible = "generic-ohci";
+               reg = <0x30120000 0x20000>;
+               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST2>, <&u2phy1>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy1_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
        gmac: ethernet@30200000 {
                compatible = "rockchip,rk3228-gmac";
                reg = <0x30200000 0x10000>;
                                                <0 12 RK_FUNC_1 &pcfg_pull_none>,
                                                <0 13 RK_FUNC_1 &pcfg_pull_none>,
                                                <0 14 RK_FUNC_1 &pcfg_pull_none>,
-                                               <1 2 RK_FUNC_1 &pcfg_pull_none>,
-                                               <1 4 RK_FUNC_1 &pcfg_pull_none>,
-                                               <1 5 RK_FUNC_1 &pcfg_pull_none>;
+                                               <1 2 RK_FUNC_2 &pcfg_pull_none>,
+                                               <1 4 RK_FUNC_2 &pcfg_pull_none>,
+                                               <1 5 RK_FUNC_2 &pcfg_pull_none>;
                        };
                };
 
 
                uart2 {
                        uart2_xfer: uart2-xfer {
-                               rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_none>,
+                               rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
                                                <1 19 RK_FUNC_2 &pcfg_pull_none>;
                        };
 
+                       uart21_xfer: uart21-xfer {
+                               rockchip,pins = <1 10 RK_FUNC_2 &pcfg_pull_up>,
+                                               <1 9 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+
                        uart2_cts: uart2-cts {
                                rockchip,pins = <0 25 RK_FUNC_1 &pcfg_pull_none>;
                        };
index d0b3204a47999022bb12dc661644dcbfbbfe7b23..b11a282c334c4d03cc1fdc1e1665029fc0f1de18 100644 (file)
        model = "Firefly-RK3288-reload";
        compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288";
 
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <0>;
+               };
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
        status = "okay";
 };
 
+&saradc {
+       status = "okay";
+};
+
 &sdmmc {
        bus-width = <4>;
        cap-mmc-highspeed;
index 10793ac185992d95dbb8b3d0d6f36bf8d39ecfe9..32dabae12e673778303e1e91f7fed02af4eeee08 100644 (file)
                reg = <0 0x80000000>;
        };
 
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <0>;
+               };
+       };
+
        dovdd_1v8: dovdd-1v8-regulator {
                compatible = "regulator-fixed";
                regulator-name = "dovdd_1v8";
        status = "ok";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
 &hdmi {
        ddc-i2c-bus = <&i2c5>;
        status = "okay";
index f0778a46bca9b6edd16fc905a442cb53f651d8e3..749a9b86e6e27c9a1d7d5e50786022d6804d24e5 100644 (file)
        tx_delay = <0x30>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
 &i2c0 {
        status = "okay";
 
index a23a94811be8ade1bdc6b8233d875c0483b126d4..8ed25e9f60bc480309765ab26c10426a5965e2cd 100644 (file)
                gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&host_vbus_drv>;
-               /* Always on as the rockchip usb phy doesn't have a vbus-supply
-                * property
-                */
-               regulator-always-on;
                regulator-name = "vcc_host";
        };
 
        status = "okay";
 };
 
+&usbphy1 {
+       vbus-supply = <&vcc_usb_host>;
+};
+
 &usb_host0_ehci {
        status = "okay";
 };
index 5d1eb0a2582755b274743bc7fefe556a170eb36b..d709fa1847f9a8ca2f435a95ecc7b78536af1ffb 100644 (file)
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
 &hdmi {
        ddc-i2c-bus = <&i2c5>;
        status = "okay";
index ad5d6022e95fe58ba1f354473cc53d397f04ebf8..2484f11761ea24f3bfa44a81e7309442399367d9 100644 (file)
@@ -43,6 +43,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/rockchip.h>
 #include <dt-bindings/clock/rk3288-cru.h>
+#include <dt-bindings/power/rk3288-power.h>
 #include <dt-bindings/thermal/thermal.h>
 #include <dt-bindings/power/rk3288-power.h>
 #include <dt-bindings/soc/rockchip,boot-mode.h>
                };
        };
 
+       gpu: mali@ffa30000 {
+               compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard";
+               reg = <0xffa30000 0x10000>;
+               interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "job", "mmu", "gpu";
+               clocks = <&cru ACLK_GPU>;
+               operating-points-v2 = <&gpu_opp_table>;
+               power-domains = <&power RK3288_PD_GPU>;
+               status = "disabled";
+       };
+
+       gpu_opp_table: gpu-opp-table {
+               compatible = "operating-points-v2";
+
+               opp@100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp@200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp@300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <1000000>;
+               };
+               opp@400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <1100000>;
+               };
+               opp@500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <1200000>;
+               };
+               opp@600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <1250000>;
+               };
+       };
+
        qos_gpu_r: qos@ffaa0000 {
                compatible = "syscon";
                reg = <0xffaa0000 0x20>;
diff --git a/arch/arm/boot/dts/rv1108-evb.dts b/arch/arm/boot/dts/rv1108-evb.dts
new file mode 100644 (file)
index 0000000..58cf4ac
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ *  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 "rv1108.dtsi"
+
+/ {
+       model = "Rockchip RV1108 Evaluation board";
+       compatible = "rockchip,rv1108-evb", "rockchip,rv1108";
+
+       memory@60000000 {
+               device_type = "memory";
+               reg = <0x60000000 0x08000000>;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/rv1108.dtsi b/arch/arm/boot/dts/rv1108.dtsi
new file mode 100644 (file)
index 0000000..437098b
--- /dev/null
@@ -0,0 +1,452 @@
+/*
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * 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.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/rv1108-cru.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       compatible = "rockchip,rv1108";
+
+       interrupt-parent = <&gic>;
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@f00 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0xf00>;
+               };
+       };
+
+       arm-pmu {
+               compatible = "arm,cortex-a7-pmu";
+               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+               clock-frequency = <24000000>;
+       };
+
+       xin24m: oscillator {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "xin24m";
+               #clock-cells = <0>;
+       };
+
+       amba {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               pdma: pdma@102a0000 {
+                       compatible = "arm,pl330", "arm,primecell";
+                       reg = <0x102a0000 0x4000>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       arm,pl330-broken-no-flushp;
+                       clocks = <&cru ACLK_DMAC>;
+                       clock-names = "apb_pclk";
+               };
+       };
+
+       bus_intmem@10080000 {
+               compatible = "mmio-sram";
+               reg = <0x10080000 0x2000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x10080000 0x2000>;
+       };
+
+       uart2: serial@10210000 {
+               compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
+               reg = <0x10210000 0x100>;
+               interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               clock-frequency = <24000000>;
+               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
+               clock-names = "baudclk", "apb_pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart2m0_xfer>;
+               status = "disabled";
+       };
+
+       uart1: serial@10220000 {
+               compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
+               reg = <0x10220000 0x100>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               clock-frequency = <24000000>;
+               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
+               clock-names = "baudclk", "apb_pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart1_xfer>;
+               status = "disabled";
+       };
+
+       uart0: serial@10230000 {
+               compatible = "rockchip,rv1108-uart", "snps,dw-apb-uart";
+               reg = <0x10230000 0x100>;
+               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               clock-frequency = <24000000>;
+               clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
+               clock-names = "baudclk", "apb_pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+               status = "disabled";
+       };
+
+       grf: syscon@10300000 {
+               compatible = "rockchip,rv1108-grf", "syscon";
+               reg = <0x10300000 0x1000>;
+       };
+
+       pmugrf: syscon@20060000 {
+               compatible = "rockchip,rv1108-pmugrf", "syscon";
+               reg = <0x20060000 0x1000>;
+       };
+
+       cru: clock-controller@20200000 {
+               compatible = "rockchip,rv1108-cru";
+               reg = <0x20200000 0x1000>;
+               rockchip,grf = <&grf>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+       };
+
+       emmc: dwmmc@30110000 {
+               compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
+               clock-freq-min-max = <400000 150000000>;
+               clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
+                        <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+               reg = <0x30110000 0x4000>;
+               status = "disabled";
+       };
+
+       sdio: dwmmc@30120000 {
+               compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
+               clock-freq-min-max = <400000 150000000>;
+               clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
+                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+               reg = <0x30120000 0x4000>;
+               status = "disabled";
+       };
+
+       sdmmc: dwmmc@30130000 {
+               compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
+               clock-freq-min-max = <400000 100000000>;
+               clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
+                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+               reg = <0x30130000 0x4000>;
+               status = "disabled";
+       };
+
+       gic: interrupt-controller@32010000 {
+               compatible = "arm,gic-400";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+
+               reg = <0x32011000 0x1000>,
+                     <0x32012000 0x2000>,
+                     <0x32014000 0x2000>,
+                     <0x32016000 0x2000>;
+               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       pinctrl: pinctrl {
+               compatible = "rockchip,rv1108-pinctrl";
+               rockchip,grf = <&grf>;
+               rockchip,pmu = <&pmugrf>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               gpio0: gpio0@20030000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x20030000 0x100>;
+                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&xin24m>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio1: gpio1@10310000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x10310000 0x100>;
+                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&xin24m>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio2: gpio2@10320000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x10320000 0x100>;
+                       interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&xin24m>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio3: gpio3@10330000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x10330000 0x100>;
+                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&xin24m>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               pcfg_pull_up: pcfg-pull-up {
+                       bias-pull-up;
+               };
+
+               pcfg_pull_down: pcfg-pull-down {
+                       bias-pull-down;
+               };
+
+               pcfg_pull_none: pcfg-pull-none {
+                       bias-disable;
+               };
+
+               pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
+                       drive-strength = <8>;
+               };
+
+               pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
+                       drive-strength = <12>;
+               };
+
+               pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
+                       bias-pull-up;
+                       drive-strength = <8>;
+               };
+
+               pcfg_pull_none_drv_4ma: pcfg-pull-none-drv-4ma {
+                       drive-strength = <4>;
+               };
+
+               pcfg_pull_up_drv_4ma: pcfg-pull-up-drv-4ma {
+                       bias-pull-up;
+                       drive-strength = <4>;
+               };
+
+               pcfg_output_high: pcfg-output-high {
+                       output-high;
+               };
+
+               pcfg_output_low: pcfg-output-low {
+                       output-low;
+               };
+
+               pcfg_input_high: pcfg-input-high {
+                       bias-pull-up;
+                       input-enable;
+               };
+
+               i2c1 {
+                       i2c1_xfer: i2c1-xfer {
+                               rockchip,pins = <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
+                                               <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>;
+                       };
+               };
+
+               i2c2m1 {
+                       i2c2m1_xfer: i2c2m1-xfer {
+                               rockchip,pins = <0 RK_PC2 RK_FUNC_2 &pcfg_pull_none>,
+                                               <0 RK_PC6 RK_FUNC_3 &pcfg_pull_none>;
+                       };
+
+                       i2c2m1_gpio: i2c2m1-gpio {
+                               rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>,
+                                               <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+               };
+
+               i2c2m05v {
+                       i2c2m05v_xfer: i2c2m05v-xfer {
+                               rockchip,pins = <1 RK_PD5 RK_FUNC_2 &pcfg_pull_none>,
+                                               <1 RK_PD4 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+
+                       i2c2m05v_gpio: i2c2m05v-gpio {
+                               rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>,
+                                               <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+               };
+
+               i2c3 {
+                       i2c3_xfer: i2c3-xfer {
+                               rockchip,pins = <0 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
+                                               <0 RK_PC4 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
+               sdmmc {
+                       sdmmc_clk: sdmmc-clk {
+                               rockchip,pins = <3 RK_PC4 RK_FUNC_1 &pcfg_pull_none_drv_4ma>;
+                       };
+
+                       sdmmc_cmd: sdmmc-cmd {
+                               rockchip,pins = <3 RK_PC5 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
+                       };
+
+                       sdmmc_cd: sdmmc-cd {
+                               rockchip,pins = <0 RK_PA1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
+                       };
+
+                       sdmmc_bus1: sdmmc-bus1 {
+                               rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
+                       };
+
+                       sdmmc_bus4: sdmmc-bus4 {
+                               rockchip,pins = <3 RK_PC3 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
+                                               <3 RK_PC2 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
+                                               <3 RK_PC1 RK_FUNC_1 &pcfg_pull_up_drv_4ma>,
+                                               <3 RK_PC0 RK_FUNC_1 &pcfg_pull_up_drv_4ma>;
+                       };
+               };
+
+               uart0 {
+                       uart0_xfer: uart0-xfer {
+                               rockchip,pins = <3 RK_PA6 RK_FUNC_1 &pcfg_pull_up>,
+                                               <3 RK_PA5 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+
+                       uart0_cts: uart0-cts {
+                               rockchip,pins = <3 RK_PA4 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+
+                       uart0_rts: uart0-rts {
+                               rockchip,pins = <3 RK_PA3 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+
+                       uart0_rts_gpio: uart0-rts-gpio {
+                               rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+                       };
+               };
+
+               uart1 {
+                       uart1_xfer: uart1-xfer {
+                               rockchip,pins = <1 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
+                                               <1 RK_PD2 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+
+                       uart1_cts: uart1-cts {
+                               rockchip,pins = <1 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+
+                       uart1_rts: uart1-rts {
+                               rockchip,pins = <1 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
+               uart2m0 {
+                       uart2m0_xfer: uart2m0-xfer {
+                               rockchip,pins = <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>,
+                                               <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
+               uart2m1 {
+                       uart2m1_xfer: uart2m1-xfer {
+                               rockchip,pins = <3 RK_PC3 RK_FUNC_2 &pcfg_pull_up>,
+                                               <3 RK_PC2 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
+               uart2_5v {
+                       uart2_5v_cts: uart2_5v-cts {
+                               rockchip,pins = <1 RK_PD4 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+
+                       uart2_5v_rts: uart2_5v-rts {
+                               rockchip,pins = <1 RK_PD5 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+       };
+};
index b27e2b1a65e3cb66424c0a90ce69fb9e84a21694..56f841c22801a7b5c349cb99f5732b3274986ce3 100644 (file)
 #define SCLK_MAC_TX            130
 #define SCLK_MAC_PHY           131
 #define SCLK_MAC_OUT           132
+#define SCLK_VDEC_CABAC                133
+#define SCLK_VDEC_CORE         134
+#define SCLK_RGA               135
+#define SCLK_HDCP              136
+#define SCLK_HDMI_CEC          137
+#define SCLK_CRYPTO            138
+#define SCLK_TSP               139
+#define SCLK_HSADC             140
+#define SCLK_WIFI              141
+#define SCLK_OTGPHY0           142
+#define SCLK_OTGPHY1           143
 
 /* dclk gates */
 #define DCLK_VOP               190
 
 /* aclk gates */
 #define ACLK_DMAC              194
+#define ACLK_CPU               195
+#define ACLK_VPU_PRE           196
+#define ACLK_RKVDEC_PRE                197
+#define ACLK_RGA_PRE           198
+#define ACLK_IEP_PRE           199
+#define ACLK_HDCP_PRE          200
+#define ACLK_VOP_PRE           201
+#define ACLK_VPU               202
+#define ACLK_RKVDEC            203
+#define ACLK_IEP               204
+#define ACLK_RGA               205
+#define ACLK_HDCP              206
 #define ACLK_PERI              210
 #define ACLK_VOP               211
 #define ACLK_GMAC              212
+#define ACLK_GPU               213
 
 /* pclk gates */
 #define PCLK_GPIO0             320
 #define PCLK_GPIO1             321
 #define PCLK_GPIO2             322
 #define PCLK_GPIO3             323
+#define PCLK_VIO_H2P           324
+#define PCLK_HDCP              325
+#define PCLK_EFUSE_1024                326
+#define PCLK_EFUSE_256         327
 #define PCLK_GRF               329
 #define PCLK_I2C0              332
 #define PCLK_I2C1              333
 #define PCLK_TSADC             344
 #define PCLK_PWM               350
 #define PCLK_TIMER             353
+#define PCLK_CPU               354
 #define PCLK_PERI              363
 #define PCLK_HDMI_CTRL         364
 #define PCLK_HDMI_PHY          365
 #define HCLK_SDMMC             456
 #define HCLK_SDIO              457
 #define HCLK_EMMC              459
+#define HCLK_CPU               460
+#define HCLK_VPU_PRE           461
+#define HCLK_RKVDEC_PRE                462
+#define HCLK_VIO_PRE           463
+#define HCLK_VPU               464
+#define HCLK_RKVDEC            465
+#define HCLK_VIO               466
+#define HCLK_RGA               467
+#define HCLK_IEP               468
+#define HCLK_VIO_H2P           469
+#define HCLK_HDCP_MMU          470
+#define HCLK_HOST0             471
+#define HCLK_HOST1             472
+#define HCLK_HOST2             473
+#define HCLK_OTG               474
+#define HCLK_TSP               475
+#define HCLK_M_CRYPTO          476
+#define HCLK_S_CRYPTO          477
 #define HCLK_PERI              478
 
 #define CLK_NR_CLKS            (HCLK_PERI + 1)
index 220a60f20d3ba5f272bce1d3b56db644e069038a..22cb1dfa9004ac1ef00ab9aa59ee92c7ed4f8af2 100644 (file)
 #define SCLK_RMII_SRC                  166
 #define SCLK_PCIEPHY_REF100M           167
 #define SCLK_DDRC                      168
+#define SCLK_TESTCLKOUT1               169
+#define SCLK_TESTCLKOUT2               170
 
 #define DCLK_VOP0                      180
 #define DCLK_VOP1                      181