Merge pull request #4074 from jernejsk/a20

Allwinner: Add support for A20
This commit is contained in:
Matthias Reichl 2019-12-30 17:36:39 +01:00 committed by GitHub
commit a3f87a16c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 317 additions and 16 deletions

View File

@ -119,6 +119,11 @@ else
# Allwinner H3 Analog # Allwinner H3 Analog
mixer $card 'Line Out' 0db on mixer $card 'Line Out' 0db on
# Allwinner A20 Analog
mixer $card 'Power Amplifier' 0db
mixer $card 'Power Amplifier DAC' on
mixer $card 'Power Amplifier Mute' on
# Allwinner A64 Analog # Allwinner A64 Analog
mixer $card Headphone 0db on mixer $card Headphone 0db on
mixer $card 'AIF1 Slot 0 Digital DAC' on mixer $card 'AIF1 Slot 0 Digital DAC' on

View File

@ -0,0 +1,9 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
mkdir -p $RELEASE_DIR/3rdparty/bootloader
if [ -n "$UBOOT_SYSTEM" ]; then
cp -a $(get_build_dir $BOOTLOADER)/u-boot-sunxi-with-spl.bin $RELEASE_DIR/3rdparty/bootloader
fi
cp -a $(get_build_dir linux)/arch/$TARGET_KERNEL_ARCH/boot/dts/sun7i-a20-*.dtb $RELEASE_DIR/3rdparty/bootloader

View File

@ -0,0 +1,51 @@
################################################################################
# setup system defaults
################################################################################
# The TARGET_CPU variable controls which processor should be targeted for
# generated code.
case $TARGET_ARCH in
arm)
# TARGET_CPU:
# arm2 arm250 arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm7m arm7d
# arm7dm arm7di arm7dmi arm70 arm700 arm700i arm710 arm710c
# arm7100 arm720 arm7500 arm7500fe arm7tdmi arm7tdmi-s arm710t
# arm720t arm740t strongarm strongarm110 strongarm1100
# strongarm1110 arm8 arm810 arm9 arm9e arm920 arm920t arm922t
# arm946e-s arm966e-s arm968e-s arm926ej-s arm940t arm9tdmi
# arm10tdmi arm1020t arm1026ej-s arm10e arm1020e arm1022e
# arm1136j-s arm1136jf-s mpcore mpcorenovfp arm1156t2-s
# arm1176jz-s arm1176jzf-s cortex-a8 cortex-a9 cortex-r4
# cortex-r4f cortex-m3 cortex-m1 xscale iwmmxt iwmmxt2 ep9312.
TARGET_CPU="cortex-a7"
# TARGET_FLOAT:
# Specifies which floating-point ABI to use. Permissible values are:
# soft hard
TARGET_FLOAT="hard"
# TARGET_FPU:
# This specifies what floating point hardware (or hardware emulation) is
# available on the target. Permissible names are:
# fpa fpe2 fpe3 maverick vfp vfpv3 vfpv3-fp16 vfpv3-d16 vfpv3-d16-fp16
# vfpv3xd vfpv3xd-fp16 neon neon-fp16 vfpv4 vfpv4-d16 fpv4-sp-d16
# neon-vfpv4.
TARGET_FPU="neon-vfpv4"
;;
esac
# Kernel target
KERNEL_TARGET="zImage"
# OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q)
OPENGLES="libmali"
# Mali GPU family
MALI_FAMILY="400"
# KODI Player implementation to use (default / bcm2835-driver / libfslvpuwrap)
KODIPLAYER_DRIVER="$OPENGLES"
# set the addon dirs
ADDON_PATH="$ADDON_VERSION/H3/$TARGET_ARCH"
ADDON_URL="$ADDON_SERVER_URL/$ADDON_PATH"

View File

@ -0,0 +1,193 @@
From ae3215d37ca2a55642bcae6c83c3612e26275711 Mon Sep 17 00:00:00 2001
From: Luc Verhaegen <libv@skynet.be>
Date: Thu, 8 Aug 2019 16:27:37 +0200
Subject: [PATCH] kms:sunxi: add engine->crtc_mode_set() hook
This exposes both shortcomings in universal planes, and the superfluous
intermediate structure of _engine.
Our backends are half the conceptual old-skool style CRTC, and half the
sequencer/composer. It does not need to have any layer enabled or any
buffer attached to do something useful, it can just show a background
colour. Our 4 main layers are fully independent and can be ordered
(almost) at will. There is no primary layer.
Universal planes still asume that there is a primary layer. And also do
limited checking on whether this actually true.
The sun4i driver has, for some reason, an _engine struct in between,
that serves no purpose other than to provide separation where no
separation is needed, and it is clear in several cases that this
separation has holes in it. It also is a psychological barrier for
exposing things as the hardware sees it.
So instead of quickly bolting up some code to set the crtc width and
height in the backend, it was deferred to setting the primary plane.
So while KMS assumes that there is a primary plane, it never enforces
the primary plane to be the same dimensions as the CRTC.
So one is able to set the faux primary plane to whatever dimensions one
likes, which then has the backend set to those dimensions, which then
trips up our whole setup...
A very avoidable problem, on multiple fronts.
Also, we set interlacing with _every_ plane format set. This while this
conceptually belongs to the CRTC. The fact that the information comes
from the modeline should've tipped people off that this was wrong.
Let's at least get rid of this engine struct in future, and have direct
code dependencies between modules, so that at least this psychological
barrier disappears.
Signed-off-by: Luc Verhaegen <libv@skynet.be>
---
drivers/gpu/drm/sun4i/sun4i_backend.c | 43 ++++++++++++++-------------
drivers/gpu/drm/sun4i/sun4i_crtc.c | 2 ++
drivers/gpu/drm/sun4i/sun8i_mixer.c | 7 +++++
drivers/gpu/drm/sun4i/sunxi_engine.h | 7 +++++
4 files changed, 39 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_backend.c b/drivers/gpu/drm/sun4i/sun4i_backend.c
index 606b33a28be5..4d7a33d0f77f 100644
--- a/drivers/gpu/drm/sun4i/sun4i_backend.c
+++ b/drivers/gpu/drm/sun4i/sun4i_backend.c
@@ -164,6 +164,28 @@ bool sun4i_backend_format_is_supported(uint32_t fmt, uint64_t modifier)
return 0;
}
+static int sun4i_backend_crtc_mode_set(struct sunxi_engine *engine,
+ struct drm_display_mode *mode)
+{
+ DRM_DEBUG_DRIVER("%s(DEBE%d);\n", __func__, engine->id);
+
+ regmap_write(engine->regs, SUN4I_BACKEND_DISSIZE_REG,
+ SUN4I_BACKEND_DISSIZE(mode->crtc_hdisplay,
+ mode->crtc_vdisplay));
+
+ if (mode->flags & DRM_MODE_FLAG_INTERLACE) {
+ DRM_DEBUG_DRIVER("%s(DEBE%d): Enabling interlacing.\n",
+ __func__, engine->id);
+ regmap_update_bits(engine->regs, SUN4I_BACKEND_MODCTL_REG,
+ SUN4I_BACKEND_MODCTL_ITLMOD_EN,
+ SUN4I_BACKEND_MODCTL_ITLMOD_EN);
+ } else
+ regmap_update_bits(engine->regs, SUN4I_BACKEND_MODCTL_REG,
+ SUN4I_BACKEND_MODCTL_ITLMOD_EN, 0);
+
+ return 0;
+}
+
int sun4i_backend_update_layer_coord(struct sun4i_backend *backend,
int layer, struct drm_plane *plane)
{
@@ -171,14 +193,6 @@ int sun4i_backend_update_layer_coord(struct sun4i_backend *backend,
DRM_DEBUG_DRIVER("Updating layer %d\n", layer);
- if (plane->type == DRM_PLANE_TYPE_PRIMARY) {
- DRM_DEBUG_DRIVER("Primary layer, updating global size W: %u H: %u\n",
- state->crtc_w, state->crtc_h);
- regmap_write(backend->engine.regs, SUN4I_BACKEND_DISSIZE_REG,
- SUN4I_BACKEND_DISSIZE(state->crtc_w,
- state->crtc_h));
- }
-
/* Set height and width */
DRM_DEBUG_DRIVER("Layer size W: %u H: %u\n",
state->crtc_w, state->crtc_h);
@@ -325,24 +339,12 @@ int sun4i_backend_update_layer_formats(struct sun4i_backend *backend,
{
struct drm_plane_state *state = plane->state;
struct drm_framebuffer *fb = state->fb;
- bool interlaced = false;
u32 val;
int ret;
/* Clear the YUV mode */
regmap_update_bits(backend->engine.regs, SUN4I_BACKEND_ATTCTL_REG0(layer),
SUN4I_BACKEND_ATTCTL_REG0_LAY_YUVEN, 0);
-
- if (plane->state->crtc)
- interlaced = plane->state->crtc->state->adjusted_mode.flags
- & DRM_MODE_FLAG_INTERLACE;
-
- regmap_update_bits(backend->engine.regs, SUN4I_BACKEND_MODCTL_REG,
- SUN4I_BACKEND_MODCTL_ITLMOD_EN,
- interlaced ? SUN4I_BACKEND_MODCTL_ITLMOD_EN : 0);
-
- DRM_DEBUG_DRIVER("Switching display backend interlaced mode %s\n",
- interlaced ? "on" : "off");
if (fb->format->is_yuv)
return sun4i_backend_update_yuv_format(backend, layer, plane);
@@ -920,6 +922,7 @@ static const struct sunxi_engine_ops sun4i_backend_engine_ops = {
.apply_color_correction = sun4i_backend_apply_color_correction,
.disable_color_correction = sun4i_backend_disable_color_correction,
.vblank_quirk = sun4i_backend_vblank_quirk,
+ .crtc_mode_set = sun4i_backend_crtc_mode_set,
};
static struct regmap_config sun4i_backend_regmap_config = {
diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c
index 9d8504f813a4..cc569d0ec49c 100644
--- a/drivers/gpu/drm/sun4i/sun4i_crtc.c
+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c
@@ -138,8 +138,10 @@ static void sun4i_crtc_mode_set_nofb(struct drm_crtc *crtc)
struct drm_display_mode *mode = &crtc->state->adjusted_mode;
struct drm_encoder *encoder = sun4i_crtc_get_encoder(crtc);
struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc);
+ struct sunxi_engine *engine = scrtc->engine;
sun4i_tcon_mode_set(scrtc->tcon, encoder, mode);
+ engine->ops->crtc_mode_set(engine, mode);
}
static const struct drm_crtc_helper_funcs sun4i_crtc_helper_funcs = {
diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c
index c2eedf58bf4b..2d6c7c4501b8 100644
--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c
+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c
@@ -307,9 +307,16 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm,
return planes;
}
+static int sun8i_mixer_crtc_mode_set(struct sunxi_engine *engine,
+ struct drm_display_mode *mode)
+{
+ return 0;
+}
+
static const struct sunxi_engine_ops sun8i_engine_ops = {
.commit = sun8i_mixer_commit,
.layers_init = sun8i_layers_init,
+ .crtc_mode_set = sun8i_mixer_crtc_mode_set,
};
static struct regmap_config sun8i_mixer_regmap_config = {
diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h
index 548710a936d5..1f3aaef2cabc 100644
--- a/drivers/gpu/drm/sun4i/sunxi_engine.h
+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h
@@ -9,6 +9,7 @@
struct drm_plane;
struct drm_device;
struct drm_crtc_state;
+struct drm_display_mode;
struct sunxi_engine;
@@ -108,6 +109,12 @@ struct sunxi_engine_ops {
* This function is optional.
*/
void (*vblank_quirk)(struct sunxi_engine *engine);
+
+ /*
+ * Sets amongst others, CRTC dimensions, and interlacing.
+ */
+ int (*crtc_mode_set)(struct sunxi_engine *engine,
+ struct drm_display_mode *mode);
};
/**

View File

@ -329,7 +329,7 @@ CONFIG_ARCH_SUNXI=y
# CONFIG_MACH_SUN4I is not set # CONFIG_MACH_SUN4I is not set
# CONFIG_MACH_SUN5I is not set # CONFIG_MACH_SUN5I is not set
# CONFIG_MACH_SUN6I is not set # CONFIG_MACH_SUN6I is not set
# CONFIG_MACH_SUN7I is not set CONFIG_MACH_SUN7I=y
CONFIG_MACH_SUN8I=y CONFIG_MACH_SUN8I=y
# CONFIG_MACH_SUN9I is not set # CONFIG_MACH_SUN9I is not set
CONFIG_ARCH_SUNXI_MC_SMP=y CONFIG_ARCH_SUNXI_MC_SMP=y
@ -367,6 +367,7 @@ CONFIG_ARM_THUMB=y
# CONFIG_ARM_THUMBEE is not set # CONFIG_ARM_THUMBEE is not set
CONFIG_ARM_VIRT_EXT=y CONFIG_ARM_VIRT_EXT=y
CONFIG_SWP_EMULATE=y CONFIG_SWP_EMULATE=y
# CONFIG_CPU_BIG_ENDIAN is not set
# CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set # CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set
@ -387,6 +388,7 @@ CONFIG_ARM_L1_CACHE_SHIFT_6=y
CONFIG_ARM_L1_CACHE_SHIFT=6 CONFIG_ARM_L1_CACHE_SHIFT=6
CONFIG_ARM_DMA_MEM_BUFFERABLE=y CONFIG_ARM_DMA_MEM_BUFFERABLE=y
CONFIG_ARM_HEAVY_MB=y CONFIG_ARM_HEAVY_MB=y
CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
CONFIG_DEBUG_ALIGN_RODATA=y CONFIG_DEBUG_ALIGN_RODATA=y
# CONFIG_ARM_ERRATA_430973 is not set # CONFIG_ARM_ERRATA_430973 is not set
CONFIG_ARM_ERRATA_643719=y CONFIG_ARM_ERRATA_643719=y
@ -1191,6 +1193,7 @@ CONFIG_CAN_DEV=y
CONFIG_CAN_CALC_BITTIMING=y CONFIG_CAN_CALC_BITTIMING=y
# CONFIG_CAN_FLEXCAN is not set # CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set # CONFIG_CAN_GRCAN is not set
# CONFIG_CAN_SUN4I is not set
# CONFIG_CAN_TI_HECC is not set # CONFIG_CAN_TI_HECC is not set
# CONFIG_CAN_C_CAN is not set # CONFIG_CAN_C_CAN is not set
# CONFIG_CAN_CC770 is not set # CONFIG_CAN_CC770 is not set
@ -1754,9 +1757,9 @@ CONFIG_FIXED_PHY=y
# CONFIG_LXT_PHY is not set # CONFIG_LXT_PHY is not set
# CONFIG_MARVELL_PHY is not set # CONFIG_MARVELL_PHY is not set
# CONFIG_MARVELL_10G_PHY is not set # CONFIG_MARVELL_10G_PHY is not set
# CONFIG_MICREL_PHY is not set CONFIG_MICREL_PHY=y
# CONFIG_MICROCHIP_PHY is not set CONFIG_MICROCHIP_PHY=y
# CONFIG_MICROCHIP_T1_PHY is not set CONFIG_MICROCHIP_T1_PHY=y
# CONFIG_MICROSEMI_PHY is not set # CONFIG_MICROSEMI_PHY is not set
# CONFIG_NATIONAL_PHY is not set # CONFIG_NATIONAL_PHY is not set
# CONFIG_NXP_TJA11XX_PHY is not set # CONFIG_NXP_TJA11XX_PHY is not set
@ -1764,12 +1767,12 @@ CONFIG_FIXED_PHY=y
# CONFIG_REALTEK_PHY is not set # CONFIG_REALTEK_PHY is not set
# CONFIG_RENESAS_PHY is not set # CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set # CONFIG_ROCKCHIP_PHY is not set
# CONFIG_SMSC_PHY is not set CONFIG_SMSC_PHY=y
# CONFIG_STE10XP is not set # CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set # CONFIG_TERANETICS_PHY is not set
# CONFIG_VITESSE_PHY is not set # CONFIG_VITESSE_PHY is not set
# CONFIG_XILINX_GMII2RGMII is not set # CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_MICREL_KS8995MA is not set CONFIG_MICREL_KS8995MA=y
CONFIG_PPP=m CONFIG_PPP=m
CONFIG_PPP_BSDCOMP=m CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_DEFLATE=m CONFIG_PPP_DEFLATE=m
@ -2281,7 +2284,7 @@ CONFIG_PINMUX=y
CONFIG_PINCONF=y CONFIG_PINCONF=y
CONFIG_GENERIC_PINCONF=y CONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set # CONFIG_DEBUG_PINCTRL is not set
# CONFIG_PINCTRL_AXP209 is not set CONFIG_PINCTRL_AXP209=y
# CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_AMD is not set
# CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_MCP23S08 is not set
# CONFIG_PINCTRL_SINGLE is not set # CONFIG_PINCTRL_SINGLE is not set
@ -2389,7 +2392,9 @@ CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_CHARGER_SBS is not set # CONFIG_CHARGER_SBS is not set
# CONFIG_MANAGER_SBS is not set # CONFIG_MANAGER_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_AXP20X_POWER is not set # CONFIG_CHARGER_AXP20X is not set
# CONFIG_BATTERY_AXP20X is not set
CONFIG_AXP20X_POWER=y
# CONFIG_AXP288_FUEL_GAUGE is not set # CONFIG_AXP288_FUEL_GAUGE is not set
# CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set # CONFIG_BATTERY_MAX17042 is not set
@ -3418,7 +3423,7 @@ CONFIG_DRM_KMS_CMA_HELPER=y
# CONFIG_DRM_RCAR_LVDS is not set # CONFIG_DRM_RCAR_LVDS is not set
CONFIG_DRM_SUN4I=y CONFIG_DRM_SUN4I=y
CONFIG_DRM_SUN4I_HDMI=y CONFIG_DRM_SUN4I_HDMI=y
# CONFIG_DRM_SUN4I_HDMI_CEC is not set CONFIG_DRM_SUN4I_HDMI_CEC=y
CONFIG_DRM_SUN4I_BACKEND=y CONFIG_DRM_SUN4I_BACKEND=y
CONFIG_DRM_SUN6I_DSI=y CONFIG_DRM_SUN6I_DSI=y
CONFIG_DRM_SUN8I_DW_HDMI=y CONFIG_DRM_SUN8I_DW_HDMI=y
@ -3725,7 +3730,7 @@ CONFIG_SND_SOC_HDMI_CODEC=y
# CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SGTL5000 is not set
# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set # CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
# CONFIG_SND_SOC_SPDIF is not set CONFIG_SND_SOC_SPDIF=y
# CONFIG_SND_SOC_SSM2305 is not set # CONFIG_SND_SOC_SSM2305 is not set
# CONFIG_SND_SOC_SSM2602_SPI is not set # CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set # CONFIG_SND_SOC_SSM2602_I2C is not set
@ -4339,6 +4344,7 @@ CONFIG_RTC_I2C_AND_SPI=y
# on-CPU RTC drivers # on-CPU RTC drivers
# #
CONFIG_RTC_DRV_SUN6I=y CONFIG_RTC_DRV_SUN6I=y
CONFIG_RTC_DRV_SUNXI=y
# CONFIG_RTC_DRV_CADENCE is not set # CONFIG_RTC_DRV_CADENCE is not set
# CONFIG_RTC_DRV_FTRTC010 is not set # CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_SNVS is not set # CONFIG_RTC_DRV_SNVS is not set
@ -4357,6 +4363,7 @@ CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_OF=y CONFIG_DMA_OF=y
# CONFIG_ALTERA_MSGDMA is not set # CONFIG_ALTERA_MSGDMA is not set
CONFIG_DMA_SUN4I=y
CONFIG_DMA_SUN6I=y CONFIG_DMA_SUN6I=y
# CONFIG_DW_AXI_DMAC is not set # CONFIG_DW_AXI_DMAC is not set
# CONFIG_FSL_EDMA is not set # CONFIG_FSL_EDMA is not set
@ -4526,13 +4533,18 @@ CONFIG_COMMON_CLK=y
# CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_VC5 is not set # CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set
# CONFIG_CLK_SUNXI is not set CONFIG_CLK_SUNXI=y
CONFIG_CLK_SUNXI_CLOCKS=y
# CONFIG_CLK_SUNXI_PRCM_SUN6I is not set
# CONFIG_CLK_SUNXI_PRCM_SUN8I is not set
# CONFIG_CLK_SUNXI_PRCM_SUN9I is not set
CONFIG_SUNXI_CCU=y CONFIG_SUNXI_CCU=y
CONFIG_SUN8I_A23_CCU=y CONFIG_SUN4I_A10_CCU=y
CONFIG_SUN8I_A33_CCU=y # CONFIG_SUN8I_A23_CCU is not set
CONFIG_SUN8I_A83T_CCU=y # CONFIG_SUN8I_A33_CCU is not set
# CONFIG_SUN8I_A83T_CCU is not set
CONFIG_SUN8I_H3_CCU=y CONFIG_SUN8I_H3_CCU=y
CONFIG_SUN8I_V3S_CCU=y # CONFIG_SUN8I_V3S_CCU is not set
CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_DE2_CCU=y
# CONFIG_SUN8I_R40_CCU is not set # CONFIG_SUN8I_R40_CCU is not set
CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_R_CCU=y
@ -4547,6 +4559,7 @@ CONFIG_TIMER_OF=y
CONFIG_TIMER_PROBE=y CONFIG_TIMER_PROBE=y
CONFIG_CLKSRC_MMIO=y CONFIG_CLKSRC_MMIO=y
CONFIG_SUN4I_TIMER=y CONFIG_SUN4I_TIMER=y
CONFIG_SUN5I_HSTIMER=y
CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
# end of Clock Source drivers # end of Clock Source drivers
@ -4705,7 +4718,7 @@ CONFIG_IIO_SW_TRIGGER=y
# CONFIG_AD7923 is not set # CONFIG_AD7923 is not set
# CONFIG_AD7949 is not set # CONFIG_AD7949 is not set
# CONFIG_AD799X is not set # CONFIG_AD799X is not set
# CONFIG_AXP20X_ADC is not set CONFIG_AXP20X_ADC=y
# CONFIG_AXP288_ADC is not set # CONFIG_AXP288_ADC is not set
# CONFIG_CC10001_ADC is not set # CONFIG_CC10001_ADC is not set
# CONFIG_ENVELOPE_DETECTOR is not set # CONFIG_ENVELOPE_DETECTOR is not set

View File

@ -21,6 +21,36 @@ import sys
devices = \ devices = \
{ {
'Allwinner': { 'Allwinner': {
'A20' : {
'bananapi': {
'dtb': 'sun7i-a20-bananapi.dtb',
'config': 'Bananapi_defconfig'
},
'cubieboard2': {
'dtb': 'sun7i-a20-cubieboard2.dtb',
'config': 'Cubieboard2_defconfig'
},
'cubietruck': {
'dtb': 'sun7i-a20-cubietruck.dtb',
'config': 'Cubietruck_defconfig'
},
'lime': {
'dtb': 'sun7i-a20-olinuxino-lime.dtb',
'config': 'A20-OLinuXino-Lime_defconfig'
},
'lime2': {
'dtb': 'sun7i-a20-olinuxino-lime2.dtb',
'config': 'A20-OLinuXino-Lime2_defconfig'
},
'micro': {
'dtb': 'sun7i-a20-olinuxino-micro.dtb',
'config': 'A20-OLinuXino_MICRO_defconfig'
},
'mk808c': {
'dtb': 'sun7i-a20-mk808c.dtb',
'config': 'MK808C_defconfig'
},
},
'A64': { 'A64': {
'orangepi-win': { 'orangepi-win': {
'dtb': 'sun50i-a64-orangepi-win.dtb', 'dtb': 'sun50i-a64-orangepi-win.dtb',