mirror of
https://github.com/smaeul/u-boot.git
synced 2025-09-12 13:06:04 +01:00
Compare commits
75 Commits
allwinner
...
d1-2022-04
Author | SHA1 | Date | |
---|---|---|---|
|
7446a47204 | ||
|
56f43a77ca | ||
|
84e34e9b90 | ||
|
0530418a00 | ||
|
a235bab2b7 | ||
|
89769d9504 | ||
|
ea607bc93f | ||
|
878b1d5ce5 | ||
|
9969c47843 | ||
|
281fd9607c | ||
|
258de067a7 | ||
|
6347231f69 | ||
|
7307d5a048 | ||
|
0c560a0f21 | ||
|
8481d6a08c | ||
|
2edf445064 | ||
|
bff4166c25 | ||
|
82b3835c52 | ||
|
3f9e49093b | ||
|
d83d8e28fa | ||
|
649afaf8ed | ||
|
308f433167 | ||
|
6af2813d18 | ||
|
52979db0aa | ||
|
266c60ef9b | ||
|
30cd65e5ee | ||
|
397e34599d | ||
|
3f895ae25a | ||
|
c7042e29ae | ||
|
bc07513d73 | ||
|
2b6e0673e3 | ||
|
e5c029e20d | ||
|
4c945d869e | ||
|
cc98ebea2c | ||
|
85eaefd713 | ||
|
566c169dcb | ||
|
2c954db88d | ||
|
7ed1ab3b63 | ||
|
ff0960b22e | ||
|
713b712f03 | ||
|
bd0dd3a39d | ||
|
9d29038eeb | ||
|
2c6d5ad291 | ||
|
4457ba19df | ||
|
e2f9b1e39b | ||
|
1167b0e1af | ||
|
3180f089da | ||
|
06ec675f5a | ||
|
be32d214b1 | ||
|
f31b2ae7f8 | ||
|
83d819692c | ||
|
cddfd7a302 | ||
|
203a17c44f | ||
|
7f4a6a9e23 | ||
|
02aede7290 | ||
|
37f9bebaee | ||
|
65094e4071 | ||
|
7605932ff1 | ||
|
2d0f6a0b86 | ||
|
52620aff41 | ||
|
6272003279 | ||
|
415548a97c | ||
|
7bb6ade56a | ||
|
a24d5c41af | ||
|
0deb65865d | ||
|
4011eb1974 | ||
|
c491434173 | ||
|
4a6a696dc3 | ||
|
1538012941 | ||
|
ffd794fbcc | ||
|
a5d7c530b1 | ||
|
5bf190a7a7 | ||
|
841fdd8cb6 | ||
|
002be6806f | ||
|
c8e968ee1e |
6
Kconfig
6
Kconfig
@ -12,6 +12,8 @@ source "scripts/Kconfig.include"
|
|||||||
# Allow defaults in arch-specific code to override any given here
|
# Allow defaults in arch-specific code to override any given here
|
||||||
source "arch/Kconfig"
|
source "arch/Kconfig"
|
||||||
|
|
||||||
|
source "board/sunxi/Kconfig"
|
||||||
|
|
||||||
menu "General setup"
|
menu "General setup"
|
||||||
|
|
||||||
config BROKEN
|
config BROKEN
|
||||||
@ -252,7 +254,7 @@ config SYS_MALLOC_F_LEN
|
|||||||
default 0x2000 if (ARCH_IMX8 || ARCH_IMX8M || ARCH_MX7 || \
|
default 0x2000 if (ARCH_IMX8 || ARCH_IMX8M || ARCH_MX7 || \
|
||||||
ARCH_MX7ULP || ARCH_MX6 || ARCH_MX5 || \
|
ARCH_MX7ULP || ARCH_MX6 || ARCH_MX5 || \
|
||||||
ARCH_LS1012A || ARCH_LS1021A || ARCH_LS1043A || \
|
ARCH_LS1012A || ARCH_LS1021A || ARCH_LS1043A || \
|
||||||
ARCH_LS1046A || ARCH_QEMU || ARCH_SUNXI || ARCH_OWL)
|
ARCH_LS1046A || ARCH_QEMU || ARCH_SUNXI || ARCH_OWL || TARGET_SUNXI)
|
||||||
default 0x400
|
default 0x400
|
||||||
help
|
help
|
||||||
Before relocation, memory is very limited on many platforms. Still,
|
Before relocation, memory is very limited on many platforms. Still,
|
||||||
@ -384,7 +386,7 @@ config BUILD_TARGET
|
|||||||
default "u-boot-spl.kwb" if ARCH_MVEBU && SPL
|
default "u-boot-spl.kwb" if ARCH_MVEBU && SPL
|
||||||
default "u-boot-elf.srec" if RCAR_GEN3
|
default "u-boot-elf.srec" if RCAR_GEN3
|
||||||
default "u-boot.itb" if !BINMAN && SPL_LOAD_FIT && (ARCH_ROCKCHIP || \
|
default "u-boot.itb" if !BINMAN && SPL_LOAD_FIT && (ARCH_ROCKCHIP || \
|
||||||
ARCH_SUNXI || RISCV || ARCH_ZYNQMP)
|
RISCV || ARCH_ZYNQMP)
|
||||||
default "u-boot.kwb" if ARCH_KIRKWOOD
|
default "u-boot.kwb" if ARCH_KIRKWOOD
|
||||||
default "u-boot-with-spl.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
|
default "u-boot-with-spl.bin" if ARCH_AT91 && SPL_NAND_SUPPORT
|
||||||
default "u-boot-with-spl.imx" if ARCH_MX6 && SPL
|
default "u-boot-with-spl.imx" if ARCH_MX6 && SPL
|
||||||
|
17
Makefile
17
Makefile
@ -998,6 +998,23 @@ endif
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_MACH_SUN8I_H3)$(CONFIG_ARMV7_PSCI),yy)
|
||||||
|
INPUTS-$(CONFIG_ARMV7_PSCI) += u-boot-resume.img
|
||||||
|
|
||||||
|
MKIMAGEFLAGS_u-boot-resume.img := -B 0x400 -T sunxi_egon
|
||||||
|
|
||||||
|
u-boot-resume.img: u-boot-resume.bin
|
||||||
|
$(call if_changed,mkimage)
|
||||||
|
|
||||||
|
OBJCOPYFLAGS_u-boot-resume.bin := -O binary
|
||||||
|
|
||||||
|
u-boot-resume.bin: u-boot-resume.o
|
||||||
|
$(call if_changed,objcopy)
|
||||||
|
|
||||||
|
u-boot-resume.S: u-boot
|
||||||
|
@sed -En 's/(0x[[:xdigit:]]+) +psci_cpu_entry/ldr pc, =\1/p' $<.map > $@
|
||||||
|
endif
|
||||||
|
|
||||||
INPUTS-$(CONFIG_X86) += u-boot-x86-start16.bin u-boot-x86-reset16.bin \
|
INPUTS-$(CONFIG_X86) += u-boot-x86-start16.bin u-boot-x86-reset16.bin \
|
||||||
$(if $(CONFIG_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \
|
$(if $(CONFIG_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \
|
||||||
$(if $(CONFIG_TPL_X86_16BIT_INIT),tpl/u-boot-tpl.bin)
|
$(if $(CONFIG_TPL_X86_16BIT_INIT),tpl/u-boot-tpl.bin)
|
||||||
|
@ -1151,13 +1151,17 @@ config ARCH_SUNXI
|
|||||||
imply SPL_GPIO
|
imply SPL_GPIO
|
||||||
imply SPL_LIBCOMMON_SUPPORT
|
imply SPL_LIBCOMMON_SUPPORT
|
||||||
imply SPL_LIBGENERIC_SUPPORT
|
imply SPL_LIBGENERIC_SUPPORT
|
||||||
|
imply SPL_LOAD_FIT
|
||||||
imply SPL_MMC if MMC
|
imply SPL_MMC if MMC
|
||||||
imply SPL_POWER
|
imply SPL_POWER
|
||||||
imply SPL_SERIAL
|
imply SPL_SERIAL
|
||||||
imply SYSRESET
|
imply SYSRESET
|
||||||
imply SYSRESET_WATCHDOG
|
imply SYSRESET_WATCHDOG
|
||||||
imply SYSRESET_WATCHDOG_AUTO
|
imply SYSRESET_WATCHDOG_AUTO
|
||||||
|
imply USB_EHCI_GENERIC
|
||||||
|
imply USB_ETHER if USB_MUSB_GADGET
|
||||||
imply USB_GADGET
|
imply USB_GADGET
|
||||||
|
imply USB_OHCI_GENERIC
|
||||||
imply WDT
|
imply WDT
|
||||||
|
|
||||||
config ARCH_U8500
|
config ARCH_U8500
|
||||||
|
@ -75,11 +75,14 @@ config ARMV7_PSCI
|
|||||||
choice
|
choice
|
||||||
prompt "Supported PSCI version"
|
prompt "Supported PSCI version"
|
||||||
depends on ARMV7_PSCI
|
depends on ARMV7_PSCI
|
||||||
default ARMV7_PSCI_0_1 if ARCH_SUNXI
|
default ARMV7_PSCI_1_1 if ARCH_SUNXI
|
||||||
default ARMV7_PSCI_1_0
|
default ARMV7_PSCI_1_0
|
||||||
help
|
help
|
||||||
Select the supported PSCI version.
|
Select the supported PSCI version.
|
||||||
|
|
||||||
|
config ARMV7_PSCI_1_1
|
||||||
|
bool "PSCI V1.1"
|
||||||
|
|
||||||
config ARMV7_PSCI_1_0
|
config ARMV7_PSCI_1_0
|
||||||
bool "PSCI V1.0"
|
bool "PSCI V1.0"
|
||||||
|
|
||||||
|
@ -13,8 +13,12 @@ obj-$(CONFIG_MACH_SUN6I) += sram.o
|
|||||||
obj-$(CONFIG_MACH_SUN8I) += sram.o
|
obj-$(CONFIG_MACH_SUN8I) += sram.o
|
||||||
|
|
||||||
ifndef CONFIG_SPL_BUILD
|
ifndef CONFIG_SPL_BUILD
|
||||||
|
ifdef CONFIG_MACH_SUN8I_H3
|
||||||
|
obj-$(CONFIG_ARMV7_PSCI) += psci-scpi.o
|
||||||
|
else
|
||||||
obj-$(CONFIG_ARMV7_PSCI) += psci.o
|
obj-$(CONFIG_ARMV7_PSCI) += psci.o
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_SPL_BUILD
|
ifdef CONFIG_SPL_BUILD
|
||||||
obj-y += fel_utils.o
|
obj-y += fel_utils.o
|
||||||
|
451
arch/arm/cpu/armv7/sunxi/psci-scpi.c
Normal file
451
arch/arm/cpu/armv7/sunxi/psci-scpi.c
Normal file
@ -0,0 +1,451 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org>
|
||||||
|
* Copyright (C) 2018-2021 Samuel Holland <samuel@sholland.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <asm/arch/cpu.h>
|
||||||
|
#include <asm/arch/cpucfg.h>
|
||||||
|
#include <asm/armv7.h>
|
||||||
|
#include <asm/gic.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
#include <asm/psci.h>
|
||||||
|
#include <asm/secure.h>
|
||||||
|
#include <asm/system.h>
|
||||||
|
|
||||||
|
#define GICD_BASE (SUNXI_GIC400_BASE + GIC_DIST_OFFSET)
|
||||||
|
#define GICC_BASE (SUNXI_GIC400_BASE + GIC_CPU_OFFSET_A15)
|
||||||
|
|
||||||
|
#define HW_ON 0
|
||||||
|
#define HW_OFF 1
|
||||||
|
#define HW_STANDBY 2
|
||||||
|
|
||||||
|
#define MPIDR_AFFLVL0(mpidr) (mpidr & 0xf)
|
||||||
|
#define MPIDR_AFFLVL1(mpidr) (mpidr >> 8 & 0xf)
|
||||||
|
|
||||||
|
#define SCPI_SHMEM_BASE 0x0004be00
|
||||||
|
#define SCPI_SHMEM ((struct scpi_shmem *)SCPI_SHMEM_BASE)
|
||||||
|
|
||||||
|
#define SCPI_RX_CHANNEL 1
|
||||||
|
#define SCPI_TX_CHANNEL 0
|
||||||
|
#define SCPI_VIRTUAL_CHANNEL BIT(0)
|
||||||
|
|
||||||
|
#define SCPI_MESSAGE_SIZE 0x100
|
||||||
|
#define SCPI_PAYLOAD_SIZE (SCPI_MESSAGE_SIZE - sizeof(struct scpi_header))
|
||||||
|
|
||||||
|
#define SUNXI_MSGBOX_BASE 0x01c17000
|
||||||
|
#define REMOTE_IRQ_STAT_REG (SUNXI_MSGBOX_BASE + 0x0050)
|
||||||
|
#define LOCAL_IRQ_STAT_REG (SUNXI_MSGBOX_BASE + 0x0070)
|
||||||
|
#define MSG_STAT_REG(n) (SUNXI_MSGBOX_BASE + 0x0140 + 0x4 * (n))
|
||||||
|
#define MSG_DATA_REG(n) (SUNXI_MSGBOX_BASE + 0x0180 + 0x4 * (n))
|
||||||
|
|
||||||
|
#define RX_IRQ(n) BIT(0 + 2 * (n))
|
||||||
|
#define TX_IRQ(n) BIT(1 + 2 * (n))
|
||||||
|
|
||||||
|
enum {
|
||||||
|
CORE_POWER_LEVEL = 0,
|
||||||
|
CLUSTER_POWER_LEVEL = 1,
|
||||||
|
CSS_POWER_LEVEL = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SCPI_CMD_SCP_READY = 0x01,
|
||||||
|
SCPI_CMD_SET_CSS_POWER_STATE = 0x03,
|
||||||
|
SCPI_CMD_GET_CSS_POWER_STATE = 0x04,
|
||||||
|
SCPI_CMD_SET_SYS_POWER_STATE = 0x05,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SCPI_E_OK = 0,
|
||||||
|
SCPI_E_PARAM = 1,
|
||||||
|
SCPI_E_ALIGN = 2,
|
||||||
|
SCPI_E_SIZE = 3,
|
||||||
|
SCPI_E_HANDLER = 4,
|
||||||
|
SCPI_E_ACCESS = 5,
|
||||||
|
SCPI_E_RANGE = 6,
|
||||||
|
SCPI_E_TIMEOUT = 7,
|
||||||
|
SCPI_E_NOMEM = 8,
|
||||||
|
SCPI_E_PWRSTATE = 9,
|
||||||
|
SCPI_E_SUPPORT = 10,
|
||||||
|
SCPI_E_DEVICE = 11,
|
||||||
|
SCPI_E_BUSY = 12,
|
||||||
|
SCPI_E_OS = 13,
|
||||||
|
SCPI_E_DATA = 14,
|
||||||
|
SCPI_E_STATE = 15,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SCPI_POWER_ON = 0x00,
|
||||||
|
SCPI_POWER_RETENTION = 0x01,
|
||||||
|
SCPI_POWER_OFF = 0x03,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SCPI_SYSTEM_SHUTDOWN = 0x00,
|
||||||
|
SCPI_SYSTEM_REBOOT = 0x01,
|
||||||
|
SCPI_SYSTEM_RESET = 0x02,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct scpi_header {
|
||||||
|
u8 command;
|
||||||
|
u8 sender;
|
||||||
|
u16 size;
|
||||||
|
u32 status;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct scpi_message {
|
||||||
|
struct scpi_header header;
|
||||||
|
u8 payload[SCPI_PAYLOAD_SIZE];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct scpi_shmem {
|
||||||
|
struct scpi_message rx;
|
||||||
|
struct scpi_message tx;
|
||||||
|
};
|
||||||
|
|
||||||
|
static bool __secure_data gic_dist_init;
|
||||||
|
|
||||||
|
static u32 __secure_data lock;
|
||||||
|
|
||||||
|
static inline u32 __secure read_mpidr(void)
|
||||||
|
{
|
||||||
|
u32 val;
|
||||||
|
|
||||||
|
asm volatile ("mrc p15, 0, %0, c0, c0, 5" : "=r" (val));
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __secure scpi_begin_command(void)
|
||||||
|
{
|
||||||
|
u32 mpidr = read_mpidr();
|
||||||
|
|
||||||
|
do {
|
||||||
|
while (readl(&lock));
|
||||||
|
writel(mpidr, &lock);
|
||||||
|
dsb();
|
||||||
|
} while (readl(&lock) != mpidr);
|
||||||
|
while (readl(REMOTE_IRQ_STAT_REG) & RX_IRQ(SCPI_TX_CHANNEL));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __secure scpi_send_command(void)
|
||||||
|
{
|
||||||
|
writel(SCPI_VIRTUAL_CHANNEL, MSG_DATA_REG(SCPI_TX_CHANNEL));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __secure scpi_wait_response(void)
|
||||||
|
{
|
||||||
|
while (!readl(MSG_STAT_REG(SCPI_RX_CHANNEL)));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __secure scpi_end_command(void)
|
||||||
|
{
|
||||||
|
while (readl(MSG_STAT_REG(SCPI_RX_CHANNEL)))
|
||||||
|
readl(MSG_DATA_REG(SCPI_RX_CHANNEL));
|
||||||
|
writel(RX_IRQ(SCPI_RX_CHANNEL), LOCAL_IRQ_STAT_REG);
|
||||||
|
writel(0, &lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __secure scpi_set_css_power_state(u32 target_cpu, u32 core_state,
|
||||||
|
u32 cluster_state, u32 css_state)
|
||||||
|
{
|
||||||
|
struct scpi_shmem *shmem = SCPI_SHMEM;
|
||||||
|
|
||||||
|
scpi_begin_command();
|
||||||
|
|
||||||
|
shmem->tx.header.command = SCPI_CMD_SET_CSS_POWER_STATE;
|
||||||
|
shmem->tx.header.size = 4;
|
||||||
|
|
||||||
|
shmem->tx.payload[0] = target_cpu >> 4 | target_cpu;
|
||||||
|
shmem->tx.payload[1] = cluster_state << 4 | core_state;
|
||||||
|
shmem->tx.payload[2] = css_state;
|
||||||
|
shmem->tx.payload[3] = 0;
|
||||||
|
|
||||||
|
scpi_send_command();
|
||||||
|
scpi_end_command();
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 __secure scpi_get_css_power_state(u32 target_cpu, u8 *core_states,
|
||||||
|
u8 *cluster_state)
|
||||||
|
{
|
||||||
|
struct scpi_shmem *shmem = SCPI_SHMEM;
|
||||||
|
u32 cluster = MPIDR_AFFLVL1(target_cpu);
|
||||||
|
u32 offset;
|
||||||
|
s32 ret;
|
||||||
|
|
||||||
|
scpi_begin_command();
|
||||||
|
|
||||||
|
shmem->tx.header.command = SCPI_CMD_GET_CSS_POWER_STATE;
|
||||||
|
shmem->tx.header.size = 0;
|
||||||
|
|
||||||
|
scpi_send_command();
|
||||||
|
scpi_wait_response();
|
||||||
|
|
||||||
|
for (offset = 0; offset < shmem->rx.header.size; offset += 2) {
|
||||||
|
if ((shmem->rx.payload[offset] & 0xf) == cluster) {
|
||||||
|
*cluster_state = shmem->rx.payload[offset+0] >> 4;
|
||||||
|
*core_states = shmem->rx.payload[offset+1];
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = shmem->rx.header.status;
|
||||||
|
|
||||||
|
scpi_end_command();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static s32 __secure scpi_set_sys_power_state(u32 sys_state)
|
||||||
|
{
|
||||||
|
struct scpi_shmem *shmem = SCPI_SHMEM;
|
||||||
|
s32 ret;
|
||||||
|
|
||||||
|
scpi_begin_command();
|
||||||
|
|
||||||
|
shmem->tx.header.command = SCPI_CMD_SET_SYS_POWER_STATE;
|
||||||
|
shmem->tx.header.size = 1;
|
||||||
|
|
||||||
|
shmem->tx.payload[0] = sys_state;
|
||||||
|
|
||||||
|
scpi_send_command();
|
||||||
|
scpi_wait_response();
|
||||||
|
|
||||||
|
ret = shmem->rx.header.status;
|
||||||
|
|
||||||
|
scpi_end_command();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void psci_enable_smp(void);
|
||||||
|
|
||||||
|
static s32 __secure psci_suspend_common(u32 pc, u32 context_id, u32 core_state,
|
||||||
|
u32 cluster_state, u32 css_state)
|
||||||
|
|
||||||
|
{
|
||||||
|
u32 target_cpu = read_mpidr();
|
||||||
|
|
||||||
|
if (core_state == SCPI_POWER_OFF)
|
||||||
|
psci_save(MPIDR_AFFLVL0(target_cpu), pc, context_id);
|
||||||
|
if (css_state == SCPI_POWER_OFF)
|
||||||
|
gic_dist_init = true;
|
||||||
|
|
||||||
|
scpi_set_css_power_state(target_cpu, core_state,
|
||||||
|
cluster_state, css_state);
|
||||||
|
|
||||||
|
psci_cpu_off_common();
|
||||||
|
|
||||||
|
wfi();
|
||||||
|
|
||||||
|
psci_enable_smp();
|
||||||
|
|
||||||
|
return ARM_PSCI_RET_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 __secure psci_version(void)
|
||||||
|
{
|
||||||
|
return ARM_PSCI_VER_1_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_cpu_suspend(u32 __always_unused function_id,
|
||||||
|
u32 power_state, u32 pc, u32 context_id)
|
||||||
|
{
|
||||||
|
return psci_suspend_common(pc, context_id,
|
||||||
|
power_state >> 0 & 0xf,
|
||||||
|
power_state >> 4 & 0xf,
|
||||||
|
power_state >> 8 & 0xf);
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_cpu_off(void)
|
||||||
|
{
|
||||||
|
u32 pc = 0, context_id = 0;
|
||||||
|
|
||||||
|
return psci_suspend_common(pc, context_id, SCPI_POWER_OFF,
|
||||||
|
SCPI_POWER_OFF, SCPI_POWER_ON);
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_cpu_on(u32 __always_unused function_id,
|
||||||
|
u32 target_cpu, u32 pc, u32 context_id)
|
||||||
|
{
|
||||||
|
psci_save(MPIDR_AFFLVL0(target_cpu), pc, context_id);
|
||||||
|
|
||||||
|
scpi_set_css_power_state(target_cpu, SCPI_POWER_ON,
|
||||||
|
SCPI_POWER_ON, SCPI_POWER_ON);
|
||||||
|
|
||||||
|
return ARM_PSCI_RET_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_affinity_info(u32 function_id,
|
||||||
|
u32 target_cpu, u32 power_level)
|
||||||
|
{
|
||||||
|
if (power_level != CORE_POWER_LEVEL)
|
||||||
|
return ARM_PSCI_RET_INVAL;
|
||||||
|
|
||||||
|
/* This happens to have the same HW_ON/HW_OFF encoding. */
|
||||||
|
return psci_node_hw_state(function_id, target_cpu, power_level);
|
||||||
|
}
|
||||||
|
|
||||||
|
void __secure psci_system_off(void)
|
||||||
|
{
|
||||||
|
scpi_set_sys_power_state(SCPI_SYSTEM_SHUTDOWN);
|
||||||
|
|
||||||
|
/* Wait to be turned off. */
|
||||||
|
for (;;) wfi();
|
||||||
|
}
|
||||||
|
|
||||||
|
void __secure psci_system_reset(void)
|
||||||
|
{
|
||||||
|
scpi_set_sys_power_state(SCPI_SYSTEM_REBOOT);
|
||||||
|
|
||||||
|
/* Wait to be turned off. */
|
||||||
|
for (;;) wfi();
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_features(u32 __always_unused function_id,
|
||||||
|
u32 psci_fid)
|
||||||
|
{
|
||||||
|
switch (psci_fid) {
|
||||||
|
case ARM_PSCI_0_2_FN_PSCI_VERSION:
|
||||||
|
case ARM_PSCI_0_2_FN_CPU_SUSPEND:
|
||||||
|
case ARM_PSCI_0_2_FN_CPU_OFF:
|
||||||
|
case ARM_PSCI_0_2_FN_CPU_ON:
|
||||||
|
case ARM_PSCI_0_2_FN_AFFINITY_INFO:
|
||||||
|
case ARM_PSCI_0_2_FN_SYSTEM_OFF:
|
||||||
|
case ARM_PSCI_0_2_FN_SYSTEM_RESET:
|
||||||
|
case ARM_PSCI_1_0_FN_PSCI_FEATURES:
|
||||||
|
case ARM_PSCI_1_0_FN_CPU_DEFAULT_SUSPEND:
|
||||||
|
case ARM_PSCI_1_0_FN_NODE_HW_STATE:
|
||||||
|
case ARM_PSCI_1_0_FN_SYSTEM_SUSPEND:
|
||||||
|
case ARM_PSCI_1_1_FN_SYSTEM_RESET2:
|
||||||
|
return ARM_PSCI_RET_SUCCESS;
|
||||||
|
default:
|
||||||
|
return ARM_PSCI_RET_NI;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_cpu_default_suspend(u32 __always_unused function_id,
|
||||||
|
u32 pc, u32 context_id)
|
||||||
|
{
|
||||||
|
return psci_suspend_common(pc, context_id, SCPI_POWER_OFF,
|
||||||
|
SCPI_POWER_OFF, SCPI_POWER_RETENTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_node_hw_state(u32 __always_unused function_id,
|
||||||
|
u32 target_cpu, u32 power_level)
|
||||||
|
{
|
||||||
|
u32 core = MPIDR_AFFLVL0(target_cpu);
|
||||||
|
u8 core_states, cluster_state;
|
||||||
|
|
||||||
|
if (power_level >= CSS_POWER_LEVEL)
|
||||||
|
return HW_ON;
|
||||||
|
if (scpi_get_css_power_state(target_cpu, &core_states, &cluster_state))
|
||||||
|
return ARM_PSCI_RET_NI;
|
||||||
|
if (power_level == CLUSTER_POWER_LEVEL) {
|
||||||
|
if (cluster_state == SCPI_POWER_ON)
|
||||||
|
return HW_ON;
|
||||||
|
if (cluster_state < SCPI_POWER_OFF)
|
||||||
|
return HW_STANDBY;
|
||||||
|
return HW_OFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (core_states & BIT(core)) ? HW_ON : HW_OFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_system_suspend(u32 __always_unused function_id,
|
||||||
|
u32 pc, u32 context_id)
|
||||||
|
{
|
||||||
|
return psci_suspend_common(pc, context_id, SCPI_POWER_OFF,
|
||||||
|
SCPI_POWER_OFF, SCPI_POWER_OFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 __secure psci_system_reset2(u32 __always_unused function_id,
|
||||||
|
u32 reset_type, u32 cookie)
|
||||||
|
{
|
||||||
|
s32 ret;
|
||||||
|
|
||||||
|
if (reset_type)
|
||||||
|
return ARM_PSCI_RET_INVAL;
|
||||||
|
|
||||||
|
ret = scpi_set_sys_power_state(SCPI_SYSTEM_RESET);
|
||||||
|
if (ret)
|
||||||
|
return ARM_PSCI_RET_INVAL;
|
||||||
|
|
||||||
|
/* Wait to be turned off. */
|
||||||
|
for (;;) wfi();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* R40 is different from other single cluster SoCs. The secondary core
|
||||||
|
* entry address register is in the SRAM controller address range.
|
||||||
|
*/
|
||||||
|
#define SUN8I_R40_SRAMC_SOFT_ENTRY_REG0 (0xbc)
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_SUN8I_R40
|
||||||
|
/* secondary core entry address is programmed differently on R40 */
|
||||||
|
static void __secure sunxi_set_entry_address(void *entry)
|
||||||
|
{
|
||||||
|
writel((u32)entry,
|
||||||
|
SUNXI_SRAMC_BASE + SUN8I_R40_SRAMC_SOFT_ENTRY_REG0);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void __secure sunxi_set_entry_address(void *entry)
|
||||||
|
{
|
||||||
|
struct sunxi_cpucfg_reg *cpucfg =
|
||||||
|
(struct sunxi_cpucfg_reg *)SUNXI_CPUCFG_BASE;
|
||||||
|
|
||||||
|
writel((u32)entry, &cpucfg->priv0);
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_MACH_SUN8I_H3)) {
|
||||||
|
/* Redirect CPU 0 to the secure monitor via the resume shim. */
|
||||||
|
writel(0x16aaefe8, &cpucfg->super_standy_flag);
|
||||||
|
writel(0xaa16efe8, &cpucfg->super_standy_flag);
|
||||||
|
writel(SUNXI_RESUME_BASE, &cpucfg->priv1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void __secure psci_arch_init(void)
|
||||||
|
{
|
||||||
|
static bool __secure_data one_time_init = true;
|
||||||
|
|
||||||
|
if (one_time_init) {
|
||||||
|
/* Set secondary core power-on PC. */
|
||||||
|
sunxi_set_entry_address(psci_cpu_entry);
|
||||||
|
|
||||||
|
/* Wait for the SCP firmware to boot. */
|
||||||
|
scpi_begin_command();
|
||||||
|
scpi_wait_response();
|
||||||
|
scpi_end_command();
|
||||||
|
|
||||||
|
one_time_init = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copied from arch/arm/cpu/armv7/virt-v7.c
|
||||||
|
* See also gic_resume() in arch/arm/mach-imx/mx7/psci-mx7.c
|
||||||
|
*/
|
||||||
|
if (gic_dist_init) {
|
||||||
|
u32 i, itlinesnr;
|
||||||
|
|
||||||
|
/* enable the GIC distributor */
|
||||||
|
writel(readl(GICD_BASE + GICD_CTLR) | 0x03, GICD_BASE + GICD_CTLR);
|
||||||
|
|
||||||
|
/* TYPER[4:0] contains an encoded number of available interrupts */
|
||||||
|
itlinesnr = readl(GICD_BASE + GICD_TYPER) & 0x1f;
|
||||||
|
|
||||||
|
/* set all bits in the GIC group registers to one to allow access
|
||||||
|
* from non-secure state. The first 32 interrupts are private per
|
||||||
|
* CPU and will be set later when enabling the GIC for each core
|
||||||
|
*/
|
||||||
|
for (i = 1; i <= itlinesnr; i++)
|
||||||
|
writel((unsigned)-1, GICD_BASE + GICD_IGROUPRn + 4 * i);
|
||||||
|
|
||||||
|
gic_dist_init = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Be cool with non-secure. */
|
||||||
|
writel(0xff, GICC_BASE + GICC_PMR);
|
||||||
|
}
|
@ -10,6 +10,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/cache.h>
|
#include <asm/cache.h>
|
||||||
|
|
||||||
|
#include <asm/arch/clock.h>
|
||||||
#include <asm/arch/cpu.h>
|
#include <asm/arch/cpu.h>
|
||||||
#include <asm/arch/cpucfg.h>
|
#include <asm/arch/cpucfg.h>
|
||||||
#include <asm/arch/prcm.h>
|
#include <asm/arch/prcm.h>
|
||||||
@ -38,6 +39,15 @@
|
|||||||
#define SUN8I_R40_PWR_CLAMP(cpu) (0x120 + (cpu) * 0x4)
|
#define SUN8I_R40_PWR_CLAMP(cpu) (0x120 + (cpu) * 0x4)
|
||||||
#define SUN8I_R40_SRAMC_SOFT_ENTRY_REG0 (0xbc)
|
#define SUN8I_R40_SRAMC_SOFT_ENTRY_REG0 (0xbc)
|
||||||
|
|
||||||
|
static inline u32 __secure cp15_read_mpidr(void)
|
||||||
|
{
|
||||||
|
u32 val;
|
||||||
|
|
||||||
|
asm volatile ("mrc p15, 0, %0, c0, c0, 5" : "=r" (val));
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
static void __secure cp15_write_cntp_tval(u32 tval)
|
static void __secure cp15_write_cntp_tval(u32 tval)
|
||||||
{
|
{
|
||||||
asm volatile ("mcr p15, 0, %0, c14, c2, 0" : : "r" (tval));
|
asm volatile ("mcr p15, 0, %0, c14, c2, 0" : : "r" (tval));
|
||||||
@ -132,6 +142,13 @@ static void __secure sunxi_set_entry_address(void *entry)
|
|||||||
(struct sunxi_cpucfg_reg *)SUNXI_CPUCFG_BASE;
|
(struct sunxi_cpucfg_reg *)SUNXI_CPUCFG_BASE;
|
||||||
|
|
||||||
writel((u32)entry, &cpucfg->priv0);
|
writel((u32)entry, &cpucfg->priv0);
|
||||||
|
|
||||||
|
#ifdef CONFIG_MACH_SUN8I_H3
|
||||||
|
/* Redirect CPU 0 to the secure monitor via the resume shim. */
|
||||||
|
writel(0x16aaefe8, &cpucfg->super_standy_flag);
|
||||||
|
writel(0xaa16efe8, &cpucfg->super_standy_flag);
|
||||||
|
writel(SUNXI_RESUME_BASE, &cpucfg->priv1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -246,9 +263,12 @@ out:
|
|||||||
int __secure psci_cpu_on(u32 __always_unused unused, u32 mpidr, u32 pc,
|
int __secure psci_cpu_on(u32 __always_unused unused, u32 mpidr, u32 pc,
|
||||||
u32 context_id)
|
u32 context_id)
|
||||||
{
|
{
|
||||||
|
struct sunxi_ccm_reg *ccu = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
|
||||||
struct sunxi_cpucfg_reg *cpucfg =
|
struct sunxi_cpucfg_reg *cpucfg =
|
||||||
(struct sunxi_cpucfg_reg *)SUNXI_CPUCFG_BASE;
|
(struct sunxi_cpucfg_reg *)SUNXI_CPUCFG_BASE;
|
||||||
u32 cpu = (mpidr & 0x3);
|
u32 cpu = (mpidr & 0x3);
|
||||||
|
u32 cpu_clk;
|
||||||
|
u32 bus_clk;
|
||||||
|
|
||||||
/* store target PC and context id */
|
/* store target PC and context id */
|
||||||
psci_save(cpu, pc, context_id);
|
psci_save(cpu, pc, context_id);
|
||||||
@ -265,12 +285,32 @@ int __secure psci_cpu_on(u32 __always_unused unused, u32 mpidr, u32 pc,
|
|||||||
/* Lock CPU (Disable external debug access) */
|
/* Lock CPU (Disable external debug access) */
|
||||||
clrbits_le32(&cpucfg->dbg_ctrl1, BIT(cpu));
|
clrbits_le32(&cpucfg->dbg_ctrl1, BIT(cpu));
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_MACH_SUN8I_H3) && cpu == 0) {
|
||||||
|
/* Save registers that will be clobbered by the BROM. */
|
||||||
|
cpu_clk = readl(&ccu->cpu_axi_cfg);
|
||||||
|
bus_clk = readl(&ccu->ahb1_apb1_div);
|
||||||
|
|
||||||
|
/* Bypass PLL_PERIPH0 so AHB1 frequency does not spike. */
|
||||||
|
setbits_le32(&ccu->pll6_cfg, BIT(25));
|
||||||
|
}
|
||||||
|
|
||||||
/* Power up target CPU */
|
/* Power up target CPU */
|
||||||
sunxi_cpu_set_power(cpu, true);
|
sunxi_cpu_set_power(cpu, true);
|
||||||
|
|
||||||
/* De-assert reset on target CPU */
|
/* De-assert reset on target CPU */
|
||||||
writel(BIT(1) | BIT(0), &cpucfg->cpu[cpu].rst);
|
writel(BIT(1) | BIT(0), &cpucfg->cpu[cpu].rst);
|
||||||
|
|
||||||
|
if (IS_ENABLED(CONFIG_MACH_SUN8I_H3) && cpu == 0) {
|
||||||
|
/* Spin until the BROM has clobbered the clock registers. */
|
||||||
|
while (readl(&ccu->ahb1_apb1_div) != 0x00001100);
|
||||||
|
|
||||||
|
/* Restore the registers and turn off PLL_PERIPH0 bypass. */
|
||||||
|
writel(cpu_clk, &ccu->cpu_axi_cfg);
|
||||||
|
writel(bus_clk, &ccu->ahb1_apb1_div);
|
||||||
|
|
||||||
|
clrbits_le32(&ccu->pll6_cfg, BIT(25));
|
||||||
|
}
|
||||||
|
|
||||||
/* Unlock CPU (Disable external debug access) */
|
/* Unlock CPU (Disable external debug access) */
|
||||||
setbits_le32(&cpucfg->dbg_ctrl1, BIT(cpu));
|
setbits_le32(&cpucfg->dbg_ctrl1, BIT(cpu));
|
||||||
|
|
||||||
@ -281,9 +321,14 @@ s32 __secure psci_cpu_off(void)
|
|||||||
{
|
{
|
||||||
psci_cpu_off_common();
|
psci_cpu_off_common();
|
||||||
|
|
||||||
/* Ask CPU0 via SGI15 to pull the rug... */
|
if (cp15_read_mpidr() & 3) {
|
||||||
writel(BIT(16) | 15, GICD_BASE + GICD_SGIR);
|
/* Ask CPU0 via SGI15 to pull the rug... */
|
||||||
dsb();
|
writel(BIT(16) | 15, GICD_BASE + GICD_SGIR);
|
||||||
|
dsb();
|
||||||
|
} else {
|
||||||
|
/* Unmask FIQs to service SGI15. */
|
||||||
|
asm volatile ("cpsie f");
|
||||||
|
}
|
||||||
|
|
||||||
/* Wait to be turned off */
|
/* Wait to be turned off */
|
||||||
while (1)
|
while (1)
|
||||||
|
@ -103,7 +103,7 @@ void __noreturn psci_system_reset2(u32 reset_level, u32 cookie)
|
|||||||
{
|
{
|
||||||
struct pt_regs regs;
|
struct pt_regs regs;
|
||||||
|
|
||||||
regs.regs[0] = ARM_PSCI_0_2_FN64_SYSTEM_RESET2;
|
regs.regs[0] = ARM_PSCI_1_1_FN64_SYSTEM_RESET2;
|
||||||
regs.regs[1] = PSCI_RESET2_TYPE_VENDOR | reset_level;
|
regs.regs[1] = PSCI_RESET2_TYPE_VENDOR | reset_level;
|
||||||
regs.regs[2] = cookie;
|
regs.regs[2] = cookie;
|
||||||
if (use_smc_for_psci)
|
if (use_smc_for_psci)
|
||||||
|
@ -531,7 +531,8 @@ dtb-$(CONFIG_MACH_SUN4I) += \
|
|||||||
sun4i-a10-olinuxino-lime.dtb \
|
sun4i-a10-olinuxino-lime.dtb \
|
||||||
sun4i-a10-pcduino.dtb \
|
sun4i-a10-pcduino.dtb \
|
||||||
sun4i-a10-pcduino2.dtb \
|
sun4i-a10-pcduino2.dtb \
|
||||||
sun4i-a10-pov-protab2-ips9.dtb
|
sun4i-a10-pov-protab2-ips9.dtb \
|
||||||
|
sun4i-a10-topwise-a721.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN5I) += \
|
dtb-$(CONFIG_MACH_SUN5I) += \
|
||||||
sun5i-a10s-auxtek-t003.dtb \
|
sun5i-a10s-auxtek-t003.dtb \
|
||||||
sun5i-a10s-auxtek-t004.dtb \
|
sun5i-a10s-auxtek-t004.dtb \
|
||||||
@ -546,11 +547,14 @@ dtb-$(CONFIG_MACH_SUN5I) += \
|
|||||||
sun5i-a13-hsg-h702.dtb \
|
sun5i-a13-hsg-h702.dtb \
|
||||||
sun5i-a13-inet-86vs.dtb \
|
sun5i-a13-inet-86vs.dtb \
|
||||||
sun5i-a13-inet-98v-rev2.dtb \
|
sun5i-a13-inet-98v-rev2.dtb \
|
||||||
|
sun5i-a13-licheepi-one.dtb \
|
||||||
sun5i-a13-olinuxino.dtb \
|
sun5i-a13-olinuxino.dtb \
|
||||||
sun5i-a13-olinuxino-micro.dtb \
|
sun5i-a13-olinuxino-micro.dtb \
|
||||||
|
sun5i-a13-pocketbook-touch-lux-3.dtb \
|
||||||
sun5i-a13-q8-tablet.dtb \
|
sun5i-a13-q8-tablet.dtb \
|
||||||
sun5i-a13-utoo-p66.dtb \
|
sun5i-a13-utoo-p66.dtb \
|
||||||
sun5i-gr8-chip-pro.dtb \
|
sun5i-gr8-chip-pro.dtb \
|
||||||
|
sun5i-gr8-evb.dtb \
|
||||||
sun5i-r8-chip.dtb
|
sun5i-r8-chip.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN6I) += \
|
dtb-$(CONFIG_MACH_SUN6I) += \
|
||||||
sun6i-a31-app4-evb1.dtb \
|
sun6i-a31-app4-evb1.dtb \
|
||||||
@ -574,11 +578,13 @@ dtb-$(CONFIG_MACH_SUN7I) += \
|
|||||||
sun7i-a20-bananapro.dtb \
|
sun7i-a20-bananapro.dtb \
|
||||||
sun7i-a20-cubieboard2.dtb \
|
sun7i-a20-cubieboard2.dtb \
|
||||||
sun7i-a20-cubietruck.dtb \
|
sun7i-a20-cubietruck.dtb \
|
||||||
|
sun7i-a20-haoyu-marsboard.dtb \
|
||||||
sun7i-a20-hummingbird.dtb \
|
sun7i-a20-hummingbird.dtb \
|
||||||
sun7i-a20-i12-tvbox.dtb \
|
sun7i-a20-i12-tvbox.dtb \
|
||||||
sun7i-a20-icnova-swac.dtb \
|
sun7i-a20-icnova-swac.dtb \
|
||||||
sun7i-a20-itead-ibox.dtb \
|
sun7i-a20-itead-ibox.dtb \
|
||||||
sun7i-a20-lamobo-r1.dtb \
|
sun7i-a20-lamobo-r1.dtb \
|
||||||
|
sun7i-a20-linutronix-testbox-v2.dtb \
|
||||||
sun7i-a20-m3.dtb \
|
sun7i-a20-m3.dtb \
|
||||||
sun7i-a20-m5.dtb \
|
sun7i-a20-m5.dtb \
|
||||||
sun7i-a20-mk808c.dtb \
|
sun7i-a20-mk808c.dtb \
|
||||||
@ -586,6 +592,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
|
|||||||
sun7i-a20-olimex-som204-evb.dtb \
|
sun7i-a20-olimex-som204-evb.dtb \
|
||||||
sun7i-a20-olimex-som204-evb-emmc.dtb \
|
sun7i-a20-olimex-som204-evb-emmc.dtb \
|
||||||
sun7i-a20-olinuxino-lime.dtb \
|
sun7i-a20-olinuxino-lime.dtb \
|
||||||
|
sun7i-a20-olinuxino-lime-emmc.dtb \
|
||||||
sun7i-a20-olinuxino-lime2.dtb \
|
sun7i-a20-olinuxino-lime2.dtb \
|
||||||
sun7i-a20-olinuxino-lime2-emmc.dtb \
|
sun7i-a20-olinuxino-lime2-emmc.dtb \
|
||||||
sun7i-a20-olinuxino-micro.dtb \
|
sun7i-a20-olinuxino-micro.dtb \
|
||||||
@ -602,17 +609,22 @@ dtb-$(CONFIG_MACH_SUN8I_A23) += \
|
|||||||
sun8i-a23-evb.dtb \
|
sun8i-a23-evb.dtb \
|
||||||
sun8i-a23-gt90h-v4.dtb \
|
sun8i-a23-gt90h-v4.dtb \
|
||||||
sun8i-a23-inet86dz.dtb \
|
sun8i-a23-inet86dz.dtb \
|
||||||
|
sun8i-a23-ippo-q8h-v1.2.dtb \
|
||||||
|
sun8i-a23-ippo-q8h-v5.dtb \
|
||||||
sun8i-a23-polaroid-mid2407pxe03.dtb \
|
sun8i-a23-polaroid-mid2407pxe03.dtb \
|
||||||
sun8i-a23-polaroid-mid2809pxe04.dtb \
|
sun8i-a23-polaroid-mid2809pxe04.dtb \
|
||||||
sun8i-a23-q8-tablet.dtb
|
sun8i-a23-q8-tablet.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN8I_A33) += \
|
dtb-$(CONFIG_MACH_SUN8I_A33) += \
|
||||||
|
sun8i-a33-et-q8-v1.6.dtb \
|
||||||
sun8i-a33-ga10h-v1.1.dtb \
|
sun8i-a33-ga10h-v1.1.dtb \
|
||||||
sun8i-a33-inet-d978-rev2.dtb \
|
sun8i-a33-inet-d978-rev2.dtb \
|
||||||
|
sun8i-a33-ippo-q8h-v1.2.dtb \
|
||||||
sun8i-a33-olinuxino.dtb \
|
sun8i-a33-olinuxino.dtb \
|
||||||
sun8i-a33-q8-tablet.dtb \
|
sun8i-a33-q8-tablet.dtb \
|
||||||
sun8i-a33-sinlinx-sina33.dtb \
|
sun8i-a33-sinlinx-sina33.dtb \
|
||||||
sun8i-r16-bananapi-m2m.dtb \
|
sun8i-r16-bananapi-m2m.dtb \
|
||||||
sun8i-r16-nintendo-nes-classic-edition.dtb \
|
sun8i-r16-nintendo-nes-classic.dtb \
|
||||||
|
sun8i-r16-nintendo-super-nes-classic.dtb \
|
||||||
sun8i-r16-parrot.dtb
|
sun8i-r16-parrot.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN8I_A83T) += \
|
dtb-$(CONFIG_MACH_SUN8I_A83T) += \
|
||||||
sun8i-a83t-allwinner-h8homlet-v2.dtb \
|
sun8i-a83t-allwinner-h8homlet-v2.dtb \
|
||||||
@ -635,6 +647,7 @@ dtb-$(CONFIG_MACH_SUN8I_H3) += \
|
|||||||
sun8i-h3-nanopi-m1-plus.dtb \
|
sun8i-h3-nanopi-m1-plus.dtb \
|
||||||
sun8i-h3-nanopi-neo.dtb \
|
sun8i-h3-nanopi-neo.dtb \
|
||||||
sun8i-h3-nanopi-neo-air.dtb \
|
sun8i-h3-nanopi-neo-air.dtb \
|
||||||
|
sun8i-h3-nanopi-r1.dtb \
|
||||||
sun8i-h3-orangepi-2.dtb \
|
sun8i-h3-orangepi-2.dtb \
|
||||||
sun8i-h3-orangepi-lite.dtb \
|
sun8i-h3-orangepi-lite.dtb \
|
||||||
sun8i-h3-orangepi-one.dtb \
|
sun8i-h3-orangepi-one.dtb \
|
||||||
@ -647,9 +660,13 @@ dtb-$(CONFIG_MACH_SUN8I_H3) += \
|
|||||||
sun8i-h3-zeropi.dtb
|
sun8i-h3-zeropi.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN8I_R40) += \
|
dtb-$(CONFIG_MACH_SUN8I_R40) += \
|
||||||
sun8i-r40-bananapi-m2-ultra.dtb \
|
sun8i-r40-bananapi-m2-ultra.dtb \
|
||||||
|
sun8i-r40-oka40i-c.dtb \
|
||||||
|
sun8i-t3-cqa3t-bv3.dtb \
|
||||||
sun8i-v40-bananapi-m2-berry.dtb
|
sun8i-v40-bananapi-m2-berry.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN8I_V3S) += \
|
dtb-$(CONFIG_MACH_SUN8I_V3S) += \
|
||||||
|
sun8i-s3-elimo-initium.dtb \
|
||||||
sun8i-s3-pinecube.dtb \
|
sun8i-s3-pinecube.dtb \
|
||||||
|
sun8i-v3-sl631-imx179.dtb \
|
||||||
sun8i-v3s-licheepi-zero.dtb
|
sun8i-v3s-licheepi-zero.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN50I_H5) += \
|
dtb-$(CONFIG_MACH_SUN50I_H5) += \
|
||||||
sun50i-h5-bananapi-m2-plus.dtb \
|
sun50i-h5-bananapi-m2-plus.dtb \
|
||||||
@ -670,7 +687,9 @@ dtb-$(CONFIG_MACH_SUN50I_H6) += \
|
|||||||
sun50i-h6-orangepi-lite2.dtb \
|
sun50i-h6-orangepi-lite2.dtb \
|
||||||
sun50i-h6-orangepi-one-plus.dtb \
|
sun50i-h6-orangepi-one-plus.dtb \
|
||||||
sun50i-h6-pine-h64.dtb \
|
sun50i-h6-pine-h64.dtb \
|
||||||
sun50i-h6-tanix-tx6.dtb
|
sun50i-h6-pine-h64-model-b.dtb \
|
||||||
|
sun50i-h6-tanix-tx6.dtb \
|
||||||
|
sun50i-h6-tanix-tx6-mini.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN50I_H616) += \
|
dtb-$(CONFIG_MACH_SUN50I_H616) += \
|
||||||
sun50i-h616-orangepi-zero2.dtb
|
sun50i-h616-orangepi-zero2.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN50I) += \
|
dtb-$(CONFIG_MACH_SUN50I) += \
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
|
|
||||||
ac_power_supply: ac-power-supply {
|
ac_power_supply: ac-power {
|
||||||
compatible = "x-powers,axp202-ac-power-supply";
|
compatible = "x-powers,axp202-ac-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -69,7 +69,7 @@
|
|||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
battery_power_supply: battery-power-supply {
|
battery_power_supply: battery-power {
|
||||||
compatible = "x-powers,axp209-battery-power-supply";
|
compatible = "x-powers,axp209-battery-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -112,7 +112,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
usb_power_supply: usb-power-supply {
|
usb_power_supply: usb-power {
|
||||||
compatible = "x-powers,axp202-usb-power-supply";
|
compatible = "x-powers,axp202-usb-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
@ -52,16 +52,27 @@
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
|
|
||||||
ac_power_supply: ac-power-supply {
|
ac_power_supply: ac-power {
|
||||||
compatible = "x-powers,axp221-ac-power-supply";
|
compatible = "x-powers,axp221-ac-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
battery_power_supply: battery-power-supply {
|
axp_adc: adc {
|
||||||
|
compatible = "x-powers,axp221-adc";
|
||||||
|
#io-channel-cells = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
battery_power_supply: battery-power {
|
||||||
compatible = "x-powers,axp221-battery-power-supply";
|
compatible = "x-powers,axp221-battery-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
axp_gpio: gpio {
|
||||||
|
compatible = "x-powers,axp221-gpio";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
regulators {
|
regulators {
|
||||||
/* Default work frequency for buck regulators */
|
/* Default work frequency for buck regulators */
|
||||||
x-powers,dcdc-freq = <3000>;
|
x-powers,dcdc-freq = <3000>;
|
||||||
@ -158,7 +169,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
usb_power_supply: usb_power_supply {
|
usb_power_supply: usb-power {
|
||||||
compatible = "x-powers,axp221-usb-power-supply";
|
compatible = "x-powers,axp221-usb-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
|
|
||||||
ac_power_supply: ac-power-supply {
|
ac_power_supply: ac-power {
|
||||||
compatible = "x-powers,axp803-ac-power-supply",
|
compatible = "x-powers,axp803-ac-power-supply",
|
||||||
"x-powers,axp813-ac-power-supply";
|
"x-powers,axp813-ac-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
@ -26,18 +26,18 @@
|
|||||||
gpio-controller;
|
gpio-controller;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
|
|
||||||
gpio0_ldo: gpio0-ldo {
|
gpio0_ldo: gpio0-ldo-pin {
|
||||||
pins = "GPIO0";
|
pins = "GPIO0";
|
||||||
function = "ldo";
|
function = "ldo";
|
||||||
};
|
};
|
||||||
|
|
||||||
gpio1_ldo: gpio1-ldo {
|
gpio1_ldo: gpio1-ldo-pin {
|
||||||
pins = "GPIO1";
|
pins = "GPIO1";
|
||||||
function = "ldo";
|
function = "ldo";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
battery_power_supply: battery-power-supply {
|
battery_power_supply: battery-power {
|
||||||
compatible = "x-powers,axp803-battery-power-supply",
|
compatible = "x-powers,axp803-battery-power-supply",
|
||||||
"x-powers,axp813-battery-power-supply";
|
"x-powers,axp813-battery-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
@ -147,7 +147,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
usb_power_supply: usb-power-supply {
|
usb_power_supply: usb-power {
|
||||||
compatible = "x-powers,axp803-usb-power-supply",
|
compatible = "x-powers,axp803-usb-power-supply",
|
||||||
"x-powers,axp813-usb-power-supply";
|
"x-powers,axp813-usb-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
@ -50,4 +50,11 @@
|
|||||||
compatible = "x-powers,axp809";
|
compatible = "x-powers,axp809";
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
|
|
||||||
|
axp_gpio: gpio {
|
||||||
|
compatible = "x-powers,axp809-gpio",
|
||||||
|
"x-powers,axp221-gpio";
|
||||||
|
gpio-controller;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -48,6 +48,11 @@
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <1>;
|
#interrupt-cells = <1>;
|
||||||
|
|
||||||
|
ac_power_supply: ac-power {
|
||||||
|
compatible = "x-powers,axp813-ac-power-supply";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
axp_adc: adc {
|
axp_adc: adc {
|
||||||
compatible = "x-powers,axp813-adc";
|
compatible = "x-powers,axp813-adc";
|
||||||
#io-channel-cells = <1>;
|
#io-channel-cells = <1>;
|
||||||
@ -58,18 +63,18 @@
|
|||||||
gpio-controller;
|
gpio-controller;
|
||||||
#gpio-cells = <2>;
|
#gpio-cells = <2>;
|
||||||
|
|
||||||
gpio0_ldo: gpio0-ldo {
|
gpio0_ldo: gpio0-ldo-pin {
|
||||||
pins = "GPIO0";
|
pins = "GPIO0";
|
||||||
function = "ldo";
|
function = "ldo";
|
||||||
};
|
};
|
||||||
|
|
||||||
gpio1_ldo: gpio1-ldo {
|
gpio1_ldo: gpio1-ldo-pin {
|
||||||
pins = "GPIO1";
|
pins = "GPIO1";
|
||||||
function = "ldo";
|
function = "ldo";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
battery_power_supply: battery-power-supply {
|
battery_power_supply: battery-power {
|
||||||
compatible = "x-powers,axp813-battery-power-supply";
|
compatible = "x-powers,axp813-battery-power-supply";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
@ -166,4 +171,8 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
usb_power_supply: usb-power {
|
||||||
|
compatible = "x-powers,axp813-usb-power-supply";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -60,15 +60,26 @@
|
|||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hdmi-connector {
|
||||||
|
compatible = "hdmi-connector";
|
||||||
|
type = "a";
|
||||||
|
|
||||||
|
port {
|
||||||
|
hdmi_con_in: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_out_con>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
red {
|
led-0 {
|
||||||
label = "a1000:red:usr";
|
label = "a1000:red:usr";
|
||||||
gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
blue {
|
led-1 {
|
||||||
label = "a1000:blue:pwr";
|
label = "a1000:blue:pwr";
|
||||||
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -125,7 +136,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -133,6 +144,20 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&de {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi_out {
|
||||||
|
hdmi_out_con: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_con_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -131,20 +131,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -165,10 +151,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -75,12 +75,12 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_cubieboard>;
|
pinctrl-0 = <&led_pins_cubieboard>;
|
||||||
|
|
||||||
blue {
|
led-0 {
|
||||||
label = "cubieboard:blue:usr";
|
label = "cubieboard:blue:usr";
|
||||||
gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* LED1 */
|
gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* LED1 */
|
||||||
};
|
};
|
||||||
|
|
||||||
green {
|
led-1 {
|
||||||
label = "cubieboard:green:usr";
|
label = "cubieboard:green:usr";
|
||||||
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; /* LED2 */
|
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; /* LED2 */
|
||||||
linux,default-trigger = "heartbeat";
|
linux,default-trigger = "heartbeat";
|
||||||
@ -114,7 +114,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -184,12 +184,6 @@
|
|||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
®_ahci_5v {
|
®_ahci_5v {
|
||||||
@ -254,9 +248,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
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 = <8>;
|
default-brightness-level = <8>;
|
||||||
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
||||||
|
power-supply = <®_vcc3v3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
@ -158,20 +159,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm {
|
&pwm {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pwm0_pin>;
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
@ -223,10 +210,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -80,7 +80,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy0>;
|
phy-handle = <&phy0>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -86,20 +86,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -121,10 +107,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
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 = <8>;
|
default-brightness-level = <8>;
|
||||||
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
||||||
|
power-supply = <®_vcc3v3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
@ -164,20 +165,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm {
|
&pwm {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pwm0_pin>;
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
@ -233,10 +220,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2014 Open Source Support GmbH
|
* Copyright 2014 Open Source Support GmbH
|
||||||
*
|
*
|
||||||
* David Lanzendörfer <david.lanzendoerfer@o2s.ch>
|
* David Lanzendörfer <david.lanzendoerfer@o2s.ch>
|
||||||
*
|
*
|
||||||
* This file is dual-licensed: you can use it either under the terms
|
* This file is dual-licensed: you can use it either under the terms
|
||||||
* of the GPL or the X11 license, at your option. Note that this dual
|
* of the GPL or the X11 license, at your option. Note that this dual
|
||||||
@ -150,20 +150,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-min-microvolt = <1000000>;
|
regulator-min-microvolt = <1000000>;
|
||||||
@ -209,10 +195,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -61,10 +61,6 @@
|
|||||||
|
|
||||||
gpio-keys {
|
gpio-keys {
|
||||||
compatible = "gpio-keys-polled";
|
compatible = "gpio-keys-polled";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&key_pins_inet9f>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
poll-interval = <20>;
|
poll-interval = <20>;
|
||||||
|
|
||||||
left-joystick-left {
|
left-joystick-left {
|
||||||
@ -72,7 +68,7 @@
|
|||||||
linux,code = <ABS_X>;
|
linux,code = <ABS_X>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <0xffffffff>; /* -1 */
|
linux,input-value = <0xffffffff>; /* -1 */
|
||||||
gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */
|
gpios = <&pio 0 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA6 */
|
||||||
};
|
};
|
||||||
|
|
||||||
left-joystick-right {
|
left-joystick-right {
|
||||||
@ -80,7 +76,7 @@
|
|||||||
linux,code = <ABS_X>;
|
linux,code = <ABS_X>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <1>;
|
linux,input-value = <1>;
|
||||||
gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */
|
gpios = <&pio 0 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA5 */
|
||||||
};
|
};
|
||||||
|
|
||||||
left-joystick-up {
|
left-joystick-up {
|
||||||
@ -88,7 +84,7 @@
|
|||||||
linux,code = <ABS_Y>;
|
linux,code = <ABS_Y>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <0xffffffff>; /* -1 */
|
linux,input-value = <0xffffffff>; /* -1 */
|
||||||
gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
gpios = <&pio 0 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA8 */
|
||||||
};
|
};
|
||||||
|
|
||||||
left-joystick-down {
|
left-joystick-down {
|
||||||
@ -96,7 +92,7 @@
|
|||||||
linux,code = <ABS_Y>;
|
linux,code = <ABS_Y>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <1>;
|
linux,input-value = <1>;
|
||||||
gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
|
gpios = <&pio 0 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA9 */
|
||||||
};
|
};
|
||||||
|
|
||||||
right-joystick-left {
|
right-joystick-left {
|
||||||
@ -104,7 +100,7 @@
|
|||||||
linux,code = <ABS_Z>;
|
linux,code = <ABS_Z>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <0xffffffff>; /* -1 */
|
linux,input-value = <0xffffffff>; /* -1 */
|
||||||
gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */
|
gpios = <&pio 0 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA1 */
|
||||||
};
|
};
|
||||||
|
|
||||||
right-joystick-right {
|
right-joystick-right {
|
||||||
@ -112,7 +108,7 @@
|
|||||||
linux,code = <ABS_Z>;
|
linux,code = <ABS_Z>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <1>;
|
linux,input-value = <1>;
|
||||||
gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
|
gpios = <&pio 0 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA0 */
|
||||||
};
|
};
|
||||||
|
|
||||||
right-joystick-up {
|
right-joystick-up {
|
||||||
@ -120,7 +116,7 @@
|
|||||||
linux,code = <ABS_RZ>;
|
linux,code = <ABS_RZ>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <0xffffffff>; /* -1 */
|
linux,input-value = <0xffffffff>; /* -1 */
|
||||||
gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */
|
gpios = <&pio 0 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA3 */
|
||||||
};
|
};
|
||||||
|
|
||||||
right-joystick-down {
|
right-joystick-down {
|
||||||
@ -128,7 +124,7 @@
|
|||||||
linux,code = <ABS_RZ>;
|
linux,code = <ABS_RZ>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <1>;
|
linux,input-value = <1>;
|
||||||
gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
|
gpios = <&pio 0 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA4 */
|
||||||
};
|
};
|
||||||
|
|
||||||
dpad-left {
|
dpad-left {
|
||||||
@ -136,7 +132,7 @@
|
|||||||
linux,code = <ABS_HAT0X>;
|
linux,code = <ABS_HAT0X>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <0xffffffff>; /* -1 */
|
linux,input-value = <0xffffffff>; /* -1 */
|
||||||
gpios = <&pio 7 23 GPIO_ACTIVE_LOW>; /* PH23 */
|
gpios = <&pio 7 23 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH23 */
|
||||||
};
|
};
|
||||||
|
|
||||||
dpad-right {
|
dpad-right {
|
||||||
@ -144,7 +140,7 @@
|
|||||||
linux,code = <ABS_HAT0X>;
|
linux,code = <ABS_HAT0X>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <1>;
|
linux,input-value = <1>;
|
||||||
gpios = <&pio 7 24 GPIO_ACTIVE_LOW>; /* PH24 */
|
gpios = <&pio 7 24 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH24 */
|
||||||
};
|
};
|
||||||
|
|
||||||
dpad-up {
|
dpad-up {
|
||||||
@ -152,7 +148,7 @@
|
|||||||
linux,code = <ABS_HAT0Y>;
|
linux,code = <ABS_HAT0Y>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <0xffffffff>; /* -1 */
|
linux,input-value = <0xffffffff>; /* -1 */
|
||||||
gpios = <&pio 7 25 GPIO_ACTIVE_LOW>; /* PH25 */
|
gpios = <&pio 7 25 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH25 */
|
||||||
};
|
};
|
||||||
|
|
||||||
dpad-down {
|
dpad-down {
|
||||||
@ -160,55 +156,55 @@
|
|||||||
linux,code = <ABS_HAT0Y>;
|
linux,code = <ABS_HAT0Y>;
|
||||||
linux,input-type = <EV_ABS>;
|
linux,input-type = <EV_ABS>;
|
||||||
linux,input-value = <1>;
|
linux,input-value = <1>;
|
||||||
gpios = <&pio 7 26 GPIO_ACTIVE_LOW>; /* PH26 */
|
gpios = <&pio 7 26 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH26 */
|
||||||
};
|
};
|
||||||
|
|
||||||
x {
|
x {
|
||||||
label = "Button X";
|
label = "Button X";
|
||||||
linux,code = <BTN_X>;
|
linux,code = <BTN_X>;
|
||||||
gpios = <&pio 0 16 GPIO_ACTIVE_LOW>; /* PA16 */
|
gpios = <&pio 0 16 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA16 */
|
||||||
};
|
};
|
||||||
|
|
||||||
y {
|
y {
|
||||||
label = "Button Y";
|
label = "Button Y";
|
||||||
linux,code = <BTN_Y>;
|
linux,code = <BTN_Y>;
|
||||||
gpios = <&pio 0 14 GPIO_ACTIVE_LOW>; /* PA14 */
|
gpios = <&pio 0 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA14 */
|
||||||
};
|
};
|
||||||
|
|
||||||
a {
|
a {
|
||||||
label = "Button A";
|
label = "Button A";
|
||||||
linux,code = <BTN_A>;
|
linux,code = <BTN_A>;
|
||||||
gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
|
gpios = <&pio 0 17 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA17 */
|
||||||
};
|
};
|
||||||
|
|
||||||
b {
|
b {
|
||||||
label = "Button B";
|
label = "Button B";
|
||||||
linux,code = <BTN_B>;
|
linux,code = <BTN_B>;
|
||||||
gpios = <&pio 0 15 GPIO_ACTIVE_LOW>; /* PA15 */
|
gpios = <&pio 0 15 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA15 */
|
||||||
};
|
};
|
||||||
|
|
||||||
select {
|
select {
|
||||||
label = "Select Button";
|
label = "Select Button";
|
||||||
linux,code = <BTN_SELECT>;
|
linux,code = <BTN_SELECT>;
|
||||||
gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */
|
gpios = <&pio 0 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA11 */
|
||||||
};
|
};
|
||||||
|
|
||||||
start {
|
start {
|
||||||
label = "Start Button";
|
label = "Start Button";
|
||||||
linux,code = <BTN_START>;
|
linux,code = <BTN_START>;
|
||||||
gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */
|
gpios = <&pio 0 12 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA12 */
|
||||||
};
|
};
|
||||||
|
|
||||||
top-left {
|
top-left {
|
||||||
label = "Top Left Button";
|
label = "Top Left Button";
|
||||||
linux,code = <BTN_TL>;
|
linux,code = <BTN_TL>;
|
||||||
gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
gpios = <&pio 7 22 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PH22 */
|
||||||
};
|
};
|
||||||
|
|
||||||
top-right {
|
top-right {
|
||||||
label = "Top Right Button";
|
label = "Top Right Button";
|
||||||
linux,code = <BTN_TR>;
|
linux,code = <BTN_TR>;
|
||||||
gpios = <&pio 0 13 GPIO_ACTIVE_LOW>; /* PA13 */
|
gpios = <&pio 0 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PA13 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -308,30 +304,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
key_pins_inet9f: key-pins {
|
|
||||||
pins = "PA0", "PA1", "PA3", "PA4",
|
|
||||||
"PA5", "PA6", "PA8", "PA9",
|
|
||||||
"PA11", "PA12", "PA13",
|
|
||||||
"PA14", "PA15", "PA16", "PA17",
|
|
||||||
"PH22", "PH23", "PH24", "PH25", "PH26";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-min-microvolt = <1000000>;
|
regulator-min-microvolt = <1000000>;
|
||||||
@ -377,10 +349,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
&emac {
|
&emac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&emac_pins>;
|
pinctrl-0 = <&emac_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
green {
|
led {
|
||||||
label = "q5:green:usr";
|
label = "q5:green:usr";
|
||||||
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; /* PH20 */
|
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; /* PH20 */
|
||||||
};
|
};
|
||||||
@ -94,7 +94,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,22 +62,22 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
red1 {
|
led-0 {
|
||||||
label = "marsboard:red1:usr";
|
label = "marsboard:red1:usr";
|
||||||
gpios = <&pio 1 5 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 1 5 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
red2 {
|
led-1 {
|
||||||
label = "marsboard:red2:usr";
|
label = "marsboard:red2:usr";
|
||||||
gpios = <&pio 1 6 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 1 6 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
red3 {
|
led-2 {
|
||||||
label = "marsboard:red3:usr";
|
label = "marsboard:red3:usr";
|
||||||
gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
red4 {
|
led-3 {
|
||||||
label = "marsboard:red4:usr";
|
label = "marsboard:red4:usr";
|
||||||
gpios = <&pio 1 8 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 1 8 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -105,7 +105,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -148,14 +148,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -183,9 +175,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -74,7 +74,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_olinuxinolime>;
|
pinctrl-0 = <&led_pins_olinuxinolime>;
|
||||||
|
|
||||||
green {
|
led {
|
||||||
label = "a10-olinuxino-lime:green:usr";
|
label = "a10-olinuxino-lime:green:usr";
|
||||||
gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -91,12 +91,11 @@
|
|||||||
/*
|
/*
|
||||||
* The A10-Lime is known to be unstable when running at 1008 MHz
|
* The A10-Lime is known to be unstable when running at 1008 MHz
|
||||||
*/
|
*/
|
||||||
operating-points = <
|
operating-points =
|
||||||
/* kHz uV */
|
/* kHz uV */
|
||||||
912000 1350000
|
<912000 1350000>,
|
||||||
864000 1300000
|
<864000 1300000>,
|
||||||
624000 1250000
|
<624000 1250000>;
|
||||||
>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&de {
|
&de {
|
||||||
@ -112,7 +111,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -186,18 +185,6 @@
|
|||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
®_ahci_5v {
|
®_ahci_5v {
|
||||||
@ -229,10 +216,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
|
@ -63,12 +63,12 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
tx {
|
led-0 {
|
||||||
label = "pcduino:green:tx";
|
label = "pcduino:green:tx";
|
||||||
gpios = <&pio 7 15 GPIO_ACTIVE_LOW>;
|
gpios = <&pio 7 15 GPIO_ACTIVE_LOW>;
|
||||||
};
|
};
|
||||||
|
|
||||||
rx {
|
led-1 {
|
||||||
label = "pcduino:green:rx";
|
label = "pcduino:green:rx";
|
||||||
gpios = <&pio 7 16 GPIO_ACTIVE_LOW>;
|
gpios = <&pio 7 16 GPIO_ACTIVE_LOW>;
|
||||||
};
|
};
|
||||||
@ -76,8 +76,6 @@
|
|||||||
|
|
||||||
gpio-keys {
|
gpio-keys {
|
||||||
compatible = "gpio-keys";
|
compatible = "gpio-keys";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
back {
|
back {
|
||||||
label = "Key Back";
|
label = "Key Back";
|
||||||
@ -112,7 +110,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -156,14 +154,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "axp209.dtsi"
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
@ -203,9 +193,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb1_vbus-supply = <®_vcc5v0>; /* USB1 VBUS is always on */
|
usb1_vbus-supply = <®_vcc5v0>; /* USB1 VBUS is always on */
|
||||||
usb2_vbus-supply = <®_vcc5v0>; /* USB2 VBUS is always on */
|
usb2_vbus-supply = <®_vcc5v0>; /* USB2 VBUS is always on */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -62,6 +62,7 @@
|
|||||||
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 = <8>;
|
default-brightness-level = <8>;
|
||||||
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
||||||
|
power-supply = <®_vcc3v3>;
|
||||||
};
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
@ -146,20 +147,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0-vbus-detect-pin {
|
|
||||||
pins = "PH5";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm {
|
&pwm {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pwm0_pin>;
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
@ -211,10 +198,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
242
arch/arm/dts/sun4i-a10-topwise-a721.dts
Normal file
242
arch/arm/dts/sun4i-a10-topwise-a721.dts
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright 2020 Pascal Roeleven <dev@pascalroeleven.nl>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "sun4i-a10.dtsi"
|
||||||
|
#include "sunxi-common-regulators.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#include <dt-bindings/pwm/pwm.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Topwise A721";
|
||||||
|
compatible = "topwise,a721", "allwinner,sun4i-a10";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
backlight: backlight {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm 0 100000 PWM_POLARITY_INVERTED>;
|
||||||
|
power-supply = <®_vbat>;
|
||||||
|
enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
|
||||||
|
brightness-levels = <0 30 40 50 60 70 80 90 100>;
|
||||||
|
default-brightness-level = <8>;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
panel {
|
||||||
|
compatible = "starry,kr070pe2t";
|
||||||
|
backlight = <&backlight>;
|
||||||
|
power-supply = <®_lcd_power>;
|
||||||
|
|
||||||
|
port {
|
||||||
|
panel_input: endpoint {
|
||||||
|
remote-endpoint = <&tcon0_out_panel>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_lcd_power: reg-lcd-power {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "reg-lcd-power";
|
||||||
|
gpio = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */
|
||||||
|
enable-active-high;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_vbat: reg-vbat {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vbat";
|
||||||
|
regulator-min-microvolt = <3700000>;
|
||||||
|
regulator-max-microvolt = <3700000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
&codec {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu0 {
|
||||||
|
cpu-supply = <®_dcdc2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&de {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
axp209: pmic@34 {
|
||||||
|
reg = <0x34>;
|
||||||
|
interrupts = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
|
&ac_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&battery_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
accelerometer@4c {
|
||||||
|
compatible = "fsl,mma7660";
|
||||||
|
reg = <0x4c>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
touchscreen@38 {
|
||||||
|
compatible = "edt,edt-ft5406";
|
||||||
|
reg = <0x38>;
|
||||||
|
interrupt-parent = <&pio>;
|
||||||
|
interrupts = <7 21 IRQ_TYPE_EDGE_FALLING>;
|
||||||
|
touchscreen-size-x = <800>;
|
||||||
|
touchscreen-size-y = <480>;
|
||||||
|
vcc-supply = <®_vcc3v3>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&lradc {
|
||||||
|
vref-supply = <®_ldo2>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
button-571 {
|
||||||
|
label = "Volume Up";
|
||||||
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <571428>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-761 {
|
||||||
|
label = "Volume Down";
|
||||||
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <761904>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
bus-width = <4>;
|
||||||
|
cd-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>; /* PH01 */
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&otg_sram {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pio {
|
||||||
|
vcc-pb-supply = <®_vcc3v3>;
|
||||||
|
vcc-pf-supply = <®_vcc3v3>;
|
||||||
|
vcc-ph-supply = <®_vcc3v3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&pwm {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1400000>;
|
||||||
|
regulator-name = "vdd-cpu";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc3 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1250000>;
|
||||||
|
regulator-max-microvolt = <1250000>;
|
||||||
|
regulator-name = "vdd-int-dll";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo1 {
|
||||||
|
regulator-name = "vdd-rtc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <3000000>;
|
||||||
|
regulator-max-microvolt = <3000000>;
|
||||||
|
regulator-name = "avcc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb0_vbus {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb1_vbus {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb2_vbus {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&tcon0_out {
|
||||||
|
tcon0_out_panel: endpoint@0 {
|
||||||
|
reg = <0>;
|
||||||
|
remote-endpoint = <&panel_input>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_otg {
|
||||||
|
dr_mode = "otg";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb0_id_det-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
||||||
|
usb0_vbus_det-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
|
||||||
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -115,13 +115,12 @@
|
|||||||
reg = <0x0>;
|
reg = <0x0>;
|
||||||
clocks = <&ccu CLK_CPU>;
|
clocks = <&ccu CLK_CPU>;
|
||||||
clock-latency = <244144>; /* 8 32k periods */
|
clock-latency = <244144>; /* 8 32k periods */
|
||||||
operating-points = <
|
operating-points =
|
||||||
/* kHz uV */
|
/* kHz uV */
|
||||||
1008000 1400000
|
<1008000 1400000>,
|
||||||
912000 1350000
|
<912000 1350000>,
|
||||||
864000 1300000
|
<864000 1300000>,
|
||||||
624000 1250000
|
<624000 1250000>;
|
||||||
>;
|
|
||||||
#cooling-cells = <2>;
|
#cooling-cells = <2>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -143,7 +142,7 @@
|
|||||||
trips {
|
trips {
|
||||||
cpu_alert0: cpu-alert0 {
|
cpu_alert0: cpu-alert0 {
|
||||||
/* milliCelsius */
|
/* milliCelsius */
|
||||||
temperature = <850000>;
|
temperature = <85000>;
|
||||||
hysteresis = <2000>;
|
hysteresis = <2000>;
|
||||||
type = "passive";
|
type = "passive";
|
||||||
};
|
};
|
||||||
@ -184,14 +183,34 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pmu {
|
||||||
|
compatible = "arm,cortex-a8-pmu";
|
||||||
|
interrupts = <3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* Address must be kept in the lower 256 MiBs of DRAM for VE. */
|
||||||
|
default-pool {
|
||||||
|
compatible = "shared-dma-pool";
|
||||||
|
size = <0x6000000>;
|
||||||
|
alloc-ranges = <0x40000000 0x10000000>;
|
||||||
|
reusable;
|
||||||
|
linux,cma-default;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
soc {
|
soc {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
sram-controller@1c00000 {
|
system-control@1c00000 {
|
||||||
compatible = "allwinner,sun4i-a10-sram-controller";
|
compatible = "allwinner,sun4i-a10-system-control";
|
||||||
reg = <0x01c00000 0x30>;
|
reg = <0x01c00000 0x30>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
@ -224,6 +243,19 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sram_c: sram@1d00000 {
|
||||||
|
compatible = "mmio-sram";
|
||||||
|
reg = <0x01d00000 0xd0000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0 0x01d00000 0xd0000>;
|
||||||
|
|
||||||
|
ve_sram: sram-section@0 {
|
||||||
|
compatible = "allwinner,sun4i-a10-sram-c1";
|
||||||
|
reg = <0x000000 0x80000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
dma: dma-controller@1c02000 {
|
dma: dma-controller@1c02000 {
|
||||||
@ -234,7 +266,7 @@
|
|||||||
#dma-cells = <2>;
|
#dma-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
nfc: nand@1c03000 {
|
nfc: nand-controller@1c03000 {
|
||||||
compatible = "allwinner,sun4i-a10-nand";
|
compatible = "allwinner,sun4i-a10-nand";
|
||||||
reg = <0x01c03000 0x1000>;
|
reg = <0x01c03000 0x1000>;
|
||||||
interrupts = <37>;
|
interrupts = <37>;
|
||||||
@ -309,6 +341,7 @@
|
|||||||
"tcon-ch0",
|
"tcon-ch0",
|
||||||
"tcon-ch1";
|
"tcon-ch1";
|
||||||
clock-output-names = "tcon0-pixel-clock";
|
clock-output-names = "tcon0-pixel-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
dmas = <&dma SUN4I_DMA_DEDICATED 14>;
|
dmas = <&dma SUN4I_DMA_DEDICATED 14>;
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
@ -358,6 +391,7 @@
|
|||||||
"tcon-ch0",
|
"tcon-ch0",
|
||||||
"tcon-ch1";
|
"tcon-ch1";
|
||||||
clock-output-names = "tcon1-pixel-clock";
|
clock-output-names = "tcon1-pixel-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
dmas = <&dma SUN4I_DMA_DEDICATED 15>;
|
dmas = <&dma SUN4I_DMA_DEDICATED 15>;
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
@ -394,6 +428,17 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
video-codec@1c0e000 {
|
||||||
|
compatible = "allwinner,sun4i-a10-video-engine";
|
||||||
|
reg = <0x01c0e000 0x1000>;
|
||||||
|
clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
|
||||||
|
<&ccu CLK_DRAM_VE>;
|
||||||
|
clock-names = "ahb", "mod", "ram";
|
||||||
|
resets = <&ccu RST_VE>;
|
||||||
|
interrupts = <53>;
|
||||||
|
allwinner,sram = <&ve_sram 1>;
|
||||||
|
};
|
||||||
|
|
||||||
mmc0: mmc@1c0f000 {
|
mmc0: mmc@1c0f000 {
|
||||||
compatible = "allwinner,sun4i-a10-mmc";
|
compatible = "allwinner,sun4i-a10-mmc";
|
||||||
reg = <0x01c0f000 0x1000>;
|
reg = <0x01c0f000 0x1000>;
|
||||||
@ -450,13 +495,14 @@
|
|||||||
phy-names = "usb";
|
phy-names = "usb";
|
||||||
extcon = <&usbphy 0>;
|
extcon = <&usbphy 0>;
|
||||||
allwinner,sram = <&otg_sram 1>;
|
allwinner,sram = <&otg_sram 1>;
|
||||||
|
dr_mode = "otg";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
usbphy: phy@1c13400 {
|
usbphy: phy@1c13400 {
|
||||||
#phy-cells = <1>;
|
#phy-cells = <1>;
|
||||||
compatible = "allwinner,sun4i-a10-usb-phy";
|
compatible = "allwinner,sun4i-a10-usb-phy";
|
||||||
reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
|
reg = <0x01c13400 0x10>, <0x01c14800 0x4>, <0x01c1c800 0x4>;
|
||||||
reg-names = "phy_ctrl", "pmu1", "pmu2";
|
reg-names = "phy_ctrl", "pmu1", "pmu2";
|
||||||
clocks = <&ccu CLK_USB_PHY>;
|
clocks = <&ccu CLK_USB_PHY>;
|
||||||
clock-names = "usb_phy";
|
clock-names = "usb_phy";
|
||||||
@ -530,8 +576,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
hdmi_out: port@1 {
|
hdmi_out: port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -579,6 +623,16 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
csi1: csi@1c1d000 {
|
||||||
|
compatible = "allwinner,sun4i-a10-csi1";
|
||||||
|
reg = <0x01c1d000 0x1000>;
|
||||||
|
interrupts = <43>;
|
||||||
|
clocks = <&ccu CLK_AHB_CSI1>, <&ccu CLK_DRAM_CSI1>;
|
||||||
|
clock-names = "bus", "ram";
|
||||||
|
resets = <&ccu RST_CSI1>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
spi3: spi@1c1f000 {
|
spi3: spi@1c1f000 {
|
||||||
compatible = "allwinner,sun4i-a10-spi";
|
compatible = "allwinner,sun4i-a10-spi";
|
||||||
reg = <0x01c1f000 0x1000>;
|
reg = <0x01c1f000 0x1000>;
|
||||||
@ -625,6 +679,31 @@
|
|||||||
function = "can";
|
function = "can";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/omit-if-no-ref/
|
||||||
|
csi1_8bits_pg_pins: csi1-8bits-pg-pins {
|
||||||
|
pins = "PG0", "PG2", "PG3", "PG4", "PG5",
|
||||||
|
"PG6", "PG7", "PG8", "PG9", "PG10",
|
||||||
|
"PG11";
|
||||||
|
function = "csi1";
|
||||||
|
};
|
||||||
|
|
||||||
|
/omit-if-no-ref/
|
||||||
|
csi1_24bits_ph_pins: csi1-24bits-ph-pins {
|
||||||
|
pins = "PH0", "PH1", "PH2", "PH3", "PH4",
|
||||||
|
"PH5", "PH6", "PH7", "PH8", "PH9",
|
||||||
|
"PH10", "PH11", "PH12", "PH13", "PH14",
|
||||||
|
"PH15", "PH16", "PH17", "PH18", "PH19",
|
||||||
|
"PH20", "PH21", "PH22", "PH23", "PH24",
|
||||||
|
"PH25", "PH26", "PH27";
|
||||||
|
function = "csi1";
|
||||||
|
};
|
||||||
|
|
||||||
|
/omit-if-no-ref/
|
||||||
|
csi1_clk_pg_pin: csi1-clk-pg-pin {
|
||||||
|
pins = "PG1";
|
||||||
|
function = "csi1";
|
||||||
|
};
|
||||||
|
|
||||||
emac_pins: emac0-pins {
|
emac_pins: emac0-pins {
|
||||||
pins = "PA0", "PA1", "PA2",
|
pins = "PA0", "PA1", "PA2",
|
||||||
"PA3", "PA4", "PA5", "PA6",
|
"PA3", "PA4", "PA5", "PA6",
|
||||||
@ -762,13 +841,20 @@
|
|||||||
timer@1c20c00 {
|
timer@1c20c00 {
|
||||||
compatible = "allwinner,sun4i-a10-timer";
|
compatible = "allwinner,sun4i-a10-timer";
|
||||||
reg = <0x01c20c00 0x90>;
|
reg = <0x01c20c00 0x90>;
|
||||||
interrupts = <22>;
|
interrupts = <22>,
|
||||||
|
<23>,
|
||||||
|
<24>,
|
||||||
|
<25>,
|
||||||
|
<67>,
|
||||||
|
<68>;
|
||||||
clocks = <&osc24M>;
|
clocks = <&osc24M>;
|
||||||
};
|
};
|
||||||
|
|
||||||
wdt: watchdog@1c20c90 {
|
wdt: watchdog@1c20c90 {
|
||||||
compatible = "allwinner,sun4i-a10-wdt";
|
compatible = "allwinner,sun4i-a10-wdt";
|
||||||
reg = <0x01c20c90 0x10>;
|
reg = <0x01c20c90 0x10>;
|
||||||
|
interrupts = <24>;
|
||||||
|
clocks = <&osc24M>;
|
||||||
};
|
};
|
||||||
|
|
||||||
rtc: rtc@1c20d00 {
|
rtc: rtc@1c20d00 {
|
||||||
@ -1001,6 +1087,27 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mali: gpu@1c40000 {
|
||||||
|
compatible = "allwinner,sun4i-a10-mali", "arm,mali-400";
|
||||||
|
reg = <0x01c40000 0x10000>;
|
||||||
|
interrupts = <69>,
|
||||||
|
<70>,
|
||||||
|
<71>,
|
||||||
|
<72>,
|
||||||
|
<73>;
|
||||||
|
interrupt-names = "gp",
|
||||||
|
"gpmmu",
|
||||||
|
"pp0",
|
||||||
|
"ppmmu0",
|
||||||
|
"pmu";
|
||||||
|
clocks = <&ccu CLK_AHB_GPU>, <&ccu CLK_GPU>;
|
||||||
|
clock-names = "bus", "core";
|
||||||
|
resets = <&ccu RST_GPU>;
|
||||||
|
|
||||||
|
assigned-clocks = <&ccu CLK_GPU>;
|
||||||
|
assigned-clock-rates = <384000000>;
|
||||||
|
};
|
||||||
|
|
||||||
fe0: display-frontend@1e00000 {
|
fe0: display-frontend@1e00000 {
|
||||||
compatible = "allwinner,sun4i-a10-display-frontend";
|
compatible = "allwinner,sun4i-a10-display-frontend";
|
||||||
reg = <0x01e00000 0x20000>;
|
reg = <0x01e00000 0x20000>;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
cpu0_opp_table: opp_table0 {
|
cpu0_opp_table: opp-table-cpu {
|
||||||
compatible = "operating-points-v2";
|
compatible = "operating-points-v2";
|
||||||
opp-shared;
|
opp-shared;
|
||||||
|
|
||||||
|
@ -343,7 +343,7 @@
|
|||||||
&spi0 {
|
&spi0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
spi-flash@0 {
|
flash@0 {
|
||||||
compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
|
compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
spi-max-frequency = <80000000>;
|
spi-max-frequency = <80000000>;
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
/ {
|
/ {
|
||||||
model = "Pinebook";
|
model = "Pinebook";
|
||||||
compatible = "pine64,pinebook", "allwinner,sun50i-a64";
|
compatible = "pine64,pinebook", "allwinner,sun50i-a64";
|
||||||
|
chassis-type = "laptop";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
#include <dt-bindings/pwm/pwm.h>
|
#include <dt-bindings/pwm/pwm.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
|
chassis-type = "handset";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
ethernet0 = &rtl8723cs;
|
ethernet0 = &rtl8723cs;
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
@ -25,6 +27,11 @@
|
|||||||
/* Backlight configuration differs per PinePhone revision. */
|
/* Backlight configuration differs per PinePhone revision. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bt_sco_codec: bt-sco-codec {
|
||||||
|
#sound-dai-cells = <1>;
|
||||||
|
compatible = "linux,bt-sco";
|
||||||
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
};
|
};
|
||||||
@ -91,6 +98,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&codec {
|
&codec {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&aif3_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -426,6 +435,7 @@
|
|||||||
|
|
||||||
&sound {
|
&sound {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
simple-audio-card,name = "PinePhone";
|
||||||
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
||||||
simple-audio-card,widgets = "Microphone", "Headset Microphone",
|
simple-audio-card,widgets = "Microphone", "Headset Microphone",
|
||||||
"Microphone", "Internal Microphone",
|
"Microphone", "Internal Microphone",
|
||||||
@ -447,6 +457,23 @@
|
|||||||
"MIC1", "Internal Microphone",
|
"MIC1", "Internal Microphone",
|
||||||
"Headset Microphone", "HBIAS",
|
"Headset Microphone", "HBIAS",
|
||||||
"MIC2", "Headset Microphone";
|
"MIC2", "Headset Microphone";
|
||||||
|
|
||||||
|
simple-audio-card,dai-link@2 {
|
||||||
|
format = "dsp_a";
|
||||||
|
frame-master = <&link2_codec>;
|
||||||
|
bitclock-master = <&link2_codec>;
|
||||||
|
bitclock-inversion;
|
||||||
|
|
||||||
|
link2_cpu: cpu {
|
||||||
|
sound-dai = <&bt_sco_codec 0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
link2_codec: codec {
|
||||||
|
sound-dai = <&codec 2>;
|
||||||
|
dai-tdm-slot-num = <1>;
|
||||||
|
dai-tdm-slot-width = <32>;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
/ {
|
/ {
|
||||||
model = "PineTab, Development Sample";
|
model = "PineTab, Development Sample";
|
||||||
compatible = "pine64,pinetab", "allwinner,sun50i-a64";
|
compatible = "pine64,pinetab", "allwinner,sun50i-a64";
|
||||||
|
chassis-type = "tablet";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
@ -35,6 +36,17 @@
|
|||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hdmi-connector {
|
||||||
|
compatible = "hdmi-connector";
|
||||||
|
type = "c";
|
||||||
|
|
||||||
|
port {
|
||||||
|
hdmi_con_in: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_out_con>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
i2c-csi {
|
i2c-csi {
|
||||||
compatible = "i2c-gpio";
|
compatible = "i2c-gpio";
|
||||||
sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */
|
sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */
|
||||||
@ -77,7 +89,7 @@
|
|||||||
sound-name-prefix = "Speaker Amp";
|
sound-name-prefix = "Speaker Amp";
|
||||||
};
|
};
|
||||||
|
|
||||||
vdd_bl: regulator@0 {
|
vdd_bl: regulator {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
regulator-name = "bl-3v3";
|
regulator-name = "bl-3v3";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
@ -410,6 +422,21 @@
|
|||||||
regulator-name = "vcc-rtc";
|
regulator-name = "vcc-rtc";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&simplefb_hdmi {
|
||||||
|
vcc-hdmi-supply = <®_dldo1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi {
|
||||||
|
hvcc-supply = <®_dldo1>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi_out {
|
||||||
|
hdmi_out_con: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_con_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&sound {
|
&sound {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
/ {
|
/ {
|
||||||
model = "Olimex A64 Teres-I";
|
model = "Olimex A64 Teres-I";
|
||||||
compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
|
compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
|
||||||
|
chassis-type = "laptop";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
serial0 = &uart0;
|
serial0 = &uart0;
|
||||||
@ -139,6 +140,8 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
port@0 {
|
port@0 {
|
||||||
|
reg = <0>;
|
||||||
|
|
||||||
anx6345_in: endpoint {
|
anx6345_in: endpoint {
|
||||||
remote-endpoint = <&tcon0_out_anx6345>;
|
remote-endpoint = <&tcon0_out_anx6345>;
|
||||||
};
|
};
|
||||||
@ -206,7 +209,6 @@
|
|||||||
reg = <0x3a3>;
|
reg = <0x3a3>;
|
||||||
interrupt-parent = <&r_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
wakeup-source;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -102,6 +102,22 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gpu_opp_table: opp-table-gpu {
|
||||||
|
compatible = "operating-points-v2";
|
||||||
|
|
||||||
|
opp-120000000 {
|
||||||
|
opp-hz = /bits/ 64 <120000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
opp-312000000 {
|
||||||
|
opp-hz = /bits/ 64 <312000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
opp-432000000 {
|
||||||
|
opp-hz = /bits/ 64 <432000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
osc24M: osc24M_clk {
|
osc24M: osc24M_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
@ -131,12 +147,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sound: sound {
|
sound: sound {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
compatible = "simple-audio-card";
|
compatible = "simple-audio-card";
|
||||||
simple-audio-card,name = "sun50i-a64-audio";
|
simple-audio-card,name = "sun50i-a64-audio";
|
||||||
simple-audio-card,format = "i2s";
|
|
||||||
simple-audio-card,frame-master = <&cpudai>;
|
|
||||||
simple-audio-card,bitclock-master = <&cpudai>;
|
|
||||||
simple-audio-card,mclk-fs = <128>;
|
|
||||||
simple-audio-card,aux-devs = <&codec_analog>;
|
simple-audio-card,aux-devs = <&codec_analog>;
|
||||||
simple-audio-card,routing =
|
simple-audio-card,routing =
|
||||||
"Left DAC", "DACL",
|
"Left DAC", "DACL",
|
||||||
@ -145,12 +159,19 @@
|
|||||||
"ADCR", "Right ADC";
|
"ADCR", "Right ADC";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
cpudai: simple-audio-card,cpu {
|
simple-audio-card,dai-link@0 {
|
||||||
sound-dai = <&dai>;
|
format = "i2s";
|
||||||
};
|
frame-master = <&link0_cpu>;
|
||||||
|
bitclock-master = <&link0_cpu>;
|
||||||
|
mclk-fs = <128>;
|
||||||
|
|
||||||
link_codec: simple-audio-card,codec {
|
link0_cpu: cpu {
|
||||||
sound-dai = <&codec>;
|
sound-dai = <&dai>;
|
||||||
|
};
|
||||||
|
|
||||||
|
link0_codec: codec {
|
||||||
|
sound-dai = <&codec 0>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -658,6 +679,18 @@
|
|||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <3>;
|
#interrupt-cells = <3>;
|
||||||
|
|
||||||
|
/omit-if-no-ref/
|
||||||
|
aif2_pins: aif2-pins {
|
||||||
|
pins = "PB4", "PB5", "PB6", "PB7";
|
||||||
|
function = "aif2";
|
||||||
|
};
|
||||||
|
|
||||||
|
/omit-if-no-ref/
|
||||||
|
aif3_pins: aif3-pins {
|
||||||
|
pins = "PG10", "PG11", "PG12", "PG13";
|
||||||
|
function = "aif3";
|
||||||
|
};
|
||||||
|
|
||||||
csi_pins: csi-pins {
|
csi_pins: csi-pins {
|
||||||
pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6",
|
pins = "PE0", "PE2", "PE3", "PE4", "PE5", "PE6",
|
||||||
"PE7", "PE8", "PE9", "PE10", "PE11";
|
"PE7", "PE8", "PE9", "PE10", "PE11";
|
||||||
@ -798,6 +831,23 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
timer@1c20c00 {
|
||||||
|
compatible = "allwinner,sun50i-a64-timer",
|
||||||
|
"allwinner,sun8i-a23-timer";
|
||||||
|
reg = <0x01c20c00 0xa0>;
|
||||||
|
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&osc24M>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wdt0: watchdog@1c20ca0 {
|
||||||
|
compatible = "allwinner,sun50i-a64-wdt",
|
||||||
|
"allwinner,sun6i-a31-wdt";
|
||||||
|
reg = <0x01c20ca0 0x20>;
|
||||||
|
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&osc24M>;
|
||||||
|
};
|
||||||
|
|
||||||
spdif: spdif@1c21000 {
|
spdif: spdif@1c21000 {
|
||||||
#sound-dai-cells = <0>;
|
#sound-dai-cells = <0>;
|
||||||
compatible = "allwinner,sun50i-a64-spdif",
|
compatible = "allwinner,sun50i-a64-spdif",
|
||||||
@ -878,7 +928,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
codec: codec@1c22e00 {
|
codec: codec@1c22e00 {
|
||||||
#sound-dai-cells = <0>;
|
#sound-dai-cells = <1>;
|
||||||
compatible = "allwinner,sun50i-a64-codec",
|
compatible = "allwinner,sun50i-a64-codec",
|
||||||
"allwinner,sun8i-a33-codec";
|
"allwinner,sun8i-a33-codec";
|
||||||
reg = <0x01c22e00 0x600>;
|
reg = <0x01c22e00 0x600>;
|
||||||
@ -1067,6 +1117,7 @@
|
|||||||
clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
|
clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
|
||||||
clock-names = "bus", "core";
|
clock-names = "bus", "core";
|
||||||
resets = <&ccu RST_BUS_GPU>;
|
resets = <&ccu RST_BUS_GPU>;
|
||||||
|
operating-points-v2 = <&gpu_opp_table>;
|
||||||
};
|
};
|
||||||
|
|
||||||
gic: interrupt-controller@1c81000 {
|
gic: interrupt-controller@1c81000 {
|
||||||
@ -1093,8 +1144,14 @@
|
|||||||
|
|
||||||
mbus: dram-controller@1c62000 {
|
mbus: dram-controller@1c62000 {
|
||||||
compatible = "allwinner,sun50i-a64-mbus";
|
compatible = "allwinner,sun50i-a64-mbus";
|
||||||
reg = <0x01c62000 0x1000>;
|
reg = <0x01c62000 0x1000>,
|
||||||
clocks = <&ccu 112>;
|
<0x01c63000 0x1000>;
|
||||||
|
reg-names = "mbus", "dram";
|
||||||
|
clocks = <&ccu CLK_MBUS>,
|
||||||
|
<&ccu CLK_DRAM>,
|
||||||
|
<&ccu CLK_BUS_DRAM>;
|
||||||
|
clock-names = "mbus", "dram", "bus";
|
||||||
|
interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
dma-ranges = <0x00000000 0x40000000 0xc0000000>;
|
dma-ranges = <0x00000000 0x40000000 0xc0000000>;
|
||||||
@ -1167,8 +1224,8 @@
|
|||||||
reg-io-width = <1>;
|
reg-io-width = <1>;
|
||||||
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
|
clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
|
||||||
<&ccu CLK_HDMI>;
|
<&ccu CLK_HDMI>, <&rtc 0>;
|
||||||
clock-names = "iahb", "isfr", "tmds";
|
clock-names = "iahb", "isfr", "tmds", "cec";
|
||||||
resets = <&ccu RST_BUS_HDMI1>;
|
resets = <&ccu RST_BUS_HDMI1>;
|
||||||
reset-names = "ctrl";
|
reset-names = "ctrl";
|
||||||
phys = <&hdmi_phy>;
|
phys = <&hdmi_phy>;
|
||||||
@ -1321,13 +1378,5 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
wdt0: watchdog@1c20ca0 {
|
|
||||||
compatible = "allwinner,sun50i-a64-wdt",
|
|
||||||
"allwinner,sun6i-a31-wdt";
|
|
||||||
reg = <0x01c20ca0 0x20>;
|
|
||||||
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
clocks = <&osc24M>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Copyright (C) 2020 Chen-Yu Tsai <wens@csie.org>
|
// Copyright (C) 2020 Chen-Yu Tsai <wens@csie.org>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
cpu_opp_table: cpu-opp-table {
|
cpu_opp_table: opp-table-cpu {
|
||||||
compatible = "operating-points-v2";
|
compatible = "operating-points-v2";
|
||||||
opp-shared;
|
opp-shared;
|
||||||
|
|
||||||
|
@ -142,9 +142,16 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
eeprom@51 {
|
eeprom@51 {
|
||||||
compatible = "microchip,24c02";
|
compatible = "microchip,24c02", "atmel,24c02";
|
||||||
reg = <0x51>;
|
reg = <0x51>;
|
||||||
pagesize = <16>;
|
pagesize = <16>;
|
||||||
|
read-only;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
eth_mac1: mac-address@fa {
|
||||||
|
reg = <0xfa 0x06>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
gpu_thermal {
|
gpu-thermal {
|
||||||
polling-delay-passive = <0>;
|
polling-delay-passive = <0>;
|
||||||
polling-delay = <0>;
|
polling-delay = <0>;
|
||||||
thermal-sensors = <&ths 1>;
|
thermal-sensors = <&ths 1>;
|
||||||
@ -233,6 +233,10 @@
|
|||||||
compatible = "allwinner,sun50i-h5-de2-clk";
|
compatible = "allwinner,sun50i-h5-de2-clk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mbus {
|
||||||
|
compatible = "allwinner,sun50i-h5-mbus";
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
compatible = "allwinner,sun50i-h5-mmc",
|
compatible = "allwinner,sun50i-h5-mmc",
|
||||||
"allwinner,sun50i-a64-mmc";
|
"allwinner,sun50i-a64-mmc";
|
||||||
|
@ -150,12 +150,28 @@
|
|||||||
vcc-pg-supply = <®_aldo1>;
|
vcc-pg-supply = <®_aldo1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_i2c {
|
&r_ir {
|
||||||
|
linux,rc-map-name = "rc-beelink-gs1";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_pio {
|
||||||
|
/*
|
||||||
|
* FIXME: We can't add that supply for now since it would
|
||||||
|
* create a circular dependency between pinctrl, the regulator
|
||||||
|
* and the RSB Bus.
|
||||||
|
*
|
||||||
|
* vcc-pl-supply = <®_aldo1>;
|
||||||
|
*/
|
||||||
|
vcc-pm-supply = <®_aldo1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_rsb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp805: pmic@36 {
|
axp805: pmic@745 {
|
||||||
compatible = "x-powers,axp805", "x-powers,axp806";
|
compatible = "x-powers,axp805", "x-powers,axp806";
|
||||||
reg = <0x36>;
|
reg = <0x745>;
|
||||||
interrupt-parent = <&r_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
@ -273,22 +289,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_ir {
|
|
||||||
linux,rc-map-name = "rc-beelink-gs1";
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&r_pio {
|
|
||||||
/*
|
|
||||||
* PL0 and PL1 are used for PMIC I2C
|
|
||||||
* don't enable the pl-supply else
|
|
||||||
* it will fail at boot
|
|
||||||
*
|
|
||||||
* vcc-pl-supply = <®_aldo1>;
|
|
||||||
*/
|
|
||||||
vcc-pm-supply = <®_aldo1>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&spdif {
|
&spdif {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// Copyright (C) 2020 Clément Péron <peron.clem@gmail.com>
|
// Copyright (C) 2020 Clément Péron <peron.clem@gmail.com>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
cpu_opp_table: cpu-opp-table {
|
cpu_opp_table: opp-table-cpu {
|
||||||
compatible = "allwinner,sun50i-h6-operating-points";
|
compatible = "allwinner,sun50i-h6-operating-points";
|
||||||
nvmem-cells = <&cpu_speed_grade>;
|
nvmem-cells = <&cpu_speed_grade>;
|
||||||
opp-shared;
|
opp-shared;
|
||||||
|
@ -175,12 +175,16 @@
|
|||||||
vcc-pg-supply = <®_vcc_wifi_io>;
|
vcc-pg-supply = <®_vcc_wifi_io>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_i2c {
|
&r_ir {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_rsb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp805: pmic@36 {
|
axp805: pmic@745 {
|
||||||
compatible = "x-powers,axp805", "x-powers,axp806";
|
compatible = "x-powers,axp805", "x-powers,axp806";
|
||||||
reg = <0x36>;
|
reg = <0x745>;
|
||||||
interrupt-parent = <&r_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
@ -291,10 +295,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_ir {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
clocks = <&ext_osc32k>;
|
clocks = <&ext_osc32k>;
|
||||||
};
|
};
|
||||||
|
@ -112,12 +112,20 @@
|
|||||||
vcc-pg-supply = <®_aldo1>;
|
vcc-pg-supply = <®_aldo1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_i2c {
|
&r_ir {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_pio {
|
||||||
|
vcc-pm-supply = <®_bldo3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_rsb {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp805: pmic@36 {
|
axp805: pmic@745 {
|
||||||
compatible = "x-powers,axp805", "x-powers,axp806";
|
compatible = "x-powers,axp805", "x-powers,axp806";
|
||||||
reg = <0x36>;
|
reg = <0x745>;
|
||||||
interrupt-parent = <&r_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
@ -232,14 +240,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_ir {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&r_pio {
|
|
||||||
vcc-pm-supply = <®_bldo3>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&rtc {
|
&rtc {
|
||||||
clocks = <&ext_osc32k>;
|
clocks = <&ext_osc32k>;
|
||||||
};
|
};
|
||||||
|
51
arch/arm/dts/sun50i-h6-pine-h64-model-b.dts
Normal file
51
arch/arm/dts/sun50i-h6-pine-h64-model-b.dts
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 Corentin LABBE <clabbe@baylibre.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "sun50i-h6-pine-h64.dts"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Pine H64 model B";
|
||||||
|
compatible = "pine64,pine-h64-model-b", "allwinner,sun50i-h6";
|
||||||
|
|
||||||
|
/delete-node/ reg_gmac_3v3;
|
||||||
|
|
||||||
|
wifi_pwrseq: wifi_pwrseq {
|
||||||
|
compatible = "mmc-pwrseq-simple";
|
||||||
|
reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
|
||||||
|
post-power-on-delay-ms = <200>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi_connector {
|
||||||
|
/delete-property/ ddc-en-gpios;
|
||||||
|
};
|
||||||
|
|
||||||
|
&emac {
|
||||||
|
phy-supply = <®_aldo2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc1 {
|
||||||
|
vmmc-supply = <®_cldo3>;
|
||||||
|
vqmmc-supply = <®_aldo1>;
|
||||||
|
mmc-pwrseq = <&wifi_pwrseq>;
|
||||||
|
bus-width = <4>;
|
||||||
|
non-removable;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||||
|
uart-has-rtscts;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
bluetooth {
|
||||||
|
compatible = "realtek,rtl8723bs-bt";
|
||||||
|
device-wake-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
|
||||||
|
host-wake-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
|
||||||
|
enable-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
|
||||||
|
max-speed = <1500000>;
|
||||||
|
};
|
||||||
|
};
|
@ -89,6 +89,10 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&dwc3 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
&ehci0 {
|
&ehci0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -332,3 +336,7 @@
|
|||||||
usb3_vbus-supply = <®_usb_vbus>;
|
usb3_vbus-supply = <®_usb_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&usb3phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
15
arch/arm/dts/sun50i-h6-tanix-tx6-mini.dts
Normal file
15
arch/arm/dts/sun50i-h6-tanix-tx6-mini.dts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
// Copyright (c) 2021 Jernej Skrabec <jernej.skrabec@gmail.com>
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "sun50i-h6-tanix.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Tanix TX6 mini";
|
||||||
|
compatible = "oranth,tanix-tx6-mini", "allwinner,sun50i-h6";
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_ir {
|
||||||
|
linux,rc-map-name = "rc-tanix-tx3mini";
|
||||||
|
};
|
@ -3,122 +3,27 @@
|
|||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include "sun50i-h6.dtsi"
|
#include "sun50i-h6-tanix.dtsi"
|
||||||
#include "sun50i-h6-cpu-opp.dtsi"
|
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Tanix TX6";
|
model = "Tanix TX6";
|
||||||
compatible = "oranth,tanix-tx6", "allwinner,sun50i-h6";
|
compatible = "oranth,tanix-tx6", "allwinner,sun50i-h6";
|
||||||
|
|
||||||
aliases {
|
|
||||||
serial0 = &uart0;
|
|
||||||
};
|
|
||||||
|
|
||||||
chosen {
|
|
||||||
stdout-path = "serial0:115200n8";
|
|
||||||
};
|
|
||||||
|
|
||||||
connector {
|
|
||||||
compatible = "hdmi-connector";
|
|
||||||
ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
|
||||||
type = "a";
|
|
||||||
|
|
||||||
port {
|
|
||||||
hdmi_con_in: endpoint {
|
|
||||||
remote-endpoint = <&hdmi_out_con>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
reg_vcc3v3: vcc3v3 {
|
|
||||||
compatible = "regulator-fixed";
|
|
||||||
regulator-name = "vcc3v3";
|
|
||||||
regulator-min-microvolt = <3300000>;
|
|
||||||
regulator-max-microvolt = <3300000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
reg_vdd_cpu_gpu: vdd-cpu-gpu {
|
|
||||||
compatible = "regulator-fixed";
|
|
||||||
regulator-name = "vdd-cpu-gpu";
|
|
||||||
regulator-min-microvolt = <1135000>;
|
|
||||||
regulator-max-microvolt = <1135000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&cpu0 {
|
|
||||||
cpu-supply = <®_vdd_cpu_gpu>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&de {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&dwc3 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&ehci0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&ehci3 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&gpu {
|
|
||||||
mali-supply = <®_vdd_cpu_gpu>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&hdmi {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&hdmi_out {
|
|
||||||
hdmi_out_con: endpoint {
|
|
||||||
remote-endpoint = <&hdmi_con_in>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc0 {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
|
||||||
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
|
||||||
bus-width = <4>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&ohci0 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&ohci3 {
|
|
||||||
status = "okay";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&r_ir {
|
&r_ir {
|
||||||
linux,rc-map-name = "rc-tanix-tx5max";
|
linux,rc-map-name = "rc-tanix-tx5max";
|
||||||
status = "okay";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_ph_pins>;
|
pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
||||||
|
uart-has-rtscts;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
|
||||||
|
|
||||||
&usb2otg {
|
bluetooth {
|
||||||
dr_mode = "host";
|
compatible = "realtek,rtl8822cs-bt";
|
||||||
status = "okay";
|
device-wake-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
|
||||||
};
|
host-wake-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
|
||||||
|
enable-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
|
||||||
&usb2phy {
|
};
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&usb3phy {
|
|
||||||
status = "okay";
|
|
||||||
};
|
};
|
||||||
|
189
arch/arm/dts/sun50i-h6-tanix.dtsi
Normal file
189
arch/arm/dts/sun50i-h6-tanix.dtsi
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
// Copyright (c) 2019 Jernej Skrabec <jernej.skrabec@siol.net>
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "sun50i-h6.dtsi"
|
||||||
|
#include "sun50i-h6-cpu-opp.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
connector {
|
||||||
|
compatible = "hdmi-connector";
|
||||||
|
ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
||||||
|
type = "a";
|
||||||
|
|
||||||
|
port {
|
||||||
|
hdmi_con_in: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_out_con>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/* used for FD650 LED display driver */
|
||||||
|
i2c {
|
||||||
|
compatible = "i2c-gpio";
|
||||||
|
sda-gpios = <&pio 7 6 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH6 */
|
||||||
|
scl-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PH5 */
|
||||||
|
i2c-gpio,delay-us = <5>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_vcc1v8: regulator-vcc1v8 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vcc1v8";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_vcc3v3: regulator-vcc3v3 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vcc3v3";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vdd-cpu-gpu";
|
||||||
|
regulator-min-microvolt = <1135000>;
|
||||||
|
regulator-max-microvolt = <1135000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sound-spdif {
|
||||||
|
compatible = "simple-audio-card";
|
||||||
|
simple-audio-card,name = "sun50i-h6-spdif";
|
||||||
|
|
||||||
|
simple-audio-card,cpu {
|
||||||
|
sound-dai = <&spdif>;
|
||||||
|
};
|
||||||
|
|
||||||
|
simple-audio-card,codec {
|
||||||
|
sound-dai = <&spdif_out>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spdif_out: spdif-out {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
compatible = "linux,spdif-dit";
|
||||||
|
};
|
||||||
|
|
||||||
|
wifi_pwrseq: wifi-pwrseq {
|
||||||
|
compatible = "mmc-pwrseq-simple";
|
||||||
|
clocks = <&rtc 1>;
|
||||||
|
clock-names = "ext_clock";
|
||||||
|
reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu0 {
|
||||||
|
cpu-supply = <®_vdd_cpu_gpu>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&de {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&dwc3 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci3 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gpu {
|
||||||
|
mali-supply = <®_vdd_cpu_gpu>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi_out {
|
||||||
|
hdmi_out_con: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_con_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc0_pins>;
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
||||||
|
bus-width = <4>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc1 {
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
vqmmc-supply = <®_vcc1v8>;
|
||||||
|
mmc-pwrseq = <&wifi_pwrseq>;
|
||||||
|
bus-width = <4>;
|
||||||
|
non-removable;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc2 {
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
vqmmc-supply = <®_vcc1v8>;
|
||||||
|
bus-width = <8>;
|
||||||
|
non-removable;
|
||||||
|
cap-mmc-hw-reset;
|
||||||
|
mmc-hs200-1_8v;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci3 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pio {
|
||||||
|
vcc-pc-supply = <®_vcc1v8>;
|
||||||
|
vcc-pd-supply = <®_vcc3v3>;
|
||||||
|
vcc-pg-supply = <®_vcc1v8>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_ir {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&spdif {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb2otg {
|
||||||
|
dr_mode = "host";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb2phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb3phy {
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -119,10 +119,10 @@
|
|||||||
display_clocks: clock@0 {
|
display_clocks: clock@0 {
|
||||||
compatible = "allwinner,sun50i-h6-de3-clk";
|
compatible = "allwinner,sun50i-h6-de3-clk";
|
||||||
reg = <0x0 0x10000>;
|
reg = <0x0 0x10000>;
|
||||||
clocks = <&ccu CLK_DE>,
|
clocks = <&ccu CLK_BUS_DE>,
|
||||||
<&ccu CLK_BUS_DE>;
|
<&ccu CLK_DE>;
|
||||||
clock-names = "mod",
|
clock-names = "bus",
|
||||||
"bus";
|
"mod";
|
||||||
resets = <&ccu RST_BUS_DE>;
|
resets = <&ccu RST_BUS_DE>;
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
#reset-cells = <1>;
|
#reset-cells = <1>;
|
||||||
@ -153,6 +153,15 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
video-codec-g2@1c00000 {
|
||||||
|
compatible = "allwinner,sun50i-h6-vpu-g2";
|
||||||
|
reg = <0x01c00000 0x1000>;
|
||||||
|
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
|
||||||
|
clock-names = "bus", "mod";
|
||||||
|
resets = <&ccu RST_BUS_VP9>;
|
||||||
|
};
|
||||||
|
|
||||||
video-codec@1c0e000 {
|
video-codec@1c0e000 {
|
||||||
compatible = "allwinner,sun50i-h6-video-engine";
|
compatible = "allwinner,sun50i-h6-video-engine";
|
||||||
reg = <0x01c0e000 0x2000>;
|
reg = <0x01c0e000 0x2000>;
|
||||||
@ -271,6 +280,15 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
timer@3009000 {
|
||||||
|
compatible = "allwinner,sun50i-h6-timer",
|
||||||
|
"allwinner,sun8i-a23-timer";
|
||||||
|
reg = <0x03009000 0xa0>;
|
||||||
|
interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&osc24M>;
|
||||||
|
};
|
||||||
|
|
||||||
watchdog: watchdog@30090a0 {
|
watchdog: watchdog@30090a0 {
|
||||||
compatible = "allwinner,sun50i-h6-wdt",
|
compatible = "allwinner,sun50i-h6-wdt",
|
||||||
"allwinner,sun6i-a31-wdt";
|
"allwinner,sun6i-a31-wdt";
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_t003>;
|
pinctrl-0 = <&led_pins_t003>;
|
||||||
|
|
||||||
red {
|
led {
|
||||||
label = "t003-tv-dongle:red:usr";
|
label = "t003-tv-dongle:red:usr";
|
||||||
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */
|
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -75,8 +75,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp152: pmic@30 {
|
axp152: pmic@30 {
|
||||||
@ -89,8 +87,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_t003>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
||||||
@ -106,13 +102,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
mmc0_cd_pin_t003: mmc0_cd_pin@0 {
|
led_pins_t003: led-pin {
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_t003: led_pins@0 {
|
|
||||||
pins = "PB2";
|
pins = "PB2";
|
||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
@ -131,7 +121,7 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_t004>;
|
pinctrl-0 = <&led_pins_t004>;
|
||||||
|
|
||||||
red {
|
led {
|
||||||
label = "t004-tv-dongle:red:usr";
|
label = "t004-tv-dongle:red:usr";
|
||||||
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */
|
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -71,8 +71,6 @@
|
|||||||
|
|
||||||
reg_vmmc1: vmmc1 {
|
reg_vmmc1: vmmc1 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc1_vcc_en_pin_t004>;
|
|
||||||
regulator-name = "vmmc1";
|
regulator-name = "vmmc1";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
@ -86,8 +84,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp152: pmic@30 {
|
axp152: pmic@30 {
|
||||||
@ -100,8 +96,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_t004>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
||||||
@ -109,8 +103,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc1 {
|
&mmc1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc1_pins_a>;
|
|
||||||
vmmc-supply = <®_vmmc1>;
|
vmmc-supply = <®_vmmc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
non-removable;
|
non-removable;
|
||||||
@ -127,24 +119,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
led_pins_t004: led-pin {
|
||||||
pins = "PG12";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_t004: mmc0_cd_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc1_vcc_en_pin_t004: mmc1_vcc_en_pin@0 {
|
|
||||||
pins = "PB18";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_t004: led_pins@0 {
|
|
||||||
pins = "PB2";
|
pins = "PB2";
|
||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
@ -158,7 +133,7 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -168,9 +143,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG12 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -59,10 +59,8 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pins_mk802>;
|
|
||||||
|
|
||||||
red {
|
led {
|
||||||
label = "mk802:red:usr";
|
label = "mk802:red:usr";
|
||||||
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */
|
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2 */
|
||||||
};
|
};
|
||||||
@ -74,8 +72,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp152: pmic@30 {
|
axp152: pmic@30 {
|
||||||
@ -88,8 +84,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_mk802>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
||||||
@ -97,8 +91,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc1 {
|
&mmc1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc1_pins_a>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
non-removable;
|
non-removable;
|
||||||
@ -113,33 +105,14 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
led_pins_mk802: led_pins@0 {
|
|
||||||
pins = "PB2";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_mk802: mmc0_cd_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb1_vbus_pin_mk802: usb1_vbus_pin@0 {
|
|
||||||
pins = "PB10";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-0 = <&usb1_vbus_pin_mk802>;
|
|
||||||
gpio = <&pio 1 10 GPIO_ACTIVE_HIGH>; /* PB10 */
|
gpio = <&pio 1 10 GPIO_ACTIVE_HIGH>; /* PB10 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_olinuxino>;
|
pinctrl-0 = <&led_pins_olinuxino>;
|
||||||
|
|
||||||
green {
|
led {
|
||||||
label = "a10s-olinuxino-micro:green:usr";
|
label = "a10s-olinuxino-micro:green:usr";
|
||||||
gpios = <&pio 4 3 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 4 3 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -97,8 +97,8 @@
|
|||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&emac_pins_b>;
|
pinctrl-0 = <&emac_pa_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -117,8 +117,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp152: pmic@30 {
|
axp152: pmic@30 {
|
||||||
@ -130,11 +128,9 @@
|
|||||||
#include "axp152.dtsi"
|
#include "axp152.dtsi"
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
at24@50 {
|
eeprom@50 {
|
||||||
compatible = "atmel,24c16";
|
compatible = "atmel,24c16";
|
||||||
pagesize = <16>;
|
pagesize = <16>;
|
||||||
reg = <0x50>;
|
reg = <0x50>;
|
||||||
@ -143,8 +139,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -152,35 +146,35 @@
|
|||||||
vref-supply = <®_vcc3v0>;
|
vref-supply = <®_vcc3v0>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@191 {
|
button-191 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <191274>;
|
voltage = <191274>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@392 {
|
button-392 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <392644>;
|
voltage = <392644>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@601 {
|
button-601 {
|
||||||
label = "Menu";
|
label = "Menu";
|
||||||
linux,code = <KEY_MENU>;
|
linux,code = <KEY_MENU>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <601151>;
|
voltage = <601151>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@795 {
|
button-795 {
|
||||||
label = "Enter";
|
label = "Enter";
|
||||||
linux,code = <KEY_ENTER>;
|
linux,code = <KEY_ENTER>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <795090>;
|
voltage = <795090>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@987 {
|
button-987 {
|
||||||
label = "Home";
|
label = "Home";
|
||||||
linux,code = <KEY_HOMEPAGE>;
|
linux,code = <KEY_HOMEPAGE>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
@ -197,8 +191,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino_micro>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
||||||
@ -206,8 +198,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc1 {
|
&mmc1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc1_pins_a>, <&mmc1_cd_pin_olinuxino_micro>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 13 GPIO_ACTIVE_LOW>; /* PG13 */
|
cd-gpios = <&pio 6 13 GPIO_ACTIVE_LOW>; /* PG13 */
|
||||||
@ -223,34 +213,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
|
led_pins_olinuxino: led-pin {
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc1_cd_pin_olinuxino_micro: mmc1_cd_pin@0 {
|
|
||||||
pins = "PG13";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_olinuxino: led_pins@0 {
|
|
||||||
pins = "PE3";
|
pins = "PE3";
|
||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usb1_vbus_pin_olinuxino_m: usb1_vbus_pin@0 {
|
|
||||||
pins = "PB10";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PG12";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
@ -259,15 +226,14 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-0 = <&usb1_vbus_pin_olinuxino_m>;
|
|
||||||
gpio = <&pio 1 10 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 1 10 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&spi2 {
|
&spi2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&spi2_pins_b>,
|
pinctrl-0 = <&spi2_pb_pins>,
|
||||||
<&spi2_cs0_pins_b>;
|
<&spi2_cs0_pb_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -277,19 +243,19 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart2 {
|
&uart2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart2_pins_b>;
|
pinctrl-0 = <&uart2_pc_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart3 {
|
&uart3 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart3_pins_a>;
|
pinctrl-0 = <&uart3_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -299,9 +265,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG12 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_r7>;
|
pinctrl-0 = <&led_pins_r7>;
|
||||||
|
|
||||||
green {
|
led {
|
||||||
label = "r7-tv-dongle:green:usr";
|
label = "r7-tv-dongle:green:usr";
|
||||||
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -76,8 +76,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_r7>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
cd-gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
|
||||||
@ -85,8 +83,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc1 {
|
&mmc1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc1_pins_a>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
non-removable;
|
non-removable;
|
||||||
@ -98,33 +94,21 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
mmc0_cd_pin_r7: mmc0_cd_pin@0 {
|
led_pins_r7: led-pin {
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_r7: led_pins@0 {
|
|
||||||
pins = "PB2";
|
pins = "PB2";
|
||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usb1_vbus_pin_r7: usb1_vbus_pin@0 {
|
|
||||||
pins = "PG13";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-0 = <&usb1_vbus_pin_r7>;
|
|
||||||
gpio = <&pio 6 13 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 6 13 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -61,10 +61,8 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pins_wobo_i5>;
|
|
||||||
|
|
||||||
blue {
|
led {
|
||||||
label = "a10s-wobo-i5:blue:usr";
|
label = "a10s-wobo-i5:blue:usr";
|
||||||
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -73,8 +71,6 @@
|
|||||||
|
|
||||||
reg_emac_3v3: emac-3v3 {
|
reg_emac_3v3: emac-3v3 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&emac_power_pin_wobo>;
|
|
||||||
regulator-name = "emac-3v3";
|
regulator-name = "emac-3v3";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
@ -94,8 +90,8 @@
|
|||||||
|
|
||||||
&emac {
|
&emac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&emac_pins_a>;
|
pinctrl-0 = <&emac_pd_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -104,8 +100,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp209: pmic@34 {
|
axp209: pmic@34 {
|
||||||
@ -126,8 +120,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_wobo_i5>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>; /* PB3 */
|
cd-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>; /* PB3 */
|
||||||
@ -142,24 +134,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
led_pins_wobo_i5: led_pins@0 {
|
|
||||||
pins = "PB2";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_wobo_i5: mmc0_cd_pin@0 {
|
|
||||||
pins = "PB3";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
emac_power_pin_wobo: emac_power_pin@0 {
|
|
||||||
pins = "PA02";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-min-microvolt = <1000000>;
|
regulator-min-microvolt = <1000000>;
|
||||||
@ -206,7 +180,7 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,15 +42,11 @@
|
|||||||
* OTHER DEALINGS IN THE SOFTWARE.
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skeleton.dtsi"
|
|
||||||
|
|
||||||
#include "sun5i.dtsi"
|
#include "sun5i.dtsi"
|
||||||
|
|
||||||
#include <dt-bindings/dma/sun4i-a10.h>
|
#include <dt-bindings/dma/sun4i-a10.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
interrupt-parent = <&intc>;
|
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
ethernet0 = &emac;
|
ethernet0 = &emac;
|
||||||
};
|
};
|
||||||
@ -60,7 +56,7 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
framebuffer@2 {
|
framebuffer-lcd0-hdmi {
|
||||||
compatible = "allwinner,simple-framebuffer",
|
compatible = "allwinner,simple-framebuffer",
|
||||||
"simple-framebuffer";
|
"simple-framebuffer";
|
||||||
allwinner,pipeline = "de_be0-lcd0-hdmi";
|
allwinner,pipeline = "de_be0-lcd0-hdmi";
|
||||||
@ -76,7 +72,7 @@
|
|||||||
allwinner,pipelines = <&fe0>;
|
allwinner,pipelines = <&fe0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
soc@1c00000 {
|
soc {
|
||||||
hdmi: hdmi@1c16000 {
|
hdmi: hdmi@1c16000 {
|
||||||
compatible = "allwinner,sun5i-a10s-hdmi";
|
compatible = "allwinner,sun5i-a10s-hdmi";
|
||||||
reg = <0x01c16000 0x1000>;
|
reg = <0x01c16000 0x1000>;
|
||||||
@ -104,8 +100,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
hdmi_out: port@1 {
|
hdmi_out: port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -125,20 +119,25 @@
|
|||||||
compatible = "allwinner,sun5i-a10s-ccu";
|
compatible = "allwinner,sun5i-a10s-ccu";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mmc1 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc1_pins>;
|
||||||
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
compatible = "allwinner,sun5i-a10s-pinctrl";
|
compatible = "allwinner,sun5i-a10s-pinctrl";
|
||||||
|
|
||||||
uart0_pins_a: uart0@0 {
|
uart0_pb_pins: uart0-pb-pins {
|
||||||
pins = "PB19", "PB20";
|
pins = "PB19", "PB20";
|
||||||
function = "uart0";
|
function = "uart0";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart2_pins_b: uart2@1 {
|
uart2_pc_pins: uart2-pc-pins {
|
||||||
pins = "PC18", "PC19";
|
pins = "PC18", "PC19";
|
||||||
function = "uart2";
|
function = "uart2";
|
||||||
};
|
};
|
||||||
|
|
||||||
emac_pins_b: emac0@1 {
|
emac_pa_pins: emac-pa-pins {
|
||||||
pins = "PA0", "PA1", "PA2",
|
pins = "PA0", "PA1", "PA2",
|
||||||
"PA3", "PA4", "PA5", "PA6",
|
"PA3", "PA4", "PA5", "PA6",
|
||||||
"PA7", "PA8", "PA9", "PA10",
|
"PA7", "PA8", "PA9", "PA10",
|
||||||
@ -147,27 +146,24 @@
|
|||||||
function = "emac";
|
function = "emac";
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc1_pins_a: mmc1@0 {
|
mmc1_pins: mmc1-pins {
|
||||||
pins = "PG3", "PG4", "PG5",
|
pins = "PG3", "PG4", "PG5",
|
||||||
"PG6", "PG7", "PG8";
|
"PG6", "PG7", "PG8";
|
||||||
function = "mmc1";
|
function = "mmc1";
|
||||||
drive-strength = <30>;
|
drive-strength = <30>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi2_pins_b: spi2@1 {
|
spi2_pb_pins: spi2-pb-pins {
|
||||||
pins = "PB12", "PB13", "PB14";
|
pins = "PB12", "PB13", "PB14";
|
||||||
function = "spi2";
|
function = "spi2";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi2_cs0_pins_b: spi2_cs0@1 {
|
spi2_cs0_pb_pin: spi2-cs0-pb-pin {
|
||||||
pins = "PB11";
|
pins = "PB11";
|
||||||
function = "spi2";
|
function = "spi2";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&sram_a {
|
|
||||||
};
|
|
||||||
|
|
||||||
&tcon0_out {
|
&tcon0_out {
|
||||||
tcon0_out_hdmi: endpoint@2 {
|
tcon0_out_hdmi: endpoint@2 {
|
||||||
reg = <2>;
|
reg = <2>;
|
||||||
|
@ -26,3 +26,7 @@
|
|||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pins_b>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
||||||
|
};
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
|
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
|
||||||
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 = <8>;
|
default-brightness-level = <8>;
|
||||||
|
power-supply = <®_vcc3v3>;
|
||||||
/* TODO: backlight uses axp gpio1 as enable pin */
|
/* TODO: backlight uses axp gpio1 as enable pin */
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -78,8 +79,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp209: pmic@34 {
|
axp209: pmic@34 {
|
||||||
@ -91,8 +90,6 @@
|
|||||||
#include "axp209.dtsi"
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
pcf8563: rtc@51 {
|
pcf8563: rtc@51 {
|
||||||
@ -105,14 +102,14 @@
|
|||||||
vref-supply = <®_ldo2>;
|
vref-supply = <®_ldo2>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@200 {
|
button-200 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <200000>;
|
voltage = <200000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@400 {
|
button-400 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
@ -121,8 +118,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_d709>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
@ -133,29 +128,9 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
mmc0_cd_pin_d709: mmc0_cd_pin@0 {
|
|
||||||
pins = "PG0";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm {
|
&pwm {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pwm0_pins>;
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -197,7 +172,7 @@
|
|||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -207,10 +182,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 6 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG1 */
|
||||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_ldo3>;
|
usb1_vbus-supply = <®_ldo3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -69,8 +69,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp209: pmic@34 {
|
axp209: pmic@34 {
|
||||||
@ -80,8 +78,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
pcf8563: rtc@51 {
|
pcf8563: rtc@51 {
|
||||||
@ -91,8 +87,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -100,14 +94,14 @@
|
|||||||
vref-supply = <®_ldo2>;
|
vref-supply = <®_ldo2>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@200 {
|
button-200 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <200000>;
|
voltage = <200000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@400 {
|
button-400 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
@ -116,8 +110,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
@ -132,25 +124,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
mmc0_cd_pin_h702: mmc0_cd_pin@0 {
|
|
||||||
pins = "PG0";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "axp209.dtsi"
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
@ -191,7 +164,7 @@
|
|||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -201,9 +174,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
|
||||||
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
|
||||||
usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_ldo3>;
|
usb1_vbus-supply = <®_ldo3>;
|
||||||
|
214
arch/arm/dts/sun5i-a13-licheepi-one.dts
Normal file
214
arch/arm/dts/sun5i-a13-licheepi-one.dts
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2016 Icenowy Zheng <icenowy@aosc.xyz>
|
||||||
|
*
|
||||||
|
* Based on sun5i-a13-olinuxino.dts, which is
|
||||||
|
* Copyright 2012 Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||||
|
* Copyright 2013 Hans de Goede <hdegoede@redhat.com>
|
||||||
|
*
|
||||||
|
* This file is dual-licensed: you can use it either under the terms
|
||||||
|
* of the GPL or the X11 license, at your option. Note that this dual
|
||||||
|
* licensing only applies to this file, and not this project as a
|
||||||
|
* whole.
|
||||||
|
*
|
||||||
|
* a) This file is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This file is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* Or, alternatively,
|
||||||
|
*
|
||||||
|
* b) Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation
|
||||||
|
* files (the "Software"), to deal in the Software without
|
||||||
|
* restriction, including without limitation the rights to use,
|
||||||
|
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
* sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following
|
||||||
|
* conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "sun5i-a13.dtsi"
|
||||||
|
#include "sunxi-common-regulators.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Lichee Pi One";
|
||||||
|
compatible = "licheepi,licheepi-one", "allwinner,sun5i-a13";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart1;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led-0 {
|
||||||
|
label ="licheepi:red:usr";
|
||||||
|
gpios = <&pio 2 5 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
led-1 {
|
||||||
|
label ="licheepi:green:usr";
|
||||||
|
gpios = <&pio 2 19 GPIO_ACTIVE_LOW>;
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
|
||||||
|
led-2 {
|
||||||
|
label ="licheepi:blue:usr";
|
||||||
|
gpios = <&pio 2 4 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu0 {
|
||||||
|
cpu-supply = <®_dcdc2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
axp209: pmic@34 {
|
||||||
|
compatible = "x-powers,axp209";
|
||||||
|
reg = <0x34>;
|
||||||
|
interrupts = <0>;
|
||||||
|
|
||||||
|
interrupt-controller;
|
||||||
|
#interrupt-cells = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&lradc {
|
||||||
|
vref-supply = <®_ldo2>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
button-984 {
|
||||||
|
label = "Home";
|
||||||
|
linux,code = <KEY_HOMEPAGE>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <984126>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
bus-width = <4>;
|
||||||
|
broken-cd;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc2 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc2_4bit_pc_pins>;
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
bus-width = <4>;
|
||||||
|
broken-cd;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&otg_sram {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
|
®_dcdc2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1500000>;
|
||||||
|
regulator-name = "vdd-cpu";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc3 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1400000>;
|
||||||
|
regulator-name = "vdd-int-dll";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo1 {
|
||||||
|
regulator-name = "vdd-rtc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <3000000>;
|
||||||
|
regulator-max-microvolt = <3000000>;
|
||||||
|
regulator-name = "avcc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo3 {
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
regulator-name = "csi-1.8v";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo4 {
|
||||||
|
regulator-min-microvolt = <2800000>;
|
||||||
|
regulator-max-microvolt = <2800000>;
|
||||||
|
regulator-name = "csi-2.8v";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb0_vbus {
|
||||||
|
gpio = <&pio 2 12 GPIO_ACTIVE_HIGH>; /* PC12 */
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_otg {
|
||||||
|
dr_mode = "otg";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
||||||
|
usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
||||||
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
|
usb1_vbus-supply = <®_vcc5v0>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -64,7 +64,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_olinuxinom>;
|
pinctrl-0 = <&led_pins_olinuxinom>;
|
||||||
|
|
||||||
power {
|
led {
|
||||||
label = "a13-olinuxino-micro:green:power";
|
label = "a13-olinuxino-micro:green:power";
|
||||||
gpios = <&pio 6 9 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 6 9 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -77,26 +77,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxinom>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
@ -112,56 +104,26 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
mmc0_cd_pin_olinuxinom: mmc0_cd_pin@0 {
|
led_pins_olinuxinom: led-pin {
|
||||||
pins = "PG0";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_olinuxinom: led_pins@0 {
|
|
||||||
pins = "PG9";
|
pins = "PG9";
|
||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_pin_olinuxinom: usb0_vbus_pin@0 {
|
|
||||||
pins = "PG12";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
usb1_vbus_pin_olinuxinom: usb1_vbus_pin@0 {
|
|
||||||
pins = "PG11";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
pinctrl-0 = <&usb0_vbus_pin_olinuxinom>;
|
|
||||||
gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-0 = <&usb1_vbus_pin_olinuxinom>;
|
|
||||||
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -171,10 +133,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 6 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG1 */
|
||||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&led_pins_olinuxino>;
|
pinctrl-0 = <&led_pins_olinuxino>;
|
||||||
|
|
||||||
power {
|
led {
|
||||||
gpios = <&pio 6 9 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 6 9 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
};
|
};
|
||||||
@ -74,8 +74,6 @@
|
|||||||
|
|
||||||
bridge {
|
bridge {
|
||||||
compatible = "dumb-vga-dac";
|
compatible = "dumb-vga-dac";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -123,8 +121,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp209: pmic@34 {
|
axp209: pmic@34 {
|
||||||
@ -138,14 +134,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -153,35 +145,35 @@
|
|||||||
vref-supply = <®_vcc3v0>;
|
vref-supply = <®_vcc3v0>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@191 {
|
button-191 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <191274>;
|
voltage = <191274>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@392 {
|
button-392 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <392644>;
|
voltage = <392644>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@601 {
|
button-601 {
|
||||||
label = "Menu";
|
label = "Menu";
|
||||||
linux,code = <KEY_MENU>;
|
linux,code = <KEY_MENU>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <601151>;
|
voltage = <601151>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@795 {
|
button-795 {
|
||||||
label = "Enter";
|
label = "Enter";
|
||||||
linux,code = <KEY_ENTER>;
|
linux,code = <KEY_ENTER>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <795090>;
|
voltage = <795090>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@987 {
|
button-987 {
|
||||||
label = "Home";
|
label = "Home";
|
||||||
linux,code = <KEY_HOMEPAGE>;
|
linux,code = <KEY_HOMEPAGE>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
@ -190,8 +182,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_olinuxino>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
@ -207,34 +197,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
|
led_pins_olinuxino: led-pin {
|
||||||
pins = "PG0";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_olinuxino: led_pins@0 {
|
|
||||||
pins = "PG9";
|
pins = "PG9";
|
||||||
function = "gpio_out";
|
function = "gpio_out";
|
||||||
drive-strength = <20>;
|
drive-strength = <20>;
|
||||||
};
|
};
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
|
|
||||||
pins = "PG11";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
@ -243,7 +210,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-0 = <&usb1_vbus_pin_olinuxino>;
|
|
||||||
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -263,7 +229,7 @@
|
|||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -273,10 +239,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 6 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG1 */
|
||||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
258
arch/arm/dts/sun5i-a13-pocketbook-touch-lux-3.dts
Normal file
258
arch/arm/dts/sun5i-a13-pocketbook-touch-lux-3.dts
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
||||||
|
/*
|
||||||
|
* Copyright 2019 Ondrej Jirman <megous@megous.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "sun5i-a13.dtsi"
|
||||||
|
#include "sunxi-common-regulators.dtsi"
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
#include <dt-bindings/pwm/pwm.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "PocketBook Touch Lux 3";
|
||||||
|
compatible = "pocketbook,touch-lux-3", "allwinner,sun5i-a13";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart1;
|
||||||
|
i2c0 = &i2c0;
|
||||||
|
i2c1 = &i2c1;
|
||||||
|
i2c2 = &i2c2;
|
||||||
|
};
|
||||||
|
|
||||||
|
backlight {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
|
||||||
|
enable-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
|
||||||
|
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||||
|
default-brightness-level = <8>;
|
||||||
|
power-supply = <®_vcc3v3>;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
led {
|
||||||
|
gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
autorepeat;
|
||||||
|
label = "GPIO Keys";
|
||||||
|
|
||||||
|
key-right {
|
||||||
|
label = "Right";
|
||||||
|
linux,code = <KEY_RIGHT>;
|
||||||
|
gpios = <&pio 6 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PG9 */
|
||||||
|
};
|
||||||
|
|
||||||
|
key-left {
|
||||||
|
label = "Left";
|
||||||
|
linux,code = <KEY_LEFT>;
|
||||||
|
gpios = <&pio 6 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PG10 */
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_1v8: regulator-1v8 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vdd-1v8-nor-ctp";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
gpio = <&pio 2 15 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_1v8_nor: regulator-nor {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vdd-nor";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
gpio = <&pio 2 14 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
vin-supply = <®_1v8>;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_1v8_ctp: regulator-ctp {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vdd-ctp";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
gpio = <&pio 2 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
enable-active-high;
|
||||||
|
vin-supply = <®_1v8>;
|
||||||
|
};
|
||||||
|
|
||||||
|
reg_3v3_mmc0: regulator-mmc0 {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "vdd-mmc0";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
gpio = <&pio 4 4 GPIO_ACTIVE_LOW>; /* PE4 */
|
||||||
|
vin-supply = <®_vcc3v3>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu0 {
|
||||||
|
cpu-supply = <®_dcdc2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
axp209: pmic@34 {
|
||||||
|
reg = <0x34>;
|
||||||
|
interrupts = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
pcf8563: rtc@51 {
|
||||||
|
compatible = "nxp,pcf8563";
|
||||||
|
reg = <0x51>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
/* Touchpanel is connected here. */
|
||||||
|
};
|
||||||
|
|
||||||
|
&lradc {
|
||||||
|
vref-supply = <®_ldo2>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
button-200 {
|
||||||
|
label = "Home";
|
||||||
|
linux,code = <KEY_HOME>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <200000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-400 {
|
||||||
|
label = "Menu";
|
||||||
|
linux,code = <KEY_MENU>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
vmmc-supply = <®_3v3_mmc0>;
|
||||||
|
bus-width = <4>;
|
||||||
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc2 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc2_4bit_pc_pins>;
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
bus-width = <4>;
|
||||||
|
non-removable;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&otg_sram {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pwm {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1400000>;
|
||||||
|
regulator-name = "vdd-cpu";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc3 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1200000>;
|
||||||
|
regulator-max-microvolt = <1200000>;
|
||||||
|
regulator-name = "vdd-int-pll";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo1 {
|
||||||
|
regulator-name = "vdd-rtc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <3000000>;
|
||||||
|
regulator-max-microvolt = <3000000>;
|
||||||
|
regulator-name = "avcc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo3 {
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
regulator-name = "vcc-wifi";
|
||||||
|
/* We need this otherwise the LDO3 would overload */
|
||||||
|
regulator-soft-start;
|
||||||
|
regulator-ramp-delay = <1600>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi2 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&spi2_pe_pins>, <&spi2_cs0_pe_pin>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
epd_flash: flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "macronix,mx25u4033", "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <4000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_otg {
|
||||||
|
dr_mode = "peripheral";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&battery_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb1_vbus-supply = <®_ldo3>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -49,19 +49,13 @@
|
|||||||
compatible = "allwinner,q8-a13", "allwinner,sun5i-a13";
|
compatible = "allwinner,q8-a13", "allwinner,sun5i-a13";
|
||||||
|
|
||||||
panel: panel {
|
panel: panel {
|
||||||
compatible = "urt,umsh-8596md-t", "simple-panel";
|
compatible = "bananapi,s070wv20-ct16";
|
||||||
#address-cells = <1>;
|
power-supply = <®_vcc3v3>;
|
||||||
#size-cells = <0>;
|
enable-gpios = <&axp_gpio 0 GPIO_ACTIVE_HIGH>; /* AXP GPIO0 */
|
||||||
|
backlight = <&backlight>;
|
||||||
|
|
||||||
port@0 {
|
port {
|
||||||
reg = <0>;
|
panel_input: endpoint {
|
||||||
/* TODO: lcd panel uses axp gpio0 as enable pin */
|
|
||||||
backlight = <&backlight>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
panel_input: endpoint@0 {
|
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&tcon0_out_lcd>;
|
remote-endpoint = <&tcon0_out_lcd>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -58,13 +58,11 @@
|
|||||||
/delete-property/stdout-path;
|
/delete-property/stdout-path;
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c_lcd: i2c@0 {
|
i2c_lcd: i2c {
|
||||||
/* The lcd panel i2c interface is hooked up via gpios */
|
/* The lcd panel i2c interface is hooked up via gpios */
|
||||||
compatible = "i2c-gpio";
|
compatible = "i2c-gpio";
|
||||||
pinctrl-names = "default";
|
sda-gpios = <&pio 6 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG12 */
|
||||||
pinctrl-0 = <&i2c_lcd_pins>;
|
scl-gpios = <&pio 6 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG10 */
|
||||||
gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>, /* PG12, sda */
|
|
||||||
<&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10, scl */
|
|
||||||
i2c-gpio,delay-us = <5>;
|
i2c-gpio,delay-us = <5>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -79,13 +77,9 @@
|
|||||||
allwinner,pa-gpios = <&pio 6 3 GPIO_ACTIVE_HIGH>; /* PG3 */
|
allwinner,pa-gpios = <&pio 6 3 GPIO_ACTIVE_HIGH>; /* PG3 */
|
||||||
};
|
};
|
||||||
|
|
||||||
&codec_pa_pin {
|
|
||||||
pins = "PG3";
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc2 {
|
&mmc2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc2_pins_a>;
|
pinctrl-0 = <&mmc2_8bit_pins>;
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <8>;
|
bus-width = <8>;
|
||||||
non-removable;
|
non-removable;
|
||||||
@ -98,14 +92,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
i2c_lcd_pins: i2c_lcd_pin@0 {
|
|
||||||
pins = "PG10", "PG12";
|
|
||||||
function = "gpio_out";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
|
gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
|
||||||
};
|
};
|
||||||
@ -128,7 +114,3 @@
|
|||||||
/* The P66 uses the uart pins as gpios */
|
/* The P66 uses the uart pins as gpios */
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usb0_vbus_pin_a {
|
|
||||||
pins = "PB4";
|
|
||||||
};
|
|
||||||
|
@ -42,17 +42,13 @@
|
|||||||
* OTHER DEALINGS IN THE SOFTWARE.
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skeleton.dtsi"
|
|
||||||
|
|
||||||
#include "sun5i.dtsi"
|
#include "sun5i.dtsi"
|
||||||
|
|
||||||
#include <dt-bindings/thermal/thermal.h>
|
#include <dt-bindings/thermal/thermal.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
interrupt-parent = <&intc>;
|
|
||||||
|
|
||||||
thermal-zones {
|
thermal-zones {
|
||||||
cpu_thermal {
|
cpu-thermal {
|
||||||
/* milliseconds */
|
/* milliseconds */
|
||||||
polling-delay-passive = <250>;
|
polling-delay-passive = <250>;
|
||||||
polling-delay = <1000>;
|
polling-delay = <1000>;
|
||||||
@ -88,7 +84,7 @@
|
|||||||
allwinner,pipelines = <&fe0>;
|
allwinner,pipelines = <&fe0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
soc@1c00000 {
|
soc {
|
||||||
pwm: pwm@1c20e00 {
|
pwm: pwm@1c20e00 {
|
||||||
compatible = "allwinner,sun5i-a13-pwm";
|
compatible = "allwinner,sun5i-a13-pwm";
|
||||||
reg = <0x01c20e00 0xc>;
|
reg = <0x01c20e00 0xc>;
|
||||||
@ -106,15 +102,14 @@
|
|||||||
|
|
||||||
&cpu0 {
|
&cpu0 {
|
||||||
clock-latency = <244144>; /* 8 32k periods */
|
clock-latency = <244144>; /* 8 32k periods */
|
||||||
operating-points = <
|
operating-points =
|
||||||
/* kHz uV */
|
/* kHz uV */
|
||||||
1008000 1400000
|
<1008000 1400000>,
|
||||||
912000 1350000
|
<912000 1350000>,
|
||||||
864000 1300000
|
<864000 1300000>,
|
||||||
624000 1200000
|
<624000 1200000>,
|
||||||
576000 1200000
|
<576000 1200000>,
|
||||||
432000 1200000
|
<432000 1200000>;
|
||||||
>;
|
|
||||||
#cooling-cells = <2>;
|
#cooling-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -79,8 +79,6 @@
|
|||||||
|
|
||||||
mmc0_pwrseq: mmc0_pwrseq {
|
mmc0_pwrseq: mmc0_pwrseq {
|
||||||
compatible = "mmc-pwrseq-simple";
|
compatible = "mmc-pwrseq-simple";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&wifi_reg_on_pin_chip_pro>;
|
|
||||||
reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
|
reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -94,8 +92,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp209: pmic@34 {
|
axp209: pmic@34 {
|
||||||
@ -114,20 +110,16 @@
|
|||||||
#include "axp209.dtsi"
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2s0 {
|
&i2s0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2s0_mclk_pins_a>, <&i2s0_data_pins_a>;
|
pinctrl-0 = <&i2s0_mclk_pin>, <&i2s0_data_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
mmc-pwrseq = <&mmc0_pwrseq>;
|
mmc-pwrseq = <&mmc0_pwrseq>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
@ -137,12 +129,10 @@
|
|||||||
|
|
||||||
&nfc {
|
&nfc {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&nand_pins_a &nand_cs0_pins_a &nand_rb0_pins_a>;
|
pinctrl-0 = <&nand_pins &nand_cs0_pin &nand_rb0_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
nand@0 {
|
nand@0 {
|
||||||
#address-cells = <2>;
|
|
||||||
#size-cells = <2>;
|
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
allwinner,rb = <0>;
|
allwinner,rb = <0>;
|
||||||
nand-ecc-mode = "hw";
|
nand-ecc-mode = "hw";
|
||||||
@ -157,21 +147,9 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_pin_chip_pro: usb0-id-pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
};
|
|
||||||
|
|
||||||
wifi_reg_on_pin_chip_pro: wifi-reg-on-pin@0 {
|
|
||||||
pins = "PB10";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pwm {
|
&pwm {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
|
pinctrl-0 = <&pwm0_pin>, <&pwm1_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -220,19 +198,19 @@
|
|||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>, <&uart1_cts_rts_pins_a>;
|
pinctrl-0 = <&uart1_pg_pins>, <&uart1_cts_rts_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart2 {
|
&uart2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart2_pins_a>, <&uart2_cts_rts_pins_a>;
|
pinctrl-0 = <&uart2_pd_pins>, <&uart2_cts_rts_pd_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart3 {
|
&uart3 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart3_pins_a>, <&uart3_cts_rts_pins_a>;
|
pinctrl-0 = <&uart3_pg_pins>, <&uart3_cts_rts_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -253,9 +231,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
||||||
pinctrl-0 = <&usb0_id_pin_chip_pro>;
|
|
||||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb1_vbus-supply = <®_vcc5v0>;
|
usb1_vbus-supply = <®_vcc5v0>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
333
arch/arm/dts/sun5i-gr8-evb.dts
Normal file
333
arch/arm/dts/sun5i-gr8-evb.dts
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2016 Free Electrons
|
||||||
|
* Copyright 2016 NextThing Co
|
||||||
|
*
|
||||||
|
* Mylène Josserand <mylene.josserand@free-electrons.com>
|
||||||
|
*
|
||||||
|
* This file is dual-licensed: you can use it either under the terms
|
||||||
|
* of the GPL or the X11 license, at your option. Note that this dual
|
||||||
|
* licensing only applies to this file, and not this project as a
|
||||||
|
* whole.
|
||||||
|
*
|
||||||
|
* a) This file is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This file is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* Or, alternatively,
|
||||||
|
*
|
||||||
|
* b) Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation
|
||||||
|
* files (the "Software"), to deal in the Software without
|
||||||
|
* restriction, including without limitation the rights to use,
|
||||||
|
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
* sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following
|
||||||
|
* conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "sun5i-gr8.dtsi"
|
||||||
|
#include "sunxi-common-regulators.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "NextThing GR8-EVB";
|
||||||
|
compatible = "nextthing,gr8-evb", "nextthing,gr8";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
i2c0 = &i2c0;
|
||||||
|
i2c1 = &i2c1;
|
||||||
|
i2c2 = &i2c2;
|
||||||
|
serial0 = &uart1;
|
||||||
|
serial1 = &uart2;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
backlight: backlight {
|
||||||
|
compatible = "pwm-backlight";
|
||||||
|
pwms = <&pwm 0 10000 0>;
|
||||||
|
enable-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
power-supply = <®_vcc3v3>;
|
||||||
|
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||||
|
default-brightness-level = <8>;
|
||||||
|
};
|
||||||
|
|
||||||
|
sound-analog {
|
||||||
|
compatible = "simple-audio-card";
|
||||||
|
simple-audio-card,name = "gr8-evb-wm8978";
|
||||||
|
simple-audio-card,format = "i2s";
|
||||||
|
simple-audio-card,mclk-fs = <512>;
|
||||||
|
|
||||||
|
simple-audio-card,cpu {
|
||||||
|
sound-dai = <&i2s0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
simple-audio-card,codec {
|
||||||
|
sound-dai = <&wm8978>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sound-spdif {
|
||||||
|
compatible = "simple-audio-card";
|
||||||
|
simple-audio-card,name = "On-board SPDIF";
|
||||||
|
|
||||||
|
simple-audio-card,cpu {
|
||||||
|
sound-dai = <&spdif>;
|
||||||
|
};
|
||||||
|
|
||||||
|
simple-audio-card,codec {
|
||||||
|
sound-dai = <&spdif_out>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
spdif_out: spdif-out {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
compatible = "linux,spdif-dit";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&be0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&codec {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
axp209: pmic@34 {
|
||||||
|
reg = <0x34>;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The interrupt is routed through the "External Fast
|
||||||
|
* Interrupt Request" pin (ball G13 of the module)
|
||||||
|
* directly to the main interrupt controller, without
|
||||||
|
* any other controller interfering.
|
||||||
|
*/
|
||||||
|
interrupts = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
wm8978: codec@1a {
|
||||||
|
#sound-dai-cells = <0>;
|
||||||
|
compatible = "wlf,wm8978";
|
||||||
|
reg = <0x1a>;
|
||||||
|
};
|
||||||
|
|
||||||
|
pcf8563: rtc@51 {
|
||||||
|
compatible = "nxp,pcf8563";
|
||||||
|
reg = <0x51>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2s0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2s0_mclk_pin>, <&i2s0_data_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ir0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&ir0_rx_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&lradc {
|
||||||
|
vref-supply = <®_ldo2>;
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
button-190 {
|
||||||
|
label = "Volume Up";
|
||||||
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <190000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-390 {
|
||||||
|
label = "Volume Down";
|
||||||
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <390000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-600 {
|
||||||
|
label = "Menu";
|
||||||
|
linux,code = <KEY_MENU>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <600000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-800 {
|
||||||
|
label = "Search";
|
||||||
|
linux,code = <KEY_SEARCH>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <800000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-980 {
|
||||||
|
label = "Home";
|
||||||
|
linux,code = <KEY_HOMEPAGE>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <980000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-1180 {
|
||||||
|
label = "Esc";
|
||||||
|
linux,code = <KEY_ESC>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <1180000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
button-1400 {
|
||||||
|
label = "Enter";
|
||||||
|
linux,code = <KEY_ENTER>;
|
||||||
|
channel = <0>;
|
||||||
|
voltage = <1400000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
bus-width = <4>;
|
||||||
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&nfc {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&nand_pins &nand_cs0_pin &nand_rb0_pin>;
|
||||||
|
|
||||||
|
/* MLC Support sucks for now */
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&otg_sram {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pwm {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pwm0_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc2 {
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1400000>;
|
||||||
|
regulator-name = "vdd-cpu";
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc3 {
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1300000>;
|
||||||
|
regulator-name = "vdd-sys";
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo1 {
|
||||||
|
regulator-name = "vdd-rtc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo2 {
|
||||||
|
regulator-min-microvolt = <2700000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
regulator-name = "avcc";
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb1_vbus {
|
||||||
|
gpio = <&pio 6 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rtp {
|
||||||
|
allwinner,ts-attached;
|
||||||
|
};
|
||||||
|
|
||||||
|
&spdif {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&spdif_tx_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&tve0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart1_pg_pins>, <&uart1_cts_rts_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_otg {
|
||||||
|
/*
|
||||||
|
* The GR8-EVB has a somewhat interesting design. There's a
|
||||||
|
* pin supposed to control VBUS, an ID pin, a VBUS detect pin,
|
||||||
|
* so everything should work just fine.
|
||||||
|
*
|
||||||
|
* Except that the pin supposed to control VBUS is not
|
||||||
|
* connected to any controllable output, neither to the SoC
|
||||||
|
* through a GPIO or to the PMIC, and it is pulled down,
|
||||||
|
* meaning that we will never be able to enable VBUS on this
|
||||||
|
* board.
|
||||||
|
*/
|
||||||
|
dr_mode = "otg";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
||||||
|
usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
||||||
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -54,7 +54,7 @@
|
|||||||
allwinner,pipelines = <&fe0>;
|
allwinner,pipelines = <&fe0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
soc@1c00000 {
|
soc {
|
||||||
pwm: pwm@1c20e00 {
|
pwm: pwm@1c20e00 {
|
||||||
compatible = "allwinner,sun5i-a10s-pwm";
|
compatible = "allwinner,sun5i-a10s-pwm";
|
||||||
reg = <0x01c20e00 0xc>;
|
reg = <0x01c20e00 0xc>;
|
||||||
@ -98,28 +98,28 @@
|
|||||||
&pio {
|
&pio {
|
||||||
compatible = "nextthing,gr8-pinctrl";
|
compatible = "nextthing,gr8-pinctrl";
|
||||||
|
|
||||||
i2s0_data_pins_a: i2s0-data@0 {
|
i2s0_data_pins: i2s0-data-pins {
|
||||||
pins = "PB6", "PB7", "PB8", "PB9";
|
pins = "PB6", "PB7", "PB8", "PB9";
|
||||||
function = "i2s0";
|
function = "i2s0";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2s0_mclk_pins_a: i2s0-mclk@0 {
|
i2s0_mclk_pin: i2s0-mclk-pin {
|
||||||
pins = "PB5";
|
pins = "PB5";
|
||||||
function = "i2s0";
|
function = "i2s0";
|
||||||
};
|
};
|
||||||
|
|
||||||
pwm1_pins: pwm1 {
|
pwm1_pins: pwm1-pin {
|
||||||
pins = "PG13";
|
pins = "PG13";
|
||||||
function = "pwm1";
|
function = "pwm1";
|
||||||
};
|
};
|
||||||
|
|
||||||
spdif_tx_pins_a: spdif@0 {
|
spdif_tx_pin: spdif-tx-pin {
|
||||||
pins = "PB10";
|
pins = "PB10";
|
||||||
function = "spdif";
|
function = "spdif";
|
||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
uart1_cts_rts_pins_a: uart1-cts-rts@0 {
|
uart1_cts_rts_pins: uart1-cts-rts-pins {
|
||||||
pins = "PG5", "PG6";
|
pins = "PG5", "PG6";
|
||||||
function = "uart1";
|
function = "uart1";
|
||||||
};
|
};
|
||||||
|
@ -79,16 +79,12 @@
|
|||||||
|
|
||||||
mmc0_pwrseq: mmc0_pwrseq {
|
mmc0_pwrseq: mmc0_pwrseq {
|
||||||
compatible = "mmc-pwrseq-simple";
|
compatible = "mmc-pwrseq-simple";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&chip_wifi_reg_on_pin>;
|
|
||||||
reset-gpios = <&pio 2 19 GPIO_ACTIVE_LOW>; /* PC19 */
|
reset-gpios = <&pio 2 19 GPIO_ACTIVE_LOW>; /* PC19 */
|
||||||
};
|
};
|
||||||
|
|
||||||
onewire {
|
onewire {
|
||||||
compatible = "w1-gpio";
|
compatible = "w1-gpio";
|
||||||
gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */
|
gpios = <&pio 3 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PD2 */
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&chip_w1_pin>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -109,8 +105,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp209: pmic@34 {
|
axp209: pmic@34 {
|
||||||
@ -137,14 +131,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
xio: gpio@38 {
|
xio: gpio@38 {
|
||||||
@ -161,13 +151,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0_pins_a {
|
&mmc0_pins {
|
||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
mmc-pwrseq = <&mmc0_pwrseq>;
|
mmc-pwrseq = <&mmc0_pwrseq>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
@ -183,29 +171,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
chip_vbus_pin: chip_vbus_pin@0 {
|
|
||||||
pins = "PB10";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
chip_wifi_reg_on_pin: chip_wifi_reg_on_pin@0 {
|
|
||||||
pins = "PC19";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
chip_id_det_pin: chip_id_det_pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
};
|
|
||||||
|
|
||||||
chip_w1_pin: chip_w1_pin@0 {
|
|
||||||
pins = "PD2";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
regulator-min-microvolt = <1000000>;
|
regulator-min-microvolt = <1000000>;
|
||||||
regulator-max-microvolt = <1400000>;
|
regulator-max-microvolt = <1400000>;
|
||||||
@ -260,7 +225,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
®_usb0_vbus {
|
®_usb0_vbus {
|
||||||
pinctrl-0 = <&chip_vbus_pin>;
|
|
||||||
vin-supply = <®_vcc5v0>;
|
vin-supply = <®_vcc5v0>;
|
||||||
gpio = <&pio 1 10 GPIO_ACTIVE_HIGH>; /* PB10 */
|
gpio = <&pio 1 10 GPIO_ACTIVE_HIGH>; /* PB10 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@ -268,7 +232,7 @@
|
|||||||
|
|
||||||
&spi2 {
|
&spi2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&spi2_pins_a>;
|
pinctrl-0 = <&spi2_pe_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -282,14 +246,14 @@
|
|||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart3 {
|
&uart3 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart3_pins_a>,
|
pinctrl-0 = <&uart3_pg_pins>,
|
||||||
<&uart3_cts_rts_pins_a>;
|
<&uart3_cts_rts_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -303,11 +267,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&chip_id_det_pin>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_vcc5v0>;
|
usb1_vbus-supply = <®_vcc5v0>;
|
||||||
|
@ -54,7 +54,8 @@
|
|||||||
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
|
pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
|
||||||
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 = <8>;
|
default-brightness-level = <8>;
|
||||||
/* TODO: backlight uses axp gpio1 as enable pin */
|
enable-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>; /* AXP GPIO1 */
|
||||||
|
power-supply = <®_vcc3v0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
chosen {
|
chosen {
|
||||||
@ -63,8 +64,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&codec {
|
&codec {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&codec_pa_pin>;
|
|
||||||
allwinner,pa-gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10 */
|
allwinner,pa-gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -92,11 +91,10 @@
|
|||||||
*/
|
*/
|
||||||
clock-frequency = <400000>;
|
clock-frequency = <400000>;
|
||||||
|
|
||||||
touchscreen: touchscreen {
|
touchscreen: touchscreen@40 {
|
||||||
|
reg = <0x40>;
|
||||||
interrupt-parent = <&pio>;
|
interrupt-parent = <&pio>;
|
||||||
interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /* EINT11 (PG11) */
|
interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /* EINT11 (PG11) */
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&ts_power_pin>;
|
|
||||||
power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
|
power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
|
||||||
/* Tablet dts must provide reg and compatible */
|
/* Tablet dts must provide reg and compatible */
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
@ -124,7 +122,7 @@
|
|||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
|
pinctrl-0 = <&mmc0_pins>;
|
||||||
vmmc-supply = <®_vcc3v0>;
|
vmmc-supply = <®_vcc3v0>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
|
||||||
@ -135,43 +133,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
codec_pa_pin: codec_pa_pin@0 {
|
|
||||||
pins = "PG10";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin: mmc0_cd_pin@0 {
|
|
||||||
pins = "PG0";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
ts_power_pin: ts_power_pin {
|
|
||||||
pins = "PB3";
|
|
||||||
function = "gpio_out";
|
|
||||||
drive-strength = <10>;
|
|
||||||
bias-disable;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
|
|
||||||
pins = "PG1";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-down;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PG2";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_vbus_pin_a: usb0_vbus_pin@0 {
|
|
||||||
pins = "PG12";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_dcdc2 {
|
®_dcdc2 {
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-min-microvolt = <1000000>;
|
regulator-min-microvolt = <1000000>;
|
||||||
@ -210,7 +171,7 @@
|
|||||||
|
|
||||||
&uart1 {
|
&uart1 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart1_pins_b>;
|
pinctrl-0 = <&uart1_pg_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -224,10 +185,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
|
usb0_vbus_det-gpios = <&pio 6 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG1 */
|
||||||
usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
|
|
||||||
usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
|
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_ldo3>;
|
usb1_vbus-supply = <®_ldo3>;
|
||||||
|
@ -42,14 +42,14 @@
|
|||||||
* OTHER DEALINGS IN THE SOFTWARE.
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skeleton.dtsi"
|
|
||||||
|
|
||||||
#include <dt-bindings/clock/sun5i-ccu.h>
|
#include <dt-bindings/clock/sun5i-ccu.h>
|
||||||
#include <dt-bindings/dma/sun4i-a10.h>
|
#include <dt-bindings/dma/sun4i-a10.h>
|
||||||
#include <dt-bindings/reset/sun5i-ccu.h>
|
#include <dt-bindings/reset/sun5i-ccu.h>
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
interrupt-parent = <&intc>;
|
interrupt-parent = <&intc>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
cpus {
|
cpus {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -68,7 +68,7 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
framebuffer@0 {
|
framebuffer-lcd0 {
|
||||||
compatible = "allwinner,simple-framebuffer",
|
compatible = "allwinner,simple-framebuffer",
|
||||||
"simple-framebuffer";
|
"simple-framebuffer";
|
||||||
allwinner,pipeline = "de_be0-lcd0";
|
allwinner,pipeline = "de_be0-lcd0";
|
||||||
@ -77,7 +77,7 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
framebuffer@1 {
|
framebuffer-lcd0-tve0 {
|
||||||
compatible = "allwinner,simple-framebuffer",
|
compatible = "allwinner,simple-framebuffer",
|
||||||
"simple-framebuffer";
|
"simple-framebuffer";
|
||||||
allwinner,pipeline = "de_be0-lcd0-tve0";
|
allwinner,pipeline = "de_be0-lcd0-tve0";
|
||||||
@ -93,14 +93,14 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
osc24M: clk@1c20050 {
|
osc24M: clk-24M {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
clock-frequency = <24000000>;
|
clock-frequency = <24000000>;
|
||||||
clock-output-names = "osc24M";
|
clock-output-names = "osc24M";
|
||||||
};
|
};
|
||||||
|
|
||||||
osc32k: clk@0 {
|
osc32k: clk-32k {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
clock-frequency = <32768>;
|
clock-frequency = <32768>;
|
||||||
@ -108,14 +108,30 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
soc@1c00000 {
|
reserved-memory {
|
||||||
compatible = "simple-bus";
|
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
sram-controller@1c00000 {
|
/* Address must be kept in the lower 256 MiBs of DRAM for VE. */
|
||||||
compatible = "allwinner,sun4i-a10-sram-controller";
|
default-pool {
|
||||||
|
compatible = "shared-dma-pool";
|
||||||
|
size = <0x6000000>;
|
||||||
|
alloc-ranges = <0x40000000 0x10000000>;
|
||||||
|
reusable;
|
||||||
|
linux,cma-default;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
soc {
|
||||||
|
compatible = "simple-bus";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
dma-ranges;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
system-control@1c00000 {
|
||||||
|
compatible = "allwinner,sun5i-a13-system-control";
|
||||||
reg = <0x01c00000 0x30>;
|
reg = <0x01c00000 0x30>;
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
@ -127,12 +143,13 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges = <0 0x00000000 0xc000>;
|
ranges = <0 0x00000000 0xc000>;
|
||||||
};
|
|
||||||
|
|
||||||
emac_sram: sram-section@8000 {
|
emac_sram: sram-section@8000 {
|
||||||
compatible = "allwinner,sun4i-a10-sram-a3-a4";
|
compatible = "allwinner,sun5i-a13-sram-a3-a4",
|
||||||
reg = <0x8000 0x4000>;
|
"allwinner,sun4i-a10-sram-a3-a4";
|
||||||
status = "disabled";
|
reg = <0x8000 0x4000>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
sram_d: sram@10000 {
|
sram_d: sram@10000 {
|
||||||
@ -143,11 +160,36 @@
|
|||||||
ranges = <0 0x00010000 0x1000>;
|
ranges = <0 0x00010000 0x1000>;
|
||||||
|
|
||||||
otg_sram: sram-section@0 {
|
otg_sram: sram-section@0 {
|
||||||
compatible = "allwinner,sun4i-a10-sram-d";
|
compatible = "allwinner,sun5i-a13-sram-d",
|
||||||
|
"allwinner,sun4i-a10-sram-d";
|
||||||
reg = <0x0000 0x1000>;
|
reg = <0x0000 0x1000>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sram_c: sram@1d00000 {
|
||||||
|
compatible = "mmio-sram";
|
||||||
|
reg = <0x01d00000 0xd0000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0 0x01d00000 0xd0000>;
|
||||||
|
|
||||||
|
ve_sram: sram-section@0 {
|
||||||
|
compatible = "allwinner,sun5i-a13-sram-c1",
|
||||||
|
"allwinner,sun4i-a10-sram-c1";
|
||||||
|
reg = <0x000000 0x80000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mbus: dram-controller@1c01000 {
|
||||||
|
compatible = "allwinner,sun5i-a13-mbus";
|
||||||
|
reg = <0x01c01000 0x1000>;
|
||||||
|
clocks = <&ccu CLK_MBUS>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
dma-ranges = <0x00000000 0x40000000 0x20000000>;
|
||||||
|
#interconnect-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
dma: dma-controller@1c02000 {
|
dma: dma-controller@1c02000 {
|
||||||
@ -158,7 +200,7 @@
|
|||||||
#dma-cells = <2>;
|
#dma-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
nfc: nand@1c03000 {
|
nfc: nand-controller@1c03000 {
|
||||||
compatible = "allwinner,sun4i-a10-nand";
|
compatible = "allwinner,sun4i-a10-nand";
|
||||||
reg = <0x01c03000 0x1000>;
|
reg = <0x01c03000 0x1000>;
|
||||||
interrupts = <37>;
|
interrupts = <37>;
|
||||||
@ -207,11 +249,8 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
port {
|
port {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
tve0_in_tcon0: endpoint@0 {
|
tve0_in_tcon0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&tcon0_out_tve0>;
|
remote-endpoint = <&tcon0_out_tve0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -238,6 +277,7 @@
|
|||||||
compatible = "allwinner,sun5i-a13-tcon";
|
compatible = "allwinner,sun5i-a13-tcon";
|
||||||
reg = <0x01c0c000 0x1000>;
|
reg = <0x01c0c000 0x1000>;
|
||||||
interrupts = <44>;
|
interrupts = <44>;
|
||||||
|
dmas = <&dma SUN4I_DMA_DEDICATED 14>;
|
||||||
resets = <&ccu RST_LCD>;
|
resets = <&ccu RST_LCD>;
|
||||||
reset-names = "lcd";
|
reset-names = "lcd";
|
||||||
clocks = <&ccu CLK_AHB_LCD>,
|
clocks = <&ccu CLK_AHB_LCD>,
|
||||||
@ -247,6 +287,7 @@
|
|||||||
"tcon-ch0",
|
"tcon-ch0",
|
||||||
"tcon-ch1";
|
"tcon-ch1";
|
||||||
clock-output-names = "tcon-pixel-clock";
|
clock-output-names = "tcon-pixel-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
@ -254,12 +295,9 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
tcon0_in: port@0 {
|
tcon0_in: port@0 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
|
||||||
tcon0_in_be0: endpoint@0 {
|
tcon0_in_be0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&be0_out_tcon0>;
|
remote-endpoint = <&be0_out_tcon0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -278,12 +316,25 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
video-codec@1c0e000 {
|
||||||
|
compatible = "allwinner,sun5i-a13-video-engine";
|
||||||
|
reg = <0x01c0e000 0x1000>;
|
||||||
|
clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
|
||||||
|
<&ccu CLK_DRAM_VE>;
|
||||||
|
clock-names = "ahb", "mod", "ram";
|
||||||
|
resets = <&ccu RST_VE>;
|
||||||
|
interrupts = <53>;
|
||||||
|
allwinner,sram = <&ve_sram 1>;
|
||||||
|
};
|
||||||
|
|
||||||
mmc0: mmc@1c0f000 {
|
mmc0: mmc@1c0f000 {
|
||||||
compatible = "allwinner,sun5i-a13-mmc";
|
compatible = "allwinner,sun5i-a13-mmc";
|
||||||
reg = <0x01c0f000 0x1000>;
|
reg = <0x01c0f000 0x1000>;
|
||||||
clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
|
clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
|
||||||
clock-names = "ahb", "mmc";
|
clock-names = "ahb", "mmc";
|
||||||
interrupts = <32>;
|
interrupts = <32>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc0_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -321,13 +372,14 @@
|
|||||||
phy-names = "usb";
|
phy-names = "usb";
|
||||||
extcon = <&usbphy 0>;
|
extcon = <&usbphy 0>;
|
||||||
allwinner,sram = <&otg_sram 1>;
|
allwinner,sram = <&otg_sram 1>;
|
||||||
|
dr_mode = "otg";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
usbphy: phy@1c13400 {
|
usbphy: phy@1c13400 {
|
||||||
#phy-cells = <1>;
|
#phy-cells = <1>;
|
||||||
compatible = "allwinner,sun5i-a13-usb-phy";
|
compatible = "allwinner,sun5i-a13-usb-phy";
|
||||||
reg = <0x01c13400 0x10 0x01c14800 0x4>;
|
reg = <0x01c13400 0x10>, <0x01c14800 0x4>;
|
||||||
reg-names = "phy_ctrl", "pmu1";
|
reg-names = "phy_ctrl", "pmu1";
|
||||||
clocks = <&ccu CLK_USB_PHY0>;
|
clocks = <&ccu CLK_USB_PHY0>;
|
||||||
clock-names = "usb_phy";
|
clock-names = "usb_phy";
|
||||||
@ -404,7 +456,7 @@
|
|||||||
#interrupt-cells = <3>;
|
#interrupt-cells = <3>;
|
||||||
#gpio-cells = <3>;
|
#gpio-cells = <3>;
|
||||||
|
|
||||||
emac_pins_a: emac0@0 {
|
emac_pd_pins: emac-pd-pins {
|
||||||
pins = "PD6", "PD7", "PD10",
|
pins = "PD6", "PD7", "PD10",
|
||||||
"PD11", "PD12", "PD13", "PD14",
|
"PD11", "PD12", "PD13", "PD14",
|
||||||
"PD15", "PD18", "PD19", "PD20",
|
"PD15", "PD18", "PD19", "PD20",
|
||||||
@ -413,27 +465,27 @@
|
|||||||
function = "emac";
|
function = "emac";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c0_pins_a: i2c0@0 {
|
i2c0_pins: i2c0-pins {
|
||||||
pins = "PB0", "PB1";
|
pins = "PB0", "PB1";
|
||||||
function = "i2c0";
|
function = "i2c0";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c1_pins_a: i2c1@0 {
|
i2c1_pins: i2c1-pins {
|
||||||
pins = "PB15", "PB16";
|
pins = "PB15", "PB16";
|
||||||
function = "i2c1";
|
function = "i2c1";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c2_pins_a: i2c2@0 {
|
i2c2_pins: i2c2-pins {
|
||||||
pins = "PB17", "PB18";
|
pins = "PB17", "PB18";
|
||||||
function = "i2c2";
|
function = "i2c2";
|
||||||
};
|
};
|
||||||
|
|
||||||
ir0_rx_pins_a: ir0@0 {
|
ir0_rx_pin: ir0-rx-pin {
|
||||||
pins = "PB4";
|
pins = "PB4";
|
||||||
function = "ir0";
|
function = "ir0";
|
||||||
};
|
};
|
||||||
|
|
||||||
lcd_rgb565_pins: lcd_rgb565@0 {
|
lcd_rgb565_pins: lcd-rgb565-pins {
|
||||||
pins = "PD3", "PD4", "PD5", "PD6", "PD7",
|
pins = "PD3", "PD4", "PD5", "PD6", "PD7",
|
||||||
"PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
|
"PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
|
||||||
"PD19", "PD20", "PD21", "PD22", "PD23",
|
"PD19", "PD20", "PD21", "PD22", "PD23",
|
||||||
@ -441,7 +493,7 @@
|
|||||||
function = "lcd0";
|
function = "lcd0";
|
||||||
};
|
};
|
||||||
|
|
||||||
lcd_rgb666_pins: lcd_rgb666@0 {
|
lcd_rgb666_pins: lcd-rgb666-pins {
|
||||||
pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
|
pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
|
||||||
"PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
|
"PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
|
||||||
"PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
|
"PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
|
||||||
@ -449,7 +501,7 @@
|
|||||||
function = "lcd0";
|
function = "lcd0";
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc0_pins_a: mmc0@0 {
|
mmc0_pins: mmc0-pins {
|
||||||
pins = "PF0", "PF1", "PF2", "PF3",
|
pins = "PF0", "PF1", "PF2", "PF3",
|
||||||
"PF4", "PF5";
|
"PF4", "PF5";
|
||||||
function = "mmc0";
|
function = "mmc0";
|
||||||
@ -457,7 +509,15 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc2_pins_a: mmc2@0 {
|
mmc2_4bit_pc_pins: mmc2-4bit-pc-pins {
|
||||||
|
pins = "PC6", "PC7", "PC8", "PC9",
|
||||||
|
"PC10", "PC11";
|
||||||
|
function = "mmc2";
|
||||||
|
drive-strength = <30>;
|
||||||
|
bias-pull-up;
|
||||||
|
};
|
||||||
|
|
||||||
|
mmc2_8bit_pins: mmc2-8bit-pins {
|
||||||
pins = "PC6", "PC7", "PC8", "PC9",
|
pins = "PC6", "PC7", "PC8", "PC9",
|
||||||
"PC10", "PC11", "PC12", "PC13",
|
"PC10", "PC11", "PC12", "PC13",
|
||||||
"PC14", "PC15";
|
"PC14", "PC15";
|
||||||
@ -466,15 +526,7 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc2_4bit_pins_a: mmc2-4bit@0 {
|
nand_pins: nand-pins {
|
||||||
pins = "PC6", "PC7", "PC8", "PC9",
|
|
||||||
"PC10", "PC11";
|
|
||||||
function = "mmc2";
|
|
||||||
drive-strength = <30>;
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
nand_pins_a: nand-base0@0 {
|
|
||||||
pins = "PC0", "PC1", "PC2",
|
pins = "PC0", "PC1", "PC2",
|
||||||
"PC5", "PC8", "PC9", "PC10",
|
"PC5", "PC8", "PC9", "PC10",
|
||||||
"PC11", "PC12", "PC13", "PC14",
|
"PC11", "PC12", "PC13", "PC14",
|
||||||
@ -482,72 +534,79 @@
|
|||||||
function = "nand0";
|
function = "nand0";
|
||||||
};
|
};
|
||||||
|
|
||||||
nand_cs0_pins_a: nand-cs@0 {
|
nand_cs0_pin: nand-cs0-pin {
|
||||||
pins = "PC4";
|
pins = "PC4";
|
||||||
function = "nand0";
|
function = "nand0";
|
||||||
};
|
};
|
||||||
|
|
||||||
nand_rb0_pins_a: nand-rb@0 {
|
nand_rb0_pin: nand-rb0-pin {
|
||||||
pins = "PC6";
|
pins = "PC6";
|
||||||
function = "nand0";
|
function = "nand0";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi2_pins_a: spi2@0 {
|
pwm0_pin: pwm0-pin {
|
||||||
|
pins = "PB2";
|
||||||
|
function = "pwm";
|
||||||
|
};
|
||||||
|
|
||||||
|
spi2_pe_pins: spi2-pe-pins {
|
||||||
pins = "PE1", "PE2", "PE3";
|
pins = "PE1", "PE2", "PE3";
|
||||||
function = "spi2";
|
function = "spi2";
|
||||||
};
|
};
|
||||||
|
|
||||||
spi2_cs0_pins_a: spi2-cs0@0 {
|
spi2_cs0_pe_pin: spi2-cs0-pe-pin {
|
||||||
pins = "PE0";
|
pins = "PE0";
|
||||||
function = "spi2";
|
function = "spi2";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart1_pins_a: uart1@0 {
|
uart1_pe_pins: uart1-pe-pins {
|
||||||
pins = "PE10", "PE11";
|
pins = "PE10", "PE11";
|
||||||
function = "uart1";
|
function = "uart1";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart1_pins_b: uart1@1 {
|
uart1_pg_pins: uart1-pg-pins {
|
||||||
pins = "PG3", "PG4";
|
pins = "PG3", "PG4";
|
||||||
function = "uart1";
|
function = "uart1";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart2_pins_a: uart2@0 {
|
uart2_pd_pins: uart2-pd-pins {
|
||||||
pins = "PD2", "PD3";
|
pins = "PD2", "PD3";
|
||||||
function = "uart2";
|
function = "uart2";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart2_cts_rts_pins_a: uart2-cts-rts@0 {
|
uart2_cts_rts_pd_pins: uart2-cts-rts-pd-pins {
|
||||||
pins = "PD4", "PD5";
|
pins = "PD4", "PD5";
|
||||||
function = "uart2";
|
function = "uart2";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart3_pins_a: uart3@0 {
|
uart3_pg_pins: uart3-pg-pins {
|
||||||
pins = "PG9", "PG10";
|
pins = "PG9", "PG10";
|
||||||
function = "uart3";
|
function = "uart3";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart3_cts_rts_pins_a: uart3-cts-rts@0 {
|
uart3_cts_rts_pg_pins: uart3-cts-rts-pg-pins {
|
||||||
pins = "PG11", "PG12";
|
pins = "PG11", "PG12";
|
||||||
function = "uart3";
|
function = "uart3";
|
||||||
};
|
};
|
||||||
|
|
||||||
pwm0_pins: pwm0 {
|
|
||||||
pins = "PB2";
|
|
||||||
function = "pwm";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
timer@1c20c00 {
|
timer@1c20c00 {
|
||||||
compatible = "allwinner,sun4i-a10-timer";
|
compatible = "allwinner,sun4i-a10-timer";
|
||||||
reg = <0x01c20c00 0x90>;
|
reg = <0x01c20c00 0x90>;
|
||||||
interrupts = <22>;
|
interrupts = <22>,
|
||||||
|
<23>,
|
||||||
|
<24>,
|
||||||
|
<25>,
|
||||||
|
<67>,
|
||||||
|
<68>;
|
||||||
clocks = <&ccu CLK_HOSC>;
|
clocks = <&ccu CLK_HOSC>;
|
||||||
};
|
};
|
||||||
|
|
||||||
wdt: watchdog@1c20c90 {
|
wdt: watchdog@1c20c90 {
|
||||||
compatible = "allwinner,sun4i-a10-wdt";
|
compatible = "allwinner,sun4i-a10-wdt";
|
||||||
reg = <0x01c20c90 0x10>;
|
reg = <0x01c20c90 0x10>;
|
||||||
|
interrupts = <24>;
|
||||||
|
clocks = <&osc24M>;
|
||||||
};
|
};
|
||||||
|
|
||||||
ir0: ir@1c21800 {
|
ir0: ir@1c21800 {
|
||||||
@ -636,6 +695,8 @@
|
|||||||
reg = <0x01c2ac00 0x400>;
|
reg = <0x01c2ac00 0x400>;
|
||||||
interrupts = <7>;
|
interrupts = <7>;
|
||||||
clocks = <&ccu CLK_APB1_I2C0>;
|
clocks = <&ccu CLK_APB1_I2C0>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -646,6 +707,8 @@
|
|||||||
reg = <0x01c2b000 0x400>;
|
reg = <0x01c2b000 0x400>;
|
||||||
interrupts = <8>;
|
interrupts = <8>;
|
||||||
clocks = <&ccu CLK_APB1_I2C1>;
|
clocks = <&ccu CLK_APB1_I2C1>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c1_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -656,11 +719,25 @@
|
|||||||
reg = <0x01c2b400 0x400>;
|
reg = <0x01c2b400 0x400>;
|
||||||
interrupts = <9>;
|
interrupts = <9>;
|
||||||
clocks = <&ccu CLK_APB1_I2C2>;
|
clocks = <&ccu CLK_APB1_I2C2>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c2_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mali: gpu@1c40000 {
|
||||||
|
compatible = "allwinner,sun4i-a10-mali", "arm,mali-400";
|
||||||
|
reg = <0x01c40000 0x10000>;
|
||||||
|
interrupts = <69>, <70>, <71>, <72>, <73>;
|
||||||
|
interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pmu";
|
||||||
|
clocks = <&ccu CLK_AHB_GPU>, <&ccu CLK_GPU>;
|
||||||
|
clock-names = "bus", "core";
|
||||||
|
resets = <&ccu RST_GPU>;
|
||||||
|
assigned-clocks = <&ccu CLK_GPU>;
|
||||||
|
assigned-clock-rates = <320000000>;
|
||||||
|
};
|
||||||
|
|
||||||
timer@1c60000 {
|
timer@1c60000 {
|
||||||
compatible = "allwinner,sun5i-a13-hstimer";
|
compatible = "allwinner,sun5i-a13-hstimer";
|
||||||
reg = <0x01c60000 0x1000>;
|
reg = <0x01c60000 0x1000>;
|
||||||
@ -677,6 +754,8 @@
|
|||||||
clock-names = "ahb", "mod",
|
clock-names = "ahb", "mod",
|
||||||
"ram";
|
"ram";
|
||||||
resets = <&ccu RST_DE_FE>;
|
resets = <&ccu RST_DE_FE>;
|
||||||
|
interconnects = <&mbus 19>;
|
||||||
|
interconnect-names = "dma-mem";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
@ -684,12 +763,9 @@
|
|||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
fe0_out: port@1 {
|
fe0_out: port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
|
|
||||||
fe0_out_be0: endpoint@0 {
|
fe0_out_be0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&be0_in_fe0>;
|
remote-endpoint = <&be0_in_fe0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -705,33 +781,26 @@
|
|||||||
clock-names = "ahb", "mod",
|
clock-names = "ahb", "mod",
|
||||||
"ram";
|
"ram";
|
||||||
resets = <&ccu RST_DE_BE>;
|
resets = <&ccu RST_DE_BE>;
|
||||||
|
interconnects = <&mbus 18>;
|
||||||
|
interconnect-names = "dma-mem";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
assigned-clocks = <&ccu CLK_DE_BE>;
|
|
||||||
assigned-clock-rates = <300000000>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
be0_in: port@0 {
|
be0_in: port@0 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
|
||||||
be0_in_fe0: endpoint@0 {
|
be0_in_fe0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&fe0_out_be0>;
|
remote-endpoint = <&fe0_out_be0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
be0_out: port@1 {
|
be0_out: port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
|
|
||||||
be0_out_tcon0: endpoint@0 {
|
be0_out_tcon0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&tcon0_in_be0>;
|
remote-endpoint = <&tcon0_in_be0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -65,22 +65,14 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb1_vbus_pin_a: usb1_vbus_pin@0 {
|
|
||||||
pins = "PH27";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-0 = <&usb1_vbus_pin_a>;
|
|
||||||
gpio = <&pio 7 27 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 7 27 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,13 +60,11 @@
|
|||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c_lcd: i2c@0 {
|
i2c_lcd: i2c {
|
||||||
/* The lcd panel i2c interface is hooked up via gpios */
|
/* The lcd panel i2c interface is hooked up via gpios */
|
||||||
compatible = "i2c-gpio";
|
compatible = "i2c-gpio";
|
||||||
pinctrl-names = "default";
|
sda-gpios = <&pio 0 23 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PA23 */
|
||||||
pinctrl-0 = <&i2c_lcd_pins>;
|
scl-gpios = <&pio 0 24 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PA24 */
|
||||||
gpios = <&pio 0 23 GPIO_ACTIVE_HIGH>, /* PA23, sda */
|
|
||||||
<&pio 0 24 GPIO_ACTIVE_HIGH>; /* PA24, scl */
|
|
||||||
i2c-gpio,delay-us = <5>;
|
i2c-gpio,delay-us = <5>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -77,31 +75,21 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_rgmii_a>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "fail";
|
status = "fail";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
mma8452: mma8452@1d {
|
mma8452: mma8452@1d {
|
||||||
@ -112,48 +100,27 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_colombus>;
|
|
||||||
vmmc-supply = <®_vcc3v0>;
|
vmmc-supply = <®_vcc3v0>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0_pins_a {
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
&pio {
|
|
||||||
mmc0_cd_pin_colombus: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA8";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb2_vbus_pin_colombus: usb2_vbus_pin@0 {
|
|
||||||
pins = "PH24";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
i2c_lcd_pins: i2c_lcd_pin@0 {
|
|
||||||
pins = "PA23", "PA24";
|
|
||||||
function = "gpio_out";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb2_vbus {
|
®_usb2_vbus {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&usb2_vbus_pin_colombus>;
|
|
||||||
gpio = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -86,31 +86,23 @@
|
|||||||
vga-dac {
|
vga-dac {
|
||||||
compatible = "dumb-vga-dac";
|
compatible = "dumb-vga-dac";
|
||||||
vdd-supply = <®_vga_3v3>;
|
vdd-supply = <®_vga_3v3>;
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
port@0 {
|
port@0 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
|
||||||
vga_dac_in: endpoint@0 {
|
vga_dac_in: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&tcon0_out_vga>;
|
remote-endpoint = <&tcon0_out_vga>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
port@1 {
|
port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
|
|
||||||
vga_dac_out: endpoint@0 {
|
vga_dac_out: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&vga_con_in>;
|
remote-endpoint = <&vga_con_in>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -160,17 +152,10 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_rgmii_a>, <&gmac_phy_reset_pin_hummingbird>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
snps,reset-gpio = <&pio 0 21 GPIO_ACTIVE_HIGH>;
|
|
||||||
snps,reset-active-low;
|
|
||||||
snps,reset-delays-us = <0 10000 30000>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -184,21 +169,15 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
/* pull-ups and devices require AXP221 DLDO3 */
|
/* pull-ups and devices require AXP221 DLDO3 */
|
||||||
status = "failed";
|
status = "failed";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
pcf8563: rtc@51 {
|
pcf8563: rtc@51 {
|
||||||
@ -209,27 +188,27 @@
|
|||||||
|
|
||||||
&ir {
|
&ir {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
reset-gpios = <&pio 0 21 GPIO_ACTIVE_LOW>;
|
||||||
|
reset-assert-us = <10000>;
|
||||||
|
reset-deassert-us = <30000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_hummingbird>;
|
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0_pins_a {
|
|
||||||
/* external pull-ups missing for some pins */
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc1 {
|
&mmc1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc1_pins_a>, <&wifi_reset_pin_hummingbird>;
|
|
||||||
vmmc-supply = <®_aldo1>;
|
vmmc-supply = <®_aldo1>;
|
||||||
mmc-pwrseq = <&wifi_pwrseq>;
|
mmc-pwrseq = <&wifi_pwrseq>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
@ -241,31 +220,13 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
gmac_phy_reset_pin_hummingbird: gmac_phy_reset_pin@0 {
|
|
||||||
pins = "PA21";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_hummingbird: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA8";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
wifi_reset_pin_hummingbird: wifi_reset_pin@0 {
|
|
||||||
pins = "PG10";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&p2wi {
|
&p2wi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
x-powers,drive-vbus-en;
|
x-powers,drive-vbus-en;
|
||||||
};
|
};
|
||||||
@ -354,7 +315,7 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -368,8 +329,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
usb0_id_det-gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
||||||
usb0_vbus_det-gpio = <&pio 0 16 GPIO_ACTIVE_HIGH>; /* PA16 */
|
usb0_vbus_det-gpios = <&pio 0 16 GPIO_ACTIVE_HIGH>; /* PA16 */
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb0_vbus-supply = <®_drivevbus>;
|
usb0_vbus-supply = <®_drivevbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
|
@ -71,10 +71,8 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pins_i7>;
|
|
||||||
|
|
||||||
blue {
|
led {
|
||||||
label = "i7:blue:usr";
|
label = "i7:blue:usr";
|
||||||
gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -118,14 +116,10 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_mii_a>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -140,48 +134,31 @@
|
|||||||
|
|
||||||
&ir {
|
&ir {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_i7>;
|
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
cd-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
led_pins_i7: led_pins@0 {
|
|
||||||
pins = "PH13";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_i7: mmc0_cd_pin@0 {
|
|
||||||
pins = "PH22";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb1_vbus_pin_i7: usb1_vbus_pin@0 {
|
|
||||||
pins = "PC27";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&usb1_vbus_pin_i7>;
|
|
||||||
gpio = <&pio 2 27 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 2 27 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&spdif {
|
&spdif {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&spdif_pins_a>;
|
pinctrl-0 = <&spdif_tx_pin>;
|
||||||
spdif-out = "okay";
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -191,7 +168,7 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,10 +60,8 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pins_m9>;
|
|
||||||
|
|
||||||
blue {
|
led {
|
||||||
label = "m9:blue:pwr";
|
label = "m9:blue:pwr";
|
||||||
gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -85,26 +83,26 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_mii_a>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
phy-supply = <®_dldo1>;
|
phy-supply = <®_dldo1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ir {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
phy1: ethernet-phy@1 {
|
phy1: ethernet-phy@1 {
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&ir {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>;
|
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
cd-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
||||||
@ -117,31 +115,13 @@
|
|||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "axp22x.dtsi"
|
#include "axp22x.dtsi"
|
||||||
|
|
||||||
&pio {
|
|
||||||
led_pins_m9: led_pins@0 {
|
|
||||||
pins = "PH13";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_m9: mmc0_cd_pin@0 {
|
|
||||||
pins = "PH22";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb1_vbus_pin_m9: usb1_vbus_pin@0 {
|
|
||||||
pins = "PC27";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_aldo1 {
|
®_aldo1 {
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
@ -215,15 +195,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&usb1_vbus_pin_m9>;
|
|
||||||
gpio = <&pio 2 27 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 2 27 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,10 +60,8 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pins_m9>;
|
|
||||||
|
|
||||||
blue {
|
led {
|
||||||
label = "a1000g:blue:pwr";
|
label = "a1000g:blue:pwr";
|
||||||
gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -85,26 +83,26 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_mii_a>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
phy-supply = <®_dldo1>;
|
phy-supply = <®_dldo1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ir {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
phy1: ethernet-phy@1 {
|
phy1: ethernet-phy@1 {
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&ir {
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
|
||||||
status = "okay";
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>;
|
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
cd-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 */
|
||||||
@ -117,31 +115,13 @@
|
|||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "axp22x.dtsi"
|
#include "axp22x.dtsi"
|
||||||
|
|
||||||
&pio {
|
|
||||||
led_pins_m9: led_pins@0 {
|
|
||||||
pins = "PH13";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_m9: mmc0_cd_pin@0 {
|
|
||||||
pins = "PH22";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb1_vbus_pin_m9: usb1_vbus_pin@0 {
|
|
||||||
pins = "PC27";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_aldo1 {
|
®_aldo1 {
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
@ -215,15 +195,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
®_usb1_vbus {
|
®_usb1_vbus {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&usb1_vbus_pin_m9>;
|
|
||||||
gpio = <&pio 2 27 GPIO_ACTIVE_HIGH>;
|
gpio = <&pio 2 27 GPIO_ACTIVE_HIGH>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,6 +6,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
#include "sun6i-a31.dtsi"
|
#include "sun6i-a31.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@ -19,6 +22,15 @@
|
|||||||
chosen {
|
chosen {
|
||||||
stdout-path = "serial0:115200n8";
|
stdout-path = "serial0:115200n8";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
reg_usb1_vbus: usb1-vbus {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
regulator-name = "usb1-vbus";
|
||||||
|
regulator-min-microvolt = <5000000>;
|
||||||
|
regulator-max-microvolt = <5000000>;
|
||||||
|
enable-active-high;
|
||||||
|
gpio = <&pio 7 24 GPIO_ACTIVE_HIGH>; /* PH24 */
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&ehci0 {
|
&ehci0 {
|
||||||
@ -31,11 +43,13 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_rgmii_a>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy = <&phy1>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
phy1: ethernet-phy@1 {
|
phy1: ethernet-phy@1 {
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
};
|
};
|
||||||
@ -51,6 +65,11 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -42,8 +42,6 @@
|
|||||||
* OTHER DEALINGS IN THE SOFTWARE.
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skeleton.dtsi"
|
|
||||||
|
|
||||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
#include <dt-bindings/thermal/thermal.h>
|
#include <dt-bindings/thermal/thermal.h>
|
||||||
|
|
||||||
@ -52,6 +50,8 @@
|
|||||||
|
|
||||||
/ {
|
/ {
|
||||||
interrupt-parent = <&gic>;
|
interrupt-parent = <&gic>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
ethernet0 = &gmac;
|
ethernet0 = &gmac;
|
||||||
@ -62,7 +62,7 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
simplefb_hdmi: framebuffer@0 {
|
simplefb_hdmi: framebuffer-lcd0-hdmi {
|
||||||
compatible = "allwinner,simple-framebuffer",
|
compatible = "allwinner,simple-framebuffer",
|
||||||
"simple-framebuffer";
|
"simple-framebuffer";
|
||||||
allwinner,pipeline = "de_be0-lcd0-hdmi";
|
allwinner,pipeline = "de_be0-lcd0-hdmi";
|
||||||
@ -73,7 +73,7 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
simplefb_lcd: framebuffer@1 {
|
simplefb_lcd: framebuffer-lcd0 {
|
||||||
compatible = "allwinner,simple-framebuffer",
|
compatible = "allwinner,simple-framebuffer",
|
||||||
"simple-framebuffer";
|
"simple-framebuffer";
|
||||||
allwinner,pipeline = "de_be0-lcd0";
|
allwinner,pipeline = "de_be0-lcd0";
|
||||||
@ -105,37 +105,63 @@
|
|||||||
reg = <0>;
|
reg = <0>;
|
||||||
clocks = <&ccu CLK_CPU>;
|
clocks = <&ccu CLK_CPU>;
|
||||||
clock-latency = <244144>; /* 8 32k periods */
|
clock-latency = <244144>; /* 8 32k periods */
|
||||||
operating-points = <
|
operating-points =
|
||||||
/* kHz uV */
|
/* kHz uV */
|
||||||
1008000 1200000
|
<1008000 1200000>,
|
||||||
864000 1200000
|
<864000 1200000>,
|
||||||
720000 1100000
|
<720000 1100000>,
|
||||||
480000 1000000
|
<480000 1000000>;
|
||||||
>;
|
|
||||||
#cooling-cells = <2>;
|
#cooling-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
cpu@1 {
|
cpu1: cpu@1 {
|
||||||
compatible = "arm,cortex-a7";
|
compatible = "arm,cortex-a7";
|
||||||
device_type = "cpu";
|
device_type = "cpu";
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
|
clocks = <&ccu CLK_CPU>;
|
||||||
|
clock-latency = <244144>; /* 8 32k periods */
|
||||||
|
operating-points =
|
||||||
|
/* kHz uV */
|
||||||
|
<1008000 1200000>,
|
||||||
|
<864000 1200000>,
|
||||||
|
<720000 1100000>,
|
||||||
|
<480000 1000000>;
|
||||||
|
#cooling-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
cpu@2 {
|
cpu2: cpu@2 {
|
||||||
compatible = "arm,cortex-a7";
|
compatible = "arm,cortex-a7";
|
||||||
device_type = "cpu";
|
device_type = "cpu";
|
||||||
reg = <2>;
|
reg = <2>;
|
||||||
|
clocks = <&ccu CLK_CPU>;
|
||||||
|
clock-latency = <244144>; /* 8 32k periods */
|
||||||
|
operating-points =
|
||||||
|
/* kHz uV */
|
||||||
|
<1008000 1200000>,
|
||||||
|
<864000 1200000>,
|
||||||
|
<720000 1100000>,
|
||||||
|
<480000 1000000>;
|
||||||
|
#cooling-cells = <2>;
|
||||||
};
|
};
|
||||||
|
|
||||||
cpu@3 {
|
cpu3: cpu@3 {
|
||||||
compatible = "arm,cortex-a7";
|
compatible = "arm,cortex-a7";
|
||||||
device_type = "cpu";
|
device_type = "cpu";
|
||||||
reg = <3>;
|
reg = <3>;
|
||||||
|
clocks = <&ccu CLK_CPU>;
|
||||||
|
clock-latency = <244144>; /* 8 32k periods */
|
||||||
|
operating-points =
|
||||||
|
/* kHz uV */
|
||||||
|
<1008000 1200000>,
|
||||||
|
<864000 1200000>,
|
||||||
|
<720000 1100000>,
|
||||||
|
<480000 1000000>;
|
||||||
|
#cooling-cells = <2>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
thermal-zones {
|
thermal-zones {
|
||||||
cpu_thermal {
|
cpu-thermal {
|
||||||
/* milliseconds */
|
/* milliseconds */
|
||||||
polling-delay-passive = <250>;
|
polling-delay-passive = <250>;
|
||||||
polling-delay = <1000>;
|
polling-delay = <1000>;
|
||||||
@ -144,7 +170,10 @@
|
|||||||
cooling-maps {
|
cooling-maps {
|
||||||
map0 {
|
map0 {
|
||||||
trip = <&cpu_alert0>;
|
trip = <&cpu_alert0>;
|
||||||
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
||||||
|
<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -166,12 +195,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
memory {
|
|
||||||
reg = <0x40000000 0x80000000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
pmu {
|
pmu {
|
||||||
compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu";
|
compatible = "arm,cortex-a7-pmu";
|
||||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
@ -183,17 +208,20 @@
|
|||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
ranges;
|
ranges;
|
||||||
|
|
||||||
osc24M: osc24M {
|
osc24M: clk-24M {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
clock-frequency = <24000000>;
|
clock-frequency = <24000000>;
|
||||||
|
clock-accuracy = <50000>;
|
||||||
|
clock-output-names = "osc24M";
|
||||||
};
|
};
|
||||||
|
|
||||||
osc32k: clk@0 {
|
osc32k: clk-32k {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
clock-frequency = <32768>;
|
clock-frequency = <32768>;
|
||||||
clock-output-names = "osc32k";
|
clock-accuracy = <50000>;
|
||||||
|
clock-output-names = "ext_osc32k";
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -205,14 +233,14 @@
|
|||||||
* The actual TX clock rate is not controlled by the
|
* The actual TX clock rate is not controlled by the
|
||||||
* gmac_tx clock.
|
* gmac_tx clock.
|
||||||
*/
|
*/
|
||||||
mii_phy_tx_clk: clk@1 {
|
mii_phy_tx_clk: clk-mii-phy-tx {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
clock-frequency = <25000000>;
|
clock-frequency = <25000000>;
|
||||||
clock-output-names = "mii_phy_tx";
|
clock-output-names = "mii_phy_tx";
|
||||||
};
|
};
|
||||||
|
|
||||||
gmac_int_tx_clk: clk@2 {
|
gmac_int_tx_clk: clk-gmac-int-tx {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "fixed-clock";
|
compatible = "fixed-clock";
|
||||||
clock-frequency = <125000000>;
|
clock-frequency = <125000000>;
|
||||||
@ -234,7 +262,7 @@
|
|||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
soc@1c00000 {
|
soc {
|
||||||
compatible = "simple-bus";
|
compatible = "simple-bus";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
@ -253,15 +281,21 @@
|
|||||||
compatible = "allwinner,sun6i-a31-tcon";
|
compatible = "allwinner,sun6i-a31-tcon";
|
||||||
reg = <0x01c0c000 0x1000>;
|
reg = <0x01c0c000 0x1000>;
|
||||||
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
resets = <&ccu RST_AHB1_LCD0>;
|
dmas = <&dma 11>;
|
||||||
reset-names = "lcd";
|
resets = <&ccu RST_AHB1_LCD0>,
|
||||||
|
<&ccu RST_AHB1_LVDS>;
|
||||||
|
reset-names = "lcd",
|
||||||
|
"lvds";
|
||||||
clocks = <&ccu CLK_AHB1_LCD0>,
|
clocks = <&ccu CLK_AHB1_LCD0>,
|
||||||
<&ccu CLK_LCD0_CH0>,
|
<&ccu CLK_LCD0_CH0>,
|
||||||
<&ccu CLK_LCD0_CH1>;
|
<&ccu CLK_LCD0_CH1>,
|
||||||
|
<&ccu 15>;
|
||||||
clock-names = "ahb",
|
clock-names = "ahb",
|
||||||
"tcon-ch0",
|
"tcon-ch0",
|
||||||
"tcon-ch1";
|
"tcon-ch1",
|
||||||
|
"lvds-alt";
|
||||||
clock-output-names = "tcon0-pixel-clock";
|
clock-output-names = "tcon0-pixel-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -301,15 +335,20 @@
|
|||||||
compatible = "allwinner,sun6i-a31-tcon";
|
compatible = "allwinner,sun6i-a31-tcon";
|
||||||
reg = <0x01c0d000 0x1000>;
|
reg = <0x01c0d000 0x1000>;
|
||||||
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
resets = <&ccu RST_AHB1_LCD1>;
|
dmas = <&dma 12>;
|
||||||
reset-names = "lcd";
|
resets = <&ccu RST_AHB1_LCD1>,
|
||||||
|
<&ccu RST_AHB1_LVDS>;
|
||||||
|
reset-names = "lcd", "lvds";
|
||||||
clocks = <&ccu CLK_AHB1_LCD1>,
|
clocks = <&ccu CLK_AHB1_LCD1>,
|
||||||
<&ccu CLK_LCD1_CH0>,
|
<&ccu CLK_LCD1_CH0>,
|
||||||
<&ccu CLK_LCD1_CH1>;
|
<&ccu CLK_LCD1_CH1>,
|
||||||
|
<&ccu 15>;
|
||||||
clock-names = "ahb",
|
clock-names = "ahb",
|
||||||
"tcon-ch0",
|
"tcon-ch0",
|
||||||
"tcon-ch1";
|
"tcon-ch1",
|
||||||
|
"lvds-alt";
|
||||||
clock-output-names = "tcon1-pixel-clock";
|
clock-output-names = "tcon1-pixel-clock";
|
||||||
|
#clock-cells = <0>;
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
@ -359,6 +398,8 @@
|
|||||||
resets = <&ccu RST_AHB1_MMC0>;
|
resets = <&ccu RST_AHB1_MMC0>;
|
||||||
reset-names = "ahb";
|
reset-names = "ahb";
|
||||||
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc0_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -378,6 +419,8 @@
|
|||||||
resets = <&ccu RST_AHB1_MMC1>;
|
resets = <&ccu RST_AHB1_MMC1>;
|
||||||
reset-names = "ahb";
|
reset-names = "ahb";
|
||||||
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&mmc1_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -431,7 +474,6 @@
|
|||||||
<&ccu CLK_PLL_VIDEO1_2X>;
|
<&ccu CLK_PLL_VIDEO1_2X>;
|
||||||
clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
|
clock-names = "ahb", "mod", "ddc", "pll-0", "pll-1";
|
||||||
resets = <&ccu RST_AHB1_HDMI>;
|
resets = <&ccu RST_AHB1_HDMI>;
|
||||||
reset-names = "ahb";
|
|
||||||
dma-names = "ddc-tx", "ddc-rx", "audio-tx";
|
dma-names = "ddc-tx", "ddc-rx", "audio-tx";
|
||||||
dmas = <&dma 13>, <&dma 13>, <&dma 14>;
|
dmas = <&dma 13>, <&dma 13>, <&dma 14>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
@ -457,8 +499,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
hdmi_out: port@1 {
|
hdmi_out: port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -474,6 +514,7 @@
|
|||||||
phys = <&usbphy 0>;
|
phys = <&usbphy 0>;
|
||||||
phy-names = "usb";
|
phy-names = "usb";
|
||||||
extcon = <&usbphy 0>;
|
extcon = <&usbphy 0>;
|
||||||
|
dr_mode = "otg";
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -557,7 +598,7 @@
|
|||||||
ccu: clock@1c20000 {
|
ccu: clock@1c20000 {
|
||||||
compatible = "allwinner,sun6i-a31-ccu";
|
compatible = "allwinner,sun6i-a31-ccu";
|
||||||
reg = <0x01c20000 0x400>;
|
reg = <0x01c20000 0x400>;
|
||||||
clocks = <&osc24M>, <&osc32k>;
|
clocks = <&osc24M>, <&rtc 0>;
|
||||||
clock-names = "hosc", "losc";
|
clock-names = "hosc", "losc";
|
||||||
#clock-cells = <1>;
|
#clock-cells = <1>;
|
||||||
#reset-cells = <1>;
|
#reset-cells = <1>;
|
||||||
@ -570,14 +611,14 @@
|
|||||||
<GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&osc32k>;
|
clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&rtc 0>;
|
||||||
clock-names = "apb", "hosc", "losc";
|
clock-names = "apb", "hosc", "losc";
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <3>;
|
#interrupt-cells = <3>;
|
||||||
#gpio-cells = <3>;
|
#gpio-cells = <3>;
|
||||||
|
|
||||||
gmac_pins_gmii_a: gmac_gmii@0 {
|
gmac_gmii_pins: gmac-gmii-pins {
|
||||||
pins = "PA0", "PA1", "PA2", "PA3",
|
pins = "PA0", "PA1", "PA2", "PA3",
|
||||||
"PA4", "PA5", "PA6", "PA7",
|
"PA4", "PA5", "PA6", "PA7",
|
||||||
"PA8", "PA9", "PA10", "PA11",
|
"PA8", "PA9", "PA10", "PA11",
|
||||||
@ -593,7 +634,7 @@
|
|||||||
drive-strength = <30>;
|
drive-strength = <30>;
|
||||||
};
|
};
|
||||||
|
|
||||||
gmac_pins_mii_a: gmac_mii@0 {
|
gmac_mii_pins: gmac-mii-pins {
|
||||||
pins = "PA0", "PA1", "PA2", "PA3",
|
pins = "PA0", "PA1", "PA2", "PA3",
|
||||||
"PA8", "PA9", "PA11",
|
"PA8", "PA9", "PA11",
|
||||||
"PA12", "PA13", "PA14", "PA19",
|
"PA12", "PA13", "PA14", "PA19",
|
||||||
@ -602,7 +643,7 @@
|
|||||||
function = "gmac";
|
function = "gmac";
|
||||||
};
|
};
|
||||||
|
|
||||||
gmac_pins_rgmii_a: gmac_rgmii@0 {
|
gmac_rgmii_pins: gmac-rgmii-pins {
|
||||||
pins = "PA0", "PA1", "PA2", "PA3",
|
pins = "PA0", "PA1", "PA2", "PA3",
|
||||||
"PA9", "PA10", "PA11",
|
"PA9", "PA10", "PA11",
|
||||||
"PA12", "PA13", "PA14", "PA19",
|
"PA12", "PA13", "PA14", "PA19",
|
||||||
@ -615,22 +656,22 @@
|
|||||||
drive-strength = <40>;
|
drive-strength = <40>;
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c0_pins_a: i2c0@0 {
|
i2c0_pins: i2c0-pins {
|
||||||
pins = "PH14", "PH15";
|
pins = "PH14", "PH15";
|
||||||
function = "i2c0";
|
function = "i2c0";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c1_pins_a: i2c1@0 {
|
i2c1_pins: i2c1-pins {
|
||||||
pins = "PH16", "PH17";
|
pins = "PH16", "PH17";
|
||||||
function = "i2c1";
|
function = "i2c1";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c2_pins_a: i2c2@0 {
|
i2c2_pins: i2c2-pins {
|
||||||
pins = "PH18", "PH19";
|
pins = "PH18", "PH19";
|
||||||
function = "i2c2";
|
function = "i2c2";
|
||||||
};
|
};
|
||||||
|
|
||||||
lcd0_rgb888_pins: lcd0_rgb888 {
|
lcd0_rgb888_pins: lcd0-rgb888-pins {
|
||||||
pins = "PD0", "PD1", "PD2", "PD3",
|
pins = "PD0", "PD1", "PD2", "PD3",
|
||||||
"PD4", "PD5", "PD6", "PD7",
|
"PD4", "PD5", "PD6", "PD7",
|
||||||
"PD8", "PD9", "PD10", "PD11",
|
"PD8", "PD9", "PD10", "PD11",
|
||||||
@ -641,7 +682,7 @@
|
|||||||
function = "lcd0";
|
function = "lcd0";
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc0_pins_a: mmc0@0 {
|
mmc0_pins: mmc0-pins {
|
||||||
pins = "PF0", "PF1", "PF2",
|
pins = "PF0", "PF1", "PF2",
|
||||||
"PF3", "PF4", "PF5";
|
"PF3", "PF4", "PF5";
|
||||||
function = "mmc0";
|
function = "mmc0";
|
||||||
@ -649,7 +690,7 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc1_pins_a: mmc1@0 {
|
mmc1_pins: mmc1-pins {
|
||||||
pins = "PG0", "PG1", "PG2", "PG3",
|
pins = "PG0", "PG1", "PG2", "PG3",
|
||||||
"PG4", "PG5";
|
"PG4", "PG5";
|
||||||
function = "mmc1";
|
function = "mmc1";
|
||||||
@ -657,7 +698,7 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc2_pins_a: mmc2@0 {
|
mmc2_4bit_pins: mmc2-4bit-pins {
|
||||||
pins = "PC6", "PC7", "PC8", "PC9",
|
pins = "PC6", "PC7", "PC8", "PC9",
|
||||||
"PC10", "PC11";
|
"PC10", "PC11";
|
||||||
function = "mmc2";
|
function = "mmc2";
|
||||||
@ -665,7 +706,7 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc2_8bit_emmc_pins: mmc2@1 {
|
mmc2_8bit_emmc_pins: mmc2-8bit-emmc-pins {
|
||||||
pins = "PC6", "PC7", "PC8", "PC9",
|
pins = "PC6", "PC7", "PC8", "PC9",
|
||||||
"PC10", "PC11", "PC12",
|
"PC10", "PC11", "PC12",
|
||||||
"PC13", "PC14", "PC15",
|
"PC13", "PC14", "PC15",
|
||||||
@ -675,7 +716,7 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc3_8bit_emmc_pins: mmc3@1 {
|
mmc3_8bit_emmc_pins: mmc3-8bit-emmc-pins {
|
||||||
pins = "PC6", "PC7", "PC8", "PC9",
|
pins = "PC6", "PC7", "PC8", "PC9",
|
||||||
"PC10", "PC11", "PC12",
|
"PC10", "PC11", "PC12",
|
||||||
"PC13", "PC14", "PC15",
|
"PC13", "PC14", "PC15",
|
||||||
@ -685,12 +726,12 @@
|
|||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
spdif_pins_a: spdif@0 {
|
spdif_tx_pin: spdif-tx-pin {
|
||||||
pins = "PH28";
|
pins = "PH28";
|
||||||
function = "spdif";
|
function = "spdif";
|
||||||
};
|
};
|
||||||
|
|
||||||
uart0_pins_a: uart0@0 {
|
uart0_ph_pins: uart0-ph-pins {
|
||||||
pins = "PH20", "PH21";
|
pins = "PH20", "PH21";
|
||||||
function = "uart0";
|
function = "uart0";
|
||||||
};
|
};
|
||||||
@ -703,13 +744,16 @@
|
|||||||
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
|
<GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&osc24M>;
|
clocks = <&osc24M>;
|
||||||
};
|
};
|
||||||
|
|
||||||
wdt1: watchdog@1c20ca0 {
|
wdt1: watchdog@1c20ca0 {
|
||||||
compatible = "allwinner,sun6i-a31-wdt";
|
compatible = "allwinner,sun6i-a31-wdt";
|
||||||
reg = <0x01c20ca0 0x20>;
|
reg = <0x01c20ca0 0x20>;
|
||||||
|
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&osc24M>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spdif: spdif@1c21000 {
|
spdif: spdif@1c21000 {
|
||||||
@ -849,6 +893,8 @@
|
|||||||
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_APB2_I2C0>;
|
clocks = <&ccu CLK_APB2_I2C0>;
|
||||||
resets = <&ccu RST_APB2_I2C0>;
|
resets = <&ccu RST_APB2_I2C0>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c0_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -860,6 +906,8 @@
|
|||||||
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_APB2_I2C1>;
|
clocks = <&ccu CLK_APB2_I2C1>;
|
||||||
resets = <&ccu RST_APB2_I2C1>;
|
resets = <&ccu RST_APB2_I2C1>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c1_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -871,6 +919,8 @@
|
|||||||
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&ccu CLK_APB2_I2C2>;
|
clocks = <&ccu CLK_APB2_I2C2>;
|
||||||
resets = <&ccu RST_APB2_I2C2>;
|
resets = <&ccu RST_APB2_I2C2>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&i2c2_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -900,8 +950,12 @@
|
|||||||
snps,fixed-burst;
|
snps,fixed-burst;
|
||||||
snps,force_sf_dma_mode;
|
snps,force_sf_dma_mode;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
mdio: mdio {
|
||||||
|
compatible = "snps,dwmac-mdio";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
crypto: crypto-engine@1c15000 {
|
crypto: crypto-engine@1c15000 {
|
||||||
@ -950,6 +1004,8 @@
|
|||||||
dma-names = "rx", "tx";
|
dma-names = "rx", "tx";
|
||||||
resets = <&ccu RST_AHB1_SPI0>;
|
resets = <&ccu RST_AHB1_SPI0>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi1: spi@1c69000 {
|
spi1: spi@1c69000 {
|
||||||
@ -962,6 +1018,8 @@
|
|||||||
dma-names = "rx", "tx";
|
dma-names = "rx", "tx";
|
||||||
resets = <&ccu RST_AHB1_SPI1>;
|
resets = <&ccu RST_AHB1_SPI1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi2: spi@1c6a000 {
|
spi2: spi@1c6a000 {
|
||||||
@ -974,6 +1032,8 @@
|
|||||||
dma-names = "rx", "tx";
|
dma-names = "rx", "tx";
|
||||||
resets = <&ccu RST_AHB1_SPI2>;
|
resets = <&ccu RST_AHB1_SPI2>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
spi3: spi@1c6b000 {
|
spi3: spi@1c6b000 {
|
||||||
@ -986,10 +1046,12 @@
|
|||||||
dma-names = "rx", "tx";
|
dma-names = "rx", "tx";
|
||||||
resets = <&ccu RST_AHB1_SPI3>;
|
resets = <&ccu RST_AHB1_SPI3>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
};
|
};
|
||||||
|
|
||||||
gic: interrupt-controller@1c81000 {
|
gic: interrupt-controller@1c81000 {
|
||||||
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
|
compatible = "arm,gic-400";
|
||||||
reg = <0x01c81000 0x1000>,
|
reg = <0x01c81000 0x1000>,
|
||||||
<0x01c82000 0x2000>,
|
<0x01c82000 0x2000>,
|
||||||
<0x01c84000 0x2000>,
|
<0x01c84000 0x2000>,
|
||||||
@ -1073,9 +1135,6 @@
|
|||||||
"ram";
|
"ram";
|
||||||
resets = <&ccu RST_AHB1_BE1>;
|
resets = <&ccu RST_AHB1_BE1>;
|
||||||
|
|
||||||
assigned-clocks = <&ccu CLK_BE1>;
|
|
||||||
assigned-clock-rates = <300000000>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -1119,9 +1178,6 @@
|
|||||||
"ram";
|
"ram";
|
||||||
resets = <&ccu RST_AHB1_DRC1>;
|
resets = <&ccu RST_AHB1_DRC1>;
|
||||||
|
|
||||||
assigned-clocks = <&ccu CLK_IEP_DRC1>;
|
|
||||||
assigned-clock-rates = <300000000>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -1165,9 +1221,6 @@
|
|||||||
"ram";
|
"ram";
|
||||||
resets = <&ccu RST_AHB1_BE0>;
|
resets = <&ccu RST_AHB1_BE0>;
|
||||||
|
|
||||||
assigned-clocks = <&ccu CLK_BE0>;
|
|
||||||
assigned-clock-rates = <300000000>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
@ -1189,12 +1242,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
be0_out: port@1 {
|
be0_out: port@1 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <1>;
|
reg = <1>;
|
||||||
|
|
||||||
be0_out_drc0: endpoint@0 {
|
be0_out_drc0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&drc0_in_be0>;
|
remote-endpoint = <&drc0_in_be0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -1211,20 +1261,14 @@
|
|||||||
"ram";
|
"ram";
|
||||||
resets = <&ccu RST_AHB1_DRC0>;
|
resets = <&ccu RST_AHB1_DRC0>;
|
||||||
|
|
||||||
assigned-clocks = <&ccu CLK_IEP_DRC0>;
|
|
||||||
assigned-clock-rates = <300000000>;
|
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
drc0_in: port@0 {
|
drc0_in: port@0 {
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
|
|
||||||
drc0_in_be0: endpoint@0 {
|
drc0_in_be0: endpoint {
|
||||||
reg = <0>;
|
|
||||||
remote-endpoint = <&be0_out_drc0>;
|
remote-endpoint = <&be0_out_drc0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -1248,13 +1292,16 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
rtc: rtc@1f00000 {
|
rtc: rtc@1f00000 {
|
||||||
|
#clock-cells = <1>;
|
||||||
compatible = "allwinner,sun6i-a31-rtc";
|
compatible = "allwinner,sun6i-a31-rtc";
|
||||||
reg = <0x01f00000 0x54>;
|
reg = <0x01f00000 0x54>;
|
||||||
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
clocks = <&osc32k>;
|
||||||
|
clock-output-names = "osc32k";
|
||||||
};
|
};
|
||||||
|
|
||||||
nmi_intc: interrupt-controller@1f00c00 {
|
r_intc: interrupt-controller@1f00c00 {
|
||||||
compatible = "allwinner,sun6i-a31-r-intc";
|
compatible = "allwinner,sun6i-a31-r-intc";
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <2>;
|
#interrupt-cells = <2>;
|
||||||
@ -1269,7 +1316,7 @@
|
|||||||
ar100: ar100_clk {
|
ar100: ar100_clk {
|
||||||
compatible = "allwinner,sun6i-a31-ar100-clk";
|
compatible = "allwinner,sun6i-a31-ar100-clk";
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
clocks = <&osc32k>, <&osc24M>,
|
clocks = <&rtc 0>, <&osc24M>,
|
||||||
<&ccu CLK_PLL_PERIPH>,
|
<&ccu CLK_PLL_PERIPH>,
|
||||||
<&ccu CLK_PLL_PERIPH>;
|
<&ccu CLK_PLL_PERIPH>;
|
||||||
clock-output-names = "ar100";
|
clock-output-names = "ar100";
|
||||||
@ -1304,7 +1351,7 @@
|
|||||||
ir_clk: ir_clk {
|
ir_clk: ir_clk {
|
||||||
#clock-cells = <0>;
|
#clock-cells = <0>;
|
||||||
compatible = "allwinner,sun4i-a10-mod0-clk";
|
compatible = "allwinner,sun4i-a10-mod0-clk";
|
||||||
clocks = <&osc32k>, <&osc24M>;
|
clocks = <&rtc 0>, <&osc24M>;
|
||||||
clock-output-names = "ir";
|
clock-output-names = "ir";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1320,7 +1367,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ir: ir@1f02000 {
|
ir: ir@1f02000 {
|
||||||
compatible = "allwinner,sun5i-a13-ir";
|
compatible = "allwinner,sun6i-a31-ir";
|
||||||
clocks = <&apb0_gates 1>, <&ir_clk>;
|
clocks = <&apb0_gates 1>, <&ir_clk>;
|
||||||
clock-names = "apb", "ir";
|
clock-names = "apb", "ir";
|
||||||
resets = <&apb0_rst 1>;
|
resets = <&apb0_rst 1>;
|
||||||
@ -1334,21 +1381,20 @@
|
|||||||
reg = <0x01f02c00 0x400>;
|
reg = <0x01f02c00 0x400>;
|
||||||
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
|
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
<GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
|
<GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
|
clocks = <&apb0_gates 0>, <&osc24M>, <&rtc 0>;
|
||||||
clock-names = "apb", "hosc", "losc";
|
clock-names = "apb", "hosc", "losc";
|
||||||
resets = <&apb0_rst 0>;
|
resets = <&apb0_rst 0>;
|
||||||
gpio-controller;
|
gpio-controller;
|
||||||
interrupt-controller;
|
interrupt-controller;
|
||||||
#interrupt-cells = <3>;
|
#interrupt-cells = <3>;
|
||||||
#size-cells = <0>;
|
|
||||||
#gpio-cells = <3>;
|
#gpio-cells = <3>;
|
||||||
|
|
||||||
ir_pins_a: ir@0 {
|
s_ir_rx_pin: s-ir-rx-pin {
|
||||||
pins = "PL4";
|
pins = "PL4";
|
||||||
function = "s_ir";
|
function = "s_ir";
|
||||||
};
|
};
|
||||||
|
|
||||||
p2wi_pins: p2wi {
|
s_p2wi_pins: s-p2wi-pins {
|
||||||
pins = "PL0", "PL1";
|
pins = "PL0", "PL1";
|
||||||
function = "s_p2wi";
|
function = "s_p2wi";
|
||||||
};
|
};
|
||||||
@ -1362,7 +1408,7 @@
|
|||||||
clock-frequency = <100000>;
|
clock-frequency = <100000>;
|
||||||
resets = <&apb0_rst 3>;
|
resets = <&apb0_rst 3>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&p2wi_pins>;
|
pinctrl-0 = <&s_p2wi_pins>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
vref-supply = <®_aldo3>;
|
vref-supply = <®_aldo3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@1000 {
|
button-1000 {
|
||||||
label = "Home";
|
label = "Home";
|
||||||
linux,code = <KEY_HOMEPAGE>;
|
linux,code = <KEY_HOMEPAGE>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
|
@ -66,28 +66,31 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_mii_a>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&ir {
|
&ir {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&ohci1 {
|
&ohci1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,8 +54,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
ft5406ee8: touchscreen@38 {
|
ft5406ee8: touchscreen@38 {
|
||||||
@ -73,21 +71,21 @@
|
|||||||
vref-supply = <®_aldo3>;
|
vref-supply = <®_aldo3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@200 {
|
button-200 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <200000>;
|
voltage = <200000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@900 {
|
button-900 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <900000>;
|
voltage = <900000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@1200 {
|
button-1200 {
|
||||||
label = "Back";
|
label = "Back";
|
||||||
linux,code = <KEY_BACK>;
|
linux,code = <KEY_BACK>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
|
@ -90,19 +90,13 @@
|
|||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
/* pull-ups and device VDDIO use AXP221 DLDO3 */
|
/* pull-ups and device VDDIO use AXP221 DLDO3 */
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c0_pins_a>;
|
|
||||||
status = "failed";
|
status = "failed";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
ctp@5d {
|
ctp@5d {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <>911_int_primo81>;
|
|
||||||
compatible = "goodix,gt911";
|
compatible = "goodix,gt911";
|
||||||
reg = <0x5d>;
|
reg = <0x5d>;
|
||||||
interrupt-parent = <&pio>;
|
interrupt-parent = <&pio>;
|
||||||
@ -112,8 +106,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
accelerometer@1c {
|
accelerometer@1c {
|
||||||
@ -123,7 +115,6 @@
|
|||||||
reg = <0x1c>;
|
reg = <0x1c>;
|
||||||
interrupt-parent = <&pio>;
|
interrupt-parent = <&pio>;
|
||||||
interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; /* PA9 */
|
interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; /* PA9 */
|
||||||
#io-channel-cells = <1>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -131,14 +122,14 @@
|
|||||||
vref-supply = <®_aldo3>;
|
vref-supply = <®_aldo3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@158 {
|
button-158 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <158730>;
|
voltage = <158730>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@349 {
|
button-349 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
@ -147,8 +138,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_primo81>;
|
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
||||||
@ -156,22 +145,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
&pio {
|
||||||
gt911_int_primo81: gt911_int_pin@0 {
|
mma8452_int_primo81: mma8452-int-pin {
|
||||||
pins = "PA3";
|
|
||||||
function = "gpio_in";
|
|
||||||
};
|
|
||||||
|
|
||||||
mma8452_int_primo81: mma8452_int_pin@0 {
|
|
||||||
pins = "PA9";
|
pins = "PA9";
|
||||||
function = "gpio_in";
|
function = "gpio_in";
|
||||||
bias-pull-up;
|
bias-pull-up;
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc0_cd_pin_primo81: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA8";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&p2wi {
|
&p2wi {
|
||||||
@ -180,7 +158,7 @@
|
|||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
x-powers,drive-vbus-en;
|
x-powers,drive-vbus-en;
|
||||||
};
|
};
|
||||||
@ -281,7 +259,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
usb0_id_det-gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb0_vbus-supply = <®_drivevbus>;
|
usb0_vbus-supply = <®_drivevbus>;
|
||||||
usb1_vbus-supply = <®_dldo1>;
|
usb1_vbus-supply = <®_dldo1>;
|
||||||
|
@ -78,7 +78,7 @@
|
|||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -135,7 +135,7 @@
|
|||||||
/* UART0 pads available on core board */
|
/* UART0 pads available on core board */
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -66,8 +66,6 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pin_sina31s>;
|
|
||||||
|
|
||||||
status {
|
status {
|
||||||
label = "sina31s:status:usr";
|
label = "sina31s:status:usr";
|
||||||
@ -116,15 +114,11 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_mii_a>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
phy-supply = <®_dldo1>;
|
phy-supply = <®_dldo1>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -139,7 +133,7 @@
|
|||||||
|
|
||||||
&ir {
|
&ir {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -147,14 +141,14 @@
|
|||||||
vref-supply = <®_aldo3>;
|
vref-supply = <®_aldo3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
button@158 {
|
button-158 {
|
||||||
label = "Volume Up";
|
label = "Volume Up";
|
||||||
linux,code = <KEY_VOLUMEUP>;
|
linux,code = <KEY_VOLUMEUP>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
voltage = <158730>;
|
voltage = <158730>;
|
||||||
};
|
};
|
||||||
|
|
||||||
button@349 {
|
button-349 {
|
||||||
label = "Volume Down";
|
label = "Volume Down";
|
||||||
linux,code = <KEY_VOLUMEDOWN>;
|
linux,code = <KEY_VOLUMEDOWN>;
|
||||||
channel = <0>;
|
channel = <0>;
|
||||||
@ -162,9 +156,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_sina31s>;
|
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
|
cd-gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
|
||||||
@ -175,19 +173,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
led_pin_sina31s: led_pin@0 {
|
|
||||||
pins = "PH13";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_sina31s: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_dldo1 {
|
®_dldo1 {
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
@ -196,7 +181,7 @@
|
|||||||
|
|
||||||
&spdif {
|
&spdif {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&spdif_pins_a>;
|
pinctrl-0 = <&spdif_tx_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,20 +58,18 @@
|
|||||||
|
|
||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&led_pins_bpi_m2>;
|
|
||||||
|
|
||||||
blue {
|
led-0 {
|
||||||
label = "bpi-m2:blue:usr";
|
label = "bpi-m2:blue:usr";
|
||||||
gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
|
gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
|
||||||
};
|
};
|
||||||
|
|
||||||
green {
|
led-1 {
|
||||||
label = "bpi-m2:green:usr";
|
label = "bpi-m2:green:usr";
|
||||||
gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10 */
|
gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10 */
|
||||||
};
|
};
|
||||||
|
|
||||||
red {
|
led-2 {
|
||||||
label = "bpi-m2:red:usr";
|
label = "bpi-m2:red:usr";
|
||||||
gpios = <&pio 6 5 GPIO_ACTIVE_HIGH>; /* PG5 */
|
gpios = <&pio 6 5 GPIO_ACTIVE_HIGH>; /* PG5 */
|
||||||
};
|
};
|
||||||
@ -79,8 +77,6 @@
|
|||||||
|
|
||||||
mmc2_pwrseq: mmc2_pwrseq {
|
mmc2_pwrseq: mmc2_pwrseq {
|
||||||
compatible = "mmc-pwrseq-simple";
|
compatible = "mmc-pwrseq-simple";
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc2_pwrseq_pin_bpi_m2>;
|
|
||||||
reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 WIFI_EN */
|
reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 WIFI_EN */
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -95,42 +91,38 @@
|
|||||||
|
|
||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_pins_rgmii_a>, <&gmac_phy_reset_pin_bpi_m2>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
phy-supply = <®_dldo1>;
|
phy-supply = <®_dldo1>;
|
||||||
snps,reset-gpio = <&pio 0 21 GPIO_ACTIVE_HIGH>; /* PA21 */
|
|
||||||
snps,reset-active-low;
|
|
||||||
snps,reset-delays-us = <0 10000 30000>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&ir {
|
&ir {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&ir_pins_a>;
|
pinctrl-0 = <&s_ir_rx_pin>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
reset-gpios = <&pio 0 21 GPIO_ACTIVE_LOW>; /* PA21 */
|
||||||
|
reset-assert-us = <10000>;
|
||||||
|
reset-deassert-us = <30000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bpi_m2>;
|
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
|
cd-gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0_pins_a {
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc2 {
|
&mmc2 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc2_pins_a>;
|
pinctrl-0 = <&mmc2_4bit_pins>;
|
||||||
vmmc-supply = <®_aldo1>;
|
vmmc-supply = <®_aldo1>;
|
||||||
mmc-pwrseq = <&mmc2_pwrseq>;
|
mmc-pwrseq = <&mmc2_pwrseq>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
@ -146,10 +138,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc2_pins_a {
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
&ohci0 {
|
&ohci0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -160,38 +148,13 @@
|
|||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
eldoin-supply = <®_dcdc1>;
|
eldoin-supply = <®_dcdc1>;
|
||||||
x-powers,drive-vbus-en;
|
x-powers,drive-vbus-en;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
gmac_phy_reset_pin_bpi_m2: gmac_phy_reset_pin@0 {
|
|
||||||
pins = "PA21";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
led_pins_bpi_m2: led_pins@0 {
|
|
||||||
pins = "PG5", "PG10", "PG11";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
|
|
||||||
mmc0_cd_pin_bpi_m2: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&r_pio {
|
|
||||||
mmc2_pwrseq_pin_bpi_m2: mmc2_pwrseq_pin@0 {
|
|
||||||
pins = "PL8";
|
|
||||||
function = "gpio_out";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "axp22x.dtsi"
|
#include "axp22x.dtsi"
|
||||||
|
|
||||||
®_aldo1 {
|
®_aldo1 {
|
||||||
@ -291,10 +254,81 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&pio {
|
||||||
|
gpio-line-names =
|
||||||
|
/* PA */
|
||||||
|
"ETXD0", "ETXD1", "ETXD2", "ETXD3", "SDC0-DET", "", "",
|
||||||
|
"", "ETXCLK", "ETXEN", "EGTXCLK", "ERXD0", "ERXD1",
|
||||||
|
"ERXD2", "ERXD3", "", "", "", "", "ERXDV", "ERXCK",
|
||||||
|
"ETXERR", "ERXERR", "ECOL", "ECRS", "ECLKIN", "EMDC",
|
||||||
|
"EMDIO", "", "", "", "",
|
||||||
|
|
||||||
|
/* PB */
|
||||||
|
"CN7-P29", "CN7-P31", "CN7-P33", "CN7-P35", "CN7-P37",
|
||||||
|
"CN7-P28", "CN7-P27", "CN7-P32", "", "", "", "", "", "",
|
||||||
|
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"", "", "", "",
|
||||||
|
|
||||||
|
/* PC */
|
||||||
|
"", "", "", "", "", "", "WL-SDIO-CMD", "WL-SDIO-CLK",
|
||||||
|
"WL-SDIO-D0", "WL-SDIO-D2", "WL-SDIO-D2", "WL-SDIO-D3",
|
||||||
|
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"", "USB-DRV", "", "", "", "",
|
||||||
|
|
||||||
|
/* PD */
|
||||||
|
"CN9-P09", "CN9-P11", "CN9-P13", "CN9-P15", "CN9-P17",
|
||||||
|
"CN9-P19", "CN9-P21", "CN9-P23", "CN9-P25", "CN9-P27",
|
||||||
|
"CN9-P29", "CN9-P31", "CN9-P33", "CN9-P35", "CN9-P37",
|
||||||
|
"CN9-P39", "CN9-P40", "CN9-P38", "CN9-P36", "CN9-P34",
|
||||||
|
"CN9-P32", "CN9-P30", "CN9-P28", "CN9-P26", "CN9-P22",
|
||||||
|
"CN9-P14", "CN9-P18", "CN9-P16", "", "", "", "",
|
||||||
|
|
||||||
|
/* PE */
|
||||||
|
"CN6-P20", "CN6-P24", "CN6-P30", "CN6-P28", "CN7-P08",
|
||||||
|
"CN7-P10", "CN7-P36", "CN7-P38", "CN6-P17", "CN6-P19",
|
||||||
|
"CN6-P21", "CN6-P23", "CN6-P25", "CN6-P27", "CN6-P29",
|
||||||
|
"CN6-P31", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"", "", "", "", "",
|
||||||
|
|
||||||
|
/* PF */
|
||||||
|
"SDC0-D1", "SDC0-D0", "SDC0-CLK", "SDC0-CMD", "SDC0-D3",
|
||||||
|
"SDC0-D2", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"",
|
||||||
|
|
||||||
|
/* PG */
|
||||||
|
"CN9-P06", "CN9-P08", "CN9-P20", "CN9-P12", "CN9-P07",
|
||||||
|
"LED-PWR", "CN7-P13", "CN7-P11", "CN7-P22", "CN7-P15",
|
||||||
|
"LED-G", "LED-B", "CN7-P26", "CN7-P24", "CN7-P23",
|
||||||
|
"CN7-P19", "CN7-P21", "HCEC", "CN6-P22", "", "", "", "",
|
||||||
|
"", "", "", "", "", "", "", "", "",
|
||||||
|
|
||||||
|
/* PH */
|
||||||
|
"", "", "", "", "", "", "", "", "", "CN7-P07",
|
||||||
|
"CN7-P12", "CN7-P16", "CN7-P18", "CN9-P10", "CN6-P16",
|
||||||
|
"CN6-P14", "CN9-P04", "CN9-P02", "CN7-P05", "CN7-P03",
|
||||||
|
"CN8-P03", "CN8-P02", "", "", "CN6-P34", "CN6-P32",
|
||||||
|
"CN6-P26", "CN6-P18", "", "", "", "";
|
||||||
|
};
|
||||||
|
|
||||||
|
&r_pio {
|
||||||
|
gpio-line-names =
|
||||||
|
/* PL */
|
||||||
|
"PMU-SCK", "PMU-SDA", "VBAT-EN", "", "IR-RX",
|
||||||
|
"WL-WAKE-HOST", "BT-WAKE_HOST", "BT-ENABLE",
|
||||||
|
"WL-PMU-EN", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
|
||||||
|
/* PM */
|
||||||
|
"CN6-P12", "CN6-P35", "CN7-P40", "", "", "", "", "", "",
|
||||||
|
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
|
||||||
|
"", "", "", "", "", "", "", "", "";
|
||||||
|
};
|
||||||
|
@ -62,14 +62,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&i2c1 {
|
&i2c1 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c1_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c2 {
|
&i2c2 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&i2c2_pins_a>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -89,34 +85,20 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
mmc0_cd_pin_bs1078v2: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA8";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bs1078v2>;
|
|
||||||
vmmc-supply = <®_vcc3v0>;
|
vmmc-supply = <®_vcc3v0>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc0_pins_a {
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
&p2wi {
|
&p2wi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -189,11 +171,12 @@
|
|||||||
|
|
||||||
&uart0 {
|
&uart0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&uart0_pins_a>;
|
pinctrl-0 = <&uart0_ph_pins>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
|
usb0_id_det-gpios = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
||||||
usb1_vbus-supply = <®_dldo1>;
|
usb1_vbus-supply = <®_dldo1>;
|
||||||
usb2_vbus-supply = <®_dc1sw>;
|
usb2_vbus-supply = <®_dc1sw>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -66,34 +66,20 @@
|
|||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_e708_q1>;
|
pinctrl-0 = <&mmc0_pins>;
|
||||||
vmmc-supply = <®_dcdc1>;
|
vmmc-supply = <®_dcdc1>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
cd-gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
mmc0_cd_pin_e708_q1: mmc0_cd_pin@0 {
|
|
||||||
pins = "PA8";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0_id_detect_pin@0 {
|
|
||||||
pins = "PA15";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&p2wi {
|
&p2wi {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
axp22x: pmic@68 {
|
axp22x: pmic@68 {
|
||||||
compatible = "x-powers,axp221";
|
compatible = "x-powers,axp221";
|
||||||
reg = <0x68>;
|
reg = <0x68>;
|
||||||
interrupt-parent = <&nmi_intc>;
|
interrupt-parent = <&r_intc>;
|
||||||
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
drivevbus-supply = <®_vcc5v0>;
|
drivevbus-supply = <®_vcc5v0>;
|
||||||
x-powers,drive-vbus-en;
|
x-powers,drive-vbus-en;
|
||||||
@ -179,9 +165,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 0 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PA15 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 0 15 GPIO_ACTIVE_HIGH>; /* PA15 */
|
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb0_vbus-supply = <®_drivevbus>;
|
usb0_vbus-supply = <®_drivevbus>;
|
||||||
usb1_vbus-supply = <®_dldo1>;
|
usb1_vbus-supply = <®_dldo1>;
|
||||||
|
@ -74,12 +74,12 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
green {
|
led-0 {
|
||||||
label = "bananapi-m1-plus:green:usr";
|
label = "bananapi-m1-plus:green:usr";
|
||||||
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
pwr {
|
led-1 {
|
||||||
label = "bananapi-m1-plus:pwr:usr";
|
label = "bananapi-m1-plus:pwr:usr";
|
||||||
gpios = <&pio 7 25 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 25 GPIO_ACTIVE_HIGH>;
|
||||||
default-state = "on";
|
default-state = "on";
|
||||||
@ -129,14 +129,10 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
phy-supply = <®_gmac_3v3>;
|
phy-supply = <®_gmac_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -171,6 +167,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
green {
|
led {
|
||||||
label = "bananapi:green:usr";
|
label = "bananapi:green:usr";
|
||||||
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -104,16 +104,15 @@
|
|||||||
|
|
||||||
&cpu0 {
|
&cpu0 {
|
||||||
cpu-supply = <®_dcdc2>;
|
cpu-supply = <®_dcdc2>;
|
||||||
operating-points = <
|
operating-points =
|
||||||
/* kHz uV */
|
/* kHz uV */
|
||||||
960000 1400000
|
<960000 1400000>,
|
||||||
912000 1400000
|
<912000 1400000>,
|
||||||
864000 1350000
|
<864000 1350000>,
|
||||||
720000 1250000
|
<720000 1250000>,
|
||||||
528000 1150000
|
<528000 1150000>,
|
||||||
312000 1100000
|
<312000 1100000>,
|
||||||
144000 1050000
|
<144000 1050000>;
|
||||||
>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&de {
|
&de {
|
||||||
@ -131,14 +130,10 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
phy-supply = <®_gmac_3v3>;
|
phy-supply = <®_gmac_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -171,6 +166,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
@ -246,12 +247,6 @@
|
|||||||
"SPI-MISO", "SPI-CE1", "",
|
"SPI-MISO", "SPI-CE1", "",
|
||||||
"IO-6", "IO-3", "IO-2", "IO-0", "", "", "", "",
|
"IO-6", "IO-3", "IO-2", "IO-0", "", "", "", "",
|
||||||
"", "", "", "", "", "", "", "";
|
"", "", "", "", "", "", "", "";
|
||||||
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "axp209.dtsi"
|
#include "axp209.dtsi"
|
||||||
@ -329,9 +324,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb0_vbus_power-supply = <&usb_power_supply>;
|
usb0_vbus_power-supply = <&usb_power_supply>;
|
||||||
usb0_vbus-supply = <®_usb0_vbus>;
|
usb0_vbus-supply = <®_usb0_vbus>;
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
|
@ -63,12 +63,12 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
blue {
|
led-0 {
|
||||||
label = "bananapro:blue:usr";
|
label = "bananapro:blue:usr";
|
||||||
gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
green {
|
led-1 {
|
||||||
label = "bananapro:green:usr";
|
label = "bananapro:green:usr";
|
||||||
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -109,14 +109,10 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
phy-supply = <®_gmac_3v3>;
|
phy-supply = <®_gmac_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
@ -143,6 +139,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
@ -75,12 +75,12 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
blue {
|
led-0 {
|
||||||
label = "cubieboard2:blue:usr";
|
label = "cubieboard2:blue:usr";
|
||||||
gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
green {
|
led-1 {
|
||||||
label = "cubieboard2:green:usr";
|
label = "cubieboard2:green:usr";
|
||||||
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -115,13 +115,9 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_mii_pins>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -161,6 +157,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&ohci0 {
|
&ohci0 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -173,14 +175,6 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
&pio {
|
|
||||||
usb0_id_detect_pin: usb0-id-detect-pin {
|
|
||||||
pins = "PH4";
|
|
||||||
function = "gpio_in";
|
|
||||||
bias-pull-up;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
®_ahci_5v {
|
®_ahci_5v {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -236,9 +230,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&usbphy {
|
&usbphy {
|
||||||
pinctrl-names = "default";
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
pinctrl-0 = <&usb0_id_detect_pin>;
|
|
||||||
usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
|
|
||||||
usb1_vbus-supply = <®_usb1_vbus>;
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
usb2_vbus-supply = <®_usb2_vbus>;
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
@ -75,22 +75,22 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
blue {
|
led-0 {
|
||||||
label = "cubietruck:blue:usr";
|
label = "cubietruck:blue:usr";
|
||||||
gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
orange {
|
led-1 {
|
||||||
label = "cubietruck:orange:usr";
|
label = "cubietruck:orange:usr";
|
||||||
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
white {
|
led-2 {
|
||||||
label = "cubietruck:white:usr";
|
label = "cubietruck:white:usr";
|
||||||
gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
|
|
||||||
green {
|
led-3 {
|
||||||
label = "cubietruck:green:usr";
|
label = "cubietruck:green:usr";
|
||||||
gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -150,13 +150,9 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&hdmi {
|
&hdmi {
|
||||||
@ -194,6 +190,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
182
arch/arm/dts/sun7i-a20-haoyu-marsboard.dts
Normal file
182
arch/arm/dts/sun7i-a20-haoyu-marsboard.dts
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||||
|
/*
|
||||||
|
* Copyright 2021 Conley Lee
|
||||||
|
* Conley Lee <conleylee@foxmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include "sun7i-a20.dtsi"
|
||||||
|
#include "sunxi-common-regulators.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "HAOYU Electronics Marsboard A20";
|
||||||
|
compatible = "haoyu,a20-marsboard", "allwinner,sun7i-a20";
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
serial0 = &uart0;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
stdout-path = "serial0:115200n8";
|
||||||
|
};
|
||||||
|
|
||||||
|
hdmi-connector {
|
||||||
|
compatible = "hdmi-connector";
|
||||||
|
type = "a";
|
||||||
|
|
||||||
|
port {
|
||||||
|
hdmi_con_in: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_out_con>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ahci {
|
||||||
|
target-supply = <®_ahci_5v>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&codec {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&cpu0 {
|
||||||
|
cpu-supply = <®_dcdc2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&de {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ehci1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gmac {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&gmac_mii_pins>, <&gmac_txerr>;
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
phy-mode = "mii";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&hdmi_out {
|
||||||
|
hdmi_out_con: endpoint {
|
||||||
|
remote-endpoint = <&hdmi_con_in>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
axp209: pmic@34 {
|
||||||
|
reg = <0x34>;
|
||||||
|
interrupt-parent = <&nmi_intc>;
|
||||||
|
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mmc0 {
|
||||||
|
vmmc-supply = <®_vcc3v3>;
|
||||||
|
bus-width = <4>;
|
||||||
|
cd-gpios = <&pio 7 10 GPIO_ACTIVE_LOW>; /* PH10 */
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci0 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ohci1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&otg_sram {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pio {
|
||||||
|
gmac_txerr: gmac-txerr-pin {
|
||||||
|
pins = "PA17";
|
||||||
|
function = "gmac";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ahci_5v {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "axp209.dtsi"
|
||||||
|
|
||||||
|
&ac_power_supply {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1450000>;
|
||||||
|
regulator-name = "vdd-cpu";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_dcdc3 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1400000>;
|
||||||
|
regulator-name = "vdd-int-dll";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo1 {
|
||||||
|
regulator-name = "vdd-rtc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_ldo2 {
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-min-microvolt = <3000000>;
|
||||||
|
regulator-max-microvolt = <3000000>;
|
||||||
|
regulator-name = "avcc";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb1_vbus {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
®_usb2_vbus {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart0 {
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&uart0_pb_pins>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usb_otg {
|
||||||
|
dr_mode = "otg";
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&usbphy {
|
||||||
|
usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
|
||||||
|
usb1_vbus-supply = <®_usb1_vbus>;
|
||||||
|
usb2_vbus-supply = <®_usb2_vbus>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
@ -100,19 +100,10 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
phy-supply = <®_gmac_vdd>;
|
phy-supply = <®_gmac_vdd>;
|
||||||
/* phy reset config */
|
|
||||||
snps,reset-gpio = <&pio 0 17 GPIO_ACTIVE_HIGH>; /* PA17 */
|
|
||||||
snps,reset-active-low;
|
|
||||||
/* wait 1s after reset, otherwise fail to read phy id */
|
|
||||||
snps,reset-delays-us = <0 10000 1000000>;
|
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
@ -146,6 +137,16 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
reset-gpios = <&pio 0 17 GPIO_ACTIVE_LOW>; /* PA17 */
|
||||||
|
reset-assert-us = <10000>;
|
||||||
|
/* wait 1s after reset, otherwise fail to read phy id */
|
||||||
|
reset-deassert-us = <1000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
vmmc-supply = <®_vcc3v0>;
|
vmmc-supply = <®_vcc3v0>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
@ -62,12 +62,12 @@
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
red {
|
led-0 {
|
||||||
label = "i12_tvbox:red:usr";
|
label = "i12_tvbox:red:usr";
|
||||||
gpios = <&pio 7 9 GPIO_ACTIVE_LOW>;
|
gpios = <&pio 7 9 GPIO_ACTIVE_LOW>;
|
||||||
};
|
};
|
||||||
|
|
||||||
blue {
|
led-1 {
|
||||||
label = "i12_tvbox:blue:usr";
|
label = "i12_tvbox:blue:usr";
|
||||||
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
|
||||||
};
|
};
|
||||||
@ -115,14 +115,10 @@
|
|||||||
&gmac {
|
&gmac {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_mii_pins>;
|
pinctrl-0 = <&gmac_mii_pins>;
|
||||||
phy = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "mii";
|
phy-mode = "mii";
|
||||||
phy-supply = <®_gmac_3v3>;
|
phy-supply = <®_gmac_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
phy1: ethernet-phy@1 {
|
|
||||||
reg = <1>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
@ -145,6 +141,12 @@
|
|||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&gmac_mdio {
|
||||||
|
phy1: ethernet-phy@1 {
|
||||||
|
reg = <1>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&mmc0 {
|
&mmc0 {
|
||||||
vmmc-supply = <®_vcc3v3>;
|
vmmc-supply = <®_vcc3v3>;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user