hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
* Freescale Quad Serial Peripheral Interface(QuadSPI)
 
Required properties:
  - compatible : Should be "fsl,vf610-qspi", "fsl,imx6sx-qspi",
        "fsl,imx7d-qspi", "fsl,imx6ul-qspi",
        "fsl,ls1021a-qspi", "fsl,ls2080a-qspi"
        or
        "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi"
  - reg : the first contains the register location and length,
          the second contains the memory mapping address and length
  - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
  - interrupts : Should contain the interrupt for the device
  - clocks : The clocks needed by the QuadSPI controller
  - clock-names : Should contain the name of the clocks: "qspi_en" and "qspi".
 
Required SPI slave node properties:
  - reg: There are two buses (A and B) with two chip selects each.
    This encodes to which bus and CS the flash is connected:
       <0>: Bus A, CS 0
       <1>: Bus A, CS 1
       <2>: Bus B, CS 0
       <3>: Bus B, CS 1
 
Example:
 
qspi0: quadspi@40044000 {
   compatible = "fsl,vf610-qspi";
   reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
   reg-names = "QuadSPI", "QuadSPI-memory";
   interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clks VF610_CLK_QSPI0_EN>,
       <&clks VF610_CLK_QSPI0>;
   clock-names = "qspi_en", "qspi";
 
   flash0: s25fl128s@0 {
       #address-cells = <1>;
       #size-cells = <1>;
       compatible = "spansion,s25fl128s", "jedec,spi-nor";
       spi-max-frequency = <50000000>;
       reg = <0>;
   };
};
 
Example showing the usage of two SPI NOR devices on bus A:
 
&qspi2 {
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_qspi2>;
   status = "okay";
 
   flash0: n25q256a@0 {
       #address-cells = <1>;
       #size-cells = <1>;
       compatible = "micron,n25q256a", "jedec,spi-nor";
       spi-max-frequency = <29000000>;
       reg = <0>;
   };
 
   flash1: n25q256a@1 {
       #address-cells = <1>;
       #size-cells = <1>;
       compatible = "micron,n25q256a", "jedec,spi-nor";
       spi-max-frequency = <29000000>;
       reg = <1>;
   };
};