The bleeding edge upstream development for linux-davinci is hosted at kernel.org.
The ev3dev kernel was originally based on Davinci PSP 03.22.00.02 from TI.
Most, if not all, of the customization of the ev3dev kernel is the addition and patching of hardware drivers for the EV3 specific hardware. TODO: add more about the ev3dev device driver philosophy - particularly in regard to attributes.
Be sure to check out the hardware pages for specifics on how the drivers interface with the hardware.
Most of the EV3 specific drivers are based on the source code for the official LEGO firmware (aka LMS2012). The following table shows the relation of ev3dev drivers to LMS2012 drivers.
lms2012 | ev3dev | Notes |
---|---|---|
d_analog.c | legoev3_analog.c | Device1 portion of d_analog.c |
legoev3_ports_in.c | Input portion of Device3 | |
legoev3_ports_out.c | Output portion of Device3 | |
d_bt.c | legoev3_bluetooth.c |
d_bt.c Device1 is not implemented yet
Device2 is for firmware update, so is not needed in ev3dev "slow clock" comes from board-da850-evm.c in the lms2012 kernel |
d_iic.c | legoev3_i2c.c | Using standard linux kernel i2c |
d_power.c | legoev3_battery.c | ev3dev power off is done in board-legoev3.c |
d_pwm.c | legoev3_motor.c | |
tacho_motor_class.c | ||
d_sound.c | legoev3_sound.c | Implemented as a ALSA sound driver for PCM playback and an input device for tone playback |
d_uart_mod.c | Using standard kernel drivers for the SoC UARTs. Ported omapl_pru from LEGO firmware for PRU UARTs. | |
d_ui.c | Using standard kernel drivers, gpio-keys for buttons and leds-gpio for LEDs | |
d_usbdev.c | Probably won't implement something like this in ev3dev Using exiting USB gadget drivers |
|
d_usbhost.c | Not implementing because it does not do anything | |
Kernel | ||
board-da850-evm.c | board-legoev3.c | |
davinci-iic.c | [legoev3-fiq.c] | lms2012 just uses this for i2c, ev3dev uses it for i2c and sound |
st7586fb.c | st7586fb.c |
Most everything is in the lego-linux-drivers repository nowadays.