Mini210/kernel
Introduction[edit | edit source]
The original kernel delivered by FriendlyARM comes with some modules to handle peripherals. I decided to get rid of those modules, especially if they are closed source.
How to add LEDs support in the kernel[edit | edit source]
BSP file modification[edit | edit source]
The original BSP provided by FriendlyARM comes with no LEDs support. LEDs are handled by a kernel module instead. I decided to add LEDs support to the BSP to be able to get HeartBeat, NAND and MMC triggers light the LEDs. I took board-omap4panda.c from PandaBoard as an example, and also looked at how it was done on Pengutronix BSP.
You have to declare the LEDs and affect them to the GPIO pins.
... #if defined(CONFIG_S5PV210_SETUP_IDE) static struct s3c_ide_platdata mini210_ide_pdata __initdata = { .setup_gpio = s5pv210_ide_setup_gpio, }; #endif /* GPIO LED */ #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) #include <linux/leds.h> static struct gpio_led mini210_leds[] = { { .name = "led1", .default_trigger = "heartbeat", .gpio = S5PV210_GPJ2(0), .active_low = 1, }, { .name = "led2", .default_trigger = "nand-disk", .gpio = S5PV210_GPJ2(1), .active_low = 1, }, { .name = "led3", .default_trigger = "mmc0", .gpio = S5PV210_GPJ2(2), .active_low = 1, }, { .name = "led4", .default_trigger = "", .gpio = S5PV210_GPJ2(3), .active_low = 1, }, }; static struct gpio_led_platform_data mini210_leds_info = { .num_leds = ARRAY_SIZE(mini210_leds), .leds = mini210_leds, }; static struct platform_device leds_mini210 = { .name = "leds-gpio", .id = -1, .dev = { .platform_data = &mini210_leds_info, }, }; #endif /* CONFIG_LEDS_GPIO */ #ifdef CONFIG_KEYBOARD_GPIO static struct gpio_keys_button gpio_buttons[] = { { .gpio = S5PV210_GPH2(0), ... ... ... static struct platform_device *mini210_devices[] __initdata = { &s3c_device_adc, &s3c_device_cfcon, ... ... &s5p_device_hpd, #endif #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) &leds_mini210, #endif }; #ifdef CONFIG_VIDEO_S5K4EA /* Set for MIPI-CSI Camera module Power Enable */ static int mini210_mipi_cam_pwr_en(int enabled) { ...
Kernel configuration[edit | edit source]
Then you have to enable LEDs handling in the kernel configuration, and also activate the corresponding triggers.
How to use LEDs from userspace[edit | edit source]
How to add backlight support to the kernel[edit | edit source]
How to add GPIO support to the kernel[edit | edit source]
How to replace closed source NAND driver by Reggie's opensource one[edit | edit source]
How to get Marvell 8686 WiFi working with opensource drivers[edit | edit source]
How to get WM8960 audio codec working[edit | edit source]
How to get capacitive touchscreen working with opensource drivers[edit | edit source]
How to add CAN support[edit | edit source]
How to add ADXL345 support[edit | edit source]
Video rotator[edit | edit source]
I2C[edit | edit source]
Camera[edit | edit source]
Add a new screen[edit | edit source]
DS18B20[edit | edit source]
1 wire Resistive touchscreen[edit | edit source]
Samsung resistive touchscreen[edit | edit source]
friendlyArm ftp site (FTP) If you haven't burnt superboot.bin to your SD card, [http://armworks.cc/index.php?title=Mini210S_Burn_rootfs_to_Nand#Burning_...