diff options
author | br <br@FreeBSD.org> | 2015-01-24 13:07:07 +0000 |
---|---|---|
committer | br <br@FreeBSD.org> | 2015-01-24 13:07:07 +0000 |
commit | b126e557b253b006789504806612c8f6dc907bbe (patch) | |
tree | b35a2d9d1081351cdf0595352e471edd7cc62e26 /sys/arm/freescale/imx/imx6_anatop.c | |
parent | b8f7b5ec8d512cfc097c9038c760c6ab3382a28b (diff) | |
download | FreeBSD-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.c | 21 |
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) { |