summaryrefslogtreecommitdiffstats
path: root/sys/arm/freescale/imx/imx6_anatop.c
diff options
context:
space:
mode:
authorbr <br@FreeBSD.org>2015-01-24 13:07:07 +0000
committerbr <br@FreeBSD.org>2015-01-24 13:07:07 +0000
commitb126e557b253b006789504806612c8f6dc907bbe (patch)
treeb35a2d9d1081351cdf0595352e471edd7cc62e26 /sys/arm/freescale/imx/imx6_anatop.c
parentb8f7b5ec8d512cfc097c9038c760c6ab3382a28b (diff)
downloadFreeBSD-src-b126e557b253b006789504806612c8f6dc907bbe.zip
FreeBSD-src-b126e557b253b006789504806612c8f6dc907bbe.tar.gz
Add support for audio transmitting, include drivers for:
o Digital Audio Multiplexer (AUDMUX) o Smart Direct Memory Access Controller (SDMA) o Synchronous Serial Interface (SSI) Disable by default as it depends on SDMA firmware. Sponsored by: Machdep, Inc.
Diffstat (limited to 'sys/arm/freescale/imx/imx6_anatop.c')
-rw-r--r--sys/arm/freescale/imx/imx6_anatop.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/arm/freescale/imx/imx6_anatop.c b/sys/arm/freescale/imx/imx6_anatop.c
index fab28b3..644ac7f 100644
--- a/sys/arm/freescale/imx/imx6_anatop.c
+++ b/sys/arm/freescale/imx/imx6_anatop.c
@@ -710,6 +710,27 @@ out:
return (err);
}
+uint32_t
+pll4_configure_output(uint32_t mfi, uint32_t mfn, uint32_t mfd)
+{
+ int reg;
+
+ /*
+ * Audio PLL (PLL4).
+ * PLL output frequency = Fref * (DIV_SELECT + NUM/DENOM)
+ */
+
+ reg = (IMX6_ANALOG_CCM_PLL_AUDIO_ENABLE);
+ reg &= ~(IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_MASK << \
+ IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_SHIFT);
+ reg |= (mfi << IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_SHIFT);
+ imx6_anatop_write_4(IMX6_ANALOG_CCM_PLL_AUDIO, reg);
+ imx6_anatop_write_4(IMX6_ANALOG_CCM_PLL_AUDIO_NUM, mfn);
+ imx6_anatop_write_4(IMX6_ANALOG_CCM_PLL_AUDIO_DENOM, mfd);
+
+ return (0);
+}
+
static int
imx6_anatop_probe(device_t dev)
{
OpenPOWER on IntegriCloud