diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk
index 3c06926..b7b8656 100644
--- a/BoardConfigCommon.mk
+++ b/BoardConfigCommon.mk
@@ -56,6 +56,9 @@
 # BT
 BOARD_HAVE_BLUETOOTH := true
 
+# TinyHAL
+BOARD_USES_TINYHAL_AUDIO := true
+
 BOARD_SEPOLICY_DIRS += \
     device/generic/sdm845/sepolicy \
     system/bt/vendor_libs/linux/sepolicy
diff --git a/device-common.mk b/device-common.mk
index 94f5cda..d542303 100644
--- a/device-common.mk
+++ b/device-common.mk
@@ -112,15 +112,15 @@
 
 # Build tinyalsa cli tools for debugging
 PRODUCT_PACKAGES += \
-    tinyplay \
-    tinycap \
-    tinymix \
-    tinypcminfo
+    tinyplay2 \
+    tinycap2 \
+    tinymix2 \
+    tinypcminfo2
 
 # audio policy configuration
 USE_XML_AUDIO_POLICY_CONF := 1
 PRODUCT_COPY_FILES += \
-    $(LOCAL_PATH)/etc/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
+    $(LOCAL_PATH)/etc/audio.sdm845.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio.sdm845.xml \
     $(LOCAL_PATH)/etc/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
     $(LOCAL_PATH)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_bluetooth_legacy_hal.xml \
     frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
diff --git a/etc/audio.sdm845.xml b/etc/audio.sdm845.xml
new file mode 100644
index 0000000..4f76781
--- /dev/null
+++ b/etc/audio.sdm845.xml
@@ -0,0 +1,355 @@
+<!-- This file is provided as a reference for writing config files
+It does NOT represent any particular device and will NOT work on
+real hardware. You must create a file with the correct settings for
+your hardware, and the comments here will explain the layout of this
+file and expected content.
+On the target device this file must be located in /system/etc and named
+audio.<device>.xml, where <device> is the string returned by the system
+property ro.product.device
+-->
+
+<audiohal>
+
+    <!-- mixer element _must_ appear before any of the other definitions.
+    The ALSA card can be identified either by card number or by name.
+    Connect to ALSA card 0:
+        <mixer card="0">
+    Connect to ALSA card called "FooSound"
+        <mixer name="FooSound">
+    When the card is given by name, TinyHAL searches all /proc/asound/card*/id
+    files for a matching name.
+    -->
+        <mixer card="0"> <!-- <mixer name="sdm845" > -->
+
+        <!-- A pre_init element lists control settings that will cause new ALSA
+        controls to be added. Typically this is used to load firmware into a
+        DSP, causing new ALSA controls to be added for controls exported by the
+        firmware. After processing a pre_init element the ALSA controls are
+        reloaded to pick up any new controls. Other elements in the
+        configuration can then use those controls.
+        Multiple pre_init elements can be used, so that a pre_init can depend
+        on controls populated by a previous pre_init.
+        All pre_init elements must appear before the init element.
+        -->
+
+        <pre_init>
+            <!-- A list of ctl elements - see description of init element -->
+            <!-- <ctl name="DSP1 Preload Switch" val="1" /> -->
+        </pre_init>
+
+        <!-- An init element lists control settings required to initialize the
+        hardware and driver. These settings are applied only once when the
+        library is first loaded during boot.
+        -->
+
+        <init>
+
+            <!-- A sequence of ctl elements. Each entry sets a mixer
+            control to a given value. The entries are applied in the
+            order they are listed here.
+            Each entry _must_ have these attributes
+                name - name of the ALSA mixer control
+                val  - value to set it to
+            It can also have an index attribute giving the numeric index
+            of the control value to set. This is used where a control
+            has multiple value slots (for example a volume control
+            with two values, one for left channel and one for right), If
+            an index attribute is not given the content of the val attribute
+            will be applied to all value slots of the control.
+            The numbers in val and index attributes can be given in either
+            decimal, or hex (hex is prefixed with 0x). For a control with
+            enumerated values the val attribute must be a string
+            BYTE ARRAYS: for controls that are a byte array val must be
+            a string of comma-separated byte values. This can be shorter
+            than the total size of the control, combined with the
+            optional index attribute this allows any subset of the byte
+            array to be changed. Alternatively, a file attribute can be given
+            instead of the val attribute, and the raw byte content of the file
+            will be copied into the control. Note that the bytes in the file
+            must already be correctly formatted for writing into the ALSA
+            control. The file is read once when TinyHAL starts and this
+            cached content is used every time this <ctl> element is invoked.
+            -->
+
+            <ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia1" val="1" />
+            <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia2" val="1" />
+            <ctl name="MultiMedia3 Mixer SLIMBUS_0_TX" val="1" />
+            <ctl name="AIF1_CAP Mixer SLIM TX7" val="1" />
+            <ctl name="CDC_IF TX7 MUX" val="DEC7" />
+            <ctl name="SLIM RX0 MUX" val="AIF1_PB" />
+            <ctl name="SLIM RX1 MUX" val="AIF1_PB" />
+            <ctl name="SLIM RX2 MUX" val="AIF1_PB" />
+            <ctl name="SLIM RX3 MUX" val="AIF1_PB" />
+            <ctl name="SLIM RX4 MUX" val="ZERO" />
+            <ctl name="SLIM RX5 MUX" val="ZERO" />
+            <ctl name="SLIM RX6 MUX" val="ZERO" />
+            <ctl name="SLIM RX7 MUX" val="ZERO" />
+            <ctl name="RX INT7_1 MIX1 INP0" val="RX0" />
+            <ctl name="RX INT8_1 MIX1 INP0" val="RX1" />
+            <ctl name="RX INT1_2 MUX" val="RX0" />
+            <ctl name="RX INT2_2 MUX" val="RX1" />
+
+
+        </init>
+        </mixer>
+
+<!-- Next you must list all the devices supported by the hardware. The
+name attribute of the <device> element identifies the device. These names are
+recognized:
+    "global"        dummy global device - see explanation below
+    "speaker"       AUDIO_DEVICE_OUT_SPEAKER
+    "earpiece"      AUDIO_DEVICE_OUT_EARPIECE
+    "headset"       AUDIO_DEVICE_OUT_WIRED_HEADSET
+    "headset_in"    AUDIO_DEVICE_IN_WIRED_HEADSET
+    "headphone"     AUDIO_DEVICE_OUT_WIRED_HEADPHONE
+    "sco"           AUDIO_DEVICE_OUT_ALL_SCO
+    "sco_in"        AUDIO_DEVICE_IN_ALL_SCO
+    "a2dp"          AUDIO_DEVICE_OUT_ALL_A2DP
+    "usb"           AUDIO_DEVICE_OUT_ALL_USB
+    "mic"           AUDIO_DEVICE_IN_BUILTIN_MIC
+    "back mic"      AUDIO_DEVICE_IN_BACK_MIC
+    "voice"         AUDIO_DEVICE_IN_VOICE_CALL
+    "aux"           AUDIO_DEVICE_IN_AUX_DIGITAL
+Within the <device> element you can declare a number of "paths", each path
+defines a group of control settings to be applied. Each path is identified by
+a name. The "on" and "off" paths are special and list a global enable and
+disable setting for the device. Use of devices is reference-counted, when
+routing of a stream is changed to use a device that is currently disabled its
+"on" path will be applied. When no streams are using a device its "off"
+path will be applied.
+Other paths are user-defined and you can give them any name you choose.
+They are used to apply custom paths when required by a stream and will
+be used only when a stream is connected to or disconnected from a
+device if the <stream> element has an <enable> or <disable> element requesting
+that path.
+It is not mandatory to provide paths. You only need to define paths
+if there are specific control settings that must be applied. So for example
+if no controls need be applied to enable or disable a device then you
+do not need to define the "on" and "off" paths.
+The <ctl> elements within each path have the same format and behaviour
+as described under <mixer><init>.
+The "global" device is a special device the represents the audio system as a
+whole and is used to invoke mixer settings that are independent of any real
+device and which apply globally to the audio system. A stream is automatically
+connected to "global" when it is opened and disconnected when it is closed.
+The behaviour is identical to the way paths are invoked in any other <device>
+entry so the effect is
+    - the "on" path will be applied when a stream is opened and there are
+        no other streams already open. As an example this could be used to
+        bring the audio hardware out of a standby state
+    - the "off" path will be applied when the last open stream is closed.
+        As an example this could be used to put the audio hardware into a
+        standby state
+    - the custom paths will be applied when the stream that requests them
+        is opened or closed.
+-->
+
+        <device name="speaker">
+            <path name="on">
+                <!-- List of ctl element for control values to apply
+                when this device is enabled -->
+                <!-- <ctl name="Amp DSP Switch" val="1"/> -->
+            </path>
+
+            <path name="off">
+                <!-- List of ctl element for control values to apply
+                when this device is disabled -->
+                <!-- <ctl name="Amp DSP Switch" val="0"/> -->
+            </path>
+
+            <!-- Following paths are user-defined and are applied when a
+            <stream> elements' routing is changed to add or remove this
+            device. If the path name matches the name given in the <stream>
+            element it will be applied. A stream could be routed to multiple
+            inputs or outputs - the paths for connecting and disconnecting
+            a stream to a device must therefore have the same name in each
+            <device>.
+            It is not mandatory to declare custom paths - depending on your
+            hardware there may not be any specific action required to route
+            a stream to a particular device. Also you do not have to define
+            the path in every device, only the devices where some action must
+            be taken to connect or disconnect a stream.
+            For this example four custom paths are defined:
+                pcm_out_en = control setting to connect PCM output to this device
+                pcm_out_dis = control setting to disconnect PCM output from this device
+            -->
+
+            <path name="pcm_out_en">
+                <ctl name="I2S RX0 MUX" val="AIF1_PB" />
+                <ctl name="MI2S_RX Channels" val="One" />
+                <ctl name="CDC_IF RX0 MUX" val="I2S RX0" />
+                <ctl name="RX INT8_1 MIX1 INP0" val="RX0" />
+                <ctl name="COMP8 Switch" val="1" />
+                <ctl name="SpkrRight COMP Switch" val="1" />
+                <ctl name="SpkrRight BOOST Switch" val="1" />
+                <ctl name="SpkrRight VISENSE Switch" val="1" />
+                <ctl name="SpkrRight SWR DAC_Port Switch" val="1" />
+            </path>
+            <path name="pcm_out_dis">
+            </path>
+        </device>
+
+        <device name="headphone">
+            <!-- <path name="on">
+                <ctl name="SLIM RX2 MUX" val="AIF1_PB"/>
+                <ctl name="SLIM RX3 MUX" val="AIF1_PB"/>
+                <ctl name="RX INT1 DEM MUX" val="CLSH_DSM_OUT"/>
+                <ctl name="RX INT2 DEM MUX" val="CLSH_DSM_OUT"/>
+                <ctl name="RX INT1_1 MIX1 INP0" val="RX2"/>
+                <ctl name="RX INT2_1 MIX1 INP0" val="RX3"/>
+                <ctl name="RX INT1_1 INTERP" val="RX INT1_1 MI"/>
+                <ctl name="RX INT2_1 INTERP" val="RX INT2_1 MI"/>
+                <ctl name="RX0 Digital Volume" val="0"/>
+                <ctl name="RX1 Digital Volume" val="80"/>
+                <ctl name="RX2 Digital Volume" val="80"/>
+            </path>
+
+            <path name="off">
+                <ctl name="SLIM RX2 MUX" val="ZERO"/>
+                <ctl name="SLIM RX3 MUX" val="ZERO"/>
+                <ctl name="RX INT1 DEM MUX" val="ZERO"/>
+                <ctl name="RX INT2 DEM MUX" val="ZERO"/>
+                <ctl name="RX INT1_1 MIX1 INP0" val="ZERO"/>
+                <ctl name="RX INT2_1 MIX1 INP0" val="ZERO"/>
+                <ctl name="RX INT1_1 INTERP" val="ZERO"/>
+                <ctl name="RX INT2_1 INTERP" val="ZERO"/>
+                <ctl name="RX1 Digital Volume" val="0"/>
+                <ctl name="RX2 Digital Volume" val="0"/>
+            </path> -->
+
+
+            <path name="pcm_out_en">
+                <ctl name="SLIM RX2 MUX" val="AIF4_PB" />
+                <ctl name="SLIM RX3 MUX" val="AIF4_PB" />
+                <ctl name="RX INT1_2 MUX" val="RX2" />
+                <ctl name="RX INT2_2 MUX" val="RX3" />
+            </path>
+
+            <path name="pcm_out_dis">
+                <ctl name="SLIM RX2 MUX" val="ZERO" />
+                <ctl name="SLIM RX3 MUX" val="ZERO" />
+                <ctl name="RX INT1_2 MUX" val="ZERO" />
+                <ctl name="RX INT2_2 MUX" val="ZERO" />
+            </path>
+        </device>
+
+<!-- Following the device definitions there must be a <stream> entry
+for every output and input stream supported by the hardware. It is also
+possible to define a 'global' stream that is not associated with any particular
+audio input or output but instead can be used to handle actions that are
+global to the audio hardware.
+There are two types of stream that can be declared here:
+- anonymous streams, these will be used to supply playback and record
+    streams for AudioFlinger
+- named streams, which are mainly used to declare custom streams to handle
+    special routing use-cases that are external to the normal Android audio
+    path - typically where the audio is routed entirely in hardware without
+    being passed through Android, for example the baseband audio link or
+    FM radio.
+    The global stream is a special case of a named stream and must have the
+    name "global"
+For standard anonymous streams there are two that would normally be on
+any device: PCM input and PCM output. It is also possible to declare a stream
+as "compress" - this is intended for cases where a playback stream is
+decompressed in hardware, or a record stream provides raw compressed data that
+must be decompressed in software.
+Named streams can be declared as type "hw", to represent a hardware-hardware
+link.
+The "global" named stream can be used to handle events that are not specific
+to any particular stream. Typically this is used to implement usecase handlers
+(see below) to handle set_parameter messages sent to the HAL's global
+(struct audio_device*)->hw_device.set_parameters function (for example, the
+"orientation" parameter that is sent by Android.)
+Mandatory attributes for PCM and compressed streams:
+    type    must be "pcm" or "compress"
+    dir     direction of stream, either "in" (recording) or "out" (playback)
+Mandatory for named streams:
+    type    must be "pcm", "compress" or "hw"
+    dir     direction of stream, either "in" (recording) or "out" (playback)
+    name    a custom name for a named stream. The name you choose here must
+                match the name your HAL will use to request this stream
+Mandatory for hw streams:
+    type    must be "hw"
+    dir     direction of stream, either "in" (recording) or "out" (playback)
+    name    a custom name for the stream (hw streams must be named streams)
+Mandatory for the global stream:
+    type    must be "hw"
+    name    must be "global"
+Optional attributes:
+    card    ALSA card number. If not given this defaults to 0
+    device  ALSA device number. If not given this defaults to 0
+    instances   limits the maximum number of instances of this stream, if not
+                specified the number of instances is unlimited
+    name    a custom name for a named stream. The name you choose here must
+                match the name your HAL will use to request this stream
+Anonymous PCM streams should not normally have an instance limit.
+TinyHAL defines a specific named stream:
+"voice recognition" - a PCM or compressed stream for voice recognition input.
+                      If a stream with this name is not defined TinyHAL will
+                      use the normal PCM input stream for voice recognition audio.
+-->
+
+    <stream type="pcm" dir="out" card="0" device="0">
+        <!-- The <enable> and <disable> tags give the name of a path
+        to apply for each connected device when the stream is either connected
+        to (enable) or disconnected from (disable) that device.
+        The way this works is that when stream routing changes, the HAL will
+        look through the paths of each device this stream is connected to,
+            - for each device the stream is being disconnected from, if it
+                contains a path matching the path name in <disable>, that path
+                will be applied.
+            - for each device the stream is being connected to, if it
+                contains a path matching the path name in <enable>, that path
+                will be applied.
+        -->
+        <enable path="pcm_out_en"/>
+        <disable path="pcm_out_dis"/>
+
+        <!-- The optional usecase block allows you to define custom use-cases that
+        are triggered by set_parameter() calls to the HAL. The set_parameter()
+        is a string of the form <setting>=<value>. The HAL will search for a
+        usecase block whose name attribute matches <setting> and within that
+        a case block whose name attribute matches <value>. If a matching case
+        block is found the enclosed <ctl> blocks will be applied.
+        The example below defines a use case for switching a codec algorithm
+        between wideband and narrowband response. The two cases will be
+        triggered by a set_parameter() of "bandwidth=narrow" or "bandwidth=wide".
+        -->
+        <!-- <usecase name="bandwidth">
+            <case name="narrow">
+                <ctl name="Codec Wideband" val="0" />
+            </case>
+            <case name="wide">
+                <ctl name="Codec Wideband" val="1" />
+            </case>
+        </usecase> -->
+
+        <!-- Constant values. These allow setting named values that can
+        be read by the audio HAL at runtime. Values are 32-bit unsigned.
+        This is useful for setting HAL-specific or hardware-specific
+        information.
+        The names have no meaning to the config manager, and are
+        entirely defined by the audio HAL.
+        If you want to set constants that are global, rather than part
+        of a stream, define a hw stream called "global".
+        to hold the values.
+        -->
+        <!-- <set name="foo" val="42"/> -->
+
+    </stream>
+
+    <stream type="pcm" dir="out" card="0" device="1">
+    </stream>
+
+    <!-- Example named stream, in this case for an FM radio path . This will not
+    be available for standard AudioFlinger playback and record paths. It must
+    be explicitly requested by the audio HAL when FM radio is enabled
+    -->
+    <!-- control paths to be enabled when this stream is enabled or disabled -->
+    <!-- <stream name="FM radio" type="pcm" dir="in" card="0" device="0">
+        
+        <enable path="fm_radio_en"/>
+        <disable path="fm_radio_dis"/>
+    </stream> -->
+
+</audiohal>
diff --git a/etc/mixer_paths.xml b/etc/mixer_paths.xml
index db4db9d..1f32bcb 100644
--- a/etc/mixer_paths.xml
+++ b/etc/mixer_paths.xml
@@ -98,4 +98,9 @@
 tinymix "RX1 Digital Volume" 84
 tinymix "RX2 Digital Volume" 84
 
+tinymix2 set "SLIM RX2 MUX" "AIF4_PB"
+tinymix2 set "SLIM RX3 MUX" "AIF4_PB"
+tinymix2 set "RX INT1_2 MUX" "RX2"
+tinymix2 set "RX INT2_2 MUX" "RX3"
+
 -->
\ No newline at end of file
