mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 08:21:36 +01: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,
 | |
| };
 |