[TEST] Lager SD-via-MSIOF test setup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



---
Hi!

This is a setup I have cooked up to check if talking to SD cards via MSIOF1
and SPI works.  It works by taking the SD2 lines off the bus by defining
them as GPIO inputs and jumpering the MSIOF pins to SD card slot 2 via EXIO
connectors like so:

EXIO_A pin         EXIO_B pin
19 (MSIOF1_SCK_3)   3 (SD2_CLK_3)
31 (MSIOF1_TXD_3)   5 (SD2_CMD_3)
33 (MSIOF1_RXD_3)  13 (SD2_DAT0_3)

(Credits for the idea go to Mr. Damm.)

It works when defining an spi-gpio device, but it does not work with the
MSIOF IP; any attempt to read from the SD card returns all zeros.

Does anybody see any obvious issue there? Did I forget anything in the
msiof1 node?

CU
Uli


 arch/arm/boot/dts/r8a7790-lager.dts | 82 +++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 15cef62..979853d 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -270,6 +270,29 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 	};
+
+#if 0
+	spi_gpio: spi-gpio {
+		pinctrl-0 = <&msiof1_pins>;
+		pinctrl-names = "default";
+		compatible = "spi-gpio";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		gpio-sck = <&gpio4 8 GPIO_ACTIVE_HIGH>;
+		gpio-mosi = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+		gpio-miso = <&gpio4 13 GPIO_ACTIVE_HIGH>;
+		num-chipselects = <1>;
+		cs-gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
+		status = "okay";
+
+		spi@0 {
+			compatible = "mmc-spi-slot";
+			reg = <0>;
+			voltage-ranges = <3200 3400>;
+			spi-max-frequency = <25000000>;
+		};
+	};
+#endif
 };
 
 &du {
@@ -535,12 +558,24 @@
 	status = "okay";
 };
 
+#if 1
 &msiof1 {
 	pinctrl-0 = <&msiof1_pins>;
 	pinctrl-names = "default";
 
 	status = "okay";
 
+	num-chipselects = <1>;
+	cs-gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;	/* SD2_DAT3 */
+
+	spi@0 {
+		compatible = "mmc-spi-slot";
+		reg = <0>;
+		voltage-ranges = <3200 3400>;
+		spi-max-frequency = <25000000>;
+	};
+
+#if 0
 	pmic: pmic@0 {
 		compatible = "renesas,r2a11302ft";
 		reg = <0>;
@@ -548,6 +583,51 @@
 		spi-cpol;
 		spi-cpha;
 	};
+#endif
+};
+#endif
+
+
+/* disable patched lines on SDHI side */
+&gpio3 {
+	sd2_clk {
+		gpio-hog;
+		gpios = <16 0>;	/* SD2_CLK */
+		input;
+	};
+	sd2_cmd {
+		gpio-hog;
+		gpios = <17 0>;	/* SD2_CMD */
+		input;
+	};
+	sd2_dat0 {
+		gpio-hog;
+		gpios = <18 0>;	/* SD2_DAT0 */
+		input;
+	};
+};
+
+/* force PMIC CS off */
+&gpio4 {
+	pmic_cs {
+		gpio-hog;
+		gpios = <9 0>;
+		output-high;
+	};
+};
+
+/* force SD2 power on, 3.3V */
+&gpio5 {
+	sd_pwr {
+		gpio-hog;
+		gpios = <25 0>;
+		output-high;
+	};
+	sd_vccq {
+		gpio-hog;
+		gpios = <30 0>;
+		output-high;
+	};
 };
 
 &sdhi0 {
@@ -563,6 +643,7 @@
 	status = "okay";
 };
 
+#if 0
 &sdhi2 {
 	pinctrl-0 = <&sdhi2_pins>;
 	pinctrl-1 = <&sdhi2_pins_uhs>;
@@ -574,6 +655,7 @@
 	sd-uhs-sdr50;
 	status = "okay";
 };
+#endif
 
 &cpu0 {
 	cpu0-supply = <&vdd_dvfs>;
-- 
2.7.4




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux