Pull DeviceTree updates from Rob Herring: "There's a few orphans in the conversion to %pOF printf specifiers included here that no one else picked up. Summary: - Convert more DT code to use of_property_read_* API. - Improve DT overlay support when adding multiple overlays - Convert printk's to %pOF format specifiers. Most went via subsystem trees, but picked up the remaining orphans - Correct unittests to use preferred "okay" for "status" property value - Add a KASLR seed property - Vendor prefixes for Mellanox, Theobroma System, Adaptrum, Moxa - Fix modalias buffer handling - Clean-up of include paths for building dtbs - Add bindings for amc6821, isl1208, tsl2x7x, srf02, and srf10 devices - Add nvmem bindings for MediaTek MT7623 and MT7622 SoC - Add compatible string for Allwinner H5 Mali-450 GPU - Fix links to old OpenFirmware docs with new mirror on devicetree.org - Remove status property from binding doc examples" * tag 'devicetree-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (45 commits) devicetree: Adjust status "ok" -> "okay" under drivers/of/ dt-bindings: Remove "status" from examples dt-bindings: pinctrl: sh-pfc: Use generic node name dt-bindings: Add vendor Mellanox dt-binding: net/phy: fix interrupts description virt: Convert to using %pOF instead of full_name macintosh: Convert to using %pOF instead of full_name ide: pmac: Convert to using %pOF instead of full_name microblaze: Convert to using %pOF instead of full_name dt-bindings: usb: musb: Grammar s/the/to/, s/is/are/ of: Use PLATFORM_DEVID_NONE definition of/device: Fix of_device_get_modalias() buffer handling of/device: Prevent buffer overflow in of_device_modalias() dt-bindings: add amc6821, isl1208 trivial bindings dt-bindings: add vendor prefix for Theobroma Systems of: search scripts/dtc/include-prefixes path for both CPP and DTC of: remove arch/$(SRCARCH)/boot/dts from include search path for CPP of: remove drivers/of/testcase-data from include search path for CPP of: return of_get_cpu_node from of_cpu_device_node_get if CPUs are not registered iio: srf08: add device tree binding for srf02 and srf10 ...
Unified · Split
| @@ -108,6 +108,5 @@ Example: · 107 unmodified lines | |||
| 108 | frame-number = <1> | 108 | frame-number = <1> |
| 109 | interrupts = <0 15 0x8>; | 109 | interrupts = <0 15 0x8>; |
| 110 | reg = <0xf0003000 0x1000>; | 110 | reg = <0xf0003000 0x1000>; |
| 111 | status = "disabled"; | ||
| 112 | }; | 111 | }; |
| 113 | }; | 112 | }; |
| @@ -183,7 +183,6 @@ cpm_syscon0: system-controller@440000 { · 182 unmodified lines | |||
| 183 | gpio-controller; | 183 | gpio-controller; |
| 184 | #gpio-cells = <2>; | 184 | #gpio-cells = <2>; |
| 185 | gpio-ranges = <&cpm_pinctrl 0 0 32>; | 185 | gpio-ranges = <&cpm_pinctrl 0 0 32>; |
| 186 | status = "disabled"; | ||
| 187 | }; | 186 | }; |
| 188 | 187 | ||
| 189 | }; | 188 | }; |
| @@ -57,7 +57,6 @@ Example: · 56 unmodified lines | |||
| 57 | <0x0 0x1f227000 0x0 0x1000>; | 57 | <0x0 0x1f227000 0x0 0x1000>; |
| 58 | interrupts = <0x0 0x87 0x4>; | 58 | interrupts = <0x0 0x87 0x4>; |
| 59 | dma-coherent; | 59 | dma-coherent; |
| 60 | status = "ok"; | ||
| 61 | clocks = <&sataclk 0>; | 60 | clocks = <&sataclk 0>; |
| 62 | phys = <&phy2 0>; | 61 | phys = <&phy2 0>; |
| 63 | phy-names = "sata-phy"; | 62 | phy-names = "sata-phy"; |
| @@ -72,7 +71,6 @@ Example: · 8 unmodified lines | |||
| 72 | <0x0 0x1f237000 0x0 0x1000>; | 71 | <0x0 0x1f237000 0x0 0x1000>; |
| 73 | interrupts = <0x0 0x88 0x4>; | 72 | interrupts = <0x0 0x88 0x4>; |
| 74 | dma-coherent; | 73 | dma-coherent; |
| 75 | status = "ok"; | ||
| 76 | clocks = <&sataclk 0>; | 74 | clocks = <&sataclk 0>; |
| 77 | phys = <&phy3 0>; | 75 | phys = <&phy3 0>; |
| 78 | phy-names = "sata-phy"; | 76 | phy-names = "sata-phy"; |
| @@ -13,5 +13,4 @@ Example: · 12 unmodified lines | |||
| 13 | reg = <0x83fe0000 0x4000>; | 13 | reg = <0x83fe0000 0x4000>; |
| 14 | interrupts = <70>; | 14 | interrupts = <70>; |
| 15 | clocks = <&clks 161>; | 15 | clocks = <&clks 161>; |
| 16 | status = "disabled"; | ||
| 17 | }; | 16 | }; |
| @@ -227,7 +227,6 @@ See the example below, where a more complete device tree is shown: · 226 unmodified lines | |||
| 227 | }; | 227 | }; |
| 228 | 228 | ||
| 229 | devbus-bootcs { | 229 | devbus-bootcs { |
| 230 | status = "okay"; | ||
| 231 | ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>; | 230 | ranges = <0 MBUS_ID(0x01, 0x2f) 0 0x8000000>; |
| 232 | 231 | ||
| 233 | /* NOR */ | 232 | /* NOR */ |
| @@ -240,7 +239,6 @@ See the example below, where a more complete device tree is shown: · 6 unmodified lines | |||
| 240 | 239 | ||
| 241 | pcie-controller { | 240 | pcie-controller { |
| 242 | compatible = "marvell,armada-xp-pcie"; | 241 | compatible = "marvell,armada-xp-pcie"; |
| 243 | status = "okay"; | ||
| 244 | device_type = "pci"; | 242 | device_type = "pci"; |
| 245 | 243 | ||
| 246 | #address-cells = <3>; | 244 | #address-cells = <3>; |
| @@ -258,7 +256,6 @@ See the example below, where a more complete device tree is shown: · 11 unmodified lines | |||
| 258 | 256 | ||
| 259 | pcie@1,0 { | 257 | pcie@1,0 { |
| 260 | /* Port 0, Lane 0 */ | 258 | /* Port 0, Lane 0 */ |
| 261 | status = "okay"; | ||
| 262 | }; | 259 | }; |
| 263 | }; | 260 | }; |
| 264 | 261 | ||
| @@ -84,7 +84,6 @@ gmi@70090000 { · 83 unmodified lines | |||
| 84 | reset-names = "gmi"; | 84 | reset-names = "gmi"; |
| 85 | ranges = <4 0 0xd0000000 0xfffffff>; | 85 | ranges = <4 0 0xd0000000 0xfffffff>; |
| 86 | 86 | ||
| 87 | status = "okay"; | ||
| 88 | 87 | ||
| 89 | bus@4,0 { | 88 | bus@4,0 { |
| 90 | compatible = "simple-bus"; | 89 | compatible = "simple-bus"; |
| @@ -121,7 +120,6 @@ gmi@70090000 { · 30 unmodified lines | |||
| 121 | reset-names = "gmi"; | 120 | reset-names = "gmi"; |
| 122 | ranges = <4 0 0xd0000000 0xfffffff>; | 121 | ranges = <4 0 0xd0000000 0xfffffff>; |
| 123 | 122 | ||
| 124 | status = "okay"; | ||
| 125 | 123 | ||
| 126 | can@4,0 { | 124 | can@4,0 { |
| 127 | reg = <4 0 0x100>; | 125 | reg = <4 0 0x100>; |
| @@ -33,7 +33,6 @@ Example: · 32 unmodified lines | |||
| 33 | #size-cells = <1>; | 33 | #size-cells = <1>; |
| 34 | ranges = <0x702c0000 0x0 0x702c0000 0x00040000>; | 34 | ranges = <0x702c0000 0x0 0x702c0000 0x00040000>; |
| 35 | 35 | ||
| 36 | status = "disabled"; | ||
| 37 | 36 | ||
| 38 | child1 { | 37 | child1 { |
| 39 | ... | 38 | ... |
| @@ -5,9 +5,31 @@ The chosen node does not represent a real device, but serves as a place · 4 unmodified lines | |||
| 5 | for passing data between firmware and the operating system, like boot | 5 | for passing data between firmware and the operating system, like boot |
| 6 | arguments. Data in the chosen node does not represent the hardware. | 6 | arguments. Data in the chosen node does not represent the hardware. |
| 7 | 7 | ||
| 8 | The following properties are recognized: | ||
| 8 | 9 | ||
| 9 | stdout-path property | 10 | |
| 10 | -------------------- | 11 | kaslr-seed |
| 12 | ----------- | ||
| 13 | |||
| 14 | This property is used when booting with CONFIG_RANDOMIZE_BASE as the | ||
| 15 | entropy used to randomize the kernel image base address location. Since | ||
| 16 | it is used directly, this value is intended only for KASLR, and should | ||
| 17 | not be used for other purposes (as it may leak information about KASLR | ||
| 18 | offsets). It is parsed as a u64 value, e.g. | ||
| 19 | |||
| 20 | / { | ||
| 21 | chosen { | ||
| 22 | kaslr-seed = <0xfeedbeef 0xc0def00d>; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | |||
| 26 | Note that if this property is set from UEFI (or a bootloader in EFI | ||
| 27 | mode) when EFI_RNG_PROTOCOL is supported, it will be overwritten by | ||
| 28 | the Linux EFI stub (which will populate the property itself, using | ||
| 29 | EFI_RNG_PROTOCOL). | ||
| 30 | |||
| 31 | stdout-path | ||
| 32 | ----------- | ||
| 11 | 33 | ||
| 12 | Device trees may specify the device to be used for boot console output | 34 | Device trees may specify the device to be used for boot console output |
| 13 | with a stdout-path property under /chosen, as described in the Devicetree | 35 | with a stdout-path property under /chosen, as described in the Devicetree |
| @@ -102,7 +102,6 @@ uart4: serial@80010000 { · 101 unmodified lines | |||
| 102 | reg = <0x80010000 0x4000>; | 102 | reg = <0x80010000 0x4000>; |
| 103 | clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>; | 103 | clocks = <&acc CLKID_SYS_UART4>, <&acc CLKID_AHB_UART4>; |
| 104 | interrupts = <19>; | 104 | interrupts = <19>; |
| 105 | status = "disabled"; | ||
| 106 | }; | 105 | }; |
| 107 | 106 | ||
| 108 | Clock consumer with only one, _AHB_ sink. | 107 | Clock consumer with only one, _AHB_ sink. |
| @@ -41,5 +41,4 @@ Example: UART controller node that consumes the clock and reset generated · 40 unmodified lines | |||
| 41 | interrupts = <0 90 1>; | 41 | interrupts = <0 90 1>; |
| 42 | clocks = <&clkc_AO CLKID_AO_UART1>; | 42 | clocks = <&clkc_AO CLKID_AO_UART1>; |
| 43 | resets = <&clkc_AO RESET_AO_UART1>; | 43 | resets = <&clkc_AO RESET_AO_UART1>; |
| 44 | status = "disabled"; | ||
| 45 | }; | 44 | }; |
| @@ -33,5 +33,4 @@ Example: UART controller node that consumes the clock generated by the clock · 32 unmodified lines | |||
| 33 | reg = <0xc81004c0 0x14>; | 33 | reg = <0xc81004c0 0x14>; |
| 34 | interrupts = <0 90 1>; | 34 | interrupts = <0 90 1>; |
| 35 | clocks = <&clkc CLKID_CLK81>; | 35 | clocks = <&clkc CLKID_CLK81>; |
| 36 | status = "disabled"; | ||
| 37 | }; | 36 | }; |
| @@ -39,5 +39,4 @@ Example: UART controller node that consumes the clock generated by the clock · 38 unmodified lines | |||
| 39 | reg = <0xc81004c0 0x14>; | 39 | reg = <0xc81004c0 0x14>; |
| 40 | interrupts = <0 90 1>; | 40 | interrupts = <0 90 1>; |
| 41 | clocks = <&clkc CLKID_CLK81>; | 41 | clocks = <&clkc CLKID_CLK81>; |
| 42 | status = "disabled"; | ||
| 43 | }; | 42 | }; |
| @@ -46,7 +46,6 @@ Device tree example: · 45 unmodified lines | |||
| 46 | 46 | ||
| 47 | uart@3e002000 { | 47 | uart@3e002000 { |
| 48 | compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; | 48 | compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; |
| 49 | status = "disabled"; | ||
| 50 | reg = <0x3e002000 0x1000>; | 49 | reg = <0x3e002000 0x1000>; |
| 51 | clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>; | 50 | clocks = <&slave_ccu BCM281XX_SLAVE_CCU_UARTB3>; |
| 52 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | 51 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -465,5 +465,4 @@ Example 3: UART controller node that consumes the clock generated by the clock · 464 unmodified lines | |||
| 465 | clock-names = "uart", "clk_uart_baud0"; | 465 | clock-names = "uart", "clk_uart_baud0"; |
| 466 | pinctrl-names = "default"; | 466 | pinctrl-names = "default"; |
| 467 | pinctrl-0 = <&uart0_bus>; | 467 | pinctrl-0 = <&uart0_bus>; |
| 468 | status = "disabled"; | ||
| 469 | }; | 468 | }; |
| @@ -38,5 +38,4 @@ Examples: · 37 unmodified lines | |||
| 38 | clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, | 38 | clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, |
| 39 | <&crg_ctrl HI3660_PCLK>; | 39 | <&crg_ctrl HI3660_PCLK>; |
| 40 | clock-names = "uartclk", "apb_pclk"; | 40 | clock-names = "uartclk", "apb_pclk"; |
| 41 | status = "disabled"; | ||
| 42 | }; | 41 | }; |
| @@ -27,5 +27,4 @@ Examples: · 26 unmodified lines | |||
| 27 | interrupts = <0 49 4>; | 27 | interrupts = <0 49 4>; |
| 28 | clocks = <&clock HIX5HD2_FIXED_83M>; | 28 | clocks = <&clock HIX5HD2_FIXED_83M>; |
| 29 | clock-names = "apb_pclk"; | 29 | clock-names = "apb_pclk"; |
| 30 | status = "disabled"; | ||
| 31 | }; | 30 | }; |
| @@ -24,5 +24,4 @@ Examples: · 23 unmodified lines | |||
| 24 | clocks = <&clks IMX21_CLK_UART1_IPG_GATE>, | 24 | clocks = <&clks IMX21_CLK_UART1_IPG_GATE>, |
| 25 | <&clks IMX21_CLK_PER1>; | 25 | <&clks IMX21_CLK_PER1>; |
| 26 | clock-names = "ipg", "per"; | 26 | clock-names = "ipg", "per"; |
| 27 | status = "disabled"; | ||
| 28 | }; | 27 | }; |
| @@ -67,5 +67,4 @@ auart0: serial@8006c000 { · 66 unmodified lines | |||
| 67 | reg = <0x8006c000 0x2000>; | 67 | reg = <0x8006c000 0x2000>; |
| 68 | interrupts = <24 25 23>; | 68 | interrupts = <24 25 23>; |
| 69 | clocks = <&clks 32>; | 69 | clocks = <&clks 32>; |
| 70 | status = "disabled"; | ||
| 71 | }; | 70 | }; |
| @@ -157,5 +157,4 @@ uart1: serial@43f90000 { · 156 unmodified lines | |||
| 157 | interrupts = <45>; | 157 | interrupts = <45>; |
| 158 | clocks = <&clks 79>, <&clks 50>; | 158 | clocks = <&clks 79>, <&clks 50>; |
| 159 | clock-names = "ipg", "per"; | 159 | clock-names = "ipg", "per"; |
| 160 | status = "disabled"; | ||
| 161 | }; | 160 | }; |
| @@ -24,5 +24,4 @@ Examples: · 23 unmodified lines | |||
| 24 | clocks = <&clks IMX27_CLK_UART1_IPG_GATE>, | 24 | clocks = <&clks IMX27_CLK_UART1_IPG_GATE>, |
| 25 | <&clks IMX27_CLK_PER1_GATE>; | 25 | <&clks IMX27_CLK_PER1_GATE>; |
| 26 | clock-names = "ipg", "per"; | 26 | clock-names = "ipg", "per"; |
| 27 | status = "disabled"; | ||
| 28 | }; | 27 | }; |
| @@ -90,5 +90,4 @@ auart0: serial@8006a000 { · 89 unmodified lines | |||
| 90 | reg = <0x8006a000 0x2000>; | 90 | reg = <0x8006a000 0x2000>; |
| 91 | interrupts = <112 70 71>; | 91 | interrupts = <112 70 71>; |
| 92 | clocks = <&clks 45>; | 92 | clocks = <&clks 45>; |
| 93 | status = "disabled"; | ||
| 94 | }; | 93 | }; |
| @@ -87,5 +87,4 @@ uart1: serial@43f90000 { · 86 unmodified lines | |||
| 87 | interrupts = <45>; | 87 | interrupts = <45>; |
| 88 | clocks = <&clks 10>, <&clks 30>; | 88 | clocks = <&clks 10>, <&clks 30>; |
| 89 | clock-names = "ipg", "per"; | 89 | clock-names = "ipg", "per"; |
| 90 | status = "disabled"; | ||
| 91 | }; | 90 | }; |
| @@ -25,5 +25,4 @@ can1: can@53fc8000 { · 24 unmodified lines | |||
| 25 | interrupts = <82>; | 25 | interrupts = <82>; |
| 26 | clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>; | 26 | clocks = <&clks IMX5_CLK_CAN1_IPG_GATE>, <&clks IMX5_CLK_CAN1_SERIAL_GATE>; |
| 27 | clock-names = "ipg", "per"; | 27 | clock-names = "ipg", "per"; |
| 28 | status = "disabled"; | ||
| 29 | }; | 28 | }; |
| @@ -27,5 +27,4 @@ uart1: serial@02020000 { · 26 unmodified lines | |||
| 27 | interrupts = <0 26 0x04>; | 27 | interrupts = <0 26 0x04>; |
| 28 | clocks = <&clks IMX6QDL_CLK_UART_IPG>, <&clks IMX6QDL_CLK_UART_SERIAL>; | 28 | clocks = <&clks IMX6QDL_CLK_UART_IPG>, <&clks IMX6QDL_CLK_UART_SERIAL>; |
| 29 | clock-names = "ipg", "per"; | 29 | clock-names = "ipg", "per"; |
| 30 | status = "disabled"; | ||
| 31 | }; | 30 | }; |
| @@ -66,7 +66,6 @@ clock@70110000 { · 65 unmodified lines | |||
| 66 | #clock-cells = <0>; | 66 | #clock-cells = <0>; |
| 67 | clock-output-names = "dfllCPU_out"; | 67 | clock-output-names = "dfllCPU_out"; |
| 68 | vdd-cpu-supply = <&vdd_cpu>; | 68 | vdd-cpu-supply = <&vdd_cpu>; |
| 69 | status = "okay"; | ||
| 70 | 69 | ||
| 71 | nvidia,sample-rate = <12500>; | 70 | nvidia,sample-rate = <12500>; |
| 72 | nvidia,droop-ctrl = <0x00000f00>; | 71 | nvidia,droop-ctrl = <0x00000f00>; |
| @@ -12,5 +12,4 @@ Examples: · 11 unmodified lines | |||
| 12 | pxa2xx_clks: pxa2xx_clks@41300004 { | 12 | pxa2xx_clks: pxa2xx_clks@41300004 { |
| 13 | compatible = "marvell,pxa-clocks"; | 13 | compatible = "marvell,pxa-clocks"; |
| 14 | #clock-cells = <1>; | 14 | #clock-cells = <1>; |
| 15 | status = "okay"; | ||
| 16 | }; | 15 | }; |
| @@ -81,5 +81,4 @@ Examples · 80 unmodified lines | |||
| 81 | dma-names = "tx", "rx"; | 81 | dma-names = "tx", "rx"; |
| 82 | power-domains = <&cpg>; | 82 | power-domains = <&cpg>; |
| 83 | resets = <&cpg 310>; | 83 | resets = <&cpg 310>; |
| 84 | status = "disabled"; | ||
| 85 | }; | 84 | }; |
| @@ -44,5 +44,4 @@ Examples · 43 unmodified lines | |||
| 44 | interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>; | 44 | interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>; |
| 45 | clocks = <&mstp3_clks R8A7778_CLK_SDHI0>; | 45 | clocks = <&mstp3_clks R8A7778_CLK_SDHI0>; |
| 46 | power-domains = <&cpg_clocks>; | 46 | power-domains = <&cpg_clocks>; |
| 47 | status = "disabled"; | ||
| 48 | }; | 47 | }; |
| @@ -50,5 +50,4 @@ Examples · 49 unmodified lines | |||
| 50 | clocks = <&mstp3_clks R7S72100_CLK_MTU2>; | 50 | clocks = <&mstp3_clks R7S72100_CLK_MTU2>; |
| 51 | clock-names = "fck"; | 51 | clock-names = "fck"; |
| 52 | power-domains = <&cpg_clocks>; | 52 | power-domains = <&cpg_clocks>; |
| 53 | status = "disabled"; | ||
| 54 | }; | 53 | }; |
| @@ -46,5 +46,4 @@ Example: UART controller node that consumes the clock generated by the clock · 45 unmodified lines | |||
| 46 | interrupts = <1 23 3 4>, <1 23 4 4>; | 46 | interrupts = <1 23 3 4>, <1 23 4 4>; |
| 47 | clock-names = "uart", "clk_uart_baud2"; | 47 | clock-names = "uart", "clk_uart_baud2"; |
| 48 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>; | 48 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>; |
| 49 | status = "disabled"; | ||
| 50 | }; | 49 | }; |
| @@ -46,5 +46,4 @@ Example: UART controller node that consumes the clock generated by the clock · 45 unmodified lines | |||
| 46 | clock-names = "uart", "clk_uart_baud2", "clk_uart_baud3"; | 46 | clock-names = "uart", "clk_uart_baud2", "clk_uart_baud3"; |
| 47 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>, | 47 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>, |
| 48 | <&clocks SCLK_UART>; | 48 | <&clocks SCLK_UART>; |
| 49 | status = "disabled"; | ||
| 50 | }; | 49 | }; |
| @@ -52,5 +52,4 @@ Example: UART controller node that consumes the clock generated by the clock · 51 unmodified lines | |||
| 52 | "clk_uart_baud3"; | 52 | "clk_uart_baud3"; |
| 53 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>, | 53 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>, |
| 54 | <&clocks SCLK_UART>; | 54 | <&clocks SCLK_UART>; |
| 55 | status = "disabled"; | ||
| 56 | }; | 55 | }; |
| @@ -73,5 +73,4 @@ Example: UART controller node that consumes the clock generated by the clock · 72 unmodified lines | |||
| 73 | "clk_uart_baud3"; | 73 | "clk_uart_baud3"; |
| 74 | clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>, | 74 | clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>, |
| 75 | <&clock SCLK_UART>; | 75 | <&clock SCLK_UART>; |
| 76 | status = "disabled"; | ||
| 77 | }; | 76 | }; |
| @@ -74,5 +74,4 @@ Example: UART controller node that consumes the clock generated by the clock · 73 unmodified lines | |||
| 74 | "clk_uart_baud1"; | 74 | "clk_uart_baud1"; |
| 75 | clocks = <&clocks UART0>, <&clocks UART0>, | 75 | clocks = <&clocks UART0>, <&clocks UART0>, |
| 76 | <&clocks SCLK_UART0>; | 76 | <&clocks SCLK_UART0>; |
| 77 | status = "disabled"; | ||
| 78 | }; | 77 | }; |
| @@ -12,7 +12,11 @@ generators can be found in [1]. · 11 unmodified lines | |||
| 12 | ==I2C device node== | 12 | ==I2C device node== |
| 13 | 13 | ||
| 14 | Required properties: | 14 | Required properties: |
| 15 | - compatible: shall be one of "silabs,si5351{a,a-msop,b,c}". | 15 | - compatible: shall be one of the following: |
| 16 | "silabs,si5351a" - Si5351a, QFN20 package | ||
| 17 | "silabs,si5351a-msop" - Si5351a, MSOP10 package | ||
| 18 | "silabs,si5351b" - Si5351b, QFN20 package | ||
| 19 | "silabs,si5351c" - Si5351c, QFN20 package | ||
| 16 | - reg: i2c device address, shall be 0x60 or 0x61. | 20 | - reg: i2c device address, shall be 0x60 or 0x61. |
| 17 | - #clock-cells: from common clock binding; shall be set to 1. | 21 | - #clock-cells: from common clock binding; shall be set to 1. |
| 18 | - clocks: from common clock binding; list of parent clock | 22 | - clocks: from common clock binding; list of parent clock |
| @@ -14,10 +14,9 @@ Required properties: · 13 unmodified lines | |||
| 14 | - compatible: Must be "ti,k2g-sci-clk" | 14 | - compatible: Must be "ti,k2g-sci-clk" |
| 15 | - #clock-cells: Shall be 2. | 15 | - #clock-cells: Shall be 2. |
| 16 | In clock consumers, this cell represents the device ID and clock ID | 16 | In clock consumers, this cell represents the device ID and clock ID |
| 17 | exposed by the PM firmware. The assignments can be found in the header | 17 | exposed by the PM firmware. The list of valid values for the device IDs |
| 18 | files <dt-bindings/genpd/<soc>.h> (which covers the device IDs) and | 18 | and clocks IDs for 66AK2G SoC are documented at |
| 19 | <dt-bindings/clock/<soc>.h> (which covers the clock IDs), where <soc> | 19 | http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data |
| 20 | is the SoC involved, for example 'k2g'. | ||
| 21 | 20 | ||
| 22 | Examples: | 21 | Examples: |
| 23 | -------- | 22 | -------- |
| @@ -81,13 +81,11 @@ atl: atl@4843c000 { · 80 unmodified lines | |||
| 81 | <&atl_clkin2_ck>, <&atl_clkin3_ck>; | 81 | <&atl_clkin2_ck>, <&atl_clkin3_ck>; |
| 82 | clocks = <&atl_gfclk_mux>; | 82 | clocks = <&atl_gfclk_mux>; |
| 83 | clock-names = "fck"; | 83 | clock-names = "fck"; |
| 84 | status = "disabled"; | ||
| 85 | }; | 84 | }; |
| 86 | 85 | ||
| 87 | #include <dt-bindings/clk/ti-dra7-atl.h> | 86 | #include <dt-bindings/clk/ti-dra7-atl.h> |
| 88 | 87 | ||
| 89 | &atl { | 88 | &atl { |
| 90 | status = "okay"; | ||
| 91 | 89 | ||
| 92 | atl2 { | 90 | atl2 { |
| 93 | bws = <DRA7_ATL_WS_MCASP2_FSX>; | 91 | bws = <DRA7_ATL_WS_MCASP2_FSX>; |
| @@ -31,5 +31,4 @@ uart0: serial@0x09405000 { · 30 unmodified lines | |||
| 31 | reg = <0x09405000 0x1000>; | 31 | reg = <0x09405000 0x1000>; |
| 32 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | 32 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; |
| 33 | clocks = <&lsp1clk ZX296702_UART0_PCLK>; | 33 | clocks = <&lsp1clk ZX296702_UART0_PCLK>; |
| 34 | status = "disabled"; | ||
| 35 | }; | 34 | }; |
| @@ -34,5 +34,4 @@ usbphy0:usb-phy0 { · 33 unmodified lines | |||
| 34 | #phy-cells = <0>; | 34 | #phy-cells = <0>; |
| 35 | clocks = <&topclk USB20_PHY_CLK>; | 35 | clocks = <&topclk USB20_PHY_CLK>; |
| 36 | clock-names = "phyclk"; | 36 | clock-names = "phyclk"; |
| 37 | status = "okay"; | ||
| 38 | }; | 37 | }; |
| @@ -13,5 +13,4 @@ dcp@80028000 { · 12 unmodified lines | |||
| 13 | compatible = "fsl,imx28-dcp", "fsl,imx23-dcp"; | 13 | compatible = "fsl,imx28-dcp", "fsl,imx23-dcp"; |
| 14 | reg = <0x80028000 0x2000>; | 14 | reg = <0x80028000 0x2000>; |
| 15 | interrupts = <52 53>; | 15 | interrupts = <52 53>; |
| 16 | status = "okay"; | ||
| 17 | }; | 16 | }; |
| @@ -23,5 +23,4 @@ Example: · 22 unmodified lines | |||
| 23 | interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3", | 23 | interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3", |
| 24 | "eip"; | 24 | "eip"; |
| 25 | clocks = <&cpm_syscon0 1 26>; | 25 | clocks = <&cpm_syscon0 1 26>; |
| 26 | status = "disabled"; | ||
| 27 | }; | 26 | }; |
| @@ -41,5 +41,4 @@ Examples: · 40 unmodified lines | |||
| 41 | clock-names = "cesa0", "cesa1"; | 41 | clock-names = "cesa0", "cesa1"; |
| 42 | marvell,crypto-srams = <&crypto_sram0>, <&crypto_sram1>; | 42 | marvell,crypto-srams = <&crypto_sram0>, <&crypto_sram1>; |
| 43 | marvell,crypto-sram-size = <0x600>; | 43 | marvell,crypto-sram-size = <0x600>; |
| 44 | status = "okay"; | ||
| 45 | }; | 44 | }; |
| @@ -29,5 +29,4 @@ Examples: · 28 unmodified lines | |||
| 29 | interrupts = <22>; | 29 | interrupts = <22>; |
| 30 | marvell,crypto-srams = <&crypto_sram>; | 30 | marvell,crypto-srams = <&crypto_sram>; |
| 31 | marvell,crypto-sram-size = <0x600>; | 31 | marvell,crypto-sram-size = <0x600>; |
| 32 | status = "okay"; | ||
| 33 | }; | 32 | }; |
| @@ -25,5 +25,4 @@ Examples: · 24 unmodified lines | |||
| 25 | clock-names = "aclk", "hclk", "sclk", "apb_pclk"; | 25 | clock-names = "aclk", "hclk", "sclk", "apb_pclk"; |
| 26 | resets = <&cru SRST_CRYPTO>; | 26 | resets = <&cru SRST_CRYPTO>; |
| 27 | reset-names = "crypto-rst"; | 27 | reset-names = "crypto-rst"; |
| 28 | status = "okay"; | ||
| 29 | }; | 28 | }; |
| @@ -15,5 +15,4 @@ Example: · 14 unmodified lines | |||
| 15 | rockchip,pmu = <&pmugrf>; | 15 | rockchip,pmu = <&pmugrf>; |
| 16 | clocks = <&cru PCLK_DDR_MON>; | 16 | clocks = <&cru PCLK_DDR_MON>; |
| 17 | clock-names = "pclk_ddr_mon"; | 17 | clock-names = "pclk_ddr_mon"; |
| 18 | status = "disabled"; | ||
| 19 | }; | 18 | }; |
| @@ -205,5 +205,4 @@ Example: · 204 unmodified lines | |||
| 205 | rockchip,phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>; | 205 | rockchip,phy_lpddr4_ck_cs_drv = <PHY_DRV_ODT_80>; |
| 206 | rockchip,phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>; | 206 | rockchip,phy_lpddr4_dq_drv = <PHY_DRV_ODT_80>; |
| 207 | rockchip,phy_lpddr4_odt = <PHY_DRV_ODT_60>; | 207 | rockchip,phy_lpddr4_odt = <PHY_DRV_ODT_60>; |
| 208 | status = "disabled"; | ||
| 209 | }; | 208 | }; |
| @@ -34,7 +34,6 @@ Example: · 33 unmodified lines | |||
| 34 | pinctrl-names = "default"; | 34 | pinctrl-names = "default"; |
| 35 | pinctrl-0 = <&pinctrl_fb>; | 35 | pinctrl-0 = <&pinctrl_fb>; |
| 36 | display = <&display0>; | 36 | display = <&display0>; |
| 37 | status = "okay"; | ||
| 38 | #address-cells = <1>; | 37 | #address-cells = <1>; |
| 39 | #size-cells = <1>; | 38 | #size-cells = <1>; |
| 40 | 39 | ||
| @@ -23,7 +23,6 @@ Example: · 22 unmodified lines | |||
| 23 | interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>; | 23 | interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>; |
| 24 | clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>; | 24 | clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>; |
| 25 | clock-names = "periph_clk","sys_clk", "slow_clk"; | 25 | clock-names = "periph_clk","sys_clk", "slow_clk"; |
| 26 | status = "disabled"; | ||
| 27 | 26 | ||
| 28 | hlcdc-display-controller { | 27 | hlcdc-display-controller { |
| 29 | compatible = "atmel,hlcdc-display-controller"; | 28 | compatible = "atmel,hlcdc-display-controller"; |
| @@ -33,7 +33,6 @@ stdp2690-ge-b850v3-fw required properties: · 32 unmodified lines | |||
| 33 | Example: | 33 | Example: |
| 34 | 34 | ||
| 35 | &mux2_i2c2 { | 35 | &mux2_i2c2 { |
| 36 | status = "okay"; | ||
| 37 | clock-frequency = <100000>; | 36 | clock-frequency = <100000>; |
| 38 | 37 | ||
| 39 | stdp4028@73 { | 38 | stdp4028@73 { |
| @@ -43,7 +43,6 @@ Example: · 42 unmodified lines | |||
| 43 | clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>; | 43 | clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>; |
| 44 | clock-names = "iahb", "isfr"; | 44 | clock-names = "iahb", "isfr"; |
| 45 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 45 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
| 46 | status = "disabled"; | ||
| 47 | 46 | ||
| 48 | ports { | 47 | ports { |
| 49 | #address-cells = <1>; | 48 | #address-cells = <1>; |
| @@ -14,5 +14,4 @@ timing-controller@4003d000 { · 13 unmodified lines | |||
| 14 | reg = <0x4003d000 0x1000>; | 14 | reg = <0x4003d000 0x1000>; |
| 15 | clocks = <&clks VF610_CLK_TCON0>; | 15 | clocks = <&clks VF610_CLK_TCON0>; |
| 16 | clock-names = "ipg"; | 16 | clock-names = "ipg"; |
| 17 | status = "okay"; | ||
| 18 | }; | 17 | }; |
| @@ -116,7 +116,7 @@ Parallel display support · 115 unmodified lines | |||
| 116 | Required properties: | 116 | Required properties: |
| 117 | - compatible: Should be "fsl,imx-parallel-display" | 117 | - compatible: Should be "fsl,imx-parallel-display" |
| 118 | Optional properties: | 118 | Optional properties: |
| 119 | - interface_pix_fmt: How this display is connected to the | 119 | - interface-pix-fmt: How this display is connected to the |
| 120 | display interface. Currently supported types: "rgb24", "rgb565", "bgr666" | 120 | display interface. Currently supported types: "rgb24", "rgb565", "bgr666" |
| 121 | and "lvds666". | 121 | and "lvds666". |
| 122 | - edid: verbatim EDID data block describing attached display. | 122 | - edid: verbatim EDID data block describing attached display. |
| @@ -23,7 +23,6 @@ Example: · 22 unmodified lines | |||
| 23 | reg = <0x44000000 0x10000>; | 23 | reg = <0x44000000 0x10000>; |
| 24 | interrupts = <17>; | 24 | interrupts = <17>; |
| 25 | clocks = <&clks CLK_LCD>; | 25 | clocks = <&clks CLK_LCD>; |
| 26 | status = "okay"; | ||
| 27 | 26 | ||
| 28 | port { | 27 | port { |
| 29 | lcdc_out: endpoint { | 28 | lcdc_out: endpoint { |
| @@ -18,6 +18,5 @@ Example: · 17 unmodified lines | |||
| 18 | power-supply = <...>; | 18 | power-supply = <...>; |
| 19 | backlight = <&backlight>; | 19 | backlight = <&backlight>; |
| 20 | enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; | 20 | enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; |
| 21 | status = "okay"; | ||
| 22 | }; | 21 | }; |
| 23 | }; | 22 | }; |
| @@ -59,7 +59,6 @@ Example: · 58 unmodified lines | |||
| 59 | pinctrl-names = "default"; | 59 | pinctrl-names = "default"; |
| 60 | pinctrl-0 = <&edp_hpd>; | 60 | pinctrl-0 = <&edp_hpd>; |
| 61 | 61 | ||
| 62 | status = "disabled"; | ||
| 63 | 62 | ||
| 64 | ports { | 63 | ports { |
| 65 | #address-cells = <1>; | 64 | #address-cells = <1>; |
| @@ -46,7 +46,6 @@ hdmi: hdmi@ff980000 { · 45 unmodified lines | |||
| 46 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | 46 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; |
| 47 | clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; | 47 | clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; |
| 48 | clock-names = "iahb", "isfr"; | 48 | clock-names = "iahb", "isfr"; |
| 49 | status = "disabled"; | ||
| 50 | ports { | 49 | ports { |
| 51 | hdmi_in: port { | 50 | hdmi_in: port { |
| 52 | #address-cells = <1>; | 51 | #address-cells = <1>; |
| @@ -36,7 +36,6 @@ Example: · 35 unmodified lines | |||
| 36 | resets = <&cru SRST_MIPIDSI0>; | 36 | resets = <&cru SRST_MIPIDSI0>; |
| 37 | reset-names = "apb"; | 37 | reset-names = "apb"; |
| 38 | rockchip,grf = <&grf>; | 38 | rockchip,grf = <&grf>; |
| 39 | status = "okay"; | ||
| 40 | 39 | ||
| 41 | ports { | 40 | ports { |
| 42 | #address-cells = <1>; | 41 | #address-cells = <1>; |
| @@ -65,6 +64,5 @@ Example: · 22 unmodified lines | |||
| 65 | pinctrl-names = "default"; | 64 | pinctrl-names = "default"; |
| 66 | pinctrl-0 = <&lcd_en>; | 65 | pinctrl-0 = <&lcd_en>; |
| 67 | backlight = <&backlight>; | 66 | backlight = <&backlight>; |
| 68 | status = "okay"; | ||
| 69 | }; | 67 | }; |
| 70 | }; | 68 | }; |
| @@ -25,7 +25,6 @@ hdmi: hdmi@20034000 { · 24 unmodified lines | |||
| 25 | clock-names = "pclk"; | 25 | clock-names = "pclk"; |
| 26 | pinctrl-names = "default"; | 26 | pinctrl-names = "default"; |
| 27 | pinctrl-0 = <&hdmi_ctl>; | 27 | pinctrl-0 = <&hdmi_ctl>; |
| 28 | status = "disabled"; | ||
| 29 | 28 | ||
| 30 | hdmi_in: port { | 29 | hdmi_in: port { |
| 31 | #address-cells = <1>; | 30 | #address-cells = <1>; |
| @@ -28,6 +28,5 @@ chosen { · 27 unmodified lines | |||
| 28 | allwinner,pipeline = "de_be0-lcd0-hdmi"; | 28 | allwinner,pipeline = "de_be0-lcd0-hdmi"; |
| 29 | clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>, | 29 | clocks = <&pll5 1>, <&ahb_gates 36>, <&ahb_gates 43>, |
| 30 | <&ahb_gates 44>; | 30 | <&ahb_gates 44>; |
| 31 | status = "disabled"; | ||
| 32 | }; | 31 | }; |
| 33 | }; | 32 | }; |
| @@ -278,7 +278,6 @@ hdmi: hdmi@01c16000 { · 277 unmodified lines | |||
| 278 | <&dma SUN4I_DMA_NORMAL 16>, | 278 | <&dma SUN4I_DMA_NORMAL 16>, |
| 279 | <&dma SUN4I_DMA_DEDICATED 24>; | 279 | <&dma SUN4I_DMA_DEDICATED 24>; |
| 280 | dma-names = "ddc-tx", "ddc-rx", "audio-tx"; | 280 | dma-names = "ddc-tx", "ddc-rx", "audio-tx"; |
| 281 | status = "disabled"; | ||
| 282 | 281 | ||
| 283 | ports { | 282 | ports { |
| 284 | #address-cells = <1>; | 283 | #address-cells = <1>; |
| @@ -72,5 +72,4 @@ sai2: sai@40031000 { · 71 unmodified lines | |||
| 72 | dma-names = "tx", "rx"; | 72 | dma-names = "tx", "rx"; |
| 73 | dmas = <&edma0 0 21>, | 73 | dmas = <&edma0 0 21>, |
| 74 | <&edma0 0 20>; | 74 | <&edma0 0 20>; |
| 75 | status = "disabled"; | ||
| 76 | }; | 75 | }; |
| @@ -30,7 +30,6 @@ xor@d0060900 { · 29 unmodified lines | |||
| 30 | reg = <0xd0060900 0x100 | 30 | reg = <0xd0060900 0x100 |
| 31 | 0xd0060b00 0x100>; | 31 | 0xd0060b00 0x100>; |
| 32 | clocks = <&coreclk 0>; | 32 | clocks = <&coreclk 0>; |
| 33 | status = "okay"; | ||
| 34 | 33 | ||
| 35 | xor00 { | 34 | xor00 { |
| 36 | interrupts = <51>; | 35 | interrupts = <51>; |
| @@ -48,7 +48,6 @@ Each dmas request consists of 3 cells: · 47 unmodified lines | |||
| 48 | Example: | 48 | Example: |
| 49 | 49 | ||
| 50 | spi4: spi@1a280000 { | 50 | spi4: spi@1a280000 { |
| 51 | status = "ok"; | ||
| 52 | spi-max-frequency = <50000000>; | 51 | spi-max-frequency = <50000000>; |
| 53 | 52 | ||
| 54 | pinctrl-0 = <&spi_pins>; | 53 | pinctrl-0 = <&spi_pins>; |
| @@ -63,7 +63,6 @@ Example: · 62 unmodified lines | |||
| 63 | compatible = "arm,pl011", "arm,primecell"; | 63 | compatible = "arm,pl011", "arm,primecell"; |
| 64 | reg = <0xe0000000 0x1000>; | 64 | reg = <0xe0000000 0x1000>; |
| 65 | interrupts = <0 35 0x4>; | 65 | interrupts = <0 35 0x4>; |
| 66 | status = "disabled"; | ||
| 67 | dmas = <&dmahost 12 0 1>, | 66 | dmas = <&dmahost 12 0 1>, |
| 68 | <&dmahost 13 0 1 0>; | 67 | <&dmahost 13 0 1 0>; |
| 69 | dma-names = "rx", "rx"; | 68 | dma-names = "rx", "rx"; |
| @@ -69,7 +69,6 @@ Example: · 68 unmodified lines | |||
| 69 | 69 | ||
| 70 | sti_uni_player2: sti-uni-player@2 { | 70 | sti_uni_player2: sti-uni-player@2 { |
| 71 | compatible = "st,sti-uni-player"; | 71 | compatible = "st,sti-uni-player"; |
| 72 | status = "disabled"; | ||
| 73 | #sound-dai-cells = <0>; | 72 | #sound-dai-cells = <0>; |
| 74 | st,syscfg = <&syscfg_core>; | 73 | st,syscfg = <&syscfg_core>; |
| 75 | clocks = <&clk_s_d0_flexgen CLK_PCM_2>; | 74 | clocks = <&clk_s_d0_flexgen CLK_PCM_2>; |
| @@ -135,5 +135,4 @@ Example: · 134 unmodified lines | |||
| 135 | <&dma 13 0 0x0>; /* Logical - MemToDev */ | 135 | <&dma 13 0 0x0>; /* Logical - MemToDev */ |
| 136 | dma-names = "rx", "rx"; | 136 | dma-names = "rx", "rx"; |
| 137 | 137 | ||
| 138 | status = "disabled"; | ||
| 139 | }; | 138 | }; |
| @@ -40,7 +40,6 @@ Example: · 39 unmodified lines | |||
| 40 | clock-names = "ahb", "mod"; | 40 | clock-names = "ahb", "mod"; |
| 41 | dmas = <&dma 1 29>, <&dma 1 28>; | 41 | dmas = <&dma 1 29>, <&dma 1 28>; |
| 42 | dma-names = "rx", "tx"; | 42 | dma-names = "rx", "tx"; |
| 43 | status = "disabled"; | ||
| 44 | #address-cells = <1>; | 43 | #address-cells = <1>; |
| 45 | #size-cells = <0>; | 44 | #size-cells = <0>; |
| 46 | }; | 45 | }; |
| @@ -62,7 +62,6 @@ uart1: serial@4806a000 { · 61 unmodified lines | |||
| 62 | interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | 62 | interrupts-extended = <&gic GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; |
| 63 | ti,hwmods = "uart1"; | 63 | ti,hwmods = "uart1"; |
| 64 | clock-frequency = <48000000>; | 64 | clock-frequency = <48000000>; |
| 65 | status = "disabled"; | ||
| 66 | /* Requesting crossbar input 49 and 50 */ | 65 | /* Requesting crossbar input 49 and 50 */ |
| 67 | dmas = <&sdma_xbar 49>, <&sdma_xbar 50>; | 66 | dmas = <&sdma_xbar 49>, <&sdma_xbar 50>; |
| 68 | dma-names = "tx", "rx"; | 67 | dma-names = "tx", "rx"; |
| @@ -102,7 +102,6 @@ mcasp0: mcasp@48038000 { · 101 unmodified lines | |||
| 102 | reg-names = "mpu", "dat"; | 102 | reg-names = "mpu", "dat"; |
| 103 | interrupts = <80>, <81>; | 103 | interrupts = <80>, <81>; |
| 104 | interrupt-names = "tx", "rx"; | 104 | interrupt-names = "tx", "rx"; |
| 105 | status = "disabled"; | ||
| 106 | /* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */ | 105 | /* DMA channels 8 and 9 executed on eDMA TC2 - high priority queue */ |
| 107 | dmas = <&edma 8 2>, | 106 | dmas = <&edma 8 2>, |
| 108 | <&edma 9 2>; | 107 | <&edma 9 2>; |
| @@ -31,7 +31,6 @@ Example for full FPGA configuration: · 30 unmodified lines | |||
| 31 | cell-index = <1>; | 31 | cell-index = <1>; |
| 32 | interrupts = <92>; | 32 | interrupts = <92>; |
| 33 | clocks = <&coreclk 0>; | 33 | clocks = <&coreclk 0>; |
| 34 | status = "okay"; | ||
| 35 | 34 | ||
| 36 | fpga_mgr_spi: fpga-mgr@0 { | 35 | fpga_mgr_spi: fpga-mgr@0 { |
| 37 | compatible = "xlnx,fpga-slave-serial"; | 36 | compatible = "xlnx,fpga-slave-serial"; |
| @@ -23,7 +23,6 @@ gpio0: gpio@1100 { · 22 unmodified lines | |||
| 23 | #gpio-cells = <2>; | 23 | #gpio-cells = <2>; |
| 24 | reg = <0x1100 0x080>; | 24 | reg = <0x1100 0x080>; |
| 25 | interrupts = <78 0x8>; | 25 | interrupts = <78 0x8>; |
| 26 | status = "okay"; | ||
| 27 | }; | 26 | }; |
| 28 | 27 | ||
| 29 | Example of gpio-controller node for a ls2080a SoC: | 28 | Example of gpio-controller node for a ls2080a SoC: |
| @@ -42,7 +42,6 @@ spics: spics@e0700000{ · 41 unmodified lines | |||
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | spi0: spi@e0100000 { | 44 | spi0: spi@e0100000 { |
| 45 | status = "okay"; | ||
| 46 | num-cs = <3>; | 45 | num-cs = <3>; |
| 47 | cs-gpios = <&gpio1 7 0>, <&spics 0>, | 46 | cs-gpios = <&gpio1 7 0>, <&spics 0>, |
| 48 | <&spics 1>; | 47 | <&spics 1>; |
| @@ -10,6 +10,7 @@ Required properties: · 9 unmodified lines | |||
| 10 | * And, optionally, one of the vendor specific compatible: | 10 | * And, optionally, one of the vendor specific compatible: |
| 11 | + allwinner,sun4i-a10-mali | 11 | + allwinner,sun4i-a10-mali |
| 12 | + allwinner,sun7i-a20-mali | 12 | + allwinner,sun7i-a20-mali |
| 13 | + allwinner,sun50i-h5-mali | ||
| 13 | + amlogic,meson-gxbb-mali | 14 | + amlogic,meson-gxbb-mali |
| 14 | + amlogic,meson-gxl-mali | 15 | + amlogic,meson-gxl-mali |
| 15 | + stericsson,db8500-mali | 16 | + stericsson,db8500-mali |
| @@ -58,6 +59,10 @@ to specify one more vendor-specific compatible, among: · 42 unmodified lines | |||
| 58 | Required properties: | 59 | Required properties: |
| 59 | * resets: phandle to the reset line for the GPU | 60 | * resets: phandle to the reset line for the GPU |
| 60 | 61 | ||
| 62 | - allwinner,sun50i-h5-mali | ||
| 63 | Required properties: | ||
| 64 | * resets: phandle to the reset line for the GPU | ||
| 65 | |||
| 61 | - stericsson,db8500-mali | 66 | - stericsson,db8500-mali |
| 62 | Required properties: | 67 | Required properties: |
| 63 | * interrupt-names and interrupts: | 68 | * interrupt-names and interrupts: |
| @@ -51,7 +51,6 @@ Example for GK20A: · 50 unmodified lines | |||
| 51 | resets = <&tegra_car 184>; | 51 | resets = <&tegra_car 184>; |
| 52 | reset-names = "gpu"; | 52 | reset-names = "gpu"; |
| 53 | iommus = <&mc TEGRA_SWGROUP_GPU>; | 53 | iommus = <&mc TEGRA_SWGROUP_GPU>; |
| 54 | status = "disabled"; | ||
| 55 | }; | 54 | }; |
| 56 | 55 | ||
| 57 | Example for GM20B: | 56 | Example for GM20B: |
| @@ -70,7 +69,6 @@ Example for GM20B: · 12 unmodified lines | |||
| 70 | resets = <&tegra_car 184>; | 69 | resets = <&tegra_car 184>; |
| 71 | reset-names = "gpu"; | 70 | reset-names = "gpu"; |
| 72 | iommus = <&mc TEGRA_SWGROUP_GPU>; | 71 | iommus = <&mc TEGRA_SWGROUP_GPU>; |
| 73 | status = "disabled"; | ||
| 74 | }; | 72 | }; |
| 75 | 73 | ||
| 76 | Example for GP10B: | 74 | Example for GP10B: |
| @@ -89,5 +87,4 @@ Example for GP10B: · 12 unmodified lines | |||
| 89 | reset-names = "gpu"; | 87 | reset-names = "gpu"; |
| 90 | power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>; | 88 | power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>; |
| 91 | iommus = <&smmu TEGRA186_SID_GPU>; | 89 | iommus = <&smmu TEGRA186_SID_GPU>; |
| 92 | status = "disabled"; | ||
| 93 | }; | 90 | }; |
| @@ -24,5 +24,4 @@ Example: · 23 unmodified lines | |||
| 24 | interrupts = <0 89 0>; | 24 | interrupts = <0 89 0>; |
| 25 | clocks = <&clock 177>, <&clock 277>; | 25 | clocks = <&clock 177>, <&clock 277>; |
| 26 | clock-names = "sclk_fimg2d", "fimg2d"; | 26 | clock-names = "sclk_fimg2d", "fimg2d"; |
| 27 | status = "disabled"; | ||
| 28 | }; | 27 | }; |
| @@ -92,6 +92,5 @@ ssi-controller@48058000 { · 91 unmodified lines | |||
| 92 | interrupts = <69>, | 92 | interrupts = <69>, |
| 93 | <70>; | 93 | <70>; |
| 94 | 94 | ||
| 95 | status = "disabled"; /* second port is not used on N900 */ | ||
| 96 | } | 95 | } |
| 97 | } | 96 | } |
| @@ -102,7 +102,6 @@ And for clarification, here are the snipplets for the i2c-parents: · 101 unmodified lines | |||
| 102 | #address-cells = <1>; | 102 | #address-cells = <1>; |
| 103 | #size-cells = <0>; | 103 | #size-cells = <0>; |
| 104 | compatible = "i2c-gpio"; | 104 | compatible = "i2c-gpio"; |
| 105 | status = "disabled"; | ||
| 106 | gpios = <&gpio5 6 GPIO_ACTIVE_HIGH /* sda */ | 105 | gpios = <&gpio5 6 GPIO_ACTIVE_HIGH /* sda */ |
| 107 | &gpio5 5 GPIO_ACTIVE_HIGH /* scl */ | 106 | &gpio5 5 GPIO_ACTIVE_HIGH /* scl */ |
| 108 | >; | 107 | >; |
| @@ -22,7 +22,6 @@ Example: · 21 unmodified lines | |||
| 22 | interrupts = <9>; | 22 | interrupts = <9>; |
| 23 | clocks = <&cmu clk_HFPERCLKI2C0>; | 23 | clocks = <&cmu clk_HFPERCLKI2C0>; |
| 24 | clock-frequency = <100000>; | 24 | clock-frequency = <100000>; |
| 25 | status = "ok"; | ||
| 26 | energymicro,location = <3>; | 25 | energymicro,location = <3>; |
| 27 | 26 | ||
| 28 | eeprom@50 { | 27 | eeprom@50 { |
| @@ -71,5 +71,4 @@ Example: · 70 unmodified lines | |||
| 71 | reset-names = "i2c"; | 71 | reset-names = "i2c"; |
| 72 | dmas = <&apbdma 16>, <&apbdma 16>; | 72 | dmas = <&apbdma 16>, <&apbdma 16>; |
| 73 | dma-names = "rx", "tx"; | 73 | dma-names = "rx", "tx"; |
| 74 | status = "disabled"; | ||
| 75 | }; | 74 | }; |
| @@ -37,5 +37,4 @@ For example: · 36 unmodified lines | |||
| 37 | clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>; | 37 | clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>; |
| 38 | clock-names = "tsc_clk"; | 38 | clock-names = "tsc_clk"; |
| 39 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; | 39 | interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; |
| 40 | status = "disabled"; | ||
| 41 | }; | 40 | }; |
| @@ -17,5 +17,4 @@ adc0: adc@400e3000 { · 16 unmodified lines | |||
| 17 | clocks = <&ccu1 CLK_APB3_ADC0>; | 17 | clocks = <&ccu1 CLK_APB3_ADC0>; |
| 18 | vref-supply = <®_vdda>; | 18 | vref-supply = <®_vdda>; |
| 19 | resets = <&rgu 40>; | 19 | resets = <&rgu 40>; |
| 20 | status = "disabled"; | ||
| 21 | }; | 20 | }; |
| @@ -16,5 +16,4 @@ dac: dac@400e1000 { · 15 unmodified lines | |||
| 16 | clocks = <&ccu1 CLK_APB3_DAC>; | 16 | clocks = <&ccu1 CLK_APB3_DAC>; |
| 17 | vref-supply = <®_vdda>; | 17 | vref-supply = <®_vdda>; |
| 18 | resets = <&rgu 42>; | 18 | resets = <&rgu 42>; |
| 19 | status = "disabled"; | ||
| 20 | }; | 19 | }; |
| @@ -72,7 +72,6 @@ Example: · 71 unmodified lines | |||
| 72 | /* Required Board specific properties */ | 72 | /* Required Board specific properties */ |
| 73 | keypad,num-rows = <5>; | 73 | keypad,num-rows = <5>; |
| 74 | keypad,num-columns = <5>; | 74 | keypad,num-columns = <5>; |
| 75 | status = "okay"; | ||
| 76 | 75 | ||
| 77 | linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */ | 76 | linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_F) /* key_forward */ |
| 78 | MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */ | 77 | MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */ |
| @@ -43,7 +43,7 @@ haptics: haptics@5a { · 42 unmodified lines | |||
| 43 | mode = <DRV260X_LRA_MODE>; | 43 | mode = <DRV260X_LRA_MODE>; |
| 44 | library-sel = <DRV260X_LIB_LRA>; | 44 | library-sel = <DRV260X_LIB_LRA>; |
| 45 | vib-rated-mv = <3200>; | 45 | vib-rated-mv = <3200>; |
| 46 | vib-overdriver-mv = <3200>; | 46 | vib-overdrive-mv = <3200>; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | For more product information please see the link below: | 49 | For more product information please see the link below: |
| @@ -32,5 +32,4 @@ Example: · 31 unmodified lines | |||
| 32 | pinctrl-1 = <&pinctrl_touchctrl_default>; | 32 | pinctrl-1 = <&pinctrl_touchctrl_default>; |
| 33 | pinctrl-2 = <&pinctrl_touchctrl_gpios>; | 33 | pinctrl-2 = <&pinctrl_touchctrl_gpios>; |
| 34 | vf50-ts-min-pressure = <200>; | 34 | vf50-ts-min-pressure = <200>; |
| 35 | status = "disabled"; | ||
| 36 | }; | 35 | }; |
| @@ -35,5 +35,4 @@ Example: · 34 unmodified lines | |||
| 35 | measure-delay-time = <0xfff>; | 35 | measure-delay-time = <0xfff>; |
| 36 | pre-charge-time = <0xffff>; | 36 | pre-charge-time = <0xffff>; |
| 37 | touchscreen-average-samples = <32>; | 37 | touchscreen-average-samples = <32>; |
| 38 | status = "okay"; | ||
| 39 | }; | 38 | }; |
| @@ -24,7 +24,6 @@ Example: · 23 unmodified lines | |||
| 24 | clock-frequency = <50000000>; | 24 | clock-frequency = <50000000>; |
| 25 | clock-output-names = "qci_mclk"; | 25 | clock-output-names = "qci_mclk"; |
| 26 | 26 | ||
| 27 | status = "okay"; | ||
| 28 | 27 | ||
| 29 | port { | 28 | port { |
| 30 | #address-cells = <1>; | 29 | #address-cells = <1>; |
| @@ -33,5 +33,4 @@ hdmicec: cec@100B0000 { · 32 unmodified lines | |||
| 33 | hdmi-phandle = <&hdmi>; | 33 | hdmi-phandle = <&hdmi>; |
| 34 | pinctrl-names = "default"; | 34 | pinctrl-names = "default"; |
| 35 | pinctrl-0 = <&hdmi_cec>; | 35 | pinctrl-0 = <&hdmi_cec>; |
| 36 | status = "okay"; | ||
| 37 | }; | 36 | }; |
| @@ -166,7 +166,6 @@ Example: · 165 unmodified lines | |||
| 166 | clock-output-names = "cam_a_clkout", "cam_b_clkout"; | 166 | clock-output-names = "cam_a_clkout", "cam_b_clkout"; |
| 167 | pinctrl-names = "default"; | 167 | pinctrl-names = "default"; |
| 168 | pinctrl-0 = <&cam_port_a_clk_active>; | 168 | pinctrl-0 = <&cam_port_a_clk_active>; |
| 169 | status = "okay"; | ||
| 170 | #address-cells = <1>; | 169 | #address-cells = <1>; |
| 171 | #size-cells = <1>; | 170 | #size-cells = <1>; |
| 172 | 171 | ||
| @@ -189,7 +188,6 @@ Example: · 16 unmodified lines | |||
| 189 | compatible = "samsung,exynos4210-fimc"; | 188 | compatible = "samsung,exynos4210-fimc"; |
| 190 | reg = <0x11800000 0x1000>; | 189 | reg = <0x11800000 0x1000>; |
| 191 | interrupts = <0 85 0>; | 190 | interrupts = <0 85 0>; |
| 192 | status = "okay"; | ||
| 193 | }; | 191 | }; |
| 194 | 192 | ||
| 195 | csis_0: csis@11880000 { | 193 | csis_0: csis@11880000 { |
| @@ -52,7 +52,6 @@ Example: · 51 unmodified lines | |||
| 52 | 52 | ||
| 53 | c8sectpfe@08a20000 { | 53 | c8sectpfe@08a20000 { |
| 54 | compatible = "st,stih407-c8sectpfe"; | 54 | compatible = "st,stih407-c8sectpfe"; |
| 55 | status = "okay"; | ||
| 56 | reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>; | 55 | reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>; |
| 57 | reg-names = "stfe", "stfe-ram"; | 56 | reg-names = "stfe", "stfe-ram"; |
| 58 | interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>; | 57 | interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>; |
| @@ -59,7 +59,6 @@ I2C-connected TVP5147 decoder: · 58 unmodified lines | |||
| 59 | tvp5147@5d { | 59 | tvp5147@5d { |
| 60 | compatible = "ti,tvp5147"; | 60 | compatible = "ti,tvp5147"; |
| 61 | reg = <0x5d>; | 61 | reg = <0x5d>; |
| 62 | status = "okay"; | ||
| 63 | 62 | ||
| 64 | port { | 63 | port { |
| 65 | composite_in: endpoint { | 64 | composite_in: endpoint { |
| @@ -130,7 +130,6 @@ The reg property implicitly specifies the chip select as this: · 129 unmodified lines | |||
| 130 | Example: | 130 | Example: |
| 131 | 131 | ||
| 132 | devbus-bootcs@d0010400 { | 132 | devbus-bootcs@d0010400 { |
| 133 | status = "okay"; | ||
| 134 | ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf0000000, size 0x1000000 */ | 133 | ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf0000000, size 0x1000000 */ |
| 135 | #address-cells = <1>; | 134 | #address-cells = <1>; |
| 136 | #size-cells = <1>; | 135 | #size-cells = <1>; |
| @@ -12,7 +12,6 @@ Example: · 11 unmodified lines | |||
| 12 | pmic@5b { | 12 | pmic@5b { |
| 13 | compatible = "active-semi,act8945a"; | 13 | compatible = "active-semi,act8945a"; |
| 14 | reg = <0x5b>; | 14 | reg = <0x5b>; |
| 15 | status = "okay"; | ||
| 16 | 15 | ||
| 17 | active-semi,vsel-high; | 16 | active-semi,vsel-high; |
| 18 | 17 | ||
| @@ -79,6 +78,5 @@ Example: · 60 unmodified lines | |||
| 79 | active-semi,input-voltage-threshold-microvolt = <6600>; | 78 | active-semi,input-voltage-threshold-microvolt = <6600>; |
| 80 | active-semi,precondition-timeout = <40>; | 79 | active-semi,precondition-timeout = <40>; |
| 81 | active-semi,total-timeout = <3>; | 80 | active-semi,total-timeout = <3>; |
| 82 | status = "okay"; | ||
| 83 | }; | 81 | }; |
| 84 | }; | 82 | }; |
| @@ -25,7 +25,6 @@ Example: · 24 unmodified lines | |||
| 25 | clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>; | 25 | clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>; |
| 26 | clock-names = "periph_clk","sys_clk", "slow_clk"; | 26 | clock-names = "periph_clk","sys_clk", "slow_clk"; |
| 27 | interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>; | 27 | interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>; |
| 28 | status = "disabled"; | ||
| 29 | 28 | ||
| 30 | hlcdc-display-controller { | 29 | hlcdc-display-controller { |
| 31 | compatible = "atmel,hlcdc-display-controller"; | 30 | compatible = "atmel,hlcdc-display-controller"; |
| @@ -37,7 +37,6 @@ Sub-nodes: · 36 unmodified lines | |||
| 37 | Examples: | 37 | Examples: |
| 38 | 38 | ||
| 39 | i2c@63fc8000 { /* I2C1 */ | 39 | i2c@63fc8000 { /* I2C1 */ |
| 40 | status = "okay"; | ||
| 41 | 40 | ||
| 42 | pmic: dialog@48 { | 41 | pmic: dialog@48 { |
| 43 | compatible = "dlg,da9053-aa"; | 42 | compatible = "dlg,da9053-aa"; |
| @@ -116,7 +116,6 @@ ecspi@70010000 { /* ECSPI1 */ · 115 unmodified lines | |||
| 116 | fsl,spi-num-chipselects = <2>; | 116 | fsl,spi-num-chipselects = <2>; |
| 117 | cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */ | 117 | cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */ |
| 118 | <&gpio4 25 0>; /* GPIO4_25 */ | 118 | <&gpio4 25 0>; /* GPIO4_25 */ |
| 119 | status = "okay"; | ||
| 120 | 119 | ||
| 121 | pmic: mc13892@0 { | 120 | pmic: mc13892@0 { |
| 122 | #address-cells = <1>; | 121 | #address-cells = <1>; |
| @@ -26,7 +26,6 @@ Example for i.MX23 SoC: · 25 unmodified lines | |||
| 26 | compatible = "fsl,imx23-lradc"; | 26 | compatible = "fsl,imx23-lradc"; |
| 27 | reg = <0x80050000 0x2000>; | 27 | reg = <0x80050000 0x2000>; |
| 28 | interrupts = <36 37 38 39 40 41 42 43 44>; | 28 | interrupts = <36 37 38 39 40 41 42 43 44>; |
| 29 | status = "okay"; | ||
| 30 | fsl,lradc-touchscreen-wires = <4>; | 29 | fsl,lradc-touchscreen-wires = <4>; |
| 31 | fsl,ave-ctrl = <4>; | 30 | fsl,ave-ctrl = <4>; |
| 32 | fsl,ave-delay = <2>; | 31 | fsl,ave-delay = <2>; |
| @@ -39,7 +38,6 @@ Example for i.MX28 SoC: · 6 unmodified lines | |||
| 39 | compatible = "fsl,imx28-lradc"; | 38 | compatible = "fsl,imx28-lradc"; |
| 40 | reg = <0x80050000 0x2000>; | 39 | reg = <0x80050000 0x2000>; |
| 41 | interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>; | 40 | interrupts = <10 14 15 16 17 18 19 20 21 22 23 24 25>; |
| 42 | status = "okay"; | ||
| 43 | fsl,lradc-touchscreen-wires = <5>; | 41 | fsl,lradc-touchscreen-wires = <5>; |
| 44 | fsl,ave-ctrl = <4>; | 42 | fsl,ave-ctrl = <4>; |
| 45 | fsl,ave-delay = <2>; | 43 | fsl,ave-delay = <2>; |
| @@ -57,7 +57,6 @@ audio-subsystem { · 56 unmodified lines | |||
| 57 | clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; | 57 | clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; |
| 58 | pinctrl-names = "default"; | 58 | pinctrl-names = "default"; |
| 59 | pinctrl-0 = <&i2s0_bus>; | 59 | pinctrl-0 = <&i2s0_bus>; |
| 60 | status = "disabled"; | ||
| 61 | }; | 60 | }; |
| 62 | 61 | ||
| 63 | serial_3: serial@11460000 { | 62 | serial_3: serial@11460000 { |
| @@ -69,6 +68,5 @@ audio-subsystem { · 5 unmodified lines | |||
| 69 | clock-names = "uart", "clk_uart_baud0"; | 68 | clock-names = "uart", "clk_uart_baud0"; |
| 70 | pinctrl-names = "default"; | 69 | pinctrl-names = "default"; |
| 71 | pinctrl-0 = <&uart_aud_bus>; | 70 | pinctrl-0 = <&uart_aud_bus>; |
| 72 | status = "disabled"; | ||
| 73 | }; | 71 | }; |
| 74 | }; | 72 | }; |
| @@ -47,5 +47,4 @@ ssc0: ssc@f0010000 { · 46 unmodified lines | |||
| 47 | dma-names = "tx", "rx"; | 47 | dma-names = "tx", "rx"; |
| 48 | pinctrl-names = "default"; | 48 | pinctrl-names = "default"; |
| 49 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | 49 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; |
| 50 | status = "disabled"; | ||
| 51 | }; | 50 | }; |
| @@ -74,5 +74,4 @@ Example: · 73 unmodified lines | |||
| 74 | phys = <&emmc_phy>; | 74 | phys = <&emmc_phy>; |
| 75 | phy-names = "phy_arasan"; | 75 | phy-names = "phy_arasan"; |
| 76 | #clock-cells = <0>; | 76 | #clock-cells = <0>; |
| 77 | status = "disabled"; | ||
| 78 | }; | 77 | }; |
| @@ -24,7 +24,6 @@ mmc0: mmc@1c40000 { · 23 unmodified lines | |||
| 24 | compatible = "ti,da830-mmc", | 24 | compatible = "ti,da830-mmc", |
| 25 | reg = <0x40000 0x1000>; | 25 | reg = <0x40000 0x1000>; |
| 26 | interrupts = <16>; | 26 | interrupts = <16>; |
| 27 | status = "okay"; | ||
| 28 | bus-width = <4>; | 27 | bus-width = <4>; |
| 29 | max-frequency = <50000000>; | 28 | max-frequency = <50000000>; |
| 30 | dmas = <&edma 16 | 29 | dmas = <&edma 16 |
| @@ -20,5 +20,4 @@ sdhci1: sdhci@10014000 { · 19 unmodified lines | |||
| 20 | dma-names = "rx-tx"; | 20 | dma-names = "rx-tx"; |
| 21 | bus-width = <4>; | 21 | bus-width = <4>; |
| 22 | cd-gpios = <&gpio3 29>; | 22 | cd-gpios = <&gpio3 29>; |
| 23 | status = "okay"; | ||
| 24 | }; | 23 | }; |
| @@ -21,7 +21,6 @@ Example: · 20 unmodified lines | |||
| 21 | vmmc-supply = <®_vcc3v3>; | 21 | vmmc-supply = <®_vcc3v3>; |
| 22 | bus-width = <8>; | 22 | bus-width = <8>; |
| 23 | non-removable; | 23 | non-removable; |
| 24 | status = "okay"; | ||
| 25 | 24 | ||
| 26 | mmccard: mmccard@0 { | 25 | mmccard: mmccard@0 { |
| 27 | reg = <0>; | 26 | reg = <0>; |
| @@ -153,7 +153,6 @@ mmc3: mmc@01c12000 { · 152 unmodified lines | |||
| 153 | bus-width = <4>; | 153 | bus-width = <4>; |
| 154 | non-removable; | 154 | non-removable; |
| 155 | mmc-pwrseq = <&sdhci0_pwrseq> | 155 | mmc-pwrseq = <&sdhci0_pwrseq> |
| 156 | status = "okay"; | ||
| 157 | 156 | ||
| 158 | brcmf: bcrmf@1 { | 157 | brcmf: bcrmf@1 { |
| 159 | reg = <1>; | 158 | reg = <1>; |
| @@ -13,5 +13,4 @@ Example: · 12 unmodified lines | |||
| 13 | reg = <0xd00d4000 0x200>; | 13 | reg = <0xd00d4000 0x200>; |
| 14 | interrupts = <54>; | 14 | interrupts = <54>; |
| 15 | clocks = <&gateclk 17>; | 15 | clocks = <&gateclk 17>; |
| 16 | status = "disabled"; | ||
| 17 | }; | 16 | }; |
| @@ -63,7 +63,6 @@ Example: · 62 unmodified lines | |||
| 63 | 63 | ||
| 64 | mmc0: sdhci@fe81e000 { | 64 | mmc0: sdhci@fe81e000 { |
| 65 | compatible = "st,sdhci"; | 65 | compatible = "st,sdhci"; |
| 66 | status = "disabled"; | ||
| 67 | reg = <0xfe81e000 0x1000>; | 66 | reg = <0xfe81e000 0x1000>; |
| 68 | interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>; | 67 | interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>; |
| 69 | interrupt-names = "mmcirq"; | 68 | interrupt-names = "mmcirq"; |
| @@ -77,7 +76,6 @@ mmc0: sdhci@fe81e000 { · 7 unmodified lines | |||
| 77 | 76 | ||
| 78 | mmc1: sdhci@09080000 { | 77 | mmc1: sdhci@09080000 { |
| 79 | compatible = "st,sdhci-stih407", "st,sdhci"; | 78 | compatible = "st,sdhci-stih407", "st,sdhci"; |
| 80 | status = "disabled"; | ||
| 81 | reg = <0x09080000 0x7ff>; | 79 | reg = <0x09080000 0x7ff>; |
| 82 | reg-names = "mmc"; | 80 | reg-names = "mmc"; |
| 83 | interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>; | 81 | interrupts = <GIC_SPI 90 IRQ_TYPE_NONE>; |
| @@ -94,7 +92,6 @@ mmc1: sdhci@09080000 { · 10 unmodified lines | |||
| 94 | 92 | ||
| 95 | mmc0: sdhci@09060000 { | 93 | mmc0: sdhci@09060000 { |
| 96 | compatible = "st,sdhci-stih407", "st,sdhci"; | 94 | compatible = "st,sdhci-stih407", "st,sdhci"; |
| 97 | status = "disabled"; | ||
| 98 | reg = <0x09060000 0x7ff>, <0x9061008 0x20>; | 95 | reg = <0x09060000 0x7ff>, <0x9061008 0x20>; |
| 99 | reg-names = "mmc", "top-mmc-delay"; | 96 | reg-names = "mmc", "top-mmc-delay"; |
| 100 | interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>; | 97 | interrupts = <GIC_SPI 92 IRQ_TYPE_NONE>; |
| @@ -28,5 +28,4 @@ Example: · 27 unmodified lines | |||
| 28 | max-frequency = <50000000>; | 28 | max-frequency = <50000000>; |
| 29 | cap-sdio-irq; | 29 | cap-sdio-irq; |
| 30 | cap-sd-highspeed; | 30 | cap-sd-highspeed; |
| 31 | status = "disabled"; | ||
| 32 | }; | 31 | }; |
| @@ -24,7 +24,6 @@ spi@f0020000 { · 23 unmodified lines | |||
| 24 | #size-cells = <0>; | 24 | #size-cells = <0>; |
| 25 | pinctrl-names = "default"; | 25 | pinctrl-names = "default"; |
| 26 | pinctrl-0 = <&pinctrl_spi0_default>; | 26 | pinctrl-0 = <&pinctrl_spi0_default>; |
| 27 | status = "okay"; | ||
| 28 | 27 | ||
| 29 | m25p80@0 { | 28 | m25p80@0 { |
| 30 | ... | 29 | ... |
| @@ -37,7 +37,6 @@ nor_flash: spi@1100d000 { · 36 unmodified lines | |||
| 37 | clock-names = "spi", "sf"; | 37 | clock-names = "spi", "sf"; |
| 38 | #address-cells = <1>; | 38 | #address-cells = <1>; |
| 39 | #size-cells = <0>; | 39 | #size-cells = <0>; |
| 40 | status = "disabled"; | ||
| 41 | 40 | ||
| 42 | flash@0 { | 41 | flash@0 { |
| 43 | compatible = "jedec,spi-nor"; | 42 | compatible = "jedec,spi-nor"; |
| @@ -21,6 +21,5 @@ Example: · 20 unmodified lines | |||
| 21 | st,syscfg = <&syscfg_rear>; | 21 | st,syscfg = <&syscfg_rear>; |
| 22 | st,boot-device-reg = <0x958>; | 22 | st,boot-device-reg = <0x958>; |
| 23 | st,boot-device-spi = <0x1a>; | 23 | st,boot-device-spi = <0x1a>; |
| 24 | status = "okay"; | ||
| 25 | }; | 24 | }; |
| 26 | 25 | ||
| @@ -41,7 +41,6 @@ nfc: nand@01c03000 { · 40 unmodified lines | |||
| 41 | #size-cells = <0>; | 41 | #size-cells = <0>; |
| 42 | pinctrl-names = "default"; | 42 | pinctrl-names = "default"; |
| 43 | pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>; | 43 | pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>; |
| 44 | status = "okay"; | ||
| 45 | 44 | ||
| 46 | nand@0 { | 45 | nand@0 { |
| 47 | reg = <0>; | 46 | reg = <0>; |
| @@ -27,5 +27,4 @@ amac0: ethernet@18022000 { · 26 unmodified lines | |||
| 27 | <0x18110000 0x1000>; | 27 | <0x18110000 0x1000>; |
| 28 | reg-names = "amac_base", "idm_base"; | 28 | reg-names = "amac_base", "idm_base"; |
| 29 | interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; | 29 | interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; |
| 30 | status = "disabled"; | ||
| 31 | }; | 30 | }; |
| @@ -29,7 +29,6 @@ Example: · 28 unmodified lines | |||
| 29 | Following example uses irq pin number 3 of gpio0 for out of band wake-on-bt: | 29 | Following example uses irq pin number 3 of gpio0 for out of band wake-on-bt: |
| 30 | 30 | ||
| 31 | &usb_host1_ehci { | 31 | &usb_host1_ehci { |
| 32 | status = "okay"; | ||
| 33 | #address-cells = <1>; | 32 | #address-cells = <1>; |
| 34 | #size-cells = <0>; | 33 | #size-cells = <0>; |
| 35 | 34 | ||
| @@ -56,7 +56,6 @@ m_can1: can@020e8000 { · 55 unmodified lines | |||
| 56 | <&clks IMX6SX_CLK_CANFD>; | 56 | <&clks IMX6SX_CLK_CANFD>; |
| 57 | clock-names = "hclk", "cclk"; | 57 | clock-names = "hclk", "cclk"; |
| 58 | bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; | 58 | bosch,mram-cfg = <0x0 0 0 32 0 0 0 1>; |
| 59 | status = "disabled"; | ||
| 60 | }; | 59 | }; |
| 61 | 60 | ||
| 62 | Board dts: | 61 | Board dts: |
| @@ -24,7 +24,6 @@ Ethernet switch connected via SPI to the host, CPU port wired to eth0: · 23 unmodified lines | |||
| 24 | pinctrl-0 = <&pinctrl_spi_ksz>; | 24 | pinctrl-0 = <&pinctrl_spi_ksz>; |
| 25 | cs-gpios = <&pioC 25 0>; | 25 | cs-gpios = <&pioC 25 0>; |
| 26 | id = <1>; | 26 | id = <1>; |
| 27 | status = "okay"; | ||
| 28 | 27 | ||
| 29 | ksz9477: ksz9477@0 { | 28 | ksz9477: ksz9477@0 { |
| 30 | compatible = "microchip,ksz9477"; | 29 | compatible = "microchip,ksz9477"; |
| @@ -34,7 +33,6 @@ Ethernet switch connected via SPI to the host, CPU port wired to eth0: · 3 unmodified lines | |||
| 34 | spi-cpha; | 33 | spi-cpha; |
| 35 | spi-cpol; | 34 | spi-cpol; |
| 36 | 35 | ||
| 37 | status = "okay"; | ||
| 38 | ports { | 36 | ports { |
| 39 | #address-cells = <1>; | 37 | #address-cells = <1>; |
| 40 | #size-cells = <0>; | 38 | #size-cells = <0>; |
| @@ -27,7 +27,6 @@ Example: · 26 unmodified lines | |||
| 27 | I2C managed mode: | 27 | I2C managed mode: |
| 28 | 28 | ||
| 29 | master: masterdevice@X { | 29 | master: masterdevice@X { |
| 30 | status = "okay"; | ||
| 31 | 30 | ||
| 32 | fixed-link { /* RMII fixed link to LAN9303 */ | 31 | fixed-link { /* RMII fixed link to LAN9303 */ |
| 33 | speed = <100>; | 32 | speed = <100>; |
| @@ -38,7 +37,6 @@ I2C managed mode: · 4 unmodified lines | |||
| 38 | switch: switch@a { | 37 | switch: switch@a { |
| 39 | compatible = "smsc,lan9303-i2c"; | 38 | compatible = "smsc,lan9303-i2c"; |
| 40 | reg = <0xa>; | 39 | reg = <0xa>; |
| 41 | status = "okay"; | ||
| 42 | reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; | 40 | reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; |
| 43 | reset-duration = <200>; | 41 | reset-duration = <200>; |
| 44 | 42 | ||
| @@ -67,7 +65,6 @@ I2C managed mode: · 22 unmodified lines | |||
| 67 | MDIO managed mode: | 65 | MDIO managed mode: |
| 68 | 66 | ||
| 69 | master: masterdevice@X { | 67 | master: masterdevice@X { |
| 70 | status = "okay"; | ||
| 71 | phy-handle = <&switch>; | 68 | phy-handle = <&switch>; |
| 72 | 69 | ||
| 73 | mdio { | 70 | mdio { |
| @@ -30,6 +30,5 @@ Example: · 29 unmodified lines | |||
| 30 | compatible = "aspeed,ast2500-mac", "faraday,ftgmac100"; | 30 | compatible = "aspeed,ast2500-mac", "faraday,ftgmac100"; |
| 31 | reg = <0x1e660000 0x180>; | 31 | reg = <0x1e660000 0x180>; |
| 32 | interrupts = <2>; | 32 | interrupts = <2>; |
| 33 | status = "okay"; | ||
| 34 | use-ncsi; | 33 | use-ncsi; |
| 35 | }; | 34 | }; |
| @@ -41,7 +41,6 @@ ethernet@70000 { · 40 unmodified lines | |||
| 41 | interrupts = <8>; | 41 | interrupts = <8>; |
| 42 | clocks = <&gate_clk 4>; | 42 | clocks = <&gate_clk 4>; |
| 43 | tx-csum-limit = <9800> | 43 | tx-csum-limit = <9800> |
| 44 | status = "okay"; | ||
| 45 | phy = <&phy0>; | 44 | phy = <&phy0>; |
| 46 | phy-mode = "rgmii-id"; | 45 | phy-mode = "rgmii-id"; |
| 47 | buffer-manager = <&bm>; | 46 | buffer-manager = <&bm>; |
| @@ -44,7 +44,6 @@ Example for SDIO device follows (calibration data is also available in · 43 unmodified lines | |||
| 44 | below example). | 44 | below example). |
| 45 | 45 | ||
| 46 | &mmc3 { | 46 | &mmc3 { |
| 47 | status = "okay"; | ||
| 48 | vmmc-supply = <&wlan_en_reg>; | 47 | vmmc-supply = <&wlan_en_reg>; |
| 49 | bus-width = <4>; | 48 | bus-width = <4>; |
| 50 | cap-power-off-card; | 49 | cap-power-off-card; |
| @@ -70,7 +69,6 @@ below example). · 19 unmodified lines | |||
| 70 | Example for USB device: | 69 | Example for USB device: |
| 71 | 70 | ||
| 72 | &usb_host1_ohci { | 71 | &usb_host1_ohci { |
| 73 | status = "okay"; | ||
| 74 | #address-cells = <1>; | 72 | #address-cells = <1>; |
| 75 | #size-cells = <0>; | 73 | #size-cells = <0>; |
| 76 | 74 | ||
| @@ -31,7 +31,6 @@ bm: bm@c8000 { · 30 unmodified lines | |||
| 31 | reg = <0xc8000 0xac>; | 31 | reg = <0xc8000 0xac>; |
| 32 | clocks = <&gateclk 13>; | 32 | clocks = <&gateclk 13>; |
| 33 | internal-mem = <&bm_bppi>; | 33 | internal-mem = <&bm_bppi>; |
| 34 | status = "okay"; | ||
| 35 | pool2,capacity = <4096>; | 34 | pool2,capacity = <4096>; |
| 36 | pool1,pkt-size = <512>; | 35 | pool1,pkt-size = <512>; |
| 37 | }; | 36 | }; |
| @@ -45,5 +44,4 @@ bm_bppi: bm-bppi { · 7 unmodified lines | |||
| 45 | #address-cells = <1>; | 44 | #address-cells = <1>; |
| 46 | #size-cells = <1>; | 45 | #size-cells = <1>; |
| 47 | clocks = <&gateclk 13>; | 46 | clocks = <&gateclk 13>; |
| 48 | status = "okay"; | ||
| 49 | }; | 47 | }; |
| @@ -57,12 +57,10 @@ ethernet@f0000 { · 56 unmodified lines | |||
| 57 | <0xc5000 0x100>; | 57 | <0xc5000 0x100>; |
| 58 | clocks = <&gateclk 3>, <&gateclk 19>; | 58 | clocks = <&gateclk 3>, <&gateclk 19>; |
| 59 | clock-names = "pp_clk", "gop_clk"; | 59 | clock-names = "pp_clk", "gop_clk"; |
| 60 | status = "okay"; | ||
| 61 | 60 | ||
| 62 | eth0: eth0@c4000 { | 61 | eth0: eth0@c4000 { |
| 63 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | 62 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; |
| 64 | port-id = <0>; | 63 | port-id = <0>; |
| 65 | status = "okay"; | ||
| 66 | phy = <&phy0>; | 64 | phy = <&phy0>; |
| 67 | phy-mode = "gmii"; | 65 | phy-mode = "gmii"; |
| 68 | }; | 66 | }; |
| @@ -70,7 +68,6 @@ ethernet@f0000 { · 1 unmodified line | |||
| 70 | eth1: eth1@c5000 { | 68 | eth1: eth1@c5000 { |
| 71 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | 69 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; |
| 72 | port-id = <1>; | 70 | port-id = <1>; |
| 73 | status = "okay"; | ||
| 74 | phy = <&phy3>; | 71 | phy = <&phy3>; |
| 75 | phy-mode = "gmii"; | 72 | phy-mode = "gmii"; |
| 76 | }; | 73 | }; |
| @@ -66,5 +66,4 @@ Example for GXBB: · 65 unmodified lines | |||
| 66 | <&clkc CLKID_MPLL2>; | 66 | <&clkc CLKID_MPLL2>; |
| 67 | clock-names = "stmmaceth", "clkin0", "clkin1"; | 67 | clock-names = "stmmaceth", "clkin0", "clkin1"; |
| 68 | phy-mode = "rgmii"; | 68 | phy-mode = "rgmii"; |
| 69 | status = "disabled"; | ||
| 70 | }; | 69 | }; |
| @@ -69,7 +69,6 @@ Examples: · 68 unmodified lines | |||
| 69 | }; | 69 | }; |
| 70 | }; | 70 | }; |
| 71 | ethernet@70000 { | 71 | ethernet@70000 { |
| 72 | status = "okay"; | ||
| 73 | phy = <&phy0>; | 72 | phy = <&phy0>; |
| 74 | phy-mode = "rgmii-id"; | 73 | phy-mode = "rgmii-id"; |
| 75 | }; | 74 | }; |
| @@ -33,7 +33,6 @@ Example (for NXP i.MX28 with pin control stuff for GPIO irq): · 32 unmodified lines | |||
| 33 | compatible = "fsl,imx28-spi"; | 33 | compatible = "fsl,imx28-spi"; |
| 34 | pinctrl-names = "default"; | 34 | pinctrl-names = "default"; |
| 35 | pinctrl-0 = <&spi2_pins_b &spi2_sck_cfg>; | 35 | pinctrl-0 = <&spi2_pins_b &spi2_sck_cfg>; |
| 36 | status = "okay"; | ||
| 37 | 36 | ||
| 38 | enc28j60: ethernet@0 { | 37 | enc28j60: ethernet@0 { |
| 39 | compatible = "microchip,enc28j60"; | 38 | compatible = "microchip,enc28j60"; |
| @@ -25,7 +25,6 @@ Optional I2C-based chip specific properties: · 24 unmodified lines | |||
| 25 | Example (for ARM-based BeagleBoard Black with 88W8887 on UART5): | 25 | Example (for ARM-based BeagleBoard Black with 88W8887 on UART5): |
| 26 | 26 | ||
| 27 | &uart5 { | 27 | &uart5 { |
| 28 | status = "okay"; | ||
| 29 | 28 | ||
| 30 | nfcmrvluart: nfcmrvluart@5 { | 29 | nfcmrvluart: nfcmrvluart@5 { |
| 31 | compatible = "marvell,nfc-uart"; | 30 | compatible = "marvell,nfc-uart"; |
| @@ -41,7 +40,6 @@ Example (for ARM-based BeagleBoard Black with 88W8887 on UART5): · 9 unmodified lines | |||
| 41 | Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1): | 40 | Example (for ARM-based BeagleBoard Black with 88W8887 on I2C1): |
| 42 | 41 | ||
| 43 | &i2c1 { | 42 | &i2c1 { |
| 44 | status = "okay"; | ||
| 45 | clock-frequency = <400000>; | 43 | clock-frequency = <400000>; |
| 46 | 44 | ||
| 47 | nfcmrvli2c0: i2c@1 { | 45 | nfcmrvli2c0: i2c@1 { |
| @@ -17,7 +17,6 @@ Example (for ARM-based BeagleBone with NPC100 NFC controller on I2C2): · 16 unmodified lines | |||
| 17 | 17 | ||
| 18 | &i2c2 { | 18 | &i2c2 { |
| 19 | 19 | ||
| 20 | status = "okay"; | ||
| 21 | 20 | ||
| 22 | npc100: npc100@29 { | 21 | npc100: npc100@29 { |
| 23 | 22 | ||
| @@ -15,7 +15,6 @@ Example (for ARM-based BeagleBone with PN532 on I2C2): · 14 unmodified lines | |||
| 15 | 15 | ||
| 16 | &i2c2 { | 16 | &i2c2 { |
| 17 | 17 | ||
| 18 | status = "okay"; | ||
| 19 | 18 | ||
| 20 | pn532: pn532@24 { | 19 | pn532: pn532@24 { |
| 21 | 20 | ||
| @@ -17,7 +17,6 @@ Example (for ARM-based BeagleBone with PN544 on I2C2): · 16 unmodified lines | |||
| 17 | 17 | ||
| 18 | &i2c2 { | 18 | &i2c2 { |
| 19 | 19 | ||
| 20 | status = "okay"; | ||
| 21 | 20 | ||
| 22 | pn544: pn544@28 { | 21 | pn544: pn544@28 { |
| 23 | 22 | ||
| @@ -12,7 +12,6 @@ Required properties: · 11 unmodified lines | |||
| 12 | Example: | 12 | Example: |
| 13 | 13 | ||
| 14 | &hsi2c_4 { | 14 | &hsi2c_4 { |
| 15 | status = "okay"; | ||
| 16 | s3fwrn5@27 { | 15 | s3fwrn5@27 { |
| 17 | compatible = "samsung,s3fwrn5-i2c"; | 16 | compatible = "samsung,s3fwrn5-i2c"; |
| 18 | 17 | ||
| @@ -20,7 +20,6 @@ Example (for ARM-based BeagleBoard xM with ST21NFCB on I2C2): · 19 unmodified lines | |||
| 20 | 20 | ||
| 21 | &i2c2 { | 21 | &i2c2 { |
| 22 | 22 | ||
| 23 | status = "okay"; | ||
| 24 | 23 | ||
| 25 | st21nfcb: st21nfcb@8 { | 24 | st21nfcb: st21nfcb@8 { |
| 26 | 25 | ||
| @@ -19,7 +19,6 @@ Example (for ARM-based BeagleBoard xM with ST21NFCB on SPI4): · 18 unmodified lines | |||
| 19 | 19 | ||
| 20 | &mcspi4 { | 20 | &mcspi4 { |
| 21 | 21 | ||
| 22 | status = "okay"; | ||
| 23 | 22 | ||
| 24 | st21nfcb: st21nfcb@0 { | 23 | st21nfcb: st21nfcb@0 { |
| 25 | 24 | ||
| @@ -20,7 +20,6 @@ Example (for ARM-based BeagleBoard xM with ST21NFCA on I2C2): · 19 unmodified lines | |||
| 20 | 20 | ||
| 21 | &i2c2 { | 21 | &i2c2 { |
| 22 | 22 | ||
| 23 | status = "okay"; | ||
| 24 | 23 | ||
| 25 | st21nfca: st21nfca@1 { | 24 | st21nfca: st21nfca@1 { |
| 26 | 25 | ||
| @@ -35,12 +35,10 @@ spi@9840000 { · 34 unmodified lines | |||
| 35 | #address-cells = <1>; | 35 | #address-cells = <1>; |
| 36 | #size-cells = <0>; | 36 | #size-cells = <0>; |
| 37 | cs-gpios = <&pio0 4>; | 37 | cs-gpios = <&pio0 4>; |
| 38 | status = "okay"; | ||
| 39 | 38 | ||
| 40 | st95hf@0{ | 39 | st95hf@0{ |
| 41 | reg = <0>; | 40 | reg = <0>; |
| 42 | compatible = "st,st95hf"; | 41 | compatible = "st,st95hf"; |
| 43 | status = "okay"; | ||
| 44 | spi-max-frequency = <1000000>; | 42 | spi-max-frequency = <1000000>; |
| 45 | enable-gpio = <&pio4 0>; | 43 | enable-gpio = <&pio4 0>; |
| 46 | interrupt-parent = <&pio0>; | 44 | interrupt-parent = <&pio0>; |
| @@ -23,7 +23,6 @@ Optional SoC Specific Properties: · 22 unmodified lines | |||
| 23 | Example (for ARM-based BeagleBone with TRF7970A on SPI1): | 23 | Example (for ARM-based BeagleBone with TRF7970A on SPI1): |
| 24 | 24 | ||
| 25 | &spi1 { | 25 | &spi1 { |
| 26 | status = "okay"; | ||
| 27 | 26 | ||
| 28 | nfc@0 { | 27 | nfc@0 { |
| 29 | compatible = "ti,trf7970a"; | 28 | compatible = "ti,trf7970a"; |
| @@ -41,6 +40,5 @@ Example (for ARM-based BeagleBone with TRF7970A on SPI1): · 11 unmodified lines | |||
| 41 | irq-status-read-quirk; | 40 | irq-status-read-quirk; |
| 42 | en2-rf-quirk; | 41 | en2-rf-quirk; |
| 43 | clock-frequency = <27120000>; | 42 | clock-frequency = <27120000>; |
| 44 | status = "okay"; | ||
| 45 | }; | 43 | }; |
| 46 | }; | 44 | }; |
| @@ -35,5 +35,4 @@ etha: ethernet@40400000 { · 34 unmodified lines | |||
| 35 | /* Regmap for sys registers */ | 35 | /* Regmap for sys registers */ |
| 36 | oxsemi,sys-ctrl = <&sys>; | 36 | oxsemi,sys-ctrl = <&sys>; |
| 37 | 37 | ||
| 38 | status = "disabled"; | ||
| 39 | }; | 38 | }; |
| @@ -2,11 +2,7 @@ PHY nodes · 1 unmodified line | |||
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | 4 | ||
| 5 | - interrupts : <a b> where a is the interrupt number and b is a | 5 | - interrupts : interrupt specifier for the sole interrupt. |
| 6 | field that represents an encoding of the sense and level | ||
| 7 | information for the interrupt. This should be encoded based on | ||
| 8 | the information in section 2) depending on the type of interrupt | ||
| 9 | controller you have. | ||
| 10 | - interrupt-parent : the phandle for the interrupt controller that | 6 | - interrupt-parent : the phandle for the interrupt controller that |
| 11 | services interrupts for this device. | 7 | services interrupts for this device. |
| 12 | - reg : The ID number for the phy, usually a small integer | 8 | - reg : The ID number for the phy, usually a small integer |
| @@ -61,7 +57,7 @@ Example: · 48 unmodified lines | |||
| 61 | 57 | ||
| 62 | ethernet-phy@0 { | 58 | ethernet-phy@0 { |
| 63 | compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c22"; | 59 | compatible = "ethernet-phy-id0141.0e90", "ethernet-phy-ieee802.3-c22"; |
| 64 | interrupt-parent = <40000>; | 60 | interrupt-parent = <&PIC>; |
| 65 | interrupts = <35 1>; | 61 | interrupts = <35 IRQ_TYPE_EDGE_RISING>; |
| 66 | reg = <0>; | 62 | reg = <0>; |
| 67 | }; | 63 | }; |
| @@ -41,7 +41,6 @@ ssp2: spi@80014000 { · 40 unmodified lines | |||
| 41 | compatible = "fsl,imx28-spi"; | 41 | compatible = "fsl,imx28-spi"; |
| 42 | pinctrl-names = "default"; | 42 | pinctrl-names = "default"; |
| 43 | pinctrl-0 = <&spi2_pins_a>; | 43 | pinctrl-0 = <&spi2_pins_a>; |
| 44 | status = "okay"; | ||
| 45 | 44 | ||
| 46 | qca7000: ethernet@0 { | 45 | qca7000: ethernet@0 { |
| 47 | compatible = "qca,qca7000"; | 46 | compatible = "qca,qca7000"; |
| @@ -78,7 +77,6 @@ auart0: serial@8006a000 { · 30 unmodified lines | |||
| 78 | reg = <0x8006a000 0x2000>; | 77 | reg = <0x8006a000 0x2000>; |
| 79 | pinctrl-names = "default"; | 78 | pinctrl-names = "default"; |
| 80 | pinctrl-0 = <&auart0_2pins_a>; | 79 | pinctrl-0 = <&auart0_2pins_a>; |
| 81 | status = "okay"; | ||
| 82 | 80 | ||
| 83 | qca7000: ethernet { | 81 | qca7000: ethernet { |
| 84 | compatible = "qca,qca7000"; | 82 | compatible = "qca,qca7000"; |
| @@ -71,5 +71,4 @@ gmac: ethernet@ff290000 { · 70 unmodified lines | |||
| 71 | tx_delay = <0x30>; | 71 | tx_delay = <0x30>; |
| 72 | rx_delay = <0x10>; | 72 | rx_delay = <0x10>; |
| 73 | 73 | ||
| 74 | status = "ok"; | ||
| 75 | }; | 74 | }; |
| @@ -15,7 +15,6 @@ smsc phy with disabled energy detect mode on an am335x based board. · 14 unmodified lines | |||
| 15 | pinctrl-names = "default", "sleep"; | 15 | pinctrl-names = "default", "sleep"; |
| 16 | pinctrl-0 = <&davinci_mdio_default>; | 16 | pinctrl-0 = <&davinci_mdio_default>; |
| 17 | pinctrl-1 = <&davinci_mdio_sleep>; | 17 | pinctrl-1 = <&davinci_mdio_sleep>; |
| 18 | status = "okay"; | ||
| 19 | 18 | ||
| 20 | ethernetphy0: ethernet-phy@0 { | 19 | ethernetphy0: ethernet-phy@0 { |
| 21 | reg = <0>; | 20 | reg = <0>; |
| @@ -40,7 +40,6 @@ gmii_to_sgmii_converter: phy@0x100000240 { · 39 unmodified lines | |||
| 40 | gmac0: ethernet@ff700000 { | 40 | gmac0: ethernet@ff700000 { |
| 41 | compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; | 41 | compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; |
| 42 | altr,sysmgr-syscon = <&sysmgr 0x60 0>; | 42 | altr,sysmgr-syscon = <&sysmgr 0x60 0>; |
| 43 | status = "disabled"; | ||
| 44 | reg = <0xff700000 0x2000>; | 43 | reg = <0xff700000 0x2000>; |
| 45 | interrupts = <0 115 4>; | 44 | interrupts = <0 115 4>; |
| 46 | interrupt-names = "macirq"; | 45 | interrupt-names = "macirq"; |
| @@ -34,7 +34,6 @@ Example: · 33 unmodified lines | |||
| 34 | 34 | ||
| 35 | ethernet0: dwmac@9630000 { | 35 | ethernet0: dwmac@9630000 { |
| 36 | device_type = "network"; | 36 | device_type = "network"; |
| 37 | status = "disabled"; | ||
| 38 | compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710"; | 37 | compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710"; |
| 39 | reg = <0x9630000 0x8000>; | 38 | reg = <0x9630000 0x8000>; |
| 40 | reg-names = "stmmaceth"; | 39 | reg-names = "stmmaceth"; |
| @@ -18,7 +18,6 @@ Example: · 17 unmodified lines | |||
| 18 | 18 | ||
| 19 | ethernet@40028000 { | 19 | ethernet@40028000 { |
| 20 | compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; | 20 | compatible = "st,stm32-dwmac", "snps,dwmac-3.50a"; |
| 21 | status = "disabled"; | ||
| 22 | reg = <0x40028000 0x8000>; | 21 | reg = <0x40028000 0x8000>; |
| 23 | reg-names = "stmmaceth"; | 22 | reg-names = "stmmaceth"; |
| 24 | interrupts = <0 61 0>, <0 62 0>; | 23 | interrupts = <0 61 0>, <0 62 0>; |
| @@ -29,7 +29,6 @@ mmc3: mmc@01c12000 { · 28 unmodified lines | |||
| 29 | vmmc-supply = <®_vmmc3>; | 29 | vmmc-supply = <®_vmmc3>; |
| 30 | bus-width = <4>; | 30 | bus-width = <4>; |
| 31 | non-removable; | 31 | non-removable; |
| 32 | status = "okay"; | ||
| 33 | 32 | ||
| 34 | brcmf: wifi@1 { | 33 | brcmf: wifi@1 { |
| 35 | reg = <1>; | 34 | reg = <1>; |
| @@ -21,7 +21,6 @@ Example: · 20 unmodified lines | |||
| 21 | mmc-pwrseq = <&wifi_pwrseq>; | 21 | mmc-pwrseq = <&wifi_pwrseq>; |
| 22 | bus-width = <4>; | 22 | bus-width = <4>; |
| 23 | non-removable; | 23 | non-removable; |
| 24 | status = "okay"; | ||
| 25 | 24 | ||
| 26 | esp8089: sdio_wifi@1 { | 25 | esp8089: sdio_wifi@1 { |
| 27 | compatible = "esp,esp8089"; | 26 | compatible = "esp,esp8089"; |
| @@ -48,7 +48,6 @@ IRQ pin 38 is used as system wakeup source interrupt. wakeup pin 3 is configured · 47 unmodified lines | |||
| 48 | so that firmware can wakeup host using this device side pin. | 48 | so that firmware can wakeup host using this device side pin. |
| 49 | 49 | ||
| 50 | &mmc3 { | 50 | &mmc3 { |
| 51 | status = "okay"; | ||
| 52 | vmmc-supply = <&wlan_en_reg>; | 51 | vmmc-supply = <&wlan_en_reg>; |
| 53 | mmc-pwrseq = <&wifi_pwrseq>; | 52 | mmc-pwrseq = <&wifi_pwrseq>; |
| 54 | bus-width = <4>; | 53 | bus-width = <4>; |
| @@ -31,7 +31,6 @@ clock, new bindings (for parsing the clock nodes) have to be added. · 30 unmodified lines | |||
| 31 | Example: | 31 | Example: |
| 32 | 32 | ||
| 33 | &mmc3 { | 33 | &mmc3 { |
| 34 | status = "okay"; | ||
| 35 | vmmc-supply = <&wlan_en_reg>; | 34 | vmmc-supply = <&wlan_en_reg>; |
| 36 | bus-width = <4>; | 35 | bus-width = <4>; |
| 37 | cap-power-off-card; | 36 | cap-power-off-card; |
| @@ -3,7 +3,10 @@ · 2 unmodified lines | |||
| 3 | This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. | 3 | This binding is intended to represent MTK-EFUSE which is found in most Mediatek SOCs. |
| 4 | 4 | ||
| 5 | Required properties: | 5 | Required properties: |
| 6 | - compatible: should be "mediatek,mt8173-efuse" or "mediatek,efuse" | 6 | - compatible: should be |
| 7 | "mediatek,mt7622-efuse", "mediatek,efuse": for MT7622 | ||
| 8 | "mediatek,mt7623-efuse", "mediatek,efuse": for MT7623 | ||
| 9 | "mediatek,mt8173-efuse" or "mediatek,efuse": for MT8173 | ||
| 7 | - reg: Should contain registers location and length | 10 | - reg: Should contain registers location and length |
| 8 | 11 | ||
| 9 | = Data cells = | 12 | = Data cells = |
| @@ -21,5 +21,4 @@ Example for i.MX28: · 20 unmodified lines | |||
| 21 | #size-cells = <1>; | 21 | #size-cells = <1>; |
| 22 | reg = <0x8002c000 0x2000>; | 22 | reg = <0x8002c000 0x2000>; |
| 23 | clocks = <&clks 25>; | 23 | clocks = <&clks 25>; |
| 24 | status = "okay"; | ||
| 25 | }; | 24 | }; |
| @@ -464,7 +464,6 @@ Example 5: opp-supported-hw · 463 unmodified lines | |||
| 464 | 464 | ||
| 465 | opp_table { | 465 | opp_table { |
| 466 | compatible = "operating-points-v2"; | 466 | compatible = "operating-points-v2"; |
| 467 | status = "okay"; | ||
| 468 | opp-shared; | 467 | opp-shared; |
| 469 | 468 | ||
| 470 | opp-600000000 { | 469 | opp-600000000 { |
| @@ -33,7 +33,6 @@ Example: · 32 unmodified lines | |||
| 33 | pcie0: pcie@d0070000 { | 33 | pcie0: pcie@d0070000 { |
| 34 | compatible = "marvell,armada-3700-pcie"; | 34 | compatible = "marvell,armada-3700-pcie"; |
| 35 | device_type = "pci"; | 35 | device_type = "pci"; |
| 36 | status = "disabled"; | ||
| 37 | reg = <0 0xd0070000 0 0x20000>; | 36 | reg = <0 0xd0070000 0 0x20000>; |
| 38 | #address-cells = <3>; | 37 | #address-cells = <3>; |
| 39 | #size-cells = <2>; | 38 | #size-cells = <2>; |
| @@ -40,7 +40,6 @@ Hip05 Example (note that Hip06 is the same except compatible): · 39 unmodified lines | |||
| 40 | 0x0 0 0 2 &mbigen_pcie 2 11 | 40 | 0x0 0 0 2 &mbigen_pcie 2 11 |
| 41 | 0x0 0 0 3 &mbigen_pcie 3 12 | 41 | 0x0 0 0 3 &mbigen_pcie 3 12 |
| 42 | 0x0 0 0 4 &mbigen_pcie 4 13>; | 42 | 0x0 0 0 4 &mbigen_pcie 4 13>; |
| 43 | status = "ok"; | ||
| 44 | }; | 43 | }; |
| 45 | 44 | ||
| 46 | HiSilicon Hip06/Hip07 PCIe host bridge DT (almost-ECAM) description. | 45 | HiSilicon Hip06/Hip07 PCIe host bridge DT (almost-ECAM) description. |
| @@ -83,5 +82,4 @@ Example: · 36 unmodified lines | |||
| 83 | 0x0 0 0 2 &mbigen_pcie0 650 4 | 82 | 0x0 0 0 2 &mbigen_pcie0 650 4 |
| 84 | 0x0 0 0 3 &mbigen_pcie0 650 4 | 83 | 0x0 0 0 3 &mbigen_pcie0 650 4 |
| 85 | 0x0 0 0 4 &mbigen_pcie0 650 4>; | 84 | 0x0 0 0 4 &mbigen_pcie0 650 4>; |
| 86 | status = "ok"; | ||
| 87 | }; | 85 | }; |
| @@ -85,7 +85,6 @@ Example: · 84 unmodified lines | |||
| 85 | 85 | ||
| 86 | pcie-controller { | 86 | pcie-controller { |
| 87 | compatible = "marvell,armada-xp-pcie"; | 87 | compatible = "marvell,armada-xp-pcie"; |
| 88 | status = "disabled"; | ||
| 89 | device_type = "pci"; | 88 | device_type = "pci"; |
| 90 | 89 | ||
| 91 | #address-cells = <3>; | 90 | #address-cells = <3>; |
| @@ -147,7 +146,6 @@ pcie-controller { · 55 unmodified lines | |||
| 147 | /* wait 20ms for device settle after reset deassertion */ | 146 | /* wait 20ms for device settle after reset deassertion */ |
| 148 | reset-delay-us = <20000>; | 147 | reset-delay-us = <20000>; |
| 149 | clocks = <&gateclk 5>; | 148 | clocks = <&gateclk 5>; |
| 150 | status = "disabled"; | ||
| 151 | }; | 149 | }; |
| 152 | 150 | ||
| 153 | pcie@2,0 { | 151 | pcie@2,0 { |
| @@ -164,7 +162,6 @@ pcie-controller { · 10 unmodified lines | |||
| 164 | marvell,pcie-port = <0>; | 162 | marvell,pcie-port = <0>; |
| 165 | marvell,pcie-lane = <1>; | 163 | marvell,pcie-lane = <1>; |
| 166 | clocks = <&gateclk 6>; | 164 | clocks = <&gateclk 6>; |
| 167 | status = "disabled"; | ||
| 168 | }; | 165 | }; |
| 169 | 166 | ||
| 170 | pcie@3,0 { | 167 | pcie@3,0 { |
| @@ -181,7 +178,6 @@ pcie-controller { · 10 unmodified lines | |||
| 181 | marvell,pcie-port = <0>; | 178 | marvell,pcie-port = <0>; |
| 182 | marvell,pcie-lane = <2>; | 179 | marvell,pcie-lane = <2>; |
| 183 | clocks = <&gateclk 7>; | 180 | clocks = <&gateclk 7>; |
| 184 | status = "disabled"; | ||
| 185 | }; | 181 | }; |
| 186 | 182 | ||
| 187 | pcie@4,0 { | 183 | pcie@4,0 { |
| @@ -198,7 +194,6 @@ pcie-controller { · 10 unmodified lines | |||
| 198 | marvell,pcie-port = <0>; | 194 | marvell,pcie-port = <0>; |
| 199 | marvell,pcie-lane = <3>; | 195 | marvell,pcie-lane = <3>; |
| 200 | clocks = <&gateclk 8>; | 196 | clocks = <&gateclk 8>; |
| 201 | status = "disabled"; | ||
| 202 | }; | 197 | }; |
| 203 | 198 | ||
| 204 | pcie@5,0 { | 199 | pcie@5,0 { |
| @@ -215,7 +210,6 @@ pcie-controller { · 10 unmodified lines | |||
| 215 | marvell,pcie-port = <1>; | 210 | marvell,pcie-port = <1>; |
| 216 | marvell,pcie-lane = <0>; | 211 | marvell,pcie-lane = <0>; |
| 217 | clocks = <&gateclk 9>; | 212 | clocks = <&gateclk 9>; |
| 218 | status = "disabled"; | ||
| 219 | }; | 213 | }; |
| 220 | 214 | ||
| 221 | pcie@6,0 { | 215 | pcie@6,0 { |
| @@ -232,7 +226,6 @@ pcie-controller { · 10 unmodified lines | |||
| 232 | marvell,pcie-port = <1>; | 226 | marvell,pcie-port = <1>; |
| 233 | marvell,pcie-lane = <1>; | 227 | marvell,pcie-lane = <1>; |
| 234 | clocks = <&gateclk 10>; | 228 | clocks = <&gateclk 10>; |
| 235 | status = "disabled"; | ||
| 236 | }; | 229 | }; |
| 237 | 230 | ||
| 238 | pcie@7,0 { | 231 | pcie@7,0 { |
| @@ -249,7 +242,6 @@ pcie-controller { · 10 unmodified lines | |||
| 249 | marvell,pcie-port = <1>; | 242 | marvell,pcie-port = <1>; |
| 250 | marvell,pcie-lane = <2>; | 243 | marvell,pcie-lane = <2>; |
| 251 | clocks = <&gateclk 11>; | 244 | clocks = <&gateclk 11>; |
| 252 | status = "disabled"; | ||
| 253 | }; | 245 | }; |
| 254 | 246 | ||
| 255 | pcie@8,0 { | 247 | pcie@8,0 { |
| @@ -266,7 +258,6 @@ pcie-controller { · 10 unmodified lines | |||
| 266 | marvell,pcie-port = <1>; | 258 | marvell,pcie-port = <1>; |
| 267 | marvell,pcie-lane = <3>; | 259 | marvell,pcie-lane = <3>; |
| 268 | clocks = <&gateclk 12>; | 260 | clocks = <&gateclk 12>; |
| 269 | status = "disabled"; | ||
| 270 | }; | 261 | }; |
| 271 | 262 | ||
| 272 | pcie@9,0 { | 263 | pcie@9,0 { |
| @@ -283,7 +274,6 @@ pcie-controller { · 10 unmodified lines | |||
| 283 | marvell,pcie-port = <2>; | 274 | marvell,pcie-port = <2>; |
| 284 | marvell,pcie-lane = <0>; | 275 | marvell,pcie-lane = <0>; |
| 285 | clocks = <&gateclk 26>; | 276 | clocks = <&gateclk 26>; |
| 286 | status = "disabled"; | ||
| 287 | }; | 277 | }; |
| 288 | 278 | ||
| 289 | pcie@10,0 { | 279 | pcie@10,0 { |
| @@ -300,6 +290,5 @@ pcie-controller { · 10 unmodified lines | |||
| 300 | marvell,pcie-port = <3>; | 290 | marvell,pcie-port = <3>; |
| 301 | marvell,pcie-lane = <0>; | 291 | marvell,pcie-lane = <0>; |
| 302 | clocks = <&gateclk 27>; | 292 | clocks = <&gateclk 27>; |
| 303 | status = "disabled"; | ||
| 304 | }; | 293 | }; |
| 305 | }; | 294 | }; |
| @@ -34,5 +34,4 @@ Example: · 33 unmodified lines | |||
| 34 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | 34 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; |
| 35 | num-lanes = <1>; | 35 | num-lanes = <1>; |
| 36 | clocks = <&cpm_syscon0 1 13>; | 36 | clocks = <&cpm_syscon0 1 13>; |
| 37 | status = "disabled"; | ||
| 38 | }; | 37 | }; |
| @@ -1,12 +1,12 @@ | |||
| 1 | PCI bus bridges have standardized Device Tree bindings: | 1 | PCI bus bridges have standardized Device Tree bindings: |
| 2 | 2 | ||
| 3 | PCI Bus Binding to: IEEE Std 1275-1994 | 3 | PCI Bus Binding to: IEEE Std 1275-1994 |
| 4 | http://www.firmware.org/1275/bindings/pci/pci2_1.pdf | 4 | http://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf |
| 5 | 5 | ||
| 6 | And for the interrupt mapping part: | 6 | And for the interrupt mapping part: |
| 7 | 7 | ||
| 8 | Open Firmware Recommended Practice: Interrupt Mapping | 8 | Open Firmware Recommended Practice: Interrupt Mapping |
| 9 | http://www.firmware.org/1275/practice/imap/imap0_9d.pdf | 9 | http://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf |
| 10 | 10 | ||
| 11 | Additionally to the properties specified in the above standards a host bridge | 11 | Additionally to the properties specified in the above standards a host bridge |
| 12 | driver implementation may support the following properties: | 12 | driver implementation may support the following properties: |
| @@ -54,5 +54,4 @@ SoC specific DT Entry: · 53 unmodified lines | |||
| 54 | interrupt-map = <0 0 0 0 &gic 0 116 4>; | 54 | interrupt-map = <0 0 0 0 &gic 0 116 4>; |
| 55 | clocks = <&mstp3_clks R8A7791_CLK_PCIE>, <&pcie_bus_clk>; | 55 | clocks = <&mstp3_clks R8A7791_CLK_PCIE>, <&pcie_bus_clk>; |
| 56 | clock-names = "pcie", "pcie_bus"; | 56 | clock-names = "pcie", "pcie_bus"; |
| 57 | status = "disabled"; | ||
| 58 | }; | 57 | }; |
| @@ -44,7 +44,6 @@ SoC DTSI: · 43 unmodified lines | |||
| 44 | 44 | ||
| 45 | + PCIe controller node with msi-parent property pointing to MSI node: | 45 | + PCIe controller node with msi-parent property pointing to MSI node: |
| 46 | pcie0: pcie@1f2b0000 { | 46 | pcie0: pcie@1f2b0000 { |
| 47 | status = "disabled"; | ||
| 48 | device_type = "pci"; | 47 | device_type = "pci"; |
| 49 | compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; | 48 | compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie"; |
| 50 | #interrupt-cells = <1>; | 49 | #interrupt-cells = <1>; |
| @@ -61,19 +61,16 @@ Example: · 60 unmodified lines | |||
| 61 | compatible = "apm,xgene-phy"; | 61 | compatible = "apm,xgene-phy"; |
| 62 | reg = <0x0 0x1f21a000 0x0 0x100>; | 62 | reg = <0x0 0x1f21a000 0x0 0x100>; |
| 63 | #phy-cells = <1>; | 63 | #phy-cells = <1>; |
| 64 | status = "disabled"; | ||
| 65 | }; | 64 | }; |
| 66 | 65 | ||
| 67 | phy2: phy@1f22a000 { | 66 | phy2: phy@1f22a000 { |
| 68 | compatible = "apm,xgene-phy"; | 67 | compatible = "apm,xgene-phy"; |
| 69 | reg = <0x0 0x1f22a000 0x0 0x100>; | 68 | reg = <0x0 0x1f22a000 0x0 0x100>; |
| 70 | #phy-cells = <1>; | 69 | #phy-cells = <1>; |
| 71 | status = "ok"; | ||
| 72 | }; | 70 | }; |
| 73 | 71 | ||
| 74 | phy3: phy@1f23a000 { | 72 | phy3: phy@1f23a000 { |
| 75 | compatible = "apm,xgene-phy"; | 73 | compatible = "apm,xgene-phy"; |
| 76 | reg = <0x0 0x1f23a000 0x0 0x100>; | 74 | reg = <0x0 0x1f23a000 0x0 0x100>; |
| 77 | #phy-cells = <1>; | 75 | #phy-cells = <1>; |
| 78 | status = "ok"; | ||
| 79 | }; | 76 | }; |
| @@ -16,5 +16,4 @@ usb_phy: usb_phy@2620738 { · 15 unmodified lines | |||
| 16 | #address-cells = <1>; | 16 | #address-cells = <1>; |
| 17 | #size-cells = <1>; | 17 | #size-cells = <1>; |
| 18 | reg = <0x2620738 32>; | 18 | reg = <0x2620738 32>; |
| 19 | status = "disabled"; | ||
| 20 | }; | 19 | }; |
| @@ -51,14 +51,12 @@ u3phy: usb-phy@11290000 { · 50 unmodified lines | |||
| 51 | #address-cells = <2>; | 51 | #address-cells = <2>; |
| 52 | #size-cells = <2>; | 52 | #size-cells = <2>; |
| 53 | ranges; | 53 | ranges; |
| 54 | status = "okay"; | ||
| 55 | 54 | ||
| 56 | u2port0: usb-phy@11290800 { | 55 | u2port0: usb-phy@11290800 { |
| 57 | reg = <0 0x11290800 0 0x100>; | 56 | reg = <0 0x11290800 0 0x100>; |
| 58 | clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; | 57 | clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; |
| 59 | clock-names = "ref"; | 58 | clock-names = "ref"; |
| 60 | #phy-cells = <1>; | 59 | #phy-cells = <1>; |
| 61 | status = "okay"; | ||
| 62 | }; | 60 | }; |
| 63 | 61 | ||
| 64 | u3port0: usb-phy@11290900 { | 62 | u3port0: usb-phy@11290900 { |
| @@ -66,7 +64,6 @@ u3phy: usb-phy@11290000 { · 1 unmodified line | |||
| 66 | clocks = <&clk26m>; | 64 | clocks = <&clk26m>; |
| 67 | clock-names = "ref"; | 65 | clock-names = "ref"; |
| 68 | #phy-cells = <1>; | 66 | #phy-cells = <1>; |
| 69 | status = "okay"; | ||
| 70 | }; | 67 | }; |
| 71 | 68 | ||
| 72 | u2port1: usb-phy@11291000 { | 69 | u2port1: usb-phy@11291000 { |
| @@ -74,7 +71,6 @@ u3phy: usb-phy@11290000 { · 1 unmodified line | |||
| 74 | clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; | 71 | clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; |
| 75 | clock-names = "ref"; | 72 | clock-names = "ref"; |
| 76 | #phy-cells = <1>; | 73 | #phy-cells = <1>; |
| 77 | status = "okay"; | ||
| 78 | }; | 74 | }; |
| 79 | }; | 75 | }; |
| 80 | 76 | ||
| @@ -18,7 +18,6 @@ Example: · 17 unmodified lines | |||
| 18 | clocks = <&gate_clk 15>; | 18 | clocks = <&gate_clk 15>; |
| 19 | clock-names = "sata"; | 19 | clock-names = "sata"; |
| 20 | #phy-cells = <0>; | 20 | #phy-cells = <0>; |
| 21 | status = "ok"; | ||
| 22 | }; | 21 | }; |
| 23 | 22 | ||
| 24 | Armada 375 USB cluster | 23 | Armada 375 USB cluster |
| @@ -67,14 +67,12 @@ grf: syscon@ff770000 { · 66 unmodified lines | |||
| 67 | <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>, | 67 | <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>, |
| 68 | <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | 68 | <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; |
| 69 | interrupt-names = "otg-id", "otg-bvalid", "linestate"; | 69 | interrupt-names = "otg-id", "otg-bvalid", "linestate"; |
| 70 | status = "okay"; | ||
| 71 | }; | 70 | }; |
| 72 | 71 | ||
| 73 | u2phy_host: host-port { | 72 | u2phy_host: host-port { |
| 74 | #phy-cells = <0>; | 73 | #phy-cells = <0>; |
| 75 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | 74 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; |
| 76 | interrupt-names = "linestate"; | 75 | interrupt-names = "linestate"; |
| 77 | status = "okay"; | ||
| 78 | }; | 76 | }; |
| 79 | }; | 77 | }; |
| 80 | }; | 78 | }; |
| @@ -25,7 +25,6 @@ Example: · 24 unmodified lines | |||
| 25 | clock-names = "ref"; | 25 | clock-names = "ref"; |
| 26 | #phy-cells = <0>; | 26 | #phy-cells = <0>; |
| 27 | 27 | ||
| 28 | status = "ok"; | ||
| 29 | }; | 28 | }; |
| 30 | 29 | ||
| 31 | phy@100f8830 { | 30 | phy@100f8830 { |
| @@ -35,5 +34,4 @@ Example: · 3 unmodified lines | |||
| 35 | clock-names = "ref"; | 34 | clock-names = "ref"; |
| 36 | #phy-cells = <0>; | 35 | #phy-cells = <0>; |
| 37 | 36 | ||
| 38 | status = "ok"; | ||
| 39 | }; | 37 | }; |
| @@ -82,7 +82,6 @@ usbphy: phy@125b0000 { · 81 unmodified lines | |||
| 82 | reg = <0x125b0000 0x100>; | 82 | reg = <0x125b0000 0x100>; |
| 83 | clocks = <&clock 305>, <&clock 2>; | 83 | clocks = <&clock 305>, <&clock 2>; |
| 84 | clock-names = "phy", "ref"; | 84 | clock-names = "phy", "ref"; |
| 85 | status = "okay"; | ||
| 86 | #phy-cells = <1>; | 85 | #phy-cells = <1>; |
| 87 | samsung,sysreg-phandle = <&sys_reg>; | 86 | samsung,sysreg-phandle = <&sys_reg>; |
| 88 | samsung,pmureg-phandle = <&pmu_reg>; | 87 | samsung,pmureg-phandle = <&pmu_reg>; |
| @@ -33,6 +33,5 @@ Example: · 32 unmodified lines | |||
| 33 | clock-names = "hsic_480M", "hsic_12M", "phy"; | 33 | clock-names = "hsic_480M", "hsic_12M", "phy"; |
| 34 | resets = <&usb_phy_clk 18>, <&usb_phy_clk 19>; | 34 | resets = <&usb_phy_clk 18>, <&usb_phy_clk 19>; |
| 35 | reset-names = "hsic", "phy"; | 35 | reset-names = "hsic", "phy"; |
| 36 | status = "disabled"; | ||
| 37 | #phy-cells = <0>; | 36 | #phy-cells = <0>; |
| 38 | }; | 37 | }; |
| @@ -148,5 +148,4 @@ dbgu: serial@fffff200 { · 147 unmodified lines | |||
| 148 | interrupts = <1 4 7>; | 148 | interrupts = <1 4 7>; |
| 149 | pinctrl-names = "default"; | 149 | pinctrl-names = "default"; |
| 150 | pinctrl-0 = <&pinctrl_dbgu>; | 150 | pinctrl-0 = <&pinctrl_dbgu>; |
| 151 | status = "disabled"; | ||
| 152 | }; | 151 | }; |
| @@ -61,7 +61,6 @@ Examples: · 60 unmodified lines | |||
| 61 | usdhc@0219c000 { /* uSDHC4 */ | 61 | usdhc@0219c000 { /* uSDHC4 */ |
| 62 | non-removable; | 62 | non-removable; |
| 63 | vmmc-supply = <®_3p3v>; | 63 | vmmc-supply = <®_3p3v>; |
| 64 | status = "okay"; | ||
| 65 | pinctrl-names = "default"; | 64 | pinctrl-names = "default"; |
| 66 | pinctrl-0 = <&pinctrl_usdhc4_1>; | 65 | pinctrl-0 = <&pinctrl_usdhc4_1>; |
| 67 | }; | 66 | }; |
| @@ -61,7 +61,6 @@ iomuxc-lpsr controller and SDA pad from iomuxc controller as: · 60 unmodified lines | |||
| 61 | i2c1: i2c@30a20000 { | 61 | i2c1: i2c@30a20000 { |
| 62 | pinctrl-names = "default"; | 62 | pinctrl-names = "default"; |
| 63 | pinctrl-0 = <&pinctrl_i2c1_1 &pinctrl_i2c1_2>; | 63 | pinctrl-0 = <&pinctrl_i2c1_1 &pinctrl_i2c1_2>; |
| 64 | status = "okay"; | ||
| 65 | }; | 64 | }; |
| 66 | 65 | ||
| 67 | iomuxc-lpsr@302c0000 { | 66 | iomuxc-lpsr@302c0000 { |
| @@ -56,5 +56,4 @@ Example: · 55 unmodified lines | |||
| 56 | pinctrl-0 = <&state_dpaux_i2c>; | 56 | pinctrl-0 = <&state_dpaux_i2c>; |
| 57 | pinctrl-1 = <&state_dpaux_off>; | 57 | pinctrl-1 = <&state_dpaux_off>; |
| 58 | pinctrl-names = "default", "idle"; | 58 | pinctrl-names = "default", "idle"; |
| 59 | status = "disabled"; | ||
| 60 | }; | 59 | }; |
| @@ -50,7 +50,6 @@ uart2: serial@900000 { · 49 unmodified lines | |||
| 50 | reg-io-width = <1>; | 50 | reg-io-width = <1>; |
| 51 | current-speed = <115200>; | 51 | current-speed = <115200>; |
| 52 | no-loopback-test; | 52 | no-loopback-test; |
| 53 | status = "disabled"; | ||
| 54 | resets = <&reset 22>; | 53 | resets = <&reset 22>; |
| 55 | pinctrl-names = "default"; | 54 | pinctrl-names = "default"; |
| 56 | pinctrl-0 = <&pinctrl_uart2>; | 55 | pinctrl-0 = <&pinctrl_uart2>; |
| @@ -81,5 +81,4 @@ pmm: pin-controller@1462000 { · 80 unmodified lines | |||
| 81 | &vga { | 81 | &vga { |
| 82 | pinctrl-names = "default"; | 82 | pinctrl-names = "default"; |
| 83 | pinctrl-0 = <&vga_pins>; | 83 | pinctrl-0 = <&vga_pins>; |
| 84 | status = "okay"; | ||
| 85 | }; | 84 | }; |
| @@ -112,7 +112,7 @@ Examples · 111 unmodified lines | |||
| 112 | 112 | ||
| 113 | Example 1: SH73A0 (SH-Mobile AG5) pin controller node | 113 | Example 1: SH73A0 (SH-Mobile AG5) pin controller node |
| 114 | 114 | ||
| 115 | pfc: pfc@e6050000 { | 115 | pfc: pin-controller@e6050000 { |
| 116 | compatible = "renesas,pfc-sh73a0"; | 116 | compatible = "renesas,pfc-sh73a0"; |
| 117 | reg = <0xe6050000 0x8000>, | 117 | reg = <0xe6050000 0x8000>, |
| 118 | <0xe605801c 0x1c>; | 118 | <0xe605801c 0x1c>; |
| @@ -173,5 +173,4 @@ Example 4: KZM-A9-GT (SH-Mobile AG5) default pin state for the MMCIF device · 54 unmodified lines | |||
| 173 | 173 | ||
| 174 | bus-width = <8>; | 174 | bus-width = <8>; |
| 175 | vmmc-supply = <®_1p8v>; | 175 | vmmc-supply = <®_1p8v>; |
| 176 | status = "okay"; | ||
| 177 | }; | 176 | }; |
| @@ -121,7 +121,6 @@ uart2: serial@20064000 { · 120 unmodified lines | |||
| 121 | reg-shift = <2>; | 121 | reg-shift = <2>; |
| 122 | reg-io-width = <1>; | 122 | reg-io-width = <1>; |
| 123 | clocks = <&mux_uart2>; | 123 | clocks = <&mux_uart2>; |
| 124 | status = "okay"; | ||
| 125 | 124 | ||
| 126 | pinctrl-names = "default"; | 125 | pinctrl-names = "default"; |
| 127 | pinctrl-0 = <&uart2_xfer>; | 126 | pinctrl-0 = <&uart2_xfer>; |
| @@ -180,5 +180,4 @@ pin-controller { · 179 unmodified lines | |||
| 180 | &usart1 { | 180 | &usart1 { |
| 181 | pinctrl-0 = <&usart1_pins_a>; | 181 | pinctrl-0 = <&usart1_pins_a>; |
| 182 | pinctrl-names = "default"; | 182 | pinctrl-names = "default"; |
| 183 | status = "okay"; | ||
| 184 | }; | 183 | }; |
| @@ -13,6 +13,5 @@ Example: · 12 unmodified lines | |||
| 13 | 13 | ||
| 14 | act8846: act8846@5 { | 14 | act8846: act8846@5 { |
| 15 | compatible = "active-semi,act8846"; | 15 | compatible = "active-semi,act8846"; |
| 16 | status = "okay"; | ||
| 17 | system-power-controller; | 16 | system-power-controller; |
| 18 | } | 17 | } |
| @@ -8,5 +8,4 @@ Example node: · 7 unmodified lines | |||
| 8 | restart { | 8 | restart { |
| 9 | compatible = "st,stih407-restart"; | 9 | compatible = "st,stih407-restart"; |
| 10 | st,syscfg = <&syscfg_sbc_reg>; | 10 | st,syscfg = <&syscfg_sbc_reg>; |
| 11 | status = "okay"; | ||
| 12 | }; | 11 | }; |
| @@ -29,7 +29,6 @@ Example: · 28 unmodified lines | |||
| 29 | pmic@5b { | 29 | pmic@5b { |
| 30 | compatible = "active-semi,act8945a"; | 30 | compatible = "active-semi,act8945a"; |
| 31 | reg = <0x5b>; | 31 | reg = <0x5b>; |
| 32 | status = "okay"; | ||
| 33 | 32 | ||
| 34 | charger { | 33 | charger { |
| 35 | compatible = "active-semi,act8945a-charger"; | 34 | compatible = "active-semi,act8945a-charger"; |
| @@ -43,6 +42,5 @@ Example: · 7 unmodified lines | |||
| 43 | active-semi,input-voltage-threshold-microvolt = <6600>; | 42 | active-semi,input-voltage-threshold-microvolt = <6600>; |
| 44 | active-semi,precondition-timeout = <40>; | 43 | active-semi,precondition-timeout = <40>; |
| 45 | active-semi,total-timeout = <3>; | 44 | active-semi,total-timeout = <3>; |
| 46 | status = "okay"; | ||
| 47 | }; | 45 | }; |
| 48 | }; | 46 | }; |
| @@ -21,5 +21,4 @@ Example: · 20 unmodified lines | |||
| 21 | flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; | 21 | flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; |
| 22 | chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; | 22 | chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; |
| 23 | cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; | 23 | cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; |
| 24 | status = "okay"; | ||
| 25 | }; | 24 | }; |
| @@ -12,7 +12,6 @@ Example: · 11 unmodified lines | |||
| 12 | clock-frequency = <50000>; | 12 | clock-frequency = <50000>; |
| 13 | pinctrl-names = "default"; | 13 | pinctrl-names = "default"; |
| 14 | pinctrl-0 = <&pinctrl_i2c2>; | 14 | pinctrl-0 = <&pinctrl_i2c2>; |
| 15 | status = "okay"; | ||
| 16 | 15 | ||
| 17 | max14656@35 { | 16 | max14656@35 { |
| 18 | compatible = "maxim,max14656"; | 17 | compatible = "maxim,max14656"; |
| @@ -16,5 +16,4 @@ Example: · 15 unmodified lines | |||
| 16 | ptp: ptp-dte@180af650 { | 16 | ptp: ptp-dte@180af650 { |
| 17 | compatible = "brcm,iproc-ptp-dte", "brcm,ptp-dte"; | 17 | compatible = "brcm,iproc-ptp-dte", "brcm,ptp-dte"; |
| 18 | reg = <0x180af650 0x10>; | 18 | reg = <0x180af650 0x10>; |
| 19 | status = "okay"; | ||
| 20 | }; | 19 | }; |
| @@ -19,7 +19,6 @@ Example: · 18 unmodified lines | |||
| 19 | compatible = "amlogic,meson-gxbb-pwm"; | 19 | compatible = "amlogic,meson-gxbb-pwm"; |
| 20 | reg = <0x0 0x08550 0x0 0x10>; | 20 | reg = <0x0 0x08550 0x0 0x10>; |
| 21 | #pwm-cells = <3>; | 21 | #pwm-cells = <3>; |
| 22 | status = "disabled"; | ||
| 23 | clocks = <&xtal>, <&xtal>; | 22 | clocks = <&xtal>, <&xtal>; |
| 24 | clock-names = "clkin0", "clkin1"; | 23 | clock-names = "clkin0", "clkin1"; |
| 25 | } | 24 | } |
| @@ -19,5 +19,4 @@ Example: · 18 unmodified lines | |||
| 19 | reg = <0x01c20e00 0xc>; | 19 | reg = <0x01c20e00 0xc>; |
| 20 | clocks = <&osc24M>; | 20 | clocks = <&osc24M>; |
| 21 | #pwm-cells = <3>; | 21 | #pwm-cells = <3>; |
| 22 | status = "disabled"; | ||
| 23 | }; | 22 | }; |
| @@ -26,7 +26,6 @@ epwmss0: epwmss@48300000 { /* PWMSS for am33xx */ · 25 unmodified lines | |||
| 26 | ti,hwmods = "epwmss0"; | 26 | ti,hwmods = "epwmss0"; |
| 27 | #address-cells = <1>; | 27 | #address-cells = <1>; |
| 28 | #size-cells = <1>; | 28 | #size-cells = <1>; |
| 29 | status = "disabled"; | ||
| 30 | ranges = <0x48300100 0x48300100 0x80 /* ECAP */ | 29 | ranges = <0x48300100 0x48300100 0x80 /* ECAP */ |
| 31 | 0x48300180 0x48300180 0x80 /* EQEP */ | 30 | 0x48300180 0x48300180 0x80 /* EQEP */ |
| 32 | 0x48300200 0x48300200 0x80>; /* EHRPWM */ | 31 | 0x48300200 0x48300200 0x80>; /* EHRPWM */ |
| @@ -40,7 +39,6 @@ epwmss0: epwmss@48300000 { /* PWMSS for am4372 */ · 7 unmodified lines | |||
| 40 | ti,hwmods = "epwmss0"; | 39 | ti,hwmods = "epwmss0"; |
| 41 | #address-cells = <1>; | 40 | #address-cells = <1>; |
| 42 | #size-cells = <1>; | 41 | #size-cells = <1>; |
| 43 | status = "disabled"; | ||
| 44 | ranges = <0x48300100 0x48300100 0x80 /* ECAP */ | 42 | ranges = <0x48300100 0x48300100 0x80 /* ECAP */ |
| 45 | 0x48300180 0x48300180 0x80 /* EQEP */ | 43 | 0x48300180 0x48300180 0x80 /* EQEP */ |
| 46 | 0x48300200 0x48300200 0x80>; /* EHRPWM */ | 44 | 0x48300200 0x48300200 0x80>; /* EHRPWM */ |
| @@ -52,7 +52,6 @@ Example: · 51 unmodified lines | |||
| 52 | compatible = "active-semi,act8865"; | 52 | compatible = "active-semi,act8865"; |
| 53 | reg = <0x5b>; | 53 | reg = <0x5b>; |
| 54 | active-semi,vsel-high; | 54 | active-semi,vsel-high; |
| 55 | status = "disabled"; | ||
| 56 | 55 | ||
| 57 | regulators { | 56 | regulators { |
| 58 | vcc_1v8_reg: DCDC_REG1 { | 57 | vcc_1v8_reg: DCDC_REG1 { |
| @@ -23,7 +23,6 @@ Example: · 22 unmodified lines | |||
| 23 | pmic@5b { | 23 | pmic@5b { |
| 24 | compatible = "active-semi,act8945a"; | 24 | compatible = "active-semi,act8945a"; |
| 25 | reg = <0x5b>; | 25 | reg = <0x5b>; |
| 26 | status = "okay"; | ||
| 27 | 26 | ||
| 28 | active-semi,vsel-high; | 27 | active-semi,vsel-high; |
| 29 | 28 | ||
| @@ -80,5 +80,4 @@ mac: ethernet@40010000 { · 79 unmodified lines | |||
| 80 | clock-names = "stmmaceth"; | 80 | clock-names = "stmmaceth"; |
| 81 | resets = <&rgu 22>; | 81 | resets = <&rgu 22>; |
| 82 | reset-names = "stmmaceth"; | 82 | reset-names = "stmmaceth"; |
| 83 | status = "disabled"; | ||
| 84 | }; | 83 | }; |
| @@ -45,5 +45,4 @@ Example: · 44 unmodified lines | |||
| 45 | interrupts = <17 1>; | 45 | interrupts = <17 1>; |
| 46 | interrupt-names = "alarm"; | 46 | interrupt-names = "alarm"; |
| 47 | st,syscfg = <&pwrcfg>; | 47 | st,syscfg = <&pwrcfg>; |
| 48 | status = "disabled"; | ||
| 49 | }; | 48 | }; |
| @@ -85,5 +85,4 @@ Example: · 84 unmodified lines | |||
| 85 | <366 1>,<367 1>/* cq30-31 */ | 85 | <366 1>,<367 1>/* cq30-31 */ |
| 86 | <376 4>,/* fatal ecc */ | 86 | <376 4>,/* fatal ecc */ |
| 87 | <381 4>;/* fatal axi */ | 87 | <381 4>;/* fatal axi */ |
| 88 | status = "disabled"; | ||
| 89 | }; | 88 | }; |
| @@ -19,7 +19,6 @@ Example (for ARM-based BeagleBoard xM with ST33ZP24 on I2C2): · 18 unmodified lines | |||
| 19 | 19 | ||
| 20 | &i2c2 { | 20 | &i2c2 { |
| 21 | 21 | ||
| 22 | status = "okay"; | ||
| 23 | 22 | ||
| 24 | st33zp24: st33zp24@13 { | 23 | st33zp24: st33zp24@13 { |
| 25 | 24 | ||
| @@ -18,7 +18,6 @@ Example (for ARM-based BeagleBoard xM with ST33ZP24 on SPI4): · 17 unmodified lines | |||
| 18 | 18 | ||
| 19 | &mcspi4 { | 19 | &mcspi4 { |
| 20 | 20 | ||
| 21 | status = "okay"; | ||
| 22 | 21 | ||
| 23 | st33zp24@0 { | 22 | st33zp24@0 { |
| 24 | 23 | ||
| @@ -17,5 +17,4 @@ tpm@57 { · 16 unmodified lines | |||
| 17 | compatible = "nuvoton,npct650", "nuvoton,npct601"; | 17 | compatible = "nuvoton,npct650", "nuvoton,npct601"; |
| 18 | linux,sml-base = <0x7f 0xfd450000>; | 18 | linux,sml-base = <0x7f 0xfd450000>; |
| 19 | linux,sml-size = <0x10000>; | 19 | linux,sml-size = <0x10000>; |
| 20 | status = "okay"; | ||
| 21 | }; | 20 | }; |
| @@ -13,7 +13,6 @@ Example (for ARM-based BeagleBoard xM with TPM_TIS on SPI4): · 12 unmodified lines | |||
| 13 | 13 | ||
| 14 | &mcspi4 { | 14 | &mcspi4 { |
| 15 | 15 | ||
| 16 | status = "okay"; | ||
| 17 | 16 | ||
| 18 | tpm_tis@0 { | 17 | tpm_tis@0 { |
| 19 | 18 | ||
| @@ -15,7 +15,6 @@ arcuart0: serial@c0fc1000 { · 14 unmodified lines | |||
| 15 | interrupts = <5>; | 15 | interrupts = <5>; |
| 16 | clock-frequency = <80000000>; | 16 | clock-frequency = <80000000>; |
| 17 | current-speed = <115200>; | 17 | current-speed = <115200>; |
| 18 | status = "okay"; | ||
| 19 | }; | 18 | }; |
| 20 | 19 | ||
| 21 | Note: Each port should have an alias correctly numbered in "aliases" node. | 20 | Note: Each port should have an alias correctly numbered in "aliases" node. |
| @@ -15,7 +15,6 @@ serial@b00260000 { · 14 unmodified lines | |||
| 15 | compatible = "axis,etraxfs-uart"; | 15 | compatible = "axis,etraxfs-uart"; |
| 16 | reg = <0xb0026000 0x1000>; | 16 | reg = <0xb0026000 0x1000>; |
| 17 | interrupts = <68>; | 17 | interrupts = <68>; |
| 18 | status = "disabled"; | ||
| 19 | dtr-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>; | 18 | dtr-gpios = <&sysgpio 0 GPIO_ACTIVE_LOW>; |
| 20 | dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>; | 19 | dsr-gpios = <&sysgpio 1 GPIO_ACTIVE_LOW>; |
| 21 | rng-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>; | 20 | rng-gpios = <&sysgpio 2 GPIO_ACTIVE_LOW>; |
| @@ -33,5 +33,4 @@ serial@70006000 { · 32 unmodified lines | |||
| 33 | reset-names = "serial"; | 33 | reset-names = "serial"; |
| 34 | dmas = <&apbdma 8>, <&apbdma 8>; | 34 | dmas = <&apbdma 8>, <&apbdma 8>; |
| 35 | dma-names = "rx", "tx"; | 35 | dma-names = "rx", "tx"; |
| 36 | status = "disabled"; | ||
| 37 | }; | 36 | }; |
| @@ -72,13 +72,10 @@ Examples: · 71 unmodified lines | |||
| 72 | }; | 72 | }; |
| 73 | 73 | ||
| 74 | uarta: serial@12490000 { | 74 | uarta: serial@12490000 { |
| 75 | status = "ok"; | ||
| 76 | }; | 75 | }; |
| 77 | 76 | ||
| 78 | uartb: serial@16340000 { | 77 | uartb: serial@16340000 { |
| 79 | status = "ok"; | ||
| 80 | }; | 78 | }; |
| 81 | 79 | ||
| 82 | uartc: serial@1a240000 { | 80 | uartc: serial@1a240000 { |
| 83 | status = "ok"; | ||
| 84 | }; | 81 | }; |
| @@ -43,7 +43,6 @@ Examples: · 42 unmodified lines | |||
| 43 | rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; | 43 | rng-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; |
| 44 | cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; | 44 | cts-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; |
| 45 | rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; | 45 | rts-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; |
| 46 | status = "okay"; | ||
| 47 | }; | 46 | }; |
| 48 | 47 | ||
| 49 | scifa4: serial@e6c80000 { | 48 | scifa4: serial@e6c80000 { |
| @@ -54,5 +53,4 @@ Examples: · 4 unmodified lines | |||
| 54 | clock-names = "fck"; | 53 | clock-names = "fck"; |
| 55 | power-domains = <&pd_a3sp>; | 54 | power-domains = <&pd_a3sp>; |
| 56 | uart-has-rtscts; | 55 | uart-has-rtscts; |
| 57 | status = "okay"; | ||
| 58 | }; | 56 | }; |
| @@ -19,5 +19,4 @@ Example: · 18 unmodified lines | |||
| 19 | reg = <0x01c2a000 0x400>; | 19 | reg = <0x01c2a000 0x400>; |
| 20 | interrupts = <0 62 4>; | 20 | interrupts = <0 62 4>; |
| 21 | clocks = <&apb1_gates 6>; | 21 | clocks = <&apb1_gates 6>; |
| 22 | status = "disabled"; | ||
| 23 | }; | 22 | }; |
| @@ -78,7 +78,6 @@ Example for APQ8064: · 77 unmodified lines | |||
| 78 | interrupts = <0 152 0x0>; | 78 | interrupts = <0 152 0x0>; |
| 79 | clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>; | 79 | clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>; |
| 80 | clock-names = "core", "iface"; | 80 | clock-names = "core", "iface"; |
| 81 | status = "ok"; | ||
| 82 | }; | 81 | }; |
| 83 | }; | 82 | }; |
| 84 | 83 | ||
| @@ -23,5 +23,4 @@ Example: · 22 unmodified lines | |||
| 23 | compatible = "marvell,a370db-audio"; | 23 | compatible = "marvell,a370db-audio"; |
| 24 | marvell,audio-controller = <&audio_controller>; | 24 | marvell,audio-controller = <&audio_controller>; |
| 25 | marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>; | 25 | marvell,audio-codec = <&audio_codec &spdif_out &spdif_in>; |
| 26 | status = "okay"; | ||
| 27 | }; | 26 | }; |
| @@ -45,7 +45,6 @@ Example: · 44 unmodified lines | |||
| 45 | &ssc0 { | 45 | &ssc0 { |
| 46 | #sound-dai-cells = <0>; | 46 | #sound-dai-cells = <0>; |
| 47 | 47 | ||
| 48 | status = "okay"; | ||
| 49 | }; | 48 | }; |
| 50 | 49 | ||
| 51 | &i2c { | 50 | &i2c { |
| @@ -47,21 +47,17 @@ Example: · 46 unmodified lines | |||
| 47 | 47 | ||
| 48 | ssp0: ssp_port@0 { | 48 | ssp0: ssp_port@0 { |
| 49 | reg = <0>; | 49 | reg = <0>; |
| 50 | status = "okay"; | ||
| 51 | }; | 50 | }; |
| 52 | 51 | ||
| 53 | ssp1: ssp_port@1 { | 52 | ssp1: ssp_port@1 { |
| 54 | reg = <1>; | 53 | reg = <1>; |
| 55 | status = "disabled"; | ||
| 56 | }; | 54 | }; |
| 57 | 55 | ||
| 58 | ssp2: ssp_port@2 { | 56 | ssp2: ssp_port@2 { |
| 59 | reg = <2>; | 57 | reg = <2>; |
| 60 | status = "disabled"; | ||
| 61 | }; | 58 | }; |
| 62 | 59 | ||
| 63 | spdif: spdif_port@3 { | 60 | spdif: spdif_port@3 { |
| 64 | reg = <3>; | 61 | reg = <3>; |
| 65 | status = "disabled"; | ||
| 66 | }; | 62 | }; |
| 67 | }; | 63 | }; |
| @@ -47,5 +47,4 @@ mcbsp0: mcbsp@1d10000 { · 46 unmodified lines | |||
| 47 | dmas = <&edma0 3 1 | 47 | dmas = <&edma0 3 1 |
| 48 | &edma0 2 1>; | 48 | &edma0 2 1>; |
| 49 | dma-names = "tx", "rx"; | 49 | dma-names = "tx", "rx"; |
| 50 | status = "okay"; | ||
| 51 | }; | 50 | }; |
| @@ -61,5 +61,4 @@ asrc: asrc@02034000 { · 60 unmodified lines | |||
| 61 | "txa", "txb", "txc"; | 61 | "txa", "txb", "txc"; |
| 62 | fsl,asrc-rate = <48000>; | 62 | fsl,asrc-rate = <48000>; |
| 63 | fsl,asrc-width = <16>; | 63 | fsl,asrc-width = <16>; |
| 64 | status = "okay"; | ||
| 65 | }; | 64 | }; |
| @@ -59,5 +59,4 @@ esai: esai@02024000 { · 58 unmodified lines | |||
| 59 | fsl,fifo-depth = <128>; | 59 | fsl,fifo-depth = <128>; |
| 60 | fsl,esai-synchronous; | 60 | fsl,esai-synchronous; |
| 61 | big-endian; | 61 | big-endian; |
| 62 | status = "disabled"; | ||
| 63 | }; | 62 | }; |
| @@ -59,5 +59,4 @@ spdif: spdif@02004000 { · 58 unmodified lines | |||
| 59 | "rxtx7"; | 59 | "rxtx7"; |
| 60 | 60 | ||
| 61 | big-endian; | 61 | big-endian; |
| 62 | status = "okay"; | ||
| 63 | }; | 62 | }; |
| @@ -13,5 +13,4 @@ Example node: · 12 unmodified lines | |||
| 13 | 13 | ||
| 14 | hdmi_audio: hdmi_audio@0 { | 14 | hdmi_audio: hdmi_audio@0 { |
| 15 | compatible = "linux,hdmi-audio"; | 15 | compatible = "linux,hdmi-audio"; |
| 16 | status = "okay"; | ||
| 17 | }; | 16 | }; |
| @@ -621,7 +621,6 @@ Example: simple sound card · 620 unmodified lines | |||
| 621 | /* Single DAI */ | 621 | /* Single DAI */ |
| 622 | #sound-dai-cells = <0>; | 622 | #sound-dai-cells = <0>; |
| 623 | 623 | ||
| 624 | status = "okay"; | ||
| 625 | 624 | ||
| 626 | rcar_sound,dai { | 625 | rcar_sound,dai { |
| 627 | dai0 { | 626 | dai0 { |
| @@ -667,7 +666,6 @@ Example: simple sound card for Multi channel · 39 unmodified lines | |||
| 667 | /* Single DAI */ | 666 | /* Single DAI */ |
| 668 | #sound-dai-cells = <0>; | 667 | #sound-dai-cells = <0>; |
| 669 | 668 | ||
| 670 | status = "okay"; | ||
| 671 | 669 | ||
| 672 | rcar_sound,dai { | 670 | rcar_sound,dai { |
| 673 | dai0 { | 671 | dai0 { |
| @@ -38,5 +38,4 @@ pdm: pdm@ff040000 { · 37 unmodified lines | |||
| 38 | &pdmm0_sdi1_sleep | 38 | &pdmm0_sdi1_sleep |
| 39 | &pdmm0_sdi2_sleep | 39 | &pdmm0_sdi2_sleep |
| 40 | &pdmm0_sdi3_sleep>; | 40 | &pdmm0_sdi3_sleep>; |
| 41 | status = "disabled"; | ||
| 42 | }; | 41 | }; |
| @@ -41,6 +41,5 @@ spdif: spdif@0x1011e000 { · 40 unmodified lines | |||
| 41 | dma-names = "tx"; | 41 | dma-names = "tx"; |
| 42 | clock-names = "hclk", "mclk"; | 42 | clock-names = "hclk", "mclk"; |
| 43 | clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>; | 43 | clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>; |
| 44 | status = "disabled"; | ||
| 45 | #sound-dai-cells = <0>; | 44 | #sound-dai-cells = <0>; |
| 46 | }; | 45 | }; |
| @@ -53,7 +53,6 @@ Example: · 52 unmodified lines | |||
| 53 | 53 | ||
| 54 | sti_uni_player1: sti-uni-player@0x8D81000 { | 54 | sti_uni_player1: sti-uni-player@0x8D81000 { |
| 55 | compatible = "st,stih407-uni-player-hdmi"; | 55 | compatible = "st,stih407-uni-player-hdmi"; |
| 56 | status = "okay"; | ||
| 57 | #sound-dai-cells = <0>; | 56 | #sound-dai-cells = <0>; |
| 58 | st,syscfg = <&syscfg_core>; | 57 | st,syscfg = <&syscfg_core>; |
| 59 | clocks = <&clk_s_d0_flexgen CLK_PCM_1>; | 58 | clocks = <&clk_s_d0_flexgen CLK_PCM_1>; |
| @@ -66,7 +65,6 @@ Example: · 6 unmodified lines | |||
| 66 | 65 | ||
| 67 | sti_uni_player2: sti-uni-player@0x8D82000 { | 66 | sti_uni_player2: sti-uni-player@0x8D82000 { |
| 68 | compatible = "st,stih407-uni-player-pcm-out"; | 67 | compatible = "st,stih407-uni-player-pcm-out"; |
| 69 | status = "okay"; | ||
| 70 | #sound-dai-cells = <0>; | 68 | #sound-dai-cells = <0>; |
| 71 | st,syscfg = <&syscfg_core>; | 69 | st,syscfg = <&syscfg_core>; |
| 72 | clocks = <&clk_s_d0_flexgen CLK_PCM_2>; | 70 | clocks = <&clk_s_d0_flexgen CLK_PCM_2>; |
| @@ -78,7 +76,6 @@ Example: · 5 unmodified lines | |||
| 78 | 76 | ||
| 79 | sti_uni_player3: sti-uni-player@0x8D85000 { | 77 | sti_uni_player3: sti-uni-player@0x8D85000 { |
| 80 | compatible = "st,stih407-uni-player-spdif"; | 78 | compatible = "st,stih407-uni-player-spdif"; |
| 81 | status = "okay"; | ||
| 82 | #sound-dai-cells = <0>; | 79 | #sound-dai-cells = <0>; |
| 83 | st,syscfg = <&syscfg_core>; | 80 | st,syscfg = <&syscfg_core>; |
| 84 | clocks = <&clk_s_d0_flexgen CLK_SPDIFF>; | 81 | clocks = <&clk_s_d0_flexgen CLK_SPDIFF>; |
| @@ -90,7 +87,6 @@ Example: · 5 unmodified lines | |||
| 90 | 87 | ||
| 91 | sti_uni_reader1: sti-uni-reader@0x8D84000 { | 88 | sti_uni_reader1: sti-uni-reader@0x8D84000 { |
| 92 | compatible = "st,stih407-uni-reader-hdmi"; | 89 | compatible = "st,stih407-uni-reader-hdmi"; |
| 93 | status = "disabled"; | ||
| 94 | #sound-dai-cells = <0>; | 90 | #sound-dai-cells = <0>; |
| 95 | st,syscfg = <&syscfg_core>; | 91 | st,syscfg = <&syscfg_core>; |
| 96 | reg = <0x8D84000 0x158>; | 92 | reg = <0x8D84000 0x158>; |
| @@ -125,7 +121,6 @@ Example of audio card declaration: · 28 unmodified lines | |||
| 125 | sound { | 121 | sound { |
| 126 | compatible = "simple-audio-card"; | 122 | compatible = "simple-audio-card"; |
| 127 | simple-audio-card,name = "sti audio card"; | 123 | simple-audio-card,name = "sti audio card"; |
| 128 | status = "okay"; | ||
| 129 | 124 | ||
| 130 | simple-audio-card,dai-link@0 { | 125 | simple-audio-card,dai-link@0 { |
| 131 | /* DAC */ | 126 | /* DAC */ |
| @@ -39,5 +39,4 @@ spdif: spdif@01c21000 { · 38 unmodified lines | |||
| 39 | clock-names = "apb", "spdif"; | 39 | clock-names = "apb", "spdif"; |
| 40 | dmas = <&dma 0 2>, <&dma 0 2>; | 40 | dmas = <&dma 0 2>, <&dma 0 2>; |
| 41 | dma-names = "rx", "tx"; | 41 | dma-names = "rx", "tx"; |
| 42 | status = "okay"; | ||
| 43 | }; | 42 | }; |
| @@ -17,7 +17,6 @@ Required properties: · 16 unmodified lines | |||
| 17 | Example: | 17 | Example: |
| 18 | 18 | ||
| 19 | tas5720: tas5720@6c { | 19 | tas5720: tas5720@6c { |
| 20 | status = "okay"; | ||
| 21 | compatible = "ti,tas5720"; | 20 | compatible = "ti,tas5720"; |
| 22 | reg = <0x6c>; | 21 | reg = <0x6c>; |
| 23 | dvdd-supply = <&vdd_3v3_reg>; | 22 | dvdd-supply = <&vdd_3v3_reg>; |
| @@ -27,7 +27,6 @@ Example: · 26 unmodified lines | |||
| 27 | interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; | 27 | interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; |
| 28 | dmas = <&dma 5>, <&dma 6>; | 28 | dmas = <&dma 5>, <&dma 6>; |
| 29 | dma-names = "tx", "rx"; | 29 | dma-names = "tx", "rx"; |
| 30 | status = "okay"; | ||
| 31 | }; | 30 | }; |
| 32 | 31 | ||
| 33 | sound { | 32 | sound { |
| @@ -24,5 +24,4 @@ Example: · 23 unmodified lines | |||
| 24 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | 24 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; |
| 25 | dmas = <&dma 4>; | 25 | dmas = <&dma 4>; |
| 26 | dma-names = "tx"; | 26 | dma-names = "tx"; |
| 27 | status = "okay"; | ||
| 28 | }; | 27 | }; |
| @@ -28,7 +28,6 @@ spi1: spi@0x4000c400 { /* USART1 */ · 27 unmodified lines | |||
| 28 | clocks = <&cmu 20>; | 28 | clocks = <&cmu 20>; |
| 29 | cs-gpios = <&gpio 51 1>; // D3 | 29 | cs-gpios = <&gpio 51 1>; // D3 |
| 30 | energymicro,location = <1>; | 30 | energymicro,location = <1>; |
| 31 | status = "ok"; | ||
| 32 | 31 | ||
| 33 | ks8851@0 { | 32 | ks8851@0 { |
| 34 | compatible = "ks8851"; | 33 | compatible = "ks8851"; |
| @@ -36,6 +35,5 @@ spi1: spi@0x4000c400 { /* USART1 */ · 1 unmodified line | |||
| 36 | reg = <0>; | 35 | reg = <0>; |
| 37 | interrupt-parent = <&boardfpga>; | 36 | interrupt-parent = <&boardfpga>; |
| 38 | interrupts = <4>; | 37 | interrupts = <4>; |
| 39 | status = "ok"; | ||
| 40 | }; | 38 | }; |
| 41 | }; | 39 | }; |
| @@ -38,5 +38,4 @@ spi@7000d600 { · 37 unmodified lines | |||
| 38 | reset-names = "spi"; | 38 | reset-names = "spi"; |
| 39 | dmas = <&apbdma 16>, <&apbdma 16>; | 39 | dmas = <&apbdma 16>, <&apbdma 16>; |
| 40 | dma-names = "rx", "tx"; | 40 | dma-names = "rx", "tx"; |
| 41 | status = "disabled"; | ||
| 42 | }; | 41 | }; |
| @@ -34,5 +34,4 @@ spi@7000c380 { · 33 unmodified lines | |||
| 34 | reset-names = "spi"; | 34 | reset-names = "spi"; |
| 35 | dmas = <&apbdma 11>, <&apbdma 11>; | 35 | dmas = <&apbdma 11>, <&apbdma 11>; |
| 36 | dma-names = "rx", "tx"; | 36 | dma-names = "rx", "tx"; |
| 37 | status = "disabled"; | ||
| 38 | }; | 37 | }; |
| @@ -34,5 +34,4 @@ spi@7000d600 { · 33 unmodified lines | |||
| 34 | reset-names = "spi"; | 34 | reset-names = "spi"; |
| 35 | dmas = <&apbdma 16>, <&apbdma 16>; | 35 | dmas = <&apbdma 16>, <&apbdma 16>; |
| 36 | dma-names = "rx", "tx"; | 36 | dma-names = "rx", "tx"; |
| 37 | status = "disabled"; | ||
| 38 | }; | 37 | }; |
| @@ -24,6 +24,5 @@ Example: · 23 unmodified lines | |||
| 24 | interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>; | 24 | interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>; |
| 25 | #address-cells = <1>; | 25 | #address-cells = <1>; |
| 26 | #size-cells = <0>; | 26 | #size-cells = <0>; |
| 27 | status = "disabled"; | ||
| 28 | }; | 27 | }; |
| 29 | 28 | ||
| @@ -79,5 +79,4 @@ Example: · 78 unmodified lines | |||
| 79 | dma-names = "tx", "rx"; | 79 | dma-names = "tx", "rx"; |
| 80 | #address-cells = <1>; | 80 | #address-cells = <1>; |
| 81 | #size-cells = <0>; | 81 | #size-cells = <0>; |
| 82 | status = "disabled"; | ||
| 83 | }; | 82 | }; |
| @@ -23,7 +23,6 @@ spi@80000500 { · 22 unmodified lines | |||
| 23 | reg = <0x80000500 0x4>; | 23 | reg = <0x80000500 0x4>; |
| 24 | interrupts = <15>; | 24 | interrupts = <15>; |
| 25 | clocks = <&clks CLPS711X_CLK_SPI>; | 25 | clocks = <&clks CLPS711X_CLK_SPI>; |
| 26 | status = "disabled"; | ||
| 27 | }; | 26 | }; |
| 28 | 27 | ||
| 29 | syscon3: syscon@80002200 { | 28 | syscon3: syscon@80002200 { |
| @@ -39,7 +39,6 @@ dspi0@4002c000 { · 38 unmodified lines | |||
| 39 | pinctrl-names = "default"; | 39 | pinctrl-names = "default"; |
| 40 | pinctrl-0 = <&pinctrl_dspi0_1>; | 40 | pinctrl-0 = <&pinctrl_dspi0_1>; |
| 41 | big-endian; | 41 | big-endian; |
| 42 | status = "okay"; | ||
| 43 | 42 | ||
| 44 | sflash: at26df081a@0 { | 43 | sflash: at26df081a@0 { |
| 45 | #address-cells = <1>; | 44 | #address-cells = <1>; |
| @@ -57,5 +57,4 @@ spi: spi@1100a000 { · 56 unmodified lines | |||
| 57 | clock-names = "parent-clk", "sel-clk", "spi-clk"; | 57 | clock-names = "parent-clk", "sel-clk", "spi-clk"; |
| 58 | cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>; | 58 | cs-gpios = <&pio 105 GPIO_ACTIVE_LOW>, <&pio 72 GPIO_ACTIVE_LOW>; |
| 59 | mediatek,pad-select = <1>, <0>; | 59 | mediatek,pad-select = <1>, <0>; |
| 60 | status = "disabled"; | ||
| 61 | }; | 60 | }; |
| @@ -29,7 +29,6 @@ Example: · 28 unmodified lines | |||
| 29 | cell-index = <0>; | 29 | cell-index = <0>; |
| 30 | reg = <0x10600 0x28>; | 30 | reg = <0x10600 0x28>; |
| 31 | interrupts = <23>; | 31 | interrupts = <23>; |
| 32 | status = "disabled"; | ||
| 33 | }; | 32 | }; |
| 34 | 33 | ||
| 35 | Example with SPI direct mode support (optionally): | 34 | Example with SPI direct mode support (optionally): |
| @@ -48,7 +47,6 @@ Example with SPI direct mode support (optionally): · 12 unmodified lines | |||
| 48 | <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */ | 47 | <MBUS_ID(0x01, 0x9f) 0 0xffffffff>, /* CS6 */ |
| 49 | <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */ | 48 | <MBUS_ID(0x01, 0xdf) 0 0xffffffff>; /* CS7 */ |
| 50 | interrupts = <23>; | 49 | interrupts = <23>; |
| 51 | status = "disabled"; | ||
| 52 | }; | 50 | }; |
| 53 | 51 | ||
| 54 | To enable the direct mode, the board specific 'ranges' property in the | 52 | To enable the direct mode, the board specific 'ranges' property in the |
| @@ -18,7 +18,6 @@ spi1: spi@01c06000 { · 17 unmodified lines | |||
| 18 | interrupts = <11>; | 18 | interrupts = <11>; |
| 19 | clocks = <&ahb_gates 21>, <&spi1_clk>; | 19 | clocks = <&ahb_gates 21>, <&spi1_clk>; |
| 20 | clock-names = "ahb", "mod"; | 20 | clock-names = "ahb", "mod"; |
| 21 | status = "disabled"; | ||
| 22 | #address-cells = <1>; | 21 | #address-cells = <1>; |
| 23 | #size-cells = <0>; | 22 | #size-cells = <0>; |
| 24 | }; | 23 | }; |
| @@ -39,7 +39,6 @@ spi0: spi@01c68000 { · 38 unmodified lines | |||
| 39 | pinctrl-names = "default"; | 39 | pinctrl-names = "default"; |
| 40 | pinctrl-0 = <&spi0_pins>; | 40 | pinctrl-0 = <&spi0_pins>; |
| 41 | resets = <&ccu RST_BUS_SPI0>; | 41 | resets = <&ccu RST_BUS_SPI0>; |
| 42 | status = "disabled"; | ||
| 43 | #address-cells = <1>; | 42 | #address-cells = <1>; |
| 44 | #size-cells = <0>; | 43 | #size-cells = <0>; |
| 45 | }; | 44 | }; |
| @@ -26,7 +26,6 @@ spi1: spi@fffcc000 { · 25 unmodified lines | |||
| 26 | clock-names = "spi_clk"; | 26 | clock-names = "spi_clk"; |
| 27 | cs-gpios = <&pioB 3 0>; | 27 | cs-gpios = <&pioB 3 0>; |
| 28 | atmel,fifo-size = <32>; | 28 | atmel,fifo-size = <32>; |
| 29 | status = "okay"; | ||
| 30 | 29 | ||
| 31 | mmc-slot@0 { | 30 | mmc-slot@0 { |
| 32 | compatible = "mmc-spi-slot"; | 31 | compatible = "mmc-spi-slot"; |
| @@ -59,7 +59,6 @@ sram-controller@01c00000 { · 58 unmodified lines | |||
| 59 | emac_sram: sram-section@8000 { | 59 | emac_sram: sram-section@8000 { |
| 60 | compatible = "allwinner,sun4i-a10-sram-a3-a4"; | 60 | compatible = "allwinner,sun4i-a10-sram-a3-a4"; |
| 61 | reg = <0x8000 0x4000>; | 61 | reg = <0x8000 0x4000>; |
| 62 | status = "disabled"; | ||
| 63 | }; | 62 | }; |
| 64 | }; | 63 | }; |
| 65 | }; | 64 | }; |
| @@ -20,5 +20,4 @@ Example: · 19 unmodified lines | |||
| 20 | compatible = "marvell,armada370-thermal"; | 20 | compatible = "marvell,armada370-thermal"; |
| 21 | reg = <0xd0018300 0x4 | 21 | reg = <0xd0018300 0x4 |
| 22 | 0xd0018304 0x4>; | 22 | 0xd0018304 0x4>; |
| 23 | status = "okay"; | ||
| 24 | }; | 23 | }; |
| @@ -77,7 +77,6 @@ Example 1): · 76 unmodified lines | |||
| 77 | interrupts = <2 4>; | 77 | interrupts = <2 4>; |
| 78 | clocks = <&clock 383>; | 78 | clocks = <&clock 383>; |
| 79 | clock-names = "tmu_apbif"; | 79 | clock-names = "tmu_apbif"; |
| 80 | status = "disabled"; | ||
| 81 | vtmu-supply = <&tmu_regulator_node>; | 80 | vtmu-supply = <&tmu_regulator_node>; |
| 82 | #include "exynos4412-tmu-sensor-conf.dtsi" | 81 | #include "exynos4412-tmu-sensor-conf.dtsi" |
| 83 | }; | 82 | }; |
| @@ -36,7 +36,6 @@ Example: · 35 unmodified lines | |||
| 36 | clocks = <&cpg CPG_MOD 522>; | 36 | clocks = <&cpg CPG_MOD 522>; |
| 37 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 37 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
| 38 | #thermal-sensor-cells = <1>; | 38 | #thermal-sensor-cells = <1>; |
| 39 | status = "okay"; | ||
| 40 | }; | 39 | }; |
| 41 | 40 | ||
| 42 | thermal-zones { | 41 | thermal-zones { |
| @@ -21,6 +21,16 @@ adi,adt7490 +/-1C TDM Extended Temp Range I.C · 20 unmodified lines | |||
| 21 | adi,adxl345 Three-Axis Digital Accelerometer | 21 | adi,adxl345 Three-Axis Digital Accelerometer |
| 22 | adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too) | 22 | adi,adxl346 Three-Axis Digital Accelerometer (backward-compatibility value "adi,adxl345" must be listed too) |
| 23 | ams,iaq-core AMS iAQ-Core VOC Sensor | 23 | ams,iaq-core AMS iAQ-Core VOC Sensor |
| 24 | amstaos,tsl2571 AMS/TAOS ALS and proximity sensor | ||
| 25 | amstaos,tsl2671 AMS/TAOS ALS and proximity sensor | ||
| 26 | amstaos,tmd2671 AMS/TAOS ALS and proximity sensor | ||
| 27 | amstaos,tsl2771 AMS/TAOS ALS and proximity sensor | ||
| 28 | amstaos,tmd2771 AMS/TAOS ALS and proximity sensor | ||
| 29 | amstaos,tsl2572 AMS/TAOS ALS and proximity sensor | ||
| 30 | amstaos,tsl2672 AMS/TAOS ALS and proximity sensor | ||
| 31 | amstaos,tmd2672 AMS/TAOS ALS and proximity sensor | ||
| 32 | amstaos,tsl2772 AMS/TAOS ALS and proximity sensor | ||
| 33 | amstaos,tmd2772 AMS/TAOS ALS and proximity sensor | ||
| 24 | at,24c08 i2c serial eeprom (24cxx) | 34 | at,24c08 i2c serial eeprom (24cxx) |
| 25 | atmel,at97sc3204t i2c trusted platform module (TPM) | 35 | atmel,at97sc3204t i2c trusted platform module (TPM) |
| 26 | capella,cm32181 CM32181: Ambient Light Sensor | 36 | capella,cm32181 CM32181: Ambient Light Sensor |
| @@ -36,7 +46,9 @@ dallas,ds1775 Tiny Digital Thermometer and Thermostat · 9 unmodified lines | |||
| 36 | dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM | 46 | dallas,ds3232 Extremely Accurate I²C RTC with Integrated Crystal and SRAM |
| 37 | dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O | 47 | dallas,ds4510 CPU Supervisor with Nonvolatile Memory and Programmable I/O |
| 38 | dallas,ds75 Digital Thermometer and Thermostat | 48 | dallas,ds75 Digital Thermometer and Thermostat |
| 49 | devantech,srf02 Devantech SRF02 ultrasonic ranger in I2C mode | ||
| 39 | devantech,srf08 Devantech SRF08 ultrasonic ranger | 50 | devantech,srf08 Devantech SRF08 ultrasonic ranger |
| 51 | devantech,srf10 Devantech SRF10 ultrasonic ranger | ||
| 40 | dlg,da9053 DA9053: flexible system level PMIC with multicore support | 52 | dlg,da9053 DA9053: flexible system level PMIC with multicore support |
| 41 | dlg,da9063 DA9063: system PMIC for quad-core application processors | 53 | dlg,da9063 DA9063: system PMIC for quad-core application processors |
| 42 | domintech,dmard09 DMARD09: 3-axis Accelerometer | 54 | domintech,dmard09 DMARD09: 3-axis Accelerometer |
| @@ -54,6 +66,7 @@ fsl,sgtl5000 SGTL5000: Ultra Low-Power Audio Codec · 11 unmodified lines | |||
| 54 | gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface | 66 | gmt,g751 G751: Digital Temperature Sensor and Thermal Watchdog with Two-Wire Interface |
| 55 | infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz) | 67 | infineon,slb9635tt Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz) |
| 56 | infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz) | 68 | infineon,slb9645tt Infineon SLB9645 I2C TPM (new protocol, max 400khz) |
| 69 | isil,isl1208 Intersil ISL1208 Low Power RTC with Battery Backed SRAM | ||
| 57 | isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor | 70 | isil,isl29028 Intersil ISL29028 Ambient Light and Proximity Sensor |
| 58 | isil,isl29030 Intersil ISL29030 Ambient Light and Proximity Sensor | 71 | isil,isl29030 Intersil ISL29030 Ambient Light and Proximity Sensor |
| 59 | maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator | 72 | maxim,ds1050 5 Bit Programmable, Pulse-Width Modulator |
| @@ -168,6 +181,7 @@ st,m41t80 M41T80 - SERIAL ACCESS RTC WITH ALARMS · 108 unmodified lines | |||
| 168 | taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire Serial Interface | 181 | taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire Serial Interface |
| 169 | ti,ads7828 8-Channels, 12-bit ADC | 182 | ti,ads7828 8-Channels, 12-bit ADC |
| 170 | ti,ads7830 8-Channels, 8-bit ADC | 183 | ti,ads7830 8-Channels, 8-bit ADC |
| 184 | ti,amc6821 Temperature Monitoring and Fan Control | ||
| 171 | ti,tsc2003 I2C Touch-Screen Controller | 185 | ti,tsc2003 I2C Touch-Screen Controller |
| 172 | ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface | 186 | ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface |
| 173 | ti,tmp103 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface | 187 | ti,tmp103 Low Power Digital Temperature Sensor with SMBUS/Two Wire Serial Interface |
| @@ -10,7 +10,6 @@ All other properties are optional. · 9 unmodified lines | |||
| 10 | Example: | 10 | Example: |
| 11 | unittest { | 11 | unittest { |
| 12 | compatible = "unittest"; | 12 | compatible = "unittest"; |
| 13 | status = "okay"; | ||
| 14 | }; | 13 | }; |
| 15 | 14 | ||
| 16 | 2) OF unittest i2c adapter platform device | 15 | 2) OF unittest i2c adapter platform device |
| @@ -25,7 +24,6 @@ Children nodes contain unittest i2c devices. · 8 unmodified lines | |||
| 25 | Example: | 24 | Example: |
| 26 | unittest-i2c-bus { | 25 | unittest-i2c-bus { |
| 27 | compatible = "unittest-i2c-bus"; | 26 | compatible = "unittest-i2c-bus"; |
| 28 | status = "okay"; | ||
| 29 | }; | 27 | }; |
| 30 | 28 | ||
| 31 | 3) OF unittest i2c device | 29 | 3) OF unittest i2c device |
| @@ -40,7 +38,6 @@ All other properties are optional · 8 unmodified lines | |||
| 40 | Example: | 38 | Example: |
| 41 | unittest-i2c-dev { | 39 | unittest-i2c-dev { |
| 42 | compatible = "unittest-i2c-dev"; | 40 | compatible = "unittest-i2c-dev"; |
| 43 | status = "okay"; | ||
| 44 | }; | 41 | }; |
| 45 | 42 | ||
| 46 | 4) OF unittest i2c mux device | 43 | 4) OF unittest i2c mux device |
| @@ -55,7 +52,6 @@ Children nodes contain unittest i2c bus nodes per channel. · 8 unmodified lines | |||
| 55 | Example: | 52 | Example: |
| 56 | unittest-i2c-mux { | 53 | unittest-i2c-mux { |
| 57 | compatible = "unittest-i2c-mux"; | 54 | compatible = "unittest-i2c-mux"; |
| 58 | status = "okay"; | ||
| 59 | #address-cells = <1>; | 55 | #address-cells = <1>; |
| 60 | #size-cells = <0>; | 56 | #size-cells = <0>; |
| 61 | channel-0 { | 57 | channel-0 { |
| @@ -65,7 +61,6 @@ Example: · 3 unmodified lines | |||
| 65 | i2c-dev { | 61 | i2c-dev { |
| 66 | reg = <8>; | 62 | reg = <8>; |
| 67 | compatible = "unittest-i2c-dev"; | 63 | compatible = "unittest-i2c-dev"; |
| 68 | status = "okay"; | ||
| 69 | }; | 64 | }; |
| 70 | }; | 65 | }; |
| 71 | }; | 66 | }; |
| @@ -25,5 +25,4 @@ Example: · 24 unmodified lines | |||
| 25 | phys = <&usbphy 0>; | 25 | phys = <&usbphy 0>; |
| 26 | phy-names = "usb"; | 26 | phy-names = "usb"; |
| 27 | extcon = <&usbphy 0>; | 27 | extcon = <&usbphy 0>; |
| 28 | status = "disabled"; | ||
| 29 | }; | 28 | }; |
| @@ -4,9 +4,9 @@ · 3 unmodified lines | |||
| 4 | - reg: offset and length of the usbss register sets | 4 | - reg: offset and length of the usbss register sets |
| 5 | - ti,hwmods : must be "usb_otg_hs" | 5 | - ti,hwmods : must be "usb_otg_hs" |
| 6 | 6 | ||
| 7 | The glue layer contains multiple child nodes. It is required the have | 7 | The glue layer contains multiple child nodes. It is required to have |
| 8 | at least a control module node, USB node and a PHY node. The second USB | 8 | at least a control module node, USB node and a PHY node. The second USB |
| 9 | node and its PHY node is optional. The DMA node is also optional. | 9 | node and its PHY node are optional. The DMA node is also optional. |
| 10 | 10 | ||
| 11 | Reset module | 11 | Reset module |
| 12 | ~~~~~~~~~~~~ | 12 | ~~~~~~~~~~~~ |
| @@ -42,7 +42,6 @@ Example: · 41 unmodified lines | |||
| 42 | usb_phy: usb-phy { | 42 | usb_phy: usb-phy { |
| 43 | compatible = "ti,da830-usb-phy"; | 43 | compatible = "ti,da830-usb-phy"; |
| 44 | #phy-cells = <0>; | 44 | #phy-cells = <0>; |
| 45 | status = "okay"; | ||
| 46 | }; | 45 | }; |
| 47 | usb0: usb@200000 { | 46 | usb0: usb@200000 { |
| 48 | compatible = "ti,da830-musb"; | 47 | compatible = "ti,da830-musb"; |
| @@ -66,7 +65,6 @@ Example: · 17 unmodified lines | |||
| 66 | "rx1", "rx2", "rx3", "rx4", | 65 | "rx1", "rx2", "rx3", "rx4", |
| 67 | "tx1", "tx2", "tx3", "tx4"; | 66 | "tx1", "tx2", "tx3", "tx4"; |
| 68 | 67 | ||
| 69 | status = "okay"; | ||
| 70 | 68 | ||
| 71 | cppi41dma: dma-controller@201000 { | 69 | cppi41dma: dma-controller@201000 { |
| 72 | compatible = "ti,da830-cppi41"; | 70 | compatible = "ti,da830-cppi41"; |
| @@ -42,7 +42,6 @@ or "device". · 41 unmodified lines | |||
| 42 | Example: | 42 | Example: |
| 43 | 43 | ||
| 44 | st_dwc3: dwc3@8f94000 { | 44 | st_dwc3: dwc3@8f94000 { |
| 45 | status = "disabled"; | ||
| 46 | compatible = "st,stih407-dwc3"; | 45 | compatible = "st,stih407-dwc3"; |
| 47 | reg = <0x08f94000 0x1000>, <0x110 0x4>; | 46 | reg = <0x08f94000 0x1000>, <0x110 0x4>; |
| 48 | reg-names = "reg-glue", "syscfg-reg"; | 47 | reg-names = "reg-glue", "syscfg-reg"; |
| @@ -18,7 +18,6 @@ Example device node: · 17 unmodified lines | |||
| 18 | usb@0 { | 18 | usb@0 { |
| 19 | #address-cells = <0x2>; | 19 | #address-cells = <0x2>; |
| 20 | #size-cells = <0x1>; | 20 | #size-cells = <0x1>; |
| 21 | status = "okay"; | ||
| 22 | compatible = "xlnx,zynqmp-dwc3"; | 21 | compatible = "xlnx,zynqmp-dwc3"; |
| 23 | clock-names = "bus_clk" "ref_clk"; | 22 | clock-names = "bus_clk" "ref_clk"; |
| 24 | clocks = <&clk125>, <&clk125>; | 23 | clocks = <&clk125>, <&clk125>; |
| @@ -31,7 +31,6 @@ Example: · 30 unmodified lines | |||
| 31 | clocks = <&clk_s_a1_ls 0>; | 31 | clocks = <&clk_s_a1_ls 0>; |
| 32 | phys = <&usb2_phy>; | 32 | phys = <&usb2_phy>; |
| 33 | phy-names = "usb"; | 33 | phy-names = "usb"; |
| 34 | status = "okay"; | ||
| 35 | 34 | ||
| 36 | resets = <&powerdown STIH416_USB1_POWERDOWN>, | 35 | resets = <&powerdown STIH416_USB1_POWERDOWN>, |
| 37 | <&softreset STIH416_USB1_SOFTRESET>; | 36 | <&softreset STIH416_USB1_SOFTRESET>; |
| @@ -40,7 +40,6 @@ Example: · 39 unmodified lines | |||
| 40 | port@0 { | 40 | port@0 { |
| 41 | reg = <0>; | 41 | reg = <0>; |
| 42 | phys = <&usb2phy 1>; | 42 | phys = <&usb2phy 1>; |
| 43 | status = "disabled"; | ||
| 44 | }; | 43 | }; |
| 45 | }; | 44 | }; |
| 46 | 45 | ||
| @@ -75,7 +74,6 @@ Example: · 28 unmodified lines | |||
| 75 | port@0 { | 74 | port@0 { |
| 76 | reg = <0>; | 75 | reg = <0>; |
| 77 | phys = <&usb2phy 1>; | 76 | phys = <&usb2phy 1>; |
| 78 | status = "disabled"; | ||
| 79 | }; | 77 | }; |
| 80 | 78 | ||
| 81 | }; | 79 | }; |
| @@ -21,5 +21,4 @@ Example: · 20 unmodified lines | |||
| 21 | interrupt-parent = <&mic>; | 21 | interrupt-parent = <&mic>; |
| 22 | interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>; | 22 | interrupts = <0x3d 0>, <0x3e 0>, <0x3c 0>, <0x3a 0>; |
| 23 | transceiver = <&isp1301>; | 23 | transceiver = <&isp1301>; |
| 24 | status = "okay"; | ||
| 25 | }; | 24 | }; |
| @@ -44,7 +44,6 @@ Example: · 43 unmodified lines | |||
| 44 | clock-names = "usb"; | 44 | clock-names = "usb"; |
| 45 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | 45 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; |
| 46 | ranges; | 46 | ranges; |
| 47 | status = "disabled"; | ||
| 48 | 47 | ||
| 49 | dwc3@2690000 { | 48 | dwc3@2690000 { |
| 50 | compatible = "synopsys,dwc3"; | 49 | compatible = "synopsys,dwc3"; |
| @@ -75,7 +75,6 @@ ssusb: usb@11271000 { · 74 unmodified lines | |||
| 75 | #address-cells = <2>; | 75 | #address-cells = <2>; |
| 76 | #size-cells = <2>; | 76 | #size-cells = <2>; |
| 77 | ranges; | 77 | ranges; |
| 78 | status = "disabled"; | ||
| 79 | 78 | ||
| 80 | usb_host: xhci@11270000 { | 79 | usb_host: xhci@11270000 { |
| 81 | compatible = "mediatek,mt8173-xhci"; | 80 | compatible = "mediatek,mt8173-xhci"; |
| @@ -86,6 +85,5 @@ ssusb: usb@11271000 { · 4 unmodified lines | |||
| 86 | clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>; | 85 | clocks = <&topckgen CLK_TOP_USB30_SEL>, <&clk26m>; |
| 87 | clock-names = "sys_ck", "ref_ck"; | 86 | clock-names = "sys_ck", "ref_ck"; |
| 88 | vusb33-supply = <&mt6397_vusb_reg>; | 87 | vusb33-supply = <&mt6397_vusb_reg>; |
| 89 | status = "disabled"; | ||
| 90 | }; | 88 | }; |
| 91 | }; | 89 | }; |
| @@ -29,7 +29,6 @@ Example: · 28 unmodified lines | |||
| 29 | clock-names = "ic", "clk48"; | 29 | clock-names = "ic", "clk48"; |
| 30 | phys = <&usb2_phy>; | 30 | phys = <&usb2_phy>; |
| 31 | phy-names = "usb"; | 31 | phy-names = "usb"; |
| 32 | status = "okay"; | ||
| 33 | 32 | ||
| 34 | resets = <&powerdown STIH416_USB0_POWERDOWN>, | 33 | resets = <&powerdown STIH416_USB0_POWERDOWN>, |
| 35 | <&softreset STIH416_USB0_SOFTRESET>; | 34 | <&softreset STIH416_USB0_SOFTRESET>; |
| @@ -29,7 +29,6 @@ Example device nodes: · 28 unmodified lines | |||
| 29 | clock-names = "ref"; | 29 | clock-names = "ref"; |
| 30 | #phy-cells = <0>; | 30 | #phy-cells = <0>; |
| 31 | 31 | ||
| 32 | status = "ok"; | ||
| 33 | }; | 32 | }; |
| 34 | 33 | ||
| 35 | ss_phy: phy@100f8830 { | 34 | ss_phy: phy@100f8830 { |
| @@ -39,7 +38,6 @@ Example device nodes: · 3 unmodified lines | |||
| 39 | clock-names = "ref"; | 38 | clock-names = "ref"; |
| 40 | #phy-cells = <0>; | 39 | #phy-cells = <0>; |
| 41 | 40 | ||
| 42 | status = "ok"; | ||
| 43 | }; | 41 | }; |
| 44 | 42 | ||
| 45 | usb3_0: usb30@0 { | 43 | usb3_0: usb30@0 { |
| @@ -51,7 +49,6 @@ Example device nodes: · 5 unmodified lines | |||
| 51 | 49 | ||
| 52 | ranges; | 50 | ranges; |
| 53 | 51 | ||
| 54 | status = "ok"; | ||
| 55 | 52 | ||
| 56 | dwc3@10000000 { | 53 | dwc3@10000000 { |
| 57 | compatible = "snps,dwc3"; | 54 | compatible = "snps,dwc3"; |
| @@ -29,13 +29,11 @@ Example device nodes: · 28 unmodified lines | |||
| 29 | #address-cells = <2>; | 29 | #address-cells = <2>; |
| 30 | #size-cells = <2>; | 30 | #size-cells = <2>; |
| 31 | ranges; | 31 | ranges; |
| 32 | status = "disabled"; | ||
| 33 | usbdrd_dwc3_0: dwc3@fe800000 { | 32 | usbdrd_dwc3_0: dwc3@fe800000 { |
| 34 | compatible = "snps,dwc3"; | 33 | compatible = "snps,dwc3"; |
| 35 | reg = <0x0 0xfe800000 0x0 0x100000>; | 34 | reg = <0x0 0xfe800000 0x0 0x100000>; |
| 36 | interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | 35 | interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; |
| 37 | dr_mode = "otg"; | 36 | dr_mode = "otg"; |
| 38 | status = "disabled"; | ||
| 39 | }; | 37 | }; |
| 40 | }; | 38 | }; |
| 41 | 39 | ||
| @@ -48,12 +46,10 @@ Example device nodes: · 6 unmodified lines | |||
| 48 | #address-cells = <2>; | 46 | #address-cells = <2>; |
| 49 | #size-cells = <2>; | 47 | #size-cells = <2>; |
| 50 | ranges; | 48 | ranges; |
| 51 | status = "disabled"; | ||
| 52 | usbdrd_dwc3_1: dwc3@fe900000 { | 49 | usbdrd_dwc3_1: dwc3@fe900000 { |
| 53 | compatible = "snps,dwc3"; | 50 | compatible = "snps,dwc3"; |
| 54 | reg = <0x0 0xfe900000 0x0 0x100000>; | 51 | reg = <0x0 0xfe900000 0x0 0x100000>; |
| 55 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | 52 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; |
| 56 | dr_mode = "otg"; | 53 | dr_mode = "otg"; |
| 57 | status = "disabled"; | ||
| 58 | }; | 54 | }; |
| 59 | }; | 55 | }; |
| @@ -2,7 +2,7 @@ Generic USB Device Properties · 1 unmodified line | |||
| 2 | 2 | ||
| 3 | Usually, we only use device tree for hard wired USB device. | 3 | Usually, we only use device tree for hard wired USB device. |
| 4 | The reference binding doc is from: | 4 | The reference binding doc is from: |
| 5 | http://www.firmware.org/1275/bindings/usb/usb-1_0.ps | 5 | http://www.devicetree.org/open-firmware/bindings/usb/usb-1_0.ps |
| 6 | 6 | ||
| 7 | Required properties: | 7 | Required properties: |
| 8 | - compatible: usbVID,PID. The textual representation of VID, PID shall | 8 | - compatible: usbVID,PID. The textual representation of VID, PID shall |
| @@ -16,7 +16,6 @@ Required properties: · 7 unmodified lines | |||
| 16 | Example: | 16 | Example: |
| 17 | 17 | ||
| 18 | &usb1 { | 18 | &usb1 { |
| 19 | status = "okay"; | ||
| 20 | 19 | ||
| 21 | #address-cells = <1>; | 20 | #address-cells = <1>; |
| 22 | #size-cells = <0>; | 21 | #size-cells = <0>; |
| @@ -9,6 +9,7 @@ actions Actions Semiconductor Co., Ltd. · 8 unmodified lines | |||
| 9 | active-semi Active-Semi International Inc | 9 | active-semi Active-Semi International Inc |
| 10 | ad Avionic Design GmbH | 10 | ad Avionic Design GmbH |
| 11 | adapteva Adapteva, Inc. | 11 | adapteva Adapteva, Inc. |
| 12 | adaptrum Adaptrum, Inc. | ||
| 12 | adh AD Holdings Plc. | 13 | adh AD Holdings Plc. |
| 13 | adi Analog Devices, Inc. | 14 | adi Analog Devices, Inc. |
| 14 | advantech Advantech Corporation | 15 | advantech Advantech Corporation |
| @@ -197,6 +198,7 @@ mediatek MediaTek Inc. · 182 unmodified lines | |||
| 197 | megachips MegaChips | 198 | megachips MegaChips |
| 198 | melexis Melexis N.V. | 199 | melexis Melexis N.V. |
| 199 | melfas MELFAS Inc. | 200 | melfas MELFAS Inc. |
| 201 | mellanox Mellanox Technologies | ||
| 200 | memsic MEMSIC Inc. | 202 | memsic MEMSIC Inc. |
| 201 | merrii Merrii Technology Co., Ltd. | 203 | merrii Merrii Technology Co., Ltd. |
| 202 | micrel Micrel Inc. | 204 | micrel Micrel Inc. |
| @@ -208,7 +210,7 @@ miramems MiraMEMS Sensing Technology Co., Ltd. · 5 unmodified lines | |||
| 208 | mitsubishi Mitsubishi Electric Corporation | 210 | mitsubishi Mitsubishi Electric Corporation |
| 209 | mosaixtech Mosaix Technologies, Inc. | 211 | mosaixtech Mosaix Technologies, Inc. |
| 210 | motorola Motorola, Inc. | 212 | motorola Motorola, Inc. |
| 211 | moxa Moxa | 213 | moxa Moxa Inc. |
| 212 | mpl MPL AG | 214 | mpl MPL AG |
| 213 | mqmaker mqmaker Inc. | 215 | mqmaker mqmaker Inc. |
| 214 | msi Micro-Star International Co. Ltd. | 216 | msi Micro-Star International Co. Ltd. |
| @@ -344,6 +346,7 @@ tpo TPO · 129 unmodified lines | |||
| 344 | tronfy Tronfy | 346 | tronfy Tronfy |
| 345 | tronsmart Tronsmart | 347 | tronsmart Tronsmart |
| 346 | truly Truly Semiconductors Limited | 348 | truly Truly Semiconductors Limited |
| 349 | tsd Theobroma Systems Design und Consulting GmbH | ||
| 347 | tyan Tyan Computer Corporation | 350 | tyan Tyan Computer Corporation |
| 348 | ucrobotics uCRobotics | 351 | ucrobotics uCRobotics |
| 349 | udoo Udoo | 352 | udoo Udoo |
| @@ -15,5 +15,4 @@ owire: owire@63fa4000 { · 14 unmodified lines | |||
| 15 | compatible = "fsl,imx53-owire", "fsl,imx21-owire"; | 15 | compatible = "fsl,imx53-owire", "fsl,imx21-owire"; |
| 16 | reg = <0x63fa4000 0x4000>; | 16 | reg = <0x63fa4000 0x4000>; |
| 17 | clocks = <&clks 159>; | 17 | clocks = <&clks 159>; |
| 18 | status = "disabled"; | ||
| 19 | }; | 18 | }; |
| @@ -31,5 +31,4 @@ Example: · 30 unmodified lines | |||
| 31 | atmel,watchdog-type = "hardware"; | 31 | atmel,watchdog-type = "hardware"; |
| 32 | atmel,dbg-halt; | 32 | atmel,dbg-halt; |
| 33 | atmel,idle-halt; | 33 | atmel,idle-halt; |
| 34 | status = "okay"; | ||
| 35 | }; | 34 | }; |
| @@ -48,5 +48,4 @@ Example: · 47 unmodified lines | |||
| 48 | atmel,idle-halt; | 48 | atmel,idle-halt; |
| 49 | atmel,max-heartbeat-sec = <16>; | 49 | atmel,max-heartbeat-sec = <16>; |
| 50 | atmel,min-heartbeat-sec = <0>; | 50 | atmel,min-heartbeat-sec = <0>; |
| 51 | status = "okay"; | ||
| 52 | }; | 51 | }; |
| @@ -41,6 +41,5 @@ Example: · 40 unmodified lines | |||
| 41 | reg = <0x20300 0x28>, <0x20108 0x4>; | 41 | reg = <0x20300 0x28>, <0x20108 0x4>; |
| 42 | interrupts = <3>; | 42 | interrupts = <3>; |
| 43 | timeout-sec = <10>; | 43 | timeout-sec = <10>; |
| 44 | status = "okay"; | ||
| 45 | clocks = <&gate_clk 7>; | 44 | clocks = <&gate_clk 7>; |
| 46 | }; | 45 | }; |
| @@ -1282,7 +1282,7 @@ hierarchy and routing of interrupts in the hardware. · 1281 unmodified lines | |||
| 1282 | The interrupt tree model is fully described in the | 1282 | The interrupt tree model is fully described in the |
| 1283 | document "Open Firmware Recommended Practice: Interrupt | 1283 | document "Open Firmware Recommended Practice: Interrupt |
| 1284 | Mapping Version 0.9". The document is available at: | 1284 | Mapping Version 0.9". The document is available at: |
| 1285 | <http://www.openfirmware.org/ofwg/practice/> | 1285 | <http://www.devicetree.org/open-firmware/practice/> |
| 1286 | 1286 | ||
| 1287 | 1) interrupts property | 1287 | 1) interrupts property |
| 1288 | ---------------------- | 1288 | ---------------------- |
| @@ -293,7 +293,7 @@ static int __init xilinx_timer_init(struct device_node *timer) · 292 unmodified lines | |||
| 293 | return -EINVAL; | 293 | return -EINVAL; |
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | pr_info("%s: irq=%d\n", timer->full_name, irq); | 296 | pr_info("%pOF: irq=%d\n", timer, irq); |
| 297 | 297 | ||
| 298 | clk = of_clk_get(timer, 0); | 298 | clk = of_clk_get(timer, 0); |
| 299 | if (IS_ERR(clk)) { | 299 | if (IS_ERR(clk)) { |
| @@ -508,8 +508,8 @@ void pci_process_bridge_OF_ranges(struct pci_controller *hose, · 507 unmodified lines | |||
| 508 | struct of_pci_range range; | 508 | struct of_pci_range range; |
| 509 | struct of_pci_range_parser parser; | 509 | struct of_pci_range_parser parser; |
| 510 | 510 | ||
| 511 | pr_info("PCI host bridge %s %s ranges:\n", | 511 | pr_info("PCI host bridge %pOF %s ranges:\n", |
| 512 | dev->full_name, primary ? "(primary)" : ""); | 512 | dev, primary ? "(primary)" : ""); |
| 513 | 513 | ||
| 514 | /* Check for ranges property */ | 514 | /* Check for ranges property */ |
| 515 | if (of_pci_range_parser_init(&parser, dev)) | 515 | if (of_pci_range_parser_init(&parser, dev)) |
| @@ -1219,8 +1219,8 @@ static void pcibios_setup_phb_resources(struct pci_controller *hose, · 703 unmodified lines | |||
| 1219 | 1219 | ||
| 1220 | if (!res->flags) { | 1220 | if (!res->flags) { |
| 1221 | pr_warn("PCI: I/O resource not set for host "); | 1221 | pr_warn("PCI: I/O resource not set for host "); |
| 1222 | pr_cont("bridge %s (domain %d)\n", | 1222 | pr_cont("bridge %pOF (domain %d)\n", |
| 1223 | hose->dn->full_name, hose->global_number); | 1223 | hose->dn, hose->global_number); |
| 1224 | /* Workaround for lack of IO resource only on 32-bit */ | 1224 | /* Workaround for lack of IO resource only on 32-bit */ |
| 1225 | res->start = (unsigned long)hose->io_base_virt - isa_io_base; | 1225 | res->start = (unsigned long)hose->io_base_virt - isa_io_base; |
| 1226 | res->end = res->start + IO_SPACE_LIMIT; | 1226 | res->end = res->start + IO_SPACE_LIMIT; |
| @@ -1241,8 +1241,8 @@ static void pcibios_setup_phb_resources(struct pci_controller *hose, · 14 unmodified lines | |||
| 1241 | if (i > 0) | 1241 | if (i > 0) |
| 1242 | continue; | 1242 | continue; |
| 1243 | pr_err("PCI: Memory resource 0 not set for "); | 1243 | pr_err("PCI: Memory resource 0 not set for "); |
| 1244 | pr_cont("host bridge %s (domain %d)\n", | 1244 | pr_cont("host bridge %pOF (domain %d)\n", |
| 1245 | hose->dn->full_name, hose->global_number); | 1245 | hose->dn, hose->global_number); |
| 1246 | 1246 | ||
| 1247 | /* Workaround for lack of MEM resource only on 32-bit */ | 1247 | /* Workaround for lack of MEM resource only on 32-bit */ |
| 1248 | res->start = hose->pci_mem_offset; | 1248 | res->start = hose->pci_mem_offset; |
| @@ -1270,7 +1270,7 @@ static void pcibios_scan_phb(struct pci_controller *hose) · 21 unmodified lines | |||
| 1270 | struct pci_bus *bus; | 1270 | struct pci_bus *bus; |
| 1271 | struct device_node *node = hose->dn; | 1271 | struct device_node *node = hose->dn; |
| 1272 | 1272 | ||
| 1273 | pr_debug("PCI: Scanning PHB %s\n", of_node_full_name(node)); | 1273 | pr_debug("PCI: Scanning PHB %pOF\n", node); |
| 1274 | 1274 | ||
| 1275 | pcibios_setup_phb_resources(hose, &resources); | 1275 | pcibios_setup_phb_resources(hose, &resources); |
| 1276 | 1276 | ||
| @@ -274,10 +274,9 @@ struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, · 273 unmodified lines | |||
| 274 | 274 | ||
| 275 | /* Now consume following elements while they are contiguous */ | 275 | /* Now consume following elements while they are contiguous */ |
| 276 | while (parser->range + parser->np <= parser->end) { | 276 | while (parser->range + parser->np <= parser->end) { |
| 277 | u32 flags, pci_space; | 277 | u32 flags; |
| 278 | u64 pci_addr, cpu_addr, size; | 278 | u64 pci_addr, cpu_addr, size; |
| 279 | 279 | ||
| 280 | pci_space = be32_to_cpup(parser->range); | ||
| 281 | flags = of_bus_pci_get_flags(parser->range); | 280 | flags = of_bus_pci_get_flags(parser->range); |
| 282 | pci_addr = of_read_number(parser->range + 1, ns); | 281 | pci_addr = of_read_number(parser->range + 1, ns); |
| 283 | cpu_addr = of_translate_address(parser->node, | 282 | cpu_addr = of_translate_address(parser->node, |
| @@ -559,7 +558,7 @@ static u64 __of_translate_address(struct device_node *dev, · 275 unmodified lines | |||
| 559 | int na, ns, pna, pns; | 558 | int na, ns, pna, pns; |
| 560 | u64 result = OF_BAD_ADDR; | 559 | u64 result = OF_BAD_ADDR; |
| 561 | 560 | ||
| 562 | pr_debug("** translation for device %s **\n", of_node_full_name(dev)); | 561 | pr_debug("** translation for device %pOF **\n", dev); |
| 563 | 562 | ||
| 564 | /* Increase refcount at current level */ | 563 | /* Increase refcount at current level */ |
| 565 | of_node_get(dev); | 564 | of_node_get(dev); |
| @@ -573,13 +572,13 @@ static u64 __of_translate_address(struct device_node *dev, · 7 unmodified lines | |||
| 573 | /* Count address cells & copy address locally */ | 572 | /* Count address cells & copy address locally */ |
| 574 | bus->count_cells(dev, &na, &ns); | 573 | bus->count_cells(dev, &na, &ns); |
| 575 | if (!OF_CHECK_COUNTS(na, ns)) { | 574 | if (!OF_CHECK_COUNTS(na, ns)) { |
| 576 | pr_debug("Bad cell count for %s\n", of_node_full_name(dev)); | 575 | pr_debug("Bad cell count for %pOF\n", dev); |
| 577 | goto bail; | 576 | goto bail; |
| 578 | } | 577 | } |
| 579 | memcpy(addr, in_addr, na * 4); | 578 | memcpy(addr, in_addr, na * 4); |
| 580 | 579 | ||
| 581 | pr_debug("bus is %s (na=%d, ns=%d) on %s\n", | 580 | pr_debug("bus is %s (na=%d, ns=%d) on %pOF\n", |
| 582 | bus->name, na, ns, of_node_full_name(parent)); | 581 | bus->name, na, ns, parent); |
| 583 | of_dump_addr("translating address:", addr, na); | 582 | of_dump_addr("translating address:", addr, na); |
| 584 | 583 | ||
| 585 | /* Translate */ | 584 | /* Translate */ |
| @@ -600,13 +599,12 @@ static u64 __of_translate_address(struct device_node *dev, · 14 unmodified lines | |||
| 600 | pbus = of_match_bus(parent); | 599 | pbus = of_match_bus(parent); |
| 601 | pbus->count_cells(dev, &pna, &pns); | 600 | pbus->count_cells(dev, &pna, &pns); |
| 602 | if (!OF_CHECK_COUNTS(pna, pns)) { | 601 | if (!OF_CHECK_COUNTS(pna, pns)) { |
| 603 | pr_err("Bad cell count for %s\n", | 602 | pr_err("Bad cell count for %pOF\n", dev); |
| 604 | of_node_full_name(dev)); | ||
| 605 | break; | 603 | break; |
| 606 | } | 604 | } |
| 607 | 605 | ||
| 608 | pr_debug("parent bus is %s (na=%d, ns=%d) on %s\n", | 606 | pr_debug("parent bus is %s (na=%d, ns=%d) on %pOF\n", |
| 609 | pbus->name, pna, pns, of_node_full_name(parent)); | 607 | pbus->name, pna, pns, parent); |
| 610 | 608 | ||
| 611 | /* Apply bus translation */ | 609 | /* Apply bus translation */ |
| 612 | if (of_translate_one(dev, bus, pbus, addr, na, ns, pna, rprop)) | 610 | if (of_translate_one(dev, bus, pbus, addr, na, ns, pna, rprop)) |
| @@ -855,7 +853,7 @@ int of_dma_get_range(struct device_node *np, u64 *dma_addr, u64 *paddr, u64 *siz · 242 unmodified lines | |||
| 855 | } | 853 | } |
| 856 | 854 | ||
| 857 | if (!ranges) { | 855 | if (!ranges) { |
| 858 | pr_debug("no dma-ranges found for node(%s)\n", np->full_name); | 856 | pr_debug("no dma-ranges found for node(%pOF)\n", np); |
| 859 | ret = -ENODEV; | 857 | ret = -ENODEV; |
| 860 | goto out; | 858 | goto out; |
| 861 | } | 859 | } |
| @@ -872,8 +870,8 @@ int of_dma_get_range(struct device_node *np, u64 *dma_addr, u64 *paddr, u64 *siz · 10 unmodified lines | |||
| 872 | dmaaddr = of_read_number(ranges, naddr); | 870 | dmaaddr = of_read_number(ranges, naddr); |
| 873 | *paddr = of_translate_dma_address(np, ranges); | 871 | *paddr = of_translate_dma_address(np, ranges); |
| 874 | if (*paddr == OF_BAD_ADDR) { | 872 | if (*paddr == OF_BAD_ADDR) { |
| 875 | pr_err("translation of DMA address(%pad) to CPU address failed node(%s)\n", | 873 | pr_err("translation of DMA address(%pad) to CPU address failed node(%pOF)\n", |
| 876 | dma_addr, np->full_name); | 874 | dma_addr, np); |
| 877 | ret = -EINVAL; | 875 | ret = -EINVAL; |
| 878 | goto out; | 876 | goto out; |
| 879 | } | 877 | } |
| @@ -60,14 +60,13 @@ DEFINE_RAW_SPINLOCK(devtree_lock); · 59 unmodified lines | |||
| 60 | 60 | ||
| 61 | int of_n_addr_cells(struct device_node *np) | 61 | int of_n_addr_cells(struct device_node *np) |
| 62 | { | 62 | { |
| 63 | const __be32 *ip; | 63 | u32 cells; |
| 64 | 64 | ||
| 65 | do { | 65 | do { |
| 66 | if (np->parent) | 66 | if (np->parent) |
| 67 | np = np->parent; | 67 | np = np->parent; |
| 68 | ip = of_get_property(np, "#address-cells", NULL); | 68 | if (!of_property_read_u32(np, "#address-cells", &cells)) |
| 69 | if (ip) | 69 | return cells; |
| 70 | return be32_to_cpup(ip); | ||
| 71 | } while (np->parent); | 70 | } while (np->parent); |
| 72 | /* No #address-cells property for the root node */ | 71 | /* No #address-cells property for the root node */ |
| 73 | return OF_ROOT_NODE_ADDR_CELLS_DEFAULT; | 72 | return OF_ROOT_NODE_ADDR_CELLS_DEFAULT; |
| @@ -76,14 +75,13 @@ EXPORT_SYMBOL(of_n_addr_cells); · 2 unmodified lines | |||
| 76 | 75 | ||
| 77 | int of_n_size_cells(struct device_node *np) | 76 | int of_n_size_cells(struct device_node *np) |
| 78 | { | 77 | { |
| 79 | const __be32 *ip; | 78 | u32 cells; |
| 80 | 79 | ||
| 81 | do { | 80 | do { |
| 82 | if (np->parent) | 81 | if (np->parent) |
| 83 | np = np->parent; | 82 | np = np->parent; |
| 84 | ip = of_get_property(np, "#size-cells", NULL); | 83 | if (!of_property_read_u32(np, "#size-cells", &cells)) |
| 85 | if (ip) | 84 | return cells; |
| 86 | return be32_to_cpup(ip); | ||
| 87 | } while (np->parent); | 85 | } while (np->parent); |
| 88 | /* No #size-cells property for the root node */ | 86 | /* No #size-cells property for the root node */ |
| 89 | return OF_ROOT_NODE_SIZE_CELLS_DEFAULT; | 87 | return OF_ROOT_NODE_SIZE_CELLS_DEFAULT; |
| @@ -160,7 +158,7 @@ int __of_add_property_sysfs(struct device_node *np, struct property *pp) · 70 unmodified lines | |||
| 160 | pp->attr.read = of_node_property_read; | 158 | pp->attr.read = of_node_property_read; |
| 161 | 159 | ||
| 162 | rc = sysfs_create_bin_file(&np->kobj, &pp->attr); | 160 | rc = sysfs_create_bin_file(&np->kobj, &pp->attr); |
| 163 | WARN(rc, "error adding attribute %s to node %s\n", pp->name, np->full_name); | 161 | WARN(rc, "error adding attribute %s to node %pOF\n", pp->name, np); |
| 164 | return rc; | 162 | return rc; |
| 165 | } | 163 | } |
| 166 | 164 | ||
| @@ -1122,7 +1120,7 @@ EXPORT_SYMBOL(of_find_node_by_phandle); · 955 unmodified lines | |||
| 1122 | void of_print_phandle_args(const char *msg, const struct of_phandle_args *args) | 1120 | void of_print_phandle_args(const char *msg, const struct of_phandle_args *args) |
| 1123 | { | 1121 | { |
| 1124 | int i; | 1122 | int i; |
| 1125 | printk("%s %s", msg, of_node_full_name(args->np)); | 1123 | printk("%s %pOF", msg, args->np); |
| 1126 | for (i = 0; i < args->args_count; i++) { | 1124 | for (i = 0; i < args->args_count; i++) { |
| 1127 | const char delim = i ? ',' : ':'; | 1125 | const char delim = i ? ',' : ':'; |
| 1128 | 1126 | ||
| @@ -1184,17 +1182,17 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it) · 55 unmodified lines | |||
| 1184 | 1182 | ||
| 1185 | if (it->cells_name) { | 1183 | if (it->cells_name) { |
| 1186 | if (!it->node) { | 1184 | if (!it->node) { |
| 1187 | pr_err("%s: could not find phandle\n", | 1185 | pr_err("%pOF: could not find phandle\n", |
| 1188 | it->parent->full_name); | 1186 | it->parent); |
| 1189 | goto err; | 1187 | goto err; |
| 1190 | } | 1188 | } |
| 1191 | 1189 | ||
| 1192 | if (of_property_read_u32(it->node, it->cells_name, | 1190 | if (of_property_read_u32(it->node, it->cells_name, |
| 1193 | &count)) { | 1191 | &count)) { |
| 1194 | pr_err("%s: could not get %s for %s\n", | 1192 | pr_err("%pOF: could not get %s for %pOF\n", |
| 1195 | it->parent->full_name, | 1193 | it->parent, |
| 1196 | it->cells_name, | 1194 | it->cells_name, |
| 1197 | it->node->full_name); | 1195 | it->node); |
| 1198 | goto err; | 1196 | goto err; |
| 1199 | } | 1197 | } |
| 1200 | } else { | 1198 | } else { |
| @@ -1206,8 +1204,8 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it) · 5 unmodified lines | |||
| 1206 | * property data length | 1204 | * property data length |
| 1207 | */ | 1205 | */ |
| 1208 | if (it->cur + count > it->list_end) { | 1206 | if (it->cur + count > it->list_end) { |
| 1209 | pr_err("%s: arguments longer than property\n", | 1207 | pr_err("%pOF: arguments longer than property\n", |
| 1210 | it->parent->full_name); | 1208 | it->parent); |
| 1211 | goto err; | 1209 | goto err; |
| 1212 | } | 1210 | } |
| 1213 | } | 1211 | } |
| @@ -1639,8 +1637,8 @@ static void of_alias_add(struct alias_prop *ap, struct device_node *np, · 425 unmodified lines | |||
| 1639 | strncpy(ap->stem, stem, stem_len); | 1637 | strncpy(ap->stem, stem, stem_len); |
| 1640 | ap->stem[stem_len] = 0; | 1638 | ap->stem[stem_len] = 0; |
| 1641 | list_add_tail(&ap->link, &aliases_lookup); | 1639 | list_add_tail(&ap->link, &aliases_lookup); |
| 1642 | pr_debug("adding DT alias:%s: stem=%s id=%i node=%s\n", | 1640 | pr_debug("adding DT alias:%s: stem=%s id=%i node=%pOF\n", |
| 1643 | ap->alias, ap->stem, ap->id, of_node_full_name(np)); | 1641 | ap->alias, ap->stem, ap->id, np); |
| 1644 | } | 1642 | } |
| 1645 | 1643 | ||
| 1646 | /** | 1644 | /** |
| @@ -1664,11 +1662,13 @@ void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align)) · 17 unmodified lines | |||
| 1664 | 1662 | ||
| 1665 | if (of_chosen) { | 1663 | if (of_chosen) { |
| 1666 | /* linux,stdout-path and /aliases/stdout are for legacy compatibility */ | 1664 | /* linux,stdout-path and /aliases/stdout are for legacy compatibility */ |
| 1667 | const char *name = of_get_property(of_chosen, "stdout-path", NULL); | 1665 | const char *name = NULL; |
| 1668 | if (!name) | 1666 | |
| 1669 | name = of_get_property(of_chosen, "linux,stdout-path", NULL); | 1667 | if (of_property_read_string(of_chosen, "stdout-path", &name)) |
| 1668 | of_property_read_string(of_chosen, "linux,stdout-path", | ||
| 1669 | &name); | ||
| 1670 | if (IS_ENABLED(CONFIG_PPC) && !name) | 1670 | if (IS_ENABLED(CONFIG_PPC) && !name) |
| 1671 | name = of_get_property(of_aliases, "stdout", NULL); | 1671 | of_property_read_string(of_aliases, "stdout", &name); |
| 1672 | if (name) | 1672 | if (name) |
| 1673 | of_stdout = of_find_node_opts_by_path(name, &of_stdout_options); | 1673 | of_stdout = of_find_node_opts_by_path(name, &of_stdout_options); |
| 1674 | } | 1674 | } |
| @@ -58,7 +58,7 @@ int of_device_add(struct platform_device *ofdev) · 57 unmodified lines | |||
| 58 | /* name and id have to be set so that the platform bus doesn't get | 58 | /* name and id have to be set so that the platform bus doesn't get |
| 59 | * confused on matching */ | 59 | * confused on matching */ |
| 60 | ofdev->name = dev_name(&ofdev->dev); | 60 | ofdev->name = dev_name(&ofdev->dev); |
| 61 | ofdev->id = -1; | 61 | ofdev->id = PLATFORM_DEVID_NONE; |
| 62 | 62 | ||
| 63 | /* | 63 | /* |
| 64 | * If this device has not binding numa node in devicetree, that is | 64 | * If this device has not binding numa node in devicetree, that is |
| @@ -196,8 +196,10 @@ EXPORT_SYMBOL(of_device_get_match_data); · 131 unmodified lines | |||
| 196 | static ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len) | 196 | static ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len) |
| 197 | { | 197 | { |
| 198 | const char *compat; | 198 | const char *compat; |
| 199 | int cplen, i; | 199 | char *c; |
| 200 | ssize_t tsize, csize, repend; | 200 | struct property *p; |
| 201 | ssize_t csize; | ||
| 202 | ssize_t tsize; | ||
| 201 | 203 | ||
| 202 | if ((!dev) || (!dev->of_node)) | 204 | if ((!dev) || (!dev->of_node)) |
| 203 | return -ENODEV; | 205 | return -ENODEV; |
| @@ -205,42 +207,28 @@ static ssize_t of_device_get_modalias(struct device *dev, char *str, ssize_t len · 1 unmodified line | |||
| 205 | /* Name & Type */ | 207 | /* Name & Type */ |
| 206 | csize = snprintf(str, len, "of:N%sT%s", dev->of_node->name, | 208 | csize = snprintf(str, len, "of:N%sT%s", dev->of_node->name, |
| 207 | dev->of_node->type); | 209 | dev->of_node->type); |
| 208 | 210 | tsize = csize; | |
| 209 | /* Get compatible property if any */ | 211 | len -= csize; |
| 210 | compat = of_get_property(dev->of_node, "compatible", &cplen); | 212 | if (str) |
| 211 | if (!compat) | 213 | str += csize; |
| 212 | return csize; | 214 | |
| 213 | 215 | of_property_for_each_string(dev->of_node, "compatible", p, compat) { | |
| 214 | /* Find true end (we tolerate multiple \0 at the end */ | 216 | csize = strlen(compat) + 1; |
| 215 | for (i = (cplen - 1); i >= 0 && !compat[i]; i--) | 217 | tsize += csize; |
| 216 | cplen--; | 218 | if (csize > len) |
| 217 | if (!cplen) | 219 | continue; |
| 218 | return csize; | 220 | |
| 219 | cplen++; | 221 | csize = snprintf(str, len, "C%s", compat); |
| 220 | 222 | for (c = str; c; ) { | |
| 221 | /* Check space (need cplen+1 chars including final \0) */ | 223 | c = strchr(c, ' '); |
| 222 | tsize = csize + cplen; | 224 | if (c) |
| 223 | repend = tsize; | 225 | *c++ = '_'; |
| 224 | 226 | } | |
| 225 | if (csize >= len) /* @ the limit, all is already filled */ | 227 | len -= csize; |
| 226 | return tsize; | 228 | str += csize; |
| 227 | |||
| 228 | if (tsize >= len) { /* limit compat list */ | ||
| 229 | cplen = len - csize - 1; | ||
| 230 | repend = len; | ||
| 231 | } | ||
| 232 | |||
| 233 | /* Copy and do char replacement */ | ||
| 234 | memcpy(&str[csize + 1], compat, cplen); | ||
| 235 | for (i = csize; i < repend; i++) { | ||
| 236 | char c = str[i]; | ||
| 237 | if (c == '\0') | ||
| 238 | str[i] = 'C'; | ||
| 239 | else if (c == ' ') | ||
| 240 | str[i] = '_'; | ||
| 241 | } | 229 | } |
| 242 | 230 | ||
| 243 | return repend; | 231 | return tsize; |
| 244 | } | 232 | } |
| 245 | 233 | ||
| 246 | int of_device_request_module(struct device *dev) | 234 | int of_device_request_module(struct device *dev) |
| @@ -274,6 +262,8 @@ ssize_t of_device_modalias(struct device *dev, char *str, ssize_t len) · 27 unmodified lines | |||
| 274 | ssize_t sl = of_device_get_modalias(dev, str, len - 2); | 262 | ssize_t sl = of_device_get_modalias(dev, str, len - 2); |
| 275 | if (sl < 0) | 263 | if (sl < 0) |
| 276 | return sl; | 264 | return sl; |
| 265 | if (sl > len - 2) | ||
| 266 | return -ENOMEM; | ||
| 277 | 267 | ||
| 278 | str[sl++] = '\n'; | 268 | str[sl++] = '\n'; |
| 279 | str[sl] = 0; | 269 | str[sl] = 0; |
| @@ -288,25 +278,22 @@ void of_device_uevent(struct device *dev, struct kobj_uevent_env *env) · 8 unmodified lines | |||
| 288 | { | 278 | { |
| 289 | const char *compat; | 279 | const char *compat; |
| 290 | struct alias_prop *app; | 280 | struct alias_prop *app; |
| 291 | int seen = 0, cplen, sl; | 281 | struct property *p; |
| 282 | int seen = 0; | ||
| 292 | 283 | ||
| 293 | if ((!dev) || (!dev->of_node)) | 284 | if ((!dev) || (!dev->of_node)) |
| 294 | return; | 285 | return; |
| 295 | 286 | ||
| 296 | add_uevent_var(env, "OF_NAME=%s", dev->of_node->name); | 287 | add_uevent_var(env, "OF_NAME=%s", dev->of_node->name); |
| 297 | add_uevent_var(env, "OF_FULLNAME=%s", dev->of_node->full_name); | 288 | add_uevent_var(env, "OF_FULLNAME=%pOF", dev->of_node); |
| 298 | if (dev->of_node->type && strcmp("<NULL>", dev->of_node->type) != 0) | 289 | if (dev->of_node->type && strcmp("<NULL>", dev->of_node->type) != 0) |
| 299 | add_uevent_var(env, "OF_TYPE=%s", dev->of_node->type); | 290 | add_uevent_var(env, "OF_TYPE=%s", dev->of_node->type); |
| 300 | 291 | ||
| 301 | /* Since the compatible field can contain pretty much anything | 292 | /* Since the compatible field can contain pretty much anything |
| 302 | * it's not really legal to split it out with commas. We split it | 293 | * it's not really legal to split it out with commas. We split it |
| 303 | * up using a number of environment variables instead. */ | 294 | * up using a number of environment variables instead. */ |
| 304 | compat = of_get_property(dev->of_node, "compatible", &cplen); | 295 | of_property_for_each_string(dev->of_node, "compatible", p, compat) { |
| 305 | while (compat && *compat && cplen > 0) { | ||
| 306 | add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat); | 296 | add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat); |
| 307 | sl = strlen(compat) + 1; | ||
| 308 | compat += sl; | ||
| 309 | cplen -= sl; | ||
| 310 | seen++; | 297 | seen++; |
| 311 | } | 298 | } |
| 312 | add_uevent_var(env, "OF_COMPATIBLE_N=%d", seen); | 299 | add_uevent_var(env, "OF_COMPATIBLE_N=%d", seen); |
| @@ -98,14 +98,14 @@ int of_reconfig_notify(unsigned long action, struct of_reconfig_data *p) · 97 unmodified lines | |||
| 98 | switch (action) { | 98 | switch (action) { |
| 99 | case OF_RECONFIG_ATTACH_NODE: | 99 | case OF_RECONFIG_ATTACH_NODE: |
| 100 | case OF_RECONFIG_DETACH_NODE: | 100 | case OF_RECONFIG_DETACH_NODE: |
| 101 | pr_debug("notify %-15s %s\n", action_names[action], | 101 | pr_debug("notify %-15s %pOF\n", action_names[action], |
| 102 | pr->dn->full_name); | 102 | pr->dn); |
| 103 | break; | 103 | break; |
| 104 | case OF_RECONFIG_ADD_PROPERTY: | 104 | case OF_RECONFIG_ADD_PROPERTY: |
| 105 | case OF_RECONFIG_REMOVE_PROPERTY: | 105 | case OF_RECONFIG_REMOVE_PROPERTY: |
| 106 | case OF_RECONFIG_UPDATE_PROPERTY: | 106 | case OF_RECONFIG_UPDATE_PROPERTY: |
| 107 | pr_debug("notify %-15s %s:%s\n", action_names[action], | 107 | pr_debug("notify %-15s %pOF:%s\n", action_names[action], |
| 108 | pr->dn->full_name, pr->prop->name); | 108 | pr->dn, pr->prop->name); |
| 109 | break; | 109 | break; |
| 110 | 110 | ||
| 111 | } | 111 | } |
| @@ -328,11 +328,10 @@ void of_node_release(struct kobject *kobj) · 216 unmodified lines | |||
| 328 | 328 | ||
| 329 | /* We should never be releasing nodes that haven't been detached. */ | 329 | /* We should never be releasing nodes that haven't been detached. */ |
| 330 | if (!of_node_check_flag(node, OF_DETACHED)) { | 330 | if (!of_node_check_flag(node, OF_DETACHED)) { |
| 331 | pr_err("ERROR: Bad of_node_put() on %s\n", node->full_name); | 331 | pr_err("ERROR: Bad of_node_put() on %pOF\n", node); |
| 332 | dump_stack(); | 332 | dump_stack(); |
| 333 | return; | 333 | return; |
| 334 | } | 334 | } |
| 335 | |||
| 336 | if (!of_node_check_flag(node, OF_DYNAMIC)) | 335 | if (!of_node_check_flag(node, OF_DYNAMIC)) |
| 337 | return; | 336 | return; |
| 338 | 337 | ||
| @@ -462,13 +461,13 @@ static void __of_changeset_entry_dump(struct of_changeset_entry *ce) · 123 unmodified lines | |||
| 462 | case OF_RECONFIG_ADD_PROPERTY: | 461 | case OF_RECONFIG_ADD_PROPERTY: |
| 463 | case OF_RECONFIG_REMOVE_PROPERTY: | 462 | case OF_RECONFIG_REMOVE_PROPERTY: |
| 464 | case OF_RECONFIG_UPDATE_PROPERTY: | 463 | case OF_RECONFIG_UPDATE_PROPERTY: |
| 465 | pr_debug("cset<%p> %-15s %s/%s\n", ce, action_names[ce->action], | 464 | pr_debug("cset<%p> %-15s %pOF/%s\n", ce, action_names[ce->action], |
| 466 | ce->np->full_name, ce->prop->name); | 465 | ce->np, ce->prop->name); |
| 467 | break; | 466 | break; |
| 468 | case OF_RECONFIG_ATTACH_NODE: | 467 | case OF_RECONFIG_ATTACH_NODE: |
| 469 | case OF_RECONFIG_DETACH_NODE: | 468 | case OF_RECONFIG_DETACH_NODE: |
| 470 | pr_debug("cset<%p> %-15s %s\n", ce, action_names[ce->action], | 469 | pr_debug("cset<%p> %-15s %pOF\n", ce, action_names[ce->action], |
| 471 | ce->np->full_name); | 470 | ce->np); |
| 472 | break; | 471 | break; |
| 473 | } | 472 | } |
| 474 | } | 473 | } |
| @@ -539,7 +538,7 @@ static void __of_changeset_entry_notify(struct of_changeset_entry *ce, bool reve · 64 unmodified lines | |||
| 539 | } | 538 | } |
| 540 | 539 | ||
| 541 | if (ret) | 540 | if (ret) |
| 542 | pr_err("changeset notifier error @%s\n", ce->np->full_name); | 541 | pr_err("changeset notifier error @%pOF\n", ce->np); |
| 543 | } | 542 | } |
| 544 | 543 | ||
| 545 | static int __of_changeset_entry_apply(struct of_changeset_entry *ce) | 544 | static int __of_changeset_entry_apply(struct of_changeset_entry *ce) |
| @@ -570,8 +569,8 @@ static int __of_changeset_entry_apply(struct of_changeset_entry *ce) · 24 unmodified lines | |||
| 570 | 569 | ||
| 571 | ret = __of_add_property(ce->np, ce->prop); | 570 | ret = __of_add_property(ce->np, ce->prop); |
| 572 | if (ret) { | 571 | if (ret) { |
| 573 | pr_err("changeset: add_property failed @%s/%s\n", | 572 | pr_err("changeset: add_property failed @%pOF/%s\n", |
| 574 | ce->np->full_name, | 573 | ce->np, |
| 575 | ce->prop->name); | 574 | ce->prop->name); |
| 576 | break; | 575 | break; |
| 577 | } | 576 | } |
| @@ -579,8 +578,8 @@ static int __of_changeset_entry_apply(struct of_changeset_entry *ce) · 1 unmodified line | |||
| 579 | case OF_RECONFIG_REMOVE_PROPERTY: | 578 | case OF_RECONFIG_REMOVE_PROPERTY: |
| 580 | ret = __of_remove_property(ce->np, ce->prop); | 579 | ret = __of_remove_property(ce->np, ce->prop); |
| 581 | if (ret) { | 580 | if (ret) { |
| 582 | pr_err("changeset: remove_property failed @%s/%s\n", | 581 | pr_err("changeset: remove_property failed @%pOF/%s\n", |
| 583 | ce->np->full_name, | 582 | ce->np, |
| 584 | ce->prop->name); | 583 | ce->prop->name); |
| 585 | break; | 584 | break; |
| 586 | } | 585 | } |
| @@ -598,8 +597,8 @@ static int __of_changeset_entry_apply(struct of_changeset_entry *ce) · 11 unmodified lines | |||
| 598 | 597 | ||
| 599 | ret = __of_update_property(ce->np, ce->prop, &old_prop); | 598 | ret = __of_update_property(ce->np, ce->prop, &old_prop); |
| 600 | if (ret) { | 599 | if (ret) { |
| 601 | pr_err("changeset: update_property failed @%s/%s\n", | 600 | pr_err("changeset: update_property failed @%pOF/%s\n", |
| 602 | ce->np->full_name, | 601 | ce->np, |
| 603 | ce->prop->name); | 602 | ce->prop->name); |
| 604 | break; | 603 | break; |
| 605 | } | 604 | } |
| @@ -59,20 +59,19 @@ EXPORT_SYMBOL_GPL(irq_of_parse_and_map); · 58 unmodified lines | |||
| 59 | struct device_node *of_irq_find_parent(struct device_node *child) | 59 | struct device_node *of_irq_find_parent(struct device_node *child) |
| 60 | { | 60 | { |
| 61 | struct device_node *p; | 61 | struct device_node *p; |
| 62 | const __be32 *parp; | 62 | phandle parent; |
| 63 | 63 | ||
| 64 | if (!of_node_get(child)) | 64 | if (!of_node_get(child)) |
| 65 | return NULL; | 65 | return NULL; |
| 66 | 66 | ||
| 67 | do { | 67 | do { |
| 68 | parp = of_get_property(child, "interrupt-parent", NULL); | 68 | if (of_property_read_u32(child, "interrupt-parent", &parent)) { |
| 69 | if (parp == NULL) | ||
| 70 | p = of_get_parent(child); | 69 | p = of_get_parent(child); |
| 71 | else { | 70 | } else { |
| 72 | if (of_irq_workarounds & OF_IMAP_NO_PHANDLE) | 71 | if (of_irq_workarounds & OF_IMAP_NO_PHANDLE) |
| 73 | p = of_node_get(of_irq_dflt_pic); | 72 | p = of_node_get(of_irq_dflt_pic); |
| 74 | else | 73 | else |
| 75 | p = of_find_node_by_phandle(be32_to_cpup(parp)); | 74 | p = of_find_node_by_phandle(parent); |
| 76 | } | 75 | } |
| 77 | of_node_put(child); | 76 | of_node_put(child); |
| 78 | child = p; | 77 | child = p; |
| @@ -117,11 +116,8 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) · 38 unmodified lines | |||
| 117 | * is none, we are nice and just walk up the tree | 116 | * is none, we are nice and just walk up the tree |
| 118 | */ | 117 | */ |
| 119 | do { | 118 | do { |
| 120 | tmp = of_get_property(ipar, "#interrupt-cells", NULL); | 119 | if (!of_property_read_u32(ipar, "#interrupt-cells", &intsize)) |
| 121 | if (tmp != NULL) { | ||
| 122 | intsize = be32_to_cpu(*tmp); | ||
| 123 | break; | 120 | break; |
| 124 | } | ||
| 125 | tnode = ipar; | 121 | tnode = ipar; |
| 126 | ipar = of_irq_find_parent(ipar); | 122 | ipar = of_irq_find_parent(ipar); |
| 127 | of_node_put(tnode); | 123 | of_node_put(tnode); |
| @@ -131,7 +127,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) · 3 unmodified lines | |||
| 131 | goto fail; | 127 | goto fail; |
| 132 | } | 128 | } |
| 133 | 129 | ||
| 134 | pr_debug("of_irq_parse_raw: ipar=%s, size=%d\n", of_node_full_name(ipar), intsize); | 130 | pr_debug("of_irq_parse_raw: ipar=%pOF, size=%d\n", ipar, intsize); |
| 135 | 131 | ||
| 136 | if (out_irq->args_count != intsize) | 132 | if (out_irq->args_count != intsize) |
| 137 | goto fail; | 133 | goto fail; |
| @@ -169,8 +165,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) · 31 unmodified lines | |||
| 169 | /* Now check if cursor is an interrupt-controller and if it is | 165 | /* Now check if cursor is an interrupt-controller and if it is |
| 170 | * then we are done | 166 | * then we are done |
| 171 | */ | 167 | */ |
| 172 | if (of_get_property(ipar, "interrupt-controller", NULL) != | 168 | if (of_property_read_bool(ipar, "interrupt-controller")) { |
| 173 | NULL) { | ||
| 174 | pr_debug(" -> got it !\n"); | 169 | pr_debug(" -> got it !\n"); |
| 175 | return 0; | 170 | return 0; |
| 176 | } | 171 | } |
| @@ -229,14 +224,14 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) · 52 unmodified lines | |||
| 229 | /* Get #interrupt-cells and #address-cells of new | 224 | /* Get #interrupt-cells and #address-cells of new |
| 230 | * parent | 225 | * parent |
| 231 | */ | 226 | */ |
| 232 | tmp = of_get_property(newpar, "#interrupt-cells", NULL); | 227 | if (of_property_read_u32(newpar, "#interrupt-cells", |
| 233 | if (tmp == NULL) { | 228 | &newintsize)) { |
| 234 | pr_debug(" -> parent lacks #interrupt-cells!\n"); | 229 | pr_debug(" -> parent lacks #interrupt-cells!\n"); |
| 235 | goto fail; | 230 | goto fail; |
| 236 | } | 231 | } |
| 237 | newintsize = be32_to_cpu(*tmp); | 232 | if (of_property_read_u32(newpar, "#address-cells", |
| 238 | tmp = of_get_property(newpar, "#address-cells", NULL); | 233 | &newaddrsize)) |
| 239 | newaddrsize = (tmp == NULL) ? 0 : be32_to_cpu(*tmp); | 234 | newaddrsize = 0; |
| 240 | 235 | ||
| 241 | pr_debug(" -> newintsize=%d, newaddrsize=%d\n", | 236 | pr_debug(" -> newintsize=%d, newaddrsize=%d\n", |
| 242 | newintsize, newaddrsize); | 237 | newintsize, newaddrsize); |
| @@ -269,7 +264,7 @@ int of_irq_parse_raw(const __be32 *addr, struct of_phandle_args *out_irq) · 26 unmodified lines | |||
| 269 | skiplevel: | 264 | skiplevel: |
| 270 | /* Iterate again with new parent */ | 265 | /* Iterate again with new parent */ |
| 271 | out_irq->np = newpar; | 266 | out_irq->np = newpar; |
| 272 | pr_debug(" -> new parent: %s\n", of_node_full_name(newpar)); | 267 | pr_debug(" -> new parent: %pOF\n", newpar); |
| 273 | of_node_put(ipar); | 268 | of_node_put(ipar); |
| 274 | ipar = newpar; | 269 | ipar = newpar; |
| 275 | newpar = NULL; | 270 | newpar = NULL; |
| @@ -297,11 +292,11 @@ EXPORT_SYMBOL_GPL(of_irq_parse_raw); · 21 unmodified lines | |||
| 297 | int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_args *out_irq) | 292 | int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_args *out_irq) |
| 298 | { | 293 | { |
| 299 | struct device_node *p; | 294 | struct device_node *p; |
| 300 | const __be32 *intspec, *tmp, *addr; | 295 | const __be32 *addr; |
| 301 | u32 intsize, intlen; | 296 | u32 intsize; |
| 302 | int i, res; | 297 | int i, res; |
| 303 | 298 | ||
| 304 | pr_debug("of_irq_parse_one: dev=%s, index=%d\n", of_node_full_name(device), index); | 299 | pr_debug("of_irq_parse_one: dev=%pOF, index=%d\n", device, index); |
| 305 | 300 | ||
| 306 | /* OldWorld mac stuff is "special", handle out of line */ | 301 | /* OldWorld mac stuff is "special", handle out of line */ |
| 307 | if (of_irq_workarounds & OF_IMAP_OLDWORLD_MAC) | 302 | if (of_irq_workarounds & OF_IMAP_OLDWORLD_MAC) |
| @@ -316,42 +311,32 @@ int of_irq_parse_one(struct device_node *device, int index, struct of_phandle_ar · 8 unmodified lines | |||
| 316 | if (!res) | 311 | if (!res) |
| 317 | return of_irq_parse_raw(addr, out_irq); | 312 | return of_irq_parse_raw(addr, out_irq); |
| 318 | 313 | ||
| 319 | /* Get the interrupts property */ | ||
| 320 | intspec = of_get_property(device, "interrupts", &intlen); | ||
| 321 | if (intspec == NULL) | ||
| 322 | return -EINVAL; | ||
| 323 | |||
| 324 | intlen /= sizeof(*intspec); | ||
| 325 | |||
| 326 | pr_debug(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen); | ||
| 327 | |||
| 328 | /* Look for the interrupt parent. */ | 314 | /* Look for the interrupt parent. */ |
| 329 | p = of_irq_find_parent(device); | 315 | p = of_irq_find_parent(device); |
| 330 | if (p == NULL) | 316 | if (p == NULL) |
| 331 | return -EINVAL; | 317 | return -EINVAL; |
| 332 | 318 | ||
| 333 | /* Get size of interrupt specifier */ | 319 | /* Get size of interrupt specifier */ |
| 334 | tmp = of_get_property(p, "#interrupt-cells", NULL); | 320 | if (of_property_read_u32(p, "#interrupt-cells", &intsize)) { |
| 335 | if (tmp == NULL) { | ||
| 336 | res = -EINVAL; | 321 | res = -EINVAL; |
| 337 | goto out; | 322 | goto out; |
| 338 | } | 323 | } |
| 339 | intsize = be32_to_cpu(*tmp); | ||
| 340 | 324 | ||
| 341 | pr_debug(" intsize=%d intlen=%d\n", intsize, intlen); | 325 | pr_debug(" parent=%pOF, intsize=%d\n", p, intsize); |
| 342 | |||
| 343 | /* Check index */ | ||
| 344 | if ((index + 1) * intsize > intlen) { | ||
| 345 | res = -EINVAL; | ||
| 346 | goto out; | ||
| 347 | } | ||
| 348 | 326 | ||
| 349 | /* Copy intspec into irq structure */ | 327 | /* Copy intspec into irq structure */ |
| 350 | intspec += index * intsize; | ||
| 351 | out_irq->np = p; | 328 | out_irq->np = p; |
| 352 | out_irq->args_count = intsize; | 329 | out_irq->args_count = intsize; |
| 353 | for (i = 0; i < intsize; i++) | 330 | for (i = 0; i < intsize; i++) { |
| 354 | out_irq->args[i] = be32_to_cpup(intspec++); | 331 | res = of_property_read_u32_index(device, "interrupts", |
| 332 | (index * intsize) + i, | ||
| 333 | out_irq->args + i); | ||
| 334 | if (res) | ||
| 335 | goto out; | ||
| 336 | } | ||
| 337 | |||
| 338 | pr_debug(" intspec=%d\n", *out_irq->args); | ||
| 339 | |||
| 355 | 340 | ||
| 356 | /* Check if there are any interrupt-map translations to process */ | 341 | /* Check if there are any interrupt-map translations to process */ |
| 357 | res = of_irq_parse_raw(addr, out_irq); | 342 | res = of_irq_parse_raw(addr, out_irq); |
| @@ -508,7 +493,7 @@ void __init of_irq_init(const struct of_device_id *matches) · 150 unmodified lines | |||
| 508 | INIT_LIST_HEAD(&intc_parent_list); | 493 | INIT_LIST_HEAD(&intc_parent_list); |
| 509 | 494 | ||
| 510 | for_each_matching_node_and_match(np, matches, &match) { | 495 | for_each_matching_node_and_match(np, matches, &match) { |
| 511 | if (!of_find_property(np, "interrupt-controller", NULL) || | 496 | if (!of_property_read_bool(np, "interrupt-controller") || |
| 512 | !of_device_is_available(np)) | 497 | !of_device_is_available(np)) |
| 513 | continue; | 498 | continue; |
| 514 | 499 | ||
| @@ -555,8 +540,8 @@ void __init of_irq_init(const struct of_device_id *matches) · 40 unmodified lines | |||
| 555 | 540 | ||
| 556 | of_node_set_flag(desc->dev, OF_POPULATED); | 541 | of_node_set_flag(desc->dev, OF_POPULATED); |
| 557 | 542 | ||
| 558 | pr_debug("of_irq_init: init %s (%p), parent %p\n", | 543 | pr_debug("of_irq_init: init %pOF (%p), parent %p\n", |
| 559 | desc->dev->full_name, | 544 | desc->dev, |
| 560 | desc->dev, desc->interrupt_parent); | 545 | desc->dev, desc->interrupt_parent); |
| 561 | ret = desc->irq_init_cb(desc->dev, | 546 | ret = desc->irq_init_cb(desc->dev, |
| 562 | desc->interrupt_parent); | 547 | desc->interrupt_parent); |
| @@ -166,8 +166,8 @@ static bool of_mdiobus_child_is_phy(struct device_node *child) · 165 unmodified lines | |||
| 166 | 166 | ||
| 167 | if (of_match_node(whitelist_phys, child)) { | 167 | if (of_match_node(whitelist_phys, child)) { |
| 168 | pr_warn(FW_WARN | 168 | pr_warn(FW_WARN |
| 169 | "%s: Whitelisted compatible string. Please remove\n", | 169 | "%pOF: Whitelisted compatible string. Please remove\n", |
| 170 | child->full_name); | 170 | child); |
| 171 | return true; | 171 | return true; |
| 172 | } | 172 | } |
| 173 | 173 | ||
| @@ -57,15 +57,14 @@ EXPORT_SYMBOL_GPL(of_pci_find_child_device); · 56 unmodified lines | |||
| 57 | */ | 57 | */ |
| 58 | int of_pci_get_devfn(struct device_node *np) | 58 | int of_pci_get_devfn(struct device_node *np) |
| 59 | { | 59 | { |
| 60 | unsigned int size; | 60 | u32 reg[5]; |
| 61 | const __be32 *reg; | 61 | int error; |
| 62 | 62 | ||
| 63 | reg = of_get_property(np, "reg", &size); | 63 | error = of_property_read_u32_array(np, "reg", reg, ARRAY_SIZE(reg)); |
| 64 | if (error) | ||
| 65 | return error; | ||
| 64 | 66 | ||
| 65 | if (!reg || size < 5 * sizeof(__be32)) | 67 | return (reg[0] >> 8) & 0xff; |
| 66 | return -EINVAL; | ||
| 67 | |||
| 68 | return (be32_to_cpup(reg) >> 8) & 0xff; | ||
| 69 | } | 68 | } |
| 70 | EXPORT_SYMBOL_GPL(of_pci_get_devfn); | 69 | EXPORT_SYMBOL_GPL(of_pci_get_devfn); |
| 71 | 70 | ||
| @@ -78,16 +77,17 @@ EXPORT_SYMBOL_GPL(of_pci_get_devfn); · 6 unmodified lines | |||
| 78 | */ | 77 | */ |
| 79 | int of_pci_parse_bus_range(struct device_node *node, struct resource *res) | 78 | int of_pci_parse_bus_range(struct device_node *node, struct resource *res) |
| 80 | { | 79 | { |
| 81 | const __be32 *values; | 80 | u32 bus_range[2]; |
| 82 | int len; | 81 | int error; |
| 83 | 82 | ||
| 84 | values = of_get_property(node, "bus-range", &len); | 83 | error = of_property_read_u32_array(node, "bus-range", bus_range, |
| 85 | if (!values || len < sizeof(*values) * 2) | 84 | ARRAY_SIZE(bus_range)); |
| 86 | return -EINVAL; | 85 | if (error) |
| 86 | return error; | ||
| 87 | 87 | ||
| 88 | res->name = node->name; | 88 | res->name = node->name; |
| 89 | res->start = be32_to_cpup(values++); | 89 | res->start = bus_range[0]; |
| 90 | res->end = be32_to_cpup(values); | 90 | res->end = bus_range[1]; |
| 91 | res->flags = IORESOURCE_BUS; | 91 | res->flags = IORESOURCE_BUS; |
| 92 | 92 | ||
| 93 | return 0; | 93 | return 0; |
| @@ -105,17 +105,14 @@ EXPORT_SYMBOL_GPL(of_pci_parse_bus_range); · 11 unmodified lines | |||
| 105 | */ | 105 | */ |
| 106 | int of_get_pci_domain_nr(struct device_node *node) | 106 | int of_get_pci_domain_nr(struct device_node *node) |
| 107 | { | 107 | { |
| 108 | const __be32 *value; | 108 | u32 domain; |
| 109 | int len; | 109 | int error; |
| 110 | u16 domain; | ||
| 111 | |||
| 112 | value = of_get_property(node, "linux,pci-domain", &len); | ||
| 113 | if (!value || len < sizeof(*value)) | ||
| 114 | return -EINVAL; | ||
| 115 | 110 | ||
| 116 | domain = (u16)be32_to_cpup(value); | 111 | error = of_property_read_u32(node, "linux,pci-domain", &domain); |
| 112 | if (error) | ||
| 113 | return error; | ||
| 117 | 114 | ||
| 118 | return domain; | 115 | return (u16)domain; |
| 119 | } | 116 | } |
| 120 | EXPORT_SYMBOL_GPL(of_get_pci_domain_nr); | 117 | EXPORT_SYMBOL_GPL(of_get_pci_domain_nr); |
| 121 | 118 | ||
| @@ -204,15 +201,15 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, · 82 unmodified lines | |||
| 204 | if (!bus_range) | 201 | if (!bus_range) |
| 205 | return -ENOMEM; | 202 | return -ENOMEM; |
| 206 | 203 | ||
| 207 | pr_info("host bridge %s ranges:\n", dev->full_name); | 204 | pr_info("host bridge %pOF ranges:\n", dev); |
| 208 | 205 | ||
| 209 | err = of_pci_parse_bus_range(dev, bus_range); | 206 | err = of_pci_parse_bus_range(dev, bus_range); |
| 210 | if (err) { | 207 | if (err) { |
| 211 | bus_range->start = busno; | 208 | bus_range->start = busno; |
| 212 | bus_range->end = bus_max; | 209 | bus_range->end = bus_max; |
| 213 | bus_range->flags = IORESOURCE_BUS; | 210 | bus_range->flags = IORESOURCE_BUS; |
| 214 | pr_info(" No bus range found for %s, using %pR\n", | 211 | pr_info(" No bus range found for %pOF, using %pR\n", |
| 215 | dev->full_name, bus_range); | 212 | dev, bus_range); |
| 216 | } else { | 213 | } else { |
| 217 | if (bus_range->end > bus_range->start + bus_max) | 214 | if (bus_range->end > bus_range->start + bus_max) |
| 218 | bus_range->end = bus_range->start + bus_max; | 215 | bus_range->end = bus_range->start + bus_max; |
| @@ -258,14 +255,14 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, · 39 unmodified lines | |||
| 258 | 255 | ||
| 259 | if (resource_type(res) == IORESOURCE_IO) { | 256 | if (resource_type(res) == IORESOURCE_IO) { |
| 260 | if (!io_base) { | 257 | if (!io_base) { |
| 261 | pr_err("I/O range found for %s. Please provide an io_base pointer to save CPU base address\n", | 258 | pr_err("I/O range found for %pOF. Please provide an io_base pointer to save CPU base address\n", |
| 262 | dev->full_name); | 259 | dev); |
| 263 | err = -EINVAL; | 260 | err = -EINVAL; |
| 264 | goto conversion_failed; | 261 | goto conversion_failed; |
| 265 | } | 262 | } |
| 266 | if (*io_base != (resource_size_t)OF_BAD_ADDR) | 263 | if (*io_base != (resource_size_t)OF_BAD_ADDR) |
| 267 | pr_warn("More than one I/O resource converted for %s. CPU base address for old range lost!\n", | 264 | pr_warn("More than one I/O resource converted for %pOF. CPU base address for old range lost!\n", |
| 268 | dev->full_name); | 265 | dev); |
| 269 | *io_base = range.cpu_addr; | 266 | *io_base = range.cpu_addr; |
| 270 | } | 267 | } |
| 271 | 268 | ||
| @@ -325,7 +322,7 @@ int of_pci_map_rid(struct device_node *np, u32 rid, · 53 unmodified lines | |||
| 325 | } | 322 | } |
| 326 | 323 | ||
| 327 | if (!map_len || map_len % (4 * sizeof(*map))) { | 324 | if (!map_len || map_len % (4 * sizeof(*map))) { |
| 328 | pr_err("%s: Error: Bad %s length: %d\n", np->full_name, | 325 | pr_err("%pOF: Error: Bad %s length: %d\n", np, |
| 329 | map_name, map_len); | 326 | map_name, map_len); |
| 330 | return -EINVAL; | 327 | return -EINVAL; |
| 331 | } | 328 | } |
| @@ -349,8 +346,8 @@ int of_pci_map_rid(struct device_node *np, u32 rid, · 17 unmodified lines | |||
| 349 | u32 rid_len = be32_to_cpup(map + 3); | 346 | u32 rid_len = be32_to_cpup(map + 3); |
| 350 | 347 | ||
| 351 | if (rid_base & ~map_mask) { | 348 | if (rid_base & ~map_mask) { |
| 352 | pr_err("%s: Invalid %s translation - %s-mask (0x%x) ignores rid-base (0x%x)\n", | 349 | pr_err("%pOF: Invalid %s translation - %s-mask (0x%x) ignores rid-base (0x%x)\n", |
| 353 | np->full_name, map_name, map_name, | 350 | np, map_name, map_name, |
| 354 | map_mask, rid_base); | 351 | map_mask, rid_base); |
| 355 | return -EFAULT; | 352 | return -EFAULT; |
| 356 | } | 353 | } |
| @@ -375,14 +372,13 @@ int of_pci_map_rid(struct device_node *np, u32 rid, · 18 unmodified lines | |||
| 375 | if (id_out) | 372 | if (id_out) |
| 376 | *id_out = masked_rid - rid_base + out_base; | 373 | *id_out = masked_rid - rid_base + out_base; |
| 377 | 374 | ||
| 378 | pr_debug("%s: %s, using mask %08x, rid-base: %08x, out-base: %08x, length: %08x, rid: %08x -> %08x\n", | 375 | pr_debug("%pOF: %s, using mask %08x, rid-base: %08x, out-base: %08x, length: %08x, rid: %08x -> %08x\n", |
| 379 | np->full_name, map_name, map_mask, rid_base, out_base, | 376 | np, map_name, map_mask, rid_base, out_base, |
| 380 | rid_len, rid, *id_out); | 377 | rid_len, rid, *id_out); |
| 381 | return 0; | 378 | return 0; |
| 382 | } | 379 | } |
| 383 | 380 | ||
| 384 | pr_err("%s: Invalid %s translation - no match for rid 0x%x on %s\n", | 381 | pr_err("%pOF: Invalid %s translation - no match for rid 0x%x on %pOF\n", |
| 385 | np->full_name, map_name, rid, | 382 | np, map_name, rid, target && *target ? *target : NULL); |
| 386 | target && *target ? (*target)->full_name : "any target"); | ||
| 387 | return -EFAULT; | 383 | return -EFAULT; |
| 388 | } | 384 | } |
| @@ -35,6 +35,7 @@ · 34 unmodified lines | |||
| 35 | struct of_overlay_info { | 35 | struct of_overlay_info { |
| 36 | struct device_node *target; | 36 | struct device_node *target; |
| 37 | struct device_node *overlay; | 37 | struct device_node *overlay; |
| 38 | bool is_symbols_node; | ||
| 38 | }; | 39 | }; |
| 39 | 40 | ||
| 40 | /** | 41 | /** |
| @@ -55,7 +56,8 @@ struct of_overlay { · 14 unmodified lines | |||
| 55 | }; | 56 | }; |
| 56 | 57 | ||
| 57 | static int of_overlay_apply_one(struct of_overlay *ov, | 58 | static int of_overlay_apply_one(struct of_overlay *ov, |
| 58 | struct device_node *target, const struct device_node *overlay); | 59 | struct device_node *target, const struct device_node *overlay, |
| 60 | bool is_symbols_node); | ||
| 59 | 61 | ||
| 60 | static BLOCKING_NOTIFIER_HEAD(of_overlay_chain); | 62 | static BLOCKING_NOTIFIER_HEAD(of_overlay_chain); |
| 61 | 63 | ||
| @@ -92,10 +94,74 @@ static int of_overlay_notify(struct of_overlay *ov, · 30 unmodified lines | |||
| 92 | return 0; | 94 | return 0; |
| 93 | } | 95 | } |
| 94 | 96 | ||
| 97 | static struct property *dup_and_fixup_symbol_prop(struct of_overlay *ov, | ||
| 98 | const struct property *prop) | ||
| 99 | { | ||
| 100 | struct of_overlay_info *ovinfo; | ||
| 101 | struct property *new; | ||
| 102 | const char *overlay_name; | ||
| 103 | char *label_path; | ||
| 104 | char *symbol_path; | ||
| 105 | const char *target_path; | ||
| 106 | int k; | ||
| 107 | int label_path_len; | ||
| 108 | int overlay_name_len; | ||
| 109 | int target_path_len; | ||
| 110 | |||
| 111 | if (!prop->value) | ||
| 112 | return NULL; | ||
| 113 | symbol_path = prop->value; | ||
| 114 | |||
| 115 | new = kzalloc(sizeof(*new), GFP_KERNEL); | ||
| 116 | if (!new) | ||
| 117 | return NULL; | ||
| 118 | |||
| 119 | for (k = 0; k < ov->count; k++) { | ||
| 120 | ovinfo = &ov->ovinfo_tab[k]; | ||
| 121 | overlay_name = ovinfo->overlay->full_name; | ||
| 122 | overlay_name_len = strlen(overlay_name); | ||
| 123 | if (!strncasecmp(symbol_path, overlay_name, overlay_name_len)) | ||
| 124 | break; | ||
| 125 | } | ||
| 126 | |||
| 127 | if (k >= ov->count) | ||
| 128 | goto err_free; | ||
| 129 | |||
| 130 | target_path = ovinfo->target->full_name; | ||
| 131 | target_path_len = strlen(target_path); | ||
| 132 | |||
| 133 | label_path = symbol_path + overlay_name_len; | ||
| 134 | label_path_len = strlen(label_path); | ||
| 135 | |||
| 136 | new->name = kstrdup(prop->name, GFP_KERNEL); | ||
| 137 | new->length = target_path_len + label_path_len + 1; | ||
| 138 | new->value = kzalloc(new->length, GFP_KERNEL); | ||
| 139 | |||
| 140 | if (!new->name || !new->value) | ||
| 141 | goto err_free; | ||
| 142 | |||
| 143 | strcpy(new->value, target_path); | ||
| 144 | strcpy(new->value + target_path_len, label_path); | ||
| 145 | |||
| 146 | /* mark the property as dynamic */ | ||
| 147 | of_property_set_flag(new, OF_DYNAMIC); | ||
| 148 | |||
| 149 | return new; | ||
| 150 | |||
| 151 | err_free: | ||
| 152 | kfree(new->name); | ||
| 153 | kfree(new->value); | ||
| 154 | kfree(new); | ||
| 155 | return NULL; | ||
| 156 | |||
| 157 | |||
| 158 | } | ||
| 159 | |||
| 95 | static int of_overlay_apply_single_property(struct of_overlay *ov, | 160 | static int of_overlay_apply_single_property(struct of_overlay *ov, |
| 96 | struct device_node *target, struct property *prop) | 161 | struct device_node *target, struct property *prop, |
| 162 | bool is_symbols_node) | ||
| 97 | { | 163 | { |
| 98 | struct property *propn, *tprop; | 164 | struct property *propn = NULL, *tprop; |
| 99 | 165 | ||
| 100 | /* NOTE: Multiple changes of single properties not supported */ | 166 | /* NOTE: Multiple changes of single properties not supported */ |
| 101 | tprop = of_find_property(target, prop->name, NULL); | 167 | tprop = of_find_property(target, prop->name, NULL); |
| @@ -106,7 +172,15 @@ static int of_overlay_apply_single_property(struct of_overlay *ov, · 4 unmodified lines | |||
| 106 | of_prop_cmp(prop->name, "linux,phandle") == 0) | 172 | of_prop_cmp(prop->name, "linux,phandle") == 0) |
| 107 | return 0; | 173 | return 0; |
| 108 | 174 | ||
| 109 | propn = __of_prop_dup(prop, GFP_KERNEL); | 175 | if (is_symbols_node) { |
| 176 | /* changing a property in __symbols__ node not allowed */ | ||
| 177 | if (tprop) | ||
| 178 | return -EINVAL; | ||
| 179 | propn = dup_and_fixup_symbol_prop(ov, prop); | ||
| 180 | } else { | ||
| 181 | propn = __of_prop_dup(prop, GFP_KERNEL); | ||
| 182 | } | ||
| 183 | |||
| 110 | if (propn == NULL) | 184 | if (propn == NULL) |
| 111 | return -ENOMEM; | 185 | return -ENOMEM; |
| 112 | 186 | ||
| @@ -130,18 +204,21 @@ static int of_overlay_apply_single_device_node(struct of_overlay *ov, · 17 unmodified lines | |||
| 130 | return -ENOMEM; | 204 | return -ENOMEM; |
| 131 | 205 | ||
| 132 | /* NOTE: Multiple mods of created nodes not supported */ | 206 | /* NOTE: Multiple mods of created nodes not supported */ |
| 133 | tchild = of_get_child_by_name(target, cname); | 207 | for_each_child_of_node(target, tchild) |
| 208 | if (!of_node_cmp(cname, kbasename(tchild->full_name))) | ||
| 209 | break; | ||
| 210 | |||
| 134 | if (tchild != NULL) { | 211 | if (tchild != NULL) { |
| 135 | /* new overlay phandle value conflicts with existing value */ | 212 | /* new overlay phandle value conflicts with existing value */ |
| 136 | if (child->phandle) | 213 | if (child->phandle) |
| 137 | return -EINVAL; | 214 | return -EINVAL; |
| 138 | 215 | ||
| 139 | /* apply overlay recursively */ | 216 | /* apply overlay recursively */ |
| 140 | ret = of_overlay_apply_one(ov, tchild, child); | 217 | ret = of_overlay_apply_one(ov, tchild, child, 0); |
| 141 | of_node_put(tchild); | 218 | of_node_put(tchild); |
| 142 | } else { | 219 | } else { |
| 143 | /* create empty tree as a target */ | 220 | /* create empty tree as a target */ |
| 144 | tchild = __of_node_dup(child, "%s/%s", target->full_name, cname); | 221 | tchild = __of_node_dup(child, "%pOF/%s", target, cname); |
| 145 | if (!tchild) | 222 | if (!tchild) |
| 146 | return -ENOMEM; | 223 | return -ENOMEM; |
| 147 | 224 | ||
| @@ -152,7 +229,7 @@ static int of_overlay_apply_single_device_node(struct of_overlay *ov, · 4 unmodified lines | |||
| 152 | if (ret) | 229 | if (ret) |
| 153 | return ret; | 230 | return ret; |
| 154 | 231 | ||
| 155 | ret = of_overlay_apply_one(ov, tchild, child); | 232 | ret = of_overlay_apply_one(ov, tchild, child, 0); |
| 156 | if (ret) | 233 | if (ret) |
| 157 | return ret; | 234 | return ret; |
| 158 | } | 235 | } |
| @@ -168,26 +245,32 @@ static int of_overlay_apply_single_device_node(struct of_overlay *ov, · 9 unmodified lines | |||
| 168 | * by using the changeset. | 245 | * by using the changeset. |
| 169 | */ | 246 | */ |
| 170 | static int of_overlay_apply_one(struct of_overlay *ov, | 247 | static int of_overlay_apply_one(struct of_overlay *ov, |
| 171 | struct device_node *target, const struct device_node *overlay) | 248 | struct device_node *target, const struct device_node *overlay, |
| 249 | bool is_symbols_node) | ||
| 172 | { | 250 | { |
| 173 | struct device_node *child; | 251 | struct device_node *child; |
| 174 | struct property *prop; | 252 | struct property *prop; |
| 175 | int ret; | 253 | int ret; |
| 176 | 254 | ||
| 177 | for_each_property_of_node(overlay, prop) { | 255 | for_each_property_of_node(overlay, prop) { |
| 178 | ret = of_overlay_apply_single_property(ov, target, prop); | 256 | ret = of_overlay_apply_single_property(ov, target, prop, |
| 257 | is_symbols_node); | ||
| 179 | if (ret) { | 258 | if (ret) { |
| 180 | pr_err("Failed to apply prop @%s/%s\n", | 259 | pr_err("Failed to apply prop @%pOF/%s\n", |
| 181 | target->full_name, prop->name); | 260 | target, prop->name); |
| 182 | return ret; | 261 | return ret; |
| 183 | } | 262 | } |
| 184 | } | 263 | } |
| 185 | 264 | ||
| 265 | /* do not allow symbols node to have any children */ | ||
| 266 | if (is_symbols_node) | ||
| 267 | return 0; | ||
| 268 | |||
| 186 | for_each_child_of_node(overlay, child) { | 269 | for_each_child_of_node(overlay, child) { |
| 187 | ret = of_overlay_apply_single_device_node(ov, target, child); | 270 | ret = of_overlay_apply_single_device_node(ov, target, child); |
| 188 | if (ret != 0) { | 271 | if (ret != 0) { |
| 189 | pr_err("Failed to apply single node @%s/%s\n", | 272 | pr_err("Failed to apply single node @%pOF/%s\n", |
| 190 | target->full_name, child->name); | 273 | target, child->name); |
| 191 | of_node_put(child); | 274 | of_node_put(child); |
| 192 | return ret; | 275 | return ret; |
| 193 | } | 276 | } |
| @@ -213,9 +296,10 @@ static int of_overlay_apply(struct of_overlay *ov) · 19 unmodified lines | |||
| 213 | for (i = 0; i < ov->count; i++) { | 296 | for (i = 0; i < ov->count; i++) { |
| 214 | struct of_overlay_info *ovinfo = &ov->ovinfo_tab[i]; | 297 | struct of_overlay_info *ovinfo = &ov->ovinfo_tab[i]; |
| 215 | 298 | ||
| 216 | err = of_overlay_apply_one(ov, ovinfo->target, ovinfo->overlay); | 299 | err = of_overlay_apply_one(ov, ovinfo->target, ovinfo->overlay, |
| 300 | ovinfo->is_symbols_node); | ||
| 217 | if (err != 0) { | 301 | if (err != 0) { |
| 218 | pr_err("apply failed '%s'\n", ovinfo->target->full_name); | 302 | pr_err("apply failed '%pOF'\n", ovinfo->target); |
| 219 | return err; | 303 | return err; |
| 220 | } | 304 | } |
| 221 | } | 305 | } |
| @@ -311,6 +395,9 @@ static int of_build_overlay_info(struct of_overlay *ov, · 89 unmodified lines | |||
| 311 | for_each_child_of_node(tree, node) | 395 | for_each_child_of_node(tree, node) |
| 312 | cnt++; | 396 | cnt++; |
| 313 | 397 | ||
| 398 | if (of_get_child_by_name(tree, "__symbols__")) | ||
| 399 | cnt++; | ||
| 400 | |||
| 314 | ovinfo = kcalloc(cnt, sizeof(*ovinfo), GFP_KERNEL); | 401 | ovinfo = kcalloc(cnt, sizeof(*ovinfo), GFP_KERNEL); |
| 315 | if (ovinfo == NULL) | 402 | if (ovinfo == NULL) |
| 316 | return -ENOMEM; | 403 | return -ENOMEM; |
| @@ -322,6 +409,20 @@ static int of_build_overlay_info(struct of_overlay *ov, · 5 unmodified lines | |||
| 322 | cnt++; | 409 | cnt++; |
| 323 | } | 410 | } |
| 324 | 411 | ||
| 412 | node = of_get_child_by_name(tree, "__symbols__"); | ||
| 413 | if (node) { | ||
| 414 | ovinfo[cnt].overlay = node; | ||
| 415 | ovinfo[cnt].target = of_find_node_by_path("/__symbols__"); | ||
| 416 | ovinfo[cnt].is_symbols_node = 1; | ||
| 417 | |||
| 418 | if (!ovinfo[cnt].target) { | ||
| 419 | pr_err("no symbols in root of device tree.\n"); | ||
| 420 | return -EINVAL; | ||
| 421 | } | ||
| 422 | |||
| 423 | cnt++; | ||
| 424 | } | ||
| 425 | |||
| 325 | /* if nothing filled, return error */ | 426 | /* if nothing filled, return error */ |
| 326 | if (cnt == 0) { | 427 | if (cnt == 0) { |
| 327 | kfree(ovinfo); | 428 | kfree(ovinfo); |
| @@ -400,8 +501,8 @@ int of_overlay_create(struct device_node *tree) · 72 unmodified lines | |||
| 400 | /* build the overlay info structures */ | 501 | /* build the overlay info structures */ |
| 401 | err = of_build_overlay_info(ov, tree); | 502 | err = of_build_overlay_info(ov, tree); |
| 402 | if (err) { | 503 | if (err) { |
| 403 | pr_err("of_build_overlay_info() failed for tree@%s\n", | 504 | pr_err("of_build_overlay_info() failed for tree@%pOF\n", |
| 404 | tree->full_name); | 505 | tree); |
| 405 | goto err_free_idr; | 506 | goto err_free_idr; |
| 406 | } | 507 | } |
| 407 | 508 | ||
| @@ -480,9 +581,8 @@ static int overlay_is_topmost(struct of_overlay *ov, struct device_node *dn) · 72 unmodified lines | |||
| 480 | /* check against each subtree affected by this overlay */ | 581 | /* check against each subtree affected by this overlay */ |
| 481 | list_for_each_entry(ce, &ovt->cset.entries, node) { | 582 | list_for_each_entry(ce, &ovt->cset.entries, node) { |
| 482 | if (overlay_subtree_check(ce->np, dn)) { | 583 | if (overlay_subtree_check(ce->np, dn)) { |
| 483 | pr_err("%s: #%d clashes #%d @%s\n", | 584 | pr_err("%s: #%d clashes #%d @%pOF\n", |
| 484 | __func__, ov->id, ovt->id, | 585 | __func__, ov->id, ovt->id, dn); |
| 485 | dn->full_name); | ||
| 486 | return 0; | 586 | return 0; |
| 487 | } | 587 | } |
| 488 | } | 588 | } |
| @@ -118,7 +118,7 @@ struct platform_device *of_device_alloc(struct device_node *np, · 117 unmodified lines | |||
| 118 | int rc, i, num_reg = 0, num_irq; | 118 | int rc, i, num_reg = 0, num_irq; |
| 119 | struct resource *res, temp_res; | 119 | struct resource *res, temp_res; |
| 120 | 120 | ||
| 121 | dev = platform_device_alloc("", -1); | 121 | dev = platform_device_alloc("", PLATFORM_DEVID_NONE); |
| 122 | if (!dev) | 122 | if (!dev) |
| 123 | return NULL; | 123 | return NULL; |
| 124 | 124 | ||
| @@ -228,7 +228,7 @@ static struct amba_device *of_amba_device_create(struct device_node *node, · 103 unmodified lines | |||
| 228 | const void *prop; | 228 | const void *prop; |
| 229 | int i, ret; | 229 | int i, ret; |
| 230 | 230 | ||
| 231 | pr_debug("Creating amba device %s\n", node->full_name); | 231 | pr_debug("Creating amba device %pOF\n", node); |
| 232 | 232 | ||
| 233 | if (!of_device_is_available(node) || | 233 | if (!of_device_is_available(node) || |
| 234 | of_node_test_and_set_flag(node, OF_POPULATED)) | 234 | of_node_test_and_set_flag(node, OF_POPULATED)) |
| @@ -259,15 +259,15 @@ static struct amba_device *of_amba_device_create(struct device_node *node, · 24 unmodified lines | |||
| 259 | 259 | ||
| 260 | ret = of_address_to_resource(node, 0, &dev->res); | 260 | ret = of_address_to_resource(node, 0, &dev->res); |
| 261 | if (ret) { | 261 | if (ret) { |
| 262 | pr_err("amba: of_address_to_resource() failed (%d) for %s\n", | 262 | pr_err("amba: of_address_to_resource() failed (%d) for %pOF\n", |
| 263 | ret, node->full_name); | 263 | ret, node); |
| 264 | goto err_free; | 264 | goto err_free; |
| 265 | } | 265 | } |
| 266 | 266 | ||
| 267 | ret = amba_device_add(dev, &iomem_resource); | 267 | ret = amba_device_add(dev, &iomem_resource); |
| 268 | if (ret) { | 268 | if (ret) { |
| 269 | pr_err("amba_device_add() failed (%d) for %s\n", | 269 | pr_err("amba_device_add() failed (%d) for %pOF\n", |
| 270 | ret, node->full_name); | 270 | ret, node); |
| 271 | goto err_free; | 271 | goto err_free; |
| 272 | } | 272 | } |
| 273 | 273 | ||
| @@ -310,7 +310,7 @@ static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *l · 36 unmodified lines | |||
| 310 | if (!of_address_to_resource(np, 0, &res)) | 310 | if (!of_address_to_resource(np, 0, &res)) |
| 311 | if (res.start != auxdata->phys_addr) | 311 | if (res.start != auxdata->phys_addr) |
| 312 | continue; | 312 | continue; |
| 313 | pr_debug("%s: devname=%s\n", np->full_name, auxdata->name); | 313 | pr_debug("%pOF: devname=%s\n", np, auxdata->name); |
| 314 | return auxdata; | 314 | return auxdata; |
| 315 | } | 315 | } |
| 316 | 316 | ||
| @@ -323,7 +323,7 @@ static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *l · 6 unmodified lines | |||
| 323 | if (!of_device_is_compatible(np, auxdata->compatible)) | 323 | if (!of_device_is_compatible(np, auxdata->compatible)) |
| 324 | continue; | 324 | continue; |
| 325 | if (!auxdata->phys_addr && !auxdata->name) { | 325 | if (!auxdata->phys_addr && !auxdata->name) { |
| 326 | pr_debug("%s: compatible match\n", np->full_name); | 326 | pr_debug("%pOF: compatible match\n", np); |
| 327 | return auxdata; | 327 | return auxdata; |
| 328 | } | 328 | } |
| 329 | } | 329 | } |
| @@ -356,14 +356,14 @@ static int of_platform_bus_create(struct device_node *bus, · 26 unmodified lines | |||
| 356 | 356 | ||
| 357 | /* Make sure it has a compatible property */ | 357 | /* Make sure it has a compatible property */ |
| 358 | if (strict && (!of_get_property(bus, "compatible", NULL))) { | 358 | if (strict && (!of_get_property(bus, "compatible", NULL))) { |
| 359 | pr_debug("%s() - skipping %s, no compatible prop\n", | 359 | pr_debug("%s() - skipping %pOF, no compatible prop\n", |
| 360 | __func__, bus->full_name); | 360 | __func__, bus); |
| 361 | return 0; | 361 | return 0; |
| 362 | } | 362 | } |
| 363 | 363 | ||
| 364 | if (of_node_check_flag(bus, OF_POPULATED_BUS)) { | 364 | if (of_node_check_flag(bus, OF_POPULATED_BUS)) { |
| 365 | pr_debug("%s() - skipping %s, already populated\n", | 365 | pr_debug("%s() - skipping %pOF, already populated\n", |
| 366 | __func__, bus->full_name); | 366 | __func__, bus); |
| 367 | return 0; | 367 | return 0; |
| 368 | } | 368 | } |
| 369 | 369 | ||
| @@ -387,7 +387,7 @@ static int of_platform_bus_create(struct device_node *bus, · 17 unmodified lines | |||
| 387 | return 0; | 387 | return 0; |
| 388 | 388 | ||
| 389 | for_each_child_of_node(bus, child) { | 389 | for_each_child_of_node(bus, child) { |
| 390 | pr_debug(" create child: %s\n", child->full_name); | 390 | pr_debug(" create child: %pOF\n", child); |
| 391 | rc = of_platform_bus_create(child, matches, lookup, &dev->dev, strict); | 391 | rc = of_platform_bus_create(child, matches, lookup, &dev->dev, strict); |
| 392 | if (rc) { | 392 | if (rc) { |
| 393 | of_node_put(child); | 393 | of_node_put(child); |
| @@ -419,7 +419,7 @@ int of_platform_bus_probe(struct device_node *root, · 25 unmodified lines | |||
| 419 | return -EINVAL; | 419 | return -EINVAL; |
| 420 | 420 | ||
| 421 | pr_debug("%s()\n", __func__); | 421 | pr_debug("%s()\n", __func__); |
| 422 | pr_debug(" starting at: %s\n", root->full_name); | 422 | pr_debug(" starting at: %pOF\n", root); |
| 423 | 423 | ||
| 424 | /* Do a self check of bus type, if there's a match, create children */ | 424 | /* Do a self check of bus type, if there's a match, create children */ |
| 425 | if (of_match_node(matches, root)) { | 425 | if (of_match_node(matches, root)) { |
| @@ -471,7 +471,7 @@ int of_platform_populate(struct device_node *root, · 45 unmodified lines | |||
| 471 | return -EINVAL; | 471 | return -EINVAL; |
| 472 | 472 | ||
| 473 | pr_debug("%s()\n", __func__); | 473 | pr_debug("%s()\n", __func__); |
| 474 | pr_debug(" starting at: %s\n", root->full_name); | 474 | pr_debug(" starting at: %pOF\n", root); |
| 475 | 475 | ||
| 476 | for_each_child_of_node(root, child) { | 476 | for_each_child_of_node(root, child) { |
| 477 | rc = of_platform_bus_create(child, matches, lookup, parent, true); | 477 | rc = of_platform_bus_create(child, matches, lookup, parent, true); |
| @@ -660,8 +660,8 @@ static int of_platform_notify(struct notifier_block *nb, · 182 unmodified lines | |||
| 660 | of_dev_put(pdev_parent); | 660 | of_dev_put(pdev_parent); |
| 661 | 661 | ||
| 662 | if (pdev == NULL) { | 662 | if (pdev == NULL) { |
| 663 | pr_err("%s: failed to create for '%s'\n", | 663 | pr_err("%s: failed to create for '%pOF'\n", |
| 664 | __func__, rd->dn->full_name); | 664 | __func__, rd->dn); |
| 665 | /* of_platform_device_create tosses the error code */ | 665 | /* of_platform_device_create tosses the error code */ |
| 666 | return notifier_from_errno(-EINVAL); | 666 | return notifier_from_errno(-EINVAL); |
| 667 | } | 667 | } |
| @@ -55,8 +55,8 @@ int of_property_count_elems_of_size(const struct device_node *np, · 54 unmodified lines | |||
| 55 | return -ENODATA; | 55 | return -ENODATA; |
| 56 | 56 | ||
| 57 | if (prop->length % elem_size != 0) { | 57 | if (prop->length % elem_size != 0) { |
| 58 | pr_err("size of %s in node %s is not a multiple of %d\n", | 58 | pr_err("size of %s in node %pOF is not a multiple of %d\n", |
| 59 | propname, np->full_name, elem_size); | 59 | propname, np, elem_size); |
| 60 | return -EINVAL; | 60 | return -EINVAL; |
| 61 | } | 61 | } |
| 62 | 62 | ||
| @@ -537,8 +537,8 @@ int of_graph_parse_endpoint(const struct device_node *node, · 474 unmodified lines | |||
| 537 | { | 537 | { |
| 538 | struct device_node *port_node = of_get_parent(node); | 538 | struct device_node *port_node = of_get_parent(node); |
| 539 | 539 | ||
| 540 | WARN_ONCE(!port_node, "%s(): endpoint %s has no parent node\n", | 540 | WARN_ONCE(!port_node, "%s(): endpoint %pOF has no parent node\n", |
| 541 | __func__, node->full_name); | 541 | __func__, node); |
| 542 | 542 | ||
| 543 | memset(endpoint, 0, sizeof(*endpoint)); | 543 | memset(endpoint, 0, sizeof(*endpoint)); |
| 544 | 544 | ||
| @@ -621,14 +621,13 @@ struct device_node *of_graph_get_next_endpoint(const struct device_node *parent, · 76 unmodified lines | |||
| 621 | of_node_put(node); | 621 | of_node_put(node); |
| 622 | 622 | ||
| 623 | if (!port) { | 623 | if (!port) { |
| 624 | pr_err("graph: no port node found in %s\n", | 624 | pr_err("graph: no port node found in %pOF\n", parent); |
| 625 | parent->full_name); | ||
| 626 | return NULL; | 625 | return NULL; |
| 627 | } | 626 | } |
| 628 | } else { | 627 | } else { |
| 629 | port = of_get_parent(prev); | 628 | port = of_get_parent(prev); |
| 630 | if (WARN_ONCE(!port, "%s(): endpoint %s has no parent node\n", | 629 | if (WARN_ONCE(!port, "%s(): endpoint %pOF has no parent node\n", |
| 631 | __func__, prev->full_name)) | 630 | __func__, prev)) |
| 632 | return NULL; | 631 | return NULL; |
| 633 | } | 632 | } |
| 634 | 633 | ||
| @@ -797,8 +796,8 @@ struct device_node *of_graph_get_remote_node(const struct device_node *node, · 162 unmodified lines | |||
| 797 | 796 | ||
| 798 | endpoint_node = of_graph_get_endpoint_by_regs(node, port, endpoint); | 797 | endpoint_node = of_graph_get_endpoint_by_regs(node, port, endpoint); |
| 799 | if (!endpoint_node) { | 798 | if (!endpoint_node) { |
| 800 | pr_debug("no valid endpoint (%d, %d) for node %s\n", | 799 | pr_debug("no valid endpoint (%d, %d) for node %pOF\n", |
| 801 | port, endpoint, node->full_name); | 800 | port, endpoint, node); |
| 802 | return NULL; | 801 | return NULL; |
| 803 | } | 802 | } |
| 804 | 803 | ||
| @@ -945,8 +944,8 @@ of_fwnode_graph_get_next_endpoint(const struct fwnode_handle *fwnode, · 140 unmodified lines | |||
| 945 | static struct fwnode_handle * | 944 | static struct fwnode_handle * |
| 946 | of_fwnode_graph_get_remote_endpoint(const struct fwnode_handle *fwnode) | 945 | of_fwnode_graph_get_remote_endpoint(const struct fwnode_handle *fwnode) |
| 947 | { | 946 | { |
| 948 | return of_fwnode_handle(of_parse_phandle(to_of_node(fwnode), | 947 | return of_fwnode_handle( |
| 949 | "remote-endpoint", 0)); | 948 | of_graph_get_remote_endpoint(to_of_node(fwnode))); |
| 950 | } | 949 | } |
| 951 | 950 | ||
| 952 | static struct fwnode_handle * | 951 | static struct fwnode_handle * |
| @@ -1,18 +1,27 @@ | |||
| 1 | obj-y += testcases.dtb.o | 1 | obj-y += testcases.dtb.o |
| 2 | |||
| 3 | targets += testcases.dtb testcases.dtb.S | ||
| 4 | |||
| 5 | ifdef CONFIG_OF_OVERLAY | ||
| 6 | |||
| 2 | obj-y += overlay.dtb.o | 7 | obj-y += overlay.dtb.o |
| 3 | obj-y += overlay_bad_phandle.dtb.o | 8 | obj-y += overlay_bad_phandle.dtb.o |
| 9 | obj-y += overlay_bad_symbol.dtb.o | ||
| 4 | obj-y += overlay_base.dtb.o | 10 | obj-y += overlay_base.dtb.o |
| 5 | 11 | ||
| 6 | targets += testcases.dtb testcases.dtb.S | ||
| 7 | targets += overlay.dtb overlay.dtb.S | 12 | targets += overlay.dtb overlay.dtb.S |
| 8 | targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S | 13 | targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S |
| 14 | targets += overlay_bad_symbol.dtb overlay_bad_symbol.dtb.S | ||
| 9 | targets += overlay_base.dtb overlay_base.dtb.S | 15 | targets += overlay_base.dtb overlay_base.dtb.S |
| 10 | 16 | ||
| 11 | .PRECIOUS: \ | ||
| 12 | $(obj)/%.dtb.S \ | ||
| 13 | $(obj)/%.dtb | ||
| 14 | |||
| 15 | # enable creation of __symbols__ node | 17 | # enable creation of __symbols__ node |
| 16 | DTC_FLAGS_overlay := -@ | 18 | DTC_FLAGS_overlay := -@ |
| 17 | DTC_FLAGS_overlay_bad_phandle := -@ | 19 | DTC_FLAGS_overlay_bad_phandle := -@ |
| 20 | DTC_FLAGS_overlay_bad_symbol := -@ | ||
| 18 | DTC_FLAGS_overlay_base := -@ | 21 | DTC_FLAGS_overlay_base := -@ |
| 22 | |||
| 23 | endif | ||
| 24 | |||
| 25 | .PRECIOUS: \ | ||
| 26 | $(obj)/%.dtb.S \ | ||
| 27 | $(obj)/%.dtb | ||
| @@ -7,7 +7,7 @@ · 6 unmodified lines | |||
| 7 | target = <&electric_1>; | 7 | target = <&electric_1>; |
| 8 | 8 | ||
| 9 | __overlay__ { | 9 | __overlay__ { |
| 10 | status = "ok"; | 10 | status = "okay"; |
| 11 | 11 | ||
| 12 | hvac_2: hvac-large-1 { | 12 | hvac_2: hvac-large-1 { |
| 13 | compatible = "ot,hvac-large"; | 13 | compatible = "ot,hvac-large"; |
| @@ -23,9 +23,24 @@ · 9 unmodified lines | |||
| 23 | __overlay__ { | 23 | __overlay__ { |
| 24 | #address-cells = <1>; | 24 | #address-cells = <1>; |
| 25 | #size-cells = <1>; | 25 | #size-cells = <1>; |
| 26 | status = "ok"; | 26 | status = "okay"; |
| 27 | 27 | ||
| 28 | ride@200 { | 28 | ride@100 { |
| 29 | #address-cells = <1>; | ||
| 30 | #size-cells = <1>; | ||
| 31 | |||
| 32 | track@30 { | ||
| 33 | incline-up = < 48 32 16 >; | ||
| 34 | }; | ||
| 35 | |||
| 36 | track@40 { | ||
| 37 | incline-up = < 47 31 15 >; | ||
| 38 | }; | ||
| 39 | }; | ||
| 40 | |||
| 41 | ride_200: ride@200 { | ||
| 42 | #address-cells = <1>; | ||
| 43 | #size-cells = <1>; | ||
| 29 | compatible = "ot,ferris-wheel"; | 44 | compatible = "ot,ferris-wheel"; |
| 30 | reg = < 0x00000200 0x100 >; | 45 | reg = < 0x00000200 0x100 >; |
| 31 | hvac-provider = < &hvac_2 >; | 46 | hvac-provider = < &hvac_2 >; |
| @@ -36,6 +51,14 @@ · 4 unmodified lines | |||
| 36 | spin-rph = < 30 >; | 51 | spin-rph = < 30 >; |
| 37 | gondolas = < 16 >; | 52 | gondolas = < 16 >; |
| 38 | gondola-capacity = < 6 >; | 53 | gondola-capacity = < 6 >; |
| 54 | |||
| 55 | ride_200_left: track@10 { | ||
| 56 | reg = < 0x00000010 0x10 >; | ||
| 57 | }; | ||
| 58 | |||
| 59 | ride_200_right: track@20 { | ||
| 60 | reg = < 0x00000020 0x10 >; | ||
| 61 | }; | ||
| 39 | }; | 62 | }; |
| 40 | }; | 63 | }; |
| 41 | }; | 64 | }; |
| @@ -44,7 +67,7 @@ · 2 unmodified lines | |||
| 44 | target = <&lights_2>; | 67 | target = <&lights_2>; |
| 45 | 68 | ||
| 46 | __overlay__ { | 69 | __overlay__ { |
| 47 | status = "ok"; | 70 | status = "okay"; |
| 48 | color = "purple", "white", "red", "green"; | 71 | color = "purple", "white", "red", "green"; |
| 49 | rate = < 3 256 >; | 72 | rate = < 3 256 >; |
| 50 | }; | 73 | }; |
| @@ -0,0 +1,22 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | /plugin/; | ||
| 3 | |||
| 4 | / { | ||
| 5 | |||
| 6 | fragment@0 { | ||
| 7 | target = <&electric_1>; | ||
| 8 | |||
| 9 | __overlay__ { | ||
| 10 | |||
| 11 | // This label should cause an error when the overlay | ||
| 12 | // is applied. There is already a symbol hvac_1 | ||
| 13 | // in the base tree | ||
| 14 | hvac_1: hvac-medium-2 { | ||
| 15 | compatible = "ot,hvac-medium"; | ||
| 16 | heat-range = < 50 75 >; | ||
| 17 | cool-range = < 60 80 >; | ||
| 18 | }; | ||
| 19 | |||
| 20 | }; | ||
| 21 | }; | ||
| 22 | }; | ||
| @@ -44,6 +44,8 @@ · 43 unmodified lines | |||
| 44 | orientation = < 127 >; | 44 | orientation = < 127 >; |
| 45 | 45 | ||
| 46 | ride@100 { | 46 | ride@100 { |
| 47 | #address-cells = <1>; | ||
| 48 | #size-cells = <1>; | ||
| 47 | compatible = "ot,roller-coaster"; | 49 | compatible = "ot,roller-coaster"; |
| 48 | reg = < 0x00000100 0x100 >; | 50 | reg = < 0x00000100 0x100 >; |
| 49 | hvac-provider = < &hvac_1 >; | 51 | hvac-provider = < &hvac_1 >; |
| @@ -53,6 +55,15 @@ · 3 unmodified lines | |||
| 53 | spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >; | 55 | spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >; |
| 54 | spin-controller-names = "track_1", "track_2"; | 56 | spin-controller-names = "track_1", "track_2"; |
| 55 | queues = < 2 >; | 57 | queues = < 2 >; |
| 58 | |||
| 59 | track@30 { | ||
| 60 | reg = < 0x00000030 0x10 >; | ||
| 61 | }; | ||
| 62 | |||
| 63 | track@40 { | ||
| 64 | reg = < 0x00000040 0x10 >; | ||
| 65 | }; | ||
| 66 | |||
| 56 | }; | 67 | }; |
| 57 | }; | 68 | }; |
| 58 | 69 | ||
| @@ -46,46 +46,54 @@ static struct unittest_results { · 45 unmodified lines | |||
| 46 | static void __init of_unittest_find_node_by_name(void) | 46 | static void __init of_unittest_find_node_by_name(void) |
| 47 | { | 47 | { |
| 48 | struct device_node *np; | 48 | struct device_node *np; |
| 49 | const char *options; | 49 | const char *options, *name; |
| 50 | 50 | ||
| 51 | np = of_find_node_by_path("/testcase-data"); | 51 | np = of_find_node_by_path("/testcase-data"); |
| 52 | unittest(np && !strcmp("/testcase-data", np->full_name), | 52 | name = kasprintf(GFP_KERNEL, "%pOF", np); |
| 53 | unittest(np && !strcmp("/testcase-data", name), | ||
| 53 | "find /testcase-data failed\n"); | 54 | "find /testcase-data failed\n"); |
| 54 | of_node_put(np); | 55 | of_node_put(np); |
| 56 | kfree(name); | ||
| 55 | 57 | ||
| 56 | /* Test if trailing '/' works */ | 58 | /* Test if trailing '/' works */ |
| 57 | np = of_find_node_by_path("/testcase-data/"); | 59 | np = of_find_node_by_path("/testcase-data/"); |
| 58 | unittest(!np, "trailing '/' on /testcase-data/ should fail\n"); | 60 | unittest(!np, "trailing '/' on /testcase-data/ should fail\n"); |
| 59 | 61 | ||
| 60 | np = of_find_node_by_path("/testcase-data/phandle-tests/consumer-a"); | 62 | np = of_find_node_by_path("/testcase-data/phandle-tests/consumer-a"); |
| 61 | unittest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", np->full_name), | 63 | name = kasprintf(GFP_KERNEL, "%pOF", np); |
| 64 | unittest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", name), | ||
| 62 | "find /testcase-data/phandle-tests/consumer-a failed\n"); | 65 | "find /testcase-data/phandle-tests/consumer-a failed\n"); |
| 63 | of_node_put(np); | 66 | of_node_put(np); |
| 67 | kfree(name); | ||
| 64 | 68 | ||
| 65 | np = of_find_node_by_path("testcase-alias"); | 69 | np = of_find_node_by_path("testcase-alias"); |
| 66 | unittest(np && !strcmp("/testcase-data", np->full_name), | 70 | name = kasprintf(GFP_KERNEL, "%pOF", np); |
| 71 | unittest(np && !strcmp("/testcase-data", name), | ||
| 67 | "find testcase-alias failed\n"); | 72 | "find testcase-alias failed\n"); |
| 68 | of_node_put(np); | 73 | of_node_put(np); |
| 74 | kfree(name); | ||
| 69 | 75 | ||
| 70 | /* Test if trailing '/' works on aliases */ | 76 | /* Test if trailing '/' works on aliases */ |
| 71 | np = of_find_node_by_path("testcase-alias/"); | 77 | np = of_find_node_by_path("testcase-alias/"); |
| 72 | unittest(!np, "trailing '/' on testcase-alias/ should fail\n"); | 78 | unittest(!np, "trailing '/' on testcase-alias/ should fail\n"); |
| 73 | 79 | ||
| 74 | np = of_find_node_by_path("testcase-alias/phandle-tests/consumer-a"); | 80 | np = of_find_node_by_path("testcase-alias/phandle-tests/consumer-a"); |
| 75 | unittest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", np->full_name), | 81 | name = kasprintf(GFP_KERNEL, "%pOF", np); |
| 82 | unittest(np && !strcmp("/testcase-data/phandle-tests/consumer-a", name), | ||
| 76 | "find testcase-alias/phandle-tests/consumer-a failed\n"); | 83 | "find testcase-alias/phandle-tests/consumer-a failed\n"); |
| 77 | of_node_put(np); | 84 | of_node_put(np); |
| 85 | kfree(name); | ||
| 78 | 86 | ||
| 79 | np = of_find_node_by_path("/testcase-data/missing-path"); | 87 | np = of_find_node_by_path("/testcase-data/missing-path"); |
| 80 | unittest(!np, "non-existent path returned node %s\n", np->full_name); | 88 | unittest(!np, "non-existent path returned node %pOF\n", np); |
| 81 | of_node_put(np); | 89 | of_node_put(np); |
| 82 | 90 | ||
| 83 | np = of_find_node_by_path("missing-alias"); | 91 | np = of_find_node_by_path("missing-alias"); |
| 84 | unittest(!np, "non-existent alias returned node %s\n", np->full_name); | 92 | unittest(!np, "non-existent alias returned node %pOF\n", np); |
| 85 | of_node_put(np); | 93 | of_node_put(np); |
| 86 | 94 | ||
| 87 | np = of_find_node_by_path("testcase-alias/missing-path"); | 95 | np = of_find_node_by_path("testcase-alias/missing-path"); |
| 88 | unittest(!np, "non-existent alias with relative path returned node %s\n", np->full_name); | 96 | unittest(!np, "non-existent alias with relative path returned node %pOF\n", np); |
| 89 | of_node_put(np); | 97 | of_node_put(np); |
| 90 | 98 | ||
| 91 | np = of_find_node_opts_by_path("/testcase-data:testoption", &options); | 99 | np = of_find_node_opts_by_path("/testcase-data:testoption", &options); |
| @@ -315,8 +323,8 @@ static void __init of_unittest_check_phandles(void) · 223 unmodified lines | |||
| 315 | 323 | ||
| 316 | hash_for_each_possible(phandle_ht, nh, node, np->phandle) { | 324 | hash_for_each_possible(phandle_ht, nh, node, np->phandle) { |
| 317 | if (nh->np->phandle == np->phandle) { | 325 | if (nh->np->phandle == np->phandle) { |
| 318 | pr_info("Duplicate phandle! %i used by %s and %s\n", | 326 | pr_info("Duplicate phandle! %i used by %pOF and %pOF\n", |
| 319 | np->phandle, nh->np->full_name, np->full_name); | 327 | np->phandle, nh->np, np); |
| 320 | dup_count++; | 328 | dup_count++; |
| 321 | break; | 329 | break; |
| 322 | } | 330 | } |
| @@ -406,8 +414,8 @@ static void __init of_unittest_parse_phandle_with_args(void) · 83 unmodified lines | |||
| 406 | passed = false; | 414 | passed = false; |
| 407 | } | 415 | } |
| 408 | 416 | ||
| 409 | unittest(passed, "index %i - data error on node %s rc=%i\n", | 417 | unittest(passed, "index %i - data error on node %pOF rc=%i\n", |
| 410 | i, args.np->full_name, rc); | 418 | i, args.np, rc); |
| 411 | } | 419 | } |
| 412 | 420 | ||
| 413 | /* Check for missing list property */ | 421 | /* Check for missing list property */ |
| @@ -590,7 +598,7 @@ static void __init of_unittest_changeset(void) · 176 unmodified lines | |||
| 590 | 598 | ||
| 591 | /* Make sure node names are constructed correctly */ | 599 | /* Make sure node names are constructed correctly */ |
| 592 | unittest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")), | 600 | unittest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")), |
| 593 | "'%s' not added\n", n21->full_name); | 601 | "'%pOF' not added\n", n21); |
| 594 | of_node_put(np); | 602 | of_node_put(np); |
| 595 | 603 | ||
| 596 | unittest(!of_changeset_revert(&chgset), "revert failed\n"); | 604 | unittest(!of_changeset_revert(&chgset), "revert failed\n"); |
| @@ -621,8 +629,8 @@ static void __init of_unittest_parse_interrupts(void) · 24 unmodified lines | |||
| 621 | passed &= (args.args_count == 1); | 629 | passed &= (args.args_count == 1); |
| 622 | passed &= (args.args[0] == (i + 1)); | 630 | passed &= (args.args[0] == (i + 1)); |
| 623 | 631 | ||
| 624 | unittest(passed, "index %i - data error on node %s rc=%i\n", | 632 | unittest(passed, "index %i - data error on node %pOF rc=%i\n", |
| 625 | i, args.np->full_name, rc); | 633 | i, args.np, rc); |
| 626 | } | 634 | } |
| 627 | of_node_put(np); | 635 | of_node_put(np); |
| 628 | 636 | ||
| @@ -667,8 +675,8 @@ static void __init of_unittest_parse_interrupts(void) · 38 unmodified lines | |||
| 667 | default: | 675 | default: |
| 668 | passed = false; | 676 | passed = false; |
| 669 | } | 677 | } |
| 670 | unittest(passed, "index %i - data error on node %s rc=%i\n", | 678 | unittest(passed, "index %i - data error on node %pOF rc=%i\n", |
| 671 | i, args.np->full_name, rc); | 679 | i, args.np, rc); |
| 672 | } | 680 | } |
| 673 | of_node_put(np); | 681 | of_node_put(np); |
| 674 | } | 682 | } |
| @@ -737,8 +745,8 @@ static void __init of_unittest_parse_interrupts_extended(void) · 62 unmodified lines | |||
| 737 | passed = false; | 745 | passed = false; |
| 738 | } | 746 | } |
| 739 | 747 | ||
| 740 | unittest(passed, "index %i - data error on node %s rc=%i\n", | 748 | unittest(passed, "index %i - data error on node %pOF rc=%i\n", |
| 741 | i, args.np->full_name, rc); | 749 | i, args.np, rc); |
| 742 | } | 750 | } |
| 743 | of_node_put(np); | 751 | of_node_put(np); |
| 744 | } | 752 | } |
| @@ -917,8 +925,11 @@ static int attach_node_and_children(struct device_node *np) · 172 unmodified lines | |||
| 917 | { | 925 | { |
| 918 | struct device_node *next, *dup, *child; | 926 | struct device_node *next, *dup, *child; |
| 919 | unsigned long flags; | 927 | unsigned long flags; |
| 928 | const char *full_name; | ||
| 920 | 929 | ||
| 921 | dup = of_find_node_by_path(np->full_name); | 930 | full_name = kasprintf(GFP_KERNEL, "%pOF", np); |
| 931 | dup = of_find_node_by_path(full_name); | ||
| 932 | kfree(full_name); | ||
| 922 | if (dup) { | 933 | if (dup) { |
| 923 | update_node_properties(np, dup); | 934 | update_node_properties(np, dup); |
| 924 | return 0; | 935 | return 0; |
| @@ -1023,7 +1034,7 @@ static int unittest_probe(struct platform_device *pdev) · 98 unmodified lines | |||
| 1023 | 1034 | ||
| 1024 | } | 1035 | } |
| 1025 | 1036 | ||
| 1026 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1037 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1027 | 1038 | ||
| 1028 | of_platform_populate(np, NULL, NULL, &pdev->dev); | 1039 | of_platform_populate(np, NULL, NULL, &pdev->dev); |
| 1029 | 1040 | ||
| @@ -1035,7 +1046,7 @@ static int unittest_remove(struct platform_device *pdev) · 5 unmodified lines | |||
| 1035 | struct device *dev = &pdev->dev; | 1046 | struct device *dev = &pdev->dev; |
| 1036 | struct device_node *np = dev->of_node; | 1047 | struct device_node *np = dev->of_node; |
| 1037 | 1048 | ||
| 1038 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1049 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1039 | return 0; | 1050 | return 0; |
| 1040 | } | 1051 | } |
| 1041 | 1052 | ||
| @@ -1649,7 +1660,7 @@ static int unittest_i2c_bus_probe(struct platform_device *pdev) · 607 unmodified lines | |||
| 1649 | 1660 | ||
| 1650 | } | 1661 | } |
| 1651 | 1662 | ||
| 1652 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1663 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1653 | 1664 | ||
| 1654 | std = devm_kzalloc(dev, sizeof(*std), GFP_KERNEL); | 1665 | std = devm_kzalloc(dev, sizeof(*std), GFP_KERNEL); |
| 1655 | if (!std) { | 1666 | if (!std) { |
| @@ -1687,7 +1698,7 @@ static int unittest_i2c_bus_remove(struct platform_device *pdev) · 31 unmodified lines | |||
| 1687 | struct device_node *np = dev->of_node; | 1698 | struct device_node *np = dev->of_node; |
| 1688 | struct unittest_i2c_bus_data *std = platform_get_drvdata(pdev); | 1699 | struct unittest_i2c_bus_data *std = platform_get_drvdata(pdev); |
| 1689 | 1700 | ||
| 1690 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1701 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1691 | i2c_del_adapter(&std->adap); | 1702 | i2c_del_adapter(&std->adap); |
| 1692 | 1703 | ||
| 1693 | return 0; | 1704 | return 0; |
| @@ -1718,7 +1729,7 @@ static int unittest_i2c_dev_probe(struct i2c_client *client, · 24 unmodified lines | |||
| 1718 | return -EINVAL; | 1729 | return -EINVAL; |
| 1719 | } | 1730 | } |
| 1720 | 1731 | ||
| 1721 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1732 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1722 | 1733 | ||
| 1723 | return 0; | 1734 | return 0; |
| 1724 | }; | 1735 | }; |
| @@ -1728,7 +1739,7 @@ static int unittest_i2c_dev_remove(struct i2c_client *client) · 3 unmodified lines | |||
| 1728 | struct device *dev = &client->dev; | 1739 | struct device *dev = &client->dev; |
| 1729 | struct device_node *np = client->dev.of_node; | 1740 | struct device_node *np = client->dev.of_node; |
| 1730 | 1741 | ||
| 1731 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1742 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1732 | return 0; | 1743 | return 0; |
| 1733 | } | 1744 | } |
| 1734 | 1745 | ||
| @@ -1763,7 +1774,7 @@ static int unittest_i2c_mux_probe(struct i2c_client *client, · 28 unmodified lines | |||
| 1763 | struct i2c_mux_core *muxc; | 1774 | struct i2c_mux_core *muxc; |
| 1764 | u32 reg, max_reg; | 1775 | u32 reg, max_reg; |
| 1765 | 1776 | ||
| 1766 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1777 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1767 | 1778 | ||
| 1768 | if (!np) { | 1779 | if (!np) { |
| 1769 | dev_err(dev, "No OF node\n"); | 1780 | dev_err(dev, "No OF node\n"); |
| @@ -1808,7 +1819,7 @@ static int unittest_i2c_mux_remove(struct i2c_client *client) · 38 unmodified lines | |||
| 1808 | struct device_node *np = client->dev.of_node; | 1819 | struct device_node *np = client->dev.of_node; |
| 1809 | struct i2c_mux_core *muxc = i2c_get_clientdata(client); | 1820 | struct i2c_mux_core *muxc = i2c_get_clientdata(client); |
| 1810 | 1821 | ||
| 1811 | dev_dbg(dev, "%s for node @%s\n", __func__, np->full_name); | 1822 | dev_dbg(dev, "%s for node @%pOF\n", __func__, np); |
| 1812 | i2c_mux_del_adapters(muxc); | 1823 | i2c_mux_del_adapters(muxc); |
| 1813 | return 0; | 1824 | return 0; |
| 1814 | } | 1825 | } |
| @@ -1983,6 +1994,8 @@ out: · 168 unmodified lines | |||
| 1983 | static inline void __init of_unittest_overlay(void) { } | 1994 | static inline void __init of_unittest_overlay(void) { } |
| 1984 | #endif | 1995 | #endif |
| 1985 | 1996 | ||
| 1997 | #ifdef CONFIG_OF_OVERLAY | ||
| 1998 | |||
| 1986 | /* | 1999 | /* |
| 1987 | * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb | 2000 | * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb |
| 1988 | * in scripts/Makefile.lib | 2001 | * in scripts/Makefile.lib |
| @@ -2010,14 +2023,14 @@ struct overlay_info { · 21 unmodified lines | |||
| 2010 | OVERLAY_INFO_EXTERN(overlay_base); | 2023 | OVERLAY_INFO_EXTERN(overlay_base); |
| 2011 | OVERLAY_INFO_EXTERN(overlay); | 2024 | OVERLAY_INFO_EXTERN(overlay); |
| 2012 | OVERLAY_INFO_EXTERN(overlay_bad_phandle); | 2025 | OVERLAY_INFO_EXTERN(overlay_bad_phandle); |
| 2013 | 2026 | OVERLAY_INFO_EXTERN(overlay_bad_symbol); | |
| 2014 | #ifdef CONFIG_OF_OVERLAY | ||
| 2015 | 2027 | ||
| 2016 | /* order of entries is hard-coded into users of overlays[] */ | 2028 | /* order of entries is hard-coded into users of overlays[] */ |
| 2017 | static struct overlay_info overlays[] = { | 2029 | static struct overlay_info overlays[] = { |
| 2018 | OVERLAY_INFO(overlay_base, -9999), | 2030 | OVERLAY_INFO(overlay_base, -9999), |
| 2019 | OVERLAY_INFO(overlay, 0), | 2031 | OVERLAY_INFO(overlay, 0), |
| 2020 | OVERLAY_INFO(overlay_bad_phandle, -EINVAL), | 2032 | OVERLAY_INFO(overlay_bad_phandle, -EINVAL), |
| 2033 | OVERLAY_INFO(overlay_bad_symbol, -EINVAL), | ||
| 2021 | {} | 2034 | {} |
| 2022 | }; | 2035 | }; |
| 2023 | 2036 | ||
| @@ -2289,6 +2302,10 @@ static __init void of_unittest_overlay_high_level(void) · 265 unmodified lines | |||
| 2289 | 2302 | ||
| 2290 | unittest(overlay_data_add(2), | 2303 | unittest(overlay_data_add(2), |
| 2291 | "Adding overlay 'overlay_bad_phandle' failed\n"); | 2304 | "Adding overlay 'overlay_bad_phandle' failed\n"); |
| 2305 | |||
| 2306 | unittest(overlay_data_add(3), | ||
| 2307 | "Adding overlay 'overlay_bad_symbol' failed\n"); | ||
| 2308 | |||
| 2292 | return; | 2309 | return; |
| 2293 | 2310 | ||
| 2294 | err_unlock: | 2311 | err_unlock: |
| @@ -841,8 +841,8 @@ static int __init fsl_hypervisor_init(void) · 840 unmodified lines | |||
| 841 | handle = of_get_property(np, "interrupts", NULL); | 841 | handle = of_get_property(np, "interrupts", NULL); |
| 842 | irq = irq_of_parse_and_map(np, 0); | 842 | irq = irq_of_parse_and_map(np, 0); |
| 843 | if (!handle || (irq == NO_IRQ)) { | 843 | if (!handle || (irq == NO_IRQ)) { |
| 844 | pr_err("fsl-hv: no 'interrupts' property in %s node\n", | 844 | pr_err("fsl-hv: no 'interrupts' property in %pOF node\n", |
| 845 | np->full_name); | 845 | np); |
| 846 | continue; | 846 | continue; |
| 847 | } | 847 | } |
| 848 | 848 | ||
| @@ -869,8 +869,8 @@ static int __init fsl_hypervisor_init(void) · 20 unmodified lines | |||
| 869 | */ | 869 | */ |
| 870 | dbisr->partition = ret = get_parent_handle(np); | 870 | dbisr->partition = ret = get_parent_handle(np); |
| 871 | if (ret < 0) { | 871 | if (ret < 0) { |
| 872 | pr_err("fsl-hv: node %s has missing or " | 872 | pr_err("fsl-hv: node %pOF has missing or " |
| 873 | "malformed parent\n", np->full_name); | 873 | "malformed parent\n", np); |
| 874 | kfree(dbisr); | 874 | kfree(dbisr); |
| 875 | continue; | 875 | continue; |
| 876 | } | 876 | } |
| @@ -881,8 +881,8 @@ static int __init fsl_hypervisor_init(void) · 4 unmodified lines | |||
| 881 | ret = request_irq(irq, fsl_hv_isr, 0, np->name, dbisr); | 881 | ret = request_irq(irq, fsl_hv_isr, 0, np->name, dbisr); |
| 882 | 882 | ||
| 883 | if (ret < 0) { | 883 | if (ret < 0) { |
| 884 | pr_err("fsl-hv: could not request irq %u for node %s\n", | 884 | pr_err("fsl-hv: could not request irq %u for node %pOF\n", |
| 885 | irq, np->full_name); | 885 | irq, np); |
| 886 | kfree(dbisr); | 886 | kfree(dbisr); |
| 887 | continue; | 887 | continue; |
| 888 | } | 888 | } |
| @@ -50,7 +50,7 @@ static inline struct device_node *of_cpu_device_node_get(int cpu) · 49 unmodified lines | |||
| 50 | struct device *cpu_dev; | 50 | struct device *cpu_dev; |
| 51 | cpu_dev = get_cpu_device(cpu); | 51 | cpu_dev = get_cpu_device(cpu); |
| 52 | if (!cpu_dev) | 52 | if (!cpu_dev) |
| 53 | return NULL; | 53 | return of_get_cpu_node(cpu, NULL); |
| 54 | return of_node_get(cpu_dev->of_node); | 54 | return of_node_get(cpu_dev->of_node); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| @@ -173,10 +173,10 @@ cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ · 172 unmodified lines | |||
| 173 | 173 | ||
| 174 | ld_flags = $(LDFLAGS) $(ldflags-y) | 174 | ld_flags = $(LDFLAGS) $(ldflags-y) |
| 175 | 175 | ||
| 176 | DTC_INCLUDE := $(srctree)/scripts/dtc/include-prefixes | ||
| 177 | |||
| 176 | dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \ | 178 | dtc_cpp_flags = -Wp,-MD,$(depfile).pre.tmp -nostdinc \ |
| 177 | -I$(srctree)/arch/$(SRCARCH)/boot/dts \ | 179 | $(addprefix -I,$(DTC_INCLUDE)) \ |
| 178 | -I$(srctree)/scripts/dtc/include-prefixes \ | ||
| 179 | -I$(srctree)/drivers/of/testcase-data \ | ||
| 180 | -undef -D__DTS__ | 180 | -undef -D__DTS__ |
| 181 | 181 | ||
| 182 | # Finds the multi-part object the current object will be linked into | 182 | # Finds the multi-part object the current object will be linked into |
| @@ -317,7 +317,7 @@ quiet_cmd_dtc = DTC $@ · 134 unmodified lines | |||
| 317 | cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ | 317 | cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ |
| 318 | $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ | 318 | $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ |
| 319 | $(DTC) -O dtb -o $@ -b 0 \ | 319 | $(DTC) -O dtb -o $@ -b 0 \ |
| 320 | -i $(dir $<) $(DTC_FLAGS) \ | 320 | $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \ |
| 321 | -d $(depfile).dtc.tmp $(dtc-tmp) ; \ | 321 | -d $(depfile).dtc.tmp $(dtc-tmp) ; \ |
| 322 | cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) | 322 | cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile) |
| 323 | 323 | ||