xref: /openbmc/linux/Documentation/devicetree/bindings/spi/samsung,spi.yaml (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
10ff4827eSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
20ff4827eSKrzysztof Kozlowski%YAML 1.2
30ff4827eSKrzysztof Kozlowski---
40ff4827eSKrzysztof Kozlowski$id: http://devicetree.org/schemas/spi/samsung,spi.yaml#
50ff4827eSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
60ff4827eSKrzysztof Kozlowski
70ff4827eSKrzysztof Kozlowskititle: Samsung S3C/S5P/Exynos SoC SPI controller
80ff4827eSKrzysztof Kozlowski
90ff4827eSKrzysztof Kozlowskimaintainers:
108a1e6bb3SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
110ff4827eSKrzysztof Kozlowski
120ff4827eSKrzysztof Kozlowskidescription:
130ff4827eSKrzysztof Kozlowski  All the SPI controller nodes should be represented in the aliases node using
140ff4827eSKrzysztof Kozlowski  the following format 'spi{n}' where n is a unique number for the alias.
150ff4827eSKrzysztof Kozlowski
160ff4827eSKrzysztof Kozlowskiproperties:
170ff4827eSKrzysztof Kozlowski  compatible:
180ff4827eSKrzysztof Kozlowski    oneOf:
190ff4827eSKrzysztof Kozlowski      - enum:
200ff4827eSKrzysztof Kozlowski          - samsung,s3c2443-spi # for S3C2443, S3C2416 and S3C2450
210ff4827eSKrzysztof Kozlowski          - samsung,s3c6410-spi
220ff4827eSKrzysztof Kozlowski          - samsung,s5pv210-spi # for S5PV210 and S5PC110
23595d68c1SKrzysztof Kozlowski          - samsung,exynos4210-spi
240ff4827eSKrzysztof Kozlowski          - samsung,exynos5433-spi
25*9dbeef8aSChanho Park          - samsung,exynosautov9-spi
26363d3c51SAlim Akhtar          - tesla,fsd-spi
270ff4827eSKrzysztof Kozlowski      - const: samsung,exynos7-spi
280ff4827eSKrzysztof Kozlowski        deprecated: true
290ff4827eSKrzysztof Kozlowski
300ff4827eSKrzysztof Kozlowski  clocks:
310ff4827eSKrzysztof Kozlowski    minItems: 2
320ff4827eSKrzysztof Kozlowski    maxItems: 3
330ff4827eSKrzysztof Kozlowski
340ff4827eSKrzysztof Kozlowski  clock-names:
350ff4827eSKrzysztof Kozlowski    minItems: 2
360ff4827eSKrzysztof Kozlowski    maxItems: 3
370ff4827eSKrzysztof Kozlowski
380ff4827eSKrzysztof Kozlowski  dmas:
390ff4827eSKrzysztof Kozlowski    minItems: 2
400ff4827eSKrzysztof Kozlowski    maxItems: 2
410ff4827eSKrzysztof Kozlowski
420ff4827eSKrzysztof Kozlowski  dma-names:
430ff4827eSKrzysztof Kozlowski    items:
440ff4827eSKrzysztof Kozlowski      - const: tx
450ff4827eSKrzysztof Kozlowski      - const: rx
460ff4827eSKrzysztof Kozlowski
470ff4827eSKrzysztof Kozlowski  interrupts:
480ff4827eSKrzysztof Kozlowski    maxItems: 1
490ff4827eSKrzysztof Kozlowski
500ff4827eSKrzysztof Kozlowski  no-cs-readback:
510ff4827eSKrzysztof Kozlowski    description:
520ff4827eSKrzysztof Kozlowski      The CS line is disconnected, therefore the device should not operate
530ff4827eSKrzysztof Kozlowski      based on CS signalling.
540ff4827eSKrzysztof Kozlowski    type: boolean
550ff4827eSKrzysztof Kozlowski
560ff4827eSKrzysztof Kozlowski  num-cs:
570ff4827eSKrzysztof Kozlowski    minimum: 1
580ff4827eSKrzysztof Kozlowski    maximum: 4
590ff4827eSKrzysztof Kozlowski    default: 1
600ff4827eSKrzysztof Kozlowski
610ff4827eSKrzysztof Kozlowski  samsung,spi-src-clk:
620ff4827eSKrzysztof Kozlowski    description:
630ff4827eSKrzysztof Kozlowski      If the spi controller includes a internal clock mux to select the clock
640ff4827eSKrzysztof Kozlowski      source for the spi bus clock, this property can be used to indicate the
650ff4827eSKrzysztof Kozlowski      clock to be used for driving the spi bus clock. If not specified, the
660ff4827eSKrzysztof Kozlowski      clock number 0 is used as default.
670ff4827eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
680ff4827eSKrzysztof Kozlowski    default: 0
690ff4827eSKrzysztof Kozlowski
700ff4827eSKrzysztof Kozlowski  reg:
710ff4827eSKrzysztof Kozlowski    maxItems: 1
720ff4827eSKrzysztof Kozlowski
730ff4827eSKrzysztof Kozlowskirequired:
740ff4827eSKrzysztof Kozlowski  - compatible
750ff4827eSKrzysztof Kozlowski  - clocks
760ff4827eSKrzysztof Kozlowski  - clock-names
770ff4827eSKrzysztof Kozlowski  - dmas
780ff4827eSKrzysztof Kozlowski  - dma-names
790ff4827eSKrzysztof Kozlowski  - interrupts
800ff4827eSKrzysztof Kozlowski  - reg
810ff4827eSKrzysztof Kozlowski
820ff4827eSKrzysztof KozlowskiallOf:
830ff4827eSKrzysztof Kozlowski  - $ref: spi-controller.yaml#
840ff4827eSKrzysztof Kozlowski  - if:
850ff4827eSKrzysztof Kozlowski      properties:
860ff4827eSKrzysztof Kozlowski        compatible:
870ff4827eSKrzysztof Kozlowski          contains:
88*9dbeef8aSChanho Park            enum:
89*9dbeef8aSChanho Park              - samsung,exynos5433-spi
90*9dbeef8aSChanho Park              - samsung,exynosautov9-spi
910ff4827eSKrzysztof Kozlowski    then:
920ff4827eSKrzysztof Kozlowski      properties:
930ff4827eSKrzysztof Kozlowski        clocks:
940ff4827eSKrzysztof Kozlowski          minItems: 3
950ff4827eSKrzysztof Kozlowski          maxItems: 3
960ff4827eSKrzysztof Kozlowski        clock-names:
970ff4827eSKrzysztof Kozlowski          items:
980ff4827eSKrzysztof Kozlowski            - const: spi
990ff4827eSKrzysztof Kozlowski            - enum:
1000ff4827eSKrzysztof Kozlowski                - spi_busclk0
1010ff4827eSKrzysztof Kozlowski                - spi_busclk1
1020ff4827eSKrzysztof Kozlowski                - spi_busclk2
1030ff4827eSKrzysztof Kozlowski                - spi_busclk3
1040ff4827eSKrzysztof Kozlowski            - const: spi_ioclk
1050ff4827eSKrzysztof Kozlowski    else:
1060ff4827eSKrzysztof Kozlowski      properties:
1070ff4827eSKrzysztof Kozlowski        clocks:
1080ff4827eSKrzysztof Kozlowski          minItems: 2
1090ff4827eSKrzysztof Kozlowski          maxItems: 2
1100ff4827eSKrzysztof Kozlowski        clock-names:
1110ff4827eSKrzysztof Kozlowski          items:
1120ff4827eSKrzysztof Kozlowski            - const: spi
1130ff4827eSKrzysztof Kozlowski            - enum:
1140ff4827eSKrzysztof Kozlowski                - spi_busclk0
1150ff4827eSKrzysztof Kozlowski                - spi_busclk1
1160ff4827eSKrzysztof Kozlowski                - spi_busclk2
1170ff4827eSKrzysztof Kozlowski                - spi_busclk3
1180ff4827eSKrzysztof Kozlowski
1190ff4827eSKrzysztof KozlowskiunevaluatedProperties: false
1200ff4827eSKrzysztof Kozlowski
1210ff4827eSKrzysztof Kozlowskiexamples:
1220ff4827eSKrzysztof Kozlowski  - |
1230ff4827eSKrzysztof Kozlowski    #include <dt-bindings/clock/exynos5433.h>
1240ff4827eSKrzysztof Kozlowski    #include <dt-bindings/clock/samsung,s2mps11.h>
1250ff4827eSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
1260ff4827eSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
1270ff4827eSKrzysztof Kozlowski
1280ff4827eSKrzysztof Kozlowski    spi@14d30000 {
1290ff4827eSKrzysztof Kozlowski        compatible = "samsung,exynos5433-spi";
1300ff4827eSKrzysztof Kozlowski        reg = <0x14d30000 0x100>;
1310ff4827eSKrzysztof Kozlowski        interrupts = <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH>;
1320ff4827eSKrzysztof Kozlowski        dmas = <&pdma0 11>, <&pdma0 10>;
1330ff4827eSKrzysztof Kozlowski        dma-names = "tx", "rx";
1340ff4827eSKrzysztof Kozlowski        #address-cells = <1>;
1350ff4827eSKrzysztof Kozlowski        #size-cells = <0>;
1360ff4827eSKrzysztof Kozlowski        clocks = <&cmu_peric CLK_PCLK_SPI1>,
1370ff4827eSKrzysztof Kozlowski                 <&cmu_peric CLK_SCLK_SPI1>,
1380ff4827eSKrzysztof Kozlowski                 <&cmu_peric CLK_SCLK_IOCLK_SPI1>;
1390ff4827eSKrzysztof Kozlowski        clock-names = "spi",
1400ff4827eSKrzysztof Kozlowski                      "spi_busclk0",
1410ff4827eSKrzysztof Kozlowski                      "spi_ioclk";
1420ff4827eSKrzysztof Kozlowski        samsung,spi-src-clk = <0>;
1430ff4827eSKrzysztof Kozlowski        pinctrl-names = "default";
1440ff4827eSKrzysztof Kozlowski        pinctrl-0 = <&spi1_bus>;
1450ff4827eSKrzysztof Kozlowski        num-cs = <1>;
1460ff4827eSKrzysztof Kozlowski
1470ff4827eSKrzysztof Kozlowski        cs-gpios = <&gpd6 3 GPIO_ACTIVE_HIGH>;
1480ff4827eSKrzysztof Kozlowski
1490ff4827eSKrzysztof Kozlowski        audio-codec@0 {
1500ff4827eSKrzysztof Kozlowski            compatible = "wlf,wm5110";
1510ff4827eSKrzysztof Kozlowski            reg = <0x0>;
1520ff4827eSKrzysztof Kozlowski            spi-max-frequency = <20000000>;
1530ff4827eSKrzysztof Kozlowski            interrupt-parent = <&gpa0>;
1540ff4827eSKrzysztof Kozlowski            interrupts = <4 IRQ_TYPE_NONE>;
1550ff4827eSKrzysztof Kozlowski            clocks = <&pmu_system_controller 0>,
1560ff4827eSKrzysztof Kozlowski                     <&s2mps13_osc S2MPS11_CLK_BT>;
1570ff4827eSKrzysztof Kozlowski            clock-names = "mclk1", "mclk2";
1580ff4827eSKrzysztof Kozlowski
1590ff4827eSKrzysztof Kozlowski            gpio-controller;
1600ff4827eSKrzysztof Kozlowski            #gpio-cells = <2>;
1610ff4827eSKrzysztof Kozlowski            interrupt-controller;
1620ff4827eSKrzysztof Kozlowski            #interrupt-cells = <2>;
1630ff4827eSKrzysztof Kozlowski
1640ff4827eSKrzysztof Kozlowski            wlf,micd-detect-debounce = <300>;
1650ff4827eSKrzysztof Kozlowski            wlf,micd-bias-start-time = <0x1>;
1660ff4827eSKrzysztof Kozlowski            wlf,micd-rate = <0x7>;
1670ff4827eSKrzysztof Kozlowski            wlf,micd-dbtime = <0x2>;
1680ff4827eSKrzysztof Kozlowski            wlf,micd-force-micbias;
1690ff4827eSKrzysztof Kozlowski            wlf,micd-configs = <0x0 1 0>;
1700ff4827eSKrzysztof Kozlowski            wlf,hpdet-channel = <1>;
1710ff4827eSKrzysztof Kozlowski            wlf,gpsw = <0x1>;
1720ff4827eSKrzysztof Kozlowski            wlf,inmode = <2 0 2 0>;
1730ff4827eSKrzysztof Kozlowski
1740ff4827eSKrzysztof Kozlowski            wlf,reset = <&gpc0 7 GPIO_ACTIVE_HIGH>;
1750ff4827eSKrzysztof Kozlowski            wlf,ldoena = <&gpf0 0 GPIO_ACTIVE_HIGH>;
1760ff4827eSKrzysztof Kozlowski
1770ff4827eSKrzysztof Kozlowski            /* core supplies */
1780ff4827eSKrzysztof Kozlowski            AVDD-supply = <&ldo18_reg>;
1790ff4827eSKrzysztof Kozlowski            DBVDD1-supply = <&ldo18_reg>;
1800ff4827eSKrzysztof Kozlowski            CPVDD-supply = <&ldo18_reg>;
1810ff4827eSKrzysztof Kozlowski            DBVDD2-supply = <&ldo18_reg>;
1820ff4827eSKrzysztof Kozlowski            DBVDD3-supply = <&ldo18_reg>;
1830ff4827eSKrzysztof Kozlowski            SPKVDDL-supply = <&ldo18_reg>;
1840ff4827eSKrzysztof Kozlowski            SPKVDDR-supply = <&ldo18_reg>;
1850ff4827eSKrzysztof Kozlowski
1860ff4827eSKrzysztof Kozlowski            controller-data {
1870ff4827eSKrzysztof Kozlowski                samsung,spi-feedback-delay = <0>;
1880ff4827eSKrzysztof Kozlowski            };
1890ff4827eSKrzysztof Kozlowski        };
1900ff4827eSKrzysztof Kozlowski    };
191