Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'devicetree-fixes-for-5.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull devicetree fixes and cleanups from Rob Herring:

- Fix a regression when probing a child device reusing the parent
device's DT node pointer

- Refactor of_parse_phandle*() variants to static inlines

- Drop Enric Balletbo i Serra as a maintainer

- Fix DT schemas with arrays incorrectly encoded as a matrix

- Drop unneeded pinctrl properties from schemas

- Add SPI peripheral schema to SPI based displays

- Clean-up several schema examples

- Clean-up trivial-devices.yaml comments

- Add missing, in use vendor prefixes: Wingtech, Thundercomm, Huawei,
F(x)tec, 8devices

* tag 'devicetree-fixes-for-5.17-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
dt-bindings: google,cros-ec: drop Enric Balletbo i Serra from maintainers
dt-bindings: display: bridge: drop Enric Balletbo i Serra from maintainers
of: Check 'of_node_reused' flag on of_match_device()
of: property: define of_property_read_u{8,16,32,64}_array() unconditionally
of: base: make small of_parse_phandle() variants static inline
dt-bindings: mfd: cirrus,madera: Fix 'interrupts' in example
dt-bindings: Fix array schemas encoded as matrices
dt-bindings: Drop unnecessary pinctrl properties
dt-bindings: rtc: st,stm32-rtc: Make each example a separate entry
dt-bindings: mmc: arm,pl18x: Make each example a separate entry
dt-bindings: display: Add SPI peripheral schema to SPI based displays
scripts/dtc: dtx_diff: remove broken example from help text
dt-bindings: trivial-devices: fix double spaces in comments
dt-bindings: trivial-devices: fix swapped comments
dt-bindings: vendor-prefixes: add Wingtech
dt-bindings: vendor-prefixes: add Thundercomm
dt-bindings: vendor-prefixes: add Huawei
dt-bindings: vendor-prefixes: add F(x)tec
dt-bindings: vendor-prefixes: add 8devices
dt-bindings: power: reset: gpio-restart: Correct default priority

+358 -478
+3 -1
Documentation/devicetree/bindings/display/bridge/analogix,anx7814.yaml
··· 7 7 title: Analogix ANX7814 SlimPort (Full-HD Transmitter) 8 8 9 9 maintainers: 10 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 10 + - Andrzej Hajda <andrzej.hajda@intel.com> 11 + - Neil Armstrong <narmstrong@baylibre.com> 12 + - Robert Foss <robert.foss@linaro.org> 11 13 12 14 properties: 13 15 compatible:
-1
Documentation/devicetree/bindings/display/bridge/google,cros-ec-anx7688.yaml
··· 8 8 9 9 maintainers: 10 10 - Nicolas Boichat <drinkcat@chromium.org> 11 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 12 11 13 12 description: | 14 13 ChromeOS EC ANX7688 is a display bridge that converts HDMI 2.0 to
-1
Documentation/devicetree/bindings/display/bridge/ps8640.yaml
··· 8 8 9 9 maintainers: 10 10 - Nicolas Boichat <drinkcat@chromium.org> 11 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 12 11 13 12 description: | 14 13 The PS8640 is a low power MIPI-to-eDP video format converter supporting
+1 -4
Documentation/devicetree/bindings/display/panel/abt,y030xx067a.yaml
··· 6 6 7 7 title: Asia Better Technology 3.0" (320x480 pixels) 24-bit IPS LCD panel 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Paul Cercueil <paul@crapouillou.net> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible:
+1 -3
Documentation/devicetree/bindings/display/panel/ilitek,ili9322.yaml
··· 15 15 960 TFT source driver pins and 240 TFT gate driver pins, VCOM, VCOML and 16 16 VCOMH outputs. 17 17 18 - The panel must obey the rules for a SPI slave device as specified in 19 - spi/spi-controller.yaml 20 - 21 18 allOf: 22 19 - $ref: panel-common.yaml# 20 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 23 21 24 22 properties: 25 23 compatible:
+1 -4
Documentation/devicetree/bindings/display/panel/innolux,ej030na.yaml
··· 6 6 7 7 title: Innolux EJ030NA 3.0" (320x480 pixels) 24-bit TFT LCD panel 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Paul Cercueil <paul@crapouillou.net> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible:
+1 -4
Documentation/devicetree/bindings/display/panel/kingdisplay,kd035g6-54nt.yaml
··· 6 6 7 7 title: King Display KD035G6-54NT 3.5" (320x240 pixels) 24-bit TFT LCD panel 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Paul Cercueil <paul@crapouillou.net> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible:
+1 -4
Documentation/devicetree/bindings/display/panel/lgphilips,lb035q02.yaml
··· 6 6 7 7 title: LG.Philips LB035Q02 Panel 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Tomi Valkeinen <tomi.valkeinen@ti.com> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible:
+1 -6
Documentation/devicetree/bindings/display/panel/samsung,ld9040.yaml
··· 6 6 7 7 title: Samsung LD9040 AMOLED LCD parallel RGB panel with SPI control bus 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Andrzej Hajda <a.hajda@samsung.com> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible: ··· 60 63 61 64 lcd@0 { 62 65 compatible = "samsung,ld9040"; 63 - #address-cells = <1>; 64 - #size-cells = <0>; 65 66 66 67 reg = <0>; 67 68 vdd3-supply = <&ldo7_reg>;
+1
Documentation/devicetree/bindings/display/panel/samsung,s6e63m0.yaml
··· 12 12 allOf: 13 13 - $ref: panel-common.yaml# 14 14 - $ref: /schemas/leds/backlight/common.yaml# 15 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 15 16 16 17 properties: 17 18 compatible:
+1 -4
Documentation/devicetree/bindings/display/panel/sitronix,st7789v.yaml
··· 6 6 7 7 title: Sitronix ST7789V RGB panel with SPI control bus 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Maxime Ripard <mripard@kernel.org> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible:
+1 -4
Documentation/devicetree/bindings/display/panel/sony,acx565akm.yaml
··· 6 6 7 7 title: Sony ACX565AKM SDI Panel 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Tomi Valkeinen <tomi.valkeinen@ti.com> 15 11 16 12 allOf: 17 13 - $ref: panel-common.yaml# 14 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 18 15 19 16 properties: 20 17 compatible:
+1 -4
Documentation/devicetree/bindings/display/panel/tpo,td.yaml
··· 6 6 7 7 title: Toppoly TD Panels 8 8 9 - description: | 10 - The panel must obey the rules for a SPI slave device as specified in 11 - spi/spi-controller.yaml 12 - 13 9 maintainers: 14 10 - Marek Belisko <marek@goldelico.com> 15 11 - H. Nikolaus Schaller <hns@goldelico.com> 16 12 17 13 allOf: 18 14 - $ref: panel-common.yaml# 15 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 19 16 20 17 properties: 21 18 compatible:
-8
Documentation/devicetree/bindings/display/rockchip/rockchip,rk3066-hdmi.yaml
··· 26 26 clock-names: 27 27 const: hclk 28 28 29 - pinctrl-0: 30 - maxItems: 2 31 - 32 - pinctrl-names: 33 - const: default 34 - description: 35 - Switch the iomux for the HPD/I2C pins to HDMI function. 36 - 37 29 power-domains: 38 30 maxItems: 1 39 31
-1
Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.yaml
··· 8 8 9 9 maintainers: 10 10 - Benson Leung <bleung@chromium.org> 11 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 12 11 13 12 description: | 14 13 On ChromeOS systems with USB Type C ports, the ChromeOS Embedded Controller is
-1
Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml
··· 10 10 maintainers: 11 11 - Doug Anderson <dianders@chromium.org> 12 12 - Benson Leung <bleung@chromium.org> 13 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 14 13 15 14 description: | 16 15 On some ChromeOS board designs we've got a connection to the EC
-1
Documentation/devicetree/bindings/iio/proximity/google,cros-ec-mkbp-proximity.yaml
··· 10 10 maintainers: 11 11 - Stephen Boyd <swboyd@chromium.org> 12 12 - Benson Leung <bleung@chromium.org> 13 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 14 13 15 14 description: | 16 15 Google's ChromeOS EC sometimes has the ability to detect user proximity.
-1
Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml
··· 10 10 maintainers: 11 11 - Simon Glass <sjg@chromium.org> 12 12 - Benson Leung <bleung@chromium.org> 13 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 14 13 15 14 description: | 16 15 Google's ChromeOS EC Keyboard is a simple matrix keyboard
-6
Documentation/devicetree/bindings/input/gpio-keys.yaml
··· 88 88 which can be disabled to suppress events from the button. 89 89 type: boolean 90 90 91 - pinctrl-0: 92 - maxItems: 1 93 - 94 - pinctrl-names: 95 - maxItems: 1 96 - 97 91 required: 98 92 - linux,code 99 93
+5 -7
Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml
··· 81 81 data-lanes: 82 82 description: 83 83 Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data lines. 84 + minItems: 1 84 85 items: 85 - minItems: 1 86 - maxItems: 4 87 - items: 88 - - const: 1 89 - - const: 2 90 - - const: 3 91 - - const: 4 86 + - const: 1 87 + - const: 2 88 + - const: 3 89 + - const: 4 92 90 93 91 required: 94 92 - data-lanes
+5 -7
Documentation/devicetree/bindings/media/nxp,imx8mq-mipi-csi2.yaml
··· 87 87 88 88 properties: 89 89 data-lanes: 90 + minItems: 1 90 91 items: 91 - minItems: 1 92 - maxItems: 4 93 - items: 94 - - const: 1 95 - - const: 2 96 - - const: 3 97 - - const: 4 92 + - const: 1 93 + - const: 2 94 + - const: 3 95 + - const: 4 98 96 99 97 required: 100 98 - data-lanes
+1 -2
Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
··· 245 245 246 246 interrupt-controller; 247 247 #interrupt-cells = <2>; 248 - interrupts = <&host_irq1>; 249 - interrupt-parent = <&gic>; 248 + interrupts = <4 1 0>; 250 249 251 250 gpio-controller; 252 251 #gpio-cells = <2>;
-1
Documentation/devicetree/bindings/mfd/google,cros-ec.yaml
··· 8 8 9 9 maintainers: 10 10 - Benson Leung <bleung@chromium.org> 11 - - Enric Balletbo i Serra <enric.balletbo@collabora.com> 12 11 - Guenter Roeck <groeck@chromium.org> 13 12 14 13 description:
+5 -1
Documentation/devicetree/bindings/mmc/arm,pl18x.yaml
··· 185 185 clock-names = "mclk", "apb_pclk"; 186 186 }; 187 187 188 + - | 189 + #include <dt-bindings/interrupt-controller/irq.h> 190 + 188 191 mmc@80126000 { 189 192 compatible = "arm,pl18x", "arm,primecell"; 190 193 reg = <0x80126000 0x1000>; ··· 209 206 vqmmc-supply = <&vmmci>; 210 207 }; 211 208 209 + - | 212 210 mmc@101f6000 { 213 211 compatible = "arm,pl18x", "arm,primecell"; 214 212 reg = <0x101f6000 0x1000>; 215 213 clocks = <&sdiclk>, <&pclksdi>; 216 214 clock-names = "mclk", "apb_pclk"; 217 - interrupt-parent = <&vica>; 218 215 interrupts = <22>; 219 216 max-frequency = <400000>; 220 217 bus-width = <4>; ··· 229 226 vmmc-supply = <&vmmc_regulator>; 230 227 }; 231 228 229 + - | 232 230 mmc@52007000 { 233 231 compatible = "arm,pl18x", "arm,primecell"; 234 232 arm,primecell-periphid = <0x10153180>;
+25 -27
Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
··· 76 76 M_CAN user manual for details. 77 77 $ref: /schemas/types.yaml#/definitions/int32-array 78 78 items: 79 - items: 80 - - description: The 'offset' is an address offset of the Message RAM where 81 - the following elements start from. This is usually set to 0x0 if 82 - you're using a private Message RAM. 83 - default: 0 84 - - description: 11-bit Filter 0-128 elements / 0-128 words 85 - minimum: 0 86 - maximum: 128 87 - - description: 29-bit Filter 0-64 elements / 0-128 words 88 - minimum: 0 89 - maximum: 64 90 - - description: Rx FIFO 0 0-64 elements / 0-1152 words 91 - minimum: 0 92 - maximum: 64 93 - - description: Rx FIFO 1 0-64 elements / 0-1152 words 94 - minimum: 0 95 - maximum: 64 96 - - description: Rx Buffers 0-64 elements / 0-1152 words 97 - minimum: 0 98 - maximum: 64 99 - - description: Tx Event FIFO 0-32 elements / 0-64 words 100 - minimum: 0 101 - maximum: 32 102 - - description: Tx Buffers 0-32 elements / 0-576 words 103 - minimum: 0 104 - maximum: 32 105 - maxItems: 1 79 + - description: The 'offset' is an address offset of the Message RAM where 80 + the following elements start from. This is usually set to 0x0 if 81 + you're using a private Message RAM. 82 + default: 0 83 + - description: 11-bit Filter 0-128 elements / 0-128 words 84 + minimum: 0 85 + maximum: 128 86 + - description: 29-bit Filter 0-64 elements / 0-128 words 87 + minimum: 0 88 + maximum: 64 89 + - description: Rx FIFO 0 0-64 elements / 0-1152 words 90 + minimum: 0 91 + maximum: 64 92 + - description: Rx FIFO 1 0-64 elements / 0-1152 words 93 + minimum: 0 94 + maximum: 64 95 + - description: Rx Buffers 0-64 elements / 0-1152 words 96 + minimum: 0 97 + maximum: 64 98 + - description: Tx Event FIFO 0-32 elements / 0-64 words 99 + minimum: 0 100 + maximum: 32 101 + - description: Tx Buffers 0-32 elements / 0-576 words 102 + minimum: 0 103 + maximum: 32 106 104 107 105 power-domains: 108 106 description:
+23 -28
Documentation/devicetree/bindings/net/ethernet-controller.yaml
··· 17 17 description: 18 18 Specifies the MAC address that was assigned to the network device. 19 19 $ref: /schemas/types.yaml#/definitions/uint8-array 20 - items: 21 - - minItems: 6 22 - maxItems: 6 20 + minItems: 6 21 + maxItems: 6 23 22 24 23 mac-address: 25 24 description: ··· 27 28 to the device by the boot program is different from the 28 29 local-mac-address property. 29 30 $ref: /schemas/types.yaml#/definitions/uint8-array 30 - items: 31 - - minItems: 6 32 - maxItems: 6 31 + minItems: 6 32 + maxItems: 6 33 33 34 34 max-frame-size: 35 35 $ref: /schemas/types.yaml#/definitions/uint32 ··· 162 164 type: array 163 165 then: 164 166 deprecated: true 165 - minItems: 1 166 - maxItems: 1 167 167 items: 168 - items: 169 - - minimum: 0 170 - maximum: 31 171 - description: 172 - Emulated PHY ID, choose any but unique to the all 173 - specified fixed-links 168 + - minimum: 0 169 + maximum: 31 170 + description: 171 + Emulated PHY ID, choose any but unique to the all 172 + specified fixed-links 174 173 175 - - enum: [0, 1] 176 - description: 177 - Duplex configuration. 0 for half duplex or 1 for 178 - full duplex 174 + - enum: [0, 1] 175 + description: 176 + Duplex configuration. 0 for half duplex or 1 for 177 + full duplex 179 178 180 - - enum: [10, 100, 1000, 2500, 10000] 181 - description: 182 - Link speed in Mbits/sec. 179 + - enum: [10, 100, 1000, 2500, 10000] 180 + description: 181 + Link speed in Mbits/sec. 183 182 184 - - enum: [0, 1] 185 - description: 186 - Pause configuration. 0 for no pause, 1 for pause 183 + - enum: [0, 1] 184 + description: 185 + Pause configuration. 0 for no pause, 1 for pause 187 186 188 - - enum: [0, 1] 189 - description: 190 - Asymmetric pause configuration. 0 for no asymmetric 191 - pause, 1 for asymmetric pause 187 + - enum: [0, 1] 188 + description: 189 + Asymmetric pause configuration. 0 for no asymmetric 190 + pause, 1 for asymmetric pause 192 191 193 192 194 193 - if:
+8 -9
Documentation/devicetree/bindings/nvmem/nvmem.yaml
··· 50 50 Offset and size in bytes within the storage device. 51 51 52 52 bits: 53 - maxItems: 1 53 + $ref: /schemas/types.yaml#/definitions/uint32-array 54 54 items: 55 - items: 56 - - minimum: 0 57 - maximum: 7 58 - description: 59 - Offset in bit within the address range specified by reg. 60 - - minimum: 1 61 - description: 62 - Size in bit within the address range specified by reg. 55 + - minimum: 0 56 + maximum: 7 57 + description: 58 + Offset in bit within the address range specified by reg. 59 + - minimum: 1 60 + description: 61 + Size in bit within the address range specified by reg. 63 62 64 63 required: 65 64 - reg
-9
Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.yaml
··· 51 51 appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3]. 52 52 maxItems: 1 53 53 54 - pinctrl-0: 55 - description: 56 - A phandle to the default pinctrl state. 57 - 58 - pinctrl-names: 59 - description: 60 - A pinctrl state named "default" must be defined. 61 - const: default 62 - 63 54 pin-settings: 64 55 type: object 65 56 patternProperties:
-10
Documentation/devicetree/bindings/pinctrl/cirrus,madera.yaml
··· 30 30 Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 31 31 32 32 properties: 33 - pinctrl-0: 34 - description: 35 - A phandle to the node containing the subnodes containing default 36 - configurations. 37 - 38 - pinctrl-names: 39 - description: 40 - A pinctrl state named "default" must be defined. 41 - const: default 42 - 43 33 pin-settings: 44 34 description: 45 35 One subnode is required to contain the default settings. It
+2 -2
Documentation/devicetree/bindings/power/reset/gpio-restart.yaml
··· 43 43 priority: 44 44 $ref: /schemas/types.yaml#/definitions/uint32 45 45 description: | 46 - A priority ranging from 0 to 255 (default 128) according to the following guidelines: 46 + A priority ranging from 0 to 255 (default 129) according to the following guidelines: 47 47 48 48 0: Restart handler of last resort, with limited restart capabilities. 49 49 128: Default restart handler; use if no other restart handler is expected to be available, ··· 51 51 255: Highest priority restart handler, will preempt all other restart handlers. 52 52 minimum: 0 53 53 maximum: 255 54 - default: 128 54 + default: 129 55 55 56 56 active-delay: 57 57 $ref: /schemas/types.yaml#/definitions/uint32
+1
Documentation/devicetree/bindings/rtc/st,stm32-rtc.yaml
··· 127 127 st,syscfg = <&pwrcfg 0x00 0x100>; 128 128 }; 129 129 130 + - | 130 131 #include <dt-bindings/interrupt-controller/arm-gic.h> 131 132 #include <dt-bindings/clock/stm32mp1-clks.h> 132 133 rtc@5c004000 {
-6
Documentation/devicetree/bindings/sound/samsung-i2s.yaml
··· 110 110 Internal DMA register base address of the audio 111 111 subsystem (used in secondary sound source). 112 112 113 - pinctrl-0: 114 - description: Should specify pin control groups used for this controller. 115 - 116 - pinctrl-names: 117 - const: default 118 - 119 113 power-domains: 120 114 maxItems: 1 121 115
+4 -4
Documentation/devicetree/bindings/trivial-devices.yaml
··· 31 31 - enum: 32 32 # SMBus/I2C Digital Temperature Sensor in 6-Pin SOT with SMBus Alert and Over Temperature Pin 33 33 - ad,ad7414 34 - # ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems 34 + # ADM9240: Complete System Hardware Monitor for uProcessor-Based Systems 35 35 - ad,adm9240 36 36 # AD5110 - Nonvolatile Digital Potentiometer 37 37 - adi,ad5110 ··· 43 43 - adi,adp5589 44 44 # AMS iAQ-Core VOC Sensor 45 45 - ams,iaq-core 46 - # i2c serial eeprom (24cxx) 46 + # i2c serial eeprom (24cxx) 47 47 - at,24c08 48 48 # i2c trusted platform module (TPM) 49 49 - atmel,at97sc3204t ··· 303 303 - skyworks,sky81452 304 304 # Socionext SynQuacer TPM MMIO module 305 305 - socionext,synquacer-tpm-mmio 306 - # i2c serial eeprom (24cxx) 307 - - sparkfun,qwiic-joystick 308 306 # SparkFun Qwiic Joystick (COM-15168) with i2c interface 307 + - sparkfun,qwiic-joystick 308 + # i2c serial eeprom (24cxx) 309 309 - st,24c256 310 310 # Ambient Light Sensor with SMBUS/Two Wire Serial Interface 311 311 - taos,tsl2550
+10
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 25 25 # Keep list in alphabetical order. 26 26 "^70mai,.*": 27 27 description: 70mai Co., Ltd. 28 + "^8dev,.*": 29 + description: 8devices, UAB 28 30 "^abb,.*": 29 31 description: ABB 30 32 "^abilis,.*": ··· 443 441 description: Freescale Semiconductor 444 442 "^fujitsu,.*": 445 443 description: Fujitsu Ltd. 444 + "^fxtec,.*": 445 + description: FX Technology Ltd. 446 446 "^gardena,.*": 447 447 description: GARDENA GmbH 448 448 "^gateworks,.*": ··· 519 515 description: HannStar Display Co. 520 516 "^holtek,.*": 521 517 description: Holtek Semiconductor, Inc. 518 + "^huawei,.*": 519 + description: Huawei Technologies Co., Ltd. 522 520 "^hugsun,.*": 523 521 description: Shenzhen Hugsun Technology Co. Ltd. 524 522 "^hwacom,.*": ··· 1213 1207 description: THine Electronics, Inc. 1214 1208 "^thingyjp,.*": 1215 1209 description: thingy.jp 1210 + "^thundercomm,.*": 1211 + description: Thundercomm Technology Co., Ltd. 1216 1212 "^ti,.*": 1217 1213 description: Texas Instruments 1218 1214 "^tianma,.*": ··· 1342 1334 description: Wiligear, Ltd. 1343 1335 "^winbond,.*": 1344 1336 description: Winbond Electronics corp. 1337 + "^wingtech,.*": 1338 + description: Wingtech Technology Co., Ltd. 1345 1339 "^winlink,.*": 1346 1340 description: WinLink Co., Ltd 1347 1341 "^winstar,.*":
+9 -122
drivers/of/base.c
··· 1420 1420 return count; 1421 1421 } 1422 1422 1423 - static int __of_parse_phandle_with_args(const struct device_node *np, 1424 - const char *list_name, 1425 - const char *cells_name, 1426 - int cell_count, int index, 1427 - struct of_phandle_args *out_args) 1423 + int __of_parse_phandle_with_args(const struct device_node *np, 1424 + const char *list_name, 1425 + const char *cells_name, 1426 + int cell_count, int index, 1427 + struct of_phandle_args *out_args) 1428 1428 { 1429 1429 struct of_phandle_iterator it; 1430 1430 int rc, cur_index = 0; 1431 + 1432 + if (index < 0) 1433 + return -EINVAL; 1431 1434 1432 1435 /* Loop over the phandles until all the requested entry is found */ 1433 1436 of_for_each_phandle(&it, rc, np, list_name, cells_name, cell_count) { ··· 1474 1471 of_node_put(it.node); 1475 1472 return rc; 1476 1473 } 1477 - 1478 - /** 1479 - * of_parse_phandle - Resolve a phandle property to a device_node pointer 1480 - * @np: Pointer to device node holding phandle property 1481 - * @phandle_name: Name of property holding a phandle value 1482 - * @index: For properties holding a table of phandles, this is the index into 1483 - * the table 1484 - * 1485 - * Return: The device_node pointer with refcount incremented. Use 1486 - * of_node_put() on it when done. 1487 - */ 1488 - struct device_node *of_parse_phandle(const struct device_node *np, 1489 - const char *phandle_name, int index) 1490 - { 1491 - struct of_phandle_args args; 1492 - 1493 - if (index < 0) 1494 - return NULL; 1495 - 1496 - if (__of_parse_phandle_with_args(np, phandle_name, NULL, 0, 1497 - index, &args)) 1498 - return NULL; 1499 - 1500 - return args.np; 1501 - } 1502 - EXPORT_SYMBOL(of_parse_phandle); 1503 - 1504 - /** 1505 - * of_parse_phandle_with_args() - Find a node pointed by phandle in a list 1506 - * @np: pointer to a device tree node containing a list 1507 - * @list_name: property name that contains a list 1508 - * @cells_name: property name that specifies phandles' arguments count 1509 - * @index: index of a phandle to parse out 1510 - * @out_args: optional pointer to output arguments structure (will be filled) 1511 - * 1512 - * This function is useful to parse lists of phandles and their arguments. 1513 - * Returns 0 on success and fills out_args, on error returns appropriate 1514 - * errno value. 1515 - * 1516 - * Caller is responsible to call of_node_put() on the returned out_args->np 1517 - * pointer. 1518 - * 1519 - * Example:: 1520 - * 1521 - * phandle1: node1 { 1522 - * #list-cells = <2>; 1523 - * }; 1524 - * 1525 - * phandle2: node2 { 1526 - * #list-cells = <1>; 1527 - * }; 1528 - * 1529 - * node3 { 1530 - * list = <&phandle1 1 2 &phandle2 3>; 1531 - * }; 1532 - * 1533 - * To get a device_node of the ``node2`` node you may call this: 1534 - * of_parse_phandle_with_args(node3, "list", "#list-cells", 1, &args); 1535 - */ 1536 - int of_parse_phandle_with_args(const struct device_node *np, const char *list_name, 1537 - const char *cells_name, int index, 1538 - struct of_phandle_args *out_args) 1539 - { 1540 - int cell_count = -1; 1541 - 1542 - if (index < 0) 1543 - return -EINVAL; 1544 - 1545 - /* If cells_name is NULL we assume a cell count of 0 */ 1546 - if (!cells_name) 1547 - cell_count = 0; 1548 - 1549 - return __of_parse_phandle_with_args(np, list_name, cells_name, 1550 - cell_count, index, out_args); 1551 - } 1552 - EXPORT_SYMBOL(of_parse_phandle_with_args); 1474 + EXPORT_SYMBOL(__of_parse_phandle_with_args); 1553 1475 1554 1476 /** 1555 1477 * of_parse_phandle_with_args_map() - Find a node pointed by phandle in a list and remap it ··· 1659 1731 return ret; 1660 1732 } 1661 1733 EXPORT_SYMBOL(of_parse_phandle_with_args_map); 1662 - 1663 - /** 1664 - * of_parse_phandle_with_fixed_args() - Find a node pointed by phandle in a list 1665 - * @np: pointer to a device tree node containing a list 1666 - * @list_name: property name that contains a list 1667 - * @cell_count: number of argument cells following the phandle 1668 - * @index: index of a phandle to parse out 1669 - * @out_args: optional pointer to output arguments structure (will be filled) 1670 - * 1671 - * This function is useful to parse lists of phandles and their arguments. 1672 - * Returns 0 on success and fills out_args, on error returns appropriate 1673 - * errno value. 1674 - * 1675 - * Caller is responsible to call of_node_put() on the returned out_args->np 1676 - * pointer. 1677 - * 1678 - * Example:: 1679 - * 1680 - * phandle1: node1 { 1681 - * }; 1682 - * 1683 - * phandle2: node2 { 1684 - * }; 1685 - * 1686 - * node3 { 1687 - * list = <&phandle1 0 2 &phandle2 2 3>; 1688 - * }; 1689 - * 1690 - * To get a device_node of the ``node2`` node you may call this: 1691 - * of_parse_phandle_with_fixed_args(node3, "list", 2, 1, &args); 1692 - */ 1693 - int of_parse_phandle_with_fixed_args(const struct device_node *np, 1694 - const char *list_name, int cell_count, 1695 - int index, struct of_phandle_args *out_args) 1696 - { 1697 - if (index < 0) 1698 - return -EINVAL; 1699 - return __of_parse_phandle_with_args(np, list_name, NULL, cell_count, 1700 - index, out_args); 1701 - } 1702 - EXPORT_SYMBOL(of_parse_phandle_with_fixed_args); 1703 1734 1704 1735 /** 1705 1736 * of_count_phandle_with_args() - Find the number of phandles references in a property
+1 -1
drivers/of/device.c
··· 28 28 const struct of_device_id *of_match_device(const struct of_device_id *matches, 29 29 const struct device *dev) 30 30 { 31 - if ((!matches) || (!dev->of_node)) 31 + if (!matches || !dev->of_node || dev->of_node_reused) 32 32 return NULL; 33 33 return of_match_node(matches, dev->of_node); 34 34 }
+244 -178
include/linux/of.h
··· 364 364 const struct of_device_id *matches, const struct device_node *node); 365 365 extern int of_modalias_node(struct device_node *node, char *modalias, int len); 366 366 extern void of_print_phandle_args(const char *msg, const struct of_phandle_args *args); 367 - extern struct device_node *of_parse_phandle(const struct device_node *np, 368 - const char *phandle_name, 369 - int index); 370 - extern int of_parse_phandle_with_args(const struct device_node *np, 371 - const char *list_name, const char *cells_name, int index, 372 - struct of_phandle_args *out_args); 367 + extern int __of_parse_phandle_with_args(const struct device_node *np, 368 + const char *list_name, const char *cells_name, int cell_count, 369 + int index, struct of_phandle_args *out_args); 373 370 extern int of_parse_phandle_with_args_map(const struct device_node *np, 374 371 const char *list_name, const char *stem_name, int index, 375 - struct of_phandle_args *out_args); 376 - extern int of_parse_phandle_with_fixed_args(const struct device_node *np, 377 - const char *list_name, int cells_count, int index, 378 372 struct of_phandle_args *out_args); 379 373 extern int of_count_phandle_with_args(const struct device_node *np, 380 374 const char *list_name, const char *cells_name); ··· 409 415 extern int of_detach_node(struct device_node *); 410 416 411 417 #define of_match_ptr(_ptr) (_ptr) 412 - 413 - /** 414 - * of_property_read_u8_array - Find and read an array of u8 from a property. 415 - * 416 - * @np: device node from which the property value is to be read. 417 - * @propname: name of the property to be searched. 418 - * @out_values: pointer to return value, modified only if return value is 0. 419 - * @sz: number of array elements to read 420 - * 421 - * Search for a property in a device node and read 8-bit value(s) from 422 - * it. 423 - * 424 - * dts entry of array should be like: 425 - * ``property = /bits/ 8 <0x50 0x60 0x70>;`` 426 - * 427 - * Return: 0 on success, -EINVAL if the property does not exist, 428 - * -ENODATA if property does not have a value, and -EOVERFLOW if the 429 - * property data isn't large enough. 430 - * 431 - * The out_values is modified only if a valid u8 value can be decoded. 432 - */ 433 - static inline int of_property_read_u8_array(const struct device_node *np, 434 - const char *propname, 435 - u8 *out_values, size_t sz) 436 - { 437 - int ret = of_property_read_variable_u8_array(np, propname, out_values, 438 - sz, 0); 439 - if (ret >= 0) 440 - return 0; 441 - else 442 - return ret; 443 - } 444 - 445 - /** 446 - * of_property_read_u16_array - Find and read an array of u16 from a property. 447 - * 448 - * @np: device node from which the property value is to be read. 449 - * @propname: name of the property to be searched. 450 - * @out_values: pointer to return value, modified only if return value is 0. 451 - * @sz: number of array elements to read 452 - * 453 - * Search for a property in a device node and read 16-bit value(s) from 454 - * it. 455 - * 456 - * dts entry of array should be like: 457 - * ``property = /bits/ 16 <0x5000 0x6000 0x7000>;`` 458 - * 459 - * Return: 0 on success, -EINVAL if the property does not exist, 460 - * -ENODATA if property does not have a value, and -EOVERFLOW if the 461 - * property data isn't large enough. 462 - * 463 - * The out_values is modified only if a valid u16 value can be decoded. 464 - */ 465 - static inline int of_property_read_u16_array(const struct device_node *np, 466 - const char *propname, 467 - u16 *out_values, size_t sz) 468 - { 469 - int ret = of_property_read_variable_u16_array(np, propname, out_values, 470 - sz, 0); 471 - if (ret >= 0) 472 - return 0; 473 - else 474 - return ret; 475 - } 476 - 477 - /** 478 - * of_property_read_u32_array - Find and read an array of 32 bit integers 479 - * from a property. 480 - * 481 - * @np: device node from which the property value is to be read. 482 - * @propname: name of the property to be searched. 483 - * @out_values: pointer to return value, modified only if return value is 0. 484 - * @sz: number of array elements to read 485 - * 486 - * Search for a property in a device node and read 32-bit value(s) from 487 - * it. 488 - * 489 - * Return: 0 on success, -EINVAL if the property does not exist, 490 - * -ENODATA if property does not have a value, and -EOVERFLOW if the 491 - * property data isn't large enough. 492 - * 493 - * The out_values is modified only if a valid u32 value can be decoded. 494 - */ 495 - static inline int of_property_read_u32_array(const struct device_node *np, 496 - const char *propname, 497 - u32 *out_values, size_t sz) 498 - { 499 - int ret = of_property_read_variable_u32_array(np, propname, out_values, 500 - sz, 0); 501 - if (ret >= 0) 502 - return 0; 503 - else 504 - return ret; 505 - } 506 - 507 - /** 508 - * of_property_read_u64_array - Find and read an array of 64 bit integers 509 - * from a property. 510 - * 511 - * @np: device node from which the property value is to be read. 512 - * @propname: name of the property to be searched. 513 - * @out_values: pointer to return value, modified only if return value is 0. 514 - * @sz: number of array elements to read 515 - * 516 - * Search for a property in a device node and read 64-bit value(s) from 517 - * it. 518 - * 519 - * Return: 0 on success, -EINVAL if the property does not exist, 520 - * -ENODATA if property does not have a value, and -EOVERFLOW if the 521 - * property data isn't large enough. 522 - * 523 - * The out_values is modified only if a valid u64 value can be decoded. 524 - */ 525 - static inline int of_property_read_u64_array(const struct device_node *np, 526 - const char *propname, 527 - u64 *out_values, size_t sz) 528 - { 529 - int ret = of_property_read_variable_u64_array(np, propname, out_values, 530 - sz, 0); 531 - if (ret >= 0) 532 - return 0; 533 - else 534 - return ret; 535 - } 536 418 537 419 /* 538 420 * struct property *prop; ··· 604 734 return -ENOSYS; 605 735 } 606 736 607 - static inline int of_property_read_u8_array(const struct device_node *np, 608 - const char *propname, u8 *out_values, size_t sz) 609 - { 610 - return -ENOSYS; 611 - } 612 - 613 - static inline int of_property_read_u16_array(const struct device_node *np, 614 - const char *propname, u16 *out_values, size_t sz) 615 - { 616 - return -ENOSYS; 617 - } 618 - 619 - static inline int of_property_read_u32_array(const struct device_node *np, 620 - const char *propname, 621 - u32 *out_values, size_t sz) 622 - { 623 - return -ENOSYS; 624 - } 625 - 626 - static inline int of_property_read_u64_array(const struct device_node *np, 627 - const char *propname, 628 - u64 *out_values, size_t sz) 629 - { 630 - return -ENOSYS; 631 - } 632 - 633 737 static inline int of_property_read_u32_index(const struct device_node *np, 634 738 const char *propname, u32 index, u32 *out_value) 635 739 { ··· 709 865 return -ENOSYS; 710 866 } 711 867 712 - static inline struct device_node *of_parse_phandle(const struct device_node *np, 713 - const char *phandle_name, 714 - int index) 715 - { 716 - return NULL; 717 - } 718 - 719 - static inline int of_parse_phandle_with_args(const struct device_node *np, 720 - const char *list_name, 721 - const char *cells_name, 722 - int index, 723 - struct of_phandle_args *out_args) 868 + static inline int __of_parse_phandle_with_args(const struct device_node *np, 869 + const char *list_name, 870 + const char *cells_name, 871 + int cell_count, 872 + int index, 873 + struct of_phandle_args *out_args) 724 874 { 725 875 return -ENOSYS; 726 876 } ··· 724 886 const char *stem_name, 725 887 int index, 726 888 struct of_phandle_args *out_args) 727 - { 728 - return -ENOSYS; 729 - } 730 - 731 - static inline int of_parse_phandle_with_fixed_args(const struct device_node *np, 732 - const char *list_name, int cells_count, int index, 733 - struct of_phandle_args *out_args) 734 889 { 735 890 return -ENOSYS; 736 891 } ··· 909 1078 } 910 1079 911 1080 /** 1081 + * of_parse_phandle - Resolve a phandle property to a device_node pointer 1082 + * @np: Pointer to device node holding phandle property 1083 + * @phandle_name: Name of property holding a phandle value 1084 + * @index: For properties holding a table of phandles, this is the index into 1085 + * the table 1086 + * 1087 + * Return: The device_node pointer with refcount incremented. Use 1088 + * of_node_put() on it when done. 1089 + */ 1090 + static inline struct device_node *of_parse_phandle(const struct device_node *np, 1091 + const char *phandle_name, 1092 + int index) 1093 + { 1094 + struct of_phandle_args args; 1095 + 1096 + if (__of_parse_phandle_with_args(np, phandle_name, NULL, 0, 1097 + index, &args)) 1098 + return NULL; 1099 + 1100 + return args.np; 1101 + } 1102 + 1103 + /** 1104 + * of_parse_phandle_with_args() - Find a node pointed by phandle in a list 1105 + * @np: pointer to a device tree node containing a list 1106 + * @list_name: property name that contains a list 1107 + * @cells_name: property name that specifies phandles' arguments count 1108 + * @index: index of a phandle to parse out 1109 + * @out_args: optional pointer to output arguments structure (will be filled) 1110 + * 1111 + * This function is useful to parse lists of phandles and their arguments. 1112 + * Returns 0 on success and fills out_args, on error returns appropriate 1113 + * errno value. 1114 + * 1115 + * Caller is responsible to call of_node_put() on the returned out_args->np 1116 + * pointer. 1117 + * 1118 + * Example:: 1119 + * 1120 + * phandle1: node1 { 1121 + * #list-cells = <2>; 1122 + * }; 1123 + * 1124 + * phandle2: node2 { 1125 + * #list-cells = <1>; 1126 + * }; 1127 + * 1128 + * node3 { 1129 + * list = <&phandle1 1 2 &phandle2 3>; 1130 + * }; 1131 + * 1132 + * To get a device_node of the ``node2`` node you may call this: 1133 + * of_parse_phandle_with_args(node3, "list", "#list-cells", 1, &args); 1134 + */ 1135 + static inline int of_parse_phandle_with_args(const struct device_node *np, 1136 + const char *list_name, 1137 + const char *cells_name, 1138 + int index, 1139 + struct of_phandle_args *out_args) 1140 + { 1141 + int cell_count = -1; 1142 + 1143 + /* If cells_name is NULL we assume a cell count of 0 */ 1144 + if (!cells_name) 1145 + cell_count = 0; 1146 + 1147 + return __of_parse_phandle_with_args(np, list_name, cells_name, 1148 + cell_count, index, out_args); 1149 + } 1150 + 1151 + /** 1152 + * of_parse_phandle_with_fixed_args() - Find a node pointed by phandle in a list 1153 + * @np: pointer to a device tree node containing a list 1154 + * @list_name: property name that contains a list 1155 + * @cell_count: number of argument cells following the phandle 1156 + * @index: index of a phandle to parse out 1157 + * @out_args: optional pointer to output arguments structure (will be filled) 1158 + * 1159 + * This function is useful to parse lists of phandles and their arguments. 1160 + * Returns 0 on success and fills out_args, on error returns appropriate 1161 + * errno value. 1162 + * 1163 + * Caller is responsible to call of_node_put() on the returned out_args->np 1164 + * pointer. 1165 + * 1166 + * Example:: 1167 + * 1168 + * phandle1: node1 { 1169 + * }; 1170 + * 1171 + * phandle2: node2 { 1172 + * }; 1173 + * 1174 + * node3 { 1175 + * list = <&phandle1 0 2 &phandle2 2 3>; 1176 + * }; 1177 + * 1178 + * To get a device_node of the ``node2`` node you may call this: 1179 + * of_parse_phandle_with_fixed_args(node3, "list", 2, 1, &args); 1180 + */ 1181 + static inline int of_parse_phandle_with_fixed_args(const struct device_node *np, 1182 + const char *list_name, 1183 + int cell_count, 1184 + int index, 1185 + struct of_phandle_args *out_args) 1186 + { 1187 + return __of_parse_phandle_with_args(np, list_name, NULL, cell_count, 1188 + index, out_args); 1189 + } 1190 + 1191 + /** 912 1192 * of_property_count_u8_elems - Count the number of u8 elements in a property 913 1193 * 914 1194 * @np: device node from which the property value is to be read. ··· 1176 1234 struct property *prop = of_find_property(np, propname, NULL); 1177 1235 1178 1236 return prop ? true : false; 1237 + } 1238 + 1239 + /** 1240 + * of_property_read_u8_array - Find and read an array of u8 from a property. 1241 + * 1242 + * @np: device node from which the property value is to be read. 1243 + * @propname: name of the property to be searched. 1244 + * @out_values: pointer to return value, modified only if return value is 0. 1245 + * @sz: number of array elements to read 1246 + * 1247 + * Search for a property in a device node and read 8-bit value(s) from 1248 + * it. 1249 + * 1250 + * dts entry of array should be like: 1251 + * ``property = /bits/ 8 <0x50 0x60 0x70>;`` 1252 + * 1253 + * Return: 0 on success, -EINVAL if the property does not exist, 1254 + * -ENODATA if property does not have a value, and -EOVERFLOW if the 1255 + * property data isn't large enough. 1256 + * 1257 + * The out_values is modified only if a valid u8 value can be decoded. 1258 + */ 1259 + static inline int of_property_read_u8_array(const struct device_node *np, 1260 + const char *propname, 1261 + u8 *out_values, size_t sz) 1262 + { 1263 + int ret = of_property_read_variable_u8_array(np, propname, out_values, 1264 + sz, 0); 1265 + if (ret >= 0) 1266 + return 0; 1267 + else 1268 + return ret; 1269 + } 1270 + 1271 + /** 1272 + * of_property_read_u16_array - Find and read an array of u16 from a property. 1273 + * 1274 + * @np: device node from which the property value is to be read. 1275 + * @propname: name of the property to be searched. 1276 + * @out_values: pointer to return value, modified only if return value is 0. 1277 + * @sz: number of array elements to read 1278 + * 1279 + * Search for a property in a device node and read 16-bit value(s) from 1280 + * it. 1281 + * 1282 + * dts entry of array should be like: 1283 + * ``property = /bits/ 16 <0x5000 0x6000 0x7000>;`` 1284 + * 1285 + * Return: 0 on success, -EINVAL if the property does not exist, 1286 + * -ENODATA if property does not have a value, and -EOVERFLOW if the 1287 + * property data isn't large enough. 1288 + * 1289 + * The out_values is modified only if a valid u16 value can be decoded. 1290 + */ 1291 + static inline int of_property_read_u16_array(const struct device_node *np, 1292 + const char *propname, 1293 + u16 *out_values, size_t sz) 1294 + { 1295 + int ret = of_property_read_variable_u16_array(np, propname, out_values, 1296 + sz, 0); 1297 + if (ret >= 0) 1298 + return 0; 1299 + else 1300 + return ret; 1301 + } 1302 + 1303 + /** 1304 + * of_property_read_u32_array - Find and read an array of 32 bit integers 1305 + * from a property. 1306 + * 1307 + * @np: device node from which the property value is to be read. 1308 + * @propname: name of the property to be searched. 1309 + * @out_values: pointer to return value, modified only if return value is 0. 1310 + * @sz: number of array elements to read 1311 + * 1312 + * Search for a property in a device node and read 32-bit value(s) from 1313 + * it. 1314 + * 1315 + * Return: 0 on success, -EINVAL if the property does not exist, 1316 + * -ENODATA if property does not have a value, and -EOVERFLOW if the 1317 + * property data isn't large enough. 1318 + * 1319 + * The out_values is modified only if a valid u32 value can be decoded. 1320 + */ 1321 + static inline int of_property_read_u32_array(const struct device_node *np, 1322 + const char *propname, 1323 + u32 *out_values, size_t sz) 1324 + { 1325 + int ret = of_property_read_variable_u32_array(np, propname, out_values, 1326 + sz, 0); 1327 + if (ret >= 0) 1328 + return 0; 1329 + else 1330 + return ret; 1331 + } 1332 + 1333 + /** 1334 + * of_property_read_u64_array - Find and read an array of 64 bit integers 1335 + * from a property. 1336 + * 1337 + * @np: device node from which the property value is to be read. 1338 + * @propname: name of the property to be searched. 1339 + * @out_values: pointer to return value, modified only if return value is 0. 1340 + * @sz: number of array elements to read 1341 + * 1342 + * Search for a property in a device node and read 64-bit value(s) from 1343 + * it. 1344 + * 1345 + * Return: 0 on success, -EINVAL if the property does not exist, 1346 + * -ENODATA if property does not have a value, and -EOVERFLOW if the 1347 + * property data isn't large enough. 1348 + * 1349 + * The out_values is modified only if a valid u64 value can be decoded. 1350 + */ 1351 + static inline int of_property_read_u64_array(const struct device_node *np, 1352 + const char *propname, 1353 + u64 *out_values, size_t sz) 1354 + { 1355 + int ret = of_property_read_variable_u64_array(np, propname, out_values, 1356 + sz, 0); 1357 + if (ret >= 0) 1358 + return 0; 1359 + else 1360 + return ret; 1179 1361 } 1180 1362 1181 1363 static inline int of_property_read_u8(const struct device_node *np,
+2 -6
scripts/dtc/dtx_diff
··· 59 59 or '/include/' to be processed. 60 60 61 61 If DTx_1 and DTx_2 are in different architectures, then this script 62 - may not work since \${ARCH} is part of the include path. Two possible 63 - workarounds: 64 - 65 - `basename $0` \\ 66 - <(ARCH=arch_of_dtx_1 `basename $0` DTx_1) \\ 67 - <(ARCH=arch_of_dtx_2 `basename $0` DTx_2) 62 + may not work since \${ARCH} is part of the include path. The following 63 + workaround can be used: 68 64 69 65 `basename $0` ARCH=arch_of_dtx_1 DTx_1 >tmp_dtx_1.dts 70 66 `basename $0` ARCH=arch_of_dtx_2 DTx_2 >tmp_dtx_2.dts