1 /* 2 * Copyright (c) 2010-2011,2013-2015 The Linux Foundation. All rights reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 and 6 * only version 2 as published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * lpass.h - Definitions for the QTi LPASS 14 */ 15 16 #ifndef __LPASS_H__ 17 #define __LPASS_H__ 18 19 #include <linux/clk.h> 20 #include <linux/compiler.h> 21 #include <linux/platform_device.h> 22 #include <linux/regmap.h> 23 24 #define LPASS_AHBIX_CLOCK_FREQUENCY 131072000 25 26 /* Both the CPU DAI and platform drivers will access this data */ 27 struct lpass_data { 28 29 /* AHB-I/X bus clocks inside the low-power audio subsystem (LPASS) */ 30 struct clk *ahbix_clk; 31 32 /* MI2S system clock */ 33 struct clk *mi2s_osr_clk; 34 35 /* MI2S bit clock (derived from system clock by a divider */ 36 struct clk *mi2s_bit_clk; 37 38 /* low-power audio interface (LPAIF) registers */ 39 void __iomem *lpaif; 40 41 /* regmap backed by the low-power audio interface (LPAIF) registers */ 42 struct regmap *lpaif_map; 43 44 /* interrupts from the low-power audio interface (LPAIF) */ 45 int lpaif_irq; 46 }; 47 48 /* register the platform driver from the CPU DAI driver */ 49 int asoc_qcom_lpass_platform_register(struct platform_device *); 50 51 #endif /* __LPASS_H__ */ 52