mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	Add a sound driver which can output simple beeps using this legacy timer. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
		
			
				
	
	
		
			39 lines
		
	
	
		
			665 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			665 B
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0+
 | 
						|
/*
 | 
						|
 * Copyright 2018 Google LLC
 | 
						|
 */
 | 
						|
 | 
						|
#include <common.h>
 | 
						|
#include <dm.h>
 | 
						|
#include <sound.h>
 | 
						|
#include <asm/i8254.h>
 | 
						|
 | 
						|
int i8254_start_beep(struct udevice *dev, int frequency_hz)
 | 
						|
{
 | 
						|
	return i8254_enable_beep(frequency_hz);
 | 
						|
}
 | 
						|
 | 
						|
int i8254_stop_beep(struct udevice *dev)
 | 
						|
{
 | 
						|
	i8254_disable_beep();
 | 
						|
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 | 
						|
static const struct sound_ops i8254_ops = {
 | 
						|
	.start_beep	= i8254_start_beep,
 | 
						|
	.stop_beep	= i8254_stop_beep,
 | 
						|
};
 | 
						|
 | 
						|
static const struct udevice_id i8254_ids[] = {
 | 
						|
	{ .compatible = "i8254,beeper" },
 | 
						|
	{ }
 | 
						|
};
 | 
						|
 | 
						|
U_BOOT_DRIVER(i8254_drv) = {
 | 
						|
	.name		= "i8254_drv",
 | 
						|
	.id		= UCLASS_SOUND,
 | 
						|
	.of_match	= i8254_ids,
 | 
						|
	.ops		= &i8254_ops,
 | 
						|
};
 |