This page contains details about the latest kernel branch and any known quirks/special requirements.
It will be periodically updated to keep up to speed with the latest.
The current branch tracking mainline 3.18.3
Status of Linux Kernel Drivers
|Name||State||Path||Notes 3.0.8||Notes 3.16||Notes 3.18 +|
|Clocks||Works||drivers/clk/jz47xx||Could have common drivers/clk/ingenic for all SoCs with SoC specific binding using common components(?)||Uses common clock framework with jz4740. Intended for upstream|
|CPUfreq||4770 has , but clock infrastructure is different. Ingenic kernel had  for 4780. Not ported to 3.16 yet.|
|Device Tree||Mostly||N/A||Parsed on boot, but compiled into the kernel. Would be good to allow it to be passed from the bootloader.||DT for jz4740 as well|
|DMA||Mostly||drivers/dma/dma-jz4780.c||needs combining into dma-jz4740. Works, just missing priority support||still needs combining|
|GPIO||Works||drivers/pinctrl/pinctrl-jz4780.c||should perhaps be in drivers/gpio/ (?)|
|IRQ Controller||drivers/irqchip/irq-jz4780.c||Very similar between SoCs (4740 has one bank, 60,70,80 has two banks)||Consolidated work in 3.18 headed upstream|
|PinCtrl||Mostly||drivers/pinctrl/pinctrl-jz4780.c||N/A||Differs between SoCs. Functional, may need DT binding changes based on feedback from upstream. See also pinctrl-jz4770.c.|
|Power Controller (LPCR Register)|
|Power Off & Reset||Works|
|RTC||Works||drivers/rtc/rtc-jz4740.c||Consolidated with jz4740||Consolidated with jz4740|
|Watchdog||Works||Consolidated with jz4740|
|Name||State||Path||Notes 3.0.8||Notes 3.16||Notes 3.18+|
|ADC||WIP||Check branches on https://github.com/ZubairLK/CI20_linux|
|Audio (ALSA)||WIP||Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev||Works. Uses jz4740 drivers with patches.|
|Ethernet||Works||drivers/net/ethernet/davicom/dm9000.c||Requires regulator and reset GPIO support, see .||Patch upstreamed.|
|GPU||External Kernel Module||Works||WIP. Requires major overhaul as kernel layer changed significantly from 3.0.8 to 3.18 for jz4780. The way clocks, regulators enabled. The way registers handled etc.. LCD and HDMI drivers changed completely.|
|HDMI||WIP||Resolution requires kernel recompile||Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev||Resolution requires xorg/bootargs. Needs work for consolidation with upstream.|
|I2C||Works||drivers/i2c/busses/i2c-jz4780.c||4740 has HW issue so uses gpio i2c instead. 4770 had  but unused so removed (also gave false positives on i2cdetect).||Works|
|IPU||4770 has driver integrated with fbdev driver, see . Plans to move to DRM+KVM but may take time.|
|IR||Driver upstream||drivers/media/rc/gpio-ir-recv.c||GPIO, so use upstream GPIO driver|
|MMC||Works||drivers/mmc/host/jz4740_mmc.c||Various changes needed, see . Should not rename driver. Check whether affected by .||Works. Consolidation work needed before upstream. jz4740 has diverged. DMA driver differences block.|
|NAND||Works||Works. Reworked driver||Works. Reworked driver|
|PWM||drivers/pwm/pwm-jz4740.c||4770 uses same driver as 4740. Maybe applicable to 4780 too. See .|
|Regulator||Works||Works. Based on i2c driver.||Works. Based on i2c driver.|
|SPI (SSI)||None||SPIO GPIO should work, but a dedicated driver for the SSI hardware in drivers/spi/ would be better.|
|UART||Works||Quirks: see patches   need moving to wrapper driver, like 8250_dw and mediatek which can be common between Ingenic SoCs.||Works|
|USB(DWC)||Works||Upstream driver supports only host mode as of 3.15||Uses upstream driver. Sometimes gives overcurrent errors on dmesg|
|VPU||Driver aimed at 4770, see . For samples see . May be insecure (allows userland to do its own cache control and access TCSM banks). RemoteProc driver in progress, see .|
|Wifi||WIP||Check patches on https://groups.google.com/forum/#!forum/mips-creator-ci20-dev||Works. Uses some hacks to keep regulators on to enable the chip. Uses upstreamed driver and mmc/dma.|
|BT||WIP||Almost works. Uses some hacks to keep regulators on to enable the chip. Scans ok. File transfer presents a few issues. Possible not entirely kernels fault and bluez etc.|
List of other possible issues
- /etc/init.d/iw8103 is the startup script for the BT/Wifi firmware in the default rootfs.
If using 3.16/3.18, the script can cause the boot to hang unless the BT device is responding. Please move the script out of /etc/init.d or make sure the kernel is correct.
This is an issue with broadcoms patchram utility. It keeps trying. (Perhaps its some arguments passed to the script?)
Add "root=/dev/mmcblk0p1 rootwait" to bootargs in uboot if you wish to boot a rootfs from mmc.