| /* | 
 |  * Copyright (C) 2012 Samsung Electronics | 
 |  * R. Chandrasekar <rcsekar@samsung.com> | 
 |  * | 
 |  * SPDX-License-Identifier:	GPL-2.0+ | 
 |  */ | 
 |  | 
 | #include <common.h> | 
 | #include <sound.h> | 
 |  | 
 | void sound_create_square_wave(unsigned short *data, int size, uint32_t freq) | 
 | { | 
 | 	const int sample = 48000; | 
 | 	const unsigned short amplitude = 16000; /* between 1 and 32767 */ | 
 | 	const int period = freq ? sample / freq : 0; | 
 | 	const int half = period / 2; | 
 |  | 
 | 	assert(freq); | 
 |  | 
 | 	/* Make sure we don't overflow our buffer */ | 
 | 	if (size % 2) | 
 | 		size--; | 
 |  | 
 | 	while (size) { | 
 | 		int i; | 
 | 		for (i = 0; size && i < half; i++) { | 
 | 			size -= 2; | 
 | 			*data++ = amplitude; | 
 | 			*data++ = amplitude; | 
 | 		} | 
 | 		for (i = 0; size && i < period - half; i++) { | 
 | 			size -= 2; | 
 | 			*data++ = -amplitude; | 
 | 			*data++ = -amplitude; | 
 | 		} | 
 | 	} | 
 | } |