[openfirmware] [commit] r3219 - cpu/arm/olpc

repository service svn at openfirmware.info
Thu Aug 23 22:20:16 CEST 2012


Author: wmb
Date: Thu Aug 23 22:20:15 2012
New Revision: 3219
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3219

Log:
OLPC ARM - Changed the representation of the audio device in the device tree, for compatibility with Linux's alsa soc framework.

Modified:
   cpu/arm/olpc/sound.fth

Modified: cpu/arm/olpc/sound.fth
==============================================================================
--- cpu/arm/olpc/sound.fth	Thu Aug 23 22:18:47 2012	(r3218)
+++ cpu/arm/olpc/sound.fth	Thu Aug 23 22:20:15 2012	(r3219)
@@ -1,10 +1,58 @@
-[ifdef] olpc-cl4
-0 0  " c0ffd800"  " /" begin-package
-[else]
-0 0  " d42a0800"  " /" begin-package
-[then]
+0 0  " 1a" " /i2c at d4011000" begin-package  \ TWSI1
+   " audio-codec" name
+   " realtek,alc5631" +compatible
+   " realtek,rt5631" +compatible
+   my-address my-space 1 reg
+   " rt5631-hifi" " dai-name" string-property  \ snd_soc_dai_link.codec_dai_name
+end-package
+
+: +audio  ( offset -- address )
+   [ifdef] mmp3  h# c0ffd000  [else]  h# d42a0000  [then]  +
+;
+
+dev /
+new-device
+   " adma" device-name
+   h# 800 +audio  h# 100 reg
+   d# 47 " interrupts" integer-property
+   current-device  ( adma0-ph )
+finish-device
+
+new-device
+   " adma" device-name
+   h# 900 +audio  h# 100 reg
+   d# 48 " interrupts" integer-property
+   current-device  ( adma0-ph adma1-ph )
+finish-device
+
+new-device
+   " asram" device-name
+   audio-sram-pa /audio-sram reg
+
+   \ We call this the platform driver, a single point that collects
+   \ the Audio DMA resources
+   " mrvl,mmp-pcm-audio" +compatible   \ snd_soc_dai_link.cpu_dai_of_node
+
+   ( adma0-ph adma1-ph )
+   encode-int rot encode-int encode+  " adma-nodes" property
+finish-device
+
+new-device
+   " sspa" name
+   h# d00 +audio  h# 100 reg
+
+   " mrvl,mmp-sspa-dai" +compatible
+
+   " /pmua" encode-phandle d# 20 encode-int encode+ " clocks" property
+   d# 3 " interrupts" integer-property
+finish-device
+
+new-device
+
 " audio" name
-my-space h# 800 reg
+h# c00 +audio  h# 100 reg
+
+" mrvl,mmp-sspa-dai" +compatible
 
 " /pmua" encode-phandle d# 20 encode-int encode+ " clocks" property
 d# 2 " interrupts" integer-property
@@ -606,14 +654,15 @@
 : (close)
 \ Reinstate audio-clock-off when Linux turns on its own clock
 \   audio-clock-off
-   adma-base h# 800 " map-out" $call-parent
+   adma-base h# 100 " map-out" $call-parent
+   sspa-base h# 100 " map-out" $call-parent
    0 to adma-base  0 to sspa-base
 ;
 0 value open-count
 : open  ( -- flag )
    open-count 0=  if
-      my-space h# 800 " map-in" $call-parent to adma-base
-      adma-base h# 400 + to sspa-base
+      my-unit h# 400 -  h# 100 " map-in" $call-parent to adma-base
+      my-unit           h# 100 " map-in" $call-parent to sspa-base
       audio-clock-on  if  (close) false exit  then
       init-codec
    then
@@ -660,7 +709,9 @@
 fload ${BP}/dev/hdaudio/test.fth
 warning !
 
-end-package
+finish-device
+
+device-end
 
 : (watch-dc)  ( bias? -- )
    " /audio" open-dev >r          ( bias? r: ihandle )
@@ -671,6 +722,32 @@
 : watch-dc-unbiased  ( -- )  false  (watch-dc)  ;
 
 
+0 0 " "  " /"  begin-package
+   " audio-complex" device-name
+   " olpc,mmp-audio" +compatible
+
+   \ The name that was hardcoded in the Linux driver was OLPC XO-1.75
+   " OLPC XO" " model" string-property
+
+   : +string  encode-string encode+  ;
+
+   0 0 encode-bytes
+      " Headphone Jack" +string " HPOL"     +string
+      " Headphone Jack" +string " HPOR"     +string
+      " MIC2"           +string " Mic Jack" +string
+   " audio-routing" property
+
+   " /audio-codec"  encode-phandle  " codec-node"    property
+   " /audio"        encode-phandle  " cpu-dai-node"  property
+   " /asram"        encode-phandle  " platform-node" property
+
+   \ SND_SOC_DAIFTM_xxx:
+   \ 4000 is ..CBS_CFS - the codec is the slave for clk and FRM
+   \ 0100 is ..NB_NF   - non-inverted BCLK and FRM
+   \ 0001 is ..I2S     - standard I2S bit positions
+   h# 4101  " dai-format" encode-int
+end-package
+
 \ LICENSE_BEGIN
 \ Copyright (c) 2011 FirmWorks
 \ 



More information about the openfirmware mailing list