mcbsp.c (1164B)
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * linux/arch/arm/mach-omap2/mcbsp.c 4 * 5 * Copyright (C) 2008 Instituto Nokia de Tecnologia 6 * Contact: Eduardo Valentin <eduardo.valentin@indt.org.br> 7 * 8 * Multichannel mode not supported. 9 */ 10#include <linux/module.h> 11#include <linux/init.h> 12#include <linux/clk.h> 13#include <linux/err.h> 14#include <linux/io.h> 15#include <linux/of.h> 16#include <linux/platform_device.h> 17#include <linux/slab.h> 18#include <linux/platform_data/asoc-ti-mcbsp.h> 19#include <linux/pm_runtime.h> 20 21#include <linux/omap-dma.h> 22 23#include "soc.h" 24#include "omap_device.h" 25#include "clock.h" 26 27/* 28 * FIXME: Find a mechanism to enable/disable runtime the McBSP ICLK autoidle. 29 * Sidetone needs non-gated ICLK and sidetone autoidle is broken. 30 */ 31#include "cm3xxx.h" 32#include "cm-regbits-34xx.h" 33 34static int omap3_mcbsp_force_ick_on(struct clk *clk, bool force_on) 35{ 36 if (!clk) 37 return 0; 38 39 if (force_on) 40 return omap2_clk_deny_idle(clk); 41 else 42 return omap2_clk_allow_idle(clk); 43} 44 45void __init omap3_mcbsp_init_pdata_callback( 46 struct omap_mcbsp_platform_data *pdata) 47{ 48 if (!pdata) 49 return; 50 51 pdata->force_ick_on = omap3_mcbsp_force_ick_on; 52}