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