Compare commits
No commits in common. "15.6" and "master" have entirely different histories.
61
clean.sh
61
clean.sh
@ -1,61 +0,0 @@
|
|||||||
make distclean
|
|
||||||
#rm source/uboot-2021.10/include/configs/image_cfg.json
|
|
||||||
rm -fr output/*
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/AES.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_cbc.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_ccm.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_cfb.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_ctr.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_eax.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_ecb.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_gcm.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_ocb.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_ofb.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_openpgp.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Cipher/_mode_siv.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/BLAKE2s.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/CMAC.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/HMAC.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/MD5.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/SHA1.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/SHA256.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Hash/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Math/Numbers.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Math/Primality.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Math/_IntegerBase.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Math/_IntegerGMP.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Math/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Protocol/KDF.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Protocol/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/PublicKey/RSA.pyc
|
|
||||||
rm tools/scripts/Cryptodome/PublicKey/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Random/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Signature/PKCS1_v1_5.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Signature/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Signature/pkcs1_15.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/__init__.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/_cpu_features.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/_file_system.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/_raw_api.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/asn1.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/number.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/py3compat.pyc
|
|
||||||
rm tools/scripts/Cryptodome/Util/strxor.pyc
|
|
||||||
rm tools/scripts/Cryptodome/__init__.pyc
|
|
||||||
rm tools/scripts/asn1crypto/__init__.pyc
|
|
||||||
rm tools/scripts/asn1crypto/_errors.pyc
|
|
||||||
rm tools/scripts/asn1crypto/_iri.pyc
|
|
||||||
rm tools/scripts/asn1crypto/_ordereddict.pyc
|
|
||||||
rm tools/scripts/asn1crypto/_teletex_codec.pyc
|
|
||||||
rm tools/scripts/asn1crypto/_types.pyc
|
|
||||||
rm tools/scripts/asn1crypto/core.pyc
|
|
||||||
rm tools/scripts/asn1crypto/parser.pyc
|
|
||||||
rm tools/scripts/asn1crypto/util.pyc
|
|
||||||
rm tools/scripts/asn1crypto/version.pyc
|
|
||||||
rm tools/scripts/gmssl/__init__.pyc
|
|
||||||
rm tools/scripts/gmssl/func.pyc
|
|
||||||
rm tools/scripts/gmssl/sm2.pyc
|
|
||||||
rm tools/scripts/gmssl/sm3.pyc
|
|
||||||
rm tools/scripts/gmssl/sm4.pyc
|
|
||||||
|
|
||||||
@ -1 +0,0 @@
|
|||||||
https://aicdoc.artinchip.com/topics/sdk/wifi/wifi-rtl8821cs-luban.html
|
|
||||||
@ -569,21 +569,10 @@ $(BUILD_DIR)/%/.stamp_prebuilt_rsynced:
|
|||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
$(BUILD_DIR)/%/.stamp_prebuilt_patched:
|
$(BUILD_DIR)/%/.stamp_prebuilt_patched:
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
#$(BUILD_DIR)/%/.stamp_prebuilt_extracted:
|
|
||||||
# @$(call MESSAGE,"Extracting prebuilt binary tarball")
|
|
||||||
# $($(PKG)_PREBUILT_EXTRACT_CMDS)
|
|
||||||
# @tools/support/scripts/fix-prebuilt-rpath.sh $($(PKG)_NAME) $($(PKG)_BASENAME) $($(PKG)_DIR)
|
|
||||||
# $(Q)touch $@
|
|
||||||
$(BUILD_DIR)/%/.stamp_prebuilt_extracted:
|
$(BUILD_DIR)/%/.stamp_prebuilt_extracted:
|
||||||
@$(call MESSAGE,"Extracting prebuilt binary tarball: $($(PKG)_NAME)")
|
@$(call MESSAGE,"Extracting prebuilt binary tarball")
|
||||||
# 创建解压目录,避免tar解压失败
|
$($(PKG)_PREBUILT_EXTRACT_CMDS)
|
||||||
$(Q)mkdir -p $(BUILD_DIR)/$($(PKG)_BASENAME)
|
|
||||||
# 执行解压命令(添加容错参数,输出详细日志)
|
|
||||||
$(Q)$($(PKG)_PREBUILT_EXTRACT_CMDS) 2>&1 | tee $(BUILD_DIR)/$($(PKG)_BASENAME)/tar_extract.log || \
|
|
||||||
(echo "WARN: Extract failed, skip error files..." && true)
|
|
||||||
# 修复预编译包的RPATH(运行时库路径)
|
|
||||||
@tools/support/scripts/fix-prebuilt-rpath.sh $($(PKG)_NAME) $($(PKG)_BASENAME) $($(PKG)_DIR)
|
@tools/support/scripts/fix-prebuilt-rpath.sh $($(PKG)_NAME) $($(PKG)_BASENAME) $($(PKG)_DIR)
|
||||||
# 生成标记文件,避免重复执行
|
|
||||||
$(Q)touch $@
|
$(Q)touch $@
|
||||||
|
|
||||||
# Remove package sources
|
# Remove package sources
|
||||||
|
|||||||
@ -94,14 +94,11 @@ CONFIG_NET_ARTINCHIP_MAC=y
|
|||||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||||
# CONFIG_NET_VENDOR_XILINX is not set
|
# CONFIG_NET_VENDOR_XILINX is not set
|
||||||
CONFIG_REALTEK_PHY=y
|
CONFIG_REALTEK_PHY=y
|
||||||
# CONFIG_RTL_CARDS is not set
|
|
||||||
CONFIG_AIC_WLAN_SUPPORT=y
|
|
||||||
CONFIG_AIC8800_WLAN_SUPPORT=m
|
|
||||||
CONFIG_AIC8800_BTLPM_SUPPORT=m
|
|
||||||
CONFIG_INPUT_EVDEV=y
|
CONFIG_INPUT_EVDEV=y
|
||||||
CONFIG_KEYBOARD_GPIO=y
|
CONFIG_KEYBOARD_GPIO=y
|
||||||
CONFIG_INPUT_TOUCHSCREEN=y
|
CONFIG_INPUT_TOUCHSCREEN=y
|
||||||
CONFIG_TOUCHSCREEN_ARTINCHIP=y
|
CONFIG_TOUCHSCREEN_ARTINCHIP=y
|
||||||
|
CONFIG_TOUCHSCREEN_GT9XX=y
|
||||||
# CONFIG_LEGACY_PTYS is not set
|
# CONFIG_LEGACY_PTYS is not set
|
||||||
CONFIG_SERIAL_8250=y
|
CONFIG_SERIAL_8250=y
|
||||||
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
|
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
|
||||||
@ -130,12 +127,11 @@ CONFIG_FB=y
|
|||||||
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
CONFIG_BACKLIGHT_CLASS_DEVICE=y
|
||||||
CONFIG_BACKLIGHT_PWM=y
|
CONFIG_BACKLIGHT_PWM=y
|
||||||
CONFIG_BACKLIGHT_GPIO=y
|
CONFIG_BACKLIGHT_GPIO=y
|
||||||
CONFIG_LT8911EXB=y
|
|
||||||
CONFIG_ARTINCHIP_GE=y
|
CONFIG_ARTINCHIP_GE=y
|
||||||
CONFIG_ARTINCHIP_VE=y
|
CONFIG_ARTINCHIP_VE=y
|
||||||
CONFIG_ARTINCHIP_FB=y
|
CONFIG_ARTINCHIP_FB=y
|
||||||
CONFIG_AIC_DISP_MIPI_DSI=y
|
CONFIG_AIC_DISP_LVDS=y
|
||||||
CONFIG_AIC_PANEL_DSI_SIMPLE=y
|
CONFIG_AIC_PANEL_LVDS_GENERAL=y
|
||||||
CONFIG_SOUND=y
|
CONFIG_SOUND=y
|
||||||
CONFIG_SND=y
|
CONFIG_SND=y
|
||||||
CONFIG_SND_SOC=y
|
CONFIG_SND_SOC=y
|
||||||
@ -201,8 +197,8 @@ CONFIG_CRYPTO_STATS=y
|
|||||||
CONFIG_CRYPTO_USER_API_AKCIPHER=y
|
CONFIG_CRYPTO_USER_API_AKCIPHER=y
|
||||||
CONFIG_CRYPTO_DEV_ARTINCHIP_CE=y
|
CONFIG_CRYPTO_DEV_ARTINCHIP_CE=y
|
||||||
CONFIG_DMA_CMA=y
|
CONFIG_DMA_CMA=y
|
||||||
CONFIG_CMA_SIZE_MBYTES=48
|
CONFIG_CMA_SIZE_MBYTES=24
|
||||||
CONFIG_CMA_MPP_SIZE_MBYTES=24
|
CONFIG_CMA_MPP_SIZE_MBYTES=16
|
||||||
CONFIG_PRINTK_TIME=y
|
CONFIG_PRINTK_TIME=y
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
CONFIG_DEBUG_FS=y
|
CONFIG_DEBUG_FS=y
|
||||||
|
|||||||
@ -46,15 +46,10 @@ extern int aicwf_dbg_level_bsp;
|
|||||||
|
|
||||||
#define AICWF_LOG "AICWFDBG("
|
#define AICWF_LOG "AICWFDBG("
|
||||||
|
|
||||||
//#define AICWFDBG(level, args, arg...) \
|
|
||||||
do { \
|
|
||||||
if (aicwf_dbg_level_bsp & level) { \
|
|
||||||
printk(AICWF_LOG#level")\t" args, ##arg); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
#define AICWFDBG(level, args, arg...) \
|
#define AICWFDBG(level, args, arg...) \
|
||||||
do { \
|
do { \
|
||||||
if (aicwf_dbg_level_bsp & level) { \
|
if (aicwf_dbg_level_bsp & level) { \
|
||||||
|
printk(AICWF_LOG#level")\t" args, ##arg); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|||||||
@ -20,15 +20,10 @@ void rwnx_data_dump(char* tag, void* data, unsigned long len);
|
|||||||
|
|
||||||
#define AICWF_LOG "AICWFDBG("
|
#define AICWF_LOG "AICWFDBG("
|
||||||
|
|
||||||
//#define AICWFDBG(level, args, arg...) \
|
|
||||||
do { \
|
|
||||||
if (aicwf_dbg_level & level) { \
|
|
||||||
printk(AICWF_LOG#level")\t" args, ##arg); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
#define AICWFDBG(level, args, arg...) \
|
#define AICWFDBG(level, args, arg...) \
|
||||||
do { \
|
do { \
|
||||||
if (aicwf_dbg_level & level) { \
|
if (aicwf_dbg_level & level) { \
|
||||||
|
printk(AICWF_LOG#level")\t" args, ##arg); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,6 @@ source "drivers/video/fbdev/Kconfig"
|
|||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
source "drivers/video/backlight/Kconfig"
|
source "drivers/video/backlight/Kconfig"
|
||||||
source "drivers/video/lt8911exb/Kconfig"
|
|
||||||
|
|
||||||
config VGASTATE
|
config VGASTATE
|
||||||
tristate
|
tristate
|
||||||
|
|||||||
@ -9,7 +9,6 @@ obj-y += backlight/
|
|||||||
|
|
||||||
obj-y += fbdev/
|
obj-y += fbdev/
|
||||||
obj-y += artinchip/
|
obj-y += artinchip/
|
||||||
obj-y += lt8911exb/
|
|
||||||
|
|
||||||
obj-$(CONFIG_VIDEOMODE_HELPERS) += display_timing.o videomode.o
|
obj-$(CONFIG_VIDEOMODE_HELPERS) += display_timing.o videomode.o
|
||||||
ifeq ($(CONFIG_OF),y)
|
ifeq ($(CONFIG_OF),y)
|
||||||
|
|||||||
@ -71,15 +71,15 @@ static struct aic_panel_funcs panel_funcs = {
|
|||||||
|
|
||||||
/* Init the videomode parameter, dts will override the initial value. */
|
/* Init the videomode parameter, dts will override the initial value. */
|
||||||
static struct videomode panel_vm = {
|
static struct videomode panel_vm = {
|
||||||
.pixelclock = 150 * 1000 * 1000,
|
.pixelclock = 130000000,
|
||||||
.hactive = 1920,
|
.hactive = 1200,
|
||||||
.hfront_porch = 188,
|
.hfront_porch = 160,
|
||||||
.hback_porch = 148,
|
.hback_porch = 160,
|
||||||
.hsync_len = 44,
|
.hsync_len = 40,
|
||||||
.vactive = 1080,
|
.vactive = 1920,
|
||||||
.vfront_porch = 4,
|
.vfront_porch = 10,
|
||||||
.vback_porch = 36,
|
.vback_porch = 20,
|
||||||
.vsync_len = 5,
|
.vsync_len = 8,
|
||||||
.flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
|
.flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
|
||||||
DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE
|
DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
|
|
||||||
config LT8911EXB
|
|
||||||
tristate "LT8911EXB Driver"
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Control LT8911EXB Chip
|
|
||||||
Select m:build as a separate module;
|
|
||||||
Select y:Build into the kernel
|
|
||||||
Select n:Not build
|
|
||||||
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
#include "include/include.h"
|
|
||||||
|
|
||||||
bool g_irq_flag = 0;
|
|
||||||
|
|
||||||
|
|
||||||
int LT8911EXB_Main(void *data)
|
|
||||||
{
|
|
||||||
|
|
||||||
printk("LT8911EXB Init Start:");
|
|
||||||
|
|
||||||
LT8911_Reset();
|
|
||||||
msleep(100);
|
|
||||||
LT8911_ChipID();
|
|
||||||
LT8911_SetVideoTiming(&video);
|
|
||||||
LT8911_Init(&video);
|
|
||||||
LT8911_LinkTrain();
|
|
||||||
|
|
||||||
LT8911_LinkTrainResultCheck();
|
|
||||||
LT8911_video_check() ;
|
|
||||||
LT8911_pcr_mk_printk();
|
|
||||||
LT8911_htotal_stable_printk();
|
|
||||||
|
|
||||||
|
|
||||||
while(!atomic_read(&thread_should_stop))
|
|
||||||
{
|
|
||||||
LT8911_MainLoop(&video);
|
|
||||||
msleep(500);
|
|
||||||
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,283 +0,0 @@
|
|||||||
#include "include/include.h"
|
|
||||||
|
|
||||||
|
|
||||||
struct _lt8911exb *lt8911exb;
|
|
||||||
static struct task_struct *kthread_obj;
|
|
||||||
atomic_t thread_should_stop = ATOMIC_INIT(0);
|
|
||||||
char *ChipName = "lt8911exb"; //Define Lontium Chip Name
|
|
||||||
static int major = 0;
|
|
||||||
static struct cdev chip_cdev;
|
|
||||||
static struct class *chip_class;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int chip_open(struct inode *inode, struct file *filp)
|
|
||||||
{
|
|
||||||
printk("chip open\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int chip_close (struct inode *node, struct file *file)
|
|
||||||
{
|
|
||||||
printk("chip close\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static ssize_t chip_read(struct file *filp, char __user *buf, size_t cnt, loff_t *offt)
|
|
||||||
{
|
|
||||||
Chip_Control_Args parameter;
|
|
||||||
|
|
||||||
if (copy_from_user(¶meter, buf, sizeof(parameter))) {
|
|
||||||
return -EFAULT;
|
|
||||||
}
|
|
||||||
|
|
||||||
parameter.value = HDMI_ReadI2C_Byte(parameter.address);
|
|
||||||
|
|
||||||
if (copy_to_user(buf, ¶meter, sizeof(parameter))) {
|
|
||||||
return -EFAULT;
|
|
||||||
}
|
|
||||||
|
|
||||||
return sizeof(parameter);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t chip_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *offt)
|
|
||||||
{
|
|
||||||
Chip_Control_Args parameter;
|
|
||||||
|
|
||||||
if (copy_from_user(¶meter, buf, sizeof(parameter))) {
|
|
||||||
return -EFAULT;
|
|
||||||
}
|
|
||||||
|
|
||||||
HDMI_WriteI2C_Byte(parameter.address, parameter.value);
|
|
||||||
|
|
||||||
return sizeof(parameter);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static struct file_operations chip_drv = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
.open = chip_open,
|
|
||||||
.release = chip_close,
|
|
||||||
.read = chip_read,
|
|
||||||
.write = chip_write,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int chip_dev_init(void)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
dev_t devid;
|
|
||||||
|
|
||||||
ret = alloc_chrdev_region(&devid, 0, 1, ChipName);
|
|
||||||
if (ret < 0) {
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
major = MAJOR(devid);
|
|
||||||
cdev_init(&chip_cdev, &chip_drv);
|
|
||||||
cdev_add(&chip_cdev, devid, 1);
|
|
||||||
chip_class = class_create(THIS_MODULE, "chip_class");
|
|
||||||
if (IS_ERR(chip_class)) {
|
|
||||||
unregister_chrdev(major, ChipName);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
device_create(chip_class, NULL, MKDEV(major, 0), NULL, ChipName); /* /dev/ChipName */
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void chip_dev_exit(void)
|
|
||||||
{
|
|
||||||
device_destroy(chip_class, MKDEV(major, 0));
|
|
||||||
class_destroy(chip_class);
|
|
||||||
cdev_del(&chip_cdev);
|
|
||||||
unregister_chrdev_region(MKDEV(major,0), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const struct regmap_range chip_ranges[] = {
|
|
||||||
{ .range_min = 0, .range_max = 0xffff },
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct regmap_access_table chip_table = {
|
|
||||||
.yes_ranges = chip_ranges,
|
|
||||||
.n_yes_ranges = ARRAY_SIZE(chip_ranges),
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct regmap_config chip_regmap_config = {
|
|
||||||
.reg_bits = 8,
|
|
||||||
.val_bits = 8,
|
|
||||||
.volatile_table = &chip_table,
|
|
||||||
.cache_type = REGCACHE_NONE,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* devm_gpiod_get_optional - If this fails, NULL is returned and no error pointer.
|
|
||||||
*
|
|
||||||
* devm_gpiod_get - If this fails, an error pointer is returned, usually ERR_PTR(-ENOENT).
|
|
||||||
*
|
|
||||||
* The devm_gpiod_get function is recommended for practical use.
|
|
||||||
*/
|
|
||||||
static int chip_parse_dts(struct device *dev)
|
|
||||||
{
|
|
||||||
|
|
||||||
//Gets the handle to power gpio in dts
|
|
||||||
|
|
||||||
lt8911exb->power_gpio=devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW);
|
|
||||||
if (IS_ERR(lt8911exb->power_gpio)) {
|
|
||||||
dev_err(dev, "Failed to get power GPIO\n");
|
|
||||||
return PTR_ERR(lt8911exb->power_gpio);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Gets the handle to reset gpio in dts
|
|
||||||
|
|
||||||
lt8911exb->reset_gpio=devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
|
|
||||||
if (IS_ERR(lt8911exb->reset_gpio)) {
|
|
||||||
dev_err(dev, "Failed to get reset GPIO\n");
|
|
||||||
return PTR_ERR(lt8911exb->reset_gpio);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Additional GPIO pins can be added here if needed
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int chip_probe(struct i2c_client *client, const struct i2c_device_id *id)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
chip_dev_init();
|
|
||||||
|
|
||||||
lt8911exb = devm_kzalloc(&client->dev, sizeof(*lt8911exb), GFP_KERNEL);
|
|
||||||
if (lt8911exb == NULL)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
lt8911exb->trans_i2c = client;
|
|
||||||
|
|
||||||
lt8911exb->dev = &client->dev;
|
|
||||||
|
|
||||||
lt8911exb->chip_regmap = devm_regmap_init_i2c(client, &chip_regmap_config);
|
|
||||||
if (IS_ERR(lt8911exb->chip_regmap)) {
|
|
||||||
dev_err(&client->dev, "Failed to initialize regmap\n");
|
|
||||||
return PTR_ERR(lt8911exb->chip_regmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = chip_parse_dts(lt8911exb->dev);
|
|
||||||
if (ret<0){
|
|
||||||
dev_err(&client->dev, "Failed to parse device tree\n");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
i2c_set_clientdata(client, lt8911exb);
|
|
||||||
|
|
||||||
kthread_obj = kthread_run(LT8911EXB_Main, NULL, "LT8911EXB_kthread");
|
|
||||||
if (IS_ERR(kthread_obj)) {
|
|
||||||
kthread_obj = NULL;
|
|
||||||
chip_dev_exit();
|
|
||||||
dev_err(&client->dev, "Failed to create kernel thread\n");
|
|
||||||
return PTR_ERR(kthread_obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static int chip_remove(struct i2c_client *client)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (kthread_obj) {
|
|
||||||
atomic_set(&thread_should_stop, 1);
|
|
||||||
kthread_stop(kthread_obj);
|
|
||||||
kthread_obj = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
chip_dev_exit();
|
|
||||||
|
|
||||||
printk("driver removed\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int chip_suspend(struct device *dev)
|
|
||||||
{
|
|
||||||
|
|
||||||
//power off
|
|
||||||
atomic_set(&thread_should_stop, 1);
|
|
||||||
kthread_stop(kthread_obj);
|
|
||||||
msleep(5);
|
|
||||||
gpiod_set_value(lt8911exb->power_gpio,0);
|
|
||||||
printk(KERN_INFO "lt8911exb Suspend");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int chip_resume(struct device *dev)
|
|
||||||
{
|
|
||||||
|
|
||||||
//power on
|
|
||||||
gpiod_set_value(lt8911exb->power_gpio,1);
|
|
||||||
msleep(5);
|
|
||||||
atomic_set(&thread_should_stop, 0);
|
|
||||||
kthread_obj = kthread_run(LT8911EXB_Main, NULL, "LT8911EXB_kthread");
|
|
||||||
printk(KERN_INFO "lt8911exb Resume");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static const struct dev_pm_ops chip_pm_ops = {
|
|
||||||
.suspend = chip_suspend,
|
|
||||||
.resume = chip_resume,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const struct i2c_device_id chip_ids[] = {
|
|
||||||
{"lt8911exb", 0},
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
MODULE_DEVICE_TABLE(i2c, chip_ids);
|
|
||||||
|
|
||||||
|
|
||||||
static const struct of_device_id chip_id_table[] = {
|
|
||||||
{.compatible = "lontium,lt8911exb"},
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
MODULE_DEVICE_TABLE(of, chip_id_table);
|
|
||||||
|
|
||||||
|
|
||||||
static struct i2c_driver chip_driver = {
|
|
||||||
.driver = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
.name = "lt8911exb",
|
|
||||||
.pm = &chip_pm_ops,
|
|
||||||
.of_match_table = chip_id_table,
|
|
||||||
|
|
||||||
},
|
|
||||||
.probe = chip_probe,
|
|
||||||
.remove = chip_remove,
|
|
||||||
.id_table = chip_ids,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
module_i2c_driver(chip_driver);
|
|
||||||
|
|
||||||
MODULE_LICENSE("GPL");
|
|
||||||
MODULE_DESCRIPTION("LT8911EXB driver");
|
|
||||||
MODULE_AUTHOR("Tony <syyang@lontium.com>");
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
lt8911exb-y := LontiumDrv.o LT8911EXB_Main.o OcmI2cMaster.o lt8911.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_LT8911EXB) += lt8911exb.o
|
|
||||||
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
#include "include/include.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static unsigned char g_ucLogLevel = LOG_DEBUG;
|
|
||||||
static char *messageTypeStr[] = {"DEBUG","INFO","WARN", "ERROR","CRIT"};
|
|
||||||
|
|
||||||
//void Ocm_PrintLevel_Set(unsigned char ucLvl)
|
|
||||||
//{
|
|
||||||
// g_ucLogLevel = ucLvl;
|
|
||||||
//}
|
|
||||||
|
|
||||||
void LTLog(unsigned char ucLvl, const char *fmt, ...)
|
|
||||||
{
|
|
||||||
char buf[MAX_NUMBER_BYTES] = {0};
|
|
||||||
va_list args;
|
|
||||||
if (ucLvl > LOG_NOTRACE)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//打印大于等于该级别的字符串
|
|
||||||
if(ucLvl >= g_ucLogLevel)
|
|
||||||
{
|
|
||||||
va_start(args, fmt);
|
|
||||||
vsprintf(buf, fmt, args);
|
|
||||||
va_end(args);
|
|
||||||
//左对齐5个字符
|
|
||||||
printk("\n[%-5s] %s", messageTypeStr[ucLvl], buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int HDMI_WriteI2C_Byte(u8 addr,u8 data)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
|
|
||||||
ret = regmap_write(lt8911exb->chip_regmap, addr, data);
|
|
||||||
|
|
||||||
if (ret < 0) {
|
|
||||||
printk("regmap_write error: (0x%02x 0x%02x 0x%02x) %d",
|
|
||||||
lt8911exb->trans_i2c->addr, addr, data, ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int HDMI_ReadI2C_Byte(u8 addr)
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
unsigned int val = 0;
|
|
||||||
|
|
||||||
ret = regmap_read(lt8911exb->chip_regmap, addr, &val);
|
|
||||||
|
|
||||||
if (ret < 0) {
|
|
||||||
printk("regmap_read error: (0x%02x 0x%02x) %d",
|
|
||||||
lt8911exb->trans_i2c->addr, addr, ret);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (u8)val;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(HDMI_WriteI2C_Byte);
|
|
||||||
EXPORT_SYMBOL(HDMI_ReadI2C_Byte);
|
|
||||||
Binary file not shown.
Binary file not shown.
@ -1,11 +0,0 @@
|
|||||||
#ifndef _LT8911EXB_MAIN_H_
|
|
||||||
#define _LT8911EXB_MAIN_H_
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern bool g_irq_flag;
|
|
||||||
extern int LT8911EXB_Main(void *data);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
#ifndef _LONTIUMDRV_H_
|
|
||||||
#define _LONTIUMDRV_H_
|
|
||||||
|
|
||||||
|
|
||||||
struct _lt8911exb{
|
|
||||||
struct device *dev;
|
|
||||||
struct mutex ocm_lock;
|
|
||||||
struct gpio_desc *reset_gpio;
|
|
||||||
struct gpio_desc *power_gpio;
|
|
||||||
struct i2c_client *trans_i2c;
|
|
||||||
struct regmap *chip_regmap;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
u8 address; // 寄存器地址
|
|
||||||
u8 value; // 寄存器值
|
|
||||||
} Chip_Control_Args;
|
|
||||||
|
|
||||||
|
|
||||||
extern struct _lt8911exb *lt8911exb;
|
|
||||||
extern atomic_t thread_should_stop;
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
#ifndef _OCMI2CMASTER_H_
|
|
||||||
#define _OCMI2CMASTER_H_
|
|
||||||
|
|
||||||
#define MAX_NUMBER_BYTES 128
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
LOG_DEBUG =0x00,
|
|
||||||
LOG_INFO,
|
|
||||||
LOG_WARN,
|
|
||||||
LOG_ERROR,
|
|
||||||
LOG_CRITICAL,
|
|
||||||
LOG_NOTRACE,
|
|
||||||
} LT_LogLevel;
|
|
||||||
|
|
||||||
void LTLog(unsigned char ucLvl, const char *fmt, ...);
|
|
||||||
|
|
||||||
|
|
||||||
extern int HDMI_WriteI2C_Byte(u8 addr,u8 data);
|
|
||||||
extern int HDMI_ReadI2C_Byte(u8 addr);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
#ifndef _INCLUDE_H_
|
|
||||||
#define _INCLUDE_H_
|
|
||||||
|
|
||||||
#include <linux/module.h>
|
|
||||||
#include <linux/i2c.h>
|
|
||||||
#include <linux/regmap.h>
|
|
||||||
#include <linux/gpio.h>
|
|
||||||
#include <linux/kobject.h>
|
|
||||||
#include <linux/sysfs.h>
|
|
||||||
#include <linux/printk.h>
|
|
||||||
|
|
||||||
#include <linux/miscdevice.h>
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/major.h>
|
|
||||||
#include <linux/mutex.h>
|
|
||||||
#include <linux/proc_fs.h>
|
|
||||||
#include <linux/seq_file.h>
|
|
||||||
#include <linux/stat.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
#include <linux/device.h>
|
|
||||||
#include <linux/tty.h>
|
|
||||||
#include <linux/kmod.h>
|
|
||||||
#include <linux/gfp.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
|
|
||||||
#include <linux/kthread.h>
|
|
||||||
#include <linux/atomic.h>
|
|
||||||
|
|
||||||
|
|
||||||
#include "type.h"
|
|
||||||
#include "LontiumDrv.h"
|
|
||||||
|
|
||||||
#include "LT8911EXB_Main.h"
|
|
||||||
#include "lt8911.h"
|
|
||||||
|
|
||||||
#include "OcmI2cMaster.h"
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
#ifndef _LT8911EXB_H_
|
|
||||||
#define _LT8911EXB_H_
|
|
||||||
|
|
||||||
//////////////////////LT8911 Config///////////////////
|
|
||||||
//#define _1920x1200_eDP_Panel_
|
|
||||||
#define _1080P_eDP_Panel_
|
|
||||||
//#define _1366x768_eDP_Panel_
|
|
||||||
//#define _1280x800_eDP_Panel_
|
|
||||||
//#define _1600x900_eDP_Panel_
|
|
||||||
|
|
||||||
#define SCRAMBLE_MODE 0x00 //0x80: edp, 0x00: dp
|
|
||||||
|
|
||||||
//#define sync_polarity 0x00 //0x00: no_adj; 0x20: vs_adj; 0x10: hs_adj; 0x30: H/Vs adj;
|
|
||||||
|
|
||||||
//#define _6bit_
|
|
||||||
|
|
||||||
//#define _dither_enable_
|
|
||||||
|
|
||||||
#define _eDP_2G7_
|
|
||||||
//#define _eDP_1G62_
|
|
||||||
|
|
||||||
#define _link_train_enable_
|
|
||||||
|
|
||||||
//////////option for debug///////////
|
|
||||||
//#define _read_edid_
|
|
||||||
//#define _EDP_Pattern_
|
|
||||||
//#define _Msa_Active_Only_
|
|
||||||
#define _pcr_mk_printk_
|
|
||||||
#define _htotal_stable_check_
|
|
||||||
|
|
||||||
//#define _gpio_sync_output_
|
|
||||||
//#define sync_source 0x01 //gpio output lvds Rx sync
|
|
||||||
#define sync_source 0x02 //gpio output lvds portA sync
|
|
||||||
//#define sync_source 0x03 //gpio output lvds portB sync
|
|
||||||
//gpio2: de, gpio3: vs, gpio4: hs.
|
|
||||||
|
|
||||||
struct video_timing{
|
|
||||||
u16 hfp;
|
|
||||||
u16 hs;
|
|
||||||
u16 hbp;
|
|
||||||
u16 hact;
|
|
||||||
u16 htotal;
|
|
||||||
u16 vfp;
|
|
||||||
u16 vs;
|
|
||||||
u16 vbp;
|
|
||||||
u16 vact;
|
|
||||||
u16 vtotal;
|
|
||||||
u32 pclk_khz;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Lane_No{
|
|
||||||
u8 swing_high_byte;
|
|
||||||
u8 swing_low_byte;
|
|
||||||
u8 emph_high_byte;
|
|
||||||
u8 emph_low_byte;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
extern struct video_timing video;
|
|
||||||
|
|
||||||
extern void LT8911_Reset(void);
|
|
||||||
extern void LT8911_ChipID(void);
|
|
||||||
extern void LT8911_SetVideoTiming(struct video_timing *video_format);
|
|
||||||
extern void LT8911_Init(struct video_timing *video_format);
|
|
||||||
extern void LT8911_LinkTrain(void);
|
|
||||||
extern void LT8911_LinkTrainResultCheck(void);
|
|
||||||
extern void LT8911_video_check(void);
|
|
||||||
extern void LT8911_pcr_mk_printk(void);
|
|
||||||
extern void LT8911_htotal_stable_printk(void);
|
|
||||||
extern void LT8911_MainLoop(struct video_timing *video_format);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
#ifndef _TYPE_H_
|
|
||||||
#define _TYPE_H_
|
|
||||||
|
|
||||||
|
|
||||||
#define HIGH 1
|
|
||||||
#define LOW 0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +0,0 @@
|
|||||||
---- LT8911_Init Matches (3 in 3 files) ----
|
|
||||||
Lt8911.c (d:\龙迅产品程序整理(深圳)\lt8911\lt8911\lt8911exb\democode\for linux\lt8911exb_linux_driver_v1.0.2):void LT8911_Init(struct video_timing *video_format)
|
|
||||||
Lt8911.h (d:\龙迅产品程序整理(深圳)\lt8911\lt8911\lt8911exb\democode\for linux\lt8911exb_linux_driver_v1.0.2\include):extern void LT8911_Init(struct video_timing *video_format);
|
|
||||||
LT8911EXB_Main.c (d:\龙迅产品程序整理(深圳)\lt8911\lt8911\lt8911exb\democode\for linux\lt8911exb_linux_driver_v1.0.2): LT8911_Init();
|
|
||||||
Binary file not shown.
@ -99,7 +99,6 @@ CONFIG_NAND_BBT_OFFSET=0x240000
|
|||||||
CONFIG_SYS_SPI_NAND_U_BOOT_LOCATIONS=y
|
CONFIG_SYS_SPI_NAND_U_BOOT_LOCATIONS=y
|
||||||
CONFIG_SPI_NAND_WINBOND=y
|
CONFIG_SPI_NAND_WINBOND=y
|
||||||
CONFIG_SPI_NAND_GIGADEVICE=y
|
CONFIG_SPI_NAND_GIGADEVICE=y
|
||||||
CONFIG_SPI_NAND_TOSHIBA=y
|
|
||||||
CONFIG_SPI_NAND_FMSH=y
|
CONFIG_SPI_NAND_FMSH=y
|
||||||
CONFIG_SPI_NAND_FORESEE=y
|
CONFIG_SPI_NAND_FORESEE=y
|
||||||
CONFIG_SPI_NAND_ZBIT=y
|
CONFIG_SPI_NAND_ZBIT=y
|
||||||
@ -139,8 +138,8 @@ CONFIG_DM_VIDEO=y
|
|||||||
CONFIG_DISPLAY=y
|
CONFIG_DISPLAY=y
|
||||||
CONFIG_ARTINCHIP_GRAPHICS=y
|
CONFIG_ARTINCHIP_GRAPHICS=y
|
||||||
CONFIG_VIDEO_ARTINCHIP=y
|
CONFIG_VIDEO_ARTINCHIP=y
|
||||||
CONFIG_AIC_DISP_MIPI_DSI=y
|
CONFIG_AIC_DISP_LVDS=y
|
||||||
CONFIG_AIC_PANEL_DSI_SIMPLE=y
|
CONFIG_AIC_PANEL_LVDS_GENERAL=y
|
||||||
# CONFIG_WATCHDOG is not set
|
# CONFIG_WATCHDOG is not set
|
||||||
# CONFIG_WATCHDOG_AUTOSTART is not set
|
# CONFIG_WATCHDOG_AUTOSTART is not set
|
||||||
CONFIG_WDT=y
|
CONFIG_WDT=y
|
||||||
|
|||||||
@ -139,16 +139,12 @@ static struct aic_pll clk_plls[] = {
|
|||||||
0, AIC_PLL_INT),
|
0, AIC_PLL_INT),
|
||||||
CLK_PLL(CLK_PLL_INT1, PLL_INT1_GEN_REG, PLL_INT1_CFG_REG,
|
CLK_PLL(CLK_PLL_INT1, PLL_INT1_GEN_REG, PLL_INT1_CFG_REG,
|
||||||
0, AIC_PLL_INT),
|
0, AIC_PLL_INT),
|
||||||
// CLK_PLL(CLK_PLL_FRA0, PLL_FRA0_GEN_REG, PLL_FRA0_CFG_REG,
|
|
||||||
// PLL_FRA0_SDM_REG, AIC_PLL_SDM),
|
|
||||||
CLK_PLL(CLK_PLL_FRA0, PLL_FRA0_GEN_REG, PLL_FRA0_CFG_REG,
|
CLK_PLL(CLK_PLL_FRA0, PLL_FRA0_GEN_REG, PLL_FRA0_CFG_REG,
|
||||||
PLL_FRA0_SDM_REG, AIC_PLL_FRA),
|
PLL_FRA0_SDM_REG, AIC_PLL_SDM),
|
||||||
CLK_PLL(CLK_PLL_FRA1, PLL_FRA1_GEN_REG, PLL_FRA1_CFG_REG,
|
CLK_PLL(CLK_PLL_FRA1, PLL_FRA1_GEN_REG, PLL_FRA1_CFG_REG,
|
||||||
PLL_FRA1_SDM_REG, AIC_PLL_FRA),
|
PLL_FRA1_SDM_REG, AIC_PLL_FRA),
|
||||||
// CLK_PLL_VIDEO(CLK_PLL_FRA2, PLL_FRA2_GEN_REG, PLL_FRA2_CFG_REG,
|
|
||||||
// PLL_FRA2_SDM_REG, AIC_PLL_SDM, 0, 1200000000),
|
|
||||||
CLK_PLL_VIDEO(CLK_PLL_FRA2, PLL_FRA2_GEN_REG, PLL_FRA2_CFG_REG,
|
CLK_PLL_VIDEO(CLK_PLL_FRA2, PLL_FRA2_GEN_REG, PLL_FRA2_CFG_REG,
|
||||||
PLL_FRA2_SDM_REG, AIC_PLL_FRA, 0, 1200000000),
|
PLL_FRA2_SDM_REG, AIC_PLL_SDM, 0, 1200000000),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -192,26 +192,6 @@ static const struct spinand_info gigadevice_spinand_table[] = {
|
|||||||
SPINAND_HAS_QE_BIT,
|
SPINAND_HAS_QE_BIT,
|
||||||
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
|
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
|
||||||
gd5fxgq4uexxg_ecc_get_status)),
|
gd5fxgq4uexxg_ecc_get_status)),
|
||||||
SPINAND_INFO("GD5F2GM7UEY1G",
|
|
||||||
SPINAND_ID(0x92),
|
|
||||||
NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
|
|
||||||
NAND_ECCREQ(8, 512),
|
|
||||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
|
|
||||||
&write_cache_variants,
|
|
||||||
&update_cache_variants),
|
|
||||||
SPINAND_HAS_QE_BIT,
|
|
||||||
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
|
|
||||||
gd5fxgq4uexxg_ecc_get_status)),
|
|
||||||
SPINAND_INFO("GD5F2GQ5UEY1G",
|
|
||||||
SPINAND_ID(0x52),
|
|
||||||
NAND_MEMORG(1, 2048, 128, 64, 2048, 1, 1, 1),
|
|
||||||
NAND_ECCREQ(8, 512),
|
|
||||||
SPINAND_INFO_OP_VARIANTS(&read_cache_variants_1gq5,
|
|
||||||
&write_cache_variants,
|
|
||||||
&update_cache_variants),
|
|
||||||
SPINAND_HAS_QE_BIT,
|
|
||||||
SPINAND_ECCINFO(&gd5fxgqx_variant2_ooblayout,
|
|
||||||
gd5fxgq4uexxg_ecc_get_status)),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int gigadevice_spinand_detect(struct spinand_device *spinand)
|
static int gigadevice_spinand_detect(struct spinand_device *spinand)
|
||||||
|
|||||||
@ -62,15 +62,6 @@ static struct aic_panel_funcs panel_funcs = {
|
|||||||
|
|
||||||
/* Init the videomode parameter, dts will override the initial value. */
|
/* Init the videomode parameter, dts will override the initial value. */
|
||||||
static struct fb_videomode panel_vm = {
|
static struct fb_videomode panel_vm = {
|
||||||
.pixclock = 150 * 1000 * 1000,
|
|
||||||
.xres = 1920,
|
|
||||||
.right_margin = 188,
|
|
||||||
.left_margin = 148,
|
|
||||||
.hsync_len = 44,
|
|
||||||
.yres = 1080,
|
|
||||||
.lower_margin = 4,
|
|
||||||
.upper_margin = 36,
|
|
||||||
.vsync_len = 5,
|
|
||||||
.flag = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
|
.flag = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
|
||||||
DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE
|
DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
/home/tzkj/work/code/linuxOS_D21X/target/d211/demo128_nand/image_cfg.json
|
|
||||||
@ -17,7 +17,6 @@ BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
|
|||||||
BR2_TARGET_ROOTFS_UBI=y
|
BR2_TARGET_ROOTFS_UBI=y
|
||||||
BR2_TARGET_ROOTFS_UBIFS_MAX_SIZE=0x4000000
|
BR2_TARGET_ROOTFS_UBIFS_MAX_SIZE=0x4000000
|
||||||
BR2_TARGET_ROOTFS_UBIFS_OPTS="-F"
|
BR2_TARGET_ROOTFS_UBIFS_OPTS="-F"
|
||||||
BR2_GENERATE_BURNER_IMAGE=y
|
|
||||||
BR2_GENERATE_IMAGE_AUTO_CALCULATE_SIZE=y
|
BR2_GENERATE_IMAGE_AUTO_CALCULATE_SIZE=y
|
||||||
BR2_PACKAGE_OPENSBI_FW_TEXT_BASE=0x47FE0000
|
BR2_PACKAGE_OPENSBI_FW_TEXT_BASE=0x47FE0000
|
||||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="d211_demo128_nand"
|
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="d211_demo128_nand"
|
||||||
@ -36,6 +35,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="d211_demo128_nand"
|
|||||||
BR2_LINUX_KERNEL_IMAGEGZ=y
|
BR2_LINUX_KERNEL_IMAGEGZ=y
|
||||||
BR2_PACKAGE_LINUX_TOOLS_SELFTESTS=y
|
BR2_PACKAGE_LINUX_TOOLS_SELFTESTS=y
|
||||||
# BR2_PACKAGE_AIC_AUTHORIZATION is not set
|
# BR2_PACKAGE_AIC_AUTHORIZATION is not set
|
||||||
|
BR2_PACKAGE_LVGL_UI=y
|
||||||
# BR2_PACKAGE_TEST_DVP is not set
|
# BR2_PACKAGE_TEST_DVP is not set
|
||||||
# BR2_PACKAGE_TEST_TOUCHSCREEN is not set
|
# BR2_PACKAGE_TEST_TOUCHSCREEN is not set
|
||||||
BR2_PACKAGE_BUSYBOX_CONFIG="package/third-party/busybox/configs/d211_demo128_nand_defconfig"
|
BR2_PACKAGE_BUSYBOX_CONFIG="package/third-party/busybox/configs/d211_demo128_nand_defconfig"
|
||||||
@ -55,27 +55,7 @@ BR2_PACKAGE_LIBMNL=y
|
|||||||
BR2_PACKAGE_LIBNL_TOOLS=y
|
BR2_PACKAGE_LIBNL_TOOLS=y
|
||||||
BR2_PACKAGE_NETPERF=y
|
BR2_PACKAGE_NETPERF=y
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT=y
|
BR2_PACKAGE_WPA_SUPPLICANT=y
|
||||||
# BR2_PACKAGE_WPA_SUPPLICANT_USE_PREBUILT is not set
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_WEXT=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_WPS=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_WPA3=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
|
|
||||||
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
|
|
||||||
BR2_PACKAGE_WIRELESS_TOOLS=y
|
BR2_PACKAGE_WIRELESS_TOOLS=y
|
||||||
# BR2_PACKAGE_WIRELESS_TOOLS_USE_PREBUILT is not set
|
|
||||||
BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
|
|
||||||
BR2_PACKAGE_HOSTAPD=y
|
|
||||||
# BR2_PACKAGE_HOSTAPD_USE_PREBUILT is not set
|
|
||||||
BR2_PACKAGE_HOSTAPD_DRIVER_WIRED=y
|
|
||||||
BR2_PACKAGE_HOSTAPD_EAP=y
|
|
||||||
BR2_PACKAGE_HOSTAPD_WPS=y
|
|
||||||
BR2_PACKAGE_HOSTAPD_WPA3=y
|
|
||||||
BR2_PACKAGE_AIC8800_FW=y
|
|
||||||
BR2_PACKAGE_LIBKCAPI_ENCAPP=y
|
BR2_PACKAGE_LIBKCAPI_ENCAPP=y
|
||||||
BR2_PACKAGE_LIBKCAPI_HASHER=y
|
BR2_PACKAGE_LIBKCAPI_HASHER=y
|
||||||
BR2_PACKAGE_LIBKCAPI_RNGAPP=y
|
BR2_PACKAGE_LIBKCAPI_RNGAPP=y
|
||||||
|
|||||||
@ -1481,8 +1481,8 @@
|
|||||||
<AIC_PINMUX('C', 2, 2)>,
|
<AIC_PINMUX('C', 2, 2)>,
|
||||||
<AIC_PINMUX('C', 3, 2)>,
|
<AIC_PINMUX('C', 3, 2)>,
|
||||||
<AIC_PINMUX('C', 4, 2)>,
|
<AIC_PINMUX('C', 4, 2)>,
|
||||||
<AIC_PINMUX('C', 5, 2)>;
|
<AIC_PINMUX('C', 5, 2)>,
|
||||||
//<AIC_PINMUX('C', 6, 2)>;
|
<AIC_PINMUX('C', 6, 2)>;
|
||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
drive-strength = <3>;
|
drive-strength = <3>;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -34,7 +34,7 @@ kernel_comp_size=0x1000000
|
|||||||
# set_commonargs=setenv bootargs earlycon=${earlycon} earlyprintk rdinit=${init} initramfs_dbg=${ramfs_dbg}
|
# set_commonargs=setenv bootargs earlycon=${earlycon} earlyprintk rdinit=${init} initramfs_dbg=${ramfs_dbg}
|
||||||
set_commonargs_recovery=setenv bootargs earlycon=${earlycon} earlyprintk rdinit=/linuxrc
|
set_commonargs_recovery=setenv bootargs earlycon=${earlycon} earlyprintk rdinit=/linuxrc
|
||||||
# Case 2: Mount rootfs directly
|
# Case 2: Mount rootfs directly
|
||||||
set_commonargs=setenv bootargs earlycon=${earlycon} earlyprintk init=/linuxrc firmware_class.path=/etc/firmware
|
set_commonargs=setenv bootargs quiet earlycon=${earlycon} earlyprintk init=/linuxrc firmware_class.path=/etc/firmware
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|||||||
@ -167,19 +167,78 @@
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
panel_dsi {
|
panel_rgb {
|
||||||
compatible = "artinchip,aic-dsi-panel-simple";
|
compatible = "artinchip,aic-general-rgb-panel";
|
||||||
u-boot,dm-pre-reloc;
|
status = "disabled";
|
||||||
backlight = <&backlight>;
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
//reset-gpios = <&gpio_e 1 GPIO_ACTIVE_HIGH>;
|
enable-gpios = <&gpio_e 19 GPIO_ACTIVE_HIGH>;
|
||||||
|
rgb-mode = <PRGB>;
|
||||||
|
interface-format = <PRGB_16BIT_LD>;
|
||||||
|
clock-phase = <DEGREE_0>;
|
||||||
|
data-order = <RGB>;
|
||||||
|
disp-dither = <DITHER_RGB565>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
port {
|
port {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
panel_dsi_in: endpoint {
|
panel_rgb_in: endpoint {
|
||||||
|
remote-endpoint = <&rgb0_out>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
display-timings {
|
||||||
|
native-mode = <&timing0>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
timing0: 1024x600 {
|
||||||
|
clock-frequency = <52000000>;
|
||||||
|
hactive = <1024>;
|
||||||
|
vactive = <600>;
|
||||||
|
hback-porch = <160>;
|
||||||
|
hfront-porch = <160>;
|
||||||
|
hsync-len = <20>;
|
||||||
|
vback-porch = <12>;
|
||||||
|
vfront-porch = <20>;
|
||||||
|
vsync-len = <3>;
|
||||||
|
de-active = <1>;
|
||||||
|
pixelclk-active = <1>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
panel_lvds {
|
||||||
|
compatible = "artinchip,aic-general-lvds-panel";
|
||||||
|
data-mapping = "vesa-24";
|
||||||
|
data-channel = "single-link1";
|
||||||
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
enable-gpios = <&gpio_c 7 GPIO_ACTIVE_HIGH>;
|
||||||
|
sleep-gpios = <&gpio_a 3 GPIO_ACTIVE_HIGH>;
|
||||||
|
port {
|
||||||
|
panel_lvds_in: endpoint {
|
||||||
|
remote-endpoint = <&lvds0_out>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
display-timings {
|
||||||
|
native-mode = <&timing1>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
timing1: 1024x600 {
|
||||||
|
clock-frequency = <52000000>;
|
||||||
|
hactive = <1024>;
|
||||||
|
vactive = <600>;
|
||||||
|
hback-porch = <160>;
|
||||||
|
hfront-porch = <160>;
|
||||||
|
hsync-len = <20>;
|
||||||
|
vback-porch = <20>;
|
||||||
|
vfront-porch = <12>;
|
||||||
|
vsync-len = <3>;
|
||||||
|
de-active = <1>;
|
||||||
|
pixelclk-active = <1>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
remote-endpoint = <&dsi0_out>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -187,29 +246,27 @@
|
|||||||
backlight: backlight {
|
backlight: backlight {
|
||||||
compatible = "pwm-backlight";
|
compatible = "pwm-backlight";
|
||||||
/* pwm node name; pwm device No.; period_ns; pwm_polarity */
|
/* pwm node name; pwm device No.; period_ns; pwm_polarity */
|
||||||
pwms = <&pwm 0 1000000 0>;
|
pwms = <&pwm 3 1000000 0>;
|
||||||
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||||
default-brightness-level = <6>;
|
default-brightness-level = <6>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
status = "okay";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
rfkill_bt {
|
rfkill_bt {
|
||||||
compatible = "rfkill-gpio";
|
compatible = "rfkill-gpio";
|
||||||
rfkill-name = "bluetooth";
|
rfkill-name = "bluetooth";
|
||||||
rfkill-type = <2>;
|
rfkill-type = <2>;
|
||||||
reset-gpios = <&gpio_c 6 GPIO_ACTIVE_HIGH>;
|
reset-gpios = <&gpio_d 3 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
rfkill_wlan {
|
rfkill_wlan {
|
||||||
compatible = "rfkill-gpio";
|
compatible = "rfkill-gpio";
|
||||||
rfkill-name = "wlan";
|
rfkill-name = "wlan";
|
||||||
rfkill-type = <1>;
|
rfkill-type = <1>;
|
||||||
//reset-gpios = <&gpio_c 6 GPIO_ACTIVE_HIGH>;
|
reset-gpios = <&gpio_d 1 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
keys: gpio-keys {
|
keys: gpio-keys {
|
||||||
compatible = "gpio-keys";
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
@ -313,9 +370,8 @@
|
|||||||
|
|
||||||
&uart2 {
|
&uart2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
//pinctrl-0 = <&uart2_pins_a>;
|
pinctrl-0 = <&uart2_pins_a>;
|
||||||
pinctrl-0 = <&uart2_pins_a>, <&uart2_rts_pins_a>, <&uart2_cts_pins_a>;
|
status = "disabled";
|
||||||
status = "okay";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart3 {
|
&uart3 {
|
||||||
@ -353,16 +409,11 @@
|
|||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c0_pins_b>;
|
pinctrl-0 = <&i2c0_pins_b>;
|
||||||
status = "okay";
|
status = "disabled";
|
||||||
|
rtc@32 {
|
||||||
lt8911exb@29 {
|
compatible = "epson,rx8010";
|
||||||
status = "okay";
|
reg = <0x32>;
|
||||||
compatible = "lontium,lt8911exb";
|
|
||||||
reg = <0x29>;
|
|
||||||
reset-gpios = <&gpio_e 6 GPIO_ACTIVE_HIGH>;
|
|
||||||
power-gpios = <&gpio_e 2 GPIO_ACTIVE_HIGH>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
@ -380,10 +431,10 @@
|
|||||||
&i2c3 {
|
&i2c3 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c3_pins_a>;
|
pinctrl-0 = <&i2c3_pins_a>;
|
||||||
status = "disabled";
|
status = "okay";
|
||||||
|
|
||||||
gt9xx@5d {
|
gt9xx@5d {
|
||||||
status = "disabled";
|
status = "okay";
|
||||||
compatible = "goodix,gt9xx";
|
compatible = "goodix,gt9xx";
|
||||||
reg = <0x5d>;
|
reg = <0x5d>;
|
||||||
reset-gpios = <&gpio_a 8 GPIO_ACTIVE_LOW>;
|
reset-gpios = <&gpio_a 8 GPIO_ACTIVE_LOW>;
|
||||||
@ -450,14 +501,10 @@
|
|||||||
&sdmc1 {
|
&sdmc1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&sdmc1_pins>;
|
pinctrl-0 = <&sdmc1_pins>;
|
||||||
max-frequency= <40000000>;
|
|
||||||
//power-gpios = <&gpio_c 6 GPIO_ACTIVE_HIGH>;
|
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
no-mmc;
|
cap-sd-highspeed;
|
||||||
no-sd;
|
|
||||||
non-removable;
|
|
||||||
cap-sdio-irq;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
&sdmc2 {
|
&sdmc2 {
|
||||||
@ -468,7 +515,7 @@
|
|||||||
no-sd;
|
no-sd;
|
||||||
non-removable;
|
non-removable;
|
||||||
cap-sdio-irq;
|
cap-sdio-irq;
|
||||||
status = "disabled";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
/* case 1: USB0 = OTG Enable */
|
/* case 1: USB0 = OTG Enable */
|
||||||
@ -563,9 +610,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pwm0_pins_d: pwm0-3 {
|
pwm3_pins_d: pwm3-3 {
|
||||||
pins {
|
pins {
|
||||||
pinmux = <AIC_PINMUX('E', 1, 8)>;
|
pinmux = <AIC_PINMUX('E', 19, 5)>;
|
||||||
bias-disable;
|
bias-disable;
|
||||||
drive-strength = <3>;
|
drive-strength = <3>;
|
||||||
};
|
};
|
||||||
@ -596,7 +643,7 @@
|
|||||||
gpio_f: bank-5 {
|
gpio_f: bank-5 {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
dsi_pins: dsi-0 {
|
lvds1_pins: lvds1-0 {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
pins {
|
pins {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
@ -617,12 +664,6 @@
|
|||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
pwm0_pins_d: pwm0-3 {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
pins {
|
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sdmc1_pins: sdmc1-0 {
|
sdmc1_pins: sdmc1-0 {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
pins {
|
pins {
|
||||||
@ -642,7 +683,7 @@
|
|||||||
aic,use_extclk;
|
aic,use_extclk;
|
||||||
|
|
||||||
|
|
||||||
status = "disabled";
|
status = "okay";
|
||||||
|
|
||||||
gmac0_mdio: mdio {
|
gmac0_mdio: mdio {
|
||||||
compatible = "aicmac-mdio";
|
compatible = "aicmac-mdio";
|
||||||
@ -677,7 +718,7 @@
|
|||||||
|
|
||||||
&fb0 {
|
&fb0 {
|
||||||
artinchip,uboot-logo-on=<1>;
|
artinchip,uboot-logo-on=<1>;
|
||||||
height-virtual = <2160>;
|
height-virtual = <1200>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
port {
|
port {
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
@ -698,7 +739,6 @@
|
|||||||
|
|
||||||
port@0 {
|
port@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
de0_in: endpoint {
|
de0_in: endpoint {
|
||||||
remote-endpoint = <&fb0_out>;
|
remote-endpoint = <&fb0_out>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
@ -707,28 +747,25 @@
|
|||||||
|
|
||||||
port@1 {
|
port@1 {
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
u-boot,dm-pre-reloc;
|
|
||||||
de0_out: endpoint {
|
de0_out: endpoint {
|
||||||
remote-endpoint = <&dsi0_in>;
|
remote-endpoint = <&lvds0_in>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&rgb0 {
|
||||||
&dsi0 {
|
pinctrl-names = "default", "sleep";
|
||||||
pinctrl-names = "default";
|
pinctrl-0 = <&lcd_rgb565_ld_pins>;
|
||||||
pinctrl-0 = <&dsi_pins>;
|
pinctrl-1 = <&lcd_rgb565_ld_sleep_pins>;
|
||||||
status = "okay";
|
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
data-lanes = <3 2 1 0>;
|
status = "disabled";
|
||||||
lane-polarities = <0 0 0 0>;
|
|
||||||
|
|
||||||
port@0 {
|
port@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
dsi0_in: endpoint {
|
rgb0_in: endpoint {
|
||||||
remote-endpoint = <&de0_out>;
|
remote-endpoint = <&rgb0_in>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -736,8 +773,31 @@
|
|||||||
port@1 {
|
port@1 {
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
dsi0_out: endpoint {
|
rgb0_out: endpoint {
|
||||||
remote-endpoint = <&panel_dsi_in>;
|
remote-endpoint = <&panel_rgb_in>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&lvds0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&lvds1_pins>;
|
||||||
|
status = "okay";
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
|
||||||
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
lvds0_in: endpoint {
|
||||||
|
remote-endpoint = <&de0_out>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
port@1 {
|
||||||
|
reg = <1>;
|
||||||
|
lvds0_out: endpoint {
|
||||||
|
remote-endpoint = <&panel_lvds_in>;
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -817,10 +877,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pwm {
|
&pwm {
|
||||||
status = "okay";
|
status = "disabled";
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pwm0_pins_d>;
|
pinctrl-0 = <&pwm3_pins_d>;
|
||||||
/* mode: up-count, down-count, up-down-count
|
/* mode: up-count, down-count, up-down-count
|
||||||
action: none, low, high, inverse */
|
action: none, low, high, inverse */
|
||||||
pwm0 {
|
pwm0 {
|
||||||
@ -831,7 +891,7 @@
|
|||||||
/* CBD, CBU, CAD, CAU, PRD, ZRO */
|
/* CBD, CBU, CAD, CAU, PRD, ZRO */
|
||||||
aic,action0 = "none", "none", "none", "low", "none", "high";
|
aic,action0 = "none", "none", "none", "low", "none", "high";
|
||||||
aic,action1 = "none", "none", "none", "high", "none", "low";
|
aic,action1 = "none", "none", "none", "high", "none", "low";
|
||||||
status = "okay";
|
status = "disabled";
|
||||||
u-boot,dm-pre-reloc;
|
u-boot,dm-pre-reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"spi-nand": { // Device, The name should be the same with string in image:info:media:type
|
"spi-nand": { // Device, The name should be the same with string in image:info:media:type
|
||||||
"size": "256m", // Size of SPI NAND
|
"size": "128m", // Size of SPI NAND
|
||||||
"partitions": {
|
"partitions": {
|
||||||
"spl": { "size": "1m" },
|
"spl": { "size": "1m" },
|
||||||
"uboot": { "size": "1m" },
|
"uboot": { "size": "1m" },
|
||||||
@ -13,7 +13,7 @@
|
|||||||
"kernel": { "size": "12m" },
|
"kernel": { "size": "12m" },
|
||||||
"recovery": { "size": "16m" },
|
"recovery": { "size": "16m" },
|
||||||
"ubiroot": {
|
"ubiroot": {
|
||||||
"size": "218m",
|
"size": "64m",
|
||||||
"ubi": { // Volume in UBI device
|
"ubi": { // Volume in UBI device
|
||||||
"rootfs": { "size": "-" },
|
"rootfs": { "size": "-" },
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,113 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
|
||||||
|
|
||||||
HCI_DEV=hci0
|
|
||||||
UART_DEV=/dev/ttyS2
|
|
||||||
HCIATTACH_BIN=/usr/bin/hciattach
|
|
||||||
HCIATTACH_ARGS="-s 1500000 ${UART_DEV} any 1500000 flow nosleep"
|
|
||||||
HCI_TOOL=/usr/bin/bt-hci-tool
|
|
||||||
BTGATT_BIN=/usr/bin/btgatt-server
|
|
||||||
BTGATT_ARGS="-i ${HCI_DEV} -s low -t public"
|
|
||||||
BLUETOOTHD_BIN=/usr/libexec/bluetooth/bluetoothd
|
|
||||||
BT_LOCAL_NAME="AIC-BT"
|
|
||||||
HCI_WAIT_TIMEOUT=10
|
|
||||||
|
|
||||||
ATTACH_PIDFILE=/var/run/hciattach.pid
|
|
||||||
BTGATT_PIDFILE=/var/run/btgatt-server.pid
|
|
||||||
BLUETOOTHD_PIDFILE=/var/run/bluetoothd.pid
|
|
||||||
|
|
||||||
wait_for_hci()
|
|
||||||
{
|
|
||||||
"${HCI_TOOL}" wait "${HCI_DEV}" "${HCI_WAIT_TIMEOUT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
bring_hci_up()
|
|
||||||
{
|
|
||||||
"${HCI_TOOL}" up "${HCI_DEV}"
|
|
||||||
}
|
|
||||||
|
|
||||||
start_bt()
|
|
||||||
{
|
|
||||||
echo "[BT] Init AIC8800..."
|
|
||||||
insmod /lib/modules/5.10.44/kernel/drivers/net/wireless/aic8800/aic8800_btlpm/aic8800_btlpm.ko 2>/dev/null
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
killall hciattach 2>/dev/null
|
|
||||||
killall bluetoothd 2>/dev/null
|
|
||||||
killall btgatt-server 2>/dev/null
|
|
||||||
rm -f "${ATTACH_PIDFILE}" "${BLUETOOTHD_PIDFILE}" "${BTGATT_PIDFILE}"
|
|
||||||
|
|
||||||
"${HCIATTACH_BIN}" ${HCIATTACH_ARGS} &
|
|
||||||
echo $! > "${ATTACH_PIDFILE}"
|
|
||||||
|
|
||||||
if ! wait_for_hci; then
|
|
||||||
echo "[BT] ERROR: ${HCI_DEV} not ready"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! bring_hci_up; then
|
|
||||||
echo "[BT] ERROR: failed to bring ${HCI_DEV} up"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 先启动 LE 广播
|
|
||||||
hciconfig ${HCI_DEV} leadv 0
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
# 启动 bluetoothd
|
|
||||||
"${BLUETOOTHD_BIN}" &
|
|
||||||
echo $! > "${BLUETOOTHD_PIDFILE}"
|
|
||||||
|
|
||||||
# 启动 btgatt-server(设置广播数据,包含名称)
|
|
||||||
"${BTGATT_BIN}" ${BTGATT_ARGS} >/dev/null 2>&1 &
|
|
||||||
echo $! > "${BTGATT_PIDFILE}"
|
|
||||||
|
|
||||||
echo "[BT] Bluetooth ready with GATT server"
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_bt()
|
|
||||||
{
|
|
||||||
hciconfig ${HCI_DEV} noleadv 2>/dev/null
|
|
||||||
|
|
||||||
if [ -f "${BTGATT_PIDFILE}" ]; then
|
|
||||||
kill "$(cat "${BTGATT_PIDFILE}")" 2>/dev/null
|
|
||||||
rm -f "${BTGATT_PIDFILE}"
|
|
||||||
else
|
|
||||||
killall btgatt-server 2>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "${BLUETOOTHD_PIDFILE}" ]; then
|
|
||||||
kill "$(cat "${BLUETOOTHD_PIDFILE}")" 2>/dev/null
|
|
||||||
rm -f "${BLUETOOTHD_PIDFILE}"
|
|
||||||
else
|
|
||||||
killall bluetoothd 2>/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "${ATTACH_PIDFILE}" ]; then
|
|
||||||
kill "$(cat "${ATTACH_PIDFILE}")" 2>/dev/null
|
|
||||||
rm -f "${ATTACH_PIDFILE}"
|
|
||||||
else
|
|
||||||
killall hciattach 2>/dev/null
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
start_bt
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
stop_bt
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
stop_bt
|
|
||||||
sleep 1
|
|
||||||
start_bt
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {start|stop|restart}"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $?
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
target/d211/demo128_nand/rootfs_overlay/usr/bin/rtk_hciattach
Executable file
BIN
target/d211/demo128_nand/rootfs_overlay/usr/bin/rtk_hciattach
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user