cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hi3670.dtsi (21031B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * dts file for Hisilicon Hi3670 SoC
      4 *
      5 * Copyright (C) 2016, HiSilicon Ltd.
      6 * Copyright (C) 2018, Linaro Ltd.
      7 */
      8
      9#include <dt-bindings/interrupt-controller/arm-gic.h>
     10#include <dt-bindings/clock/hi3670-clock.h>
     11
     12/ {
     13	compatible = "hisilicon,hi3670";
     14	interrupt-parent = <&gic>;
     15	#address-cells = <2>;
     16	#size-cells = <2>;
     17
     18	psci {
     19		compatible = "arm,psci-0.2";
     20		method = "smc";
     21	};
     22
     23	cpus {
     24		#address-cells = <2>;
     25		#size-cells = <0>;
     26
     27		cpu-map {
     28			cluster0 {
     29				core0 {
     30					cpu = <&cpu0>;
     31				};
     32				core1 {
     33					cpu = <&cpu1>;
     34				};
     35				core2 {
     36					cpu = <&cpu2>;
     37				};
     38				core3 {
     39					cpu = <&cpu3>;
     40				};
     41			};
     42			cluster1 {
     43				core0 {
     44					cpu = <&cpu4>;
     45				};
     46				core1 {
     47					cpu = <&cpu5>;
     48				};
     49				core2 {
     50					cpu = <&cpu6>;
     51				};
     52				core3 {
     53					cpu = <&cpu7>;
     54				};
     55			};
     56		};
     57
     58		cpu0: cpu@0 {
     59			compatible = "arm,cortex-a53";
     60			device_type = "cpu";
     61			reg = <0x0 0x0>;
     62			enable-method = "psci";
     63		};
     64
     65		cpu1: cpu@1 {
     66			compatible = "arm,cortex-a53";
     67			device_type = "cpu";
     68			reg = <0x0 0x1>;
     69			enable-method = "psci";
     70		};
     71
     72		cpu2: cpu@2 {
     73			compatible = "arm,cortex-a53";
     74			device_type = "cpu";
     75			reg = <0x0 0x2>;
     76			enable-method = "psci";
     77		};
     78
     79		cpu3: cpu@3 {
     80			compatible = "arm,cortex-a53";
     81			device_type = "cpu";
     82			reg = <0x0 0x3>;
     83			enable-method = "psci";
     84		};
     85
     86		cpu4: cpu@100 {
     87			compatible = "arm,cortex-a73";
     88			device_type = "cpu";
     89			reg = <0x0 0x100>;
     90			enable-method = "psci";
     91		};
     92
     93		cpu5: cpu@101 {
     94			compatible = "arm,cortex-a73";
     95			device_type = "cpu";
     96			reg = <0x0 0x101>;
     97			enable-method = "psci";
     98		};
     99
    100		cpu6: cpu@102 {
    101			compatible = "arm,cortex-a73";
    102			device_type = "cpu";
    103			reg = <0x0 0x102>;
    104			enable-method = "psci";
    105		};
    106
    107		cpu7: cpu@103 {
    108			compatible = "arm,cortex-a73";
    109			device_type = "cpu";
    110			reg = <0x0 0x103>;
    111			enable-method = "psci";
    112		};
    113	};
    114
    115	gic: interrupt-controller@e82b0000 {
    116		compatible = "arm,gic-400";
    117		reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
    118		      <0x0 0xe82b2000 0 0x2000>, /* GICC */
    119		      <0x0 0xe82b4000 0 0x2000>, /* GICH */
    120		      <0x0 0xe82b6000 0 0x2000>; /* GICV */
    121		#interrupt-cells = <3>;
    122		#address-cells = <0>;
    123		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
    124					 IRQ_TYPE_LEVEL_HIGH)>;
    125		interrupt-controller;
    126	};
    127
    128	timer {
    129		compatible = "arm,armv8-timer";
    130		interrupt-parent = <&gic>;
    131		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
    132					  IRQ_TYPE_LEVEL_LOW)>,
    133			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
    134					  IRQ_TYPE_LEVEL_LOW)>,
    135			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
    136					  IRQ_TYPE_LEVEL_LOW)>,
    137			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
    138					  IRQ_TYPE_LEVEL_LOW)>;
    139		clock-frequency = <1920000>;
    140	};
    141
    142	soc {
    143		compatible = "simple-bus";
    144		#address-cells = <2>;
    145		#size-cells = <2>;
    146		ranges;
    147
    148		crg_ctrl: crg_ctrl@fff35000 {
    149			compatible = "hisilicon,hi3670-crgctrl", "syscon";
    150			reg = <0x0 0xfff35000 0x0 0x1000>;
    151			#clock-cells = <1>;
    152		};
    153
    154		crg_rst: crg_rst_controller {
    155			compatible = "hisilicon,hi3670-reset",
    156				     "hisilicon,hi3660-reset";
    157			#reset-cells = <2>;
    158			hisi,rst-syscon = <&crg_ctrl>;
    159		};
    160
    161		pctrl: pctrl@e8a09000 {
    162			compatible = "hisilicon,hi3670-pctrl", "syscon";
    163			reg = <0x0 0xe8a09000 0x0 0x1000>;
    164			#clock-cells = <1>;
    165		};
    166
    167		pmuctrl: crg_ctrl@fff34000 {
    168			compatible = "hisilicon,hi3670-pmuctrl", "syscon";
    169			reg = <0x0 0xfff34000 0x0 0x1000>;
    170			#clock-cells = <1>;
    171		};
    172
    173		sctrl: sctrl@fff0a000 {
    174			compatible = "hisilicon,hi3670-sctrl", "syscon";
    175			reg = <0x0 0xfff0a000 0x0 0x1000>;
    176			#clock-cells = <1>;
    177		};
    178
    179		iomcu: iomcu@ffd7e000 {
    180			compatible = "hisilicon,hi3670-iomcu", "syscon";
    181			reg = <0x0 0xffd7e000 0x0 0x1000>;
    182			#clock-cells = <1>;
    183		};
    184
    185		media1_crg: media1_crgctrl@e87ff000 {
    186			compatible = "hisilicon,hi3670-media1-crg", "syscon";
    187			reg = <0x0 0xe87ff000 0x0 0x1000>;
    188			#clock-cells = <1>;
    189		};
    190
    191		media2_crg: media2_crgctrl@e8900000 {
    192			compatible = "hisilicon,hi3670-media2-crg","syscon";
    193			reg = <0x0 0xe8900000 0x0 0x1000>;
    194			#clock-cells = <1>;
    195		};
    196
    197		iomcu_rst: reset {
    198			compatible = "hisilicon,hi3660-reset";
    199			hisi,rst-syscon = <&iomcu>;
    200			#reset-cells = <2>;
    201		};
    202
    203		uart0: serial@fdf02000 {
    204			compatible = "arm,pl011", "arm,primecell";
    205			reg = <0x0 0xfdf02000 0x0 0x1000>;
    206			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
    207			clocks = <&crg_ctrl HI3670_CLK_GATE_UART0>,
    208				 <&crg_ctrl HI3670_PCLK>;
    209			clock-names = "uartclk", "apb_pclk";
    210			pinctrl-names = "default";
    211			pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
    212			status = "disabled";
    213		};
    214
    215		uart1: serial@fdf00000 {
    216			compatible = "arm,pl011", "arm,primecell";
    217			reg = <0x0 0xfdf00000 0x0 0x1000>;
    218			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
    219			clocks = <&crg_ctrl HI3670_CLK_GATE_UART1>,
    220				 <&crg_ctrl HI3670_PCLK>;
    221			clock-names = "uartclk", "apb_pclk";
    222			status = "disabled";
    223		};
    224
    225		uart2: serial@fdf03000 {
    226			compatible = "arm,pl011", "arm,primecell";
    227			reg = <0x0 0xfdf03000 0x0 0x1000>;
    228			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
    229			clocks = <&crg_ctrl HI3670_CLK_GATE_UART2>,
    230				 <&crg_ctrl HI3670_PCLK>;
    231			clock-names = "uartclk", "apb_pclk";
    232			pinctrl-names = "default";
    233			pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
    234			status = "disabled";
    235		};
    236
    237		uart3: serial@ffd74000 {
    238			compatible = "arm,pl011", "arm,primecell";
    239			reg = <0x0 0xffd74000 0x0 0x1000>;
    240			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
    241			clocks = <&crg_ctrl HI3670_CLK_GATE_UART3>,
    242				 <&crg_ctrl HI3670_PCLK>;
    243			clock-names = "uartclk", "apb_pclk";
    244			pinctrl-names = "default";
    245			pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
    246			status = "disabled";
    247		};
    248
    249		uart4: serial@fdf01000 {
    250			compatible = "arm,pl011", "arm,primecell";
    251			reg = <0x0 0xfdf01000 0x0 0x1000>;
    252			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
    253			clocks = <&crg_ctrl HI3670_CLK_GATE_UART4>,
    254				 <&crg_ctrl HI3670_PCLK>;
    255			clock-names = "uartclk", "apb_pclk";
    256			pinctrl-names = "default";
    257			pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
    258			status = "disabled";
    259		};
    260
    261		uart5: serial@fdf05000 {
    262			compatible = "arm,pl011", "arm,primecell";
    263			reg = <0x0 0xfdf05000 0x0 0x1000>;
    264			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
    265			clocks = <&crg_ctrl HI3670_CLK_GATE_UART5>,
    266				 <&crg_ctrl HI3670_PCLK>;
    267			clock-names = "uartclk", "apb_pclk";
    268			status = "disabled";
    269		};
    270
    271		uart6: serial@fff32000 {
    272			compatible = "arm,pl011", "arm,primecell";
    273			reg = <0x0 0xfff32000 0x0 0x1000>;
    274			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
    275			clocks = <&crg_ctrl HI3670_CLK_UART6>,
    276				 <&crg_ctrl HI3670_PCLK>;
    277			clock-names = "uartclk", "apb_pclk";
    278			pinctrl-names = "default";
    279			pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
    280			status = "disabled";
    281		};
    282
    283		gpio0: gpio@e8a0b000 {
    284			compatible = "arm,pl061", "arm,primecell";
    285			reg = <0x0 0xe8a0b000 0x0 0x1000>;
    286			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
    287			gpio-controller;
    288			#gpio-cells = <2>;
    289			gpio-ranges = <&pmx0 1 0 1 &pmx0 3 1 5>;
    290			interrupt-controller;
    291			#interrupt-cells = <2>;
    292			clocks = <&crg_ctrl HI3670_PCLK_GPIO0>;
    293			clock-names = "apb_pclk";
    294		};
    295
    296		gpio1: gpio@e8a0c000 {
    297			compatible = "arm,pl061", "arm,primecell";
    298			reg = <0x0 0xe8a0c000 0x0 0x1000>;
    299			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
    300			gpio-controller;
    301			#gpio-cells = <2>;
    302			interrupt-controller;
    303			#interrupt-cells = <2>;
    304			clocks = <&crg_ctrl HI3670_PCLK_GPIO1>;
    305			clock-names = "apb_pclk";
    306		};
    307
    308		gpio2: gpio@e8a0d000 {
    309			compatible = "arm,pl061", "arm,primecell";
    310			reg = <0x0 0xe8a0d000 0x0 0x1000>;
    311			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
    312			gpio-controller;
    313			#gpio-cells = <2>;
    314			gpio-ranges = <&pmx0 1 6 7>;
    315			interrupt-controller;
    316			#interrupt-cells = <2>;
    317			clocks = <&crg_ctrl HI3670_PCLK_GPIO2>;
    318			clock-names = "apb_pclk";
    319		};
    320
    321		gpio3: gpio@e8a0e000 {
    322			compatible = "arm,pl061", "arm,primecell";
    323			reg = <0x0 0xe8a0e000 0x0 0x1000>;
    324			interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
    325			gpio-controller;
    326			#gpio-cells = <2>;
    327			gpio-ranges =  <&pmx0 0 13 4 &pmx0 7 17 1>;
    328			interrupt-controller;
    329			#interrupt-cells = <2>;
    330			clocks = <&crg_ctrl HI3670_PCLK_GPIO3>;
    331			clock-names = "apb_pclk";
    332		};
    333
    334		gpio4: gpio@e8a0f000 {
    335			compatible = "arm,pl061", "arm,primecell";
    336			reg = <0x0 0xe8a0f000 0x0 0x1000>;
    337			interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
    338			gpio-controller;
    339			#gpio-cells = <2>;
    340			gpio-ranges = <&pmx0 0 18 8>;
    341			interrupt-controller;
    342			#interrupt-cells = <2>;
    343			clocks = <&crg_ctrl HI3670_PCLK_GPIO4>;
    344			clock-names = "apb_pclk";
    345		};
    346
    347		gpio5: gpio@e8a10000 {
    348			compatible = "arm,pl061", "arm,primecell";
    349			reg = <0x0 0xe8a10000 0x0 0x1000>;
    350			interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
    351			gpio-controller;
    352			#gpio-cells = <2>;
    353			gpio-ranges = <&pmx0 0 26 8>;
    354			interrupt-controller;
    355			#interrupt-cells = <2>;
    356			clocks = <&crg_ctrl HI3670_PCLK_GPIO5>;
    357			clock-names = "apb_pclk";
    358		};
    359
    360		gpio6: gpio@e8a11000 {
    361			compatible = "arm,pl061", "arm,primecell";
    362			reg = <0x0 0xe8a11000 0x0 0x1000>;
    363			interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
    364			gpio-controller;
    365			#gpio-cells = <2>;
    366			gpio-ranges = <&pmx0 1 34 7>;
    367			interrupt-controller;
    368			#interrupt-cells = <2>;
    369			clocks = <&crg_ctrl HI3670_PCLK_GPIO6>;
    370			clock-names = "apb_pclk";
    371		};
    372
    373		gpio7: gpio@e8a12000 {
    374			compatible = "arm,pl061", "arm,primecell";
    375			reg = <0x0 0xe8a12000 0x0 0x1000>;
    376			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
    377			gpio-controller;
    378			#gpio-cells = <2>;
    379			gpio-ranges = <&pmx0 0 41 8>;
    380			interrupt-controller;
    381			#interrupt-cells = <2>;
    382			clocks = <&crg_ctrl HI3670_PCLK_GPIO7>;
    383			clock-names = "apb_pclk";
    384		};
    385
    386		gpio8: gpio@e8a13000 {
    387			compatible = "arm,pl061", "arm,primecell";
    388			reg = <0x0 0xe8a13000 0x0 0x1000>;
    389			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
    390			gpio-controller;
    391			#gpio-cells = <2>;
    392			gpio-ranges = <&pmx0 0 49 8>;
    393			interrupt-controller;
    394			#interrupt-cells = <2>;
    395			clocks = <&crg_ctrl HI3670_PCLK_GPIO8>;
    396			clock-names = "apb_pclk";
    397		};
    398
    399		gpio9: gpio@e8a14000 {
    400			compatible = "arm,pl061", "arm,primecell";
    401			reg = <0x0 0xe8a14000 0x0 0x1000>;
    402			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
    403			gpio-controller;
    404			#gpio-cells = <2>;
    405			gpio-ranges = <&pmx0 0 57 8>;
    406			interrupt-controller;
    407			#interrupt-cells = <2>;
    408			clocks = <&crg_ctrl HI3670_PCLK_GPIO9>;
    409			clock-names = "apb_pclk";
    410		};
    411
    412		gpio10: gpio@e8a15000 {
    413			compatible = "arm,pl061", "arm,primecell";
    414			reg = <0x0 0xe8a15000 0x0 0x1000>;
    415			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
    416			gpio-controller;
    417			#gpio-cells = <2>;
    418			gpio-ranges = <&pmx0 0 65 8>;
    419			interrupt-controller;
    420			#interrupt-cells = <2>;
    421			clocks = <&crg_ctrl HI3670_PCLK_GPIO10>;
    422			clock-names = "apb_pclk";
    423		};
    424
    425		gpio11: gpio@e8a16000 {
    426			compatible = "arm,pl061", "arm,primecell";
    427			reg = <0x0 0xe8a16000 0x0 0x1000>;
    428			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
    429			gpio-controller;
    430			#gpio-cells = <2>;
    431			gpio-ranges = <&pmx0 0 73 8>;
    432			interrupt-controller;
    433			#interrupt-cells = <2>;
    434			clocks = <&crg_ctrl HI3670_PCLK_GPIO11>;
    435			clock-names = "apb_pclk";
    436		};
    437
    438		gpio12: gpio@e8a17000 {
    439			compatible = "arm,pl061", "arm,primecell";
    440			reg = <0x0 0xe8a17000 0x0 0x1000>;
    441			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
    442			gpio-controller;
    443			#gpio-cells = <2>;
    444			gpio-ranges = <&pmx0 0 81 1>;
    445			interrupt-controller;
    446			#interrupt-cells = <2>;
    447			clocks = <&crg_ctrl HI3670_PCLK_GPIO12>;
    448			clock-names = "apb_pclk";
    449		};
    450
    451		gpio13: gpio@e8a18000 {
    452			compatible = "arm,pl061", "arm,primecell";
    453			reg = <0x0 0xe8a18000 0x0 0x1000>;
    454			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
    455			gpio-controller;
    456			#gpio-cells = <2>;
    457			interrupt-controller;
    458			#interrupt-cells = <2>;
    459			clocks = <&crg_ctrl HI3670_PCLK_GPIO13>;
    460			clock-names = "apb_pclk";
    461		};
    462
    463		gpio14: gpio@e8a19000 {
    464			compatible = "arm,pl061", "arm,primecell";
    465			reg = <0x0 0xe8a19000 0x0 0x1000>;
    466			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
    467			gpio-controller;
    468			#gpio-cells = <2>;
    469			interrupt-controller;
    470			#interrupt-cells = <2>;
    471			clocks = <&crg_ctrl HI3670_PCLK_GPIO14>;
    472			clock-names = "apb_pclk";
    473		};
    474
    475		gpio15: gpio@e8a1a000 {
    476			compatible = "arm,pl061", "arm,primecell";
    477			reg = <0x0 0xe8a1a000 0x0 0x1000>;
    478			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
    479			gpio-controller;
    480			#gpio-cells = <2>;
    481			interrupt-controller;
    482			#interrupt-cells = <2>;
    483			clocks = <&crg_ctrl HI3670_PCLK_GPIO15>;
    484			clock-names = "apb_pclk";
    485		};
    486
    487		gpio16: gpio@e8a1b000 {
    488			compatible = "arm,pl061", "arm,primecell";
    489			reg = <0x0 0xe8a1b000 0x0 0x1000>;
    490			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
    491			gpio-controller;
    492			#gpio-cells = <2>;
    493			gpio-ranges = <&pmx5 0 0 8>;
    494			interrupt-controller;
    495			#interrupt-cells = <2>;
    496			clocks = <&crg_ctrl HI3670_PCLK_GPIO16>;
    497			clock-names = "apb_pclk";
    498		};
    499
    500		gpio17: gpio@e8a1c000 {
    501			compatible = "arm,pl061", "arm,primecell";
    502			reg = <0x0 0xe8a1c000 0x0 0x1000>;
    503			interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
    504			gpio-controller;
    505			#gpio-cells = <2>;
    506			gpio-ranges = <&pmx5 0 8 2>;
    507			interrupt-controller;
    508			#interrupt-cells = <2>;
    509			clocks = <&crg_ctrl HI3670_PCLK_GPIO17>;
    510			clock-names = "apb_pclk";
    511		};
    512
    513		gpio18: gpio@fff28000 {
    514			compatible = "arm,pl061", "arm,primecell";
    515			reg = <0x0 0xfff28000 0x0 0x1000>;
    516			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
    517			gpio-controller;
    518			#gpio-cells = <2>;
    519			gpio-ranges = <&pmx1 4 42 4>;
    520			interrupt-controller;
    521			#interrupt-cells = <2>;
    522			clocks = <&sctrl HI3670_PCLK_GPIO18>;
    523			clock-names = "apb_pclk";
    524		};
    525
    526		gpio19: gpio@fff29000 {
    527			compatible = "arm,pl061", "arm,primecell";
    528			reg = <0x0 0xfff29000 0x0 0x1000>;
    529			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
    530			gpio-controller;
    531			#gpio-cells = <2>;
    532			gpio-ranges = <&pmx1 0 61 2>;
    533			interrupt-controller;
    534			#interrupt-cells = <2>;
    535			clocks = <&sctrl HI3670_PCLK_GPIO19>;
    536			clock-names = "apb_pclk";
    537		};
    538
    539		gpio20: gpio@e8a1f000 {
    540			compatible = "arm,pl061", "arm,primecell";
    541			reg = <0x0 0xe8a1f000 0x0 0x1000>;
    542			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
    543			gpio-controller;
    544			#gpio-cells = <2>;
    545			gpio-ranges = <&pmx7 0 0 8>;
    546			interrupt-controller;
    547			#interrupt-cells = <2>;
    548			clocks = <&crg_ctrl HI3670_PCLK_GPIO20>;
    549			clock-names = "apb_pclk";
    550		};
    551
    552		gpio21: gpio@e8a20000 {
    553			compatible = "arm,pl061", "arm,primecell";
    554			reg = <0x0 0xe8a20000 0x0 0x1000>;
    555			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
    556			gpio-controller;
    557			#gpio-cells = <2>;
    558			gpio-ranges = <&pmx7 0 8 4>;
    559			interrupt-controller;
    560			#interrupt-cells = <2>;
    561			clocks = <&crg_ctrl HI3670_PCLK_GPIO21>;
    562			clock-names = "apb_pclk";
    563		};
    564
    565		gpio22: gpio@fff0b000 {
    566			compatible = "arm,pl061", "arm,primecell";
    567			reg = <0x0 0xfff0b000 0x0 0x1000>;
    568			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
    569			gpio-controller;
    570			#gpio-cells = <2>;
    571			/* GPIO176 */
    572			gpio-ranges = <&pmx1 2 0 6>;
    573			interrupt-controller;
    574			#interrupt-cells = <2>;
    575			clocks = <&sctrl HI3670_PCLK_AO_GPIO0>;
    576			clock-names = "apb_pclk";
    577		};
    578
    579		gpio23: gpio@fff0c000 {
    580			compatible = "arm,pl061", "arm,primecell";
    581			reg = <0x0 0xfff0c000 0x0 0x1000>;
    582			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
    583			gpio-controller;
    584			#gpio-cells = <2>;
    585			/* GPIO184 */
    586			gpio-ranges = <&pmx1 0 6 8>;
    587			interrupt-controller;
    588			#interrupt-cells = <2>;
    589			clocks = <&sctrl HI3670_PCLK_AO_GPIO1>;
    590			clock-names = "apb_pclk";
    591		};
    592
    593		gpio24: gpio@fff0d000 {
    594			compatible = "arm,pl061", "arm,primecell";
    595			reg = <0x0 0xfff0d000 0x0 0x1000>;
    596			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
    597			gpio-controller;
    598			#gpio-cells = <2>;
    599			/* GPIO192 */
    600			gpio-ranges = <&pmx1 0 14 8>;
    601			interrupt-controller;
    602			#interrupt-cells = <2>;
    603			clocks = <&sctrl HI3670_PCLK_AO_GPIO2>;
    604			clock-names = "apb_pclk";
    605		};
    606
    607		gpio25: gpio@fff0e000 {
    608			compatible = "arm,pl061", "arm,primecell";
    609			reg = <0x0 0xfff0e000 0x0 0x1000>;
    610			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
    611			gpio-controller;
    612			#gpio-cells = <2>;
    613			/* GPIO200 */
    614			gpio-ranges = <&pmx1 0 22 8>;
    615			interrupt-controller;
    616			#interrupt-cells = <2>;
    617			clocks = <&sctrl HI3670_PCLK_AO_GPIO3>;
    618			clock-names = "apb_pclk";
    619		};
    620
    621		gpio26: gpio@fff0f000 {
    622			compatible = "arm,pl061", "arm,primecell";
    623			reg = <0x0 0xfff0f000 0x0 0x1000>;
    624			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
    625			gpio-controller;
    626			#gpio-cells = <2>;
    627			/* GPIO208 */
    628			gpio-ranges = <&pmx1 0 30 1>;
    629			interrupt-controller;
    630			#interrupt-cells = <2>;
    631			clocks = <&sctrl HI3670_PCLK_AO_GPIO4>;
    632			clock-names = "apb_pclk";
    633		};
    634
    635		gpio27: gpio@fff10000 {
    636			compatible = "arm,pl061", "arm,primecell";
    637			reg = <0x0 0xfff10000 0x0 0x1000>;
    638			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
    639			gpio-controller;
    640			#gpio-cells = <2>;
    641			/* GPIO216 */
    642			gpio-ranges = <&pmx1 4 31 4>;
    643			interrupt-controller;
    644			#interrupt-cells = <2>;
    645			clocks = <&sctrl HI3670_PCLK_AO_GPIO5>;
    646			clock-names = "apb_pclk";
    647		};
    648
    649		gpio28: gpio@fff1d000 {
    650			compatible = "arm,pl061", "arm,primecell";
    651			reg = <0x0 0xfff1d000 0x0 0x1000>;
    652			interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
    653			gpio-controller;
    654			#gpio-cells = <2>;
    655			gpio-ranges = <&pmx1 1 35 7>;
    656			interrupt-controller;
    657			#interrupt-cells = <2>;
    658			clocks = <&sctrl HI3670_PCLK_AO_GPIO6>;
    659			clock-names = "apb_pclk";
    660		};
    661
    662		/* UFS */
    663		ufs: ufs@ff3c0000 {
    664			compatible = "hisilicon,hi3670-ufs", "jedec,ufs-2.1";
    665			/* 0: HCI standard */
    666			/* 1: UFS SYS CTRL */
    667			reg = <0x0 0xff3c0000 0x0 0x1000>,
    668				<0x0 0xff3e0000 0x0 0x1000>;
    669			interrupt-parent = <&gic>;
    670			interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
    671			clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
    672				 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
    673			clock-names = "ref_clk", "phy_clk";
    674			freq-table-hz = <0 0>,
    675					<0 0>;
    676			/* offset: 0x84; bit: 12 */
    677			resets = <&crg_rst 0x84 12>;
    678			reset-names = "rst";
    679		};
    680
    681		/* SD */
    682		dwmmc1: dwmmc1@ff37f000 {
    683			compatible = "hisilicon,hi3670-dw-mshc",
    684				     "hisilicon,hi3660-dw-mshc";
    685			reg = <0x0 0xff37f000 0x0 0x1000>;
    686			#address-cells = <1>;
    687			#size-cells = <0>;
    688			interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
    689			clocks = <&crg_ctrl HI3670_CLK_GATE_SD>,
    690				<&crg_ctrl HI3670_HCLK_GATE_SD>;
    691			clock-names = "ciu", "biu";
    692			clock-frequency = <3200000>;
    693			resets = <&crg_rst 0x94 18>;
    694			reset-names = "reset";
    695			hisilicon,peripheral-syscon = <&sctrl>;
    696			card-detect-delay = <200>;
    697			status = "disabled";
    698		};
    699
    700		/* SDIO */
    701		dwmmc2: dwmmc2@fc183000 {
    702			compatible = "hisilicon,hi3670-dw-mshc",
    703				     "hisilicon,hi3660-dw-mshc";
    704			reg = <0x0 0xfc183000 0x0 0x1000>;
    705			#address-cells = <1>;
    706			#size-cells = <0>;
    707			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
    708			clocks = <&crg_ctrl HI3670_CLK_GATE_SDIO>,
    709				<&crg_ctrl HI3670_HCLK_GATE_SDIO>;
    710			clock-names = "ciu", "biu";
    711			clock-frequency = <3200000>;
    712			resets = <&crg_rst 0x94 20>;
    713			reset-names = "reset";
    714			card-detect-delay = <200>;
    715			status = "disabled";
    716		};
    717
    718		/* I2C */
    719		i2c0: i2c@ffd71000 {
    720			compatible = "snps,designware-i2c";
    721			reg = <0x0 0xffd71000 0x0 0x1000>;
    722			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
    723			#address-cells = <1>;
    724			#size-cells = <0>;
    725			clock-frequency = <400000>;
    726			clocks = <&iomcu HI3670_CLK_GATE_I2C0>;
    727			resets = <&iomcu_rst 0x20 3>;
    728			pinctrl-names = "default";
    729			pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
    730			status = "disabled";
    731		};
    732
    733		i2c1: i2c@ffd72000 {
    734			compatible = "snps,designware-i2c";
    735			reg = <0x0 0xffd72000 0x0 0x1000>;
    736			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
    737			#address-cells = <1>;
    738			#size-cells = <0>;
    739			clock-frequency = <400000>;
    740			clocks = <&iomcu HI3670_CLK_GATE_I2C1>;
    741			resets = <&iomcu_rst 0x20 4>;
    742			pinctrl-names = "default";
    743			pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
    744			status = "disabled";
    745		};
    746
    747		i2c2: i2c@ffd73000 {
    748			compatible = "snps,designware-i2c";
    749			reg = <0x0 0xffd73000 0x0 0x1000>;
    750			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
    751			#address-cells = <1>;
    752			#size-cells = <0>;
    753			clock-frequency = <400000>;
    754			clocks = <&iomcu HI3670_CLK_GATE_I2C2>;
    755			resets = <&iomcu_rst 0x20 5>;
    756			pinctrl-names = "default";
    757			pinctrl-0 = <&i2c2_pmx_func &i2c2_cfg_func>;
    758			status = "disabled";
    759		};
    760
    761		i2c3: i2c@fdf0c000 {
    762			compatible = "snps,designware-i2c";
    763			reg = <0x0 0xfdf0c000 0x0 0x1000>;
    764			interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
    765			#address-cells = <1>;
    766			#size-cells = <0>;
    767			clock-frequency = <400000>;
    768			clocks = <&crg_ctrl HI3670_CLK_GATE_I2C3>;
    769			resets = <&crg_rst 0x78 7>;
    770			pinctrl-names = "default";
    771			pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
    772			status = "disabled";
    773		};
    774
    775		i2c4: i2c@fdf0d000 {
    776			compatible = "snps,designware-i2c";
    777			reg = <0x0 0xfdf0d000 0x0 0x1000>;
    778			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
    779			#address-cells = <1>;
    780			#size-cells = <0>;
    781			clock-frequency = <400000>;
    782			clocks = <&crg_ctrl HI3670_CLK_GATE_I2C4>;
    783			resets = <&crg_rst 0x78 27>;
    784			pinctrl-names = "default";
    785			pinctrl-0 = <&i2c4_pmx_func &i2c4_cfg_func>;
    786			status = "disabled";
    787		};
    788	};
    789};