]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
ARM: dts: r8a7791: Add reset control properties
authorGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 11 Sep 2017 13:09:56 +0000 (15:09 +0200)
committerSimon Horman <horms+renesas@verge.net.au>
Tue, 19 Sep 2017 09:20:12 +0000 (11:20 +0200)
Add properties to describe the reset topology for on-SoC devices:
  - Add the "#reset-cells" property to the CPG/MSSR device node,
  - Add resets and reset-names properties to the various device nodes.

This allows to reset SoC devices using the Reset Controller API.

Note that resets usually match the corresponding module clocks.
Exceptions are:
  - The audio module has resets for the Serial Sound Interfaces only,
  - The display module has only a single reset for all DU channels, but
    adding reset properties for the display is postponed.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/boot/dts/r8a7791.dtsi

index e984b106dd1acd7bcd12c5d1c79931ab776258be..5a8a158470765d89f9ccb68a8c02b1d1306d3075 100644 (file)
                clocks = <&cpg CPG_MOD 408>;
                clock-names = "clk";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 408>;
        };
 
        gpio0: gpio@e6050000 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 912>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 912>;
        };
 
        gpio1: gpio@e6051000 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 911>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 911>;
        };
 
        gpio2: gpio@e6052000 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 910>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 910>;
        };
 
        gpio3: gpio@e6053000 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 909>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 909>;
        };
 
        gpio4: gpio@e6054000 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 908>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 908>;
        };
 
        gpio5: gpio@e6055000 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 907>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 907>;
        };
 
        gpio6: gpio@e6055400 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 905>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 905>;
        };
 
        gpio7: gpio@e6055800 {
                interrupt-controller;
                clocks = <&cpg CPG_MOD 904>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 904>;
        };
 
        thermal: thermal@e61f0000 {
                interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 522>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 522>;
                #thermal-sensor-cells = <0>;
        };
 
                clocks = <&cpg CPG_MOD 124>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 124>;
 
                renesas,channels-mask = <0x60>;
 
                clocks = <&cpg CPG_MOD 329>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 329>;
 
                renesas,channels-mask = <0xff>;
 
                             <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 407>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 407>;
        };
 
        dmac0: dma-controller@e6700000 {
                clocks = <&cpg CPG_MOD 219>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 219>;
                #dma-cells = <1>;
                dma-channels = <15>;
        };
                clocks = <&cpg CPG_MOD 218>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 218>;
                #dma-cells = <1>;
                dma-channels = <15>;
        };
                clocks = <&cpg CPG_MOD 502>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 502>;
                #dma-cells = <1>;
                dma-channels = <13>;
        };
                clocks = <&cpg CPG_MOD 501>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 501>;
                #dma-cells = <1>;
                dma-channels = <13>;
        };
                interrupt-names = "ch0", "ch1";
                clocks = <&cpg CPG_MOD 330>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 330>;
                #dma-cells = <1>;
                dma-channels = <2>;
        };
                interrupt-names = "ch0", "ch1";
                clocks = <&cpg CPG_MOD 331>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 331>;
                #dma-cells = <1>;
                dma-channels = <2>;
        };
                interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 931>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 931>;
                i2c-scl-internal-delay-ns = <6>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 930>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 930>;
                i2c-scl-internal-delay-ns = <6>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 929>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 929>;
                i2c-scl-internal-delay-ns = <6>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 928>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 928>;
                i2c-scl-internal-delay-ns = <6>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 927>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 927>;
                i2c-scl-internal-delay-ns = <6>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 925>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 925>;
                i2c-scl-internal-delay-ns = <110>;
                status = "disabled";
        };
                       <&dmac1 0x77>, <&dmac1 0x78>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 926>;
                status = "disabled";
        };
 
                       <&dmac1 0x61>, <&dmac1 0x62>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 318>;
                status = "disabled";
        };
 
                       <&dmac1 0x65>, <&dmac1 0x66>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 323>;
                status = "disabled";
        };
 
                       <&dmac1 0xd1>, <&dmac1 0xd2>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 315>;
                reg-io-width = <4>;
                status = "disabled";
                max-frequency = <97500000>;
                dma-names = "tx", "rx", "tx", "rx";
                max-frequency = <195000000>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 314>;
                status = "disabled";
        };
 
                dma-names = "tx", "rx", "tx", "rx";
                max-frequency = <97500000>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 312>;
                status = "disabled";
        };
 
                dma-names = "tx", "rx", "tx", "rx";
                max-frequency = <97500000>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 311>;
                status = "disabled";
        };
 
                       <&dmac1 0x21>, <&dmac1 0x22>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 204>;
                status = "disabled";
        };
 
                       <&dmac1 0x25>, <&dmac1 0x26>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 203>;
                status = "disabled";
        };
 
                       <&dmac1 0x27>, <&dmac1 0x28>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 202>;
                status = "disabled";
        };
 
                       <&dmac1 0x1b>, <&dmac1 0x1c>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 1106>;
                status = "disabled";
        };
 
                       <&dmac1 0x1f>, <&dmac1 0x20>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 1107>;
                status = "disabled";
        };
 
                       <&dmac1 0x23>, <&dmac1 0x24>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 1108>;
                status = "disabled";
        };
 
                       <&dmac1 0x3d>, <&dmac1 0x3e>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 206>;
                status = "disabled";
        };
 
                       <&dmac1 0x19>, <&dmac1 0x1a>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 207>;
                status = "disabled";
        };
 
                       <&dmac1 0x1d>, <&dmac1 0x1e>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 216>;
                status = "disabled";
        };
 
                       <&dmac1 0x29>, <&dmac1 0x2a>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 721>;
                status = "disabled";
        };
 
                       <&dmac1 0x2d>, <&dmac1 0x2e>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 720>;
                status = "disabled";
        };
 
                clocks = <&cpg CPG_MOD 901>;
                clock-names = "fck";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 901>;
                status = "disabled";
        };
 
                       <&dmac1 0x2b>, <&dmac1 0x2c>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 719>;
                status = "disabled";
        };
 
                       <&dmac1 0x2f>, <&dmac1 0x30>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 718>;
                status = "disabled";
        };
 
                       <&dmac1 0xfb>, <&dmac1 0xfc>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 715>;
                status = "disabled";
        };
 
                       <&dmac1 0xfd>, <&dmac1 0xfe>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 714>;
                status = "disabled";
        };
 
                       <&dmac1 0x39>, <&dmac1 0x3a>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 717>;
                status = "disabled";
        };
 
                       <&dmac1 0x4d>, <&dmac1 0x4e>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 716>;
                status = "disabled";
        };
 
                       <&dmac1 0x3b>, <&dmac1 0x3c>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 713>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 813>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 813>;
                phy-mode = "rmii";
                #address-cells = <1>;
                #size-cells = <0>;
                interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 812>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 812>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 815>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 815>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 814>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 814>;
                status = "disabled";
        };
 
                       <&usb_dmac1 0>, <&usb_dmac1 1>;
                dma-names = "ch0", "ch1", "ch2", "ch3";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 704>;
                renesas,buswait = <4>;
                phys = <&usb0 1>;
                phy-names = "usb";
                clocks = <&cpg CPG_MOD 704>;
                clock-names = "usbhs";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 704>;
                status = "disabled";
 
                usb0: usb-channel@0 {
                interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 811>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 811>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 810>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 810>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 809>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 809>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 131>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 131>;
        };
 
        vsp1@fe930000 {
                interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 128>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 128>;
        };
 
        vsp1@fe938000 {
                interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 127>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 127>;
        };
 
        du: display@feb00000 {
                         <&can_clk>;
                clock-names = "clkp1", "clkp2", "can_clk";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 916>;
                status = "disabled";
        };
 
                         <&can_clk>;
                clock-names = "clkp1", "clkp2", "can_clk";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 915>;
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 106>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 106>;
        };
 
        /* External root clock */
                clock-names = "extal", "usb_extal";
                #clock-cells = <2>;
                #power-domain-cells = <0>;
+               #reset-cells = <1>;
        };
 
        rst: reset-controller@e6160000 {
                       <&dmac1 0x17>, <&dmac1 0x18>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 917>;
                num-cs = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
                       <&dmac1 0x51>, <&dmac1 0x52>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 0>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                       <&dmac1 0x55>, <&dmac1 0x56>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 208>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                       <&dmac1 0x41>, <&dmac1 0x42>;
                dma-names = "tx", "rx", "tx", "rx";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 205>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 328>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 328>;
                phys = <&usb2 1>;
                phy-names = "usb";
                status = "disabled";
                interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 703>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 703>;
                status = "disabled";
 
                bus-range = <0 0>;
                interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cpg CPG_MOD 703>;
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 703>;
                status = "disabled";
 
                bus-range = <1 1>;
                clocks = <&cpg CPG_MOD 319>, <&pcie_bus_clk>;
                clock-names = "pcie", "pcie_bus";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 319>;
                status = "disabled";
        };
 
                                "dvc.0", "dvc.1",
                                "clk_a", "clk_b", "clk_c", "clk_i";
                power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+               resets = <&cpg 1005>,
+                        <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
+                        <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
+                        <&cpg 1014>, <&cpg 1015>;
+               reset-names = "ssi-all",
+                             "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
+                             "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0";
 
                status = "disabled";