1 Add UDA1341 device structure to the initialization file
2 Configure UDA1341 device driver in the kernel
Linux-2.6.32.2 has perfectly supported the driver of UDA1341 audio chip. We only need to register the control port of UDA1341 platform device in arch/arm/mach-s3c2440/mach-mini2440.c file. Open mach-mini2440.c and add the following content:
; Add header file
#include
to the beginning of the file
; Add UDA1341 device structure after LCD platform device
static struct s3c24xx_uda134x_platform_data s3c24xx_uda134x_data = {
.l3_clk = S3C2410_GPB(4),
.l3_data = S3C2410_GPB(3),
.l3_mode = S3C2410_GPB(2),
.model = UDA134X_UDA1341,
};
static struct platform_device s3c24xx_uda134x = {
.name = "s3c24xx_uda134x",
.dev = {
.platform_data = &s3c24xx_uda134x_data,
}
};
;Register UDA1341 device platform to the kernel
static struct platform_device *mini2440_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_rtc,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&mini2440_device_eth,
&s3c24xx_uda134x,
&s3c_device_nand,
};
In this way, we have basically added the driver of the UDA1341 audio device. Next, we configure the driver in the kernel.
Enter: make menuconfig in the kernel source code directory to start configuring the kernel, select the following submenus in turn, and find the audio driver configuration menu:
Device Drivers --->
<*> Sound card support --->
As shown in the figure, press the spacebar to select "[*] Preclaim OSS device numbers", then select "<*> Advanced Linux Sound Architecture --->", and press Enter to enter the submenu. The audio driver architecture menu appears. Here, we select the configuration options related to the OSS interface. It should
be noted that the OSS interface here is actually created based on the ALSA interface, because the new kernel has now switched to ALSA design. This is done for compatibility with previous software. Select the following
<*>OSS Mix API
<*>OSS PCM API
<*>verbose procfs cotnets
and then select the "<*> ALSA for SoC audio support --->" submenu and press Enter to enter. Our development board uses the UDA1341 audio chip, so of course we have to select "-*- SoC I2S Audio support UDA134X wired to a S3C24XX".
Exit to save the above configurations.
Previous article:Linux-2.6.32 transplanted on mini2440 development board - SD card driver transplanted
Next article:linux-2.6.32 ported to mini2440 development board - ported I2C-EEPROM driver
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- MicroPython Hands-on (04) - Basic Examples of Learning MicroPython from Scratch
- What is 802.11ah or HaLow?
- Recruiting senior RF engineers
- [Summary] STM32F107 board data and μC/OS routine software
- [Silicon Labs development kit review] + FreeRTOS + wonderful basic peripherals
- Tesla Robot Optimus Prime Conference Uncut 4K HD Episode 4
- Ultra-low power Bluetooth controlled, cost-effective, dimmable smart lighting solution
- Open source popsicle macro key macropopsicle
- Homemade oscilloscope current probe developed successfully: measuring STM32 FOC motor board
- Altium to KiCad Tool