aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/powerpc/booting-without-of.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/powerpc/booting-without-of.txt')
-rw-r--r--Documentation/powerpc/booting-without-of.txt666
1 files changed, 643 insertions, 23 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index 7b4e8a70882c..1d2a772506cf 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -59,12 +59,39 @@ Table of Contents
59 p) Freescale Synchronous Serial Interface 59 p) Freescale Synchronous Serial Interface
60 q) USB EHCI controllers 60 q) USB EHCI controllers
61 61
62 VII - Specifying interrupt information for devices 62 VII - Marvell Discovery mv64[345]6x System Controller chips
63 1) The /system-controller node
64 2) Child nodes of /system-controller
65 a) Marvell Discovery MDIO bus
66 b) Marvell Discovery ethernet controller
67 c) Marvell Discovery PHY nodes
68 d) Marvell Discovery SDMA nodes
69 e) Marvell Discovery BRG nodes
70 f) Marvell Discovery CUNIT nodes
71 g) Marvell Discovery MPSCROUTING nodes
72 h) Marvell Discovery MPSCINTR nodes
73 i) Marvell Discovery MPSC nodes
74 j) Marvell Discovery Watch Dog Timer nodes
75 k) Marvell Discovery I2C nodes
76 l) Marvell Discovery PIC (Programmable Interrupt Controller) nodes
77 m) Marvell Discovery MPP (Multipurpose Pins) multiplexing nodes
78 n) Marvell Discovery GPP (General Purpose Pins) nodes
79 o) Marvell Discovery PCI host bridge node
80 p) Marvell Discovery CPU Error nodes
81 q) Marvell Discovery SRAM Controller nodes
82 r) Marvell Discovery PCI Error Handler nodes
83 s) Marvell Discovery Memory Controller nodes
84
85 VIII - Specifying interrupt information for devices
63 1) interrupts property 86 1) interrupts property
64 2) interrupt-parent property 87 2) interrupt-parent property
65 3) OpenPIC Interrupt Controllers 88 3) OpenPIC Interrupt Controllers
66 4) ISA Interrupt Controllers 89 4) ISA Interrupt Controllers
67 90
91 VIII - Specifying GPIO information for devices
92 1) gpios property
93 2) gpio-controller nodes
94
68 Appendix A - Sample SOC node for MPC8540 95 Appendix A - Sample SOC node for MPC8540
69 96
70 97
@@ -1269,10 +1296,6 @@ platforms are moved over to use the flattened-device-tree model.
1269 1296
1270 Recommended properties: 1297 Recommended properties:
1271 1298
1272 - linux,network-index : This is the intended "index" of this
1273 network device. This is used by the bootwrapper to interpret
1274 MAC addresses passed by the firmware when no information other
1275 than indices is available to associate an address with a device.
1276 - phy-connection-type : a string naming the controller/PHY interface type, 1299 - phy-connection-type : a string naming the controller/PHY interface type,
1277 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii", 1300 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "sgmii",
1278 "tbi", or "rtbi". This property is only really needed if the connection 1301 "tbi", or "rtbi". This property is only really needed if the connection
@@ -1622,8 +1645,7 @@ platforms are moved over to use the flattened-device-tree model.
1622 - device_type : should be "network", "hldc", "uart", "transparent" 1645 - device_type : should be "network", "hldc", "uart", "transparent"
1623 "bisync", "atm", or "serial". 1646 "bisync", "atm", or "serial".
1624 - compatible : could be "ucc_geth" or "fsl_atm" and so on. 1647 - compatible : could be "ucc_geth" or "fsl_atm" and so on.
1625 - model : should be "UCC". 1648 - cell-index : the ucc number(1-8), corresponding to UCCx in UM.
1626 - device-id : the ucc number(1-8), corresponding to UCCx in UM.
1627 - reg : Offset and length of the register set for the device 1649 - reg : Offset and length of the register set for the device
1628 - interrupts : <a b> where a is the interrupt number and b is a 1650 - interrupts : <a b> where a is the interrupt number and b is a
1629 field that represents an encoding of the sense and level 1651 field that represents an encoding of the sense and level
@@ -1667,10 +1689,6 @@ platforms are moved over to use the flattened-device-tree model.
1667 - phy-handle : The phandle for the PHY connected to this controller. 1689 - phy-handle : The phandle for the PHY connected to this controller.
1668 1690
1669 Recommended properties: 1691 Recommended properties:
1670 - linux,network-index : This is the intended "index" of this
1671 network device. This is used by the bootwrapper to interpret
1672 MAC addresses passed by the firmware when no information other
1673 than indices is available to associate an address with a device.
1674 - phy-connection-type : a string naming the controller/PHY interface type, 1692 - phy-connection-type : a string naming the controller/PHY interface type,
1675 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal 1693 i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal
1676 Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only), 1694 Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only),
@@ -1680,8 +1698,7 @@ platforms are moved over to use the flattened-device-tree model.
1680 ucc@2000 { 1698 ucc@2000 {
1681 device_type = "network"; 1699 device_type = "network";
1682 compatible = "ucc_geth"; 1700 compatible = "ucc_geth";
1683 model = "UCC"; 1701 cell-index = <1>;
1684 device-id = <1>;
1685 reg = <2000 200>; 1702 reg = <2000 200>;
1686 interrupts = <a0 0>; 1703 interrupts = <a0 0>;
1687 interrupt-parent = <700>; 1704 interrupt-parent = <700>;
@@ -1995,7 +2012,6 @@ platforms are moved over to use the flattened-device-tree model.
1995 interrupts = <20 8>; 2012 interrupts = <20 8>;
1996 interrupt-parent = <&PIC>; 2013 interrupt-parent = <&PIC>;
1997 phy-handle = <&PHY0>; 2014 phy-handle = <&PHY0>;
1998 linux,network-index = <0>;
1999 fsl,cpm-command = <12000300>; 2015 fsl,cpm-command = <12000300>;
2000 }; 2016 };
2001 2017
@@ -2217,12 +2233,6 @@ platforms are moved over to use the flattened-device-tree model.
2217 EMAC, that is the content of the current (bogus) "phy-port" 2233 EMAC, that is the content of the current (bogus) "phy-port"
2218 property. 2234 property.
2219 2235
2220 Recommended properties:
2221 - linux,network-index : This is the intended "index" of this
2222 network device. This is used by the bootwrapper to interpret
2223 MAC addresses passed by the firmware when no information other
2224 than indices is available to associate an address with a device.
2225
2226 Optional properties: 2236 Optional properties:
2227 - phy-address : 1 cell, optional, MDIO address of the PHY. If absent, 2237 - phy-address : 1 cell, optional, MDIO address of the PHY. If absent,
2228 a search is performed. 2238 a search is performed.
@@ -2246,7 +2256,6 @@ platforms are moved over to use the flattened-device-tree model.
2246 Example: 2256 Example:
2247 2257
2248 EMAC0: ethernet@40000800 { 2258 EMAC0: ethernet@40000800 {
2249 linux,network-index = <0>;
2250 device_type = "network"; 2259 device_type = "network";
2251 compatible = "ibm,emac-440gp", "ibm,emac"; 2260 compatible = "ibm,emac-440gp", "ibm,emac";
2252 interrupt-parent = <&UIC1>; 2261 interrupt-parent = <&UIC1>;
@@ -2592,6 +2601,17 @@ platforms are moved over to use the flattened-device-tree model.
2592 differ between different families. May be 2601 differ between different families. May be
2593 'virtex2p', 'virtex4', or 'virtex5'. 2602 'virtex2p', 'virtex4', or 'virtex5'.
2594 2603
2604 vi) Xilinx Uart 16550
2605
2606 Xilinx UART 16550 devices are very similar to the NS16550 but with
2607 different register spacing and an offset from the base address.
2608
2609 Requred properties:
2610 - clock-frequency : Frequency of the clock input
2611 - reg-offset : A value of 3 is required
2612 - reg-shift : A value of 2 is required
2613
2614
2595 p) Freescale Synchronous Serial Interface 2615 p) Freescale Synchronous Serial Interface
2596 2616
2597 The SSI is a serial device that communicates with audio codecs. It can 2617 The SSI is a serial device that communicates with audio codecs. It can
@@ -2816,10 +2836,562 @@ platforms are moved over to use the flattened-device-tree model.
2816 big-endian; 2836 big-endian;
2817 }; 2837 };
2818 2838
2839 r) Freescale Display Interface Unit
2840
2841 The Freescale DIU is a LCD controller, with proper hardware, it can also
2842 drive DVI monitors.
2843
2844 Required properties:
2845 - compatible : should be "fsl-diu".
2846 - reg : should contain at least address and length of the DIU register
2847 set.
2848 - Interrupts : one DIU interrupt should be describe here.
2849
2850 Example (MPC8610HPCD)
2851 display@2c000 {
2852 compatible = "fsl,diu";
2853 reg = <0x2c000 100>;
2854 interrupts = <72 2>;
2855 interrupt-parent = <&mpic>;
2856 };
2857
2858 s) Freescale on board FPGA
2859
2860 This is the memory-mapped registers for on board FPGA.
2861
2862 Required properities:
2863 - compatible : should be "fsl,fpga-pixis".
2864 - reg : should contain the address and the lenght of the FPPGA register
2865 set.
2866
2867 Example (MPC8610HPCD)
2868 board-control@e8000000 {
2869 compatible = "fsl,fpga-pixis";
2870 reg = <0xe8000000 32>;
2871 };
2872
2873VII - Marvell Discovery mv64[345]6x System Controller chips
2874===========================================================
2875
2876The Marvell mv64[345]60 series of system controller chips contain
2877many of the peripherals needed to implement a complete computer
2878system. In this section, we define device tree nodes to describe
2879the system controller chip itself and each of the peripherals
2880which it contains. Compatible string values for each node are
2881prefixed with the string "marvell,", for Marvell Technology Group Ltd.
2882
28831) The /system-controller node
2884
2885 This node is used to represent the system-controller and must be
2886 present when the system uses a system contller chip. The top-level
2887 system-controller node contains information that is global to all
2888 devices within the system controller chip. The node name begins
2889 with "system-controller" followed by the unit address, which is
2890 the base address of the memory-mapped register set for the system
2891 controller chip.
2892
2893 Required properties:
2894
2895 - ranges : Describes the translation of system controller addresses
2896 for memory mapped registers.
2897 - clock-frequency: Contains the main clock frequency for the system
2898 controller chip.
2899 - reg : This property defines the address and size of the
2900 memory-mapped registers contained within the system controller
2901 chip. The address specified in the "reg" property should match
2902 the unit address of the system-controller node.
2903 - #address-cells : Address representation for system controller
2904 devices. This field represents the number of cells needed to
2905 represent the address of the memory-mapped registers of devices
2906 within the system controller chip.
2907 - #size-cells : Size representation for for the memory-mapped
2908 registers within the system controller chip.
2909 - #interrupt-cells : Defines the width of cells used to represent
2910 interrupts.
2911
2912 Optional properties:
2913
2914 - model : The specific model of the system controller chip. Such
2915 as, "mv64360", "mv64460", or "mv64560".
2916 - compatible : A string identifying the compatibility identifiers
2917 of the system controller chip.
2918
2919 The system-controller node contains child nodes for each system
2920 controller device that the platform uses. Nodes should not be created
2921 for devices which exist on the system controller chip but are not used
2922
2923 Example Marvell Discovery mv64360 system-controller node:
2924
2925 system-controller@f1000000 { /* Marvell Discovery mv64360 */
2926 #address-cells = <1>;
2927 #size-cells = <1>;
2928 model = "mv64360"; /* Default */
2929 compatible = "marvell,mv64360";
2930 clock-frequency = <133333333>;
2931 reg = <0xf1000000 0x10000>;
2932 virtual-reg = <0xf1000000>;
2933 ranges = <0x88000000 0x88000000 0x1000000 /* PCI 0 I/O Space */
2934 0x80000000 0x80000000 0x8000000 /* PCI 0 MEM Space */
2935 0xa0000000 0xa0000000 0x4000000 /* User FLASH */
2936 0x00000000 0xf1000000 0x0010000 /* Bridge's regs */
2937 0xf2000000 0xf2000000 0x0040000>;/* Integrated SRAM */
2938
2939 [ child node definitions... ]
2940 }
2941
29422) Child nodes of /system-controller
2943
2944 a) Marvell Discovery MDIO bus
2945
2946 The MDIO is a bus to which the PHY devices are connected. For each
2947 device that exists on this bus, a child node should be created. See
2948 the definition of the PHY node below for an example of how to define
2949 a PHY.
2950
2951 Required properties:
2952 - #address-cells : Should be <1>
2953 - #size-cells : Should be <0>
2954 - device_type : Should be "mdio"
2955 - compatible : Should be "marvell,mv64360-mdio"
2956
2957 Example:
2958
2959 mdio {
2960 #address-cells = <1>;
2961 #size-cells = <0>;
2962 device_type = "mdio";
2963 compatible = "marvell,mv64360-mdio";
2964
2965 ethernet-phy@0 {
2966 ......
2967 };
2968 };
2969
2970
2971 b) Marvell Discovery ethernet controller
2972
2973 The Discover ethernet controller is described with two levels
2974 of nodes. The first level describes an ethernet silicon block
2975 and the second level describes up to 3 ethernet nodes within
2976 that block. The reason for the multiple levels is that the
2977 registers for the node are interleaved within a single set
2978 of registers. The "ethernet-block" level describes the
2979 shared register set, and the "ethernet" nodes describe ethernet
2980 port-specific properties.
2981
2982 Ethernet block node
2983
2984 Required properties:
2985 - #address-cells : <1>
2986 - #size-cells : <0>
2987 - compatible : "marvell,mv64360-eth-block"
2988 - reg : Offset and length of the register set for this block
2989
2990 Example Discovery Ethernet block node:
2991 ethernet-block@2000 {
2992 #address-cells = <1>;
2993 #size-cells = <0>;
2994 compatible = "marvell,mv64360-eth-block";
2995 reg = <0x2000 0x2000>;
2996 ethernet@0 {
2997 .......
2998 };
2999 };
3000
3001 Ethernet port node
3002
3003 Required properties:
3004 - device_type : Should be "network".
3005 - compatible : Should be "marvell,mv64360-eth".
3006 - reg : Should be <0>, <1>, or <2>, according to which registers
3007 within the silicon block the device uses.
3008 - interrupts : <a> where a is the interrupt number for the port.
3009 - interrupt-parent : the phandle for the interrupt controller
3010 that services interrupts for this device.
3011 - phy : the phandle for the PHY connected to this ethernet
3012 controller.
3013 - local-mac-address : 6 bytes, MAC address
3014
3015 Example Discovery Ethernet port node:
3016 ethernet@0 {
3017 device_type = "network";
3018 compatible = "marvell,mv64360-eth";
3019 reg = <0>;
3020 interrupts = <32>;
3021 interrupt-parent = <&PIC>;
3022 phy = <&PHY0>;
3023 local-mac-address = [ 00 00 00 00 00 00 ];
3024 };
3025
3026
3027
3028 c) Marvell Discovery PHY nodes
3029
3030 Required properties:
3031 - device_type : Should be "ethernet-phy"
3032 - interrupts : <a> where a is the interrupt number for this phy.
3033 - interrupt-parent : the phandle for the interrupt controller that
3034 services interrupts for this device.
3035 - reg : The ID number for the phy, usually a small integer
2819 3036
2820 More devices will be defined as this spec matures. 3037 Example Discovery PHY node:
3038 ethernet-phy@1 {
3039 device_type = "ethernet-phy";
3040 compatible = "broadcom,bcm5421";
3041 interrupts = <76>; /* GPP 12 */
3042 interrupt-parent = <&PIC>;
3043 reg = <1>;
3044 };
2821 3045
2822VII - Specifying interrupt information for devices 3046
3047 d) Marvell Discovery SDMA nodes
3048
3049 Represent DMA hardware associated with the MPSC (multiprotocol
3050 serial controllers).
3051
3052 Required properties:
3053 - compatible : "marvell,mv64360-sdma"
3054 - reg : Offset and length of the register set for this device
3055 - interrupts : <a> where a is the interrupt number for the DMA
3056 device.
3057 - interrupt-parent : the phandle for the interrupt controller
3058 that services interrupts for this device.
3059
3060 Example Discovery SDMA node:
3061 sdma@4000 {
3062 compatible = "marvell,mv64360-sdma";
3063 reg = <0x4000 0xc18>;
3064 virtual-reg = <0xf1004000>;
3065 interrupts = <36>;
3066 interrupt-parent = <&PIC>;
3067 };
3068
3069
3070 e) Marvell Discovery BRG nodes
3071
3072 Represent baud rate generator hardware associated with the MPSC
3073 (multiprotocol serial controllers).
3074
3075 Required properties:
3076 - compatible : "marvell,mv64360-brg"
3077 - reg : Offset and length of the register set for this device
3078 - clock-src : A value from 0 to 15 which selects the clock
3079 source for the baud rate generator. This value corresponds
3080 to the CLKS value in the BRGx configuration register. See
3081 the mv64x60 User's Manual.
3082 - clock-frequence : The frequency (in Hz) of the baud rate
3083 generator's input clock.
3084 - current-speed : The current speed setting (presumably by
3085 firmware) of the baud rate generator.
3086
3087 Example Discovery BRG node:
3088 brg@b200 {
3089 compatible = "marvell,mv64360-brg";
3090 reg = <0xb200 0x8>;
3091 clock-src = <8>;
3092 clock-frequency = <133333333>;
3093 current-speed = <9600>;
3094 };
3095
3096
3097 f) Marvell Discovery CUNIT nodes
3098
3099 Represent the Serial Communications Unit device hardware.
3100
3101 Required properties:
3102 - reg : Offset and length of the register set for this device
3103
3104 Example Discovery CUNIT node:
3105 cunit@f200 {
3106 reg = <0xf200 0x200>;
3107 };
3108
3109
3110 g) Marvell Discovery MPSCROUTING nodes
3111
3112 Represent the Discovery's MPSC routing hardware
3113
3114 Required properties:
3115 - reg : Offset and length of the register set for this device
3116
3117 Example Discovery CUNIT node:
3118 mpscrouting@b500 {
3119 reg = <0xb400 0xc>;
3120 };
3121
3122
3123 h) Marvell Discovery MPSCINTR nodes
3124
3125 Represent the Discovery's MPSC DMA interrupt hardware registers
3126 (SDMA cause and mask registers).
3127
3128 Required properties:
3129 - reg : Offset and length of the register set for this device
3130
3131 Example Discovery MPSCINTR node:
3132 mpsintr@b800 {
3133 reg = <0xb800 0x100>;
3134 };
3135
3136
3137 i) Marvell Discovery MPSC nodes
3138
3139 Represent the Discovery's MPSC (Multiprotocol Serial Controller)
3140 serial port.
3141
3142 Required properties:
3143 - device_type : "serial"
3144 - compatible : "marvell,mv64360-mpsc"
3145 - reg : Offset and length of the register set for this device
3146 - sdma : the phandle for the SDMA node used by this port
3147 - brg : the phandle for the BRG node used by this port
3148 - cunit : the phandle for the CUNIT node used by this port
3149 - mpscrouting : the phandle for the MPSCROUTING node used by this port
3150 - mpscintr : the phandle for the MPSCINTR node used by this port
3151 - cell-index : the hardware index of this cell in the MPSC core
3152 - max_idle : value needed for MPSC CHR3 (Maximum Frame Length)
3153 register
3154 - interrupts : <a> where a is the interrupt number for the MPSC.
3155 - interrupt-parent : the phandle for the interrupt controller
3156 that services interrupts for this device.
3157
3158 Example Discovery MPSCINTR node:
3159 mpsc@8000 {
3160 device_type = "serial";
3161 compatible = "marvell,mv64360-mpsc";
3162 reg = <0x8000 0x38>;
3163 virtual-reg = <0xf1008000>;
3164 sdma = <&SDMA0>;
3165 brg = <&BRG0>;
3166 cunit = <&CUNIT>;
3167 mpscrouting = <&MPSCROUTING>;
3168 mpscintr = <&MPSCINTR>;
3169 cell-index = <0>;
3170 max_idle = <40>;
3171 interrupts = <40>;
3172 interrupt-parent = <&PIC>;
3173 };
3174
3175
3176 j) Marvell Discovery Watch Dog Timer nodes
3177
3178 Represent the Discovery's watchdog timer hardware
3179
3180 Required properties:
3181 - compatible : "marvell,mv64360-wdt"
3182 - reg : Offset and length of the register set for this device
3183
3184 Example Discovery Watch Dog Timer node:
3185 wdt@b410 {
3186 compatible = "marvell,mv64360-wdt";
3187 reg = <0xb410 0x8>;
3188 };
3189
3190
3191 k) Marvell Discovery I2C nodes
3192
3193 Represent the Discovery's I2C hardware
3194
3195 Required properties:
3196 - device_type : "i2c"
3197 - compatible : "marvell,mv64360-i2c"
3198 - reg : Offset and length of the register set for this device
3199 - interrupts : <a> where a is the interrupt number for the I2C.
3200 - interrupt-parent : the phandle for the interrupt controller
3201 that services interrupts for this device.
3202
3203 Example Discovery I2C node:
3204 compatible = "marvell,mv64360-i2c";
3205 reg = <0xc000 0x20>;
3206 virtual-reg = <0xf100c000>;
3207 interrupts = <37>;
3208 interrupt-parent = <&PIC>;
3209 };
3210
3211
3212 l) Marvell Discovery PIC (Programmable Interrupt Controller) nodes
3213
3214 Represent the Discovery's PIC hardware
3215
3216 Required properties:
3217 - #interrupt-cells : <1>
3218 - #address-cells : <0>
3219 - compatible : "marvell,mv64360-pic"
3220 - reg : Offset and length of the register set for this device
3221 - interrupt-controller
3222
3223 Example Discovery PIC node:
3224 pic {
3225 #interrupt-cells = <1>;
3226 #address-cells = <0>;
3227 compatible = "marvell,mv64360-pic";
3228 reg = <0x0 0x88>;
3229 interrupt-controller;
3230 };
3231
3232
3233 m) Marvell Discovery MPP (Multipurpose Pins) multiplexing nodes
3234
3235 Represent the Discovery's MPP hardware
3236
3237 Required properties:
3238 - compatible : "marvell,mv64360-mpp"
3239 - reg : Offset and length of the register set for this device
3240
3241 Example Discovery MPP node:
3242 mpp@f000 {
3243 compatible = "marvell,mv64360-mpp";
3244 reg = <0xf000 0x10>;
3245 };
3246
3247
3248 n) Marvell Discovery GPP (General Purpose Pins) nodes
3249
3250 Represent the Discovery's GPP hardware
3251
3252 Required properties:
3253 - compatible : "marvell,mv64360-gpp"
3254 - reg : Offset and length of the register set for this device
3255
3256 Example Discovery GPP node:
3257 gpp@f000 {
3258 compatible = "marvell,mv64360-gpp";
3259 reg = <0xf100 0x20>;
3260 };
3261
3262
3263 o) Marvell Discovery PCI host bridge node
3264
3265 Represents the Discovery's PCI host bridge device. The properties
3266 for this node conform to Rev 2.1 of the PCI Bus Binding to IEEE
3267 1275-1994. A typical value for the compatible property is
3268 "marvell,mv64360-pci".
3269
3270 Example Discovery PCI host bridge node
3271 pci@80000000 {
3272 #address-cells = <3>;
3273 #size-cells = <2>;
3274 #interrupt-cells = <1>;
3275 device_type = "pci";
3276 compatible = "marvell,mv64360-pci";
3277 reg = <0xcf8 0x8>;
3278 ranges = <0x01000000 0x0 0x0
3279 0x88000000 0x0 0x01000000
3280 0x02000000 0x0 0x80000000
3281 0x80000000 0x0 0x08000000>;
3282 bus-range = <0 255>;
3283 clock-frequency = <66000000>;
3284 interrupt-parent = <&PIC>;
3285 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
3286 interrupt-map = <
3287 /* IDSEL 0x0a */
3288 0x5000 0 0 1 &PIC 80
3289 0x5000 0 0 2 &PIC 81
3290 0x5000 0 0 3 &PIC 91
3291 0x5000 0 0 4 &PIC 93
3292
3293 /* IDSEL 0x0b */
3294 0x5800 0 0 1 &PIC 91
3295 0x5800 0 0 2 &PIC 93
3296 0x5800 0 0 3 &PIC 80
3297 0x5800 0 0 4 &PIC 81
3298
3299 /* IDSEL 0x0c */
3300 0x6000 0 0 1 &PIC 91
3301 0x6000 0 0 2 &PIC 93
3302 0x6000 0 0 3 &PIC 80
3303 0x6000 0 0 4 &PIC 81
3304
3305 /* IDSEL 0x0d */
3306 0x6800 0 0 1 &PIC 93
3307 0x6800 0 0 2 &PIC 80
3308 0x6800 0 0 3 &PIC 81
3309 0x6800 0 0 4 &PIC 91
3310 >;
3311 };
3312
3313
3314 p) Marvell Discovery CPU Error nodes
3315
3316 Represent the Discovery's CPU error handler device.
3317
3318 Required properties:
3319 - compatible : "marvell,mv64360-cpu-error"
3320 - reg : Offset and length of the register set for this device
3321 - interrupts : the interrupt number for this device
3322 - interrupt-parent : the phandle for the interrupt controller
3323 that services interrupts for this device.
3324
3325 Example Discovery CPU Error node:
3326 cpu-error@0070 {
3327 compatible = "marvell,mv64360-cpu-error";
3328 reg = <0x70 0x10 0x128 0x28>;
3329 interrupts = <3>;
3330 interrupt-parent = <&PIC>;
3331 };
3332
3333
3334 q) Marvell Discovery SRAM Controller nodes
3335
3336 Represent the Discovery's SRAM controller device.
3337
3338 Required properties:
3339 - compatible : "marvell,mv64360-sram-ctrl"
3340 - reg : Offset and length of the register set for this device
3341 - interrupts : the interrupt number for this device
3342 - interrupt-parent : the phandle for the interrupt controller
3343 that services interrupts for this device.
3344
3345 Example Discovery SRAM Controller node:
3346 sram-ctrl@0380 {
3347 compatible = "marvell,mv64360-sram-ctrl";
3348 reg = <0x380 0x80>;
3349 interrupts = <13>;
3350 interrupt-parent = <&PIC>;
3351 };
3352
3353
3354 r) Marvell Discovery PCI Error Handler nodes
3355
3356 Represent the Discovery's PCI error handler device.
3357
3358 Required properties:
3359 - compatible : "marvell,mv64360-pci-error"
3360 - reg : Offset and length of the register set for this device
3361 - interrupts : the interrupt number for this device
3362 - interrupt-parent : the phandle for the interrupt controller
3363 that services interrupts for this device.
3364
3365 Example Discovery PCI Error Handler node:
3366 pci-error@1d40 {
3367 compatible = "marvell,mv64360-pci-error";
3368 reg = <0x1d40 0x40 0xc28 0x4>;
3369 interrupts = <12>;
3370 interrupt-parent = <&PIC>;
3371 };
3372
3373
3374 s) Marvell Discovery Memory Controller nodes
3375
3376 Represent the Discovery's memory controller device.
3377
3378 Required properties:
3379 - compatible : "marvell,mv64360-mem-ctrl"
3380 - reg : Offset and length of the register set for this device
3381 - interrupts : the interrupt number for this device
3382 - interrupt-parent : the phandle for the interrupt controller
3383 that services interrupts for this device.
3384
3385 Example Discovery Memory Controller node:
3386 mem-ctrl@1400 {
3387 compatible = "marvell,mv64360-mem-ctrl";
3388 reg = <0x1400 0x60>;
3389 interrupts = <17>;
3390 interrupt-parent = <&PIC>;
3391 };
3392
3393
3394VIII - Specifying interrupt information for devices
2823=================================================== 3395===================================================
2824 3396
2825The device tree represents the busses and devices of a hardware 3397The device tree represents the busses and devices of a hardware
@@ -2905,6 +3477,54 @@ encodings listed below:
2905 2 = high to low edge sensitive type enabled 3477 2 = high to low edge sensitive type enabled
2906 3 = low to high edge sensitive type enabled 3478 3 = low to high edge sensitive type enabled
2907 3479
3480VIII - Specifying GPIO information for devices
3481==============================================
3482
34831) gpios property
3484-----------------
3485
3486Nodes that makes use of GPIOs should define them using `gpios' property,
3487format of which is: <&gpio-controller1-phandle gpio1-specifier
3488 &gpio-controller2-phandle gpio2-specifier
3489 0 /* holes are permitted, means no GPIO 3 */
3490 &gpio-controller4-phandle gpio4-specifier
3491 ...>;
3492
3493Note that gpio-specifier length is controller dependent.
3494
3495gpio-specifier may encode: bank, pin position inside the bank,
3496whether pin is open-drain and whether pin is logically inverted.
3497
3498Example of the node using GPIOs:
3499
3500 node {
3501 gpios = <&qe_pio_e 18 0>;
3502 };
3503
3504In this example gpio-specifier is "18 0" and encodes GPIO pin number,
3505and empty GPIO flags as accepted by the "qe_pio_e" gpio-controller.
3506
35072) gpio-controller nodes
3508------------------------
3509
3510Every GPIO controller node must have #gpio-cells property defined,
3511this information will be used to translate gpio-specifiers.
3512
3513Example of two SOC GPIO banks defined as gpio-controller nodes:
3514
3515 qe_pio_a: gpio-controller@1400 {
3516 #gpio-cells = <2>;
3517 compatible = "fsl,qe-pario-bank-a", "fsl,qe-pario-bank";
3518 reg = <0x1400 0x18>;
3519 gpio-controller;
3520 };
3521
3522 qe_pio_e: gpio-controller@1460 {
3523 #gpio-cells = <2>;
3524 compatible = "fsl,qe-pario-bank-e", "fsl,qe-pario-bank";
3525 reg = <0x1460 0x18>;
3526 gpio-controller;
3527 };
2908 3528
2909Appendix A - Sample SOC node for MPC8540 3529Appendix A - Sample SOC node for MPC8540
2910======================================== 3530========================================