From 64a7d387b22a2ee74b1de23673a0ca57e45f6713 Mon Sep 17 00:00:00 2001 From: Akira Tsukamoto Date: Thu, 31 Dec 2015 15:55:24 +0900 Subject: [PATCH] arm64: dts: hikey: listing spidev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Listing spidev for SPI of Low-Speed (LS) expansion port on HiKey To test SPI on HiKey, try the following steps: 1. Get latest spidev test $ wget https://github.com/torvalds/linux/raw/master/tools/spi/spidev_test.c $ gcc -O2 -o spidev_test spidev_test.c 2. run: modprobe spidev 3. short Pin SDO and SDI on HiKey LS port, for loop test 4. run: ./spidev_test -D /dev/spidev0.0 , and you will see something similar to: spi mode: 0x0 bits per word: 8 max speed: 500000 Hz (500 KHz) RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@....�..................�. Signed-off-by: Akira Tsukamoto Signed-off-by: Guodong Xu [jstultz: fwdported to 4.9] Signed-off-by: John Stultz --- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 13 +++++++++++++ drivers/spi/spidev.c | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts index 75bcce3bfe1c..a2c3b9147ebb 100644 --- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts @@ -19,6 +19,7 @@ serial1 = &uart1; /* BT UART */ serial2 = &uart2; /* LS Expansion UART0 */ serial3 = &uart3; /* LS Expansion UART1 */ + spi0 = &spi0; }; chosen { @@ -508,4 +509,16 @@ }; }; }; + }; + +&spi0 { + #address-cells = <1>; + #size-cells = <0>; + status = "ok"; + + spidev@0 { + compatible = "linux,spidev"; + spi-max-frequency = <500000>; + reg = <0>; + }; }; diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 2e05046f866b..d77267ea0196 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -753,8 +753,8 @@ static int spidev_probe(struct spi_device *spi) */ if (spi->dev.of_node && !of_match_device(spidev_dt_ids, &spi->dev)) { dev_err(&spi->dev, "buggy DT: spidev listed directly in DT\n"); - WARN_ON(spi->dev.of_node && - !of_match_device(spidev_dt_ids, &spi->dev)); +// WARN_ON(spi->dev.of_node && +// !of_match_device(spidev_dt_ids, &spi->dev)); } spidev_probe_acpi(spi);