ARM: da850-lego-ev3: Add device tree node for sound
authorDavid Lechner <david@lechnology.com>
Tue, 7 Feb 2017 19:22:09 +0000 (13:22 -0600)
committerSekhar Nori <nsekhar@ti.com>
Tue, 7 Mar 2017 10:04:08 +0000 (15:34 +0530)
This adds a device tree node for sound on LEGO MINDSTORMS EV3. The EV3
uses one of the SoC PWMs connected to an amplifier to create sound from
a speaker.

The PWM is passed through a low-pass filter, so it is actually possible
to do PCM playback, but there is no existing driver, so just using
pwm-beeper for now, since it is also a compatible mode of operation.

Signed-off-by: David Lechner <david@lechnology.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
arch/arm/boot/dts/da850-lego-ev3.dts

index 03095372ce68b2eaa5f3b9fc0f1b71460f1ec087..c20580a7356e858951ed7eaa271b8ed2575537b9 100644 (file)
                pinctrl-0 = <&system_power_pin>;
        };
 
+       sound {
+               compatible = "pwm-beeper";
+               pinctrl-names = "default";
+               pinctrl-0 = <&ehrpwm0b_pins>;
+               pwms = <&ehrpwm0 1 1000000 0>;
+               amp-supply = <&amp>;
+       };
+
        /*
         * This is a 5V current limiting regulator that is shared by USB,
         * the sensor (input) ports, the motor (output) ports and the A/DC.
                regulator-boot-on;
                vin-supply = <&vcc5v>;
        };
+
+       /*
+        * This is the amplifier for the speaker.
+        */
+       amp: regulator3 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&amp_pins>;
+               compatible = "regulator-fixed";
+               regulator-name = "amp";
+               gpio = <&gpio 111 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
 };
 
 &pmx_core {
                        0x4c 0x00008000 0x0000f000
                >;
        };
+
+       amp_pins: pinmux_amp_pins {
+               pinctrl-single,bits = <
+                       /* GP6[15] */
+                       0x34 0x00000008 0x0000000f
+               >;
+       };
 };
 
 &pinconf {
        };
 };
 
+&ehrpwm0 {
+       status = "okay";
+};
+
 &gpio {
        status = "okay";
 };