BCM2708: Add core Device Tree support
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / max98357a-overlay.dts
1 // Overlay for Maxim MAX98357A audio DAC
2
3 // dtparams:
4 //     no-sdmode  - SD_MODE pin not managed by driver.
5 //     sdmode-pin - Specify GPIO pin to which SD_MODE is connected (default 4).
6
7 /dts-v1/;
8 /plugin/;
9
10 / {
11         compatible = "brcm,bcm2835";
12
13         /* Enable I2S */
14         fragment@0 {
15                 target = <&i2s>;
16                 __overlay__ {
17                         status = "okay";
18                 };
19         };
20
21         /* DAC whose SD_MODE pin is managed by driver (via GPIO pin) */
22         fragment@1 {
23                 target-path = "/";
24                 __overlay__ {
25                         max98357a_dac: max98357a {
26                                 compatible = "maxim,max98357a";
27                                 #sound-dai-cells = <0>;
28                                 sdmode-gpios = <&gpio 4 0>;   /* 2nd word overwritten by sdmode-pin parameter */
29                                 status = "okay";
30                         };
31                 };
32         };
33
34         /* DAC whose SD_MODE pin is not managed by driver */
35         fragment@2 {
36                 target-path = "/";
37                 __dormant__ {
38                         max98357a_nsd: max98357a {
39                                 compatible = "maxim,max98357a";
40                                 #sound-dai-cells = <0>;
41                                 status = "okay";
42                         };
43                 };
44         };
45
46         /* Soundcard connecting I2S to DAC with SD_MODE */
47         fragment@3 {
48                 target = <&sound>;
49                 __overlay__ {
50                         compatible = "simple-audio-card";
51                         simple-audio-card,format = "i2s";
52                         simple-audio-card,name = "MAX98357A";
53                         status = "okay";
54                         simple-audio-card,cpu {
55                                 sound-dai = <&i2s>;
56                         };
57                         simple-audio-card,codec {
58                                 sound-dai = <&max98357a_dac>;
59                         };
60                 };
61         };
62
63         /* Soundcard connecting I2S to DAC without SD_MODE */
64         fragment@4 {
65                 target = <&sound>;
66                 __dormant__ {
67                         compatible = "simple-audio-card";
68                         simple-audio-card,format = "i2s";
69                         simple-audio-card,name = "MAX98357A";
70                         status = "okay";
71                         simple-audio-card,cpu {
72                                 sound-dai = <&i2s>;
73                         };
74                         simple-audio-card,codec {
75                                 sound-dai = <&max98357a_nsd>;
76                         };
77                 };
78         };
79
80         __overrides__ {
81                 no-sdmode  = <0>,"-1+2-3+4";
82                 sdmode-pin = <&max98357a_dac>,"sdmode-gpios:4";
83         };
84 };