diff options
author | Cástor Muñoz <cmvidal@gmail.com> | 2016-02-05 01:12:02 +0100 |
---|---|---|
committer | Cástor Muñoz <cmvidal@gmail.com> | 2016-05-25 10:59:44 +0200 |
commit | e863f9a0ce8d968b085252c3b093b17ca07b65dd (patch) | |
tree | 04eedd67fc1dc82ed7e6fc533639171456fde788 /firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c | |
parent | 9c032ba61aeb35625d20bf718c9394e092f88316 (diff) | |
download | rockbox-e863f9a0ce8d968b085252c3b093b17ca07b65dd.tar.gz rockbox-e863f9a0ce8d968b085252c3b093b17ca07b65dd.zip |
iPod Classic: piezo support for bootloader
Low level functions that do not depend on Rockbox kernel,
intended to be used by the bootloader, dualboot-installer,
RB drivers or other .dfu tools.
Change-Id: If80214d26e505265ace19d9704f1e1300f98b2f4
Diffstat (limited to 'firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c')
-rw-r--r-- | firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c index f3c00e34c5..06735673be 100644 --- a/firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/piezo-ipod6g.c | |||
@@ -95,3 +95,31 @@ void piezo_button_beep(bool beep, bool force) | |||
95 | piezo_start(40, 4); | 95 | piezo_start(40, 4); |
96 | } | 96 | } |
97 | } | 97 | } |
98 | |||
99 | #ifdef BOOTLOADER | ||
100 | void piezo_tone(uint32_t period /*uS*/, int32_t duration /*ms*/) | ||
101 | { | ||
102 | int32_t stop = USEC_TIMER + duration*1000; | ||
103 | uint32_t level = 0; | ||
104 | |||
105 | while ((int32_t)USEC_TIMER - stop < 0) | ||
106 | { | ||
107 | level ^= 1; | ||
108 | GPIOCMD = 0x0060e | level; | ||
109 | udelay(period >> 1); | ||
110 | } | ||
111 | |||
112 | GPIOCMD = 0x0060e; | ||
113 | } | ||
114 | |||
115 | void piezo_seq(uint16_t *seq) | ||
116 | { | ||
117 | uint16_t period; | ||
118 | |||
119 | while ((period = *seq++) != 0) | ||
120 | { | ||
121 | piezo_tone(period, *seq++); | ||
122 | udelay(*seq++ * 1000); | ||
123 | } | ||
124 | } | ||
125 | #endif | ||