- 26 Dec, 2017 40 commits
-
-
Stefan Agner authored
Specify CPU supply using the "cpu-supply" property instead of the invalid "arm-supply" property. Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Stefan Agner authored
All Colibri iMX7 SKUs use either single-die NAND or eMMC, hence NAND_CE1 is not used on the module and can be used as a GPIO by carrier boards. Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Stefan Agner authored
Use pull-ups instead of pull-downs for the pins which are already pulled-up externally. Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Stefan Agner authored
The Colibri pins PWM<A> and <D> are multiplexed on the module, make sure the secondary SoC pin is not active. Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Stefan Agner authored
The Colibri default which enables USB Host power is not necessarily tied to the OTG2 controller, some carrier board use the pin to control USB power for both controllers. Hence name the pinctrl group more generic. Also move the regulator to the generic eval-v3 device tree since the regulator is always on the carrier board. In the Colibri iMX7S case the regulator is just not used. This allows to reuse the regulator in a upcoming SKU Colibri iMX7D 1GB with eMMC. Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Marco Franchi authored
It is preferred to use the panel compatible string rather than passing the LCD timing in the device tree. So pass the "sii,43wvf1g" compatible string which describes the parallel LCD. Also, pass the 'backlight' property as described in Documentation/devicetree/bindings/display/panel/simple-panel.txt Signed-off-by: Marco Franchi <marco.franchi@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Marco Franchi authored
It is not recommended to place regulators inside "simple-bus", so move them out. The motivation for doing this is to make it easier to adding new regulators. Signed-off-by: Marco Franchi <marcofrk@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Marco Franchi authored
It is preferred to use the panel compatible string rather than passing the LCD timing in the device tree. So pass the "sii,43wvf1g" compatible string, which describes the parallel LCD. Also pass the 'backlight' property as described in Documentation/devicetree/bindings/display/panel/simple-panel.txt Signed-off-by: Marco Franchi <marcofrk@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Stefan Agner authored
All Toradex Carrier Boards use a st,m41t0 compatible RTC. Compared to a st,m41t00 this RTC has also an oscillator fail bit which allows to detect when the RTC lost track of time. Cc: Sanchayan Maity <maitysanchayan@gmail.com> Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Stefan Agner <stefan@agner.ch> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Esben Haabendal authored
This avoids the warning hw perfevents: no interrupt-affinity property for /pmu, guessing. Signed-off-by: Esben Haabendal <eha@deif.com> [RV: adapt commit log to the warning emitted in current mainline] Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Esben Haabendal authored
Add usb2 and usb3 labels to USB2 and USB3 controller device tree nodes, for easier modification in board dts files. Signed-off-by: Esben Haabendal <eha@deif.com> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Rasmus Villemoes authored
The LS1021A can be reset via the dcfg regmap in the same way as the arm64 layerscape SoCs, so add the corresponding DT node. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
The USB PHYs are supplied via MC13892 VUSB regulator rail, so properly describe this in the device tree. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
device_type = "pci" should be used for the SoC level PCI controller and it is already present at imx6qdl.dtsi. Remove it from the subnode in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6q-zii-rdu2.dtb: Warning (pci_bridge): Node /soc/pcie@1ffc000/pci@0 missing ranges for PCI bridge (or not a bridge) arch/arm/boot/dts/imx6q-zii-rdu2.dtb: Warning (pci_bridge): Node /soc/pcie@1ffc000/pci@0 missing bus-range for PCI bridge arch/arm/boot/dts/imx6q-zii-rdu2.dtb: Warning (unit_address_format): Failed prerequisite 'pci_bridge' arch/arm/boot/dts/imx6q-zii-rdu2.dtb: Warning (pci_device_reg): Failed prerequisite 'pci_bridge' arch/arm/boot/dts/imx6q-zii-rdu2.dtb: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge' Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
It is not recommended to place regulator nodes inside simple-bus, so move them out in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6ul-14x14-evk.dtb: Warning (simple_bus_reg): Node /regulators/sd1_regulator missing or empty reg/ranges property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Remove the unneeded unit address for the i2cmux nodes in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6q-nitrogen6_max.dtb: Warning (unit_address_vs_reg): Node /i2cmux@2 has a unit name, but no reg property arch/arm/boot/dts/imx6q-nitrogen6_max.dtb: Warning (unit_address_vs_reg): Node /i2cmux@3 has a unit name, but no reg property While at it, rename the i2cmux nodes and subnodes to make it clearer to which i2c controller the mux belongs to. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Remove the unneeded unit address for the port nodes in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6q-h100.dtb: Warning (unit_address_vs_reg): Node /soc/aips-bus@2100000/i2c@21a0000/tc358743@f/port@0 has a unit name, but no reg property arch/arm/boot/dts/imx6q-h100.dtb: Warning (unit_address_vs_reg): Node /soc/aips-bus@2100000/mipi@21dc000/port@0 has a unit name, but no reg property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
As described in Documentation/devicetree/bindings/input/touchscreen/stmpe.txt there is no 'reg' property under stmpe_touchscreen, so remove it to fix the following build warning with W=1: arch/arm/boot/dts/imx6dl-colibri-eval-v3.dtb: Warning (unit_address_vs_reg): Node /soc/aips-bus@2100000/i2c@21a4000/stmpe811@41/stmpe_touchscreen has a reg or ranges property, but no unit name Cc: Sanchayan Maity <maitysanchayan@gmail.com> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
As described in Documentation/devicetree/bindings/input/touchscreen/stmpe.txt there is no 'reg' property under stmpe_touchscreen, so remove it to fix the following build warning with W=1: arch/arm/boot/dts/imx6q-apalis-eval.dtb: Warning (unit_address_vs_reg): Node /soc/aips-bus@2100000/i2c@21a4000/stmpe811@41/stmpe_touchscreen has a reg or ranges property, but no unit name Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Move disp0 node from soc node to root node. disp0 node does not have any register properties and thus shouldn't be placed on the bus. This fixes the following build warnings with W=1: arch/arm/boot/dts/imx6dl-aristainetos_4.dtb: Warning (simple_bus_reg): Node /soc/disp0 missing or empty reg/ranges property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Heiko Schocher <hs@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
It is not recommended to place regulator nodes inside simple-bus, so move them out in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6dl-aristainetos_4.dtb: Warning (unit_address_vs_reg): Node /regulators/regulator@0 has a unit name, but no reg property arch/arm/boot/dts/imx6dl-aristainetos_4.dtb: Warning (unit_address_vs_reg): Node /regulators/regulator@1 has a unit name, but no reg property arch/arm/boot/dts/imx6dl-aristainetos_4.dtb: Warning (unit_address_vs_reg): Node /regulators/regulator@2 has a unit name, but no reg property arch/arm/boot/dts/imx6dl-aristainetos_4.dtb: Warning (unit_address_vs_reg): Node /regulators/regulator@3 has a unit name, but no reg property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Heiko Schocher <hs@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
It is not recommended to place regulator nodes inside simple-bus, so move them out in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6dl-apf6dev.dtb: Warning (simple_bus_reg): Node /regulators/3p3v missing or empty reg/ranges property arch/arm/boot/dts/imx6dl-apf6dev.dtb: Warning (simple_bus_reg): Node /regulators/usb-h1-vbus missing or empty reg/ranges property arch/arm/boot/dts/imx6dl-apf6dev.dtb: Warning (simple_bus_reg): Node /regulators/usb-otg-vbus missing or empty reg/ranges property Cc: Sébastien Szymanski <sebastien.szymanski@armadeus.com> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Move disp0 node from soc node to root node. disp0 node does not have any register properties and thus shouldn't be placed on the bus. This fixes the following build warnings with W=1: arch/arm/boot/dts/imx53-tx53-x03x.dtb: Warning (simple_bus_reg): Node /soc/disp0 missing or empty reg/ranges property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Lothar Waßmann <LW@KARO-electronics.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
As described in Documentation/devicetree/bindings/input/touchscreen/stmpe.txt there is no 'reg' property under stmpe_touchscreen, so remove it to fix the following build warning with W=1: arch/arm/boot/dts/imx53-m53evk.dtb: Warning (unit_address_vs_reg): Node /soc/aips@60000000/i2c@63fc4000/stmpe610@41/stmpe_touchscreen has a reg or ranges property, but no unit name Cc: Marek Vasut <marex@denx.de> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
As described at Documentation/devicetree/bindings/mfd/mc13xxx.txt the reg property is mandatory, so add the corresponding unit address in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx51-zii-rdu1.dtb: Warning (unit_address_vs_reg): Node /soc/aips@70000000/spba@70000000/ecspi@70010000/pmic@0/leds/sysled0 has a reg or ranges property, but no unit name arch/arm/boot/dts/imx51-zii-rdu1.dtb: Warning (unit_address_vs_reg): Node /soc/aips@70000000/spba@70000000/ecspi@70010000/pmic@0/leds/sysled1 has a reg or ranges property, but no unit name Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
The syscon node has an incorrect notation for its unit address and the wdt node has an unneeded unit address. Fix them so that the following build warnings with W=1 are gone: arch/arm/boot/dts/imx51-ts4800.dtb: Warning (unit_address_vs_reg): Node /soc/aips@80000000/weim@83fda000/fpga@0/syscon@b0010000/wdt@e has a unit name, but no reg property arch/arm/boot/dts/imx51-ts4800.dtb: Warning (unit_address_vs_reg): Node /soc/aips@80000000/weim@83fda000/fpga@0/touchscreen has a reg or ranges property, but no unit name arch/arm/boot/dts/imx51-ts4800.dtb: Warning (simple_bus_reg): Node /soc/aips@80000000/weim@83fda000/fpga@0/syscon@b0010000 simple-bus unit address format error, expected "10000" arch/arm/boot/dts/imx51-ts4800.dtb: Warning (simple_bus_reg): Node /soc/aips@80000000/weim@83fda000/fpga@0/touchscreen simple-bus unit address format error, expected "12000" Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Damien Riegel <damien.riegel@savoirfairelinux.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Neil Armstrong authored
This patch adds support for the i.MX6 Quad variant of the Variscite DART-MX6 SoM Carrier-Board. This Carrier-Board has the following : - LVDS interface for the VLCD-CAP-GLD-LVDS 7" LCD 800 x 480 touch display - HDMI Connector - USB Host + USB OTG Connector - 10/100/1000 Mbps Ethernet - miniPCI-Express slot - SD Card connector - Audio Headphone/Line In jack connectors - On-board DMIC - CAN bus header - SPI header - Camera Interfaces header - 4xButtons, 2xLeds - OnBoard RTC with Coin Backup battery socket - RS232 Header + USB-Serial debug port Product Page : http://www.variscite.com/products/evaluation-kits/dart-mx6-kits The board support is done with all on-board and header interfaces enabled. 7" LVDS Touchscreen is enabled by default along HDMI output. Audio interface is supported with the "simple-card" bindings. PCIe slot, On-Board DMIC and Camera Interfaces are not handled yet. Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Neil Armstrong authored
This patch adds support for the Variscite DART-MX6 SoM with : - i.MX6 Quad or Dual Lite SoC - 1Gb/2Gb LPDDR2 - 4-64 GB eMMC - Camera Interface - HDMI+CEC interface - LVDS / DSI / Parallel RGB interfaces - Ethernet RGMII interface - On-SoM Wi-Fi/Bluetooth with WiLink wl1835 SDIO Module - SD/MMC/SDIO interface - USB Host + USB OTG interface - I2C interfaces - SPI interfaces - PCI-Express 2.0 interface - on-SoM Audio Codec with HP/Line-In interfaces + DMIC interface - Digital Audio interface - S/PDIF interface Product website : http://www.variscite.com/products/system-on-module-som/cortex-a9/dart-mx6-cpu-freescale-imx6 Support is handled with a SoM-centric dtsi exporting the default interfaces along the default pinmuxing to be enabled by the board dts file. Only board-independent devices like WiFi, eMMC or PMIC are enabled in the dtsi. Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Neil Armstrong authored
The GKTW70SDAE4SE is an LVDS display panel. Their bindings are modelled on the the LVDS panel bindings. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Neil Armstrong authored
Solomon Goldentek Display Corporation is a Taiwanese LCD/LCM manufacturer. Company Site: http://www.goldentek.com.twAcked-by: Rob Herring <robh@kernel.org> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Neil Armstrong authored
Add missing pinmux entry for OSC32K_32K_OUT on pad ENET_RXD0 used by the Variscite DART-MX6 SoM. Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Prabhakar Kushwaha authored
LS1021AQDS support NAND flash on IFC chip-select 2. So add NAND node in device tree for IFC controller. Signed-off-by: Jagdish Gediya <jagdish.gediya@nxp.com> Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Vanessa Maegima authored
Separate the old imx7d-pico into cpu (imx7d-pico.dtsi) and baseboard (imx7d-pico-pi.dts) dts so the same cpu dtsi can be used in different baseboards variants. Signed-off-by: Vanessa Maegima <vanessa.maegima@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
The correct unit address for interrupt-controller is 0x40003000, so change it accordingly in order to fix the following build warning with W=1: arch/arm/boot/dts/vf500-colibri-eval-v3.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@40000000/interrupt-controller@40002000 simple-bus unit address format error, expected "40003000" Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
The correct unit address for spba-bus is 0x2240000, so change it accordingly in order to fix the following build warning with W=1: arch/arm/boot/dts/imx6sx-sabreauto.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@2200000/spba-bus@2200000 simple-bus unit address format error, expected "2240000" Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Move iio-hwmon node from soc node to root node. iio-hwmon node does not have any register properties and thus shouldn't be placed on the bus. This fixes the following build warnings with W=1: arch/arm/boot/dts/vf500-colibri-eval-v3.dtb: Warning (simple_bus_reg): Node /soc/iio-hwmon missing or empty reg/ranges property Based on a patch from Simon Horman for the renesas r8a7795 dtsi. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Add unit address and reg for the anatop nodes in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@30000000/anatop@30360000/regulator-vdd1p0d missing or empty reg/ranges property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Fix the unit address notation and pass bus-range property in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (pci_bridge): Node /soc/aips-bus@30800000/pcie@0x33800000 missing bus-range for PCI bridge arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (unit_address_format): Failed prerequisite 'pci_bridge' arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (pci_device_reg): Failed prerequisite 'pci_bridge' arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge' arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@30800000/pcie@0x33800000 simple-bus unit address format error, expected "33800000" Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Move usbphynop1, usbphynop2, usbhypnop3, replicator and timer and nodes from soc node to root node. The nodes that have been moved do not have any register properties and thus shouldn't be placed on the bus. This fixes the following build warnings with W=1: arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/replicator missing or empty reg/ranges property arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/timer missing or empty reg/ranges property arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@30800000/usbphynop1 missing or empty reg/ranges property arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@30800000/usbphynop3 missing or empty reg/ranges property arch/arm/boot/dts/imx7d-cl-som-imx7.dtb: Warning (simple_bus_reg): Node /soc/aips-bus@30800000/usbphynop2 missing or empty reg/ranges property Based on a patch from Simon Horman for r8a7795.dtsi. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-
Fabio Estevam authored
Remove unneeded label and unit address in order to fix the following build warnings with W=1: arch/arm/boot/dts/imx6dl-apf6dev.dtb: Warning (unit_address_vs_reg): Node /soc/aips-bus@2000000/iomuxc-gpr@20e0000/ipu1_csi0_mux@34 has a unit name, but no reg property arch/arm/boot/dts/imx6dl-apf6dev.dtb: Warning (unit_address_vs_reg): Node /soc/aips-bus@2000000/iomuxc-gpr@20e0000/ipu1_csi1_mux@34 has a unit name, but no Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-