On Wednesday, November 18, 2015 at 6:26:49 PM UTC-5, RobertCNelson wrote:
>
> On Wed, Nov 18, 2015 at 5:19 PM, Cad Soft <[email protected] 
> <javascript:>> wrote: 
> > 
> > login as: root 
> > Debian GNU/Linux 7 
> > 
> > BeagleBoard.org Debian Image 2015-11-03 
> > 
> > Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian 
> > 
> > default username:password is [debian:temppwd] 
> > 
> > Last login: Wed Nov 18 21:36:53 2015 from 192.168.7.1 
> > root@beaglebone:~# ls /proc/asound 
> > cards  devices  oss  pcm  seq  timers  version 
> > root@beaglebone:~# uname -a 
> > Linux beaglebone 3.8.13-bone79 #1 SMP Tue Oct 13 20:44:55 UTC 2015 
> armv7l 
> > GNU/Linux 
> > 
> > Hello All, 
> > 
> > This is my first post so I apologize if I ask anything that should be 
> > obvious. 
> > 
> > I built a custom audio cape based on the PCM5102A audio DAC from TI. 
> With an 
> > older version of the image I could direct the sound output from mplayer 
> or 
> > ffmpeg to the Black soundcard which is just straight I2S coming out of 
> the 
> > pins and it worked beautifully. Now my project requires the use of a 4D 
> > systems 4DCape-70T so I updated to the latest Debian image. Now this 
> image 
> > doesn't have the Black soundcard, so I can't get audio working. 
>
> Well... By plugging the 4DCape-70T cape in, the hdmi & hdmi audio have 
> been disabled.. 
>
> Since you were piggy back riding on the hdmi audio, you'll need to 
> enable audio.... 
>
>
> https://github.com/beagleboard/linux/blob/3.8/firmware/capes/cape-boneblack-hdmi-00A0.dts#L140-L174
>  
>
> Regards, 
>
> -- 
> Robert Nelson 
> https://rcn-ee.com/


Hi Robert,

Here's as far as I've gotten. From your response I figured you were hinting 
at me modifying the device tree overlay to enable the HDMI audio. I looked 
at the slots on my BBB and found that the screen is using the 
BB-BONE-LCD7-01-00A3 overlay. So I downloaded that one and modified it 
based on the example you provided.

Here is the result:
 
/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;
/plugin/;

/ {
    compatible = "ti,beaglebone", "ti,beaglebone-black", 
"ti,beaglebone-green";

    /* identification */
    part-number = "BB-BONE-LCD7-01";
    version = "00A3";

    /* state the resources this cape uses */
    exclusive-use =
        /* the pin header uses */
        "P8.45",    /* lcd: lcd_data0 */
        "P8.46",    /* lcd: lcd_data1 */
        "P8.43",    /* lcd: lcd_data2 */
        "P8.44",    /* lcd: lcd_data3 */
        "P8.41",    /* lcd: lcd_data4 */
        "P8.42",    /* lcd: lcd_data5 */
        "P8.39",    /* lcd: lcd_data6 */
        "P8.40",    /* lcd: lcd_data7 */
        "P8.37",    /* lcd: lcd_data8 */
        "P8.38",    /* lcd: lcd_data9 */
        "P8.36",    /* lcd: lcd_data10 */
        "P8.34",    /* lcd: lcd_data11 */
        "P8.35",    /* lcd: lcd_data12 */
        "P8.33",    /* lcd: lcd_data13 */
        "P8.31",    /* lcd: lcd_data14 */
        "P8.32",    /* lcd: lcd_data15 */
        "P8.27",    /* lcd: lcd_vsync */
        "P8.29",    /* lcd: lcd_hsync */
        "P8.28",    /* lcd: lcd_pclk */
        "P8.30",    /* lcd: lcd_ac_bias_en */
        "P9.22",    /* lcd: gpio0_2 */
        "P9.12",    /* led: gpio1_28 */
        "P9.14",    /* pwm: ehrpwm1a */
        "P9.15",    /* keys: gpio1_16 */
        "P9.23",    /* keys: gpio1_17 */
        "P9.16",    /* keys: gpio1_19 */
        "P9.30",    /* keys: gpio3_16 */
        "P9.21",    /* keys: gpio0_3 */
        /* the hardware IP uses */
        "gpio0_2",
        "gpio1_28",
        "gpio1_16",
        "gpio1_17",
        "gpio1_19",
        "gpio3_16",
        "gpio0_3",
        "lcd",
        "ehrpwm1a";

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {

            bone_lcd7_cape_led_00A3_pins: 
pinmux_bone_lcd7_cape_led_00A3_pins {
                pinctrl-single,pins = <
                    0x078 0x2f    /* gpmc_ben1.gpio1_28, INPUT | PULLDIS | 
MODE7 */
                >;
            };

            pwm_bl_pins: pinmux_pwm_bl_pins {
                pinctrl-single,pins = <
                    0x48 0x06       /* gpmc_a2.ehrpwm1a, OMAP_MUX_MODE6 | 
AM33XX_PIN_OUTPUT */
                >;
            };

            bone_lcd7_cape_lcd_pins: pinmux_bone_lcd7_cape_lcd_pins {
                pinctrl-single,pins = <
                    0x150 0x07    /* spi0_sclk.gpio0_2, OUTPUT | MODE7 - 
AVDD_EN */
                    0xa0 0x08    /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xa3 0x08    /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xa8 0x08    /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xac 0x08    /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xb0 0x08    /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xb4 0x08    /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xb8 0x08    /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xbc 0x08    /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xc0 0x08    /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xc4 0x08    /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xc8 0x08    /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xcc 0x08    /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xd0 0x08    /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xd4 0x08    /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xd8 0x08    /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xdc 0x08    /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */
                    0xe0 0x00    /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT */
                    0xe4 0x00    /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT */
                    0xe8 0x00    /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | 
AM33XX_PIN_OUTPUT */
                    0xec 0x00    /* lcd_ac_bias_en.lcd_ac_bias_en, 
OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */
                >;
            };

            bone_lcd7_cape_keys_00A3_pins: 
pinmux_bone_lcd7_cape_keys_00A3_pins {
                pinctrl-single,pins = <
                    0x040 0x2f    /* KEY_LEFT gpmc_a0.gpio1_16, INPUT | 
PULLDIS | MODE7 */
                    0x044 0x2f    /* KEY_RIGHT gpmc_a1.gpio1_17, INPUT | 
PULLDIS | MODE7 */
                    0x04c 0x2f     /* KEY_UP gpmc_a3.gpio1_19, INPUT | 
PULLDIS | MODE7 */
                    0x198 0x2f    /* KEY_DOWN mcasp0_axr0.gpio3_16, INPUT | 
PULLDIS | MODE7 */
                    0x154 0x2f    /* KEY_ENTER spi0_d0.gpio0_3, INPUT | 
PULLDIS | MODE7 */
                >;
            };

        };
    };

    fragment@1 {
        target = <&epwmss1>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@2 {
        target = <&ehrpwm1>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@3 {
        target = <&ocp>;

        __overlay__ {

            /* avoid stupid warning */
            #address-cells = <1>;
            #size-cells = <1>;

            backlight {
                compatible      = "pwm-backlight";
                pinctrl-names   = "default";
                pinctrl-0       = <&pwm_bl_pins>;
                status = "okay";

                pwms = <&ehrpwm1 0 500000 0>;
                pwm-names = "LCD7";
                brightness-levels = <0 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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 
91 92 93 94 95 96 97 98 99 100>;
                default-brightness-level = <101>; /* index to the array 
above */
            };

            tscadc {
                compatible = "ti,ti-tscadc";
                reg = <0x44e0d000 0x1000>;

                interrupt-parent = <&intc>;
                interrupts = <16>;
                ti,hwmods = "adc_tsc";
                status = "okay";

                tsc {
                    ti,wires = <4>;
                    ti,x-plate-resistance = <200>;
                    ti,coordinate-readouts = <5>;
                    ti,wire-config = <0x00 0x11 0x22 0x33>;
                };

                adc {
                    ti,adc-channels = <4 5 6 7>;
                };
            };

            gpio-leds-cape-lcd7 {
                compatible = "gpio-leds";
                pinctrl-names = "default";

                pinctrl-0 = <&bone_lcd7_cape_led_00A3_pins>;

                lcd7-led0 {
                    label = "lcd7:green:usr0";
                    gpios = <&gpio2 28 0>;
                    linux,default-trigger = "heartbeat";
                    default-state = "off";
                };

            };

            gpio_keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                pinctrl-0 = <&bone_lcd7_cape_keys_00A3_pins>;

                #address-cells = <1>;
                #size-cells = <0>;

                button@1 {
                    debounce_interval = <50>;
                    linux,code = <105>;
                    label = "left";
                    gpios = <&gpio2 16 0x1>;
                    gpio-key,wakeup;
                    autorepeat;
                };
                button@2 {
                    debounce_interval = <50>;
                    linux,code = <106>;
                    label = "right";
                    gpios = <&gpio2 17 0x1>;
                    gpio-key,wakeup;
                    autorepeat;
                };
                button@3 {
                    debounce_interval = <50>;
                    linux,code = <103>;
                    label = "up";
                    gpios = <&gpio2 19 0x1>;
                    gpio-key,wakeup;
                    autorepeat;
                };
                button@4 {
                    debounce_interval = <50>;
                    linux,code = <108>;
                    label = "down";
                    gpios = <&gpio4 16 0x1>;
                    gpio-key,wakeup;
                    autorepeat;
                };
                button@5 {
                    debounce_interval = <50>;
                    linux,code = <28>;
                    label = "enter";
                    gpios = <&gpio1 3 0x1>;
                    gpio-key,wakeup;
                };
            };

            /* Settings for ThreeFive S9700RTWV35TR / LCD7 cape: */
            panel {
                compatible = "tilcdc,panel";
                pinctrl-names = "default";
                pinctrl-0 = <&bone_lcd7_cape_lcd_pins>;
                panel-info {
                    ac-bias           = <255>;
                    ac-bias-intrpt    = <0>;
                    dma-burst-sz      = <16>;
                    bpp               = <16>;
                    fdd               = <0x80>;
                    tft-alt-mode      = <0>;
                    stn-565-mode      = <0>;
                    mono-8bit-mode    = <0>;
                    sync-edge         = <0>;
                    sync-ctrl         = <1>;
                    raster-order      = <0>;
                    fifo-th           = <0>;
                };
                display-timings {
                    native-mode = <&timing0>;
                    timing0: 800x480 {
                        hactive         = <800>;
                        vactive         = <480>;
                        hback-porch     = <40>;
                        hfront-porch    = <40>;
                        hsync-len       = <48>;
                        vback-porch     = <30>;
                        vfront-porch    = <13>;
                        vsync-len       = <3>;
                        clock-frequency = <30000000>;
                        hsync-active    = <0>;
                        vsync-active    = <0>;
                    };
                };
            };

            fb {
                compatible = "ti,am33xx-tilcdc";
                reg = <0x4830e000 0x1000>;
                interrupt-parent = <&intc>;
                interrupts = <36>;
                ti,hwmods = "lcdc";
                ti,power-gpio = <&gpio1 2 0x0>;
                ti,allow-non-reduced-blanking-modes;
            };

        };
    };
    
    fragment@4 {
        target = <&mcasp0>;
        __overlay__ {
            pinctrl-names = "default";
            pinctrl-0 = <&mcasp0_pins>;

            status = "okay";

            op-mode = <0>;          /* MCASP_IIS_MODE */
            tdm-slots = <2>;
            num-serializer = <16>;
            serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
                0 0 1 0
                0 0 0 0
                0 0 0 0
                0 0 0 0
            >;
            tx-num-evt = <1>;
            rx-num-evt = <1>;
        };
    };

    fragment@5 {
        target = <&ocp>;
        __overlay__ {
            sound {
                compatible = "ti,am33xx-beaglebone-black";
                ti,model = "TI BeagleBone Black";
                ti,audio-codec = <&nxptda>;
                ti,mcasp-controller = <&mcasp0>;
                ti,codec-clock-rate = <2457600>;
                mcasp_clock_enable = <&gpio2 27 0>; /*BeagleBone Black Clk 
enable on GPIO1_27, maybe not necessary for my shield */
            };
        };
    };
};

I compiled it on the beaglebone black using the instructions here: 
http://elinux.org/BeagleBone_and_the_3.8_Kernel#Cape_Manager_and_Device_Tree_Overlays
and copied it to /lib/firmware

I then rebooted the beaglebone black, but still no HDMI audio. I was 
thinking of modifying uEnv.txt but I'm not sure if I'm on the right track.

Thanks in advanced for any help you can provide.

Best Regards,
Jorge Garcia 

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to