Re: [PATCH 12/18] arm64: dts: qcom: msm8994-octagon: Configure Lattice iCE40 FPGA

2021-02-18 Thread Pavel Machek
On Sun 2021-01-31 02:38:43, Konrad Dybcio wrote:
> From: Gustave Monce 
> 
> Octagon devices have a Lattice iCE40 FPGA connected over SPI.
> Configure it.

> + status = "okay";
> +
> + /*
> +  * This device is a Lattice UC120 USB-C PD PHY.
> +  * It is actually a Lattice iCE40 FPGA pre-programmed by
> +  * the device firmware with a specific bitstream
> +  * enabling USB Type C PHY functionality.
> +  * Communication is done via a proprietary protocol over SPI.
> +  *

Wow. That's interesting hardware design. Someone should put RISC-V CPU
in there!

Best regards,
Pavel

-- 
http://www.livejournal.com/~pavelmachek


signature.asc
Description: PGP signature


[PATCH 12/18] arm64: dts: qcom: msm8994-octagon: Configure Lattice iCE40 FPGA

2021-01-30 Thread Konrad Dybcio
From: Gustave Monce 

Octagon devices have a Lattice iCE40 FPGA connected over SPI.
Configure it.

Signed-off-by: Gustave Monce 
Signed-off-by: Konrad Dybcio 
---
 .../dts/qcom/msm8994-msft-lumia-octagon.dtsi  | 21 +++
 1 file changed, 21 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi 
b/arch/arm64/boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi
index 004a42261cef..73af5265df9b 100644
--- a/arch/arm64/boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8994-msft-lumia-octagon.dtsi
@@ -304,6 +304,27 @@ _uart2 {
status = "okay";
 };
 
+_spi4 {
+   status = "okay";
+
+   /*
+* This device is a Lattice UC120 USB-C PD PHY.
+* It is actually a Lattice iCE40 FPGA pre-programmed by
+* the device firmware with a specific bitstream
+* enabling USB Type C PHY functionality.
+* Communication is done via a proprietary protocol over SPI.
+*
+* TODO: Once a proper driver is available, replace this.
+*/
+   uc120: ice5lp2k@0 {
+   compatible = "lattice,ice40-fpga-mgr";
+   reg = <0>;
+   spi-max-frequency = <500>;
+   cdone-gpios = < 95 GPIO_ACTIVE_HIGH>;
+   reset-gpios = <_gpios 4 GPIO_ACTIVE_LOW>;
+   };
+};
+
 _uart2 {
status = "okay";
 
-- 
2.30.0