suniv: add new target
authorZoltan HERPAI <wigyori@uid0.hu>
Wed, 13 Mar 2019 23:24:50 +0000 (00:24 +0100)
committerZoltan HERPAI <wigyori@uid0.hu>
Mon, 21 Dec 2020 09:17:38 +0000 (10:17 +0100)
This is Allwinner's ARM926EJ-S core, which is one of its early
products, reappearing in recent compact designs. The SoC includes
32Mb memory integrated, and has display and USB interfaces,
allowing for small footprint boards.

The target consists of basic 5.4 support, without u-boot.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
target/linux/suniv/Makefile [new file with mode: 0644]
target/linux/suniv/base-files/etc/board.d/02_network [new file with mode: 0755]
target/linux/suniv/base-files/lib/upgrade/platform.sh [new file with mode: 0644]
target/linux/suniv/config-5.4 [new file with mode: 0644]
target/linux/suniv/image/Makefile [new file with mode: 0644]
target/linux/suniv/patches-5.4/0001-series.patch [new file with mode: 0644]

diff --git a/target/linux/suniv/Makefile b/target/linux/suniv/Makefile
new file mode 100644 (file)
index 0000000..125be40
--- /dev/null
@@ -0,0 +1,29 @@
+#
+# Copyright (C) 2019 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+ARCH:=arm
+BOARD:=suniv
+BOARDNAME:=Allwinner F1C-series
+FEATURES:=gpio ramdisk rtc squashfs
+DEVICE_TYPE:=developerboard
+CPU_TYPE:=arm926ej-s
+
+MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
+
+KERNEL_PATCHVER:=5.4
+
+include $(INCLUDE_DIR)/target.mk
+
+DEFAULT_PACKAGES += \
+       kmod-button-hotplug kmod-input-gpio-keys-polled \
+       kmod-ledtrig-timer kmod-leds-gpio uboot-envtools
+
+KERNELNAME:=zImage dtbs
+
+$(eval $(call BuildTarget))
diff --git a/target/linux/suniv/base-files/etc/board.d/02_network b/target/linux/suniv/base-files/etc/board.d/02_network
new file mode 100755 (executable)
index 0000000..03e138c
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Copyright (C) 2013-2019 OpenWrt.org
+
+. /lib/functions/uci-defaults.sh
+
+board_config_update
+
+board=$(board_name)
+
+case "$board" in
+*)
+       ucidef_set_interface_lan 'eth0'
+       ;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/suniv/base-files/lib/upgrade/platform.sh b/target/linux/suniv/base-files/lib/upgrade/platform.sh
new file mode 100644 (file)
index 0000000..ea8672b
--- /dev/null
@@ -0,0 +1,9 @@
+REQUIRE_IMAGE_METADATA=1
+
+platform_check_image() {
+       return 0
+}
+
+platform_do_upgrade() {
+       return 0
+}
diff --git a/target/linux/suniv/config-5.4 b/target/linux/suniv/config-5.4
new file mode 100644 (file)
index 0000000..d6f3dee
--- /dev/null
@@ -0,0 +1,559 @@
+CONFIG_AHCI_SUNXI=m
+# CONFIG_AIO is not set
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_ARCH_HAS_PHYS_TO_DMA=y
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_CPU_AUTO=y
+# CONFIG_ARCH_MULTI_V4 is not set
+# CONFIG_ARCH_MULTI_V4T is not set
+CONFIG_ARCH_MULTI_V4_V5=y
+CONFIG_ARCH_MULTI_V5=y
+CONFIG_ARCH_NR_GPIO=416
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_ARCH_SUNXI_V5=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARM=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARM_HAS_SG_CHAIN=y
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_UNWIND=y
+CONFIG_ATA=y
+CONFIG_ATAGS=y
+# CONFIG_ATA_SFF is not set
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_AXP20X_POWER=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_BCH=y
+CONFIG_BINFMT_MISC=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BOUNCE=y
+CONFIG_CAN=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_COMMON_CLK=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_CONNECTOR=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_COREDUMP=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5TJ=y
+CONFIG_CPU_ARM926T=y
+# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_USE_DOMAINS=y
+CONFIG_CRASH_CORE=y
+CONFIG_CRASH_DUMP=y
+CONFIG_CRC16=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_DEV_SUN4I_SS=y
+CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_USER is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_DWMAC_DWC_QOS_ETH is not set
+CONFIG_DWMAC_GENERIC=y
+# CONFIG_DWMAC_SUN8I is not set
+CONFIG_DWMAC_SUNXI=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_ELF_CORE=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_EXT4_FS=y
+CONFIG_EXTCON=y
+# CONFIG_F2FS_CHECK_FS is not set
+CONFIG_F2FS_FS=y
+# CONFIG_F2FS_FS_SECURITY is not set
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_STAT_FS=y
+CONFIG_FAT_FS=y
+CONFIG_FB=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_FOREIGN_ENDIAN=y
+CONFIG_FB_LITTLE_ENDIAN=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAME_WARN=2048
+CONFIG_FREEZER=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GLOB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_HWMON=y
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=y
+CONFIG_HZ_FIXED=0
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_IIO=y
+# CONFIG_IIO_BUFFER is not set
+# CONFIG_IIO_TRIGGER is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INPUT=y
+CONFIG_INPUT_AXP20X_PEK=y
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IPV6=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+# CONFIG_IPV6_PIMSM_V2 is not set
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_COMMON=y
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+CONFIG_JBD2=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_UNCOMPRESSED=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_CORE=y
+CONFIG_KEYBOARD_SUN4I_LRADC=y
+CONFIG_KSM=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_PLATFORM=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_LIBFDT=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_MACH_SUNIV=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_SUN4I=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEMFD_CREATE=y
+# CONFIG_MFD_AC100 is not set
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_AXP20X_RSB=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SUN6I_PRCM=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_MIGRATION=y
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_SUNXI=y
+CONFIG_MODULES_USE_ELF_REL=y
+# CONFIG_MTD_IMPA7 is not set
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_BCH=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_BCH=y
+CONFIG_MTD_NAND_PLATFORM=y
+CONFIG_MTD_NAND_SUNXI=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPLIT_FIT_FW=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_KUSER_HELPERS=y
+CONFIG_NEED_PER_CPU_KM=y
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_TARGET_FLOWOFFLOAD=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NET_INGRESS=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NET_VENDOR_ALLWINNER=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_RTCACHE=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_HW=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_REDIRECT=y
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NLS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NO_BOOTMEM=y
+CONFIG_NO_HZ=y
+CONFIG_NO_HZ_COMMON=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SUNXI_SID=y
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_NET=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PHY_SUN4I_USB=y
+# CONFIG_PHY_SUN9I_USB is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_AXP209=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINCTRL_SUNIV_F1C100S=y
+CONFIG_PINCTRL_SUNXI=y
+CONFIG_PM=y
+CONFIG_PM_CLK=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_OPP=y
+CONFIG_PM_SLEEP=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PPP=m
+CONFIG_PPPOE=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPS=y
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_RCU=y
+CONFIG_PRINTK_TIME=y
+CONFIG_PROC_EVENTS=y
+CONFIG_PROC_VMCORE=y
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PWM=y
+CONFIG_PWM_SUN4I=y
+CONFIG_PWM_SYSFS=y
+CONFIG_RATIONAL=y
+# CONFIG_RCU_BOOST is not set
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_REFCOUNT_FULL=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_SY8106A=y
+CONFIG_RELAY=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RESET_SUNXI=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_PMP=y
+CONFIG_SCSI=y
+CONFIG_SDIO_UART=y
+CONFIG_SECURITYFS=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_NR_UARTS=8
+CONFIG_SERIAL_8250_RUNTIME_UARTS=8
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SG_POOL=y
+CONFIG_SLHC=m
+CONFIG_SND=y
+CONFIG_SND_COMPRESS_OFFLOAD=y
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_PCM=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+# CONFIG_SND_SUN4I_I2S is not set
+# CONFIG_SND_SUN4I_SPDIF is not set
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_SUN4I=y
+# CONFIG_SPI_SUN6I is not set
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+CONFIG_SRCU=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STMMAC_ETH=y
+CONFIG_STMMAC_PLATFORM=y
+CONFIG_SUN4I_EMAC=m
+CONFIG_SUN4I_TIMER=y
+# CONFIG_SUN8I_A83T_CCU is not set
+CONFIG_SUN8I_DE2_CCU=y
+CONFIG_SUN8I_R_CCU=y
+CONFIG_SUNIV_F1C100S_CCU=y
+CONFIG_SUNXI_CCU=y
+CONFIG_SUNXI_RSB=y
+CONFIG_SUNXI_SRAM=y
+CONFIG_SUNXI_WATCHDOG=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SWCONFIG=y
+CONFIG_SWCONFIG_B53=y
+# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set
+CONFIG_SWCONFIG_B53_PHY_DRIVER=y
+CONFIG_SWCONFIG_B53_PHY_FIXUP=y
+# CONFIG_SWCONFIG_B53_SRAB_DRIVER is not set
+CONFIG_SWPHY=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TASKS_RCU=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+CONFIG_TOUCHSCREEN_SUN4I=y
+CONFIG_TREE_SRCU=y
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_DWC2_HOST=y
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USERIO=y
+CONFIG_USE_OF=y
+CONFIG_VFAT_FS=y
+CONFIG_VFP=y
+CONFIG_VHOST=y
+CONFIG_VHOST_NET=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0
+CONFIG_ZBOOT_ROM_TEXT=0
diff --git a/target/linux/suniv/image/Makefile b/target/linux/suniv/image/Makefile
new file mode 100644 (file)
index 0000000..644c2b8
--- /dev/null
@@ -0,0 +1,15 @@
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/image.mk
+
+VMLINUX:=$(BIN_DIR)/$(IMG_PREFIX)-vmlinux
+UIMAGE:=$(BIN_DIR)/$(IMG_PREFIX)-uImage
+
+ifeq ($(SUBTARGET),ox810se)
+include ox810se.mk
+endif
+
+ifeq ($(SUBTARGET),ox820)
+include ox820.mk
+endif
+
+$(eval $(call BuildImage))
diff --git a/target/linux/suniv/patches-5.4/0001-series.patch b/target/linux/suniv/patches-5.4/0001-series.patch
new file mode 100644 (file)
index 0000000..c3710c5
--- /dev/null
@@ -0,0 +1,3453 @@
+From patchwork Wed Nov 21 18:30:34 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10693003
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2B6F213AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:35 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 196092C4A0
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:35 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 09BBA2C5F2; Wed, 21 Nov 2018 18:33:35 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 865A42C284
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:34 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1731213AbeKVFHL (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:11 -0500
+Received: from mail-wm1-f67.google.com ([209.85.128.67]:53512 "EHLO
+        mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1726636AbeKVFHK (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:10 -0500
+Received: by mail-wm1-f67.google.com with SMTP id y1so3287335wmi.3;
+        Wed, 21 Nov 2018 10:31:42 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=s9bcD6A9iwk7zqNy7pS9kX1j1yEfgiEVlC+/BUWHVNs=;
+        b=Z6VfHML0hlqINpMyhLCNawFI6IHfuxcqGAL8eQeZHgrPhZoKbxIVDStjtT3gDK/Bia
+         cxBgozdRbOvpElXv09OZ/+f/Jcl9I2y8dX38FH1LLAMthnUwtgBmVLdNtaDnmn90J2m8
+         s7zfdo8+yUN7ghZZurcBLCsPE5komXu/GUb1YY7Nuk/kUg8AS4dKF2dH4R9bGqf4kngS
+         Btrw66N1lpvZFkjFrezqM2cQd3WEmfz0ImQq5sVf9Ry5apBbqwUvFiqEzqzSqLOJ6Lfw
+         N+pIYxCkTeMWiKvBf7iY8Mmi4xLlCIaSEkeUlTulS7gMMAeIZDHc7ZA1/WmPsn3C6+OK
+         jorw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=s9bcD6A9iwk7zqNy7pS9kX1j1yEfgiEVlC+/BUWHVNs=;
+        b=g3MiXw63/KH8KCCnSLImnNHIkwbTM06oZewOptYFtqSCoE/zZL5YMgS9WNmDDufcHQ
+         tmdVNnPmVfFEcVPv180kW0ev0WUptjiSLIulyhcgyAYlkw3AObgr6CM8dIac/VSe4em9
+         sgKiotJn2Dvu3d1cNZkTPjRDa8TiqrIoXLO4VDYAvp5GTvFlB8IFsSPDA+P0J3XNfVx0
+         qnFMLgiIudrzuTOnY1Ae9LRP0ARIwFqWA9FKFtfePyfG8dN+/QbZ7uNsfiW7QKukKxiS
+         KMEZj78apMyWZgDD5GtibCwd7ESVtq/MI7VWZTISpLIhnIbCG9/K8zrW1oJkTSfS/Ltz
+         2hSQ==
+X-Gm-Message-State: AA+aEWadOMCZo67LIC0dhalWX2XFinARfWKdcb5AvR2l9yZePXoyw/TE
+        Aos904CKma5UjLpegIWJBf9bRMZHS28=
+X-Google-Smtp-Source: 
+ AJdET5dlsDVRbHTPYCCUQ9k4nWBR6nv8KU10OKmtGn9n3gZDfPRJhRAYp9H0yhk+BNHVxLuMyqcqUg==
+X-Received: by 2002:a1c:9690:: with SMTP id
+ y138-v6mr7151954wmd.67.1542825101310;
+        Wed, 21 Nov 2018 10:31:41 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.39
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:40 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 01/17] ARM: add CONFIG_ARCH_SUNXI_V7 for differentiate
+ ARMv5/v7 Allwinner SoCs
+Date: Wed, 21 Nov 2018 21:30:34 +0300
+Message-Id: 
+ <267ffcf3b91930a82f20d93e1fad1fceaf8b9b0e.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Allwinner also has some ARMv5 SoCs.
+
+In order to add support for them, add a CONFIG_ARCH_SUNXI_V7 bool config
+which is selected when a ARMv7 soc is selected, and make CONFIG_ARCH_SUNXI
+a common option which is selected by both V7 and V5 sunxi option.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+---
+ arch/arm/mach-sunxi/Kconfig | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
+index d9c8ecf..7e5f173 100644
+--- a/arch/arm/mach-sunxi/Kconfig
++++ b/arch/arm/mach-sunxi/Kconfig
+@@ -6,31 +6,38 @@ menuconfig ARCH_SUNXI
+       select GENERIC_IRQ_CHIP
+       select GPIOLIB
+       select PINCTRL
+-      select PM_OPP
+       select SUN4I_TIMER
+       select RESET_CONTROLLER
++      help
++        Support for Allwinner ARM-based family of processors
+ if ARCH_SUNXI
++if ARCH_MULTI_V7
++
++config ARCH_SUNXI_V7
++      bool
++      select PM_OPP
++
+ config MACH_SUN4I
+       bool "Allwinner A10 (sun4i) SoCs support"
+-      default ARCH_SUNXI
++      select ARCH_SUNXI_V7
+ config MACH_SUN5I
+       bool "Allwinner A10s / A13 (sun5i) SoCs support"
+-      default ARCH_SUNXI
++      select ARCH_SUNXI_V7
+       select SUN5I_HSTIMER
+ config MACH_SUN6I
+       bool "Allwinner A31 (sun6i) SoCs support"
+-      default ARCH_SUNXI
++      select ARCH_SUNXI_V7
+       select ARM_GIC
+       select MFD_SUN6I_PRCM
+       select SUN5I_HSTIMER
+ config MACH_SUN7I
+       bool "Allwinner A20 (sun7i) SoCs support"
+-      default ARCH_SUNXI
++      select ARCH_SUNXI_V7
+       select ARM_GIC
+       select ARM_PSCI
+       select ARCH_SUPPORTS_BIG_ENDIAN
+@@ -39,13 +46,13 @@ config MACH_SUN7I
+ config MACH_SUN8I
+       bool "Allwinner sun8i Family SoCs support"
+-      default ARCH_SUNXI
++      select ARCH_SUNXI_V7
+       select ARM_GIC
+       select MFD_SUN6I_PRCM
+ config MACH_SUN9I
+       bool "Allwinner (sun9i) SoCs support"
+-      default ARCH_SUNXI
++      select ARCH_SUNXI_V7
+       select ARM_GIC
+ config ARCH_SUNXI_MC_SMP
+@@ -56,3 +63,5 @@ config ARCH_SUNXI_MC_SMP
+       select ARM_CPU_SUSPEND
+ endif
++
++endif
+
+From patchwork Wed Nov 21 18:30:36 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692997
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 455E813AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:26 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 348902C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:26 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 281082C68A; Wed, 21 Nov 2018 18:33:26 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C700D2C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:25 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733178AbeKVFHR (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:17 -0500
+Received: from mail-wm1-f66.google.com ([209.85.128.66]:52483 "EHLO
+        mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1726636AbeKVFHQ (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:16 -0500
+Received: by mail-wm1-f66.google.com with SMTP id r11-v6so6504703wmb.2;
+        Wed, 21 Nov 2018 10:31:47 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=1mnsltmYAdfzx//1tNZey2yDKhj5NRJvXDg0n2PKqos=;
+        b=frh5Ln65+nXFgBkMzCH1gttsHvU62SCD7t977TGysujbPP3/hc+K+hvrSKxjHw/3a0
+         3b56gaVxh5LB1TUqE0RzUuJt8tt8D2VoSVfiOq0EG8GaWJCnR71NKpV7GTgX+y+MugCS
+         nuFEnGPFsMVkxj6m9c1BA9MMo/iK/gjA5XIhky0BzYTnmlf9rueZGe6DK2V/dqdcmsNs
+         gzx0J84n7Ez0J2BfOqfyQn6odIbXb6GAcszBjtCBHP1QF7QrZDg7TSZC3+1sTOQ6aoMK
+         UsdiL8GFjvEFpqsmE96ST83wLmNd8f216gdUDu370uMz9C2hKI4bpl7DhI/nbDWLvNiq
+         iUOg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=1mnsltmYAdfzx//1tNZey2yDKhj5NRJvXDg0n2PKqos=;
+        b=QSemKETj73RLX5KbN8bZeM/IQnu1nwPO183vHvE/zLH5i/r9Rpe4EZ7LiPdV1JRclA
+         z5WCbxQ0faVfrIl2MzxxorpZDAltgz3lUwdYhbzQFb+t+BxqTTn8FOtyRxlQnUasi65b
+         eo4w26UMTL4gG+VkNR4t4iNVpYPWg48LG3cLWsUdGiV+FPd3lomCfcktyZjq8fZgoPKi
+         Do5qcWm6iHkoR+nrViL6HWeqWMNi4dyJ/wDvyyC9UwpW12lVzQJPkKjUrE0PD9iIDe4v
+         5kxNl6ZXE9yp5DmtKzL9u7NNi8P0sGhaMH64GLZ+lkqH9R+vxv6MZAl+S3rRT9NqCESW
+         v3Mw==
+X-Gm-Message-State: AA+aEWaKLnJ+0AGuqZEpOULdpj9vcTgWTbOUMqPHoT+7SRi/TgG/uDLT
+        6gDTbGqUPPYv3FvqTRrT4cUMN9aYYxM=
+X-Google-Smtp-Source: 
+ AFSGD/Wnob+ckMQNDOypexd/EFvkZyhhSZPTpVox1sAsbQG3UugK2cx7QQYnnI8IInq0cv2gKP7rlg==
+X-Received: by 2002:a1c:9f0e:: with SMTP id i14mr3747061wme.10.1542825106444;
+        Wed, 21 Nov 2018 10:31:46 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.44
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:45 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 03/17] ARM: sunxi: add Allwinner ARMv5 SoCs
+Date: Wed, 21 Nov 2018 21:30:36 +0300
+Message-Id: 
+ <731846a31ad2c602ca4fcf1c417deace60c625b8.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Add option for Allwinner ARMv5 SoCs and SoC F1C100s (which has a die
+used for many new F-series products, including F1C100A, F1C100s, F1C200s,
+F1C500, F1C600).
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ arch/arm/mach-sunxi/Kconfig | 16 +++++++++++++++-
+ arch/arm/mach-sunxi/sunxi.c | 10 ++++++++++
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
+index 7e5f173..23dffbd 100644
+--- a/arch/arm/mach-sunxi/Kconfig
++++ b/arch/arm/mach-sunxi/Kconfig
+@@ -1,6 +1,6 @@
+ menuconfig ARCH_SUNXI
+       bool "Allwinner SoCs"
+-      depends on ARCH_MULTI_V7
++      depends on ARCH_MULTI_V5 || ARCH_MULTI_V7
+       select ARCH_HAS_RESET_CONTROLLER
+       select CLKSRC_MMIO
+       select GENERIC_IRQ_CHIP
+@@ -64,4 +64,18 @@ config ARCH_SUNXI_MC_SMP
+ endif
++if ARCH_MULTI_V5
++
++config ARCH_SUNXI_V5
++      bool
++
++config MACH_SUNIV
++      bool "Allwinner ARMv5 F-series (suniv) SoCs support"
++      select ARCH_SUNXI_V5
++      help
++        Support for Allwinner suniv ARMv5 SoCs. 
++        (F1C100A, F1C100s, F1C200s, F1C500, F1C600) 
++
++endif
++
+ endif
+diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
+index de4b0e9..155cd9e 100644
+--- a/arch/arm/mach-sunxi/sunxi.c
++++ b/arch/arm/mach-sunxi/sunxi.c
+@@ -101,3 +101,13 @@ static const char * const sun9i_board_dt_compat[] = {
+ DT_MACHINE_START(SUN9I_DT, "Allwinner sun9i Family")
+       .dt_compat      = sun9i_board_dt_compat,
+ MACHINE_END
++
++static const char * const suniv_board_dt_compat[] = {
++      "allwinner,suniv-f1c100s",
++      NULL,
++};
++
++DT_MACHINE_START(SUNIV_DT, "Allwinner suniv Family")
++      .dt_compat      = suniv_board_dt_compat,
++MACHINE_END
++
+
+From patchwork Wed Nov 21 18:30:37 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692995
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id ED9311709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:23 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DD2C32C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:23 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id CF9F52C68C; Wed, 21 Nov 2018 18:33:23 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F95C2C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:23 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733190AbeKVFHS (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:18 -0500
+Received: from mail-wr1-f66.google.com ([209.85.221.66]:37664 "EHLO
+        mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733171AbeKVFHR (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:17 -0500
+Received: by mail-wr1-f66.google.com with SMTP id j10so6740914wru.4;
+        Wed, 21 Nov 2018 10:31:49 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=qvVTPqTluJSo6gOOlAY6VgJ+dxiR1YqQ281vDq1n6pw=;
+        b=nEdOH3uZePWuM8JdhBtTbSxyv4pLuEhPtE7ExViH4bH91E0Jv/atlzvzvVFBfOru41
+         6EiDHQZ6BOMzUojOuqobEg9+khcQ2/86tlU0RJiJIu7D5E3oV5WN8VEkN1tA86RmRoly
+         lSt3QDZ+n087MCAYGacmkJvDo77piyNG0TIHEz2jSETpftRm0+VBRv8rwfoAzNPrD5Xp
+         vM3np86lFRS9Rfgu9OySrKrYkXhpJ3/DPAnAjCAz5xB5vmT2wtBiey31vUrbmdx0Kf1K
+         5ybUtZntWEN5J+jE1OqO/CMmeoLAht5m+uCDAfp7eBGCDzMwTBduT5z70ye1jGWM+7n0
+         FIvA==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=qvVTPqTluJSo6gOOlAY6VgJ+dxiR1YqQ281vDq1n6pw=;
+        b=WMTsVXej818vi1Ru0IKEJqtixqKK79W70Inyop7o18mfs/SR0swBPWGu9ddr9yhK8k
+         5LAUXDJUHowaoVPHRccJADBGlLjuXpGzlf6HPlFzVl2iFIb+X9AQ6mpelgrGDg2UUJBJ
+         RJPVXh28LdzgekOWCSZQTkgtNreK557vGh3UB2nAzoceUDyFdFOEUSM3OngfE/Vw77jW
+         IUHPDpmjml9zWFlcvyxWIryF5i3dA/qwoJJnjU2YLCTYUpKjwfHcIQdJPCkpR5qgiTGX
+         6ARKB6O0ANbIfFa9b+5drpiX5LbU6d4CGgciRFgcgFyXLE7OotUpz4gTIEDpjMNm49aB
+         5Fmg==
+X-Gm-Message-State: AA+aEWb5VN4DMi4qPlWaEF23K57vEkL6fcaPBVIZjusNJOMD2vetNTu/
+        9ypW+e3/O5E47a6iATQ4koYzvQ56rOo=
+X-Google-Smtp-Source: 
+ AFSGD/VU+o9H+nHeCGtZ3uCa3HureUXSMFr2Q8JW22lmUdnl5FQ8M01nrlbU3tOGiLqMah9Y/MnDdg==
+X-Received: by 2002:a5d:5089:: with SMTP id a9mr7065656wrt.327.1542825108485;
+        Wed, 21 Nov 2018 10:31:48 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.46
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:47 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 04/17] dt-bindings: interrupt-controller: Add suniv
+ interrupt-controller
+Date: Wed, 21 Nov 2018 21:30:37 +0300
+Message-Id: 
+ <d0942fe5b1bb83646af0fa1f475ac0b468e1612e.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Add compatible string for Alwinner suniv F1C100s SoC interrupt
+controller which is stripped version of sun4i
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ .../devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt   | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
+index b290ca1..4043525 100644
+--- a/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
++++ b/Documentation/devicetree/bindings/interrupt-controller/allwinner,sun4i-ic.txt
+@@ -2,7 +2,9 @@ Allwinner Sunxi Interrupt Controller
+ Required properties:
+-- compatible : should be "allwinner,sun4i-a10-ic"
++- compatible : should be one of the following:
++              "allwinner,sun4i-a10-ic"
++              "allwinner,suniv-f1c100s-ic"
+ - reg : Specifies base physical address and size of the registers.
+ - interrupt-controller : Identifies the node as an interrupt controller
+ - #interrupt-cells : Specifies the number of cells needed to encode an
+
+From patchwork Wed Nov 21 18:30:38 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692993
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C23F81709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:20 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD90A2C683
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:20 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id A03592C68A; Wed, 21 Nov 2018 18:33:20 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=unavailable version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1A31A2C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:20 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733207AbeKVFHW (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:22 -0500
+Received: from mail-wm1-f66.google.com ([209.85.128.66]:35029 "EHLO
+        mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733189AbeKVFHV (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:21 -0500
+Received: by mail-wm1-f66.google.com with SMTP id c126so6746229wmh.0;
+        Wed, 21 Nov 2018 10:31:51 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=dFmNuuSAwAlTK4F/prHO9aooOqQzQOaScYXy9C90Ogw=;
+        b=LaIqiUIoS8yH2mRrMH/5YWpxQzOVLp0jOfUpt1GlXxw2+aBBEOopa/BuZBrNkczjEe
+         X5eanmCMTYE0yj4cz7T6dUK+RxCPIoNrrqXh6mWVjT9zLuqV+WljO5FpkhAI0AgbGBgM
+         3f1mbLZZdcZBkCghDIqePCltd9OEiGIyaIzKnmko7ZNcL3ulzbHJMCo2GeGpYLs2axX9
+         T6Zvq4RQXlR+BBlWRwamDa7birjuY3W7/0GSfpgk8x2EfazioZnrwB9FjHeVWc0F4dN4
+         3o8n2KBZIDJkhOLJHFJ3HNfhJ1tDAufYpxnQAWoufrwdn2ZH7LyhBTBiZdcAN21qUTeW
+         k0yw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=dFmNuuSAwAlTK4F/prHO9aooOqQzQOaScYXy9C90Ogw=;
+        b=JjlmScVLp/mGougCVYswyHc0NJm7GtcQkRdX7P9PZZ9Nr3mJS+/SGKc/iHhJR0gZPV
+         C1bFGajAhuB4gZvHQZN8/Ea1YuZ5h3Mquek9MAUZWCVtSnEpkggMEHi2CBhkYPzTLnAC
+         aQFdA+MZ14UzPdiUfkM8QQrJzHbMVs6y7t/rV6iN8M9cddqkyphOBSV5zjQ6V11NXHfc
+         OC03V9lmHeITHAEjxYeA/YFPmmSImsWjuyAlye1gH4MgGljkaJn5P2OT6I+bQGLqdmQK
+         ga2mbcU+haVqEfGFv6cc21JvsSfi1SkAwDFb+D80WARgGKwGzxEhHuDY2H5rS0FmHdTF
+         o/dA==
+X-Gm-Message-State: AGRZ1gKZnb88aR8enqHbTl0hRGhQARv5Sot4QYhtJf/tVq5slpz42bJF
+        lxLppeU9XveIjmgHn59DxY6p3TF3oSI=
+X-Google-Smtp-Source: 
+ AJdET5frCXKK+bELArDEuMw3qoVnqLGXoMay6BDImFzwCnVFMEw8J8F6e80im5jkrSRY1Cf0Mmz4/Q==
+X-Received: by 2002:a1c:b4c1:: with SMTP id
+ d184-v6mr7290672wmf.143.1542825110639;
+        Wed, 21 Nov 2018 10:31:50 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.48
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:49 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 05/17] irqchip/sun4i: add support for suniv interrupt
+ controller
+Date: Wed, 21 Nov 2018 21:30:38 +0300
+Message-Id: 
+ <08b40429e46626f4caf8e4d2287b5c4d354e3b7f.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+The new F-series SoCs (suniv) from Allwinner use an stripped version of
+the interrupt controller in A10/A13
+
+Add support for it in irq-sun4i driver.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+---
+ drivers/irqchip/irq-sun4i.c | 104 +++++++++++++++++++++++++++++++-------------
+ 1 file changed, 74 insertions(+), 30 deletions(-)
+
+diff --git a/drivers/irqchip/irq-sun4i.c b/drivers/irqchip/irq-sun4i.c
+index e3e5b91..7ca4a4d 100644
+--- a/drivers/irqchip/irq-sun4i.c
++++ b/drivers/irqchip/irq-sun4i.c
+@@ -28,11 +28,21 @@
+ #define SUN4I_IRQ_NMI_CTRL_REG                0x0c
+ #define SUN4I_IRQ_PENDING_REG(x)      (0x10 + 0x4 * x)
+ #define SUN4I_IRQ_FIQ_PENDING_REG(x)  (0x20 + 0x4 * x)
+-#define SUN4I_IRQ_ENABLE_REG(x)               (0x40 + 0x4 * x)
+-#define SUN4I_IRQ_MASK_REG(x)         (0x50 + 0x4 * x)
++#define SUN4I_IRQ_ENABLE_REG(x)               (irq_ic_data->enable_req_offset + 0x4 * x)
++#define SUN4I_IRQ_MASK_REG(x)         (irq_ic_data->mask_req_offset + 0x4 * x)
++#define SUN4I_IRQ_ENABLE_REG_OFFSET   0x40
++#define SUN4I_IRQ_MASK_REG_OFFSET     0x50
++#define SUNIV_IRQ_ENABLE_REG_OFFSET   0x20
++#define SUNIV_IRQ_MASK_REG_OFFSET     0x30
++
++struct sunxi_irq_chip_data{
++      void __iomem *irq_base;
++      struct irq_domain *irq_domain;
++      u32 enable_req_offset;
++      u32 mask_req_offset;
++};
+-static void __iomem *sun4i_irq_base;
+-static struct irq_domain *sun4i_irq_domain;
++static struct sunxi_irq_chip_data *irq_ic_data;
+ static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs);
+@@ -43,7 +53,7 @@ static void sun4i_irq_ack(struct irq_data *irqd)
+       if (irq != 0)
+               return; /* Only IRQ 0 / the ENMI needs to be acked */
+-      writel(BIT(0), sun4i_irq_base + SUN4I_IRQ_PENDING_REG(0));
++      writel(BIT(0), irq_ic_data->irq_base + SUN4I_IRQ_PENDING_REG(0));
+ }
+ static void sun4i_irq_mask(struct irq_data *irqd)
+@@ -53,9 +63,9 @@ static void sun4i_irq_mask(struct irq_data *irqd)
+       int reg = irq / 32;
+       u32 val;
+-      val = readl(sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(reg));
++      val = readl(irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(reg));
+       writel(val & ~(1 << irq_off),
+-             sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(reg));
++             irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(reg));
+ }
+ static void sun4i_irq_unmask(struct irq_data *irqd)
+@@ -65,9 +75,9 @@ static void sun4i_irq_unmask(struct irq_data *irqd)
+       int reg = irq / 32;
+       u32 val;
+-      val = readl(sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(reg));
++      val = readl(irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(reg));
+       writel(val | (1 << irq_off),
+-             sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(reg));
++             irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(reg));
+ }
+ static struct irq_chip sun4i_irq_chip = {
+@@ -95,42 +105,76 @@ static const struct irq_domain_ops sun4i_irq_ops = {
+ static int __init sun4i_of_init(struct device_node *node,
+                               struct device_node *parent)
+ {
+-      sun4i_irq_base = of_iomap(node, 0);
+-      if (!sun4i_irq_base)
++      irq_ic_data->irq_base = of_iomap(node, 0);
++      if (!irq_ic_data->irq_base)
+               panic("%pOF: unable to map IC registers\n",
+                       node);
+       /* Disable all interrupts */
+-      writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(0));
+-      writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(1));
+-      writel(0, sun4i_irq_base + SUN4I_IRQ_ENABLE_REG(2));
++      writel(0, irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(0));
++      writel(0, irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(1));
++      writel(0, irq_ic_data->irq_base + SUN4I_IRQ_ENABLE_REG(2));
+       /* Unmask all the interrupts, ENABLE_REG(x) is used for masking */
+-      writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(0));
+-      writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(1));
+-      writel(0, sun4i_irq_base + SUN4I_IRQ_MASK_REG(2));
++      writel(0, irq_ic_data->irq_base + SUN4I_IRQ_MASK_REG(0));
++      writel(0, irq_ic_data->irq_base + SUN4I_IRQ_MASK_REG(1));
++      writel(0, irq_ic_data->irq_base + SUN4I_IRQ_MASK_REG(2));
+       /* Clear all the pending interrupts */
+-      writel(0xffffffff, sun4i_irq_base + SUN4I_IRQ_PENDING_REG(0));
+-      writel(0xffffffff, sun4i_irq_base + SUN4I_IRQ_PENDING_REG(1));
+-      writel(0xffffffff, sun4i_irq_base + SUN4I_IRQ_PENDING_REG(2));
++      writel(0xffffffff, irq_ic_data->irq_base + SUN4I_IRQ_PENDING_REG(0));
++      writel(0xffffffff, irq_ic_data->irq_base + SUN4I_IRQ_PENDING_REG(1));
++      writel(0xffffffff, irq_ic_data->irq_base + SUN4I_IRQ_PENDING_REG(2));
+-      /* Enable protection mode */
+-      writel(0x01, sun4i_irq_base + SUN4I_IRQ_PROTECTION_REG);
++      /* Enable protection mode (not available in suniv) */
++      if (of_device_is_compatible(node, "allwinner,sun4i-a10-ic"))
++              writel(0x01, irq_ic_data->irq_base + SUN4I_IRQ_PROTECTION_REG);
+       /* Configure the external interrupt source type */
+-      writel(0x00, sun4i_irq_base + SUN4I_IRQ_NMI_CTRL_REG);
++      writel(0x00, irq_ic_data->irq_base + SUN4I_IRQ_NMI_CTRL_REG);
+-      sun4i_irq_domain = irq_domain_add_linear(node, 3 * 32,
++      irq_ic_data->irq_domain = irq_domain_add_linear(node, 3 * 32,
+                                                &sun4i_irq_ops, NULL);
+-      if (!sun4i_irq_domain)
++      if (!irq_ic_data->irq_domain)
+               panic("%pOF: unable to create IRQ domain\n", node);
+       set_handle_irq(sun4i_handle_irq);
+       return 0;
+ }
+-IRQCHIP_DECLARE(allwinner_sun4i_ic, "allwinner,sun4i-a10-ic", sun4i_of_init);
++
++static int __init sun4i_ic_of_init(struct device_node *node,
++                                 struct device_node *parent)
++{
++      irq_ic_data = kzalloc(sizeof(struct sunxi_irq_chip_data), GFP_KERNEL);
++      if (!irq_ic_data) {
++              pr_err("kzalloc failed!\n");
++              return -ENOMEM;
++      }
++
++      irq_ic_data->enable_req_offset = SUN4I_IRQ_ENABLE_REG_OFFSET;
++      irq_ic_data->mask_req_offset = SUN4I_IRQ_MASK_REG_OFFSET;
++
++      return sun4i_of_init(node, parent);
++}
++
++IRQCHIP_DECLARE(allwinner_sun4i_ic, "allwinner,sun4i-a10-ic", sun4i_ic_of_init);
++
++static int __init suniv_ic_of_init(struct device_node *node,
++                                 struct device_node *parent)
++{
++      irq_ic_data = kzalloc(sizeof(struct sunxi_irq_chip_data), GFP_KERNEL);
++      if (!irq_ic_data) {
++              pr_err("kzalloc failed!\n");
++              return -ENOMEM;
++      }
++
++      irq_ic_data->enable_req_offset = SUNIV_IRQ_ENABLE_REG_OFFSET;
++      irq_ic_data->mask_req_offset = SUNIV_IRQ_MASK_REG_OFFSET;
++
++      return sun4i_of_init(node, parent);
++}
++
++IRQCHIP_DECLARE(allwinner_sunvi_ic, "allwinner,suniv-f1c100s-ic", suniv_ic_of_init);
+ static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
+ {
+@@ -146,13 +190,13 @@ static void __exception_irq_entry sun4i_handle_irq(struct pt_regs *regs)
+        * the extra check in the common case of 1 hapening after having
+        * read the vector-reg once.
+        */
+-      hwirq = readl(sun4i_irq_base + SUN4I_IRQ_VECTOR_REG) >> 2;
++      hwirq = readl(irq_ic_data->irq_base + SUN4I_IRQ_VECTOR_REG) >> 2;
+       if (hwirq == 0 &&
+-                !(readl(sun4i_irq_base + SUN4I_IRQ_PENDING_REG(0)) & BIT(0)))
++                !(readl(irq_ic_data->irq_base + SUN4I_IRQ_PENDING_REG(0)) & BIT(0)))
+               return;
+       do {
+-              handle_domain_irq(sun4i_irq_domain, hwirq, regs);
+-              hwirq = readl(sun4i_irq_base + SUN4I_IRQ_VECTOR_REG) >> 2;
++              handle_domain_irq(irq_ic_data->irq_domain, hwirq, regs);
++              hwirq = readl(irq_ic_data->irq_base + SUN4I_IRQ_VECTOR_REG) >> 2;
+       } while (hwirq != 0);
+ }
+
+From patchwork Wed Nov 21 18:30:39 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692991
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6AED113AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:17 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5C11E2C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:17 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 501552C68C; Wed, 21 Nov 2018 18:33:17 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ECB9E2C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:16 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733221AbeKVFHX (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:23 -0500
+Received: from mail-wm1-f66.google.com ([209.85.128.66]:54278 "EHLO
+        mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733171AbeKVFHW (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:22 -0500
+Received: by mail-wm1-f66.google.com with SMTP id r63-v6so6552783wma.4;
+        Wed, 21 Nov 2018 10:31:53 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=ZkceRaoAsyVLn4ygcIwzBYgJqRFMUtrkHiTDx/pcxF0=;
+        b=QVHRI0ttS6h6Di10gx9GXh3dxdU8X359KgnoIVeMzDFjIknCn8aVuBEzEfSaGmeMl3
+         t0KJrWREOZ32ay7GaYdOe1nlg0MTT02RnTWxRv3pUfCgP/5qQpl2V6sniArwBt4wmogn
+         XuQxFri49txIuX1+bukfgBYBMdS4LD2XPovNXEx30yAvjsHOsY49/usPXlwL2BMMfwxi
+         S9JtrpeiCQYaxCfmsxX4rl6s8xr8jhdPVaaHwiV/9aHnAhQuK1PheesYykOlTELGeuqF
+         ODBaWFdmfSXni1GCoSdb1VH5Uw+nkYf4Q2hnGj5xtAEyzFwnCjZp+mn7IaamUDCK29LF
+         kLPw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=ZkceRaoAsyVLn4ygcIwzBYgJqRFMUtrkHiTDx/pcxF0=;
+        b=rkIfabEmhztmz4BgwURhXzUWQXyzIQRn1RpZFfdXeWLQoyYT9FHHJ4BYzeV85CBUyx
+         m3C6nzwLDWFXHXyHOeg5+k1fqXXgqty3A1hylHls6EOx7LSWcXXy/em1wHJej0eOzCFf
+         u6fi0HcUp8K8amlPbVkv73G94xNHaJqN1odZoGY1GJ0qxm8Wlg1M+DLXO+CEeUEDzg8m
+         xzauuupxrc5K4eG80d2jPCyV150W483Z+BLrfWTiDnIbYUVKU2cd14fSQe49HQqPNHKg
+         9tOOj31I0JefMEL4+kC59kD6RUgJuUIq0kTpR5hbI/p7147toxGBgSd8qt77Sxoca9sF
+         rWHw==
+X-Gm-Message-State: AGRZ1gK+I89wEZb7gUeEVQH4HZwVQZPZ0GcQPTEaI9vh3CeGnPvnxlcU
+        tuJK4sxtVw9wnj8FAMbPLyeOwKTqHT8=
+X-Google-Smtp-Source: 
+ AJdET5f494gSUJCR8DidssS5lkI3ZJIFgF9mzyvcpI+1sd5tvdDJJdiWwWRg42sMGoAIGlUdOMMKjg==
+X-Received: by 2002:a1c:4406:: with SMTP id r6mr6975341wma.151.1542825113062;
+        Wed, 21 Nov 2018 10:31:53 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.50
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:52 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 06/17] dt-bindings: timer: Add Allwinner suniv timer
+Date: Wed, 21 Nov 2018 21:30:39 +0300
+Message-Id: 
+ <9927bde09ef20cadccdf81541fd1f91165508357.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Add compatible string for Allwinner suniv timer which is similar to
+sun4i timer.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt b/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt
+index 5c2e235..3da9d51 100644
+--- a/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt
++++ b/Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt
+@@ -2,7 +2,9 @@ Allwinner A1X SoCs Timer Controller
+ Required properties:
+-- compatible : should be "allwinner,sun4i-a10-timer"
++- compatible : should be one of the following:
++              "allwinner,sun4i-a10-timer"
++              "allwinner,suniv-f1c100s-timer"
+ - reg : Specifies base physical address and size of the registers.
+ - interrupts : The interrupt of the first timer
+ - clocks: phandle to the source clock (usually a 24 MHz fixed clock)
+
+From patchwork Wed Nov 21 18:30:40 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692987
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BFE841709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:13 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B07EA2C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:13 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id A4C242C68A; Wed, 21 Nov 2018 18:33:13 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 574582C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:13 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733245AbeKVFH2 (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:28 -0500
+Received: from mail-wr1-f66.google.com ([209.85.221.66]:35974 "EHLO
+        mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733189AbeKVFHY (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:24 -0500
+Received: by mail-wr1-f66.google.com with SMTP id t3so6743681wrr.3;
+        Wed, 21 Nov 2018 10:31:56 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=SmtHuSS4Ju9nlqHeVEhtDy4G/FoQJSCxrU0Ad2ylIx0=;
+        b=BFn3PqgHJ0GLvkvvVs2J993nyLHyoKEWlXuANbtaOY2tBymxlbLEqL4YHXQHf6lgPg
+         s89M3Wn1XE7dyBRplI/wZ3dpRy8KKfmUdjiCHS1TxfpjAjNpab8nbJIJ+9aG54bmkdPR
+         I9lqZ2xggnNLwKiX2DX4+3n9eUpGpNY24ZMbOO4aSh8DJqcBVthNwdcaNb67fyc61k8x
+         KF8IbxChf4B+zVaxImDSgAEUHCFFmNh5OE2yDWRx7Shjhb9HJiRlo8bNm+DOX+YKEQPL
+         7lyLT//oFsS3VLX9H/NOts934GOM1YE0novaT3tBBq8BhxJnPnJjSmbmmEIi6r2BgU+I
+         Hnbg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=SmtHuSS4Ju9nlqHeVEhtDy4G/FoQJSCxrU0Ad2ylIx0=;
+        b=dtdCMFGAs59TcWY0MWvjtcISSBjA9gKeovpbtmQ2iCR18CX3PRidiIySFNdrakUPq/
+         7YM9UUEJMkRHNW3OsTHJlTjCJ+imbrG5dZ2JCadLCKCjEsYDEJ37HndyBuwFJIGJtQ8C
+         5HVahOEYOhAGzJUbcF1eF7P8hVQaKWVshksekHiCI8uc2UNFfI8X/dUMzkOCX6uZY2UG
+         wWrD9kP2+V6z2EEqtvqo6/jZ84EkwPeIkm7ZfnxplKi9LUPs8JY9EpZi5B3eTQM+6EOn
+         7tVOiRjCb2K+sDS9zuEsltapnjjiSXdMjRh/UmX6YRdrZ5UCPv9a7upHpcJYknPxliOK
+         FMMQ==
+X-Gm-Message-State: AA+aEWZt2sFqrdQERhc3wBoSGIZNKmTwz5+w6cKLrqyRqZx00TlvuiqY
+        nra+4LIlcAe232wvOffGBU0nZ7SWOFE=
+X-Google-Smtp-Source: 
+ AFSGD/WJsNDXnoHprpjRFJDU6SHPWaa9X1xlLqnSYVPffSF08Ev/MBlM5wmDwAQ4byhuQXG8B/X+OQ==
+X-Received: by 2002:adf:f101:: with SMTP id r1mr7019879wro.32.1542825115091;
+        Wed, 21 Nov 2018 10:31:55 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.53
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:54 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 07/17] clocksource: sun4i: add a compatible for suniv
+Date: Wed, 21 Nov 2018 21:30:40 +0300
+Message-Id: 
+ <60bc70fc43743f664de76abf3ab0a01cd7924458.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+The suniv (new F-series) chip has a timer with less functionality than
+the A10 timer, e.g. it has only 3 channels.
+
+Add a new compatible for it. As we didn't use the extra channels on A10
+either now, the code needn't to be changed.
+
+The suniv chip is based on ARM926EJ-S CPU, thus it has no architecture timer.
+
+Register sun4i_timer as sched_clock on it.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+---
+ drivers/clocksource/sun4i_timer.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/clocksource/sun4i_timer.c b/drivers/clocksource/sun4i_timer.c
+index 6e0180a..65f38f6 100644
+--- a/drivers/clocksource/sun4i_timer.c
++++ b/drivers/clocksource/sun4i_timer.c
+@@ -186,7 +186,8 @@ static int __init sun4i_timer_init(struct device_node *node)
+        */
+       if (of_machine_is_compatible("allwinner,sun4i-a10") ||
+           of_machine_is_compatible("allwinner,sun5i-a13") ||
+-          of_machine_is_compatible("allwinner,sun5i-a10s"))
++          of_machine_is_compatible("allwinner,sun5i-a10s") ||
++          of_machine_is_compatible("allwinner,suniv-f1c100s"))
+               sched_clock_register(sun4i_timer_sched_read, 32,
+                                    timer_of_rate(&to));
+@@ -218,3 +219,5 @@ static int __init sun4i_timer_init(struct device_node *node)
+ }
+ TIMER_OF_DECLARE(sun4i, "allwinner,sun4i-a10-timer",
+                      sun4i_timer_init);
++TIMER_OF_DECLARE(suniv, "allwinner,suniv-f1c100s-timer",
++                     sun4i_timer_init);
+
+From patchwork Wed Nov 21 18:30:41 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692989
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A29191709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:14 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 931622C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:14 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 861512C68A; Wed, 21 Nov 2018 18:33:14 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 407552C679
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:14 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733240AbeKVFH2 (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:28 -0500
+Received: from mail-wr1-f65.google.com ([209.85.221.65]:34722 "EHLO
+        mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733235AbeKVFH0 (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:26 -0500
+Received: by mail-wr1-f65.google.com with SMTP id j2so6759057wrw.1;
+        Wed, 21 Nov 2018 10:31:58 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=0xURHP8XF2m49lsumRn2ju0nb1lR12xYG1OQRr1p01U=;
+        b=j6r5UfGciouNBvBfAEOKoqkZPRnplijQfmOrUsxGaeXryvsoBV28Odimzdi8ceDElc
+         6hmUtPdgCrLG4Lj8vu0q7Hyl3yXFVSeJ8N7Ml+4wLeZvmQBtY2YRgg+UrB+1483pM2kT
+         b0CD19dOJZQ9A8j5AVH8C9ReaJIeK0IQgFq8zbVynLdfgF4MfhVw7k+iFfM9tdkBAQ2C
+         nNWuPFxdoe+Wsv94gNFif6LtpyHlZNPjn+AuB4Zv2cF1B2ILJszQbiZXns8E7rBllWz7
+         Dbji5GVaLBbTD8C1Do3nWBdEB8S9JNhUWAgtrIWil1oCxmbmYabzxbk0gmJdda7Iiorb
+         l56g==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=0xURHP8XF2m49lsumRn2ju0nb1lR12xYG1OQRr1p01U=;
+        b=BUa7eGN0WQ6eyfkEzGTK87kllczSIvEwFc1zdA4LmMyQE5eRn77CrYvAAEmuABZGei
+         o+/5BCLcDu7WryTLIHwWgM02GcCulOP6Z5ENVvRQvUuHhou26r/krozmWQGyuBD2HABR
+         kv7dSNVj+m9DIvh9wIj2TZa4VK0SUI6ERzEWRI9tVN18KYMmOmX2ajNs9Ym0FJ3KoQxD
+         rmcy2FNWJugVdWwihHa691GZ+v6hErLLzVMboJKHFFSCT1qs29yN0umYBZgAWbmYL6Uk
+         BYwSOPUJ1J+CmScvzIX0x6bpO1HVgXXALe2gSlp9GYBDCbLtsQypOdNZ8vDQ0hrMes0q
+         7Qgg==
+X-Gm-Message-State: AA+aEWag4eWL+9lBW0p0qgghCau/RMt3WyiK5purjjBGXQCziuO0ypiY
+        i/u20txsJL+vq3qBUnWH208vbCb4UxE=
+X-Google-Smtp-Source: 
+ AFSGD/UxB9hXchm1FdkCAz1Zglqhnb6PInyW1DanfMhooj12ABAqb8wbnEBQL2Rtqb/DwK2TQdTJiQ==
+X-Received: by 2002:a5d:61c4:: with SMTP id q4mr6619956wrv.308.1542825117134;
+        Wed, 21 Nov 2018 10:31:57 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.55
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:56 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 08/17] dt-bindings: pinctrl: Add Allwinner suniv
+ F1C100s pinctrl
+Date: Wed, 21 Nov 2018 21:30:41 +0300
+Message-Id: 
+ <70ac024bf3b6623dc41021ac4893c37adb85a97d.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Add compatible string for Allwinner suniv F1C100s SoC's pinctrl.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
+index 258a464..a7f7133 100644
+--- a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
++++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
+@@ -29,6 +29,7 @@ Required properties:
+   "allwinner,sun50i-h5-pinctrl"
+   "allwinner,sun50i-h6-pinctrl"
+   "allwinner,sun50i-h6-r-pinctrl"
++  "allwinner,suniv-f1c100s-pinctrl"
+   "nextthing,gr8-pinctrl"
+ - reg: Should contain the register physical address and length for the
+
+From patchwork Wed Nov 21 18:30:42 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692985
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9081213AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:11 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7F1F72C683
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:11 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 72B492C68C; Wed, 21 Nov 2018 18:33:11 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,
+       UPPERCASE_50_75 autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B92C2C683
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:33:10 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1731432AbeKVFIY (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:08:24 -0500
+Received: from mail-wr1-f67.google.com ([209.85.221.67]:43611 "EHLO
+        mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733171AbeKVFH3 (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:29 -0500
+Received: by mail-wr1-f67.google.com with SMTP id r10so6722574wrs.10;
+        Wed, 21 Nov 2018 10:32:00 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=uHSXzQltvdwAuoTekTwmiNXWX2hTAAPKaoS/nLIUshI=;
+        b=p90zJx/j5mtnAGehfVnAHhcE2pa6j08jRh4PE0QmDcGm1xYD92h155qTfAN0W8xXDJ
+         gELj/mJk/bgJFOEruPYJgdUEKjreffIBlIWnxrYVc9XWwP2EjWjzeDhFZRiJ0YN1IfY/
+         Wxmhyszs4Ri2FotQaHrck37NrfvAcPpUjayJpz4XqMClyK1GVC5/d2wBiaUolv5sL2mJ
+         /phk7+vXzOs+mOxd+1fd2ll2FB1W92Fva4ZhxKgpPxPXybGhlC6kzUC3dAGAD4kHTblT
+         QCTbWr9erDqcxRwmgVjJzTUjtnSgEsz6P1TIYHPw5K7hBSlQZyJE8F3zNvVBioRkZpB/
+         nAxg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=uHSXzQltvdwAuoTekTwmiNXWX2hTAAPKaoS/nLIUshI=;
+        b=XETPIy0hdQerD/VGB13/h3gQ4EXYSMBTOEXIySdXyGxOOGnG2fBjSuqOd8gixA+azx
+         iUa54ExJudaOJrRXRtLt1BAZjqfmhp/vjCsWfevTMcrwNLjVl3CwEmHTNucr3Yvd/F43
+         RlefbDHFeV7pbBdnn1I7938xJQmzif/EHzTmjikZCEGaJTTctMeANKklW4PLI0mEJePm
+         2bnGiF0tAKOvzgxpkMCYBgH9r79fGOM4UkMw9XW20cPlBabt9MCW0T2xJrrmzCl4DUqX
+         iQKizQCf5Bkg24Icx3PbnagqNJmf3YsC7WUa6QDgypEIzAZhfS+W/DnOs18UbQMwRswG
+         u96g==
+X-Gm-Message-State: AA+aEWY9A3IDpqKRUDo7m870CZdvHeREBdgeYPxeJmykCBEmBfVRjaAb
+        dTIxGaXUf+n4nHRpobkori1AyFnbKE0=
+X-Google-Smtp-Source: 
+ AFSGD/VUbKCpnkj3bpAOLRJO2lTBUbJ80pTuBsGEBUj8MXtveY4Zsbrdx0hT7ClkJPZ4ZOH1VfcZuA==
+X-Received: by 2002:adf:ee4e:: with SMTP id w14mr7381403wro.112.1542825119130;
+        Wed, 21 Nov 2018 10:31:59 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.57
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:31:58 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 09/17] pinctrl: sunxi: add support for suniv F1C100s
+ (newer F-series SoCs)
+Date: Wed, 21 Nov 2018 21:30:42 +0300
+Message-Id: 
+ <fc20d96f5531d7d1eb5ce3d5cf920c8bf59cad58.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+The suniv F1C100s chip (several new F-series SoCs) of Allwinner has a
+pin
+controller like other SoCs from Allwinner.
+
+Add support for it.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ drivers/pinctrl/sunxi/Kconfig                 |   4 +
+ drivers/pinctrl/sunxi/Makefile                |   1 +
+ drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c | 417 ++++++++++++++++++++++++++
+ 3 files changed, 422 insertions(+)
+ create mode 100644 drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c
+
+diff --git a/drivers/pinctrl/sunxi/Kconfig b/drivers/pinctrl/sunxi/Kconfig
+index 95282cd..a731fc9 100644
+--- a/drivers/pinctrl/sunxi/Kconfig
++++ b/drivers/pinctrl/sunxi/Kconfig
+@@ -6,6 +6,10 @@ config PINCTRL_SUNXI
+       select GENERIC_PINCONF
+       select GPIOLIB
++config PINCTRL_SUNIV_F1C100S
++      def_bool MACH_SUNIV
++      select PINCTRL_SUNXI
++
+ config PINCTRL_SUN4I_A10
+       def_bool MACH_SUN4I || MACH_SUN7I || MACH_SUN8I
+       select PINCTRL_SUNXI
+diff --git a/drivers/pinctrl/sunxi/Makefile b/drivers/pinctrl/sunxi/Makefile
+index adb8443..fafcdae 100644
+--- a/drivers/pinctrl/sunxi/Makefile
++++ b/drivers/pinctrl/sunxi/Makefile
+@@ -3,6 +3,7 @@
+ obj-y                                 += pinctrl-sunxi.o
+ # SoC Drivers
++obj-$(CONFIG_PINCTRL_SUNIV_F1C100S)   += pinctrl-suniv-f1c100s.o
+ obj-$(CONFIG_PINCTRL_SUN4I_A10)               += pinctrl-sun4i-a10.o
+ obj-$(CONFIG_PINCTRL_SUN5I)           += pinctrl-sun5i.o
+ obj-$(CONFIG_PINCTRL_SUN6I_A31)               += pinctrl-sun6i-a31.o
+diff --git a/drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c b/drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c
+new file mode 100644
+index 0000000..46d5667
+--- /dev/null
++++ b/drivers/pinctrl/sunxi/pinctrl-suniv-f1c100s.c
+@@ -0,0 +1,417 @@
++/*
++ * Allwinner new F-series F1C100s SoC (suniv) pinctrl driver.
++ *
++ * Copyright (C) 2018 Icenowy Zheng
++ *
++ * Icenowy Zheng <icenowy@aosc.io>
++ *
++ * Copyright (C) 2014 Jackie Hwang
++ *
++ * Jackie Hwang <huangshr@allwinnertech.com>
++ *
++ * Copyright (C) 2014 Chen-Yu Tsai
++ *
++ * Chen-Yu Tsai <wens@csie.org>
++ *
++ * Copyright (C) 2014 Maxime Ripard
++ *
++ * Maxime Ripard <maxime.ripard@free-electrons.com>
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/of.h>
++#include <linux/of_device.h>
++#include <linux/pinctrl/pinctrl.h>
++
++#include "pinctrl-sunxi.h"
++static const struct sunxi_desc_pin suniv_f1c100s_pins[] = {
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 0),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "rtp"),           /* X1 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* BCLK */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* RTS */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* CS */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 1),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "rtp"),           /* X2 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* LRCK */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* CTS */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* MOSI */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 2),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "rtp"),           /* Y1 */
++                SUNXI_FUNCTION(0x3, "pwm0"),          /* PWM0 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* IN */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* RX */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* MOSI */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(A, 3),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "rtp"),           /* Y2 */
++                SUNXI_FUNCTION(0x3, "ir0"),           /* RX */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* OUT */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* TX */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* MISO */
++      /* Hole */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 0),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "dram"),          /* DQS0 */
++                SUNXI_FUNCTION(0x3, "i2c1"),          /* SCK */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* BCLK */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* RTS */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* CS */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 1),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "dram"),          /* DQS1 */
++                SUNXI_FUNCTION(0x3, "i2c1"),          /* SDA */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* LRCK */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* CTS */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* MOSI */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "dram"),          /* CKE */
++                SUNXI_FUNCTION(0x3, "pwm0"),          /* PWM0 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* IN */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* RX */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* CLK */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 3),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "dram"),          /* DDR_REF_D */
++                SUNXI_FUNCTION(0x3, "ir0"),           /* RX */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* OUT */
++                SUNXI_FUNCTION(0x5, "uart1"),         /* TX */
++                SUNXI_FUNCTION(0x6, "spi1")),         /* MISO */
++      /* Hole */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 0),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "spi0"),          /* CLK */
++                SUNXI_FUNCTION(0x3, "mmc1")),         /* CLK */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 1),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "spi0"),          /* CS */
++                SUNXI_FUNCTION(0x3, "mmc1")),         /* CMD */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 2),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "spi0"),          /* MISO */
++                SUNXI_FUNCTION(0x3, "mmc1")),         /* D0 */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(C, 3),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "spi0"),          /* MOSI */
++                SUNXI_FUNCTION(0x3, "uart0")),        /* TX */
++      /* Hole */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 0),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D2 */
++                SUNXI_FUNCTION(0x3, "i2c0"),          /* SDA */
++                SUNXI_FUNCTION(0x4, "rsb"),           /* SDA */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 0)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 1),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D3 */
++                SUNXI_FUNCTION(0x3, "uart1"),         /* RTS */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 1)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 2),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D4*/
++                SUNXI_FUNCTION(0x3, "uart1"),         /* CTS */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 2)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 3),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D5 */
++                SUNXI_FUNCTION(0x3, "uart1"),         /* RX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 3)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 4),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D6 */
++                SUNXI_FUNCTION(0x3, "uart1"),         /* TX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 4)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 5),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D7 */
++                SUNXI_FUNCTION(0x3, "i2c1"),          /* SCK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 5)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 6),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D10 */
++                SUNXI_FUNCTION(0x3, "i2c1"),          /* SDA */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 6)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 7),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D11 */
++                SUNXI_FUNCTION(0x3, "i2s"),           /* MCLK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 7)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 8),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D12 */
++                SUNXI_FUNCTION(0x3, "i2s"),           /* BCLK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 8)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 9),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D13 */
++                SUNXI_FUNCTION(0x3, "i2s"),           /* LRCK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 9)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 10),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D14 */
++                SUNXI_FUNCTION(0x3, "i2s"),           /* IN */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 10)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 11),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D15 */
++                SUNXI_FUNCTION(0x3, "i2s"),           /* OUT */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 11)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 12),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D18 */
++                SUNXI_FUNCTION(0x3, "i2c0"),          /* SCK */
++                SUNXI_FUNCTION(0x4, "rsb"),           /* SCK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 12)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 13),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D19 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* TX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 13)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 14),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D20 */
++                SUNXI_FUNCTION(0x3, "lvds1"),         /* RX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 14)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 15),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D21 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* RTS */
++                SUNXI_FUNCTION(0x4, "i2c2"),          /* SCK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 15)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 16),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D22 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* CTS */
++                SUNXI_FUNCTION(0x4, "i2c2"),          /* SDA */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 16)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 17),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* D23 */
++                SUNXI_FUNCTION(0x3, "spdif"),         /* OUT */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 17)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 18),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* CLK */
++                SUNXI_FUNCTION(0x3, "spi0"),          /* CS */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 18)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 19),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* DE */
++                SUNXI_FUNCTION(0x3, "spi0"),          /* MOSI */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 19)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 20),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* HYSNC */
++                SUNXI_FUNCTION(0x3, "spi0"),          /* CLK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 20)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(D, 21),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "lcd"),           /* VSYNC */
++                SUNXI_FUNCTION(0x3, "spi0"),          /* MISO */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 0, 21)),
++      /* Hole */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 0),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* HSYNC */
++                SUNXI_FUNCTION(0x3, "lcd"),           /* D0 */
++                SUNXI_FUNCTION(0x4, "i2c2"),          /* SCK */
++                SUNXI_FUNCTION(0x5, "uart0"),         /* RX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 0)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 1),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* VSYNC */
++                SUNXI_FUNCTION(0x3, "lcd"),           /* D1 */
++                SUNXI_FUNCTION(0x4, "i2c2"),          /* SDA */
++                SUNXI_FUNCTION(0x5, "uart0"),         /* TX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 1)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 2),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* PCLK */
++                SUNXI_FUNCTION(0x3, "lcd"),           /* D8 */
++                SUNXI_FUNCTION(0x4, "clk"),           /* OUT */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 2)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 3),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D0 */
++                SUNXI_FUNCTION(0x3, "lcd"),           /* D9 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* BCLK */
++                SUNXI_FUNCTION(0x5, "rsb"),           /* SCK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 3)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 4),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D1 */
++                SUNXI_FUNCTION(0x3, "lcd"),           /* D16 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* LRCK */
++                SUNXI_FUNCTION(0x5, "rsb"),           /* SDA */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 4)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 5),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D2 */
++                SUNXI_FUNCTION(0x3, "lcd"),           /* D17 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* IN */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 5)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 6),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D3 */
++                SUNXI_FUNCTION(0x3, "pwm1"),          /* PWM1 */
++                SUNXI_FUNCTION(0x4, "i2s"),           /* OUT */
++                SUNXI_FUNCTION(0x5, "spdif"),         /* OUT */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 6)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 7),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D4 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* TX */
++                SUNXI_FUNCTION(0x4, "spi1"),          /* CS */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 7)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 8),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D5 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* RX */
++                SUNXI_FUNCTION(0x4, "spi1"),          /* MOSI */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 8)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 9),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D6 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* RTS */
++                SUNXI_FUNCTION(0x4, "spi1"),          /* CLK */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 9)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 10),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "csi"),           /* D7 */
++                SUNXI_FUNCTION(0x3, "uart2"),         /* CTS */
++                SUNXI_FUNCTION(0x4, "spi1"),          /* MISO */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 10)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 11),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "clk0"),          /* OUT */
++                SUNXI_FUNCTION(0x3, "i2c0"),          /* SCK */
++                SUNXI_FUNCTION(0x4, "ir"),            /* RX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 11)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 12),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "i2s"),           /* MCLK */
++                SUNXI_FUNCTION(0x3, "i2c0"),          /* SDA */
++                SUNXI_FUNCTION(0x4, "pwm0"),          /* PWM0 */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 1, 12)),
++
++      /* Hole */
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 0),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "mmc0"),          /* D1 */
++                SUNXI_FUNCTION(0x3, "jtag"),          /* MS */
++                SUNXI_FUNCTION(0x4, "ir0"),           /* MS */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 0)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 1),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "mmc0"),          /* D0 */
++                SUNXI_FUNCTION(0x3, "dgb0"),          /* DI */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 1)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 2),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "mmc0"),          /* CLK */
++                SUNXI_FUNCTION(0x3, "uart0"),         /* TX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 2)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 3),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "mmc0"),          /* CMD */
++                SUNXI_FUNCTION(0x3, "jtag"),          /* DO */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 3)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 4),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "mmc0"),          /* D3 */
++                SUNXI_FUNCTION(0x3, "uart0"),         /* TX */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 4)),
++      SUNXI_PIN(SUNXI_PINCTRL_PIN(F, 5),
++                SUNXI_FUNCTION(0x0, "gpio_in"),
++                SUNXI_FUNCTION(0x1, "gpio_out"),
++                SUNXI_FUNCTION(0x2, "mmc0"),          /* D2 */
++                SUNXI_FUNCTION(0x3, "jtag"),          /* CK */
++                SUNXI_FUNCTION(0x4, "pwm1"),          /* PWM1 */
++                SUNXI_FUNCTION_IRQ_BANK(0x6, 2, 5)),
++};
++
++static const struct sunxi_pinctrl_desc suniv_f1c100s_pinctrl_data = {
++      .pins = suniv_f1c100s_pins,
++      .npins = ARRAY_SIZE(suniv_f1c100s_pins),
++      .irq_banks = 3,
++      .disable_strict_mode = true,
++};
++
++static int suniv_pinctrl_probe(struct platform_device *pdev)
++{
++      return sunxi_pinctrl_init(pdev,
++                                &suniv_f1c100s_pinctrl_data);
++}
++
++static const struct of_device_id suniv_f1c100s_pinctrl_match[] = {
++      { .compatible = "allwinner,suniv-f1c100s-pinctrl", },
++      {}
++};
++
++static struct platform_driver suniv_f1c100s_pinctrl_driver = {
++      .probe  = suniv_pinctrl_probe,
++      .driver = {
++              .name           = "suniv-f1c100s-pinctrl",
++              .of_match_table = suniv_f1c100s_pinctrl_match,
++      },
++};
++builtin_platform_driver(suniv_f1c100s_pinctrl_driver);
+
+From patchwork Wed Nov 21 18:30:43 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692959
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5E6011709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:09 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4CF572C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:09 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 404F22C673; Wed, 21 Nov 2018 18:32:09 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B83012C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:08 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733282AbeKVFHc (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:32 -0500
+Received: from mail-wr1-f66.google.com ([209.85.221.66]:35984 "EHLO
+        mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733244AbeKVFHb (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:31 -0500
+Received: by mail-wr1-f66.google.com with SMTP id t3so6744011wrr.3;
+        Wed, 21 Nov 2018 10:32:02 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=smESXBOtl9KKus4Hogn7U/MQwM4aLtjcLcrRBWMVoQA=;
+        b=O49yIe5SxEuZEH6o5B4qoPGnbZZWHoDqiU/rdAZczLUd7zDJS8oBl3uTCW2LDxInTF
+         iyBx8qOT4uj0yds+CLP4yOWg/aPNVbao2iC9Sae2NgO34JJReFQo4oNiXo6EliJFvtR6
+         Ntkcu+SU/0Jgw0So9ssl0fK+rPf9ACtx55y7La306WpEiWHsDyvgCKcObhhkk6tuQqLo
+         /7H8jUTF21s9QUFZyaLNsSMkJ9sSpF5t58zGKIdlu1fqht2sHELSgOkLv//3j/ASYNyf
+         8alewAusqFOtDnGzu1ibgIFK+HnIhvCKyYWFAXQdDnpJcKwotBVDIMwsBW3Z8NxELycO
+         BJyg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=smESXBOtl9KKus4Hogn7U/MQwM4aLtjcLcrRBWMVoQA=;
+        b=T86dJjpSg91mEJ8JFWnPoyIEItMFbP5QarRRTRLOMYKKuY7vT71FUaFIOxJJuCKogd
+         cp1TVNldAUvQEMjm2yyOVCM4FmT2ibhCUWRUud3HIlpe/xbzl+86cTD/w6VzwLdBM1dB
+         geQUC59qOhOdPW3vZEzg6mkpOQgGClK3ZFSOCiQgACBooabvmaw48rPZU+eYx/1YlvXo
+         vKxq8uoWEf1OM7WCIlBvn29e7xUTKRvhjCSSPVgL49KIm+DKnQk5yMaChHsNxkxZu/1w
+         Ypobjv+kOU/24FkoX/GveStiI94DdhRUOuX6GwE4gFWW6DBPaWS8RnYDeMeTHtU5dZ3R
+         Cupg==
+X-Gm-Message-State: AA+aEWZrMr+giO5Y6zg1SQ22yGbasrllibL14I5ql1r2PQDJHdPGvf7l
+        KxAK2LuX18EpQDJAZToXKOOBmw/Co/A=
+X-Google-Smtp-Source: 
+ AFSGD/XPFtu+MclU6P+SmKfPU0BI/fTNWYdZS2MG8CP5sdpqfHSILyE0ZDZzfawyluNjx1RaOFX/6Q==
+X-Received: by 2002:adf:b745:: with SMTP id
+ n5-v6mr7221735wre.274.1542825121113;
+        Wed, 21 Nov 2018 10:32:01 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.31.59
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:00 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 10/17] dt-bindings: clock: Add Allwinner suniv F1C100s
+ CCU
+Date: Wed, 21 Nov 2018 21:30:43 +0300
+Message-Id: 
+ <88a177299386b610d429d4c1eb2566727aef7b17.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Add compatiple string for Allwinner suniv F1C100s CCU.
+Add clock and reset definitions.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ .../devicetree/bindings/clock/sunxi-ccu.txt        |  1 +
+ include/dt-bindings/clock/suniv-ccu-f1c100s.h      | 69 ++++++++++++++++++++++
+ include/dt-bindings/reset/suniv-ccu-f1c100s.h      | 37 ++++++++++++
+ 3 files changed, 107 insertions(+)
+ create mode 100644 include/dt-bindings/clock/suniv-ccu-f1c100s.h
+ create mode 100644 include/dt-bindings/reset/suniv-ccu-f1c100s.h
+
+diff --git a/Documentation/devicetree/bindings/clock/sunxi-ccu.txt b/Documentation/devicetree/bindings/clock/sunxi-ccu.txt
+index 47d2e90..e3bd88a 100644
+--- a/Documentation/devicetree/bindings/clock/sunxi-ccu.txt
++++ b/Documentation/devicetree/bindings/clock/sunxi-ccu.txt
+@@ -22,6 +22,7 @@ Required properties :
+               - "allwinner,sun50i-h5-ccu"
+               - "allwinner,sun50i-h6-ccu"
+               - "allwinner,sun50i-h6-r-ccu"
++              - "allwinner,suniv-f1c100s-ccu"
+               - "nextthing,gr8-ccu"
+ - reg: Must contain the registers base address and length
+diff --git a/include/dt-bindings/clock/suniv-ccu-f1c100s.h b/include/dt-bindings/clock/suniv-ccu-f1c100s.h
+new file mode 100644
+index 0000000..56f6d0d
+--- /dev/null
++++ b/include/dt-bindings/clock/suniv-ccu-f1c100s.h
+@@ -0,0 +1,69 @@
++/*
++ * Copyright (c) 2018 Icenowy Zheng <icenowy@aosc.xyz>
++ *
++ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++ */
++
++#ifndef _DT_BINDINGS_CLK_SUNIV_F1C100S_H_
++#define _DT_BINDINGS_CLK_SUNIV_F1C100S_H_
++
++#define CLK_CPU                       11
++
++#define CLK_BUS_MMC0          14
++#define CLK_BUS_MMC1          15
++#define CLK_BUS_DRAM          16
++#define CLK_BUS_SPI0          17
++#define CLK_BUS_SPI1          18
++#define CLK_BUS_OTG           19
++#define CLK_BUS_VE            20
++#define CLK_BUS_LCD           21
++#define CLK_BUS_DEINTERLACE   22
++#define CLK_BUS_CSI           23
++#define CLK_BUS_TVD           24
++#define CLK_BUS_TVE           25
++#define CLK_BUS_DE_BE         26
++#define CLK_BUS_DE_FE         27
++#define CLK_BUS_CODEC         28
++#define CLK_BUS_SPDIF         29
++#define CLK_BUS_IR            30
++#define CLK_BUS_RSB           31
++#define CLK_BUS_I2S0          32
++#define CLK_BUS_I2C0          33
++#define CLK_BUS_I2C1          34
++#define CLK_BUS_I2C2          35
++#define CLK_BUS_PIO           36
++#define CLK_BUS_UART0         37
++#define CLK_BUS_UART1         38
++#define CLK_BUS_UART2         39
++
++#define CLK_MMC0              40
++#define CLK_MMC0_SAMPLE               41
++#define CLK_MMC0_OUTPUT               42
++#define CLK_MMC1              43
++#define CLK_MMC1_SAMPLE               44
++#define CLK_MMC1_OUTPUT               45
++#define CLK_I2S                       46
++#define CLK_SPDIF             47
++
++#define CLK_USB_PHY0          48
++
++#define CLK_DRAM_VE           49
++#define CLK_DRAM_CSI          50
++#define CLK_DRAM_DEINTERLACE  51
++#define CLK_DRAM_TVD          52
++#define CLK_DRAM_DE_FE                53
++#define CLK_DRAM_DE_BE                54
++
++#define CLK_DE_BE             55
++#define CLK_DE_FE             56
++#define CLK_TCON              57
++#define CLK_DEINTERLACE               58
++#define CLK_TVE2_CLK          59
++#define CLK_TVE1_CLK          60
++#define CLK_TVD                       61
++#define CLK_CSI                       62
++#define CLK_VE                        63
++#define CLK_CODEC             64
++#define CLK_AVS                       65
++
++#endif
+diff --git a/include/dt-bindings/reset/suniv-ccu-f1c100s.h b/include/dt-bindings/reset/suniv-ccu-f1c100s.h
+new file mode 100644
+index 0000000..95f1ed0
+--- /dev/null
++++ b/include/dt-bindings/reset/suniv-ccu-f1c100s.h
+@@ -0,0 +1,37 @@
++/*
++ * Copyright (C) 2018 Icenowy Zheng <icenowy@aosc.xyz>
++ *
++ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++ */
++
++#ifndef _DT_BINDINGS_RST_SUNIV_F1C100S_H_
++#define _DT_BINDINGS_RST_SUNIV_F1C100S_H_
++
++#define RST_USB_PHY0          0
++#define RST_BUS_MMC0          1
++#define RST_BUS_MMC1          2
++#define RST_BUS_DRAM          3
++#define RST_BUS_SPI0          4
++#define RST_BUS_SPI1          5
++#define RST_BUS_OTG           6
++#define RST_BUS_VE            7
++#define RST_BUS_LCD           8
++#define RST_BUS_DEINTERLACE           9
++#define RST_BUS_CSI           10
++#define RST_BUS_TVD           11
++#define RST_BUS_TVE           12
++#define RST_BUS_DE_BE         13
++#define RST_BUS_DE_FE         14
++#define RST_BUS_CODEC         15
++#define RST_BUS_SPDIF         16
++#define RST_BUS_IR            17
++#define RST_BUS_RSB           18
++#define RST_BUS_I2S0          19
++#define RST_BUS_I2C0          20
++#define RST_BUS_I2C1          21
++#define RST_BUS_I2C2          22
++#define RST_BUS_UART0         23
++#define RST_BUS_UART1         24
++#define RST_BUS_UART2         25
++
++#endif /* _DT_BINDINGS_RST_SUNIV_F1C100S_H_ */
+
+From patchwork Wed Nov 21 18:30:44 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692981
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4EA6613AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:52 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3DBF82C670
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:52 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 321162C679; Wed, 21 Nov 2018 18:32:52 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D2BBE2C673
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:50 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1733290AbeKVFHf (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:35 -0500
+Received: from mail-wm1-f65.google.com ([209.85.128.65]:51811 "EHLO
+        mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733189AbeKVFHd (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:33 -0500
+Received: by mail-wm1-f65.google.com with SMTP id w7-v6so6515645wmc.1;
+        Wed, 21 Nov 2018 10:32:04 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=zB+E6h/cCIlhomMAD4ZSdfqV2jebJSr2hXJKwoLyPgM=;
+        b=LkKS/4AA5jgLucmW75+5dX5w0OpwDEwHrv3kuIsKtJQusBgfhm017R5XtrM7OgFYx7
+         XW6/mCHPcSddKqDkkOIl/a6R4hvZS7MBmNvRRCwePKRxi2E/4s0naBiUYG8vdBmxCSLN
+         e3qJrlIYhI1K4gzFh67DIjtgcDqu3xNzeqcDi99QsVgkhxmvThDG6YEg1D19yjRIXBtk
+         nvhYxGGPSFmXvCZGF7k0BRvyi3/5cCdBSTVWW30kNng1GSe8eGr2FfnziMzezv+lDAYp
+         rjwEZYrg2GuVExU4v+Ydv1HH250j04cLOQ0AOUK6QqR63UYd/xz/TIFcC7LEd0vmp6jD
+         pE2Q==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=zB+E6h/cCIlhomMAD4ZSdfqV2jebJSr2hXJKwoLyPgM=;
+        b=OOBeSYW42FPw6zRLfxbqOFMUO7tPpBTv3Pt6JUeCQLK9gRo8DErLqCxDXZcLSJN5df
+         1WbVd0zDv4RCo6tfGaazCPFEozn78RvLcnT/9i0ZPU7NOMyjDKlmhYfAVaHsaTXSnINK
+         +ZEB68SAQ/vB96ER3/Ulq36lITU4Rm0KczcPKd8MO61XrGsYOQDQ3Jv213x4J6K1GN7C
+         73YuS+l2qQwgwnZn0LOMB48LgvmwSaI6Wt3PJhwtlWo7L9I+KfCZEs9aPvBz9QcjcBLG
+         MtzyCKVC6YNdX90Q0lTIr3sQO8bWA7gAfsuwvl9nPlUJkzT778/3TfBV9NZnueqLfscZ
+         VMhA==
+X-Gm-Message-State: AGRZ1gIS0320wegD2vouN+xUSUvGuE3FU0KycL/4pL9G8imfDkCfWj9e
+        kDnjCTvgzbi3CRjAvv4tk+70Aen7z3Y=
+X-Google-Smtp-Source: 
+ AJdET5eyLWNfjlGYt8IokkFL9uQUIcA3nNkTVnWahXIrLfxqu+Rlphwf05pE4tnT2fKhAqBsR/dArw==
+X-Received: by 2002:a1c:e088:: with SMTP id x130mr6481504wmg.23.1542825123271;
+        Wed, 21 Nov 2018 10:32:03 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.32.01
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:02 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 11/17] clk: sunxi-ng: add support for suniv F1C100s SoC
+Date: Wed, 21 Nov 2018 21:30:44 +0300
+Message-Id: 
+ <07f02fdac83c27d208aba1c6537d051df651778e.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+The suniv F1C100s SoC (the chip in some new F-series products of
+Allwinner)
+has a CCU which seems to be a stripped version of the CCU in SoCs after
+sun6i.
+
+Add support for the CCU.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ drivers/clk/sunxi-ng/Kconfig             |   5 +
+ drivers/clk/sunxi-ng/Makefile            |   1 +
+ drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c | 536 +++++++++++++++++++++++++++++++
+ drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h |  34 ++
+ 4 files changed, 576 insertions(+)
+ create mode 100644 drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
+ create mode 100644 drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h
+
+diff --git a/drivers/clk/sunxi-ng/Kconfig b/drivers/clk/sunxi-ng/Kconfig
+index 826674d..429ea4a 100644
+--- a/drivers/clk/sunxi-ng/Kconfig
++++ b/drivers/clk/sunxi-ng/Kconfig
+@@ -6,6 +6,11 @@ config SUNXI_CCU
+ if SUNXI_CCU
++config SUNIV_F1C100S_CCU
++      bool "Support for the Allwinner newer F1C100s CCU"
++      default MACH_SUNIV
++      depends on MACH_SUNIV || COMPILE_TEST
++
+ config SUN50I_A64_CCU
+       bool "Support for the Allwinner A64 CCU"
+       default ARM64 && ARCH_SUNXI
+diff --git a/drivers/clk/sunxi-ng/Makefile b/drivers/clk/sunxi-ng/Makefile
+index 4945470..4c7bee8 100644
+--- a/drivers/clk/sunxi-ng/Makefile
++++ b/drivers/clk/sunxi-ng/Makefile
+@@ -21,6 +21,7 @@ obj-y                                += ccu_nm.o
+ obj-y                         += ccu_mp.o
+ # SoC support
++obj-$(CONFIG_SUNIV_F1C100S_CCU)       += ccu-suniv-f1c100s.o
+ obj-$(CONFIG_SUN50I_A64_CCU)  += ccu-sun50i-a64.o
+ obj-$(CONFIG_SUN50I_H6_CCU)   += ccu-sun50i-h6.o
+ obj-$(CONFIG_SUN50I_H6_R_CCU) += ccu-sun50i-h6-r.o
+diff --git a/drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c b/drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
+new file mode 100644
+index 0000000..d933dba
+--- /dev/null
++++ b/drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c
+@@ -0,0 +1,536 @@
++/*
++ * Copyright (c) 2016 Icenowy Zheng <icenowy@aosc.io>
++ *
++ * SPDX-License-Identifier: GPL-2.0
++ */
++
++#include <linux/clk-provider.h>
++#include <linux/of_address.h>
++
++#include "ccu_common.h"
++#include "ccu_reset.h"
++
++#include "ccu_div.h"
++#include "ccu_gate.h"
++#include "ccu_mp.h"
++#include "ccu_mult.h"
++#include "ccu_nk.h"
++#include "ccu_nkm.h"
++#include "ccu_nkmp.h"
++#include "ccu_nm.h"
++#include "ccu_phase.h"
++
++#include "ccu-suniv-f1c100s.h"
++
++static struct ccu_nkmp pll_cpu_clk = {
++      .enable = BIT(31),
++      .lock   = BIT(28),
++
++      .n      = _SUNXI_CCU_MULT(8, 5),
++      .k      = _SUNXI_CCU_MULT(4, 2),
++      .m      = _SUNXI_CCU_DIV(0, 2),
++      /* MAX is guessed by the BSP table */
++      .p      = _SUNXI_CCU_DIV_MAX(16, 2, 4),
++
++      .common = {
++              .reg            = 0x000,
++              .hw.init        = CLK_HW_INIT("pll-cpu", "osc24M",
++                                            &ccu_nkmp_ops,
++                                            CLK_SET_RATE_UNGATE),
++      },
++};
++
++/*
++ * The Audio PLL is supposed to have 4 outputs: 3 fixed factors from
++ * the base (2x, 4x and 8x), and one variable divider (the one true
++ * pll audio).
++ *
++ * We don't have any need for the variable divider for now, so we just
++ * hardcode it to match with the clock names
++ */
++#define SUNIV_PLL_AUDIO_REG   0x008
++
++static SUNXI_CCU_NM_WITH_GATE_LOCK(pll_audio_base_clk, "pll-audio-base",
++                                 "osc24M", 0x008,
++                                 8, 7,                /* N */
++                                 0, 5,                /* M */
++                                 BIT(31),             /* gate */
++                                 BIT(28),             /* lock */
++                                 CLK_SET_RATE_UNGATE);
++
++static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_video_clk, "pll-video",
++                                      "osc24M", 0x010,
++                                      8, 7,           /* N */
++                                      0, 4,           /* M */
++                                      BIT(24),        /* frac enable */
++                                      BIT(25),        /* frac select */
++                                      270000000,      /* frac rate 0 */
++                                      297000000,      /* frac rate 1 */
++                                      BIT(31),        /* gate */
++                                      BIT(28),        /* lock */
++                                      CLK_SET_RATE_UNGATE);
++
++static SUNXI_CCU_NM_WITH_FRAC_GATE_LOCK(pll_ve_clk, "pll-ve",
++                                      "osc24M", 0x018,
++                                      8, 7,           /* N */
++                                      0, 4,           /* M */
++                                      BIT(24),        /* frac enable */
++                                      BIT(25),        /* frac select */
++                                      270000000,      /* frac rate 0 */
++                                      297000000,      /* frac rate 1 */
++                                      BIT(31),        /* gate */
++                                      BIT(28),        /* lock */
++                                      CLK_SET_RATE_UNGATE);
++
++static SUNXI_CCU_NKM_WITH_GATE_LOCK(pll_ddr0_clk, "pll-ddr",
++                                  "osc24M", 0x020,
++                                  8, 5,               /* N */
++                                  4, 2,               /* K */
++                                  0, 2,               /* M */
++                                  BIT(31),            /* gate */
++                                  BIT(28),            /* lock */
++                                  CLK_IS_CRITICAL);
++
++static struct ccu_nk pll_periph_clk = {
++      .enable         = BIT(31),
++      .lock           = BIT(28),
++      .k              = _SUNXI_CCU_MULT(4, 2),
++      .n              = _SUNXI_CCU_MULT(8, 5),
++      .common         = {
++              .reg            = 0x028,
++              .hw.init        = CLK_HW_INIT("pll-periph", "osc24M",
++                                            &ccu_nk_ops, 0),
++      },
++};
++
++static const char * const cpu_parents[] = { "osc32k", "osc24M",
++                                           "pll-cpu", "pll-cpu" };
++static SUNXI_CCU_MUX(cpu_clk, "cpu", cpu_parents,
++                   0x050, 16, 2, CLK_IS_CRITICAL | CLK_SET_RATE_PARENT);
++
++static const char * const ahb_parents[] = { "osc32k", "osc24M",
++                                          "cpu", "pll-periph" };
++static const struct ccu_mux_var_prediv ahb_predivs[] = {
++      { .index = 3, .shift = 6, .width = 2 },
++};
++static struct ccu_div ahb_clk = {
++      .div            = _SUNXI_CCU_DIV_FLAGS(4, 2, CLK_DIVIDER_POWER_OF_TWO),
++
++      .mux            = {
++              .shift  = 12,
++              .width  = 2,
++
++              .var_predivs    = ahb_predivs,
++              .n_var_predivs  = ARRAY_SIZE(ahb_predivs),
++      },
++
++      .common         = {
++              .reg            = 0x054,
++              .features       = CCU_FEATURE_VARIABLE_PREDIV,
++              .hw.init        = CLK_HW_INIT_PARENTS("ahb",
++                                                    ahb_parents,
++                                                    &ccu_div_ops,
++                                                    0),
++      },
++};
++
++static struct clk_div_table apb_div_table[] = {
++      { .val = 0, .div = 2 },
++      { .val = 1, .div = 2 },
++      { .val = 2, .div = 4 },
++      { .val = 3, .div = 8 },
++      { /* Sentinel */ },
++};
++static SUNXI_CCU_DIV_TABLE(apb_clk, "apb", "ahb",
++                         0x054, 8, 2, apb_div_table, 0);
++
++static SUNXI_CCU_GATE(bus_mmc0_clk,   "bus-mmc0",     "ahb",
++                    0x060, BIT(8), 0);
++static SUNXI_CCU_GATE(bus_mmc1_clk,   "bus-mmc1",     "ahb",
++                    0x060, BIT(9), 0);
++static SUNXI_CCU_GATE(bus_dram_clk,   "bus-dram",     "ahb",
++                    0x060, BIT(14), 0);
++static SUNXI_CCU_GATE(bus_spi0_clk,   "bus-spi0",     "ahb",
++                    0x060, BIT(20), 0);
++static SUNXI_CCU_GATE(bus_spi1_clk,   "bus-spi1",     "ahb",
++                    0x060, BIT(21), 0);
++static SUNXI_CCU_GATE(bus_otg_clk,    "bus-otg",      "ahb",
++                    0x060, BIT(24), 0);
++
++static SUNXI_CCU_GATE(bus_ve_clk,     "bus-ve",       "ahb",
++                    0x064, BIT(0), 0);
++static SUNXI_CCU_GATE(bus_lcd_clk,    "bus-lcd",      "ahb",
++                    0x064, BIT(4), 0);
++static SUNXI_CCU_GATE(bus_deinterlace_clk,    "bus-deinterlace",      "ahb",
++                    0x064, BIT(5), 0);
++static SUNXI_CCU_GATE(bus_csi_clk,    "bus-csi",      "ahb",
++                    0x064, BIT(8), 0);
++static SUNXI_CCU_GATE(bus_tvd_clk,    "bus-tvd",      "ahb",
++                    0x064, BIT(9), 0);
++static SUNXI_CCU_GATE(bus_tve_clk,    "bus-tve",      "ahb",
++                    0x064, BIT(10), 0);
++static SUNXI_CCU_GATE(bus_de_be_clk,  "bus-de-be",    "ahb",
++                    0x064, BIT(12), 0);
++static SUNXI_CCU_GATE(bus_de_fe_clk,  "bus-de-fe",    "ahb",
++                    0x064, BIT(14), 0);
++
++static SUNXI_CCU_GATE(bus_codec_clk,  "bus-codec",    "apb",
++                    0x068, BIT(0), 0);
++static SUNXI_CCU_GATE(bus_spdif_clk,  "bus-spdif",    "apb",
++                    0x068, BIT(1), 0);
++static SUNXI_CCU_GATE(bus_ir_clk,     "bus-ir",       "apb",
++                    0x068, BIT(2), 0);
++static SUNXI_CCU_GATE(bus_rsb_clk,    "bus-rsb",      "apb",
++                    0x068, BIT(3), 0);
++static SUNXI_CCU_GATE(bus_i2s0_clk,   "bus-i2s0",     "apb",
++                    0x068, BIT(12), 0);
++static SUNXI_CCU_GATE(bus_i2c0_clk,   "bus-i2c0",     "apb",
++                    0x068, BIT(16), 0);
++static SUNXI_CCU_GATE(bus_i2c1_clk,   "bus-i2c1",     "apb",
++                    0x068, BIT(17), 0);
++static SUNXI_CCU_GATE(bus_i2c2_clk,   "bus-i2c2",     "apb",
++                    0x068, BIT(18), 0);
++static SUNXI_CCU_GATE(bus_pio_clk,    "bus-pio",      "apb",
++                    0x068, BIT(19), 0);
++static SUNXI_CCU_GATE(bus_uart0_clk,  "bus-uart0",    "apb",
++                    0x068, BIT(20), 0);
++static SUNXI_CCU_GATE(bus_uart1_clk,  "bus-uart1",    "apb",
++                    0x068, BIT(21), 0);
++static SUNXI_CCU_GATE(bus_uart2_clk,  "bus-uart2",    "apb",
++                    0x068, BIT(22), 0);
++
++static const char * const mod0_default_parents[] = { "osc24M", "pll-periph" };
++static SUNXI_CCU_MP_WITH_MUX_GATE(mmc0_clk, "mmc0", mod0_default_parents, 0x088,
++                                0, 4,         /* M */
++                                16, 2,        /* P */
++                                24, 2,        /* mux */
++                                BIT(31),      /* gate */
++                                0);
++
++static SUNXI_CCU_PHASE(mmc0_sample_clk, "mmc0_sample", "mmc0",
++                     0x088, 20, 3, 0);
++static SUNXI_CCU_PHASE(mmc0_output_clk, "mmc0_output", "mmc0",
++                     0x088, 8, 3, 0);
++
++static SUNXI_CCU_MP_WITH_MUX_GATE(mmc1_clk, "mmc1", mod0_default_parents, 0x08c,
++                                0, 4,         /* M */
++                                16, 2,        /* P */
++                                24, 2,        /* mux */
++                                BIT(31),      /* gate */
++                                0);
++
++static SUNXI_CCU_PHASE(mmc1_sample_clk, "mmc1_sample", "mmc1",
++                     0x08c, 20, 3, 0);
++static SUNXI_CCU_PHASE(mmc1_output_clk, "mmc1_output", "mmc1",
++                     0x08c, 8, 3, 0);
++
++static const char * const i2s_spdif_parents[] = { "pll-audio-8x",
++                                                "pll-audio-4x",
++                                                "pll-audio-2x",
++                                                "pll-audio" };
++
++static SUNXI_CCU_MUX_WITH_GATE(i2s_clk, "i2s", i2s_spdif_parents,
++                             0x0b0, 16, 2, BIT(31), 0);
++
++static SUNXI_CCU_MUX_WITH_GATE(spdif_clk, "spdif", i2s_spdif_parents,
++                             0x0b4, 16, 2, BIT(31), 0);
++
++/* The BSP header file has a CIR_CFG, but no mod clock uses this definition */
++
++static SUNXI_CCU_GATE(usb_phy0_clk,   "usb-phy0",     "osc24M",
++                    0x0cc, BIT(8), 0);
++
++static SUNXI_CCU_GATE(dram_ve_clk,    "dram-ve",      "pll-ddr",
++                    0x100, BIT(0), 0);
++static SUNXI_CCU_GATE(dram_csi_clk,   "dram-csi",     "pll-ddr",
++                    0x100, BIT(1), 0);
++static SUNXI_CCU_GATE(dram_deinterlace_clk,   "dram-deinterlace",
++                    "pll-ddr", 0x100, BIT(2), 0);
++static SUNXI_CCU_GATE(dram_tvd_clk,   "dram-tvd",     "pll-ddr",
++                    0x100, BIT(3), 0);
++static SUNXI_CCU_GATE(dram_de_fe_clk, "dram-de-fe",   "pll-ddr",
++                    0x100, BIT(24), 0);
++static SUNXI_CCU_GATE(dram_de_be_clk, "dram-de-be",   "pll-ddr",
++                    0x100, BIT(26), 0);
++
++static const char * const de_parents[] = { "pll-video", "pll-periph" };
++static const u8 de_table[] = { 0, 2, };
++static SUNXI_CCU_M_WITH_MUX_TABLE_GATE(de_be_clk, "de-be",
++                                     de_parents, de_table,
++                                     0x104, 0, 4, 24, 3, BIT(31), 0);
++
++static SUNXI_CCU_M_WITH_MUX_TABLE_GATE(de_fe_clk, "de-fe",
++                                     de_parents, de_table,
++                                     0x10c, 0, 4, 24, 3, BIT(31), 0);
++
++static const char * const tcon_parents[] = { "pll-video", "pll-video-2x" };
++static const u8 tcon_table[] = { 0, 2, };
++static SUNXI_CCU_MUX_TABLE_WITH_GATE(tcon_clk, "tcon",
++                                   tcon_parents, tcon_table,
++                                   0x118, 24, 3, BIT(31),
++                                   CLK_SET_RATE_PARENT);
++
++static const char * const deinterlace_parents[] = { "pll-video",
++                                                  "pll-video-2x" };
++static const u8 deinterlace_table[] = { 0, 2, };
++static SUNXI_CCU_M_WITH_MUX_TABLE_GATE(deinterlace_clk, "deinterlace",
++                                     deinterlace_parents, deinterlace_table,
++                                     0x11c, 0, 4, 24, 3, BIT(31), 0);
++
++static const char * const tve_clk2_parents[] = { "pll-video",
++                                               "pll-video-2x" };
++static const u8 tve_clk2_table[] = { 0, 2, };
++static SUNXI_CCU_M_WITH_MUX_TABLE_GATE(tve_clk2_clk, "tve-clk2",
++                                     tve_clk2_parents, tve_clk2_table,
++                                     0x120, 0, 4, 24, 3, BIT(31), 0);
++static SUNXI_CCU_M_WITH_GATE(tve_clk1_clk, "tve-clk1", "tve-clk2",
++                           0x120, 8, 1, BIT(15), 0);
++
++static const char * const tvd_parents[] = { "pll-video", "osc24M",
++                                          "pll-video-2x" };
++static SUNXI_CCU_M_WITH_MUX_GATE(tvd_clk, "tvd", tvd_parents,
++                               0x124, 0, 4, 24, 3, BIT(31), 0);
++
++static const char * const csi_parents[] = { "pll-video", "osc24M" };
++static const u8 csi_table[] = { 0, 5, };
++static SUNXI_CCU_M_WITH_MUX_TABLE_GATE(csi_clk, "csi", csi_parents, csi_table,
++                                     0x120, 0, 4, 8, 3, BIT(15), 0);
++
++/*
++ * TODO: BSP says the parent is pll-audio, however common sense and experience
++ * told us it should be pll-ve. pll-ve is totally not used in BSP code.
++ */
++static SUNXI_CCU_GATE(ve_clk, "ve", "pll-audio", 0x13c, BIT(31), 0);
++
++static SUNXI_CCU_GATE(codec_clk, "codec", "pll-audio", 0x140, BIT(31), 0);
++
++static SUNXI_CCU_GATE(avs_clk, "avs", "osc24M", 0x144, BIT(31), 0);
++
++static struct ccu_common *suniv_ccu_clks[] = {
++      &pll_cpu_clk.common,
++      &pll_audio_base_clk.common,
++      &pll_video_clk.common,
++      &pll_ve_clk.common,
++      &pll_ddr0_clk.common,
++      &pll_periph_clk.common,
++      &cpu_clk.common,
++      &ahb_clk.common,
++      &apb_clk.common,
++      &bus_mmc0_clk.common,
++      &bus_mmc1_clk.common,
++      &bus_dram_clk.common,
++      &bus_spi0_clk.common,
++      &bus_spi1_clk.common,
++      &bus_otg_clk.common,
++      &bus_ve_clk.common,
++      &bus_lcd_clk.common,
++      &bus_deinterlace_clk.common,
++      &bus_csi_clk.common,
++      &bus_tve_clk.common,
++      &bus_tvd_clk.common,
++      &bus_de_be_clk.common,
++      &bus_de_fe_clk.common,
++      &bus_codec_clk.common,
++      &bus_spdif_clk.common,
++      &bus_ir_clk.common,
++      &bus_rsb_clk.common,
++      &bus_i2s0_clk.common,
++      &bus_i2c0_clk.common,
++      &bus_i2c1_clk.common,
++      &bus_i2c2_clk.common,
++      &bus_pio_clk.common,
++      &bus_uart0_clk.common,
++      &bus_uart1_clk.common,
++      &bus_uart2_clk.common,
++      &mmc0_clk.common,
++      &mmc0_sample_clk.common,
++      &mmc0_output_clk.common,
++      &mmc1_clk.common,
++      &mmc1_sample_clk.common,
++      &mmc1_output_clk.common,
++      &i2s_clk.common,
++      &spdif_clk.common,
++      &usb_phy0_clk.common,
++      &dram_ve_clk.common,
++      &dram_csi_clk.common,
++      &dram_deinterlace_clk.common,
++      &dram_tvd_clk.common,
++      &dram_de_fe_clk.common,
++      &dram_de_be_clk.common,
++      &de_be_clk.common,
++      &de_fe_clk.common,
++      &tcon_clk.common,
++      &deinterlace_clk.common,
++      &tve_clk2_clk.common,
++      &tve_clk1_clk.common,
++      &tvd_clk.common,
++      &csi_clk.common,
++      &ve_clk.common,
++      &codec_clk.common,
++      &avs_clk.common,
++};
++
++static CLK_FIXED_FACTOR(pll_audio_clk, "pll-audio",
++                      "pll-audio-base", 4, 1, CLK_SET_RATE_PARENT);
++static CLK_FIXED_FACTOR(pll_audio_2x_clk, "pll-audio-2x",
++                      "pll-audio-base", 2, 1, CLK_SET_RATE_PARENT);
++static CLK_FIXED_FACTOR(pll_audio_4x_clk, "pll-audio-4x",
++                      "pll-audio-base", 1, 1, CLK_SET_RATE_PARENT);
++static CLK_FIXED_FACTOR(pll_audio_8x_clk, "pll-audio-8x",
++                      "pll-audio-base", 1, 2, CLK_SET_RATE_PARENT);
++static CLK_FIXED_FACTOR(pll_video_2x_clk, "pll-video-2x",
++                      "pll-video", 1, 2, 0);
++
++static struct clk_hw_onecell_data suniv_hw_clks = {
++      .hws    = {
++              [CLK_PLL_CPU]           = &pll_cpu_clk.common.hw,
++              [CLK_PLL_AUDIO_BASE]    = &pll_audio_base_clk.common.hw,
++              [CLK_PLL_AUDIO]         = &pll_audio_clk.hw,
++              [CLK_PLL_AUDIO_2X]      = &pll_audio_2x_clk.hw,
++              [CLK_PLL_AUDIO_4X]      = &pll_audio_4x_clk.hw,
++              [CLK_PLL_AUDIO_8X]      = &pll_audio_8x_clk.hw,
++              [CLK_PLL_VIDEO]         = &pll_video_clk.common.hw,
++              [CLK_PLL_VIDEO_2X]      = &pll_video_2x_clk.hw,
++              [CLK_PLL_VE]            = &pll_ve_clk.common.hw,
++              [CLK_PLL_DDR0]          = &pll_ddr0_clk.common.hw,
++              [CLK_PLL_PERIPH]        = &pll_periph_clk.common.hw,
++              [CLK_CPU]               = &cpu_clk.common.hw,
++              [CLK_AHB]               = &ahb_clk.common.hw,
++              [CLK_APB]               = &apb_clk.common.hw,
++              [CLK_BUS_MMC0]          = &bus_mmc0_clk.common.hw,
++              [CLK_BUS_MMC1]          = &bus_mmc1_clk.common.hw,
++              [CLK_BUS_DRAM]          = &bus_dram_clk.common.hw,
++              [CLK_BUS_SPI0]          = &bus_spi0_clk.common.hw,
++              [CLK_BUS_SPI1]          = &bus_spi1_clk.common.hw,
++              [CLK_BUS_OTG]           = &bus_otg_clk.common.hw,
++              [CLK_BUS_VE]            = &bus_ve_clk.common.hw,
++              [CLK_BUS_LCD]           = &bus_lcd_clk.common.hw,
++              [CLK_BUS_DEINTERLACE]   = &bus_deinterlace_clk.common.hw,
++              [CLK_BUS_CSI]           = &bus_csi_clk.common.hw,
++              [CLK_BUS_TVD]           = &bus_tvd_clk.common.hw,
++              [CLK_BUS_TVE]           = &bus_tve_clk.common.hw,
++              [CLK_BUS_DE_BE]         = &bus_de_be_clk.common.hw,
++              [CLK_BUS_DE_FE]         = &bus_de_fe_clk.common.hw,
++              [CLK_BUS_CODEC]         = &bus_codec_clk.common.hw,
++              [CLK_BUS_SPDIF]         = &bus_spdif_clk.common.hw,
++              [CLK_BUS_IR]            = &bus_ir_clk.common.hw,
++              [CLK_BUS_RSB]           = &bus_rsb_clk.common.hw,
++              [CLK_BUS_I2S0]          = &bus_i2s0_clk.common.hw,
++              [CLK_BUS_I2C0]          = &bus_i2c0_clk.common.hw,
++              [CLK_BUS_I2C1]          = &bus_i2c1_clk.common.hw,
++              [CLK_BUS_I2C2]          = &bus_i2c2_clk.common.hw,
++              [CLK_BUS_PIO]           = &bus_pio_clk.common.hw,
++              [CLK_BUS_UART0]         = &bus_uart0_clk.common.hw,
++              [CLK_BUS_UART1]         = &bus_uart1_clk.common.hw,
++              [CLK_BUS_UART2]         = &bus_uart2_clk.common.hw,
++              [CLK_MMC0]              = &mmc0_clk.common.hw,
++              [CLK_MMC0_SAMPLE]       = &mmc0_sample_clk.common.hw,
++              [CLK_MMC0_OUTPUT]       = &mmc0_output_clk.common.hw,
++              [CLK_MMC1]              = &mmc1_clk.common.hw,
++              [CLK_MMC1_SAMPLE]       = &mmc1_sample_clk.common.hw,
++              [CLK_MMC1_OUTPUT]       = &mmc1_output_clk.common.hw,
++              [CLK_I2S]               = &i2s_clk.common.hw,
++              [CLK_SPDIF]             = &spdif_clk.common.hw,
++              [CLK_USB_PHY0]          = &usb_phy0_clk.common.hw,
++              [CLK_DRAM_VE]           = &dram_ve_clk.common.hw,
++              [CLK_DRAM_CSI]          = &dram_csi_clk.common.hw,
++              [CLK_DRAM_DEINTERLACE]  = &dram_deinterlace_clk.common.hw,
++              [CLK_DRAM_TVD]          = &dram_tvd_clk.common.hw,
++              [CLK_DRAM_DE_FE]        = &dram_de_fe_clk.common.hw,
++              [CLK_DRAM_DE_BE]        = &dram_de_be_clk.common.hw,
++              [CLK_DE_BE]             = &de_be_clk.common.hw,
++              [CLK_DE_FE]             = &de_fe_clk.common.hw,
++              [CLK_TCON]              = &tcon_clk.common.hw,
++              [CLK_DEINTERLACE]       = &deinterlace_clk.common.hw,
++              [CLK_TVE2_CLK]          = &tve_clk2_clk.common.hw,
++              [CLK_TVE1_CLK]          = &tve_clk1_clk.common.hw,
++              [CLK_TVD]               = &tvd_clk.common.hw,
++              [CLK_CSI]               = &csi_clk.common.hw,
++              [CLK_VE]                = &ve_clk.common.hw,
++              [CLK_CODEC]             = &codec_clk.common.hw,
++              [CLK_AVS]               = &avs_clk.common.hw,
++      },
++      .num    = CLK_NUMBER,
++};
++
++static struct ccu_reset_map suniv_ccu_resets[] = {
++      [RST_USB_PHY0]          =  { 0x0cc, BIT(0) },
++
++      [RST_BUS_MMC0]          =  { 0x2c0, BIT(8) },
++      [RST_BUS_MMC1]          =  { 0x2c0, BIT(9) },
++      [RST_BUS_DRAM]          =  { 0x2c0, BIT(14) },
++      [RST_BUS_SPI0]          =  { 0x2c0, BIT(20) },
++      [RST_BUS_SPI1]          =  { 0x2c0, BIT(21) },
++      [RST_BUS_OTG]           =  { 0x2c0, BIT(24) },
++      [RST_BUS_VE]            =  { 0x2c4, BIT(0) },
++      [RST_BUS_LCD]           =  { 0x2c4, BIT(4) },
++      [RST_BUS_DEINTERLACE]   =  { 0x2c4, BIT(5) },
++      [RST_BUS_CSI]           =  { 0x2c4, BIT(8) },
++      [RST_BUS_TVD]           =  { 0x2c4, BIT(9) },
++      [RST_BUS_TVE]           =  { 0x2c4, BIT(10) },
++      [RST_BUS_DE_BE]         =  { 0x2c4, BIT(12) },
++      [RST_BUS_DE_FE]         =  { 0x2c4, BIT(14) },
++      [RST_BUS_CODEC]         =  { 0x2d0, BIT(0) },
++      [RST_BUS_SPDIF]         =  { 0x2d0, BIT(1) },
++      [RST_BUS_IR]            =  { 0x2d0, BIT(2) },
++      [RST_BUS_RSB]           =  { 0x2d0, BIT(3) },
++      [RST_BUS_I2S0]          =  { 0x2d0, BIT(12) },
++      [RST_BUS_I2C0]          =  { 0x2d0, BIT(16) },
++      [RST_BUS_I2C1]          =  { 0x2d0, BIT(17) },
++      [RST_BUS_I2C2]          =  { 0x2d0, BIT(18) },
++      [RST_BUS_UART0]         =  { 0x2d0, BIT(20) },
++      [RST_BUS_UART1]         =  { 0x2d0, BIT(21) },
++      [RST_BUS_UART2]         =  { 0x2d0, BIT(22) },
++};
++
++static const struct sunxi_ccu_desc suniv_ccu_desc = {
++      .ccu_clks       = suniv_ccu_clks,
++      .num_ccu_clks   = ARRAY_SIZE(suniv_ccu_clks),
++
++      .hw_clks        = &suniv_hw_clks,
++
++      .resets         = suniv_ccu_resets,
++      .num_resets     = ARRAY_SIZE(suniv_ccu_resets),
++};
++
++static struct ccu_pll_nb suniv_pll_cpu_nb = {
++      .common = &pll_cpu_clk.common,
++      /* copy from pll_cpu_clk */
++      .enable = BIT(31),
++      .lock   = BIT(28),
++};
++
++static struct ccu_mux_nb suniv_cpu_nb = {
++      .common         = &cpu_clk.common,
++      .cm             = &cpu_clk.mux,
++      .delay_us       = 1, /* > 8 clock cycles at 24 MHz */
++      .bypass_index   = 1, /* index of 24 MHz oscillator */
++};
++
++static void __init suniv_f1c100s_ccu_setup(struct device_node *node)
++{
++      void __iomem *reg;
++      u32 val;
++
++      reg = of_io_request_and_map(node, 0, of_node_full_name(node));
++      if (IS_ERR(reg)) {
++              pr_err("%pOF: Could not map the clock registers\n", node);
++              return;
++      }
++
++      /* Force the PLL-Audio-1x divider to 4 */
++      val = readl(reg + SUNIV_PLL_AUDIO_REG);
++      val &= ~GENMASK(19, 16);
++      writel(val | (3 << 16), reg + SUNIV_PLL_AUDIO_REG);
++
++      sunxi_ccu_probe(node, reg, &suniv_ccu_desc);
++
++      /* Gate then ungate PLL CPU after any rate changes */
++      ccu_pll_notifier_register(&suniv_pll_cpu_nb);
++
++      /* Reparent CPU during PLL CPU rate changes */
++      ccu_mux_notifier_register(pll_cpu_clk.common.hw.clk,
++                                &suniv_cpu_nb);
++}
++CLK_OF_DECLARE(suniv_f1c100s_ccu, "allwinner,suniv-f1c100s-ccu",
++             suniv_f1c100s_ccu_setup);
+diff --git a/drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h b/drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h
+new file mode 100644
+index 0000000..1da687a
+--- /dev/null
++++ b/drivers/clk/sunxi-ng/ccu-suniv-f1c100s.h
+@@ -0,0 +1,34 @@
++/*
++ * Copyright 2017 Icenowy Zheng <icenowy@aosc.io>
++ *
++ * SPDX-License-Identifier: GPL-2.0+
++ */
++
++#ifndef _CCU_SUNIV_F1C100S_H_
++#define _CCU_SUNIV_F1C100S_H_
++
++#include <dt-bindings/clock/suniv-ccu-f1c100s.h>
++#include <dt-bindings/reset/suniv-ccu-f1c100s.h>
++
++#define CLK_PLL_CPU           0
++#define CLK_PLL_AUDIO_BASE    1
++#define CLK_PLL_AUDIO         2
++#define CLK_PLL_AUDIO_2X      3
++#define CLK_PLL_AUDIO_4X      4
++#define CLK_PLL_AUDIO_8X      5
++#define CLK_PLL_VIDEO         6
++#define CLK_PLL_VIDEO_2X      7
++#define CLK_PLL_VE            8
++#define CLK_PLL_DDR0          9
++#define CLK_PLL_PERIPH                10
++
++/* CPU clock is exported */
++
++#define CLK_AHB                       12
++#define CLK_APB                       13
++
++/* All bus gates, DRAM gates and mod clocks are exported */
++
++#define CLK_NUMBER            (CLK_AVS + 1)
++
++#endif /* _CCU_SUNIV_F1C100S_H_ */
+
+From patchwork Wed Nov 21 18:30:46 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692971
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0BF701709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:36 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F07E32C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:35 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id E45372C673; Wed, 21 Nov 2018 18:32:35 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9CB6A2C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:35 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S2387409AbeKVFHi (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:38 -0500
+Received: from mail-wm1-f67.google.com ([209.85.128.67]:53563 "EHLO
+        mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733287AbeKVFHg (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:36 -0500
+Received: by mail-wm1-f67.google.com with SMTP id y1so3288656wmi.3;
+        Wed, 21 Nov 2018 10:32:08 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=DFY3DydABVbR33exQJlwKtWgpi3dRu2TYxEKXuiiXVU=;
+        b=ZDV3GiDUMApGuzeTfxHv7lhlySgjpPxSE3KBoB0KaT9T8OBVMRKPtkUDH0NIWTF1cY
+         izeDlsnY3Ggyfp8jJEMeXnMBYNSYDkG3BPBJWfPq4VcCH17e6M2+gp32CBN4qiM+efqM
+         Wvv9icmxUUyevTmRHuN0TrAjXcEl+300LH1zY/7doU3F4tqsawmDIz4UlnVb85cFuOOQ
+         Hil51RpuEJBwA1dXZrX/iFRIUS6bPLmyTYu+DemUEJUuIEL2ILmQbE19pR/EnuS6865A
+         VVTJ8037iw4HPziJXNUNWFtB4J3hLRVeAek5RTp9U/WdytY4VckdLZUa0+IgYzugEGVr
+         mESA==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=DFY3DydABVbR33exQJlwKtWgpi3dRu2TYxEKXuiiXVU=;
+        b=nOc9L4iW6snno6vrl3bTc1wiDCCn2OYSQumGJI2dKKZc+kJ/uRLUkWBMC9jF6CmoAO
+         22R1vanGYuLqbMk9EUMjq9qWUyXhWlHiQaIM7TXbPgqdviWIoYLFDllli716ESsP9eaA
+         xoz7sAY86pfvuefrlPvFzy6WYuUTS5XIpq2D1STq29eHMSoMmbfze/YXVD1CLE2lt/y8
+         wB8QIVGdFPuCF3ChbRYGFoDJ5SMYn1Tdr7kDgtIHd3PkZeoMP6DyKzqAJAijsXbxNz5I
+         r+TEquUby2uyDYQz3R+Ln3VRCdouCNaJ/R9xHSKL0LQCgg0eBwVk0bNElBYGEireUvLh
+         wDHw==
+X-Gm-Message-State: AA+aEWaLjc2w/iQEdTfARZAu5BWZxaczE0JryCtGXtLk8sEsZwhD8EO2
+        YL8RNpxaXF7MR56n1kAZTV2CwRddmDI=
+X-Google-Smtp-Source: 
+ AJdET5fia/mb8AzgOcR/ZQEMV3r3rdEEkOV6SfmB56ChZCZh+RTvGaDxSG+t3Fz+m5TkKgvldCR4vA==
+X-Received: by 2002:a1c:9690:: with SMTP id
+ y138-v6mr7153266wmd.67.1542825127187;
+        Wed, 21 Nov 2018 10:32:07 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.32.05
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:06 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 13/17] SoC: sunxi: Add support for Allwinner ARMv5
+ F1C100s sram
+Date: Wed, 21 Nov 2018 21:30:46 +0300
+Message-Id: 
+ <89f6179c17a98f160301fdeef27df35b359847e3.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Allwinner ARMv5 F1C100s has similar sram controller to sun4i A10
+Add compatible strings for it.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ drivers/soc/sunxi/sunxi_sram.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c
+index b4b0f34..27f0607 100644
+--- a/drivers/soc/sunxi/sunxi_sram.c
++++ b/drivers/soc/sunxi/sunxi_sram.c
+@@ -99,6 +99,10 @@ static const struct of_device_id sunxi_sram_dt_ids[] = {
+               .compatible     = "allwinner,sun50i-a64-sram-c",
+               .data           = &sun50i_a64_sram_c.data,
+       },
++      {
++              .compatible     = "allwinner,suniv-f1c100s-sram-d",
++              .data           = &sun4i_a10_sram_d.data,
++      },
+       {}
+ };
+@@ -389,6 +393,10 @@ static const struct of_device_id sunxi_sram_dt_match[] = {
+               .compatible = "allwinner,sun50i-a64-system-control",
+               .data = &sun50i_a64_sramc_variant,
+       },
++      {
++              .compatible = "allwinner,suniv-f1c100s-system-control",
++              .data = &sun4i_a10_sramc_variant,
++      },
+       { },
+ };
+ MODULE_DEVICE_TABLE(of, sunxi_sram_dt_match);
+
+From patchwork Wed Nov 21 18:30:47 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692977
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3419313AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:42 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22E232C670
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:42 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 16FC52C679; Wed, 21 Nov 2018 18:32:42 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B88832C673
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:41 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1731291AbeKVFIC (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:08:02 -0500
+Received: from mail-wm1-f67.google.com ([209.85.128.67]:40511 "EHLO
+        mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733244AbeKVFHh (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:37 -0500
+Received: by mail-wm1-f67.google.com with SMTP id q26so6727109wmf.5;
+        Wed, 21 Nov 2018 10:32:10 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=VkBCO6K4jPS0dHvhbbwgoiFud7vJu2Xh/5JJylFhPPU=;
+        b=Yj2C6uDigE6tefumrJ9LeCkOdpgu8m3kUgt2duyMpuxSCMwDfI3KFU/DMUlJptLe3q
+         9sqtlxOoIaZobYcVSrROZHsM2fR0bEYGinjIwLeMmLImQS3iptN2NkPZuaEBMsjb6lKs
+         leO3Fb98EZxYhvOWT/yUK5dQgEyczFEf60m6HIuFadYa+fiNMOLkQSfwGUqltsAfjuxO
+         am77xw4kq3+zZifOTGsyw/jo7TV1pF9NlUXhDrJ3iwyJTf69Y+Hh5+0nhTS/ZojOG836
+         oDoBJ6IwVEL8c6CrvSd7jjbFQOQQQO5Ui+XOVloo90IqlWOKpVBte5ZjCU6puXby3Aay
+         ICIg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=VkBCO6K4jPS0dHvhbbwgoiFud7vJu2Xh/5JJylFhPPU=;
+        b=b3aCBv0Y5u2lJSUQT+iSs9T6pu8DvMjiAy5HkQBtqkNQBQFJ49dhoqyjYzcS59zqE7
+         2h0lt9VK36UY1sPEnr0bbu+Z/Z7Ntw1RPMX9nUhEthGD9Lz6UEzMTZGQHY04F2+pl7in
+         k4utl9LdRDVR2McfUbwfexDxsluYQIs0LYvUU3i/bgTcLQDcbfe1H0kn9PudxSvJsHca
+         R+r4DXJNM5ZCRVt7FYAbw56fTUiKdeaeWbXyHd/zO4UnmJN/y/IQONEo9iRjUI2NIxEw
+         39ymUxtETqmPuQ3vddH14T6M4oAWRboWgUBpouOyfjByKB/8GdSu78Zi+BzmjlYJiNuT
+         WSVg==
+X-Gm-Message-State: AGRZ1gJf/QLIFgNYWRpQgj3O5iUalD92OUFZjbvEKXWIvj5AdBE8G7j+
+        u6vsXC4oN+mIki6P46RV+6BD86wCWrQ=
+X-Google-Smtp-Source: 
+ AJdET5dwzuRTFDl53YX4LXEVa6hjSNu9rDJqqMEUX+C7d9FWIHOPnESUu5sC4/mFo9XK4CR00tpVFQ==
+X-Received: by 2002:a1c:c008:: with SMTP id q8mr6195038wmf.99.1542825129152;
+        Wed, 21 Nov 2018 10:32:09 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.32.07
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:08 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 14/17] dt-bindings: watchdog: Add Allwinner ARMv5
+ F1C100s wdt
+Date: Wed, 21 Nov 2018 21:30:47 +0300
+Message-Id: 
+ <713a56409ba6afb4896d3ac9617f1784c7889f0f.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Allwinner ARMv5 F1C100s has similar watchdog timer to sun6i A31.
+Add definition for it.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
+---
+ Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
+index ed11ce0..5eefc56 100644
+--- a/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
++++ b/Documentation/devicetree/bindings/watchdog/sunxi-wdt.txt
+@@ -6,6 +6,7 @@ Required properties:
+       "allwinner,sun4i-a10-wdt"
+       "allwinner,sun6i-a31-wdt"
+       "allwinner,sun50i-a64-wdt","allwinner,sun6i-a31-wdt"
++      "allwinner,suniv-f1c100s-wdt"
+ - reg : Specifies base physical address and size of the registers.
+ Optional properties:
+
+From patchwork Wed Nov 21 18:30:48 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692969
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DADD813AD
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:32 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CAE192C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:32 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id BF3C52C673; Wed, 21 Nov 2018 18:32:32 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7725D2C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:32 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S2387429AbeKVFHl (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:41 -0500
+Received: from mail-wm1-f67.google.com ([209.85.128.67]:35076 "EHLO
+        mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733287AbeKVFHk (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:40 -0500
+Received: by mail-wm1-f67.google.com with SMTP id c126so6747253wmh.0;
+        Wed, 21 Nov 2018 10:32:12 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=uVh0xNo2V1MxOpBSFsyikXljPWdCVTSBhzPNWO4ZvGY=;
+        b=sAmYMJUnUDaNoFq8FCH3Jcvy9ZFamXo0JscNxyHCPMExbaTUzvXXGzscIUnKmuTQmA
+         d/F//6PcKMBIdt0rrUW3uWIxXNzYTlIJj1LK3r9+zxLyrh2lFj4DcGeVYkZgY3VIFxsm
+         yGWGeYaRY1w+GyYV4PkS5pqsWzDJBbE2pgRBO+jBS9/2q4QjUscmGPEF7LPdTtf8oH3i
+         VBgdZx4CD3ekV+ye28CQR4utCtMpLFjR+1aEtDQdmFoT9xAI5vV1mA8oSvxQj0H9zZ0+
+         rgPZ2TL4TuWp5SI3EGMvyQ8jddvpKDU21t1dw/I0RRc/pF5uMup+GyMkNmNRU95YTN/C
+         Grxg==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=uVh0xNo2V1MxOpBSFsyikXljPWdCVTSBhzPNWO4ZvGY=;
+        b=QH4MDmyMSf8/noP0USXTrEM8zg5bpTsMnygvxNVXlijyp8Gkevht6y+r5EBlP7E/CX
+         ALD+zB30Dy2fTsccJ9ZSn7v2CwhX824CFlw1n8S+6UkUriLc7wm9JRsHCkn4zCBwETYT
+         SGZQg/Qr1i9puRhdWwPhHZzLWpEBLYGouMP1TaeE2LYTShbSptTn/oEqBxgxl/fITkpJ
+         Co9taSBnml9p7xUadsynjvtZCl0peDT+MglcgDlVg1cv2Q0+YwJ+iV4v6VFm11ZyYWoM
+         TBkGsU3oUej4SOwG+3iAKVg2CzURFchZiIgVibkOJxBrGroDnXjVspPop2UJmmMluZd1
+         NibQ==
+X-Gm-Message-State: AGRZ1gL+UhRf2dC3f3aoVUkw/DljtaS5k47aKiRsxsVbRcFmhUz/Kg1G
+        W9ocZT7t9P1Mnp/sps/VC0KOCqykovg=
+X-Google-Smtp-Source: 
+ AJdET5dRC+tZ6xNqh0tg9gjz5YUjPkHUwxpPrhSij+JDvdS4hD9I98VY4BCIUCMsrsep/LhEQFjFvg==
+X-Received: by 2002:a1c:bc82:: with SMTP id
+ m124-v6mr6638648wmf.47.1542825131138;
+        Wed, 21 Nov 2018 10:32:11 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.32.09
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:10 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 15/17] watchdog: Add support for Allwinner ARMv5
+ F1C100s wdt
+Date: Wed, 21 Nov 2018 21:30:48 +0300
+Message-Id: 
+ <09c57147e53dda00eaae83178d0a25fe3f50dd1e.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Allwinner ARMv5 F1C100s has similar watchdog timer to sun6i A31.
+Add compatible string for it.
+
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+---
+ drivers/watchdog/sunxi_wdt.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c
+index c6c7365..bc70742 100644
+--- a/drivers/watchdog/sunxi_wdt.c
++++ b/drivers/watchdog/sunxi_wdt.c
+@@ -227,6 +227,7 @@ static const struct sunxi_wdt_reg sun6i_wdt_reg = {
+ static const struct of_device_id sunxi_wdt_dt_ids[] = {
+       { .compatible = "allwinner,sun4i-a10-wdt", .data = &sun4i_wdt_reg },
+       { .compatible = "allwinner,sun6i-a31-wdt", .data = &sun6i_wdt_reg },
++      { .compatible = "allwinner,suniv-f1c100s-wdt", .data = &sun6i_wdt_reg },
+       { /* sentinel */ }
+ };
+ MODULE_DEVICE_TABLE(of, sunxi_wdt_dt_ids);
+
+From patchwork Wed Nov 21 18:30:49 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692965
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DD6461709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:24 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CD50D2C670
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:24 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id C132B2C679; Wed, 21 Nov 2018 18:32:24 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 499CF2C670
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:24 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S2387448AbeKVFHo (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:44 -0500
+Received: from mail-wr1-f67.google.com ([209.85.221.67]:38549 "EHLO
+        mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S2387427AbeKVFHm (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:42 -0500
+Received: by mail-wr1-f67.google.com with SMTP id v13so3274703wrw.5;
+        Wed, 21 Nov 2018 10:32:14 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=Nwmip1A+la+a07VN/rOqBKthSuSlBcSoXvJ85NRv8pE=;
+        b=VdQM4xhCKTuSoI2tcgrWbhAa9PcTDUEH/69Rh85IJSEu04MZDopdRt9FZvPjQ1tp1x
+         CQGY28KZ3UGFXvxWcUWGqbjs50HN1CpL5lv/xbxZB5STdT7M9BvYppRVmrxR18kZM//5
+         va7OU4H/GfqGizeM7zdGWUsErmb92O5ghfCdWWnPDjjGSsEX234gHDn66jMcqsIvg0V2
+         b+a9RcuAVMCvN7EtFMUtqkWHbW6OuYCnum7KgG4oOdDUPikf49g/62KA0w7HcJrhMG82
+         hBYmf8avWsWY944X0p3DYTtL1/ncA2KeMhh+a89kKwO1GobvS+o31K541f6xm0/hIG1y
+         kT6A==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=Nwmip1A+la+a07VN/rOqBKthSuSlBcSoXvJ85NRv8pE=;
+        b=If7ZjFb82roVAv7Rz4jDZPenCKCW+pPEztv7vDZLrDTGqxP1uhO/byv3AtzCo09Dni
+         YAAmURTOE4jprLh/md85VPQ2dkCdfOegOnRdz2PUVVbsZauBqcmndEeja54njE9zPM63
+         CLwjg1fCwjYp1WmmFWHh8z5Jt/HGdgqA7W/P/ck6MbhcqkE4BgycApzv3Vo4bogbPJ7x
+         gjuzTRTq/HSHyboyV6aljwH3c6AuKj++vWkOfPYPsvPfwg6Jb1CYNMIPeluCRcGPw1vH
+         OC2YEFjKk14LbCyB4H4EtOAwyc5vVKvPbgvNv3wZGef3L8+ZDDW1BG7T1usiHoZFPEqs
+         +4tQ==
+X-Gm-Message-State: AA+aEWauVswWYmIfadCQQ49zhuDoK0v94fs2T/weyg0ON3aKG7sMTp4i
+        Q4fgHgxP1UBKD/pPdQR4gLj+ApleU08=
+X-Google-Smtp-Source: 
+ AFSGD/VYJZLSAqa/z2p5KSPjl2GKDIaWBvXqZi3NLNjY75BVY19bLsajvInnmCzxblRlxhT+WHg4KQ==
+X-Received: by 2002:adf:b716:: with SMTP id l22mr7173491wre.186.1542825133170;
+        Wed, 21 Nov 2018 10:32:13 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.32.11
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:12 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>,
+        Mesih Kilinc <mesihkilnc@gmail.com>
+Subject: [RFC PATCH v3 16/17] ARM: dts: suniv: add initial DTSI file for
+ F1C100s
+Date: Wed, 21 Nov 2018 21:30:49 +0300
+Message-Id: 
+ <05dab577154c72117678c2f49ae85a9663a630e2.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+F1C100s is one product with the suniv die, which has a 32MiB co-packaged
+DDR1 DRAM chip. As we have the support for suniv pin controller and CCU now, add a
+initial DTSI for it.
+
+Signed-off-by: Mesih Kilinc <mesihkilnc@gmail.com>
+---
+ arch/arm/boot/dts/suniv-f1c100s.dtsi | 151 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 151 insertions(+)
+ create mode 100644 arch/arm/boot/dts/suniv-f1c100s.dtsi
+
+diff --git a/arch/arm/boot/dts/suniv-f1c100s.dtsi b/arch/arm/boot/dts/suniv-f1c100s.dtsi
+new file mode 100644
+index 0000000..3ad64ee
+--- /dev/null
++++ b/arch/arm/boot/dts/suniv-f1c100s.dtsi
+@@ -0,0 +1,151 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR X11)
++/*
++ * Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
++ * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com>
++ */
++
++#include <dt-bindings/clock/suniv-ccu-f1c100s.h>
++#include <dt-bindings/reset/suniv-ccu-f1c100s.h>
++
++/ {
++      #address-cells = <1>;
++      #size-cells = <1>;
++      interrupt-parent = <&intc>;
++
++      clocks {
++              #address-cells = <1>;
++              #size-cells = <1>;
++              ranges;
++
++              osc24M: clk-24M {
++                      #clock-cells = <0>;
++                      compatible = "fixed-clock";
++                      clock-frequency = <24000000>;
++                      clock-output-names = "osc24M";
++              };
++
++              osc32k: clk-32k {
++                      #clock-cells = <0>;
++                      compatible = "fixed-clock";
++                      clock-frequency = <32768>;
++                      clock-output-names = "osc32k";
++              };
++      };
++
++      cpus {
++              #address-cells = <0>;
++              #size-cells = <0>;
++
++              cpu {
++                      compatible = "arm,arm926ej-s";
++                      device_type = "cpu";
++              };
++      };
++
++      soc {
++              compatible = "simple-bus";
++              #address-cells = <1>;
++              #size-cells = <1>;
++              ranges;
++
++              sram-controller@1c00000 {
++                      compatible = "allwinner,suniv-f1c100s-system-control";
++                      reg = <0x01c00000 0x30>;
++                      #address-cells = <1>;
++                      #size-cells = <1>;
++                      ranges;
++
++                      sram_d: sram@10000 {
++                              compatible = "mmio-sram";
++                              reg = <0x00010000 0x1000>;
++                              #address-cells = <1>;
++                              #size-cells = <1>;
++                              ranges = <0 0x00010000 0x1000>;
++
++                              otg_sram: sram-section@0 {
++                                      compatible = "allwinner,suniv-f1c100s-sram-d";
++                                      reg = <0x0000 0x1000>;
++                                      status = "disabled";
++                              };
++                      };
++              };
++
++              ccu: clock@1c20000 {
++                      compatible = "allwinner,suniv-f1c100s-ccu";
++                      reg = <0x01c20000 0x400>;
++                      clocks = <&osc24M>, <&osc32k>;
++                      clock-names = "hosc", "losc";
++                      #clock-cells = <1>;
++                      #reset-cells = <1>;
++              };
++
++              intc: interrupt-controller@1c20400 {
++                      compatible = "allwinner,suniv-f1c100s-ic";
++                      reg = <0x01c20400 0x400>;
++                      interrupt-controller;
++                      #interrupt-cells = <1>;
++              };
++
++              pio: pinctrl@1c20800 {
++                      compatible = "allwinner,suniv-f1c100s-pinctrl";
++                      reg = <0x01c20800 0x400>;
++                      interrupts = <38>, <39>, <40>;
++                      clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
++                      clock-names = "apb", "hosc", "losc";
++                      gpio-controller;
++                      interrupt-controller;
++                      #interrupt-cells = <3>;
++                      #gpio-cells = <3>;
++
++                      uart0_pins_a: uart-pins-pe {
++                              pins = "PE0", "PE1";
++                              function = "uart0";
++                      };
++              };
++
++              timer@1c20c00 {
++                      compatible = "allwinner,suniv-f1c100s-timer";
++                      reg = <0x01c20c00 0x90>;
++                      interrupts = <13>;
++                      clocks = <&osc24M>;
++              };
++
++              wdt: watchdog@1c20ca0 {
++                      compatible = "allwinner,suniv-f1c100s-wdt";
++                      reg = <0x01c20ca0 0x20>;
++              };
++
++              uart0: serial@1c25000 {
++                      compatible = "snps,dw-apb-uart";
++                      reg = <0x01c25000 0x400>;
++                      interrupts = <1>;
++                      reg-shift = <2>;
++                      reg-io-width = <4>;
++                      clocks = <&ccu CLK_BUS_UART0>;
++                      resets = <&ccu RST_BUS_UART0>;
++                      status = "disabled";
++              };
++
++              uart1: serial@1c25400 {
++                      compatible = "snps,dw-apb-uart";
++                      reg = <0x01c25400 0x400>;
++                      interrupts = <2>;
++                      reg-shift = <2>;
++                      reg-io-width = <4>;
++                      clocks = <&ccu CLK_BUS_UART1>;
++                      resets = <&ccu RST_BUS_UART1>;
++                      status = "disabled";
++              };
++
++              uart2: serial@1c25800 {
++                      compatible = "snps,dw-apb-uart";
++                      reg = <0x01c25800 0x400>;
++                      interrupts = <3>;
++                      reg-shift = <2>;
++                      reg-io-width = <4>;
++                      clocks = <&ccu CLK_BUS_UART2>;
++                      resets = <&ccu RST_BUS_UART2>;
++                      status = "disabled";
++              };
++      };
++};
+
+From patchwork Wed Nov 21 18:30:50 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Mesih Kilinc <mesihkilinc@gmail.com>
+X-Patchwork-Id: 10692967
+Return-Path: <linux-clk-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+       by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B008E1709
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:30 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9F3292C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:30 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+       id 935832C673; Wed, 21 Nov 2018 18:32:30 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       pdx-wl-mail.web.codeaurora.org
+X-Spam-Level: 
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+       DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+       autolearn=ham version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+       by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F0F92C666
+       for <patchwork-linux-clk@patchwork.kernel.org>;
+ Wed, 21 Nov 2018 18:32:30 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+        id S1731433AbeKVFHv (ORCPT
+        <rfc822;patchwork-linux-clk@patchwork.kernel.org>);
+        Thu, 22 Nov 2018 00:07:51 -0500
+Received: from mail-wr1-f68.google.com ([209.85.221.68]:42047 "EHLO
+        mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+        with ESMTP id S1733287AbeKVFHo (ORCPT
+        <rfc822;linux-clk@vger.kernel.org>); Thu, 22 Nov 2018 00:07:44 -0500
+Received: by mail-wr1-f68.google.com with SMTP id q18so6730342wrx.9;
+        Wed, 21 Nov 2018 10:32:16 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=gmail.com; s=20161025;
+        h=from:to:cc:subject:date:message-id:in-reply-to:references;
+        bh=M/F13hGIu6S2eKou90/ihwML11eeJAohnt+PY+W3ikI=;
+        b=WaF/rI5YaAiC6Be4ION3zIdcmRcT0wK3yJggGSt4OR52ELy0Oh9X32BAzuWYKVcLVd
+         /fhuQoaZjimZIwZ2WkZUp6p4FlVczn4QM3jAQK+YSD0REpu9uTolpPuau/70eC9vI3TP
+         IaCK80dhTU3RGViu8Eze6iC4ZY1js8cFQYqDe0yB03S1Cg8M6rLkeTyk8trjUX5ro61S
+         P8NBYN3XjijmBmgmKB/5wGoILDiY0ZhBKt1UkswED9ehAjUqJPFFc7IwwrHWci5j8F4C
+         1uly2g5TRfZV4VWtqGV/5UZj00k2JQ8iT5UlMdZhn3d4IOgoJSY7QUtZ7gJ5YxkhmdED
+         6yJA==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+        d=1e100.net; s=20161025;
+        h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+         :references;
+        bh=M/F13hGIu6S2eKou90/ihwML11eeJAohnt+PY+W3ikI=;
+        b=DVdmPfAnkyvvHq2euDL0mW5VA99p6teBzf6wugOKiHylmC2hI/98W8uZloYcinM+xA
+         vzqa/s8RcmhsXHNyWBb6ldCt762OpSzXKx+4rdJUsK4YJCWL+wGStMTJMLbU4JhM3OvS
+         JWHUHH8qwM5SLNvMLT382UC0XR798YI3WcKF0hkYZH2qF6L3vSmrw7JEfhLMP92gL6Ds
+         f8LbeEfi0ua0/TNqTenyk4PmNnOwk1EEMjHIRMXcpd7J3Lq1CRlOlwwjXdfcVpTmEQjj
+         ToieOegUdSFA1MwYfs82AAVv8Fkjwe0JleQjsfuFSdPKm5fFZXIo3Wav5ruG1LILJDfI
+         DcEw==
+X-Gm-Message-State: AA+aEWZ9WFNkcfRn7gYQCPWXxRNJliZ4G7pk7siaIJ7XWV1mOcpm7arj
+        n+37H+qG23Cz8K7syMfqpj9ySKh3QoE=
+X-Google-Smtp-Source: 
+ AFSGD/WNN0/BvDKGjxA6x/1axaU+fHY3lPbOGGy7AQLmXHGuaC7/ZyoE+pssjYydhgLci+4LrfQEjg==
+X-Received: by 2002:adf:f4c2:: with SMTP id h2mr6693932wrp.21.1542825135253;
+        Wed, 21 Nov 2018 10:32:15 -0800 (PST)
+Received: from ThinkPad.home ([185.219.177.229])
+        by smtp.gmail.com with ESMTPSA id
+ e66-v6sm2568779wmf.40.2018.11.21.10.32.13
+        (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
+        Wed, 21 Nov 2018 10:32:14 -0800 (PST)
+From: Mesih Kilinc <mesihkilinc@gmail.com>
+To: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+        linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
+        linux-gpio@vger.kernel.org, linux-sunxi@googlegroups.com
+Cc: Mesih Kilinc <mesihkilinc@gmail.com>,
+        Maxime Ripard <maxime.ripard@free-electrons.com>,
+        Chen-Yu Tsai <wens@csie.org>,
+        Russell King <linux@armlinux.org.uk>,
+        Daniel Lezcano <daniel.lezcano@linaro.org>,
+        Marc Zyngier <marc.zyngier@arm.com>,
+        Linus Walleij <linus.walleij@linaro.org>,
+        Icenowy Zheng <icenowy@aosc.io>,
+        Rob Herring <robh+dt@kernel.org>,
+        Julian Calaby <julian.calaby@gmail.com>
+Subject: [RFC PATCH v3 17/17] ARM: suniv: f1c100s: add device tree for Lichee
+ Pi Nano
+Date: Wed, 21 Nov 2018 21:30:50 +0300
+Message-Id: 
+ <055b2e09b14ff1699f2ed8fc879a6e9cfa9c5270.1542824904.git.mesihkilinc@gmail.com>
+X-Mailer: git-send-email 2.7.4
+In-Reply-To: <cover.1542824904.git.mesihkilinc@gmail.com>
+References: <cover.1542824904.git.mesihkilinc@gmail.com>
+Sender: linux-clk-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-clk.vger.kernel.org>
+X-Mailing-List: linux-clk@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+Lichee Pi Nano is a F1C100s board by Lichee Pi.
+
+Add initial device tree for it.
+
+Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
+Signed-off-by: Mesih Kilinc <mesihkilinc@gmail.com>
+---
+ arch/arm/boot/dts/Makefile                        |  2 ++
+ arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts | 26 +++++++++++++++++++++++
+ 2 files changed, 28 insertions(+)
+ create mode 100644 arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index b0e966d..2b96a5b 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -1066,6 +1066,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
+ dtb-$(CONFIG_MACH_SUN9I) += \
+       sun9i-a80-optimus.dtb \
+       sun9i-a80-cubieboard4.dtb
++dtb-$(CONFIG_MACH_SUNIV) += \
++      suniv-f1c100s-licheepi-nano.dtb
+ dtb-$(CONFIG_ARCH_TANGO) += \
+       tango4-vantage-1172.dtb
+ dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
+diff --git a/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts b/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
+new file mode 100644
+index 0000000..6ae5ccc
+--- /dev/null
++++ b/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
+@@ -0,0 +1,26 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR X11)
++/*
++ * Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
++ */
++
++/dts-v1/;
++#include "suniv-f1c100s.dtsi"
++
++/ {
++      model = "Lichee Pi Nano";
++      compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s";
++
++      aliases {
++              serial0 = &uart0;
++      };
++
++      chosen {
++              stdout-path = "serial0:115200n8";
++      };
++};
++
++&uart0 {
++      pinctrl-names = "default";
++      pinctrl-0 = <&uart0_pins_a>;
++      status = "okay";
++};