aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts/imx51-zii-rdu1.dts
AgeCommit message (Collapse)Author
2019-04-11ARM: dts: imx: Switch Zii dts to SPDX identifierFabio Estevam
Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-12-10Merge tag 'imx-fixes-4.20-3' into imx7d/picoShawn Guo
i.MX fixes for 4.20, round 3: - A couple of fixes on imx7d-pico and imx7d-nitrogen7 boards to correct the description of the Wifi clock. - Change SW2ISO count to get a safer ARM LDO ramp-up time, so that different boards can be covered. This fixes the ARM LDO failure seen on some customer boards.
2018-12-10ARM: dts: imx51-zii-rdu1: Do not specify "power-gpio" for hpa1Andrey Smirnov
TPA6130A2 SD pin on RDU1 is not really controlled by SoC and instead is only meant to notify the system that audio was "muted" by external actors. To accommodate that, drop "power-gpio" property of hpa1 node as well as specify a name for that GPIO so that userspace can access it. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Fabio Estevam <festevam@gmail.com> Tested-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-12-10ARM: dts: imx51: Fix memory node duplicationFabio Estevam
Boards based on imx51 have duplicate memory nodes: - One coming from the board dts file: memory@ - One coming from the imx51.dtsi file. Fix the duplication by removing the memory node from the dtsi file and by adding 'device_type = "memory";' in the board dts. Reported-by: Rob Herring <robh@kernel.org> Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-11-19ARM: dts: imx51-zii-rdu1: Remove EEPROM nodeFabio Estevam
The EEPROM under I2C2 was put by mistake in the dts. Remove it as it is not really present on the real hardware. Fixes: ceef0396f367 ("ARM: dts: imx: add ZII RDU1 board") Reported-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-09-26ARM: dts: imx51-zii-rdu1: Fix the rtc compatible stringFabio Estevam
According to Documentation/devicetree/bindings/rtc/rtc-ds1307.txt the original compatible "maxim,ds1341" is not a valid entry. Switch to the documented "dallas,ds1341" compatible. Reported-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Fabio Estevam <festevam@gmail.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Tested-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-08-23Merge tag 'armsoc-dt' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM device-tree updates from Olof Johansson: "Business as usual -- the bulk of our changes are to devicetree files with new hardware support, new SoCs and platforms, and new board types. New SoCs/platforms: - Raspberry Pi Compute Module (CM1) and IO board - i.MX6SSL from NXP - Renesas RZ/N1D SoC (R9A06G032), Dual Cortex-A7 with Ethernet, CAN and PLC interfaces - TI AM654 SoC, Quad Cortex-A53, safety subsystem with Cortex-R5 controllers, communication and PRU subsystem and lots of other interfaces (PCIe, USB3, etc). New boards and systems: - Several Atmel at91-based boards from Laird - Marvell Armada388-based Helios4 board from SolidRun - Samsung Aires-based phones (s5pv210) - Allwinner A64-based Pinebook laptop In addition to the above, there's the usual amount of new devices described on existing platforms, fixes and tweaks and new minor variants of boards/platforms" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (478 commits) arm64: dts: sdm845: Add tsens nodes arm64: dts: msm8996: thermal: Initialise via DT and add second controller arm64: dts: sprd: Add one suspend timer arm64: dts: sprd: Add SC27XX ADC device arm64: dts: sprd: Add SC27XX eFuse device arm64: dts: sprd: Add SC27XX vibrator device arm64: dts: sprd: Add SC27XX breathing light controller device arm64: dts: meson-axg: add spdif-dit codec arm64: dts: meson-axg: add lineout codec arm64: dts: meson-axg: add linein codec arm64: dts: meson-axg: add tdm interfaces arm64: dts: meson-axg: add tdmout formatters arm64: dts: meson-axg: add tdmin formatters arm64: dts: meson-axg: add spdifout arm64: dts: rockchip: add led support for Firefly-RK3399 arm64: dts: rockchip: remove deprecated Type-C PHY properties on rk3399 arm64: dts: rockchip: add power button support for Firefly-RK3399 ARM: dts: aspeed: Add coprocessor interrupt controller arm64: dts: meson-axg: add audio arb reset controller arm64: dts: meson-axg: add usb power regulator ...
2018-07-17ARM: dts: imx51-zii-rdu1: Enable secure-reg-accessFabio Estevam
Add 'secure-reg-access' property to enable PMU and hardware counters so that they can be properly used with the 'perf' tool. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-07-17ARM: dts: imx51-zii-rdu1: Disable internal watchdogFabio Estevam
imx51-zii-rdu1 has an external watchdog in the environment microcontroller, so disable the internal one. This aligns with what was done in commit 7055f714032c ("ARM: dts: imx6: RDU2: disable internal watchdog") for imx6 rdu2 board. 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>
2018-07-03ARM: dts: imx51-zii-rdu1: correct touchscreen axis inversionNick Dyer
The RMI4 touchscreen driver applied inversion and axis swap in the wrong order, violating the DT binding for those properties. This was fixed in 645a397, so correct the RDU1 DT to apply the inversion to the correct axis. Tested on Zii RDU1 00-5105-30 rev B Signed-off-by: Nick Dyer <nick@shmanahar.org> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-07-01ARM: dts: imx51-zii-rdu1: Populate RAVE SP EEPROM nodesAndrey Smirnov
ZII's RDU1s come with up to 3 EEPROMs attached to RAVE SP. Add corresponding nodes to make them availible. Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: cphealy@gmail.com Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-07-01ARM: dts: imx51-zii-rdu1: fix touchscreen pinctrlNick Dyer
The pinctrl settings were incorrect for the touchscreen interrupt line, causing an interrupt storm. This change has been tested with both the atmel_mxt_ts and RMI4 drivers on the RDU1 units. The value 0x4 comes from the value of register IOMUXC_SW_PAD_CTL_PAD_CSI1_D8 from the old vendor kernel. Signed-off-by: Nick Dyer <nick@shmanahar.org> Fixes: ceef0396f367 ("ARM: dts: imx: add ZII RDU1 board") Cc: <stable@vger.kernel.org> # 4.15+ Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Tested-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-06-17ARM: dts: imx51-zii-rdu1: Make sure SD1_WP is lowAndrey Smirnov
Make sure that MX51_PAD_GPIO1_1 does not remain configure as ALT0/SD1_WP (it is out of reset). This is needed because of external pull-up resistor attached to that pad that, when left unchanged, will drive SD1_WP high preventing eSDHC1/eMMC from working correctly. To fix that add a pinmux configuration line configureing the pad to function as a GPIO. While we are at it, add a corresponding output-high GPIO hog in an effort to minimize current consumption. Cc: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Lucas Stach <l.stach@pengutronix.de> Cc: Chris Healy <cphealy@gmail.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Tested-By: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-06-17ARM: dts: imx51-zii-rdu1: add rave-sp subdevicesNikita Yushchenko
This adds rave-sp powerbutton and backlight devices to RDU1 device tree. Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Tested-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-06-11Merge tag 'armsoc-dt' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC device tree updates from Olof Johansson: "As always, a large number of DT updates. Too many to enumerate them all, but at a glance: New SoCs introduced in this release: - Amlogic: + Meson 8M2 SoC, a.k.a. S812. A quad Cortex-A9 SoC used in some set top boxes and other products. - Mediatek: + MT7623A, which is a flavor of the MT7623 family with other on-chip ethernet options. - Qualcomm: + SDM845, a.k.a Snapdragon 845, an 4+4-core Kryo 385/845 (Cortex-A75/A55 derivative) SoC that's one of the current high-end mobile SoCs. It's great to see mainline support for it. So far, you can't do much with it, since a lot of peripherals are not yet in the DTs but driver support for USB, GPU and other pieces are starting to trickle in. This might end up being a well-supported SoC upstream if the momentum keeps up. - Renesas: + R8A77990, a.k.a R-Car E3, a new automotive entertainment-targeted SoC. Currently only one Cortex-A53 CPU is enabled, we are eagerly awaiting more. So far, basic drivers such as serial, gpios, PMU and ethernet are enabled. + R8A77470, a.k.a. RZ/G1C, a new dual Cortex-A7 SoC with PowerVR GPU. Same here, basic set of drivers such as serial, gpios and ethernet enabled, and SMP support is also forthcoming. - STMicroelectronics: + STM32F469, very similar tih STM32F429 but with display support Enhancements to SoCs/platforms (DTS contents, some driver portions might not be in yet): - Allwinner sun8i (h3/a33/a83t) SMP, DVFS tweaks, misc - Amlogic Meson: I2C, UFS, TDM, GPIO external interrupts, MMC resets - Hisilicon hi3660: Thermal cooling, CPU frequency scaling, mailbox interfaces - Marvell Berlin2CD: SMP support, thermal sensors - Mediatek MT7623: Highspeed DMA, audio support - Qualcomm IPQ8074 PCIe support, MSM8996 UFS support - Renesas: Watchdog and PMU support across many platforms - Rockchip RK3399: USB3 OTG support - Samsung Exynos: Audio-over-HDMI on Odroid X/X2/U3 - STMicro STM32: Lots of peripherals added to STM32MP175C - Uniphier: Ethernet support New boards: - Allwinner A20: Olimex A20-SOM-EVB-eMMC variant - Allwinner H2+: Libre Computer ALL-H3-CC (h2+ version) - Allwinner A33: Nintendo NES/SuperNES Classic Edition - Aspeed: S2600WF, Inventec Lanyang BMC, Portwell Neptune - Berlin2CD: Valve Steam Link - Broadcom BCM5301X: Luxul XAP-1610 and XWR-3150 V1 - Broadcom: Raspberry Pi 3 B+ - Mediatek MT7623N and MT7623A: reference boards - Meson 8M2: Tronsmart MXIII Plus - NXP i.MX: Engicam i.CoreM6, DHCOM iMX6 SOM, BTicino i.MX6DL Mamoj - Qualcomm MSM8974: Sony Xperia Z1 Compact support - Qualcomm SDM845: MTP development board - Renesas: Ebisu R8A77990 board - Renesas RZ/G1C: iwg23s: iWave G235-SDB - TI am335x: Pocketbeagle support" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (448 commits) ARM: dts: aspeed: Fix hwrng register address arm64: dts: sprd: whale2: Add the rtc enable clock for watchdog arm64: dts: sprd: Add GPIO and GPIO keys device nodes arm64: dts: sprd: fix typo in 'remote-endpoint' arm64: dts: apq8096-db820c: Removed bt-en-1-8v regulator arm64: dts: fix regulator property name for wlan pcie endpoint arm64: dts: qcom: msm8996: Use UFS_GDSC for UFS ARM: dts: pxa3xx: fix MMC clocks ARM: pxa: dts: add pin definitions for extended GPIOs ARM: pxa: dts: add gpio-ranges to gpio controller ARM: dts: ipq8074: Enable few peripherals for hk01 board ARM: dts: ipq8074: Add pcie nodes ARM: dts: ipq8074: Add peripheral nodes ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk07.1-c2 board file ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk07.1-c1 board file ARM: dts: ipq4019: Add ipq4019-ap.dk07.1 common data ARM: dts: ipq4019: Add qcom-ipq4019-ap.dk04.1-c3 board file ARM: dts: ipq4019: Add ipq4019-ap.dk04.1-c1 board file ARM: dts: ipq4019: Add ipq4019-ap.dk04.dtsi ARM: dts: ipq4019: Change the max opp frequency ...
2018-05-20ARM: dts: imx51-zii-rdu1: cleanup eMMC nodeNikita Yushchenko
On RDU1, sdhc1 is used for eMMC, and that is 3.3V only. Thus configure device node not to probe it as SD/SDIO and not try 1.8V. Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-05-20ARM: dts: imx51-zii-rdu1: limit usbh1 to full-speedNikita Yushchenko
On RDU1, imx51 usbh1 interface is either not used, or used via external block that breaks USB2 signalling. To keep things working if high-speed device gets connected to that block, use ChipIdea feature to limit port to full speed. Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-05-14ARM: dts: imx: Remove #address/#size-cells from switch nodesFabio Estevam
Remove unnecessary #address-cells/#size-cells from the switch nodes to fix the following DTC warnings: arch/arm/boot/dts/imx6q-b450v3.dtb: Warning (avoid_unnecessary_addr_size): /mdio-gpio/switch@0: unnecessary #address-cells/#size-cells without "ranges" or child "reg" property Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-05-11ARM: dts: imx51-zii-rdu1: fix touchscreen bindingsNikita Yushchenko
This fixes errors in RDU1 device tree that cause touch screens not working. Fixes: ceef0396f367 ("ARM: dts: imx: add ZII RDU1 board") Signed-off-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-03-08ARM: dts: imx51-zii-rdu1: Add node for RAVE SP deviceAndrey Smirnov
With MFD and watchdog drivers for RAVE SP device support added by 538ee27290fa ("mfd: Add driver for RAVE Supervisory Processor") and c3bb33345721 ("watchdog: Add RAVE SP watchdog driver") add corresponding DT node for RDU. Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Guenter Roeck <linux@roeck-us.net> Cc: Chris Healy <cphealy@gmail.com> Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-03-01ARM: dts: imx5: Pass the memory unit-addressFabio Estevam
Pass the memory unit-address to fix the following build warnings with W=1: arch/arm/boot/dts/imx51-zii-rdu1.dtb: Warning (unit_address_vs_reg): Node /memory has a reg or ranges property, but no unit name arch/arm/boot/dts/imx53-tx53-x03x.dtb: Warning (unit_address_vs_reg): Node /memory has a reg or ranges property, but no unit name arch/arm/boot/dts/imx53-tx53-x13x.dtb: Warning (unit_address_vs_reg): Node /memory has a reg or ranges property, but no unit name In theses cases an empty memory node is passed, which will be filled by the bootloader. Passing the memory base address still allows the bootloader to fill the memory size. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2018-02-12ARM: dts: imx: Pass empty memory size on board dtsMarco Franchi
In preparation for removing 'reg = <0 0>;' from the dtsi SoC files, pass 'reg = <0 0 >;' to the dts/dtsi board files that do not pass the memory size. Signed-off-by: Marco Franchi <marco.franchi@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2017-12-27ARM: dts: imx51-zii-rdu1: Add missing #phy-cells to usb-nop-xceivFabio Estevam
Commit 915fbe59cbf2fe6 ("ARM: dts: imx: Add missing #phy-cells to usb-nop-xceiv") missed to update imx51-zii-rdu1.dts probably due to a merge timing issue, so add #phy-cells here too. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2017-12-26ARM: dts: imx51-zii-rdu1: Add the unit addresses in sysledFabio Estevam
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>
2017-12-26ARM: dts: imx: rdu1: cosmetic changes to the audio nodesLucas Stach
This renames the audio device to "Front" in order to match the RDU2 naming, which makes it easier for a unified userspace to deal with both boards. Also rename the phandle for the headphone amplifier to more closely resemble the RDU2 DTS. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Reviewed-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2017-10-30Merge tag 'imx-dt-4.15' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt Pull "i.MX device tree updates for 4.15" from Shawn Guo: - New board support: i.MX51 ZII RDU1, i.MX53 GE Healthcare PPD, i.MX6 TX modules for MB7 from Ka-Ro Electronics, i.MX6 Wandboard revd1 variants, i.MX6 LWN DISPLAY5 board, Pistachio i.MX6Q board, i.MX6SX Vining-2000 board. - Use the 'vpcie-supply' property for PCIe device for boards imx6qdl-sabresd, imx6q-novena and imx6q-cm-fx6. - A series from Jagan Teki to update imx6qdl-icore board with audio, touch and CAN support. - Switch to nvmem for accessing OCOTP from tempmon for i.MX6SX and add tempmon support for i.MX6UL. - A bunch of patches from Lothar Waßmann updating Ka-Ro i.MX28, i.MX53 and i.MX6 TX modules. - Fix DTC warnings in i.MX device trees, dropping leading zeros from unit address, correcting display nodes notation and display port names, fixing nodes with unit name and no reg property. - Other random device updates for various board support. * tag 'imx-dt-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (63 commits) ARM: dts: imx53-tx53: fix interrupt flags ARM: dts: imx28-tx28: fix interrupt flags ARM: dts: display5: Device tree description of LWN's DISPLAY5 board ARM: dts: imx53-qsb-common: Fix 'led_gpio7_7@0' node with unit name and no reg property ARM: dts: imx53-m53evk: Fix 'led_gpio@0' node with unit name and no reg property ARM: dts: imx53: Fix 'usbphy@x' node with unit name and no reg property ARM: dts: imx51-ts4800: Fix 'port@0' node with unit name and no reg property ARM: dts: imx51-apf51dev: Fix 'backlight@bl1' node with unit name and no reg property ARM: dts: imx: add ZII RDU1 board ARM: dts: imx: add support for TX6 modules on MB7 baseboard ARM: dts: imx: add support for TX6QP ARM: dts: imx6-tx6: add a .dtsi file for the MB7 baseboard ARM: dts: imx6-tx6: move display configuration to .dtsi file ARM: dts: imx6-tx6: add support for I2C bus recovery ARM: dts: imx6-tx6: convert to using simple-audio-card ARM: dts: imx6-tx6: specify ethernet phy reset post-delay ARM: dts: imx6-tx6: improve ethernet related pinctrl setup ARM: dts: imx6-tx6: add trickle-charge config for DS1339 ARM: dts: imx6-tx6: remove obsolete ipu1 alias ARM: dts: imx6-tx6: remove obsolete eeti,egalax_ts ... [arnd: made sure we have no new leading zeroes in unit address during merge]
2017-10-23ARM: dts: imx: add ZII RDU1 boardLucas Stach
This adds support for the Zodiac Inflight Innovations RDU1 board, which is based on the i.MX51. It is the predecessor of the already supported ZII RDU2 board and relies on the bootloader in the same way to enable correct display and touchscreen nodes. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Tested-by: Nikita Yushchenko <nikita.yoush@cogentembedded.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>