Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e27b9b7 authored by Andriy Skulysh's avatar Andriy Skulysh Committed by Paul Mundt
Browse files

sound: SH DAC audio driver updates.



Update the SH DAC audio driver for the clock framework.

Signed-off-by: default avatarAndriy Skulysh <askulysh@gmail.com>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 048839dc
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
/*
 * sound/oss/sh_dac_audio.c
 *
 * SH DAC based sound :(
 *
 *  Copyright (C) 2004,2005  Andriy Skulysh
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 */
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
@@ -11,10 +22,12 @@
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/delay.h>
#include <asm/clock.h>
#include <asm/cpu/dac.h>
#include <asm/cpu/timer.h>
#include <asm/machvec.h>
#include <asm/hp6xx/hp6xx.h>
#include <asm/hd64461/hd64461.h>
#include <asm/hd64461.h>

#define MODNAME "sh_dac_audio"

@@ -23,11 +36,6 @@
#define TMU1_TCR_INIT	0x0020	/* Clock/4, rising edge; interrupt on */
#define TMU1_TSTR_INIT  0x02	/* Bit to turn on TMU1 */

#define TMU_TSTR	0xfffffe92
#define TMU1_TCOR	0xfffffea0
#define TMU1_TCNT	0xfffffea4
#define TMU1_TCR	0xfffffea8

#define BUFFER_SIZE 48000

static int rate;
@@ -87,14 +95,18 @@ static void dac_audio_stop(void)
		outw(v, HD64461_GPADR);
	}

 	sh_dac_output(0, CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
	sh_dac_disable(CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
}

static void dac_audio_set_rate(void)
{
	unsigned long interval;
 	struct clk *clk;

	interval = (current_cpu_data.module_clock / 4) / rate;
 	clk = clk_get("module_clk");
 	interval = (clk_get_rate(clk) / 4) / rate;
 	clk_put(clk);
	ctrl_outl(interval, TMU1_TCOR);
	ctrl_outl(interval, TMU1_TCNT);
}