2015-11-19 08:37:45

by Kaihua Zhong

[permalink] [raw]
Subject: [PATCH V2 1/2] dt-bindings: spi: Documentation for Hi6220 spi driver

dt-bindings: spi: Documentation for Hi6220 spi driver

Signed-off-by: Zhong Kaihua <[email protected]>
---
.../devicetree/bindings/spi/spi-hi6220.txt | 45 ++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 Documentation/devicetree/bindings/spi/spi-hi6220.txt

diff --git a/Documentation/devicetree/bindings/spi/spi-hi6220.txt b/Documentation/devicetree/bindings/spi/spi-hi6220.txt
new file mode 100644
index 0000000..91aa169
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spi-hi6220.txt
@@ -0,0 +1,45 @@
+Hi6220 SPI controller
+
+Required properties:
+- compatible : "arm,pl022", "arm,primecell"
+- reg : Offset and length of the register set for the device
+- interrupts : Should contain SPI controller interrupt
+- num-cs : total number of chipselects
+
+Required Board Specific Properties:
+
+- #address-cells: should be 1.
+- #size-cells: should be 0.
+
+Optional properties:
+- cs-gpios : should specify GPIOs used for chipselects.
+ The gpios will be referred to as reg = <index> in the SPI child nodes.
+ If unspecified, a single SPI device without a chip select can be used.
+- dmas : Two or more DMA channel specifiers following the convention outlined
+ in bindings/dma/dma.txt
+- dma-names: Names for the dma channels, if present. There must be at
+ least one channel named "tx" for transmit and named "rx" for
+ receive.
+
+Example:
+ spi_0: spi@f7106000 {
+ compatible = "arm,pl022", "arm,primecell";
+ reg = <0x0 0xf7106000 0x0 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ interrupts = <0 50 4>;
+ bus-id = <0>;
+ enable-dma = <1>;
+ dmas = <&dma0 12 &dma0 13>;
+ dma-names = "rx", "tx";
+
+ clocks = <&clock_sys HI6220_SPI_CLK>;
+ clock-names = "apb_pclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_pmx_func &spi0_cfg_func>;
+ num-cs = <4>;
+ cs-gpios = <&gpio6 2 0>, <&gpio6 3 0>, <&gpio6 4 0>, <&gpio6 5 0>;
+
+ status = "ok";
+ };
+
--
1.9.1


2015-11-19 08:37:47

by Kaihua Zhong

[permalink] [raw]
Subject: [PATCH V2 2/2] arm64: dts: add Hi6220 spi configuration nodes

arm64: dts: add Hi6220 spi configuration nodes

Signed-off-by: Zhong Kaihua <[email protected]>
---
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 +
arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+)

diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
index 4fb0bdc..2313ae0 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
@@ -23,6 +23,7 @@
serial1 = &uart1; /* BT UART */
serial2 = &uart2; /* LS Expansion UART0 */
serial3 = &uart3; /* LS Expansion UART1 */
+ spi0 = &spi_0;
};

chosen {
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index 0f11e2a..da0fe37 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -489,5 +489,25 @@
clock-names = "apb_pclk";
status = "ok";
};
+
+ spi_0: spi@f7106000 {
+ compatible = "arm,pl022", "arm,primecell";
+ reg = <0x0 0xf7106000 0x0 0x1000>;
+ interrupts = <0 50 4>;
+ bus-id = <0>;
+ enable-dma = <0>;
+ /*dmas = <&dma0 12 &dma0 13>;*/
+ /*dma-names = "rx", "tx";*/
+
+ clocks = <&sys_ctrl HI6220_SPI_CLK>;
+ clock-names = "apb_pclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_pmx_func &spi0_cfg_func>;
+ num-cs = <1>;
+ cs-gpios = <&gpio6 2 0>;
+
+ status = "ok";
+ };
+
};
};
--
1.9.1

2015-11-20 15:39:12

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH V2 1/2] dt-bindings: spi: Documentation for Hi6220 spi driver

On Thu, Nov 19, 2015 at 04:37:08PM +0800, Zhong Kaihua wrote:
> dt-bindings: spi: Documentation for Hi6220 spi driver
>
> Signed-off-by: Zhong Kaihua <[email protected]>
> ---
> .../devicetree/bindings/spi/spi-hi6220.txt | 45 ++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/spi/spi-hi6220.txt
>
> diff --git a/Documentation/devicetree/bindings/spi/spi-hi6220.txt b/Documentation/devicetree/bindings/spi/spi-hi6220.txt
> new file mode 100644
> index 0000000..91aa169
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/spi-hi6220.txt
> @@ -0,0 +1,45 @@
> +Hi6220 SPI controller
> +
> +Required properties:
> +- compatible : "arm,pl022", "arm,primecell"

If this is just a pl022, then you don't need this document as
spi_pl022.txt already exists. If HiSilicon has modified this block, then
you need an additional HiSi specific compatible string and add it to
spi_pl022.txt.

> +- reg : Offset and length of the register set for the device
> +- interrupts : Should contain SPI controller interrupt
> +- num-cs : total number of chipselects
> +
> +Required Board Specific Properties:
> +
> +- #address-cells: should be 1.
> +- #size-cells: should be 0.
> +
> +Optional properties:
> +- cs-gpios : should specify GPIOs used for chipselects.
> + The gpios will be referred to as reg = <index> in the SPI child nodes.
> + If unspecified, a single SPI device without a chip select can be used.
> +- dmas : Two or more DMA channel specifiers following the convention outlined
> + in bindings/dma/dma.txt
> +- dma-names: Names for the dma channels, if present. There must be at
> + least one channel named "tx" for transmit and named "rx" for
> + receive.
> +
> +Example:
> + spi_0: spi@f7106000 {
> + compatible = "arm,pl022", "arm,primecell";
> + reg = <0x0 0xf7106000 0x0 0x1000>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + interrupts = <0 50 4>;
> + bus-id = <0>;

This should be removed.