diff options
Diffstat (limited to 'arch/arm')
617 files changed, 11445 insertions, 5657 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 664e918e2624..054ead960f98 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | config ARM | 2 | config ARM |
| 3 | bool | 3 | bool |
| 4 | default y | 4 | default y |
| 5 | select ARCH_32BIT_OFF_T | ||
| 5 | select ARCH_CLOCKSOURCE_DATA | 6 | select ARCH_CLOCKSOURCE_DATA |
| 6 | select ARCH_DISCARD_MEMBLOCK if !HAVE_ARCH_PFN_VALID && !KEXEC | 7 | select ARCH_DISCARD_MEMBLOCK if !HAVE_ARCH_PFN_VALID && !KEXEC |
| 7 | select ARCH_HAS_DEBUG_VIRTUAL if MMU | 8 | select ARCH_HAS_DEBUG_VIRTUAL if MMU |
| @@ -12,9 +13,11 @@ config ARM | |||
| 12 | select ARCH_HAS_MEMBARRIER_SYNC_CORE | 13 | select ARCH_HAS_MEMBARRIER_SYNC_CORE |
| 13 | select ARCH_HAS_PTE_SPECIAL if ARM_LPAE | 14 | select ARCH_HAS_PTE_SPECIAL if ARM_LPAE |
| 14 | select ARCH_HAS_PHYS_TO_DMA | 15 | select ARCH_HAS_PHYS_TO_DMA |
| 16 | select ARCH_HAS_SETUP_DMA_OPS | ||
| 15 | select ARCH_HAS_SET_MEMORY | 17 | select ARCH_HAS_SET_MEMORY |
| 16 | select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL | 18 | select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL |
| 17 | select ARCH_HAS_STRICT_MODULE_RWX if MMU | 19 | select ARCH_HAS_STRICT_MODULE_RWX if MMU |
| 20 | select ARCH_HAS_TEARDOWN_DMA_OPS if MMU | ||
| 18 | select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST | 21 | select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST |
| 19 | select ARCH_HAVE_CUSTOM_GPIO_H | 22 | select ARCH_HAVE_CUSTOM_GPIO_H |
| 20 | select ARCH_HAS_GCOV_PROFILE_ALL | 23 | select ARCH_HAS_GCOV_PROFILE_ALL |
| @@ -30,6 +33,7 @@ config ARM | |||
| 30 | select CLONE_BACKWARDS | 33 | select CLONE_BACKWARDS |
| 31 | select CPU_PM if SUSPEND || CPU_IDLE | 34 | select CPU_PM if SUSPEND || CPU_IDLE |
| 32 | select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS | 35 | select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS |
| 36 | select DMA_DECLARE_COHERENT | ||
| 33 | select DMA_REMAP if MMU | 37 | select DMA_REMAP if MMU |
| 34 | select EDAC_SUPPORT | 38 | select EDAC_SUPPORT |
| 35 | select EDAC_ATOMIC_SCRUB | 39 | select EDAC_ATOMIC_SCRUB |
| @@ -72,7 +76,6 @@ config ARM | |||
| 72 | select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL | 76 | select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL |
| 73 | select HAVE_FUNCTION_TRACER if !XIP_KERNEL | 77 | select HAVE_FUNCTION_TRACER if !XIP_KERNEL |
| 74 | select HAVE_GCC_PLUGINS | 78 | select HAVE_GCC_PLUGINS |
| 75 | select HAVE_GENERIC_DMA_COHERENT | ||
| 76 | select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7) | 79 | select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7) |
| 77 | select HAVE_IDE if PCI || ISA || PCMCIA | 80 | select HAVE_IDE if PCI || ISA || PCMCIA |
| 78 | select HAVE_IRQ_TIME_ACCOUNTING | 81 | select HAVE_IRQ_TIME_ACCOUNTING |
| @@ -101,7 +104,6 @@ config ARM | |||
| 101 | select MODULES_USE_ELF_REL | 104 | select MODULES_USE_ELF_REL |
| 102 | select NEED_DMA_MAP_STATE | 105 | select NEED_DMA_MAP_STATE |
| 103 | select OF_EARLY_FLATTREE if OF | 106 | select OF_EARLY_FLATTREE if OF |
| 104 | select OF_RESERVED_MEM if OF | ||
| 105 | select OLD_SIGACTION | 107 | select OLD_SIGACTION |
| 106 | select OLD_SIGSUSPEND3 | 108 | select OLD_SIGSUSPEND3 |
| 107 | select PCI_SYSCALL if PCI | 109 | select PCI_SYSCALL if PCI |
| @@ -589,11 +591,13 @@ config ARCH_DAVINCI | |||
| 589 | select GENERIC_ALLOCATOR | 591 | select GENERIC_ALLOCATOR |
| 590 | select GENERIC_CLOCKEVENTS | 592 | select GENERIC_CLOCKEVENTS |
| 591 | select GENERIC_IRQ_CHIP | 593 | select GENERIC_IRQ_CHIP |
| 594 | select GENERIC_IRQ_MULTI_HANDLER | ||
| 592 | select GPIOLIB | 595 | select GPIOLIB |
| 593 | select HAVE_IDE | 596 | select HAVE_IDE |
| 594 | select PM_GENERIC_DOMAINS if PM | 597 | select PM_GENERIC_DOMAINS if PM |
| 595 | select PM_GENERIC_DOMAINS_OF if PM && OF | 598 | select PM_GENERIC_DOMAINS_OF if PM && OF |
| 596 | select RESET_CONTROLLER | 599 | select RESET_CONTROLLER |
| 600 | select SPARSE_IRQ | ||
| 597 | select USE_OF | 601 | select USE_OF |
| 598 | select ZONE_DMA | 602 | select ZONE_DMA |
| 599 | help | 603 | help |
| @@ -750,6 +754,8 @@ source "arch/arm/mach-mediatek/Kconfig" | |||
| 750 | 754 | ||
| 751 | source "arch/arm/mach-meson/Kconfig" | 755 | source "arch/arm/mach-meson/Kconfig" |
| 752 | 756 | ||
| 757 | source "arch/arm/mach-milbeaut/Kconfig" | ||
| 758 | |||
| 753 | source "arch/arm/mach-mmp/Kconfig" | 759 | source "arch/arm/mach-mmp/Kconfig" |
| 754 | 760 | ||
| 755 | source "arch/arm/mach-moxart/Kconfig" | 761 | source "arch/arm/mach-moxart/Kconfig" |
| @@ -1304,7 +1310,7 @@ config SCHED_SMT | |||
| 1304 | config HAVE_ARM_SCU | 1310 | config HAVE_ARM_SCU |
| 1305 | bool | 1311 | bool |
| 1306 | help | 1312 | help |
| 1307 | This option enables support for the ARM system coherency unit | 1313 | This option enables support for the ARM snoop control unit |
| 1308 | 1314 | ||
| 1309 | config HAVE_ARM_ARCH_TIMER | 1315 | config HAVE_ARM_ARCH_TIMER |
| 1310 | bool "Architected timer support" | 1316 | bool "Architected timer support" |
| @@ -1316,7 +1322,6 @@ config HAVE_ARM_ARCH_TIMER | |||
| 1316 | 1322 | ||
| 1317 | config HAVE_ARM_TWD | 1323 | config HAVE_ARM_TWD |
| 1318 | bool | 1324 | bool |
| 1319 | select TIMER_OF if OF | ||
| 1320 | help | 1325 | help |
| 1321 | This options enables support for the ARM timer and watchdog unit | 1326 | This options enables support for the ARM timer and watchdog unit |
| 1322 | 1327 | ||
| @@ -1400,6 +1405,7 @@ config NR_CPUS | |||
| 1400 | config HOTPLUG_CPU | 1405 | config HOTPLUG_CPU |
| 1401 | bool "Support for hot-pluggable CPUs" | 1406 | bool "Support for hot-pluggable CPUs" |
| 1402 | depends on SMP | 1407 | depends on SMP |
| 1408 | select GENERIC_IRQ_MIGRATION | ||
| 1403 | help | 1409 | help |
| 1404 | Say Y here to experiment with turning CPUs off and on. CPUs | 1410 | Say Y here to experiment with turning CPUs off and on. CPUs |
| 1405 | can be controlled through /sys/devices/system/cpu. | 1411 | can be controlled through /sys/devices/system/cpu. |
diff --git a/arch/arm/Kconfig-nommu b/arch/arm/Kconfig-nommu index 1168a03c8525..36c80d3dd93f 100644 --- a/arch/arm/Kconfig-nommu +++ b/arch/arm/Kconfig-nommu | |||
| @@ -20,10 +20,12 @@ config DRAM_SIZE | |||
| 20 | 20 | ||
| 21 | config FLASH_MEM_BASE | 21 | config FLASH_MEM_BASE |
| 22 | hex 'FLASH Base Address' if SET_MEM_PARAM | 22 | hex 'FLASH Base Address' if SET_MEM_PARAM |
| 23 | depends on CPU_ARM740T || CPU_ARM946E || CPU_ARM940T | ||
| 23 | default 0x00400000 | 24 | default 0x00400000 |
| 24 | 25 | ||
| 25 | config FLASH_SIZE | 26 | config FLASH_SIZE |
| 26 | hex 'FLASH Size' if SET_MEM_PARAM | 27 | hex 'FLASH Size' if SET_MEM_PARAM |
| 28 | depends on CPU_ARM740T || CPU_ARM946E || CPU_ARM940T | ||
| 27 | default 0x00400000 | 29 | default 0x00400000 |
| 28 | 30 | ||
| 29 | config PROCESSOR_ID | 31 | config PROCESSOR_ID |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 9db3c584b2cb..807a7d06c2a0 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | # | 10 | # |
| 11 | # Copyright (C) 1995-2001 by Russell King | 11 | # Copyright (C) 1995-2001 by Russell King |
| 12 | 12 | ||
| 13 | LDFLAGS_vmlinux :=-p --no-undefined -X --pic-veneer | 13 | LDFLAGS_vmlinux := --no-undefined -X --pic-veneer |
| 14 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) | 14 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) |
| 15 | LDFLAGS_vmlinux += --be8 | 15 | LDFLAGS_vmlinux += --be8 |
| 16 | KBUILD_LDFLAGS_MODULE += --be8 | 16 | KBUILD_LDFLAGS_MODULE += --be8 |
| @@ -190,6 +190,7 @@ machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0 | |||
| 190 | machine-$(CONFIG_ARCH_MVEBU) += mvebu | 190 | machine-$(CONFIG_ARCH_MVEBU) += mvebu |
| 191 | machine-$(CONFIG_ARCH_MXC) += imx | 191 | machine-$(CONFIG_ARCH_MXC) += imx |
| 192 | machine-$(CONFIG_ARCH_MEDIATEK) += mediatek | 192 | machine-$(CONFIG_ARCH_MEDIATEK) += mediatek |
| 193 | machine-$(CONFIG_ARCH_MILBEAUT) += milbeaut | ||
| 193 | machine-$(CONFIG_ARCH_MXS) += mxs | 194 | machine-$(CONFIG_ARCH_MXS) += mxs |
| 194 | machine-$(CONFIG_ARCH_NETX) += netx | 195 | machine-$(CONFIG_ARCH_NETX) += netx |
| 195 | machine-$(CONFIG_ARCH_NOMADIK) += nomadik | 196 | machine-$(CONFIG_ARCH_NOMADIK) += nomadik |
diff --git a/arch/arm/boot/bootp/Makefile b/arch/arm/boot/bootp/Makefile index 83e1a076a5d6..981a8d03f064 100644 --- a/arch/arm/boot/bootp/Makefile +++ b/arch/arm/boot/bootp/Makefile | |||
| @@ -8,7 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | GCOV_PROFILE := n | 9 | GCOV_PROFILE := n |
| 10 | 10 | ||
| 11 | LDFLAGS_bootp :=-p --no-undefined -X \ | 11 | LDFLAGS_bootp := --no-undefined -X \ |
| 12 | --defsym initrd_phys=$(INITRD_PHYS) \ | 12 | --defsym initrd_phys=$(INITRD_PHYS) \ |
| 13 | --defsym params_phys=$(PARAMS_PHYS) -T | 13 | --defsym params_phys=$(PARAMS_PHYS) -T |
| 14 | AFLAGS_initrd.o :=-DINITRD=\"$(INITRD)\" | 14 | AFLAGS_initrd.o :=-DINITRD=\"$(INITRD)\" |
diff --git a/arch/arm/boot/bootp/init.S b/arch/arm/boot/bootp/init.S index 78b508075161..142927e5f485 100644 --- a/arch/arm/boot/bootp/init.S +++ b/arch/arm/boot/bootp/init.S | |||
| @@ -44,7 +44,7 @@ _start: add lr, pc, #-0x8 @ lr = current load addr | |||
| 44 | */ | 44 | */ |
| 45 | movne r10, #0 @ terminator | 45 | movne r10, #0 @ terminator |
| 46 | movne r4, #2 @ Size of this entry (2 words) | 46 | movne r4, #2 @ Size of this entry (2 words) |
| 47 | stmneia r9, {r4, r5, r10} @ Size, ATAG_CORE, terminator | 47 | stmiane r9, {r4, r5, r10} @ Size, ATAG_CORE, terminator |
| 48 | 48 | ||
| 49 | /* | 49 | /* |
| 50 | * find the end of the tag list, and then add an INITRD tag on the end. | 50 | * find the end of the tag list, and then add an INITRD tag on the end. |
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 6114ae6ea466..9219389bbe61 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
| @@ -132,8 +132,6 @@ endif | |||
| 132 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) | 132 | ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) |
| 133 | LDFLAGS_vmlinux += --be8 | 133 | LDFLAGS_vmlinux += --be8 |
| 134 | endif | 134 | endif |
| 135 | # ? | ||
| 136 | LDFLAGS_vmlinux += -p | ||
| 137 | # Report unresolved symbol references | 135 | # Report unresolved symbol references |
| 138 | LDFLAGS_vmlinux += --no-undefined | 136 | LDFLAGS_vmlinux += --no-undefined |
| 139 | # Delete all temporary local symbols | 137 | # Delete all temporary local symbols |
diff --git a/arch/arm/boot/compressed/ll_char_wr.S b/arch/arm/boot/compressed/ll_char_wr.S index 8517c8606b4a..b1dcdb9f4030 100644 --- a/arch/arm/boot/compressed/ll_char_wr.S +++ b/arch/arm/boot/compressed/ll_char_wr.S | |||
| @@ -75,7 +75,7 @@ Lrow4bpplp: | |||
| 75 | tst r1, #7 @ avoid using r7 directly after | 75 | tst r1, #7 @ avoid using r7 directly after |
| 76 | str r7, [r0, -r5]! | 76 | str r7, [r0, -r5]! |
| 77 | subne r1, r1, #1 | 77 | subne r1, r1, #1 |
| 78 | ldrneb r7, [r6, r1] | 78 | ldrbne r7, [r6, r1] |
| 79 | bne Lrow4bpplp | 79 | bne Lrow4bpplp |
| 80 | ldmfd sp!, {r4 - r7, pc} | 80 | ldmfd sp!, {r4 - r7, pc} |
| 81 | 81 | ||
| @@ -103,7 +103,7 @@ Lrow8bpplp: | |||
| 103 | sub r0, r0, r5 @ avoid ip | 103 | sub r0, r0, r5 @ avoid ip |
| 104 | stmia r0, {r4, ip} | 104 | stmia r0, {r4, ip} |
| 105 | subne r1, r1, #1 | 105 | subne r1, r1, #1 |
| 106 | ldrneb r7, [r6, r1] | 106 | ldrbne r7, [r6, r1] |
| 107 | bne Lrow8bpplp | 107 | bne Lrow8bpplp |
| 108 | ldmfd sp!, {r4 - r7, pc} | 108 | ldmfd sp!, {r4 - r7, pc} |
| 109 | 109 | ||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index bd40148a15b2..f4f5aeaf3298 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ | |||
| 79 | bcm2835-rpi-a-plus.dtb \ | 79 | bcm2835-rpi-a-plus.dtb \ |
| 80 | bcm2835-rpi-cm1-io1.dtb \ | 80 | bcm2835-rpi-cm1-io1.dtb \ |
| 81 | bcm2836-rpi-2-b.dtb \ | 81 | bcm2836-rpi-2-b.dtb \ |
| 82 | bcm2837-rpi-3-a-plus.dtb \ | ||
| 82 | bcm2837-rpi-3-b.dtb \ | 83 | bcm2837-rpi-3-b.dtb \ |
| 83 | bcm2837-rpi-3-b-plus.dtb \ | 84 | bcm2837-rpi-3-b-plus.dtb \ |
| 84 | bcm2837-rpi-cm3-io3.dtb \ | 85 | bcm2837-rpi-cm3-io3.dtb \ |
| @@ -115,6 +116,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \ | |||
| 115 | bcm47094-luxul-xwr-3100.dtb \ | 116 | bcm47094-luxul-xwr-3100.dtb \ |
| 116 | bcm47094-luxul-xwr-3150-v1.dtb \ | 117 | bcm47094-luxul-xwr-3150-v1.dtb \ |
| 117 | bcm47094-netgear-r8500.dtb \ | 118 | bcm47094-netgear-r8500.dtb \ |
| 119 | bcm47094-phicomm-k3.dtb \ | ||
| 118 | bcm94708.dtb \ | 120 | bcm94708.dtb \ |
| 119 | bcm94709.dtb \ | 121 | bcm94709.dtb \ |
| 120 | bcm953012er.dtb \ | 122 | bcm953012er.dtb \ |
| @@ -313,7 +315,8 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \ | |||
| 313 | dtb-$(CONFIG_ARCH_LPC18XX) += \ | 315 | dtb-$(CONFIG_ARCH_LPC18XX) += \ |
| 314 | lpc4337-ciaa.dtb \ | 316 | lpc4337-ciaa.dtb \ |
| 315 | lpc4350-hitex-eval.dtb \ | 317 | lpc4350-hitex-eval.dtb \ |
| 316 | lpc4357-ea4357-devkit.dtb | 318 | lpc4357-ea4357-devkit.dtb \ |
| 319 | lpc4357-myd-lpc4357.dtb | ||
| 317 | dtb-$(CONFIG_ARCH_LPC32XX) += \ | 320 | dtb-$(CONFIG_ARCH_LPC32XX) += \ |
| 318 | lpc3250-ea3250.dtb \ | 321 | lpc3250-ea3250.dtb \ |
| 319 | lpc3250-phy3250.dtb | 322 | lpc3250-phy3250.dtb |
| @@ -445,6 +448,9 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ | |||
| 445 | imx6dl-wandboard.dtb \ | 448 | imx6dl-wandboard.dtb \ |
| 446 | imx6dl-wandboard-revb1.dtb \ | 449 | imx6dl-wandboard-revb1.dtb \ |
| 447 | imx6dl-wandboard-revd1.dtb \ | 450 | imx6dl-wandboard-revd1.dtb \ |
| 451 | imx6dl-yapp4-draco.dtb \ | ||
| 452 | imx6dl-yapp4-hydra.dtb \ | ||
| 453 | imx6dl-yapp4-ursa.dtb \ | ||
| 448 | imx6q-apalis-eval.dtb \ | 454 | imx6q-apalis-eval.dtb \ |
| 449 | imx6q-apalis-ixora.dtb \ | 455 | imx6q-apalis-ixora.dtb \ |
| 450 | imx6q-apalis-ixora-v1.1.dtb \ | 456 | imx6q-apalis-ixora-v1.1.dtb \ |
| @@ -561,6 +567,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \ | |||
| 561 | imx6ul-opos6uldev.dtb \ | 567 | imx6ul-opos6uldev.dtb \ |
| 562 | imx6ul-pico-hobbit.dtb \ | 568 | imx6ul-pico-hobbit.dtb \ |
| 563 | imx6ul-pico-pi.dtb \ | 569 | imx6ul-pico-pi.dtb \ |
| 570 | imx6ul-phytec-phyboard-segin-full.dtb \ | ||
| 564 | imx6ul-tx6ul-0010.dtb \ | 571 | imx6ul-tx6ul-0010.dtb \ |
| 565 | imx6ul-tx6ul-0011.dtb \ | 572 | imx6ul-tx6ul-0011.dtb \ |
| 566 | imx6ul-tx6ul-mainboard.dtb \ | 573 | imx6ul-tx6ul-mainboard.dtb \ |
| @@ -599,6 +606,7 @@ dtb-$(CONFIG_SOC_VF610) += \ | |||
| 599 | vf610-zii-dev-rev-b.dtb \ | 606 | vf610-zii-dev-rev-b.dtb \ |
| 600 | vf610-zii-dev-rev-c.dtb \ | 607 | vf610-zii-dev-rev-c.dtb \ |
| 601 | vf610-zii-scu4-aib.dtb \ | 608 | vf610-zii-scu4-aib.dtb \ |
| 609 | vf610-zii-ssmb-dtu.dtb \ | ||
| 602 | vf610-zii-ssmb-spu3.dtb | 610 | vf610-zii-ssmb-spu3.dtb |
| 603 | dtb-$(CONFIG_ARCH_MXS) += \ | 611 | dtb-$(CONFIG_ARCH_MXS) += \ |
| 604 | imx23-evk.dtb \ | 612 | imx23-evk.dtb \ |
| @@ -700,6 +708,7 @@ dtb-$(CONFIG_ARCH_OMAP3) += \ | |||
| 700 | omap3-thunder.dtb \ | 708 | omap3-thunder.dtb \ |
| 701 | omap3-zoom3.dtb | 709 | omap3-zoom3.dtb |
| 702 | dtb-$(CONFIG_SOC_TI81XX) += \ | 710 | dtb-$(CONFIG_SOC_TI81XX) += \ |
| 711 | am3874-iceboard.dtb \ | ||
| 703 | dm8148-evm.dtb \ | 712 | dm8148-evm.dtb \ |
| 704 | dm8148-t410.dtb \ | 713 | dm8148-t410.dtb \ |
| 705 | dm8168-evm.dtb \ | 714 | dm8168-evm.dtb \ |
| @@ -719,6 +728,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \ | |||
| 719 | am335x-cm-t335.dtb \ | 728 | am335x-cm-t335.dtb \ |
| 720 | am335x-evm.dtb \ | 729 | am335x-evm.dtb \ |
| 721 | am335x-evmsk.dtb \ | 730 | am335x-evmsk.dtb \ |
| 731 | am335x-guardian.dtb \ | ||
| 722 | am335x-icev2.dtb \ | 732 | am335x-icev2.dtb \ |
| 723 | am335x-lxm.dtb \ | 733 | am335x-lxm.dtb \ |
| 724 | am335x-moxa-uc-2101.dtb \ | 734 | am335x-moxa-uc-2101.dtb \ |
| @@ -843,6 +853,7 @@ dtb-$(CONFIG_ARCH_RENESAS) += \ | |||
| 843 | r7s72100-genmai.dtb \ | 853 | r7s72100-genmai.dtb \ |
| 844 | r7s72100-gr-peach.dtb \ | 854 | r7s72100-gr-peach.dtb \ |
| 845 | r7s72100-rskrza1.dtb \ | 855 | r7s72100-rskrza1.dtb \ |
| 856 | r7s9210-rza2mevb.dtb \ | ||
| 846 | r8a73a4-ape6evm.dtb \ | 857 | r8a73a4-ape6evm.dtb \ |
| 847 | r8a7740-armadillo800eva.dtb \ | 858 | r8a7740-armadillo800eva.dtb \ |
| 848 | r8a7743-iwg20d-q7.dtb \ | 859 | r8a7743-iwg20d-q7.dtb \ |
| @@ -868,6 +879,7 @@ dtb-$(CONFIG_ARCH_RENESAS) += \ | |||
| 868 | r9a06g032-rzn1d400-db.dtb \ | 879 | r9a06g032-rzn1d400-db.dtb \ |
| 869 | sh73a0-kzm9g.dtb | 880 | sh73a0-kzm9g.dtb |
| 870 | dtb-$(CONFIG_ARCH_ROCKCHIP) += \ | 881 | dtb-$(CONFIG_ARCH_ROCKCHIP) += \ |
| 882 | rv1108-elgin-r1.dtb \ | ||
| 871 | rv1108-evb.dtb \ | 883 | rv1108-evb.dtb \ |
| 872 | rk3036-evb.dtb \ | 884 | rk3036-evb.dtb \ |
| 873 | rk3036-kylin.dtb \ | 885 | rk3036-kylin.dtb \ |
| @@ -919,6 +931,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) += \ | |||
| 919 | socfpga_arria10_socdk_nand.dtb \ | 931 | socfpga_arria10_socdk_nand.dtb \ |
| 920 | socfpga_arria10_socdk_qspi.dtb \ | 932 | socfpga_arria10_socdk_qspi.dtb \ |
| 921 | socfpga_arria10_socdk_sdmmc.dtb \ | 933 | socfpga_arria10_socdk_sdmmc.dtb \ |
| 934 | socfpga_cyclone5_chameleon96.dtb \ | ||
| 922 | socfpga_cyclone5_mcvevk.dtb \ | 935 | socfpga_cyclone5_mcvevk.dtb \ |
| 923 | socfpga_cyclone5_socdk.dtb \ | 936 | socfpga_cyclone5_socdk.dtb \ |
| 924 | socfpga_cyclone5_de0_nano_soc.dtb \ | 937 | socfpga_cyclone5_de0_nano_soc.dtb \ |
| @@ -1233,6 +1246,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ | |||
| 1233 | mt7623n-bananapi-bpi-r2.dtb \ | 1246 | mt7623n-bananapi-bpi-r2.dtb \ |
| 1234 | mt8127-moose.dtb \ | 1247 | mt8127-moose.dtb \ |
| 1235 | mt8135-evbp1.dtb | 1248 | mt8135-evbp1.dtb |
| 1249 | dtb-$(CONFIG_ARCH_MILBEAUT) += milbeaut-m10v-evb.dtb | ||
| 1236 | dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb | 1250 | dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb |
| 1237 | dtb-$(CONFIG_ARCH_ASPEED) += \ | 1251 | dtb-$(CONFIG_ARCH_ASPEED) += \ |
| 1238 | aspeed-ast2500-evb.dtb \ | 1252 | aspeed-ast2500-evb.dtb \ |
diff --git a/arch/arm/boot/dts/alphascale-asm9260.dtsi b/arch/arm/boot/dts/alphascale-asm9260.dtsi index 907fc7bfc418..2ce6038536fd 100644 --- a/arch/arm/boot/dts/alphascale-asm9260.dtsi +++ b/arch/arm/boot/dts/alphascale-asm9260.dtsi | |||
| @@ -4,10 +4,11 @@ | |||
| 4 | * Licensed under the X11 license or the GPL v2 (or later) | 4 | * Licensed under the X11 license or the GPL v2 (or later) |
| 5 | */ | 5 | */ |
| 6 | 6 | ||
| 7 | #include "skeleton.dtsi" | ||
| 8 | #include <dt-bindings/clock/alphascale,asm9260.h> | 7 | #include <dt-bindings/clock/alphascale,asm9260.h> |
| 9 | 8 | ||
| 10 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 11 | interrupt-parent = <&icoll>; | 12 | interrupt-parent = <&icoll>; |
| 12 | 13 | ||
| 13 | memory { | 14 | memory { |
diff --git a/arch/arm/boot/dts/alpine.dtsi b/arch/arm/boot/dts/alpine.dtsi index 731df7a8c4e6..d3036ea823d1 100644 --- a/arch/arm/boot/dts/alpine.dtsi +++ b/arch/arm/boot/dts/alpine.dtsi | |||
| @@ -25,12 +25,18 @@ | |||
| 25 | */ | 25 | */ |
| 26 | 26 | ||
| 27 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 27 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 28 | #include "skeleton64.dtsi" | ||
| 29 | 28 | ||
| 30 | / { | 29 | / { |
| 30 | #address-cells = <2>; | ||
| 31 | #size-cells = <2>; | ||
| 31 | /* SOC compatibility */ | 32 | /* SOC compatibility */ |
| 32 | compatible = "al,alpine"; | 33 | compatible = "al,alpine"; |
| 33 | 34 | ||
| 35 | memory { | ||
| 36 | device_type = "memory"; | ||
| 37 | reg = <0 0 0 0>; | ||
| 38 | }; | ||
| 39 | |||
| 34 | /* CPU Configuration */ | 40 | /* CPU Configuration */ |
| 35 | cpus { | 41 | cpus { |
| 36 | #address-cells = <1>; | 42 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/am335x-baltos-ir2110.dts b/arch/arm/boot/dts/am335x-baltos-ir2110.dts index 75de1e723303..50dcf1290ac6 100644 --- a/arch/arm/boot/dts/am335x-baltos-ir2110.dts +++ b/arch/arm/boot/dts/am335x-baltos-ir2110.dts | |||
| @@ -72,7 +72,3 @@ | |||
| 72 | dual_emac_res_vlan = <2>; | 72 | dual_emac_res_vlan = <2>; |
| 73 | phy-handle = <&phy1>; | 73 | phy-handle = <&phy1>; |
| 74 | }; | 74 | }; |
| 75 | |||
| 76 | &phy_sel { | ||
| 77 | rmii-clock-ext = <1>; | ||
| 78 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-baltos-ir3220.dts b/arch/arm/boot/dts/am335x-baltos-ir3220.dts index 1b215c425c57..f3f1abd26470 100644 --- a/arch/arm/boot/dts/am335x-baltos-ir3220.dts +++ b/arch/arm/boot/dts/am335x-baltos-ir3220.dts | |||
| @@ -114,7 +114,3 @@ | |||
| 114 | dual_emac_res_vlan = <2>; | 114 | dual_emac_res_vlan = <2>; |
| 115 | phy-handle = <&phy1>; | 115 | phy-handle = <&phy1>; |
| 116 | }; | 116 | }; |
| 117 | |||
| 118 | &phy_sel { | ||
| 119 | rmii-clock-ext = <1>; | ||
| 120 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-baltos-ir5221.dts b/arch/arm/boot/dts/am335x-baltos-ir5221.dts index 832ead864dc5..42f473f0ed77 100644 --- a/arch/arm/boot/dts/am335x-baltos-ir5221.dts +++ b/arch/arm/boot/dts/am335x-baltos-ir5221.dts | |||
| @@ -133,10 +133,6 @@ | |||
| 133 | phy-handle = <&phy1>; | 133 | phy-handle = <&phy1>; |
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | &phy_sel { | ||
| 137 | rmii-clock-ext = <1>; | ||
| 138 | }; | ||
| 139 | |||
| 140 | &dcan1 { | 136 | &dcan1 { |
| 141 | pinctrl-names = "default"; | 137 | pinctrl-names = "default"; |
| 142 | pinctrl-0 = <&dcan1_pins>; | 138 | pinctrl-0 = <&dcan1_pins>; |
diff --git a/arch/arm/boot/dts/am335x-chiliboard.dts b/arch/arm/boot/dts/am335x-chiliboard.dts index 9c2a947aacf5..bffa5dce54ec 100644 --- a/arch/arm/boot/dts/am335x-chiliboard.dts +++ b/arch/arm/boot/dts/am335x-chiliboard.dts | |||
| @@ -14,6 +14,10 @@ | |||
| 14 | compatible = "grinn,am335x-chiliboard", "grinn,am335x-chilisom", | 14 | compatible = "grinn,am335x-chiliboard", "grinn,am335x-chilisom", |
| 15 | "ti,am33xx"; | 15 | "ti,am33xx"; |
| 16 | 16 | ||
| 17 | chosen { | ||
| 18 | stdout-path = &uart0; | ||
| 19 | }; | ||
| 20 | |||
| 17 | leds { | 21 | leds { |
| 18 | compatible = "gpio-leds"; | 22 | compatible = "gpio-leds"; |
| 19 | pinctrl-names = "default"; | 23 | pinctrl-names = "default"; |
| @@ -151,10 +155,6 @@ | |||
| 151 | phy-mode = "rmii"; | 155 | phy-mode = "rmii"; |
| 152 | }; | 156 | }; |
| 153 | 157 | ||
| 154 | &phy_sel { | ||
| 155 | rmii-clock-ext; | ||
| 156 | }; | ||
| 157 | |||
| 158 | /* USB */ | 158 | /* USB */ |
| 159 | &usb { | 159 | &usb { |
| 160 | status = "okay"; | 160 | status = "okay"; |
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts index b67f5fee1469..dce5be5df97b 100644 --- a/arch/arm/boot/dts/am335x-evm.dts +++ b/arch/arm/boot/dts/am335x-evm.dts | |||
| @@ -729,7 +729,7 @@ | |||
| 729 | 729 | ||
| 730 | &cpsw_emac0 { | 730 | &cpsw_emac0 { |
| 731 | phy-handle = <ðphy0>; | 731 | phy-handle = <ðphy0>; |
| 732 | phy-mode = "rgmii-txid"; | 732 | phy-mode = "rgmii-id"; |
| 733 | }; | 733 | }; |
| 734 | 734 | ||
| 735 | &tscadc { | 735 | &tscadc { |
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts index 172c0224e7f6..b128998097ce 100644 --- a/arch/arm/boot/dts/am335x-evmsk.dts +++ b/arch/arm/boot/dts/am335x-evmsk.dts | |||
| @@ -651,13 +651,13 @@ | |||
| 651 | 651 | ||
| 652 | &cpsw_emac0 { | 652 | &cpsw_emac0 { |
| 653 | phy-handle = <ðphy0>; | 653 | phy-handle = <ðphy0>; |
| 654 | phy-mode = "rgmii-txid"; | 654 | phy-mode = "rgmii-id"; |
| 655 | dual_emac_res_vlan = <1>; | 655 | dual_emac_res_vlan = <1>; |
| 656 | }; | 656 | }; |
| 657 | 657 | ||
| 658 | &cpsw_emac1 { | 658 | &cpsw_emac1 { |
| 659 | phy-handle = <ðphy1>; | 659 | phy-handle = <ðphy1>; |
| 660 | phy-mode = "rgmii-txid"; | 660 | phy-mode = "rgmii-id"; |
| 661 | dual_emac_res_vlan = <2>; | 661 | dual_emac_res_vlan = <2>; |
| 662 | }; | 662 | }; |
| 663 | 663 | ||
diff --git a/arch/arm/boot/dts/am335x-guardian.dts b/arch/arm/boot/dts/am335x-guardian.dts new file mode 100644 index 000000000000..c9611ea4b884 --- /dev/null +++ b/arch/arm/boot/dts/am335x-guardian.dts | |||
| @@ -0,0 +1,511 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
| 4 | * Copyright (C) 2018 Robert Bosch Power Tools GmbH | ||
| 5 | */ | ||
| 6 | /dts-v1/; | ||
| 7 | |||
| 8 | #include "am33xx.dtsi" | ||
| 9 | #include <dt-bindings/input/input.h> | ||
| 10 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 11 | |||
| 12 | / { | ||
| 13 | model = "Bosch AM335x Guardian"; | ||
| 14 | compatible = "bosch,am335x-guardian", "ti,am33xx"; | ||
| 15 | |||
| 16 | chosen { | ||
| 17 | stdout-path = &uart0; | ||
| 18 | tick-timer = &timer2; | ||
| 19 | }; | ||
| 20 | |||
| 21 | cpus { | ||
| 22 | cpu@0 { | ||
| 23 | cpu0-supply = <&dcdc2_reg>; | ||
| 24 | }; | ||
| 25 | }; | ||
| 26 | |||
| 27 | memory@80000000 { | ||
| 28 | device_type = "memory"; | ||
| 29 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
| 30 | }; | ||
| 31 | |||
| 32 | gpio_keys { | ||
| 33 | compatible = "gpio-keys"; | ||
| 34 | #address-cells = <1>; | ||
| 35 | #size-cells = <0>; | ||
| 36 | pinctrl-names = "default"; | ||
| 37 | pinctrl-0 = <&gpio_keys_pins>; | ||
| 38 | |||
| 39 | button21 { | ||
| 40 | label = "guardian-power-button"; | ||
| 41 | linux,code = <KEY_POWER>; | ||
| 42 | gpios = <&gpio2 21 0>; | ||
| 43 | wakeup-source; | ||
| 44 | }; | ||
| 45 | }; | ||
| 46 | |||
| 47 | leds { | ||
| 48 | compatible = "gpio-leds"; | ||
| 49 | pinctrl-names = "default"; | ||
| 50 | pinctrl-0 = <&leds_pins>; | ||
| 51 | |||
| 52 | led1 { | ||
| 53 | label = "green:heartbeat"; | ||
| 54 | gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>; | ||
| 55 | linux,default-trigger = "heartbeat"; | ||
| 56 | default-state = "off"; | ||
| 57 | }; | ||
| 58 | |||
| 59 | led2 { | ||
| 60 | label = "green:mmc0"; | ||
| 61 | gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>; | ||
| 62 | linux,default-trigger = "mmc0"; | ||
| 63 | default-state = "off"; | ||
| 64 | }; | ||
| 65 | }; | ||
| 66 | |||
| 67 | panel { | ||
| 68 | compatible = "ti,tilcdc,panel"; | ||
| 69 | pinctrl-names = "default", "sleep"; | ||
| 70 | pinctrl-0 = <&lcd_pins_default &lcd_disen_pins>; | ||
| 71 | pinctrl-1 = <&lcd_pins_sleep>; | ||
| 72 | |||
| 73 | display-timings { | ||
| 74 | 320x240 { | ||
| 75 | hactive = <320>; | ||
| 76 | vactive = <240>; | ||
| 77 | hback-porch = <68>; | ||
| 78 | hfront-porch = <20>; | ||
| 79 | hsync-len = <1>; | ||
| 80 | vback-porch = <18>; | ||
| 81 | vfront-porch = <4>; | ||
| 82 | vsync-len = <1>; | ||
| 83 | clock-frequency = <9000000>; | ||
| 84 | hsync-active = <0>; | ||
| 85 | vsync-active = <0>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | panel-info { | ||
| 89 | ac-bias = <255>; | ||
| 90 | ac-bias-intrpt = <0>; | ||
| 91 | dma-burst-sz = <16>; | ||
| 92 | bpp = <24>; | ||
| 93 | bus-width = <16>; | ||
| 94 | fdd = <0x80>; | ||
| 95 | sync-edge = <0>; | ||
| 96 | sync-ctrl = <1>; | ||
| 97 | raster-order = <0>; | ||
| 98 | fifo-th = <0>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | }; | ||
| 102 | |||
| 103 | pwm7: dmtimer-pwm { | ||
| 104 | compatible = "ti,omap-dmtimer-pwm"; | ||
| 105 | ti,timers = <&timer7>; | ||
| 106 | pinctrl-names = "default"; | ||
| 107 | pinctrl-0 = <&dmtimer7_pins>; | ||
| 108 | }; | ||
| 109 | |||
| 110 | vmmcsd_fixed: regulator-3v3 { | ||
| 111 | compatible = "regulator-fixed"; | ||
| 112 | regulator-name = "vmmcsd_fixed"; | ||
| 113 | regulator-min-microvolt = <3300000>; | ||
| 114 | regulator-max-microvolt = <3300000>; | ||
| 115 | }; | ||
| 116 | }; | ||
| 117 | |||
| 118 | &cppi41dma { | ||
| 119 | status = "okay"; | ||
| 120 | }; | ||
| 121 | |||
| 122 | &elm { | ||
| 123 | status = "okay"; | ||
| 124 | }; | ||
| 125 | |||
| 126 | &gpmc { | ||
| 127 | pinctrl-names = "default"; | ||
| 128 | pinctrl-0 = <&nandflash_pins>; | ||
| 129 | ranges = <0 0 0x08000000 0x1000000>; /* CS0: 16MB for NAND */ | ||
| 130 | status = "okay"; | ||
| 131 | |||
| 132 | nand@0,0 { | ||
| 133 | compatible = "ti,omap2-nand"; | ||
| 134 | reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ | ||
| 135 | interrupt-parent = <&gpmc>; | ||
| 136 | interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ | ||
| 137 | <1 IRQ_TYPE_NONE>; /* termcount */ | ||
| 138 | rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */ | ||
| 139 | ti,nand-ecc-opt = "bch16"; | ||
| 140 | ti,elm-id = <&elm>; | ||
| 141 | nand-bus-width = <8>; | ||
| 142 | gpmc,device-width = <1>; | ||
| 143 | gpmc,sync-clk-ps = <0>; | ||
| 144 | gpmc,cs-on-ns = <0>; | ||
| 145 | gpmc,cs-rd-off-ns = <44>; | ||
| 146 | gpmc,cs-wr-off-ns = <44>; | ||
| 147 | gpmc,adv-on-ns = <6>; | ||
| 148 | gpmc,adv-rd-off-ns = <34>; | ||
| 149 | gpmc,adv-wr-off-ns = <44>; | ||
| 150 | gpmc,we-on-ns = <0>; | ||
| 151 | gpmc,we-off-ns = <40>; | ||
| 152 | gpmc,oe-on-ns = <0>; | ||
| 153 | gpmc,oe-off-ns = <54>; | ||
| 154 | gpmc,access-ns = <64>; | ||
| 155 | gpmc,rd-cycle-ns = <82>; | ||
| 156 | gpmc,wr-cycle-ns = <82>; | ||
| 157 | gpmc,bus-turnaround-ns = <0>; | ||
| 158 | gpmc,cycle2cycle-delay-ns = <0>; | ||
| 159 | gpmc,clk-activation-ns = <0>; | ||
| 160 | gpmc,wr-access-ns = <40>; | ||
| 161 | gpmc,wr-data-mux-bus-ns = <0>; | ||
| 162 | |||
| 163 | /* | ||
| 164 | * MTD partition table | ||
| 165 | * | ||
| 166 | * All SPL-* partitions are sized to minimal length which can | ||
| 167 | * be independently programmable. For NAND flash this is equal | ||
| 168 | * to size of erase-block. | ||
| 169 | */ | ||
| 170 | #address-cells = <1>; | ||
| 171 | #size-cells = <1>; | ||
| 172 | |||
| 173 | partition@0 { | ||
| 174 | label = "SPL"; | ||
| 175 | reg = <0x0 0x40000>; | ||
| 176 | }; | ||
| 177 | |||
| 178 | partition@1 { | ||
| 179 | label = "SPL.backup1"; | ||
| 180 | reg = <0x40000 0x40000>; | ||
| 181 | }; | ||
| 182 | |||
| 183 | partition@2 { | ||
| 184 | label = "SPL.backup2"; | ||
| 185 | reg = <0x80000 0x40000>; | ||
| 186 | }; | ||
| 187 | |||
| 188 | partition@3 { | ||
| 189 | label = "SPL.backup3"; | ||
| 190 | reg = <0xc0000 0x40000>; | ||
| 191 | }; | ||
| 192 | |||
| 193 | partition@4 { | ||
| 194 | label = "u-boot"; | ||
| 195 | reg = <0x100000 0x100000>; | ||
| 196 | }; | ||
| 197 | |||
| 198 | partition@5 { | ||
| 199 | label = "u-boot.backup1"; | ||
| 200 | reg = <0x200000 0x100000>; | ||
| 201 | }; | ||
| 202 | |||
| 203 | partition@6 { | ||
| 204 | label = "u-boot-env"; | ||
| 205 | reg = <0x300000 0x40000>; | ||
| 206 | }; | ||
| 207 | |||
| 208 | partition@7 { | ||
| 209 | label = "u-boot-env.backup1"; | ||
| 210 | reg = <0x340000 0x40000>; | ||
| 211 | }; | ||
| 212 | |||
| 213 | partition@8 { | ||
| 214 | label = "UBI"; | ||
| 215 | reg = <0x380000 0x1fc80000>; | ||
| 216 | }; | ||
| 217 | }; | ||
| 218 | }; | ||
| 219 | |||
| 220 | &i2c0 { | ||
| 221 | pinctrl-names = "default"; | ||
| 222 | pinctrl-0 = <&i2c0_pins>; | ||
| 223 | clock-frequency = <400000>; | ||
| 224 | status = "okay"; | ||
| 225 | |||
| 226 | tps: tps@24 { | ||
| 227 | reg = <0x24>; | ||
| 228 | }; | ||
| 229 | }; | ||
| 230 | |||
| 231 | &lcdc { | ||
| 232 | blue-and-red-wiring = "crossed"; | ||
| 233 | status = "okay"; | ||
| 234 | }; | ||
| 235 | |||
| 236 | &mmc1 { | ||
| 237 | bus-width = <0x4>; | ||
| 238 | pinctrl-names = "default"; | ||
| 239 | pinctrl-0 = <&mmc1_pins>; | ||
| 240 | cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; | ||
| 241 | vmmc-supply = <&vmmcsd_fixed>; | ||
| 242 | status = "okay"; | ||
| 243 | }; | ||
| 244 | |||
| 245 | &rtc { | ||
| 246 | clocks = <&clk_32768_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>; | ||
| 247 | clock-names = "ext-clk", "int-clk"; | ||
| 248 | system-power-controller; | ||
| 249 | }; | ||
| 250 | |||
| 251 | &spi0 { | ||
| 252 | ti,pindir-d0-out-d1-in; | ||
| 253 | pinctrl-names = "default"; | ||
| 254 | pinctrl-0 = <&spi0_pins>; | ||
| 255 | status = "okay"; | ||
| 256 | }; | ||
| 257 | |||
| 258 | #include "tps65217.dtsi" | ||
| 259 | |||
| 260 | &tps { | ||
| 261 | ti,pmic-shutdown-controller; | ||
| 262 | interrupt-parent = <&intc>; | ||
| 263 | interrupts = <7>; /* NMI */ | ||
| 264 | |||
| 265 | backlight { | ||
| 266 | isel = <1>; /* 1 - ISET1, 2 ISET2 */ | ||
| 267 | fdim = <100>; /* TPS65217_BL_FDIM_100HZ */ | ||
| 268 | default-brightness = <100>; | ||
| 269 | }; | ||
| 270 | |||
| 271 | regulators { | ||
| 272 | dcdc1_reg: regulator@0 { | ||
| 273 | regulator-name = "vdds_dpr"; | ||
| 274 | regulator-always-on; | ||
| 275 | }; | ||
| 276 | |||
| 277 | dcdc2_reg: regulator@1 { | ||
| 278 | regulator-name = "vdd_mpu"; | ||
| 279 | regulator-min-microvolt = <925000>; | ||
| 280 | regulator-max-microvolt = <1351500>; | ||
| 281 | regulator-boot-on; | ||
| 282 | regulator-always-on; | ||
| 283 | }; | ||
| 284 | |||
| 285 | dcdc3_reg: regulator@2 { | ||
| 286 | regulator-name = "vdd_core"; | ||
| 287 | regulator-min-microvolt = <925000>; | ||
| 288 | regulator-max-microvolt = <1150000>; | ||
| 289 | regulator-boot-on; | ||
| 290 | regulator-always-on; | ||
| 291 | }; | ||
| 292 | |||
| 293 | ldo1_reg: regulator@3 { | ||
| 294 | regulator-name = "vio,vrtc,vdds"; | ||
| 295 | regulator-always-on; | ||
| 296 | }; | ||
| 297 | |||
| 298 | ldo2_reg: regulator@4 { | ||
| 299 | regulator-name = "vdd_3v3aux"; | ||
| 300 | regulator-always-on; | ||
| 301 | }; | ||
| 302 | |||
| 303 | ldo3_reg: regulator@5 { | ||
| 304 | regulator-name = "vdd_1v8"; | ||
| 305 | regulator-min-microvolt = <1800000>; | ||
| 306 | regulator-max-microvolt = <1800000>; | ||
| 307 | regulator-always-on; | ||
| 308 | }; | ||
| 309 | |||
| 310 | ldo4_reg: regulator@6 { | ||
| 311 | regulator-name = "vdd_3v3a"; | ||
| 312 | regulator-always-on; | ||
| 313 | }; | ||
| 314 | }; | ||
| 315 | }; | ||
| 316 | |||
| 317 | &tscadc { | ||
| 318 | status = "okay"; | ||
| 319 | |||
| 320 | adc { | ||
| 321 | ti,adc-channels = <0 1 2 3 4 5 6>; | ||
| 322 | }; | ||
| 323 | }; | ||
| 324 | |||
| 325 | &uart0 { | ||
| 326 | pinctrl-names = "default"; | ||
| 327 | pinctrl-0 = <&uart0_pins>; | ||
| 328 | status = "okay"; | ||
| 329 | }; | ||
| 330 | |||
| 331 | &usb { | ||
| 332 | status = "okay"; | ||
| 333 | }; | ||
| 334 | |||
| 335 | &usb_ctrl_mod { | ||
| 336 | status = "okay"; | ||
| 337 | }; | ||
| 338 | |||
| 339 | &usb0 { | ||
| 340 | dr_mode = "peripheral"; | ||
| 341 | status = "okay"; | ||
| 342 | }; | ||
| 343 | |||
| 344 | &usb0_phy { | ||
| 345 | status = "okay"; | ||
| 346 | }; | ||
| 347 | |||
| 348 | &usb1 { | ||
| 349 | dr_mode = "host"; | ||
| 350 | status = "okay"; | ||
| 351 | }; | ||
| 352 | |||
| 353 | &usb1_phy { | ||
| 354 | status = "okay"; | ||
| 355 | }; | ||
| 356 | |||
| 357 | &am33xx_pinmux { | ||
| 358 | pinctrl-names = "default"; | ||
| 359 | pinctrl-0 = <&clkout2_pin &gpio_pins>; | ||
| 360 | |||
| 361 | clkout2_pin: pinmux_clkout2_pin { | ||
| 362 | pinctrl-single,pins = < | ||
| 363 | AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3) | ||
| 364 | >; | ||
| 365 | }; | ||
| 366 | |||
| 367 | dmtimer7_pins: pinmux_dmtimer7_pins { | ||
| 368 | pinctrl-single,pins = < | ||
| 369 | AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE5) | ||
| 370 | >; | ||
| 371 | }; | ||
| 372 | |||
| 373 | gpio_keys_pins: pinmux_gpio_keys_pins { | ||
| 374 | pinctrl-single,pins = < | ||
| 375 | AM33XX_IOPAD(0x940, PIN_INPUT | MUX_MODE7) | ||
| 376 | >; | ||
| 377 | }; | ||
| 378 | |||
| 379 | gpio_pins: pinmux_gpio_pins { | ||
| 380 | pinctrl-single,pins = < | ||
| 381 | AM33XX_IOPAD(0x928, PIN_OUTPUT | MUX_MODE7) | ||
| 382 | AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE7) | ||
| 383 | >; | ||
| 384 | }; | ||
| 385 | |||
| 386 | i2c0_pins: pinmux_i2c0_pins { | ||
| 387 | pinctrl-single,pins = < | ||
| 388 | AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 389 | AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 390 | >; | ||
| 391 | }; | ||
| 392 | |||
| 393 | lcd_disen_pins: pinmux_lcd_disen_pins { | ||
| 394 | pinctrl-single,pins = < | ||
| 395 | AM33XX_IOPAD(0x9a4, PIN_OUTPUT_PULLUP | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 396 | >; | ||
| 397 | }; | ||
| 398 | |||
| 399 | lcd_pins_default: pinmux_lcd_pins_default { | ||
| 400 | pinctrl-single,pins = < | ||
| 401 | AM33XX_IOPAD(0x820, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 402 | AM33XX_IOPAD(0x824, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 403 | AM33XX_IOPAD(0x828, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 404 | AM33XX_IOPAD(0x82c, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 405 | AM33XX_IOPAD(0x830, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 406 | AM33XX_IOPAD(0x834, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 407 | AM33XX_IOPAD(0x838, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 408 | AM33XX_IOPAD(0x83c, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1) | ||
| 409 | AM33XX_IOPAD(0x8a0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 410 | AM33XX_IOPAD(0x8a4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 411 | AM33XX_IOPAD(0x8a8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 412 | AM33XX_IOPAD(0x8ac, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 413 | AM33XX_IOPAD(0x8b0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 414 | AM33XX_IOPAD(0x8b4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 415 | AM33XX_IOPAD(0x8b8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 416 | AM33XX_IOPAD(0x8bc, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 417 | AM33XX_IOPAD(0x8c0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 418 | AM33XX_IOPAD(0x8c4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 419 | AM33XX_IOPAD(0x8c8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 420 | AM33XX_IOPAD(0x8cc, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 421 | AM33XX_IOPAD(0x8d0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 422 | AM33XX_IOPAD(0x8d4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 423 | AM33XX_IOPAD(0x8d8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 424 | AM33XX_IOPAD(0x8dc, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 425 | AM33XX_IOPAD(0x8e0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 426 | AM33XX_IOPAD(0x8e4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 427 | AM33XX_IOPAD(0x8e8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 428 | AM33XX_IOPAD(0x8ec, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0) | ||
| 429 | >; | ||
| 430 | }; | ||
| 431 | |||
| 432 | lcd_pins_sleep: pinmux_lcd_pins_sleep { | ||
| 433 | pinctrl-single,pins = < | ||
| 434 | AM33XX_IOPAD(0x8a0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 435 | AM33XX_IOPAD(0x8a4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 436 | AM33XX_IOPAD(0x8a8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 437 | AM33XX_IOPAD(0x8ac, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 438 | AM33XX_IOPAD(0x8b0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 439 | AM33XX_IOPAD(0x8b4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 440 | AM33XX_IOPAD(0x8b8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 441 | AM33XX_IOPAD(0x8bc, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 442 | AM33XX_IOPAD(0x8c0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 443 | AM33XX_IOPAD(0x8c4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 444 | AM33XX_IOPAD(0x8c8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 445 | AM33XX_IOPAD(0x8cc, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 446 | AM33XX_IOPAD(0x8d0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 447 | AM33XX_IOPAD(0x8d4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 448 | AM33XX_IOPAD(0x8d8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 449 | AM33XX_IOPAD(0x8dc, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 450 | AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 451 | AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 452 | AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 453 | AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7) | ||
| 454 | >; | ||
| 455 | }; | ||
| 456 | |||
| 457 | leds_pins: pinmux_leds_pins { | ||
| 458 | pinctrl-single,pins = < | ||
| 459 | AM33XX_IOPAD(0x868, PIN_OUTPUT | MUX_MODE7) | ||
| 460 | AM33XX_IOPAD(0x86c, PIN_OUTPUT | MUX_MODE7) | ||
| 461 | >; | ||
| 462 | }; | ||
| 463 | |||
| 464 | mmc1_pins: pinmux_mmc1_pins { | ||
| 465 | pinctrl-single,pins = < | ||
| 466 | AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 467 | AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 468 | AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 469 | AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 470 | AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 471 | AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 472 | AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) | ||
| 473 | >; | ||
| 474 | }; | ||
| 475 | |||
| 476 | spi0_pins: pinmux_spi0_pins { | ||
| 477 | pinctrl-single,pins = < | ||
| 478 | AM33XX_IOPAD(0x950, PIN_OUTPUT_PULLDOWN | MUX_MODE0) | ||
| 479 | AM33XX_IOPAD(0x954, PIN_OUTPUT_PULLUP | MUX_MODE0) | ||
| 480 | AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 481 | AM33XX_IOPAD(0x95c, PIN_OUTPUT_PULLUP | MUX_MODE0) | ||
| 482 | >; | ||
| 483 | }; | ||
| 484 | |||
| 485 | uart0_pins: pinmux_uart0_pins { | ||
| 486 | pinctrl-single,pins = < | ||
| 487 | AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 488 | AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) | ||
| 489 | >; | ||
| 490 | }; | ||
| 491 | |||
| 492 | nandflash_pins: pinmux_nandflash_pins { | ||
| 493 | pinctrl-single,pins = < | ||
| 494 | AM33XX_IOPAD(0x800, PIN_INPUT | MUX_MODE0) | ||
| 495 | AM33XX_IOPAD(0x804, PIN_INPUT | MUX_MODE0) | ||
| 496 | AM33XX_IOPAD(0x808, PIN_INPUT | MUX_MODE0) | ||
| 497 | AM33XX_IOPAD(0x80c, PIN_INPUT | MUX_MODE0) | ||
| 498 | AM33XX_IOPAD(0x810, PIN_INPUT | MUX_MODE0) | ||
| 499 | AM33XX_IOPAD(0x814, PIN_INPUT | MUX_MODE0) | ||
| 500 | AM33XX_IOPAD(0x818, PIN_INPUT | MUX_MODE0) | ||
| 501 | AM33XX_IOPAD(0x81c, PIN_INPUT | MUX_MODE0) | ||
| 502 | AM33XX_IOPAD(0x870, PIN_INPUT | MUX_MODE0) | ||
| 503 | AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE0) | ||
| 504 | AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0) | ||
| 505 | AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0) | ||
| 506 | AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0) | ||
| 507 | AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0) | ||
| 508 | AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0) | ||
| 509 | >; | ||
| 510 | }; | ||
| 511 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-icev2.dts b/arch/arm/boot/dts/am335x-icev2.dts index f2005ecca74f..9ac775c71072 100644 --- a/arch/arm/boot/dts/am335x-icev2.dts +++ b/arch/arm/boot/dts/am335x-icev2.dts | |||
| @@ -484,10 +484,6 @@ | |||
| 484 | dual_emac; | 484 | dual_emac; |
| 485 | }; | 485 | }; |
| 486 | 486 | ||
| 487 | &phy_sel { | ||
| 488 | rmii-clock-ext; | ||
| 489 | }; | ||
| 490 | |||
| 491 | &davinci_mdio { | 487 | &davinci_mdio { |
| 492 | pinctrl-names = "default", "sleep"; | 488 | pinctrl-names = "default", "sleep"; |
| 493 | pinctrl-0 = <&davinci_mdio_default>; | 489 | pinctrl-0 = <&davinci_mdio_default>; |
diff --git a/arch/arm/boot/dts/am335x-igep0033.dtsi b/arch/arm/boot/dts/am335x-igep0033.dtsi index 55b4c94cfafb..cbd22f25de95 100644 --- a/arch/arm/boot/dts/am335x-igep0033.dtsi +++ b/arch/arm/boot/dts/am335x-igep0033.dtsi | |||
| @@ -123,10 +123,6 @@ | |||
| 123 | phy-mode = "rmii"; | 123 | phy-mode = "rmii"; |
| 124 | }; | 124 | }; |
| 125 | 125 | ||
| 126 | &phy_sel { | ||
| 127 | rmii-clock-ext; | ||
| 128 | }; | ||
| 129 | |||
| 130 | &elm { | 126 | &elm { |
| 131 | status = "okay"; | 127 | status = "okay"; |
| 132 | }; | 128 | }; |
diff --git a/arch/arm/boot/dts/am335x-lxm.dts b/arch/arm/boot/dts/am335x-lxm.dts index 481edcfaf121..d0e8e720a4d6 100644 --- a/arch/arm/boot/dts/am335x-lxm.dts +++ b/arch/arm/boot/dts/am335x-lxm.dts | |||
| @@ -328,10 +328,6 @@ | |||
| 328 | dual_emac_res_vlan = <3>; | 328 | dual_emac_res_vlan = <3>; |
| 329 | }; | 329 | }; |
| 330 | 330 | ||
| 331 | &phy_sel { | ||
| 332 | rmii-clock-ext; | ||
| 333 | }; | ||
| 334 | |||
| 335 | &mac { | 331 | &mac { |
| 336 | pinctrl-names = "default", "sleep"; | 332 | pinctrl-names = "default", "sleep"; |
| 337 | pinctrl-0 = <&cpsw_default>; | 333 | pinctrl-0 = <&cpsw_default>; |
diff --git a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi index 14f781953475..cb5913a69837 100644 --- a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi +++ b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi | |||
| @@ -159,11 +159,6 @@ | |||
| 159 | status = "okay"; | 159 | status = "okay"; |
| 160 | }; | 160 | }; |
| 161 | 161 | ||
| 162 | &phy_sel { | ||
| 163 | reg= <0x44e10650 0xf5>; | ||
| 164 | rmii-clock-ext; | ||
| 165 | }; | ||
| 166 | |||
| 167 | &sham { | 162 | &sham { |
| 168 | status = "okay"; | 163 | status = "okay"; |
| 169 | }; | 164 | }; |
diff --git a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts index 5a58efc0c874..e562ce40f290 100644 --- a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts +++ b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts | |||
| @@ -446,11 +446,6 @@ | |||
| 446 | dual_emac_res_vlan = <2>; | 446 | dual_emac_res_vlan = <2>; |
| 447 | }; | 447 | }; |
| 448 | 448 | ||
| 449 | &phy_sel { | ||
| 450 | reg= <0x44e10650 0xf5>; | ||
| 451 | rmii-clock-ext; | ||
| 452 | }; | ||
| 453 | |||
| 454 | &sham { | 449 | &sham { |
| 455 | status = "okay"; | 450 | status = "okay"; |
| 456 | }; | 451 | }; |
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi index 428a25e952b0..015adb626b03 100644 --- a/arch/arm/boot/dts/am335x-phycore-som.dtsi +++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi | |||
| @@ -100,10 +100,6 @@ | |||
| 100 | status = "okay"; | 100 | status = "okay"; |
| 101 | }; | 101 | }; |
| 102 | 102 | ||
| 103 | &phy_sel { | ||
| 104 | rmii-clock-ext; | ||
| 105 | }; | ||
| 106 | |||
| 107 | /* I2C Busses */ | 103 | /* I2C Busses */ |
| 108 | &am33xx_pinmux { | 104 | &am33xx_pinmux { |
| 109 | i2c0_pins: pinmux_i2c0 { | 105 | i2c0_pins: pinmux_i2c0 { |
diff --git a/arch/arm/boot/dts/am335x-shc.dts b/arch/arm/boot/dts/am335x-shc.dts index d0fd68873689..bfbe27a80006 100644 --- a/arch/arm/boot/dts/am335x-shc.dts +++ b/arch/arm/boot/dts/am335x-shc.dts | |||
| @@ -1,11 +1,9 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 1 | /* | 2 | /* |
| 2 | * support for the bosch am335x based shc c3 board | 3 | * support for the bosch am335x based shc c3 board |
| 3 | * | 4 | * |
| 4 | * Copyright, C) 2015 Heiko Schocher <hs@denx.de> | 5 | * Copyright, C) 2015 Heiko Schocher <hs@denx.de> |
| 5 | * | 6 | * |
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | 7 | */ |
| 10 | /dts-v1/; | 8 | /dts-v1/; |
| 11 | 9 | ||
| @@ -215,7 +213,7 @@ | |||
| 215 | pinctrl-names = "default"; | 213 | pinctrl-names = "default"; |
| 216 | pinctrl-0 = <&mmc1_pins>; | 214 | pinctrl-0 = <&mmc1_pins>; |
| 217 | bus-width = <0x4>; | 215 | bus-width = <0x4>; |
| 218 | cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; | 216 | cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; |
| 219 | cd-inverted; | 217 | cd-inverted; |
| 220 | max-frequency = <26000000>; | 218 | max-frequency = <26000000>; |
| 221 | vmmc-supply = <&vmmcsd_fixed>; | 219 | vmmc-supply = <&vmmcsd_fixed>; |
diff --git a/arch/arm/boot/dts/am33xx-l4.dtsi b/arch/arm/boot/dts/am33xx-l4.dtsi index 7b818d9d2eab..f459ec316a22 100644 --- a/arch/arm/boot/dts/am33xx-l4.dtsi +++ b/arch/arm/boot/dts/am33xx-l4.dtsi | |||
| @@ -279,17 +279,9 @@ | |||
| 279 | #pinctrl-cells = <1>; | 279 | #pinctrl-cells = <1>; |
| 280 | ranges = <0 0 0x2000>; | 280 | ranges = <0 0 0x2000>; |
| 281 | 281 | ||
| 282 | phy_sel: cpsw-phy-sel@650 { | ||
| 283 | compatible = "ti,am3352-cpsw-phy-sel"; | ||
| 284 | reg= <0x650 0x4>; | ||
| 285 | reg-names = "gmii-sel"; | ||
| 286 | }; | ||
| 287 | |||
| 288 | am33xx_pinmux: pinmux@800 { | 282 | am33xx_pinmux: pinmux@800 { |
| 289 | compatible = "pinctrl-single"; | 283 | compatible = "pinctrl-single"; |
| 290 | reg = <0x800 0x238>; | 284 | reg = <0x800 0x238>; |
| 291 | #address-cells = <1>; | ||
| 292 | #size-cells = <0>; | ||
| 293 | #pinctrl-cells = <1>; | 285 | #pinctrl-cells = <1>; |
| 294 | pinctrl-single,register-width = <32>; | 286 | pinctrl-single,register-width = <32>; |
| 295 | pinctrl-single,function-mask = <0x7f>; | 287 | pinctrl-single,function-mask = <0x7f>; |
| @@ -302,6 +294,12 @@ | |||
| 302 | #size-cells = <1>; | 294 | #size-cells = <1>; |
| 303 | ranges = <0 0 0x800>; | 295 | ranges = <0 0 0x800>; |
| 304 | 296 | ||
| 297 | phy_gmii_sel: phy-gmii-sel { | ||
| 298 | compatible = "ti,am3352-phy-gmii-sel"; | ||
| 299 | reg = <0x650 0x4>; | ||
| 300 | #phy-cells = <2>; | ||
| 301 | }; | ||
| 302 | |||
| 305 | scm_clocks: clocks { | 303 | scm_clocks: clocks { |
| 306 | #address-cells = <1>; | 304 | #address-cells = <1>; |
| 307 | #size-cells = <0>; | 305 | #size-cells = <0>; |
| @@ -717,7 +715,6 @@ | |||
| 717 | interrupts = <40 41 42 43>; | 715 | interrupts = <40 41 42 43>; |
| 718 | ranges = <0 0 0x8000>; | 716 | ranges = <0 0 0x8000>; |
| 719 | syscon = <&scm_conf>; | 717 | syscon = <&scm_conf>; |
| 720 | cpsw-phy-sel = <&phy_sel>; | ||
| 721 | status = "disabled"; | 718 | status = "disabled"; |
| 722 | 719 | ||
| 723 | davinci_mdio: mdio@1000 { | 720 | davinci_mdio: mdio@1000 { |
| @@ -733,11 +730,13 @@ | |||
| 733 | cpsw_emac0: slave@200 { | 730 | cpsw_emac0: slave@200 { |
| 734 | /* Filled in by U-Boot */ | 731 | /* Filled in by U-Boot */ |
| 735 | mac-address = [ 00 00 00 00 00 00 ]; | 732 | mac-address = [ 00 00 00 00 00 00 ]; |
| 733 | phys = <&phy_gmii_sel 1 1>; | ||
| 736 | }; | 734 | }; |
| 737 | 735 | ||
| 738 | cpsw_emac1: slave@300 { | 736 | cpsw_emac1: slave@300 { |
| 739 | /* Filled in by U-Boot */ | 737 | /* Filled in by U-Boot */ |
| 740 | mac-address = [ 00 00 00 00 00 00 ]; | 738 | mac-address = [ 00 00 00 00 00 00 ]; |
| 739 | phys = <&phy_gmii_sel 2 1>; | ||
| 741 | }; | 740 | }; |
| 742 | }; | 741 | }; |
| 743 | }; | 742 | }; |
diff --git a/arch/arm/boot/dts/am3874-iceboard.dts b/arch/arm/boot/dts/am3874-iceboard.dts new file mode 100644 index 000000000000..883fb85135d4 --- /dev/null +++ b/arch/arm/boot/dts/am3874-iceboard.dts | |||
| @@ -0,0 +1,496 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Device tree for Winterland IceBoard | ||
| 4 | * | ||
| 5 | * http://mcgillcosmology.com | ||
| 6 | * http://threespeedlogic.com | ||
| 7 | * | ||
| 8 | * This is an ARM + FPGA instrumentation board used at telescopes in | ||
| 9 | * Antarctica (the South Pole Telescope), Chile (POLARBEAR), and at the DRAO | ||
| 10 | * observatory in British Columbia (CHIME). | ||
| 11 | * | ||
| 12 | * Copyright (c) 2019 Three-Speed Logic, Inc. <gsmecher@threespeedlogic.com> | ||
| 13 | */ | ||
| 14 | |||
| 15 | /dts-v1/; | ||
| 16 | |||
| 17 | #include "dm814x.dtsi" | ||
| 18 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 19 | |||
| 20 | / { | ||
| 21 | model = "Winterland IceBoard"; | ||
| 22 | compatible = "ti,dm8148", "ti,dm814"; | ||
| 23 | |||
| 24 | chosen { | ||
| 25 | stdout-path = "serial1:115200n8"; | ||
| 26 | bootargs = "earlycon"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | memory@80000000 { | ||
| 30 | device_type = "memory"; | ||
| 31 | reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
| 32 | }; | ||
| 33 | |||
| 34 | vmmcsd_fixed: fixedregulator0 { | ||
| 35 | compatible = "regulator-fixed"; | ||
| 36 | regulator-name = "vmmcsd_fixed"; | ||
| 37 | regulator-min-microvolt = <3300000>; | ||
| 38 | regulator-max-microvolt = <3300000>; | ||
| 39 | regulator-always-on; | ||
| 40 | }; | ||
| 41 | }; | ||
| 42 | |||
| 43 | /* The MAC provides internal delay for the transmit path ONLY, which is enabled | ||
| 44 | * provided no -id/-txid/-rxid suffix is provided to "phy-mode". | ||
| 45 | * | ||
| 46 | * The receive path is delayed at the PHY. The recommended register settings | ||
| 47 | * are 0xf0 for the control bits, and 0x7777 for the data bits. However, the | ||
| 48 | * conversion code in the kernel lies: the PHY's registers are 120 ps per tap, | ||
| 49 | * and the kernel assumes 200 ps per tap. So we have fudged the numbers here to | ||
| 50 | * obtain the correct register settings. | ||
| 51 | */ | ||
| 52 | &mac { dual_emac = <1>; }; | ||
| 53 | &cpsw_emac0 { | ||
| 54 | phy-handle = <ðphy0>; | ||
| 55 | phy-mode = "rgmii"; | ||
| 56 | dual_emac_res_vlan = <1>; | ||
| 57 | }; | ||
| 58 | &cpsw_emac1 { | ||
| 59 | phy-handle = <ðphy1>; | ||
| 60 | phy-mode = "rgmii"; | ||
| 61 | dual_emac_res_vlan = <2>; | ||
| 62 | }; | ||
| 63 | |||
| 64 | &davinci_mdio { | ||
| 65 | ethphy0: ethernet-phy@0 { | ||
| 66 | reg = <0x2>; | ||
| 67 | |||
| 68 | rxc-skew-ps = <3000>; | ||
| 69 | rxdv-skew-ps = <0>; | ||
| 70 | |||
| 71 | rxd3-skew-ps = <0>; | ||
| 72 | rxd2-skew-ps = <0>; | ||
| 73 | rxd1-skew-ps = <0>; | ||
| 74 | rxd0-skew-ps = <0>; | ||
| 75 | |||
| 76 | phy-reset-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; | ||
| 77 | }; | ||
| 78 | |||
| 79 | ethphy1: ethernet-phy@1 { | ||
| 80 | reg = <0x1>; | ||
| 81 | |||
| 82 | rxc-skew-ps = <3000>; | ||
| 83 | rxdv-skew-ps = <0>; | ||
| 84 | |||
| 85 | rxd3-skew-ps = <0>; | ||
| 86 | rxd2-skew-ps = <0>; | ||
| 87 | rxd1-skew-ps = <0>; | ||
| 88 | rxd0-skew-ps = <0>; | ||
| 89 | |||
| 90 | phy-reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; | ||
| 91 | }; | ||
| 92 | }; | ||
| 93 | |||
| 94 | &mmc1 { status = "disabled"; }; | ||
| 95 | &mmc2 { | ||
| 96 | pinctrl-names = "default"; | ||
| 97 | pinctrl-0 = <&mmc2_pins>; | ||
| 98 | vmmc-supply = <&vmmcsd_fixed>; | ||
| 99 | bus-width = <4>; | ||
| 100 | }; | ||
| 101 | &mmc3 { status = "disabled"; }; | ||
| 102 | |||
| 103 | &i2c1 { | ||
| 104 | /* Most I2C activity happens through this port, with the sole exception | ||
| 105 | * of the backplane. Since there are multiply assigned addresses, the | ||
| 106 | * "i2c-mux-idle-disconnect" is important. | ||
| 107 | */ | ||
| 108 | |||
| 109 | pca9548@70 { | ||
| 110 | compatible = "nxp,pca9548"; | ||
| 111 | reg = <0x70>; | ||
| 112 | #address-cells = <1>; | ||
| 113 | #size-cells = <0>; | ||
| 114 | |||
| 115 | i2c@0 { | ||
| 116 | /* FMC A */ | ||
| 117 | #address-cells = <1>; | ||
| 118 | #size-cells = <0>; | ||
| 119 | reg = <0>; | ||
| 120 | i2c-mux-idle-disconnect; | ||
| 121 | }; | ||
| 122 | |||
| 123 | i2c@1 { | ||
| 124 | /* FMC B */ | ||
| 125 | #address-cells = <1>; | ||
| 126 | #size-cells = <0>; | ||
| 127 | reg = <1>; | ||
| 128 | i2c-mux-idle-disconnect; | ||
| 129 | }; | ||
| 130 | |||
| 131 | i2c@2 { | ||
| 132 | /* QSFP A */ | ||
| 133 | #address-cells = <1>; | ||
| 134 | #size-cells = <0>; | ||
| 135 | reg = <2>; | ||
| 136 | i2c-mux-idle-disconnect; | ||
| 137 | }; | ||
| 138 | |||
| 139 | i2c@3 { | ||
| 140 | /* QSFP B */ | ||
| 141 | #address-cells = <1>; | ||
| 142 | #size-cells = <0>; | ||
| 143 | reg = <3>; | ||
| 144 | i2c-mux-idle-disconnect; | ||
| 145 | }; | ||
| 146 | |||
| 147 | i2c@4 { | ||
| 148 | /* SFP */ | ||
| 149 | #address-cells = <1>; | ||
| 150 | #size-cells = <0>; | ||
| 151 | reg = <4>; | ||
| 152 | i2c-mux-idle-disconnect; | ||
| 153 | }; | ||
| 154 | |||
| 155 | i2c@5 { | ||
| 156 | #address-cells = <1>; | ||
| 157 | #size-cells = <0>; | ||
| 158 | reg = <5>; | ||
| 159 | i2c-mux-idle-disconnect; | ||
| 160 | |||
| 161 | ina230@40 { compatible = "ti,ina230"; reg = <0x40>; shunt-resistor = <5000>; }; | ||
| 162 | ina230@41 { compatible = "ti,ina230"; reg = <0x41>; shunt-resistor = <5000>; }; | ||
| 163 | ina230@42 { compatible = "ti,ina230"; reg = <0x42>; shunt-resistor = <5000>; }; | ||
| 164 | |||
| 165 | ina230@44 { compatible = "ti,ina230"; reg = <0x44>; shunt-resistor = <5000>; }; | ||
| 166 | ina230@45 { compatible = "ti,ina230"; reg = <0x45>; shunt-resistor = <5000>; }; | ||
| 167 | ina230@46 { compatible = "ti,ina230"; reg = <0x46>; shunt-resistor = <5000>; }; | ||
| 168 | |||
| 169 | ina230@47 { compatible = "ti,ina230"; reg = <0x47>; shunt-resistor = <5500>; }; | ||
| 170 | ina230@48 { compatible = "ti,ina230"; reg = <0x48>; shunt-resistor = <2360>; }; | ||
| 171 | ina230@49 { compatible = "ti,ina230"; reg = <0x49>; shunt-resistor = <2360>; }; | ||
| 172 | ina230@43 { compatible = "ti,ina230"; reg = <0x43>; shunt-resistor = <2360>; }; | ||
| 173 | ina230@4b { compatible = "ti,ina230"; reg = <0x4b>; shunt-resistor = <5500>; }; | ||
| 174 | ina230@4c { compatible = "ti,ina230"; reg = <0x4c>; shunt-resistor = <2360>; }; | ||
| 175 | ina230@4d { compatible = "ti,ina230"; reg = <0x4d>; shunt-resistor = <770>; }; | ||
| 176 | ina230@4e { compatible = "ti,ina230"; reg = <0x4e>; shunt-resistor = <770>; }; | ||
| 177 | ina230@4f { compatible = "ti,ina230"; reg = <0x4f>; shunt-resistor = <770>; }; | ||
| 178 | }; | ||
| 179 | |||
| 180 | i2c@6 { | ||
| 181 | /* Backplane */ | ||
| 182 | #address-cells = <1>; | ||
| 183 | #size-cells = <0>; | ||
| 184 | reg = <6>; | ||
| 185 | i2c-mux-idle-disconnect; | ||
| 186 | }; | ||
| 187 | |||
| 188 | i2c@7 { | ||
| 189 | #address-cells = <1>; | ||
| 190 | #size-cells = <0>; | ||
| 191 | reg = <7>; | ||
| 192 | i2c-mux-idle-disconnect; | ||
| 193 | |||
| 194 | u41: pca9575@20 { | ||
| 195 | compatible = "nxp,pca9575"; | ||
| 196 | reg = <0x20>; | ||
| 197 | gpio-controller; | ||
| 198 | #gpio-cells = <2>; | ||
| 199 | |||
| 200 | gpio-line-names = | ||
| 201 | "FMCA_EN_12V0", "FMCA_EN_3V3", "FMCA_EN_VADJ", "FMCA_PG_M2C", | ||
| 202 | "FMCA_PG_C2M", "FMCA_PRSNT_M2C_L", "FMCA_CLK_DIR", "SFP_LOS", | ||
| 203 | "FMCB_EN_12V0", "FMCB_EN_3V3", "FMCB_EN_VADJ", "FMCB_PG_M2C", | ||
| 204 | "FMCB_PG_C2M", "FMCB_PRSNT_M2C_L", "FMCB_CLK_DIR", "SFP_ModPrsL"; | ||
| 205 | reset_gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; | ||
| 206 | }; | ||
| 207 | |||
| 208 | u42: pca9575@21 { | ||
| 209 | compatible = "nxp,pca9575"; | ||
| 210 | reg = <0x21>; | ||
| 211 | gpio-controller; | ||
| 212 | #gpio-cells = <2>; | ||
| 213 | gpio-line-names = | ||
| 214 | "QSFPA_ModPrsL", "QSFPA_IntL", "QSFPA_ResetL", "QSFPA_ModSelL", | ||
| 215 | "QSFPA_LPMode", "QSFPB_ModPrsL", "QSFPB_IntL", "QSFPB_ResetL", | ||
| 216 | "SFP_TxFault", "SFP_TxDisable", "SFP_RS0", "SFP_RS1", | ||
| 217 | "QSFPB_ModSelL", "QSFPB_LPMode", "SEL_SFP", "ARM_MR"; | ||
| 218 | reset_gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; | ||
| 219 | }; | ||
| 220 | |||
| 221 | u48: pca9575@22 { | ||
| 222 | compatible = "nxp,pca9575"; | ||
| 223 | reg=<0x22>; | ||
| 224 | gpio-controller; | ||
| 225 | #gpio-cells = <2>; | ||
| 226 | |||
| 227 | sw-gpios = <&u48 0 0>, <&u48 1 0>, <&u48 2 0>, <&u48 3 0>, | ||
| 228 | <&u48 4 0>, <&u48 5 0>, <&u48 6 0>, <&u48 7 0>; | ||
| 229 | led-gpios = <&u48 7 0>, <&u48 6 0>, <&u48 5 0>, <&u48 4 0>, | ||
| 230 | <&u48 3 0>, <&u48 2 0>, <&u48 1 0>, <&u48 0 0>; | ||
| 231 | |||
| 232 | gpio-line-names = | ||
| 233 | "GP_SW1", "GP_SW2", "GP_SW3", "GP_SW4", | ||
| 234 | "GP_SW5", "GP_SW6", "GP_SW7", "GP_SW8", | ||
| 235 | "GP_LED8", "GP_LED7", "GP_LED6", "GP_LED5", | ||
| 236 | "GP_LED4", "GP_LED3", "GP_LED2", "GP_LED1"; | ||
| 237 | reset_gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; | ||
| 238 | }; | ||
| 239 | |||
| 240 | u59: pca9575@23 { | ||
| 241 | compatible = "nxp,pca9575"; | ||
| 242 | reg=<0x23>; | ||
| 243 | gpio-controller; | ||
| 244 | #gpio-cells = <2>; | ||
| 245 | gpio-line-names = | ||
| 246 | "GP_LED9", "GP_LED10", "GP_LED11", "GP_LED12", | ||
| 247 | "GTX1V8PowerFault", "PHYAPowerFault", "PHYBPowerFault", "ArmPowerFault", | ||
| 248 | "BP_SLOW_GPIO0", "BP_SLOW_GPIO1", "BP_SLOW_GPIO2", "BP_SLOW_GPIO3", | ||
| 249 | "BP_SLOW_GPIO4", "BP_SLOW_GPIO5", "__unused_u59_p16", "__unused_u59_p17"; | ||
| 250 | reset_gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; | ||
| 251 | }; | ||
| 252 | |||
| 253 | tmp100@48 { compatible = "ti,tmp100"; reg = <0x48>; }; | ||
| 254 | tmp100@4a { compatible = "ti,tmp100"; reg = <0x4a>; }; | ||
| 255 | tmp100@4b { compatible = "ti,tmp100"; reg = <0x4b>; }; | ||
| 256 | tmp100@4c { compatible = "ti,tmp100"; reg = <0x4c>; }; | ||
| 257 | |||
| 258 | /* EEPROM bank and serial number are treated as separate devices */ | ||
| 259 | at24c01@57 { compatible = "atmel,24c01"; reg = <0x57>; }; | ||
| 260 | at24cs01@5f { compatible = "atmel,24cs01"; reg = <0x5f>; }; | ||
| 261 | }; | ||
| 262 | }; | ||
| 263 | }; | ||
| 264 | |||
| 265 | &i2c2 { | ||
| 266 | pca9548@71 { | ||
| 267 | compatible = "nxp,pca9548"; | ||
| 268 | reg = <0x71>; | ||
| 269 | #address-cells = <1>; | ||
| 270 | #size-cells = <0>; | ||
| 271 | |||
| 272 | i2c@6 { | ||
| 273 | /* Backplane */ | ||
| 274 | #address-cells = <1>; | ||
| 275 | #size-cells = <0>; | ||
| 276 | reg = <6>; | ||
| 277 | multi-master; | ||
| 278 | |||
| 279 | /* All backplanes should have this -- it's how we know they're there. */ | ||
| 280 | at24c08@54 { compatible="atmel,24c08"; reg=<0x54>; }; | ||
| 281 | at24cs08@5c { compatible="atmel,24cs08"; reg=<0x5c>; }; | ||
| 282 | |||
| 283 | /* 16 slot backplane */ | ||
| 284 | tmp421@4d { compatible="ti,tmp421"; reg=<0x4d>; }; | ||
| 285 | tmp421@4e { compatible="ti,tmp421"; reg=<0x4e>; }; | ||
| 286 | ina230@40 { compatible = "ti,ina230"; reg = <0x40>; shunt-resistor = <2360>; }; | ||
| 287 | amc6821@18 { compatible = "ti,amc6821"; reg = <0x18>; }; | ||
| 288 | |||
| 289 | /* Single slot backplane */ | ||
| 290 | }; | ||
| 291 | }; | ||
| 292 | }; | ||
| 293 | |||
| 294 | &pincntl { | ||
| 295 | mmc2_pins: pinmux_mmc2_pins { | ||
| 296 | pinctrl-single,pins = < | ||
| 297 | DM814X_IOPAD(0x0800, PIN_INPUT | 0x1) /* SD1_CLK */ | ||
| 298 | DM814X_IOPAD(0x0804, PIN_INPUT_PULLUP | 0x1) /* SD1_CMD */ | ||
| 299 | DM814X_IOPAD(0x0808, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[0] */ | ||
| 300 | DM814X_IOPAD(0x080c, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[1] */ | ||
| 301 | DM814X_IOPAD(0x0810, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[2] */ | ||
| 302 | DM814X_IOPAD(0x0814, PIN_INPUT_PULLUP | 0x1) /* SD1_DAT[3] */ | ||
| 303 | DM814X_IOPAD(0x0924, PIN_INPUT_PULLUP | 0x40) /* SD1_POW */ | ||
| 304 | DM814X_IOPAD(0x0928, PIN_INPUT | 0x40) /* SD1_SDWP */ | ||
| 305 | DM814X_IOPAD(0x093C, PIN_INPUT | 0x2) /* SD1_SDCD */ | ||
| 306 | >; | ||
| 307 | }; | ||
| 308 | |||
| 309 | usb0_pins: pinmux_usb0_pins { | ||
| 310 | pinctrl-single,pins = < | ||
| 311 | DM814X_IOPAD(0x0c34, PIN_OUTPUT | 0x1) /* USB0_DRVVBUS */ | ||
| 312 | >; | ||
| 313 | }; | ||
| 314 | |||
| 315 | usb1_pins: pinmux_usb1_pins { | ||
| 316 | pinctrl-single,pins = < | ||
| 317 | DM814X_IOPAD(0x0834, PIN_OUTPUT | 0x80) /* USB1_DRVVBUS */ | ||
| 318 | >; | ||
| 319 | }; | ||
| 320 | |||
| 321 | gpio1_pins: pinmux_gpio1_pins { | ||
| 322 | pinctrl-single,pins = < | ||
| 323 | DM814X_IOPAD(0x081c, PIN_OUTPUT | 0x80) /* PROGRAM_B */ | ||
| 324 | DM814X_IOPAD(0x0820, PIN_INPUT | 0x80) /* INIT_B */ | ||
| 325 | DM814X_IOPAD(0x0824, PIN_INPUT | 0x80) /* DONE */ | ||
| 326 | |||
| 327 | DM814X_IOPAD(0x0838, PIN_INPUT_PULLUP | 0x80) /* FMCA_TMS */ | ||
| 328 | DM814X_IOPAD(0x083c, PIN_INPUT_PULLUP | 0x80) /* FMCA_TCK */ | ||
| 329 | DM814X_IOPAD(0x0898, PIN_INPUT_PULLUP | 0x80) /* FMCA_TDO */ | ||
| 330 | DM814X_IOPAD(0x089c, PIN_INPUT_PULLUP | 0x80) /* FMCA_TDI */ | ||
| 331 | DM814X_IOPAD(0x08ac, PIN_INPUT_PULLUP | 0x80) /* FMCA_TRST */ | ||
| 332 | |||
| 333 | DM814X_IOPAD(0x08b0, PIN_INPUT_PULLUP | 0x80) /* FMCB_TMS */ | ||
| 334 | DM814X_IOPAD(0x0a88, PIN_INPUT_PULLUP | 0x80) /* FMCB_TCK */ | ||
| 335 | DM814X_IOPAD(0x0a8c, PIN_INPUT_PULLUP | 0x80) /* FMCB_TDO */ | ||
| 336 | DM814X_IOPAD(0x08bc, PIN_INPUT_PULLUP | 0x80) /* FMCB_TDI */ | ||
| 337 | DM814X_IOPAD(0x0a94, PIN_INPUT_PULLUP | 0x80) /* FMCB_TRST */ | ||
| 338 | |||
| 339 | DM814X_IOPAD(0x08d4, PIN_INPUT_PULLUP | 0x80) /* FPGA_TMS */ | ||
| 340 | DM814X_IOPAD(0x0aa8, PIN_INPUT_PULLUP | 0x80) /* FPGA_TCK */ | ||
| 341 | DM814X_IOPAD(0x0adc, PIN_INPUT_PULLUP | 0x80) /* FPGA_TDO */ | ||
| 342 | DM814X_IOPAD(0x0ab0, PIN_INPUT_PULLUP | 0x80) /* FPGA_TDI */ | ||
| 343 | >; | ||
| 344 | }; | ||
| 345 | |||
| 346 | gpio2_pins: pinmux_gpio2_pins { | ||
| 347 | pinctrl-single,pins = < | ||
| 348 | DM814X_IOPAD(0x090c, PIN_INPUT_PULLUP | 0x80) /* PHY A IRQ */ | ||
| 349 | DM814X_IOPAD(0x0910, PIN_INPUT_PULLUP | 0x80) /* PHY A RESET */ | ||
| 350 | DM814X_IOPAD(0x08f4, PIN_INPUT_PULLUP | 0x80) /* PHY B IRQ */ | ||
| 351 | DM814X_IOPAD(0x08f8, PIN_INPUT_PULLUP | 0x80) /* PHY B RESET */ | ||
| 352 | |||
| 353 | //DM814X_IOPAD(0x0a14, PIN_INPUT_PULLUP | 0x80) /* ARM IRQ */ | ||
| 354 | //DM814X_IOPAD(0x0900, PIN_INPUT | 0x80) /* GPIO IRQ */ | ||
| 355 | DM814X_IOPAD(0x0a2c, PIN_INPUT_PULLUP | 0x80) /* GPIO RESET */ | ||
| 356 | >; | ||
| 357 | }; | ||
| 358 | |||
| 359 | gpio4_pins: pinmux_gpio4_pins { | ||
| 360 | pinctrl-single,pins = < | ||
| 361 | /* The PLL doesn't react well to the SPI controller reset, so | ||
| 362 | * we force the CS lines to pull up as GPIOs until we're ready. | ||
| 363 | * See https://e2e.ti.com/support/processors/f/791/t/276011?Linux-support-for-AM3874-DM8148-in-Arago-linux-omap3 | ||
| 364 | */ | ||
| 365 | DM814X_IOPAD(0x0b3c, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO0 */ | ||
| 366 | DM814X_IOPAD(0x0b40, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO1 */ | ||
| 367 | DM814X_IOPAD(0x0b44, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO2 */ | ||
| 368 | DM814X_IOPAD(0x0b48, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO3 */ | ||
| 369 | DM814X_IOPAD(0x0b4c, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO4 */ | ||
| 370 | DM814X_IOPAD(0x0b50, PIN_INPUT_PULLUP | 0x80) /* BP_ARM_GPIO5 */ | ||
| 371 | >; | ||
| 372 | }; | ||
| 373 | |||
| 374 | spi2_pins: pinmux_spi2_pins { | ||
| 375 | pinctrl-single,pins = < | ||
| 376 | DM814X_IOPAD(0x0950, PIN_INPUT_PULLUP | 0x80) /* PLL SPI CS1 as GPIO */ | ||
| 377 | DM814X_IOPAD(0x0818, PIN_INPUT_PULLUP | 0x80) /* PLL SPI CS2 as GPIO */ | ||
| 378 | >; | ||
| 379 | }; | ||
| 380 | |||
| 381 | spi4_pins: pinmux_spi4_pins { | ||
| 382 | pinctrl-single,pins = < | ||
| 383 | DM814X_IOPAD(0x0a7c, 0x20) | ||
| 384 | DM814X_IOPAD(0x0b74, 0x20) | ||
| 385 | DM814X_IOPAD(0x0b78, PIN_OUTPUT | 0x20) | ||
| 386 | DM814X_IOPAD(0x0b7c, PIN_OUTPUT_PULLDOWN | 0x20) | ||
| 387 | DM814X_IOPAD(0x0b80, PIN_INPUT | 0x20) | ||
| 388 | >; | ||
| 389 | }; | ||
| 390 | }; | ||
| 391 | |||
| 392 | &gpio1 { | ||
| 393 | pinctrl-names = "default"; | ||
| 394 | pinctrl-0 = <&gpio1_pins>; | ||
| 395 | gpio-line-names = | ||
| 396 | "", "PROGRAM_B", "INIT_B", "DONE", /* 0-3 */ | ||
| 397 | "", "", "", "", /* 4-7 */ | ||
| 398 | "FMCA_TMS", "FMCA_TCK", "FMCA_TDO", "FMCA_TDI", /* 8-11 */ | ||
| 399 | "", "", "", "FMCA_TRST", /* 12-15 */ | ||
| 400 | "FMCB_TMS", "FMCB_TCK", "FMCB_TDO", "FMCB_TDI", /* 16-19 */ | ||
| 401 | "FMCB_TRST", "", "", "", /* 20-23 */ | ||
| 402 | "FPGA_TMS", "FPGA_TCK", "FPGA_TDO", "FPGA_TDI", /* 24-27 */ | ||
| 403 | "", "", "", ""; /* 28-31 */ | ||
| 404 | }; | ||
| 405 | |||
| 406 | &gpio2 { | ||
| 407 | pinctrl-names = "default"; | ||
| 408 | pinctrl-0 = <&gpio2_pins>; | ||
| 409 | gpio-line-names = | ||
| 410 | "PHYA_IRQ_N", "PHYA_RESET_N", "", "", /* 0-3 */ | ||
| 411 | "", "", "", "PHYB_IRQ_N", /* 4-7 */ | ||
| 412 | "PHYB_RESET_N", "ARM_IRQ", "GPIO_IRQ", ""; /* 8-11 */ | ||
| 413 | }; | ||
| 414 | |||
| 415 | &gpio3 { | ||
| 416 | pinctrl-names = "default"; | ||
| 417 | /*pinctrl-0 = <&gpio3_pins>;*/ | ||
| 418 | gpio-line-names = | ||
| 419 | "", "", "ARMClkSel0", "", /* 0-3 */ | ||
| 420 | "EnFPGARef", "", "", "ARMClkSel1"; /* 4-7 */ | ||
| 421 | }; | ||
| 422 | |||
| 423 | &gpio4 { | ||
| 424 | pinctrl-names = "default"; | ||
| 425 | pinctrl-0 = <&gpio4_pins>; | ||
| 426 | gpio-line-names = | ||
| 427 | "BP_ARM_GPIO0", "BP_ARM_GPIO1", "BP_ARM_GPIO2", "BP_ARM_GPIO3", | ||
| 428 | "BP_ARM_GPIO4", "BP_ARM_GPIO5"; | ||
| 429 | }; | ||
| 430 | |||
| 431 | &usb0 { | ||
| 432 | pinctrl-names = "default"; | ||
| 433 | pinctrl-0 = <&usb0_pins>; | ||
| 434 | dr_mode = "host"; | ||
| 435 | }; | ||
| 436 | |||
| 437 | &usb1 { | ||
| 438 | pinctrl-names = "default"; | ||
| 439 | pinctrl-0 = <&usb1_pins>; | ||
| 440 | dr_mode = "host"; | ||
| 441 | }; | ||
| 442 | |||
| 443 | &mcspi1 { | ||
| 444 | s25fl256@0 { | ||
| 445 | #address-cells = <1>; | ||
| 446 | #size-cells = <1>; | ||
| 447 | compatible = "jedec,spi-nor"; | ||
| 448 | reg = <0>; | ||
| 449 | spi-max-frequency = <40000000>; | ||
| 450 | |||
| 451 | fsbl@0 { | ||
| 452 | /* 256 kB */ | ||
| 453 | label = "U-Boot-min"; | ||
| 454 | reg = <0 0x40000>; | ||
| 455 | }; | ||
| 456 | ssbl@1 { | ||
| 457 | /* 512 kB */ | ||
| 458 | label = "U-Boot"; | ||
| 459 | reg = <0x40000 0x80000>; | ||
| 460 | }; | ||
| 461 | bootenv@2 { | ||
| 462 | /* 256 kB */ | ||
| 463 | label = "U-Boot Env"; | ||
| 464 | reg = <0xc0000 0x40000>; | ||
| 465 | }; | ||
| 466 | kernel@3 { | ||
| 467 | /* 4 MB */ | ||
| 468 | label = "Kernel"; | ||
| 469 | reg = <0x100000 0x400000>; | ||
| 470 | }; | ||
| 471 | ipmi@4 { | ||
| 472 | label = "IPMI FRU"; | ||
| 473 | reg = <0x500000 0x40000>; | ||
| 474 | }; | ||
| 475 | fs@5 { | ||
| 476 | label = "File System"; | ||
| 477 | reg = <0x540000 0x1ac0000>; | ||
| 478 | }; | ||
| 479 | }; | ||
| 480 | }; | ||
| 481 | |||
| 482 | &mcspi3 { | ||
| 483 | /* DMA event numbers stolen from MCASP */ | ||
| 484 | dmas = <&edma_xbar 8 0 16 &edma_xbar 9 0 17 | ||
| 485 | &edma_xbar 10 0 18 &edma_xbar 11 0 19>; | ||
| 486 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
| 487 | }; | ||
| 488 | |||
| 489 | &mcspi4 { | ||
| 490 | pinctrl-names = "default"; | ||
| 491 | pinctrl-0 = <&spi4_pins>; | ||
| 492 | |||
| 493 | /* DMA event numbers stolen from MCASP, MCBSP */ | ||
| 494 | dmas = <&edma_xbar 12 0 20 &edma_xbar 13 0 21>; | ||
| 495 | dma-names = "tx0", "rx0"; | ||
| 496 | }; | ||
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts index f4a20cade808..4c6ee37ea573 100644 --- a/arch/arm/boot/dts/am437x-gp-evm.dts +++ b/arch/arm/boot/dts/am437x-gp-evm.dts | |||
| @@ -71,7 +71,7 @@ | |||
| 71 | pinctrl-0 = <&matrix_keypad_default>; | 71 | pinctrl-0 = <&matrix_keypad_default>; |
| 72 | pinctrl-1 = <&matrix_keypad_sleep>; | 72 | pinctrl-1 = <&matrix_keypad_sleep>; |
| 73 | 73 | ||
| 74 | linux,wakeup; | 74 | wakeup-source; |
| 75 | 75 | ||
| 76 | row-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH /* Bank0, pin3 */ | 76 | row-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH /* Bank0, pin3 */ |
| 77 | &gpio4 3 GPIO_ACTIVE_HIGH /* Bank4, pin3 */ | 77 | &gpio4 3 GPIO_ACTIVE_HIGH /* Bank4, pin3 */ |
diff --git a/arch/arm/boot/dts/am437x-l4.dtsi b/arch/arm/boot/dts/am437x-l4.dtsi index ca0896f80248..85c6f4ff1824 100644 --- a/arch/arm/boot/dts/am437x-l4.dtsi +++ b/arch/arm/boot/dts/am437x-l4.dtsi | |||
| @@ -280,12 +280,6 @@ | |||
| 280 | #size-cells = <1>; | 280 | #size-cells = <1>; |
| 281 | ranges = <0 0 0x4000>; | 281 | ranges = <0 0 0x4000>; |
| 282 | 282 | ||
| 283 | phy_sel: cpsw-phy-sel@650 { | ||
| 284 | compatible = "ti,am43xx-cpsw-phy-sel"; | ||
| 285 | reg= <0x650 0x4>; | ||
| 286 | reg-names = "gmii-sel"; | ||
| 287 | }; | ||
| 288 | |||
| 289 | am43xx_pinmux: pinmux@800 { | 283 | am43xx_pinmux: pinmux@800 { |
| 290 | compatible = "ti,am437-padconf", | 284 | compatible = "ti,am437-padconf", |
| 291 | "pinctrl-single"; | 285 | "pinctrl-single"; |
| @@ -300,11 +294,17 @@ | |||
| 300 | }; | 294 | }; |
| 301 | 295 | ||
| 302 | scm_conf: scm_conf@0 { | 296 | scm_conf: scm_conf@0 { |
| 303 | compatible = "syscon"; | 297 | compatible = "syscon", "simple-bus"; |
| 304 | reg = <0x0 0x800>; | 298 | reg = <0x0 0x800>; |
| 305 | #address-cells = <1>; | 299 | #address-cells = <1>; |
| 306 | #size-cells = <1>; | 300 | #size-cells = <1>; |
| 307 | 301 | ||
| 302 | phy_gmii_sel: phy-gmii-sel { | ||
| 303 | compatible = "ti,am43xx-phy-gmii-sel"; | ||
| 304 | reg = <0x650 0x4>; | ||
| 305 | #phy-cells = <2>; | ||
| 306 | }; | ||
| 307 | |||
| 308 | scm_clocks: clocks { | 308 | scm_clocks: clocks { |
| 309 | #address-cells = <1>; | 309 | #address-cells = <1>; |
| 310 | #size-cells = <0>; | 310 | #size-cells = <0>; |
| @@ -555,7 +555,6 @@ | |||
| 555 | cpts_clock_shift = <29>; | 555 | cpts_clock_shift = <29>; |
| 556 | ranges = <0 0 0x8000>; | 556 | ranges = <0 0 0x8000>; |
| 557 | syscon = <&scm_conf>; | 557 | syscon = <&scm_conf>; |
| 558 | cpsw-phy-sel = <&phy_sel>; | ||
| 559 | 558 | ||
| 560 | davinci_mdio: mdio@1000 { | 559 | davinci_mdio: mdio@1000 { |
| 561 | compatible = "ti,am4372-mdio","ti,cpsw-mdio","ti,davinci_mdio"; | 560 | compatible = "ti,am4372-mdio","ti,cpsw-mdio","ti,davinci_mdio"; |
| @@ -572,11 +571,13 @@ | |||
| 572 | cpsw_emac0: slave@200 { | 571 | cpsw_emac0: slave@200 { |
| 573 | /* Filled in by U-Boot */ | 572 | /* Filled in by U-Boot */ |
| 574 | mac-address = [ 00 00 00 00 00 00 ]; | 573 | mac-address = [ 00 00 00 00 00 00 ]; |
| 574 | phys = <&phy_gmii_sel 1 0>; | ||
| 575 | }; | 575 | }; |
| 576 | 576 | ||
| 577 | cpsw_emac1: slave@300 { | 577 | cpsw_emac1: slave@300 { |
| 578 | /* Filled in by U-Boot */ | 578 | /* Filled in by U-Boot */ |
| 579 | mac-address = [ 00 00 00 00 00 00 ]; | 579 | mac-address = [ 00 00 00 00 00 00 ]; |
| 580 | phys = <&phy_gmii_sel 2 0>; | ||
| 580 | }; | 581 | }; |
| 581 | }; | 582 | }; |
| 582 | }; | 583 | }; |
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts index 4ea753b3ee43..9dfd80e3b76e 100644 --- a/arch/arm/boot/dts/am43x-epos-evm.dts +++ b/arch/arm/boot/dts/am43x-epos-evm.dts | |||
| @@ -584,10 +584,7 @@ | |||
| 584 | &cpsw_emac0 { | 584 | &cpsw_emac0 { |
| 585 | phy-handle = <ðphy0>; | 585 | phy-handle = <ðphy0>; |
| 586 | phy-mode = "rmii"; | 586 | phy-mode = "rmii"; |
| 587 | }; | 587 | phys = <&phy_gmii_sel 1 1>; |
| 588 | |||
| 589 | &phy_sel { | ||
| 590 | rmii-clock-ext; | ||
| 591 | }; | 588 | }; |
| 592 | 589 | ||
| 593 | &i2c0 { | 590 | &i2c0 { |
diff --git a/arch/arm/boot/dts/arm-realview-eb.dtsi b/arch/arm/boot/dts/arm-realview-eb.dtsi index 0e4c7c4c8c09..610506723ea5 100644 --- a/arch/arm/boot/dts/arm-realview-eb.dtsi +++ b/arch/arm/boot/dts/arm-realview-eb.dtsi | |||
| @@ -22,9 +22,10 @@ | |||
| 22 | 22 | ||
| 23 | #include <dt-bindings/interrupt-controller/irq.h> | 23 | #include <dt-bindings/interrupt-controller/irq.h> |
| 24 | #include <dt-bindings/gpio/gpio.h> | 24 | #include <dt-bindings/gpio/gpio.h> |
| 25 | #include "skeleton.dtsi" | ||
| 26 | 25 | ||
| 27 | / { | 26 | / { |
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <1>; | ||
| 28 | compatible = "arm,realview-eb"; | 29 | compatible = "arm,realview-eb"; |
| 29 | 30 | ||
| 30 | chosen { }; | 31 | chosen { }; |
| @@ -38,6 +39,7 @@ | |||
| 38 | }; | 39 | }; |
| 39 | 40 | ||
| 40 | memory { | 41 | memory { |
| 42 | device_type = "memory"; | ||
| 41 | /* 128 MiB memory @ 0x0 */ | 43 | /* 128 MiB memory @ 0x0 */ |
| 42 | reg = <0x00000000 0x08000000>; | 44 | reg = <0x00000000 0x08000000>; |
| 43 | }; | 45 | }; |
diff --git a/arch/arm/boot/dts/arm-realview-pb1176.dts b/arch/arm/boot/dts/arm-realview-pb1176.dts index 83e0fbc4a1a1..cbbb8878daa3 100644 --- a/arch/arm/boot/dts/arm-realview-pb1176.dts +++ b/arch/arm/boot/dts/arm-realview-pb1176.dts | |||
| @@ -23,9 +23,10 @@ | |||
| 23 | /dts-v1/; | 23 | /dts-v1/; |
| 24 | #include <dt-bindings/interrupt-controller/irq.h> | 24 | #include <dt-bindings/interrupt-controller/irq.h> |
| 25 | #include <dt-bindings/gpio/gpio.h> | 25 | #include <dt-bindings/gpio/gpio.h> |
| 26 | #include "skeleton.dtsi" | ||
| 27 | 26 | ||
| 28 | / { | 27 | / { |
| 28 | #address-cells = <1>; | ||
| 29 | #size-cells = <1>; | ||
| 29 | model = "ARM RealView PB1176"; | 30 | model = "ARM RealView PB1176"; |
| 30 | compatible = "arm,realview-pb1176"; | 31 | compatible = "arm,realview-pb1176"; |
| 31 | 32 | ||
| @@ -40,6 +41,7 @@ | |||
| 40 | }; | 41 | }; |
| 41 | 42 | ||
| 42 | memory { | 43 | memory { |
| 44 | device_type = "memory"; | ||
| 43 | /* 128 MiB memory @ 0x0 */ | 45 | /* 128 MiB memory @ 0x0 */ |
| 44 | reg = <0x00000000 0x08000000>; | 46 | reg = <0x00000000 0x08000000>; |
| 45 | }; | 47 | }; |
diff --git a/arch/arm/boot/dts/arm-realview-pb11mp.dts b/arch/arm/boot/dts/arm-realview-pb11mp.dts index 2f6aa24a0b67..2015619ca22c 100644 --- a/arch/arm/boot/dts/arm-realview-pb11mp.dts +++ b/arch/arm/boot/dts/arm-realview-pb11mp.dts | |||
| @@ -23,9 +23,10 @@ | |||
| 23 | /dts-v1/; | 23 | /dts-v1/; |
| 24 | #include <dt-bindings/interrupt-controller/irq.h> | 24 | #include <dt-bindings/interrupt-controller/irq.h> |
| 25 | #include <dt-bindings/gpio/gpio.h> | 25 | #include <dt-bindings/gpio/gpio.h> |
| 26 | #include "skeleton.dtsi" | ||
| 27 | 26 | ||
| 28 | / { | 27 | / { |
| 28 | #address-cells = <1>; | ||
| 29 | #size-cells = <1>; | ||
| 29 | model = "ARM RealView PB11MPcore"; | 30 | model = "ARM RealView PB11MPcore"; |
| 30 | compatible = "arm,realview-pb11mp"; | 31 | compatible = "arm,realview-pb11mp"; |
| 31 | 32 | ||
| @@ -39,6 +40,7 @@ | |||
| 39 | }; | 40 | }; |
| 40 | 41 | ||
| 41 | memory { | 42 | memory { |
| 43 | device_type = "memory"; | ||
| 42 | /* | 44 | /* |
| 43 | * The PB11MPCore has 512 MiB memory @ 0x70000000 | 45 | * The PB11MPCore has 512 MiB memory @ 0x70000000 |
| 44 | * and the first 256 are also remapped @ 0x00000000 | 46 | * and the first 256 are also remapped @ 0x00000000 |
diff --git a/arch/arm/boot/dts/arm-realview-pbx.dtsi b/arch/arm/boot/dts/arm-realview-pbx.dtsi index 916a97734f84..a81e9c282432 100644 --- a/arch/arm/boot/dts/arm-realview-pbx.dtsi +++ b/arch/arm/boot/dts/arm-realview-pbx.dtsi | |||
| @@ -22,9 +22,10 @@ | |||
| 22 | 22 | ||
| 23 | #include <dt-bindings/interrupt-controller/irq.h> | 23 | #include <dt-bindings/interrupt-controller/irq.h> |
| 24 | #include <dt-bindings/gpio/gpio.h> | 24 | #include <dt-bindings/gpio/gpio.h> |
| 25 | #include "skeleton.dtsi" | ||
| 26 | 25 | ||
| 27 | / { | 26 | / { |
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <1>; | ||
| 28 | compatible = "arm,realview-pbx"; | 29 | compatible = "arm,realview-pbx"; |
| 29 | 30 | ||
| 30 | chosen { }; | 31 | chosen { }; |
| @@ -39,6 +40,7 @@ | |||
| 39 | }; | 40 | }; |
| 40 | 41 | ||
| 41 | memory { | 42 | memory { |
| 43 | device_type = "memory"; | ||
| 42 | /* 128 MiB memory @ 0x0 */ | 44 | /* 128 MiB memory @ 0x0 */ |
| 43 | reg = <0x00000000 0x08000000>; | 45 | reg = <0x00000000 0x08000000>; |
| 44 | }; | 46 | }; |
diff --git a/arch/arm/boot/dts/armada-370-rd.dts b/arch/arm/boot/dts/armada-370-rd.dts index 2bfb3108b5b2..c910d157a686 100644 --- a/arch/arm/boot/dts/armada-370-rd.dts +++ b/arch/arm/boot/dts/armada-370-rd.dts | |||
| @@ -114,48 +114,6 @@ | |||
| 114 | }; | 114 | }; |
| 115 | }; | 115 | }; |
| 116 | }; | 116 | }; |
| 117 | |||
| 118 | dsa { | ||
| 119 | status = "disabled"; | ||
| 120 | |||
| 121 | compatible = "marvell,dsa"; | ||
| 122 | #address-cells = <2>; | ||
| 123 | #size-cells = <0>; | ||
| 124 | |||
| 125 | dsa,ethernet = <ð1>; | ||
| 126 | dsa,mii-bus = <&mdio>; | ||
| 127 | |||
| 128 | switch@0 { | ||
| 129 | #address-cells = <1>; | ||
| 130 | #size-cells = <0>; | ||
| 131 | reg = <0x10 0>; /* MDIO address 16, switch 0 in tree */ | ||
| 132 | |||
| 133 | port@0 { | ||
| 134 | reg = <0>; | ||
| 135 | label = "lan0"; | ||
| 136 | }; | ||
| 137 | |||
| 138 | port@1 { | ||
| 139 | reg = <1>; | ||
| 140 | label = "lan1"; | ||
| 141 | }; | ||
| 142 | |||
| 143 | port@2 { | ||
| 144 | reg = <2>; | ||
| 145 | label = "lan2"; | ||
| 146 | }; | ||
| 147 | |||
| 148 | port@3 { | ||
| 149 | reg = <3>; | ||
| 150 | label = "lan3"; | ||
| 151 | }; | ||
| 152 | |||
| 153 | port@5 { | ||
| 154 | reg = <5>; | ||
| 155 | label = "cpu"; | ||
| 156 | }; | ||
| 157 | }; | ||
| 158 | }; | ||
| 159 | }; | 117 | }; |
| 160 | 118 | ||
| 161 | &pciec { | 119 | &pciec { |
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dts b/arch/arm/boot/dts/armada-388-clearfog.dts index 89a354b43978..20f8d4667753 100644 --- a/arch/arm/boot/dts/armada-388-clearfog.dts +++ b/arch/arm/boot/dts/armada-388-clearfog.dts | |||
| @@ -30,64 +30,6 @@ | |||
| 30 | }; | 30 | }; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | dsa@0 { | ||
| 34 | status = "disabled"; | ||
| 35 | |||
| 36 | compatible = "marvell,dsa"; | ||
| 37 | dsa,ethernet = <ð1>; | ||
| 38 | dsa,mii-bus = <&mdio>; | ||
| 39 | pinctrl-0 = <&clearfog_dsa0_clk_pins &clearfog_dsa0_pins>; | ||
| 40 | pinctrl-names = "default"; | ||
| 41 | #address-cells = <2>; | ||
| 42 | #size-cells = <0>; | ||
| 43 | |||
| 44 | switch@0 { | ||
| 45 | #address-cells = <1>; | ||
| 46 | #size-cells = <0>; | ||
| 47 | reg = <4 0>; | ||
| 48 | |||
| 49 | port@0 { | ||
| 50 | reg = <0>; | ||
| 51 | label = "lan5"; | ||
| 52 | }; | ||
| 53 | |||
| 54 | port@1 { | ||
| 55 | reg = <1>; | ||
| 56 | label = "lan4"; | ||
| 57 | }; | ||
| 58 | |||
| 59 | port@2 { | ||
| 60 | reg = <2>; | ||
| 61 | label = "lan3"; | ||
| 62 | }; | ||
| 63 | |||
| 64 | port@3 { | ||
| 65 | reg = <3>; | ||
| 66 | label = "lan2"; | ||
| 67 | }; | ||
| 68 | |||
| 69 | port@4 { | ||
| 70 | reg = <4>; | ||
| 71 | label = "lan1"; | ||
| 72 | }; | ||
| 73 | |||
| 74 | port@5 { | ||
| 75 | reg = <5>; | ||
| 76 | label = "cpu"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | port@6 { | ||
| 80 | /* 88E1512 external phy */ | ||
| 81 | reg = <6>; | ||
| 82 | label = "lan6"; | ||
| 83 | fixed-link { | ||
| 84 | speed = <1000>; | ||
| 85 | full-duplex; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | }; | ||
| 89 | }; | ||
| 90 | |||
| 91 | gpio-keys { | 33 | gpio-keys { |
| 92 | compatible = "gpio-keys"; | 34 | compatible = "gpio-keys"; |
| 93 | pinctrl-0 = <&rear_button_pins>; | 35 | pinctrl-0 = <&rear_button_pins>; |
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dtsi b/arch/arm/boot/dts/armada-388-clearfog.dtsi index 1b0d0680c8b6..0d81600ca247 100644 --- a/arch/arm/boot/dts/armada-388-clearfog.dtsi +++ b/arch/arm/boot/dts/armada-388-clearfog.dtsi | |||
| @@ -93,6 +93,7 @@ | |||
| 93 | bm,pool-long = <2>; | 93 | bm,pool-long = <2>; |
| 94 | bm,pool-short = <1>; | 94 | bm,pool-short = <1>; |
| 95 | buffer-manager = <&bm>; | 95 | buffer-manager = <&bm>; |
| 96 | phys = <&comphy1 1>; | ||
| 96 | phy-mode = "sgmii"; | 97 | phy-mode = "sgmii"; |
| 97 | status = "okay"; | 98 | status = "okay"; |
| 98 | }; | 99 | }; |
| @@ -103,6 +104,7 @@ | |||
| 103 | bm,pool-short = <1>; | 104 | bm,pool-short = <1>; |
| 104 | buffer-manager = <&bm>; | 105 | buffer-manager = <&bm>; |
| 105 | managed = "in-band-status"; | 106 | managed = "in-band-status"; |
| 107 | phys = <&comphy5 2>; | ||
| 106 | phy-mode = "sgmii"; | 108 | phy-mode = "sgmii"; |
| 107 | sfp = <&sfp>; | 109 | sfp = <&sfp>; |
| 108 | status = "okay"; | 110 | status = "okay"; |
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi index 929459c42760..96c18703e471 100644 --- a/arch/arm/boot/dts/armada-38x.dtsi +++ b/arch/arm/boot/dts/armada-38x.dtsi | |||
| @@ -9,13 +9,15 @@ | |||
| 9 | * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 9 | * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include "skeleton.dtsi" | ||
| 13 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | 13 | #include <dt-bindings/interrupt-controller/irq.h> |
| 15 | 14 | ||
| 16 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | 15 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) |
| 17 | 16 | ||
| 18 | / { | 17 | / { |
| 18 | #address-cells = <1>; | ||
| 19 | #size-cells = <1>; | ||
| 20 | |||
| 19 | model = "Marvell Armada 38x family SoC"; | 21 | model = "Marvell Armada 38x family SoC"; |
| 20 | compatible = "marvell,armada380"; | 22 | compatible = "marvell,armada380"; |
| 21 | 23 | ||
| @@ -335,6 +337,43 @@ | |||
| 335 | #clock-cells = <1>; | 337 | #clock-cells = <1>; |
| 336 | }; | 338 | }; |
| 337 | 339 | ||
| 340 | comphy: phy@18300 { | ||
| 341 | compatible = "marvell,armada-380-comphy"; | ||
| 342 | reg = <0x18300 0x100>; | ||
| 343 | #address-cells = <1>; | ||
| 344 | #size-cells = <0>; | ||
| 345 | |||
| 346 | comphy0: phy@0 { | ||
| 347 | reg = <0>; | ||
| 348 | #phy-cells = <1>; | ||
| 349 | }; | ||
| 350 | |||
| 351 | comphy1: phy@1 { | ||
| 352 | reg = <1>; | ||
| 353 | #phy-cells = <1>; | ||
| 354 | }; | ||
| 355 | |||
| 356 | comphy2: phy@2 { | ||
| 357 | reg = <2>; | ||
| 358 | #phy-cells = <1>; | ||
| 359 | }; | ||
| 360 | |||
| 361 | comphy3: phy@3 { | ||
| 362 | reg = <3>; | ||
| 363 | #phy-cells = <1>; | ||
| 364 | }; | ||
| 365 | |||
| 366 | comphy4: phy@4 { | ||
| 367 | reg = <4>; | ||
| 368 | #phy-cells = <1>; | ||
| 369 | }; | ||
| 370 | |||
| 371 | comphy5: phy@5 { | ||
| 372 | reg = <5>; | ||
| 373 | #phy-cells = <1>; | ||
| 374 | }; | ||
| 375 | }; | ||
| 376 | |||
| 338 | coreclk: mvebu-sar@18600 { | 377 | coreclk: mvebu-sar@18600 { |
| 339 | compatible = "marvell,armada-380-core-clock"; | 378 | compatible = "marvell,armada-380-core-clock"; |
| 340 | reg = <0x18600 0x04>; | 379 | reg = <0x18600 0x04>; |
diff --git a/arch/arm/boot/dts/armada-39x.dtsi b/arch/arm/boot/dts/armada-39x.dtsi index f0c949831efb..b1b86934c688 100644 --- a/arch/arm/boot/dts/armada-39x.dtsi +++ b/arch/arm/boot/dts/armada-39x.dtsi | |||
| @@ -7,13 +7,14 @@ | |||
| 7 | * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 7 | * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "skeleton.dtsi" | ||
| 11 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 12 | #include <dt-bindings/interrupt-controller/irq.h> | 11 | #include <dt-bindings/interrupt-controller/irq.h> |
| 13 | 12 | ||
| 14 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | 13 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) |
| 15 | 14 | ||
| 16 | / { | 15 | / { |
| 16 | #address-cells = <1>; | ||
| 17 | #size-cells = <1>; | ||
| 17 | model = "Marvell Armada 39x family SoC"; | 18 | model = "Marvell Armada 39x family SoC"; |
| 18 | compatible = "marvell,armada390"; | 19 | compatible = "marvell,armada390"; |
| 19 | 20 | ||
diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts index f3ac7483afed..5d04dc68cf57 100644 --- a/arch/arm/boot/dts/armada-xp-db.dts +++ b/arch/arm/boot/dts/armada-xp-db.dts | |||
| @@ -144,30 +144,32 @@ | |||
| 144 | status = "okay"; | 144 | status = "okay"; |
| 145 | }; | 145 | }; |
| 146 | 146 | ||
| 147 | nand@d0000 { | 147 | nand-controller@d0000 { |
| 148 | status = "okay"; | 148 | status = "okay"; |
| 149 | label = "pxa3xx_nand-0"; | ||
| 150 | num-cs = <1>; | ||
| 151 | marvell,nand-keep-config; | ||
| 152 | nand-on-flash-bbt; | ||
| 153 | |||
| 154 | partitions { | ||
| 155 | compatible = "fixed-partitions"; | ||
| 156 | #address-cells = <1>; | ||
| 157 | #size-cells = <1>; | ||
| 158 | |||
| 159 | partition@0 { | ||
| 160 | label = "U-Boot"; | ||
| 161 | reg = <0 0x800000>; | ||
| 162 | }; | ||
| 163 | partition@800000 { | ||
| 164 | label = "Linux"; | ||
| 165 | reg = <0x800000 0x800000>; | ||
| 166 | }; | ||
| 167 | partition@1000000 { | ||
| 168 | label = "Filesystem"; | ||
| 169 | reg = <0x1000000 0x3f000000>; | ||
| 170 | 149 | ||
| 150 | nand@0 { | ||
| 151 | reg = <0>; | ||
| 152 | label = "pxa3xx_nand-0"; | ||
| 153 | nand-rb = <0>; | ||
| 154 | nand-on-flash-bbt; | ||
| 155 | |||
| 156 | partitions { | ||
| 157 | compatible = "fixed-partitions"; | ||
| 158 | #address-cells = <1>; | ||
| 159 | #size-cells = <1>; | ||
| 160 | |||
| 161 | partition@0 { | ||
| 162 | label = "U-Boot"; | ||
| 163 | reg = <0 0x800000>; | ||
| 164 | }; | ||
| 165 | partition@800000 { | ||
| 166 | label = "Linux"; | ||
| 167 | reg = <0x800000 0x800000>; | ||
| 168 | }; | ||
| 169 | partition@1000000 { | ||
| 170 | label = "Filesystem"; | ||
| 171 | reg = <0x1000000 0x3f000000>; | ||
| 172 | }; | ||
| 171 | }; | 173 | }; |
| 172 | }; | 174 | }; |
| 173 | }; | 175 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts index 1139e9469a83..b4cca507cf13 100644 --- a/arch/arm/boot/dts/armada-xp-gp.dts +++ b/arch/arm/boot/dts/armada-xp-gp.dts | |||
| @@ -160,12 +160,15 @@ | |||
| 160 | status = "okay"; | 160 | status = "okay"; |
| 161 | }; | 161 | }; |
| 162 | 162 | ||
| 163 | nand@d0000 { | 163 | nand-controller@d0000 { |
| 164 | status = "okay"; | 164 | status = "okay"; |
| 165 | label = "pxa3xx_nand-0"; | 165 | |
| 166 | num-cs = <1>; | 166 | nand@0 { |
| 167 | marvell,nand-keep-config; | 167 | reg = <0>; |
| 168 | nand-on-flash-bbt; | 168 | label = "pxa3xx_nand-0"; |
| 169 | nand-rb = <0>; | ||
| 170 | nand-on-flash-bbt; | ||
| 171 | }; | ||
| 169 | }; | 172 | }; |
| 170 | }; | 173 | }; |
| 171 | 174 | ||
diff --git a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts index bbbb38888bb8..87dcb502f72d 100644 --- a/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts +++ b/arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | |||
| @@ -81,49 +81,52 @@ | |||
| 81 | 81 | ||
| 82 | }; | 82 | }; |
| 83 | 83 | ||
| 84 | nand@d0000 { | 84 | nand-controller@d0000 { |
| 85 | status = "okay"; | 85 | status = "okay"; |
| 86 | label = "pxa3xx_nand-0"; | ||
| 87 | num-cs = <1>; | ||
| 88 | marvell,nand-keep-config; | ||
| 89 | nand-on-flash-bbt; | ||
| 90 | |||
| 91 | partitions { | ||
| 92 | compatible = "fixed-partitions"; | ||
| 93 | #address-cells = <1>; | ||
| 94 | #size-cells = <1>; | ||
| 95 | |||
| 96 | partition@0 { | ||
| 97 | label = "u-boot"; | ||
| 98 | reg = <0x00000000 0x000e0000>; | ||
| 99 | read-only; | ||
| 100 | }; | ||
| 101 | |||
| 102 | partition@e0000 { | ||
| 103 | label = "u-boot-env"; | ||
| 104 | reg = <0x000e0000 0x00020000>; | ||
| 105 | read-only; | ||
| 106 | }; | ||
| 107 | |||
| 108 | partition@100000 { | ||
| 109 | label = "u-boot-env2"; | ||
| 110 | reg = <0x00100000 0x00020000>; | ||
| 111 | read-only; | ||
| 112 | }; | ||
| 113 | |||
| 114 | partition@120000 { | ||
| 115 | label = "zImage"; | ||
| 116 | reg = <0x00120000 0x00400000>; | ||
| 117 | }; | ||
| 118 | |||
| 119 | partition@520000 { | ||
| 120 | label = "initrd"; | ||
| 121 | reg = <0x00520000 0x00400000>; | ||
| 122 | }; | ||
| 123 | 86 | ||
| 124 | partition@e00000 { | 87 | nand@0 { |
| 125 | label = "boot"; | 88 | reg = <0>; |
| 126 | reg = <0x00e00000 0x3f200000>; | 89 | label = "pxa3xx_nand-0"; |
| 90 | nand-rb = <0>; | ||
| 91 | nand-on-flash-bbt; | ||
| 92 | |||
| 93 | partitions { | ||
| 94 | compatible = "fixed-partitions"; | ||
| 95 | #address-cells = <1>; | ||
| 96 | #size-cells = <1>; | ||
| 97 | |||
| 98 | partition@0 { | ||
| 99 | label = "u-boot"; | ||
| 100 | reg = <0x00000000 0x000e0000>; | ||
| 101 | read-only; | ||
| 102 | }; | ||
| 103 | |||
| 104 | partition@e0000 { | ||
| 105 | label = "u-boot-env"; | ||
| 106 | reg = <0x000e0000 0x00020000>; | ||
| 107 | read-only; | ||
| 108 | }; | ||
| 109 | |||
| 110 | partition@100000 { | ||
| 111 | label = "u-boot-env2"; | ||
| 112 | reg = <0x00100000 0x00020000>; | ||
| 113 | read-only; | ||
| 114 | }; | ||
| 115 | |||
| 116 | partition@120000 { | ||
| 117 | label = "zImage"; | ||
| 118 | reg = <0x00120000 0x00400000>; | ||
| 119 | }; | ||
| 120 | |||
| 121 | partition@520000 { | ||
| 122 | label = "initrd"; | ||
| 123 | reg = <0x00520000 0x00400000>; | ||
| 124 | }; | ||
| 125 | |||
| 126 | partition@e00000 { | ||
| 127 | label = "boot"; | ||
| 128 | reg = <0x00e00000 0x3f200000>; | ||
| 129 | }; | ||
| 127 | }; | 130 | }; |
| 128 | }; | 131 | }; |
| 129 | }; | 132 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts index 7a2606c3b62e..8480a16919a0 100644 --- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts +++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts | |||
| @@ -210,53 +210,6 @@ | |||
| 210 | compatible = "pwm-fan"; | 210 | compatible = "pwm-fan"; |
| 211 | pwms = <&gpio0 24 4000>; | 211 | pwms = <&gpio0 24 4000>; |
| 212 | }; | 212 | }; |
| 213 | |||
| 214 | dsa { | ||
| 215 | status = "disabled"; | ||
| 216 | |||
| 217 | compatible = "marvell,dsa"; | ||
| 218 | #address-cells = <2>; | ||
| 219 | #size-cells = <0>; | ||
| 220 | |||
| 221 | dsa,ethernet = <ð0>; | ||
| 222 | dsa,mii-bus = <&mdio>; | ||
| 223 | |||
| 224 | switch@0 { | ||
| 225 | #address-cells = <1>; | ||
| 226 | #size-cells = <0>; | ||
| 227 | reg = <0x0 0>; /* MDIO address 0, switch 0 in tree */ | ||
| 228 | |||
| 229 | port@0 { | ||
| 230 | reg = <0>; | ||
| 231 | label = "lan4"; | ||
| 232 | }; | ||
| 233 | |||
| 234 | port@1 { | ||
| 235 | reg = <1>; | ||
| 236 | label = "lan3"; | ||
| 237 | }; | ||
| 238 | |||
| 239 | port@2 { | ||
| 240 | reg = <2>; | ||
| 241 | label = "lan2"; | ||
| 242 | }; | ||
| 243 | |||
| 244 | port@3 { | ||
| 245 | reg = <3>; | ||
| 246 | label = "lan1"; | ||
| 247 | }; | ||
| 248 | |||
| 249 | port@4 { | ||
| 250 | reg = <4>; | ||
| 251 | label = "internet"; | ||
| 252 | }; | ||
| 253 | |||
| 254 | port@5 { | ||
| 255 | reg = <5>; | ||
| 256 | label = "cpu"; | ||
| 257 | }; | ||
| 258 | }; | ||
| 259 | }; | ||
| 260 | }; | 213 | }; |
| 261 | 214 | ||
| 262 | &pciec { | 215 | &pciec { |
diff --git a/arch/arm/boot/dts/artpec6.dtsi b/arch/arm/boot/dts/artpec6.dtsi index 3e4115c2cd75..037157e6c5ee 100644 --- a/arch/arm/boot/dts/artpec6.dtsi +++ b/arch/arm/boot/dts/artpec6.dtsi | |||
| @@ -43,9 +43,10 @@ | |||
| 43 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 43 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 44 | #include <dt-bindings/dma/nbpfaxi.h> | 44 | #include <dt-bindings/dma/nbpfaxi.h> |
| 45 | #include <dt-bindings/clock/axis,artpec6-clkctrl.h> | 45 | #include <dt-bindings/clock/axis,artpec6-clkctrl.h> |
| 46 | #include "skeleton.dtsi" | ||
| 47 | 46 | ||
| 48 | / { | 47 | / { |
| 48 | #address-cells = <1>; | ||
| 49 | #size-cells = <1>; | ||
| 49 | compatible = "axis,artpec6"; | 50 | compatible = "axis,artpec6"; |
| 50 | interrupt-parent = <&intc>; | 51 | interrupt-parent = <&intc>; |
| 51 | 52 | ||
diff --git a/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts b/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts index bdfd8c9f3a7c..521afbea2c5b 100644 --- a/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts +++ b/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts | |||
| @@ -173,6 +173,16 @@ | |||
| 173 | }; | 173 | }; |
| 174 | }; | 174 | }; |
| 175 | }; | 175 | }; |
| 176 | |||
| 177 | dps650ab@58 { | ||
| 178 | compatible = "delta,dps650ab"; | ||
| 179 | reg = <0x58>; | ||
| 180 | }; | ||
| 181 | |||
| 182 | dps650ab@59 { | ||
| 183 | compatible = "delta,dps650ab"; | ||
| 184 | reg = <0x59>; | ||
| 185 | }; | ||
| 176 | }; | 186 | }; |
| 177 | 187 | ||
| 178 | &i2c9 { | 188 | &i2c9 { |
diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts index f8e7b71af7e6..4c2dcac738e8 100644 --- a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts +++ b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts | |||
| @@ -21,6 +21,17 @@ | |||
| 21 | memory@80000000 { | 21 | memory@80000000 { |
| 22 | reg = <0x80000000 0x20000000>; | 22 | reg = <0x80000000 0x20000000>; |
| 23 | }; | 23 | }; |
| 24 | |||
| 25 | iio-hwmon { | ||
| 26 | compatible = "iio-hwmon"; | ||
| 27 | io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, | ||
| 28 | <&adc 4>, <&adc 5>, <&adc 6>; | ||
| 29 | }; | ||
| 30 | |||
| 31 | iio-hwmon-battery { | ||
| 32 | compatible = "iio-hwmon"; | ||
| 33 | io-channels = <&adc 7>; | ||
| 34 | }; | ||
| 24 | }; | 35 | }; |
| 25 | 36 | ||
| 26 | &fmc { | 37 | &fmc { |
| @@ -43,6 +54,16 @@ | |||
| 43 | }; | 54 | }; |
| 44 | }; | 55 | }; |
| 45 | 56 | ||
| 57 | &lpc_snoop { | ||
| 58 | status = "okay"; | ||
| 59 | snoop-ports = <0x80>; | ||
| 60 | }; | ||
| 61 | |||
| 62 | &lpc_ctrl { | ||
| 63 | // Enable lpc clock | ||
| 64 | status = "okay"; | ||
| 65 | }; | ||
| 66 | |||
| 46 | &uart1 { | 67 | &uart1 { |
| 47 | // Host Console | 68 | // Host Console |
| 48 | status = "okay"; | 69 | status = "okay"; |
| @@ -51,11 +72,33 @@ | |||
| 51 | &pinctrl_rxd1_default>; | 72 | &pinctrl_rxd1_default>; |
| 52 | }; | 73 | }; |
| 53 | 74 | ||
| 75 | &uart2 { | ||
| 76 | // SoL Host Console | ||
| 77 | status = "okay"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | &uart3 { | ||
| 81 | // SoL BMC Console | ||
| 82 | status = "okay"; | ||
| 83 | }; | ||
| 84 | |||
| 54 | &uart5 { | 85 | &uart5 { |
| 55 | // BMC Console | 86 | // BMC Console |
| 56 | status = "okay"; | 87 | status = "okay"; |
| 57 | }; | 88 | }; |
| 58 | 89 | ||
| 90 | &kcs2 { | ||
| 91 | // BMC KCS channel 2 | ||
| 92 | status = "okay"; | ||
| 93 | kcs_addr = <0xca8>; | ||
| 94 | }; | ||
| 95 | |||
| 96 | &kcs3 { | ||
| 97 | // BMC KCS channel 3 | ||
| 98 | status = "okay"; | ||
| 99 | kcs_addr = <0xca2>; | ||
| 100 | }; | ||
| 101 | |||
| 59 | &mac0 { | 102 | &mac0 { |
| 60 | status = "okay"; | 103 | status = "okay"; |
| 61 | 104 | ||
| @@ -64,6 +107,10 @@ | |||
| 64 | use-ncsi; | 107 | use-ncsi; |
| 65 | }; | 108 | }; |
| 66 | 109 | ||
| 110 | &adc { | ||
| 111 | status = "okay"; | ||
| 112 | }; | ||
| 113 | |||
| 67 | &i2c0 { | 114 | &i2c0 { |
| 68 | status = "okay"; | 115 | status = "okay"; |
| 69 | //Airmax Conn B, CPU0 PIROM, CPU1 PIROM | 116 | //Airmax Conn B, CPU0 PIROM, CPU1 PIROM |
| @@ -122,6 +169,10 @@ | |||
| 122 | 169 | ||
| 123 | &i2c8 { | 170 | &i2c8 { |
| 124 | status = "okay"; | 171 | status = "okay"; |
| 172 | tmp421@1f { | ||
| 173 | compatible = "ti,tmp421"; | ||
| 174 | reg = <0x1f>; | ||
| 175 | }; | ||
| 125 | //Mezz Sensor SMBus | 176 | //Mezz Sensor SMBus |
| 126 | }; | 177 | }; |
| 127 | 178 | ||
| @@ -140,7 +191,7 @@ | |||
| 140 | }; | 191 | }; |
| 141 | 192 | ||
| 142 | fan@1 { | 193 | fan@1 { |
| 143 | reg = <0x00>; | 194 | reg = <0x01>; |
| 144 | aspeed,fan-tach-ch = /bits/ 8 <0x01>; | 195 | aspeed,fan-tach-ch = /bits/ 8 <0x02>; |
| 145 | }; | 196 | }; |
| 146 | }; | 197 | }; |
diff --git a/arch/arm/boot/dts/aspeed-bmc-inspur-on5263m5.dts b/arch/arm/boot/dts/aspeed-bmc-inspur-on5263m5.dts new file mode 100644 index 000000000000..2337ee23f5c4 --- /dev/null +++ b/arch/arm/boot/dts/aspeed-bmc-inspur-on5263m5.dts | |||
| @@ -0,0 +1,145 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // Copyright (c) 2018 Inspur Corporation | ||
| 3 | /dts-v1/; | ||
| 4 | |||
| 5 | #include "aspeed-g5.dtsi" | ||
| 6 | #include <dt-bindings/gpio/aspeed-gpio.h> | ||
| 7 | |||
| 8 | / { | ||
| 9 | model = "ON5263M5 BMC"; | ||
| 10 | compatible = "inspur,on5263m5-bmc", "aspeed,ast2500"; | ||
| 11 | |||
| 12 | chosen { | ||
| 13 | stdout-path = &uart5; | ||
| 14 | bootargs = "earlyprintk"; | ||
| 15 | }; | ||
| 16 | |||
| 17 | memory { | ||
| 18 | reg = <0x80000000 0x20000000>; | ||
| 19 | }; | ||
| 20 | |||
| 21 | reserved-memory { | ||
| 22 | #address-cells = <1>; | ||
| 23 | #size-cells = <1>; | ||
| 24 | ranges; | ||
| 25 | |||
| 26 | vga_memory: framebuffer@9f000000 { | ||
| 27 | no-map; | ||
| 28 | reg = <0x9f000000 0x01000000>; | ||
| 29 | }; | ||
| 30 | }; | ||
| 31 | |||
| 32 | leds { | ||
| 33 | compatible = "gpio-leds"; | ||
| 34 | bmc_alive { | ||
| 35 | label = "bmc_alive"; | ||
| 36 | gpios = <&gpio ASPEED_GPIO(I, 1) GPIO_ACTIVE_LOW>; | ||
| 37 | linux,default-trigger = "timer"; | ||
| 38 | }; | ||
| 39 | }; | ||
| 40 | |||
| 41 | iio-hwmon { | ||
| 42 | compatible = "iio-hwmon"; | ||
| 43 | io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, | ||
| 44 | <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>; | ||
| 45 | }; | ||
| 46 | |||
| 47 | }; | ||
| 48 | |||
| 49 | &fmc { | ||
| 50 | status = "okay"; | ||
| 51 | flash@0 { | ||
| 52 | status = "okay"; | ||
| 53 | m25p,fast-read; | ||
| 54 | label = "bmc"; | ||
| 55 | #include "openbmc-flash-layout.dtsi" | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | |||
| 59 | &spi1 { | ||
| 60 | status = "okay"; | ||
| 61 | pinctrl-names = "default"; | ||
| 62 | pinctrl-0 = <&pinctrl_spi1_default>; | ||
| 63 | |||
| 64 | flash@0 { | ||
| 65 | status = "okay"; | ||
| 66 | m25p,fast-read; | ||
| 67 | label = "pnor"; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | |||
| 71 | &uart5 { | ||
| 72 | status = "okay"; | ||
| 73 | }; | ||
| 74 | |||
| 75 | &mac0 { | ||
| 76 | status = "okay"; | ||
| 77 | |||
| 78 | pinctrl-names = "default"; | ||
| 79 | pinctrl-0 = <&pinctrl_rmii1_default>; | ||
| 80 | use-ncsi; | ||
| 81 | }; | ||
| 82 | |||
| 83 | &mac1 { | ||
| 84 | status = "okay"; | ||
| 85 | |||
| 86 | pinctrl-names = "default"; | ||
| 87 | pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; | ||
| 88 | }; | ||
| 89 | |||
| 90 | &i2c6 { | ||
| 91 | status = "okay"; | ||
| 92 | |||
| 93 | tmp421@4e { | ||
| 94 | compatible = "ti,tmp421"; | ||
| 95 | reg = <0x4e>; | ||
| 96 | }; | ||
| 97 | |||
| 98 | tmp112@48 { | ||
| 99 | compatible = "ti,tmp112"; | ||
| 100 | reg = <0x48>; | ||
| 101 | }; | ||
| 102 | |||
| 103 | eeprom@54 { | ||
| 104 | compatible = "atmel,24c64"; | ||
| 105 | reg = <0x54>; | ||
| 106 | pagesize = <32>; | ||
| 107 | }; | ||
| 108 | }; | ||
| 109 | |||
| 110 | &i2c7 { | ||
| 111 | status = "okay"; | ||
| 112 | |||
| 113 | adm1278@11 { | ||
| 114 | compatible = "adi,adm1278"; | ||
| 115 | reg = <0x11>; | ||
| 116 | }; | ||
| 117 | }; | ||
| 118 | |||
| 119 | &gfx { | ||
| 120 | status = "okay"; | ||
| 121 | }; | ||
| 122 | |||
| 123 | &pinctrl { | ||
| 124 | aspeed,external-nodes = <&gfx &lhc>; | ||
| 125 | }; | ||
| 126 | |||
| 127 | &pwm_tacho { | ||
| 128 | status = "okay"; | ||
| 129 | pinctrl-names = "default"; | ||
| 130 | pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>; | ||
| 131 | |||
| 132 | fan@0 { | ||
| 133 | reg = <0x00>; | ||
| 134 | aspeed,fan-tach-ch = /bits/ 8 <0x00 0x01>; | ||
| 135 | }; | ||
| 136 | |||
| 137 | fan@1 { | ||
| 138 | reg = <0x01>; | ||
| 139 | aspeed,fan-tach-ch = /bits/ 8 <0x02 0x03>; | ||
| 140 | }; | ||
| 141 | }; | ||
| 142 | |||
| 143 | &adc { | ||
| 144 | status = "okay"; | ||
| 145 | }; | ||
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts index 9aa1d4467453..b854ac0bae9a 100644 --- a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts +++ b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | |||
| @@ -169,6 +169,11 @@ | |||
| 169 | 169 | ||
| 170 | &i2c3 { | 170 | &i2c3 { |
| 171 | status = "okay"; | 171 | status = "okay"; |
| 172 | |||
| 173 | occ-hwmon@50 { | ||
| 174 | compatible = "ibm,p8-occ-hwmon"; | ||
| 175 | reg = <0x50>; | ||
| 176 | }; | ||
| 172 | }; | 177 | }; |
| 173 | 178 | ||
| 174 | &i2c4 { | 179 | &i2c4 { |
diff --git a/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts b/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts index 385c0f4b69ee..0d7c6339da46 100644 --- a/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts +++ b/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts | |||
| @@ -116,6 +116,10 @@ | |||
| 116 | status = "okay"; | 116 | status = "okay"; |
| 117 | }; | 117 | }; |
| 118 | 118 | ||
| 119 | &lpc_ctrl { | ||
| 120 | status = "okay"; | ||
| 121 | }; | ||
| 122 | |||
| 119 | &lpc_snoop { | 123 | &lpc_snoop { |
| 120 | status = "okay"; | 124 | status = "okay"; |
| 121 | snoop-ports = <0x80>; | 125 | snoop-ports = <0x80>; |
| @@ -134,6 +138,10 @@ | |||
| 134 | pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; | 138 | pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; |
| 135 | }; | 139 | }; |
| 136 | 140 | ||
| 141 | &uart1 { | ||
| 142 | status = "okay"; | ||
| 143 | }; | ||
| 144 | |||
| 137 | &uart5 { | 145 | &uart5 { |
| 138 | status = "okay"; | 146 | status = "okay"; |
| 139 | }; | 147 | }; |
diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi index 69f6b9d2e7e7..9549f867aa1e 100644 --- a/arch/arm/boot/dts/aspeed-g4.dtsi +++ b/arch/arm/boot/dts/aspeed-g4.dtsi | |||
| @@ -197,6 +197,7 @@ | |||
| 197 | gpio-ranges = <&pinctrl 0 0 220>; | 197 | gpio-ranges = <&pinctrl 0 0 220>; |
| 198 | clocks = <&syscon ASPEED_CLK_APB>; | 198 | clocks = <&syscon ASPEED_CLK_APB>; |
| 199 | interrupt-controller; | 199 | interrupt-controller; |
| 200 | #interrupt-cells = <2>; | ||
| 200 | }; | 201 | }; |
| 201 | 202 | ||
| 202 | timer: timer@1e782000 { | 203 | timer: timer@1e782000 { |
diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi index d107459fc0f8..85ed9dbec196 100644 --- a/arch/arm/boot/dts/aspeed-g5.dtsi +++ b/arch/arm/boot/dts/aspeed-g5.dtsi | |||
| @@ -47,6 +47,13 @@ | |||
| 47 | reg = <0x80000000 0>; | 47 | reg = <0x80000000 0>; |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| 50 | edac: sdram@1e6e0000 { | ||
| 51 | compatible = "aspeed,ast2500-sdram-edac"; | ||
| 52 | reg = <0x1e6e0000 0x174>; | ||
| 53 | interrupts = <0>; | ||
| 54 | status = "disabled"; | ||
| 55 | }; | ||
| 56 | |||
| 50 | ahb { | 57 | ahb { |
| 51 | compatible = "simple-bus"; | 58 | compatible = "simple-bus"; |
| 52 | #address-cells = <1>; | 59 | #address-cells = <1>; |
| @@ -250,6 +257,7 @@ | |||
| 250 | gpio-ranges = <&pinctrl 0 0 220>; | 257 | gpio-ranges = <&pinctrl 0 0 220>; |
| 251 | clocks = <&syscon ASPEED_CLK_APB>; | 258 | clocks = <&syscon ASPEED_CLK_APB>; |
| 252 | interrupt-controller; | 259 | interrupt-controller; |
| 260 | #interrupt-cells = <2>; | ||
| 253 | }; | 261 | }; |
| 254 | 262 | ||
| 255 | timer: timer@1e782000 { | 263 | timer: timer@1e782000 { |
| @@ -330,8 +338,32 @@ | |||
| 330 | ranges = <0x0 0x1e789000 0x1000>; | 338 | ranges = <0x0 0x1e789000 0x1000>; |
| 331 | 339 | ||
| 332 | lpc_bmc: lpc-bmc@0 { | 340 | lpc_bmc: lpc-bmc@0 { |
| 333 | compatible = "aspeed,ast2500-lpc-bmc"; | 341 | compatible = "aspeed,ast2500-lpc-bmc", "simple-mfd", "syscon"; |
| 334 | reg = <0x0 0x80>; | 342 | reg = <0x0 0x80>; |
| 343 | reg-io-width = <4>; | ||
| 344 | |||
| 345 | #address-cells = <1>; | ||
| 346 | #size-cells = <1>; | ||
| 347 | ranges = <0x0 0x0 0x80>; | ||
| 348 | |||
| 349 | kcs1: kcs1@0 { | ||
| 350 | compatible = "aspeed,ast2500-kcs-bmc"; | ||
| 351 | interrupts = <8>; | ||
| 352 | kcs_chan = <1>; | ||
| 353 | status = "disabled"; | ||
| 354 | }; | ||
| 355 | kcs2: kcs2@0 { | ||
| 356 | compatible = "aspeed,ast2500-kcs-bmc"; | ||
| 357 | interrupts = <8>; | ||
| 358 | kcs_chan = <2>; | ||
| 359 | status = "disabled"; | ||
| 360 | }; | ||
| 361 | kcs3: kcs3@0 { | ||
| 362 | compatible = "aspeed,ast2500-kcs-bmc"; | ||
| 363 | interrupts = <8>; | ||
| 364 | kcs_chan = <3>; | ||
| 365 | status = "disabled"; | ||
| 366 | }; | ||
| 335 | }; | 367 | }; |
| 336 | 368 | ||
| 337 | lpc_host: lpc-host@80 { | 369 | lpc_host: lpc-host@80 { |
| @@ -343,6 +375,13 @@ | |||
| 343 | #size-cells = <1>; | 375 | #size-cells = <1>; |
| 344 | ranges = <0x0 0x80 0x1e0>; | 376 | ranges = <0x0 0x80 0x1e0>; |
| 345 | 377 | ||
| 378 | kcs4: kcs4@0 { | ||
| 379 | compatible = "aspeed,ast2500-kcs-bmc"; | ||
| 380 | interrupts = <8>; | ||
| 381 | kcs_chan = <4>; | ||
| 382 | status = "disabled"; | ||
| 383 | }; | ||
| 384 | |||
| 346 | lpc_ctrl: lpc-ctrl@0 { | 385 | lpc_ctrl: lpc-ctrl@0 { |
| 347 | compatible = "aspeed,ast2500-lpc-ctrl"; | 386 | compatible = "aspeed,ast2500-lpc-ctrl"; |
| 348 | reg = <0x0 0x80>; | 387 | reg = <0x0 0x80>; |
diff --git a/arch/arm/boot/dts/at91-nattis-2-natte-2.dts b/arch/arm/boot/dts/at91-nattis-2-natte-2.dts index 0f6d335125e2..f245944bd5d7 100644 --- a/arch/arm/boot/dts/at91-nattis-2-natte-2.dts +++ b/arch/arm/boot/dts/at91-nattis-2-natte-2.dts | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | wakeup { | 22 | wakeup { |
| 23 | label = "Wakeup"; | 23 | label = "Wakeup"; |
| 24 | linux,code = <10>; | 24 | linux,code = <10>; |
| 25 | gpio-key,wakeup; | 25 | wakeup-source; |
| 26 | gpios = <&pioB 27 GPIO_ACTIVE_LOW>; | 26 | gpios = <&pioB 27 GPIO_ACTIVE_LOW>; |
| 27 | }; | 27 | }; |
| 28 | }; | 28 | }; |
diff --git a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi index cf0087b4c9e1..33a159c0163f 100644 --- a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi +++ b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi | |||
| @@ -62,6 +62,20 @@ | |||
| 62 | 62 | ||
| 63 | ahb { | 63 | ahb { |
| 64 | apb { | 64 | apb { |
| 65 | qspi1: spi@f0024000 { | ||
| 66 | pinctrl-names = "default"; | ||
| 67 | pinctrl-0 = <&pinctrl_qspi1_default>; | ||
| 68 | |||
| 69 | flash@0 { | ||
| 70 | compatible = "jedec,spi-nor"; | ||
| 71 | reg = <0>; | ||
| 72 | spi-max-frequency = <80000000>; | ||
| 73 | spi-tx-bus-width = <4>; | ||
| 74 | spi-rx-bus-width = <4>; | ||
| 75 | m25p,fast-read; | ||
| 76 | }; | ||
| 77 | }; | ||
| 78 | |||
| 65 | macb0: ethernet@f8008000 { | 79 | macb0: ethernet@f8008000 { |
| 66 | pinctrl-names = "default"; | 80 | pinctrl-names = "default"; |
| 67 | pinctrl-0 = <&pinctrl_macb0_default>; | 81 | pinctrl-0 = <&pinctrl_macb0_default>; |
| @@ -78,6 +92,22 @@ | |||
| 78 | 92 | ||
| 79 | pinctrl@fc038000 { | 93 | pinctrl@fc038000 { |
| 80 | 94 | ||
| 95 | pinctrl_qspi1_default: qspi1_default { | ||
| 96 | sck_cs { | ||
| 97 | pinmux = <PIN_PB5__QSPI1_SCK>, | ||
| 98 | <PIN_PB6__QSPI1_CS>; | ||
| 99 | bias-disable; | ||
| 100 | }; | ||
| 101 | |||
| 102 | data { | ||
| 103 | pinmux = <PIN_PB7__QSPI1_IO0>, | ||
| 104 | <PIN_PB8__QSPI1_IO1>, | ||
| 105 | <PIN_PB9__QSPI1_IO2>, | ||
| 106 | <PIN_PB10__QSPI1_IO3>; | ||
| 107 | bias-pull-up; | ||
| 108 | }; | ||
| 109 | }; | ||
| 110 | |||
| 81 | pinctrl_macb0_default: macb0_default { | 111 | pinctrl_macb0_default: macb0_default { |
| 82 | pinmux = <PIN_PD9__GTXCK>, | 112 | pinmux = <PIN_PD9__GTXCK>, |
| 83 | <PIN_PD10__GTXEN>, | 113 | <PIN_PD10__GTXEN>, |
diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts index 4a258867ddf1..a48180555ef5 100644 --- a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | |||
| @@ -109,6 +109,10 @@ | |||
| 109 | status = "okay"; | 109 | status = "okay"; |
| 110 | }; | 110 | }; |
| 111 | 111 | ||
| 112 | qspi1: spi@f0024000 { | ||
| 113 | status = "okay"; | ||
| 114 | }; | ||
| 115 | |||
| 112 | spi0: spi@f8000000 { | 116 | spi0: spi@f8000000 { |
| 113 | pinctrl-names = "default"; | 117 | pinctrl-names = "default"; |
| 114 | pinctrl-0 = <&pinctrl_spi0_default>; | 118 | pinctrl-0 = <&pinctrl_spi0_default>; |
diff --git a/arch/arm/boot/dts/at91-wb45n.dts b/arch/arm/boot/dts/at91-wb45n.dts index 5b9512a6c89c..54d130c92185 100644 --- a/arch/arm/boot/dts/at91-wb45n.dts +++ b/arch/arm/boot/dts/at91-wb45n.dts | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | label = "IRQBTN"; | 22 | label = "IRQBTN"; |
| 23 | linux,code = <99>; | 23 | linux,code = <99>; |
| 24 | gpios = <&pioB 18 GPIO_ACTIVE_LOW>; | 24 | gpios = <&pioB 18 GPIO_ACTIVE_LOW>; |
| 25 | gpio-key,wakeup = <1>; | 25 | wakeup-source; |
| 26 | }; | 26 | }; |
| 27 | }; | 27 | }; |
| 28 | }; | 28 | }; |
diff --git a/arch/arm/boot/dts/at91-wb50n.dts b/arch/arm/boot/dts/at91-wb50n.dts index 8cecc7051a86..a5e45bb95c04 100644 --- a/arch/arm/boot/dts/at91-wb50n.dts +++ b/arch/arm/boot/dts/at91-wb50n.dts | |||
| @@ -23,7 +23,7 @@ | |||
| 23 | label = "BTNESC"; | 23 | label = "BTNESC"; |
| 24 | linux,code = <1>; /* ESC button */ | 24 | linux,code = <1>; /* ESC button */ |
| 25 | gpios = <&pioA 10 GPIO_ACTIVE_LOW>; | 25 | gpios = <&pioA 10 GPIO_ACTIVE_LOW>; |
| 26 | gpio-key,wakeup = <1>; | 26 | wakeup-source; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | irqbtn@31 { | 29 | irqbtn@31 { |
| @@ -31,7 +31,7 @@ | |||
| 31 | label = "IRQBTN"; | 31 | label = "IRQBTN"; |
| 32 | linux,code = <99>; /* SysReq button */ | 32 | linux,code = <99>; /* SysReq button */ |
| 33 | gpios = <&pioE 31 GPIO_ACTIVE_LOW>; | 33 | gpios = <&pioE 31 GPIO_ACTIVE_LOW>; |
| 34 | gpio-key,wakeup = <1>; | 34 | wakeup-source; |
| 35 | }; | 35 | }; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi index 2ad69a7fbc00..5a882a053816 100644 --- a/arch/arm/boot/dts/at91rm9200.dtsi +++ b/arch/arm/boot/dts/at91rm9200.dtsi | |||
| @@ -10,13 +10,14 @@ | |||
| 10 | * Licensed under GPLv2 or later. | 10 | * Licensed under GPLv2 or later. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include "skeleton.dtsi" | ||
| 14 | #include <dt-bindings/pinctrl/at91.h> | 13 | #include <dt-bindings/pinctrl/at91.h> |
| 15 | #include <dt-bindings/interrupt-controller/irq.h> | 14 | #include <dt-bindings/interrupt-controller/irq.h> |
| 16 | #include <dt-bindings/gpio/gpio.h> | 15 | #include <dt-bindings/gpio/gpio.h> |
| 17 | #include <dt-bindings/clock/at91.h> | 16 | #include <dt-bindings/clock/at91.h> |
| 18 | 17 | ||
| 19 | / { | 18 | / { |
| 19 | #address-cells = <1>; | ||
| 20 | #size-cells = <1>; | ||
| 20 | model = "Atmel AT91RM9200 family SoC"; | 21 | model = "Atmel AT91RM9200 family SoC"; |
| 21 | compatible = "atmel,at91rm9200"; | 22 | compatible = "atmel,at91rm9200"; |
| 22 | interrupt-parent = <&aic>; | 23 | interrupt-parent = <&aic>; |
| @@ -49,6 +50,7 @@ | |||
| 49 | }; | 50 | }; |
| 50 | 51 | ||
| 51 | memory { | 52 | memory { |
| 53 | device_type = "memory"; | ||
| 52 | reg = <0x20000000 0x04000000>; | 54 | reg = <0x20000000 0x04000000>; |
| 53 | }; | 55 | }; |
| 54 | 56 | ||
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi index 7cd9c3bc4dfb..3b58b94b53c9 100644 --- a/arch/arm/boot/dts/at91sam9260.dtsi +++ b/arch/arm/boot/dts/at91sam9260.dtsi | |||
| @@ -8,13 +8,14 @@ | |||
| 8 | * Licensed under GPLv2 or later. | 8 | * Licensed under GPLv2 or later. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include "skeleton.dtsi" | ||
| 12 | #include <dt-bindings/pinctrl/at91.h> | 11 | #include <dt-bindings/pinctrl/at91.h> |
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | 12 | #include <dt-bindings/interrupt-controller/irq.h> |
| 14 | #include <dt-bindings/gpio/gpio.h> | 13 | #include <dt-bindings/gpio/gpio.h> |
| 15 | #include <dt-bindings/clock/at91.h> | 14 | #include <dt-bindings/clock/at91.h> |
| 16 | 15 | ||
| 17 | / { | 16 | / { |
| 17 | #address-cells = <1>; | ||
| 18 | #size-cells = <1>; | ||
| 18 | model = "Atmel AT91SAM9260 family SoC"; | 19 | model = "Atmel AT91SAM9260 family SoC"; |
| 19 | compatible = "atmel,at91sam9260"; | 20 | compatible = "atmel,at91sam9260"; |
| 20 | interrupt-parent = <&aic>; | 21 | interrupt-parent = <&aic>; |
| @@ -46,6 +47,7 @@ | |||
| 46 | }; | 47 | }; |
| 47 | 48 | ||
| 48 | memory { | 49 | memory { |
| 50 | device_type = "memory"; | ||
| 49 | reg = <0x20000000 0x04000000>; | 51 | reg = <0x20000000 0x04000000>; |
| 50 | }; | 52 | }; |
| 51 | 53 | ||
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi index 01d700b63b45..a907a1fdd24c 100644 --- a/arch/arm/boot/dts/at91sam9261.dtsi +++ b/arch/arm/boot/dts/at91sam9261.dtsi | |||
| @@ -6,13 +6,14 @@ | |||
| 6 | * Licensed under GPLv2 only. | 6 | * Licensed under GPLv2 only. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "skeleton.dtsi" | ||
| 10 | #include <dt-bindings/pinctrl/at91.h> | 9 | #include <dt-bindings/pinctrl/at91.h> |
| 11 | #include <dt-bindings/interrupt-controller/irq.h> | 10 | #include <dt-bindings/interrupt-controller/irq.h> |
| 12 | #include <dt-bindings/gpio/gpio.h> | 11 | #include <dt-bindings/gpio/gpio.h> |
| 13 | #include <dt-bindings/clock/at91.h> | 12 | #include <dt-bindings/clock/at91.h> |
| 14 | 13 | ||
| 15 | / { | 14 | / { |
| 15 | #address-cells = <1>; | ||
| 16 | #size-cells = <1>; | ||
| 16 | model = "Atmel AT91SAM9261 family SoC"; | 17 | model = "Atmel AT91SAM9261 family SoC"; |
| 17 | compatible = "atmel,at91sam9261"; | 18 | compatible = "atmel,at91sam9261"; |
| 18 | interrupt-parent = <&aic>; | 19 | interrupt-parent = <&aic>; |
| @@ -43,6 +44,7 @@ | |||
| 43 | }; | 44 | }; |
| 44 | 45 | ||
| 45 | memory { | 46 | memory { |
| 47 | device_type = "memory"; | ||
| 46 | reg = <0x20000000 0x08000000>; | 48 | reg = <0x20000000 0x08000000>; |
| 47 | }; | 49 | }; |
| 48 | 50 | ||
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index c5766da4e54e..3fb63d81f18e 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi | |||
| @@ -6,13 +6,14 @@ | |||
| 6 | * Licensed under GPLv2 only. | 6 | * Licensed under GPLv2 only. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "skeleton.dtsi" | ||
| 10 | #include <dt-bindings/pinctrl/at91.h> | 9 | #include <dt-bindings/pinctrl/at91.h> |
| 11 | #include <dt-bindings/interrupt-controller/irq.h> | 10 | #include <dt-bindings/interrupt-controller/irq.h> |
| 12 | #include <dt-bindings/gpio/gpio.h> | 11 | #include <dt-bindings/gpio/gpio.h> |
| 13 | #include <dt-bindings/clock/at91.h> | 12 | #include <dt-bindings/clock/at91.h> |
| 14 | 13 | ||
| 15 | / { | 14 | / { |
| 15 | #address-cells = <1>; | ||
| 16 | #size-cells = <1>; | ||
| 16 | model = "Atmel AT91SAM9263 family SoC"; | 17 | model = "Atmel AT91SAM9263 family SoC"; |
| 17 | compatible = "atmel,at91sam9263"; | 18 | compatible = "atmel,at91sam9263"; |
| 18 | interrupt-parent = <&aic>; | 19 | interrupt-parent = <&aic>; |
| @@ -45,6 +46,7 @@ | |||
| 45 | }; | 46 | }; |
| 46 | 47 | ||
| 47 | memory { | 48 | memory { |
| 49 | device_type = "memory"; | ||
| 48 | reg = <0x20000000 0x08000000>; | 50 | reg = <0x20000000 0x08000000>; |
| 49 | }; | 51 | }; |
| 50 | 52 | ||
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi index d16db1fa7e15..f36819607131 100644 --- a/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/arch/arm/boot/dts/at91sam9g45.dtsi | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | * Licensed under GPLv2 or later. | 9 | * Licensed under GPLv2 or later. |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include "skeleton.dtsi" | ||
| 13 | #include <dt-bindings/dma/at91.h> | 12 | #include <dt-bindings/dma/at91.h> |
| 14 | #include <dt-bindings/pinctrl/at91.h> | 13 | #include <dt-bindings/pinctrl/at91.h> |
| 15 | #include <dt-bindings/interrupt-controller/irq.h> | 14 | #include <dt-bindings/interrupt-controller/irq.h> |
| @@ -17,6 +16,8 @@ | |||
| 17 | #include <dt-bindings/clock/at91.h> | 16 | #include <dt-bindings/clock/at91.h> |
| 18 | 17 | ||
| 19 | / { | 18 | / { |
| 19 | #address-cells = <1>; | ||
| 20 | #size-cells = <1>; | ||
| 20 | model = "Atmel AT91SAM9G45 family SoC"; | 21 | model = "Atmel AT91SAM9G45 family SoC"; |
| 21 | compatible = "atmel,at91sam9g45"; | 22 | compatible = "atmel,at91sam9g45"; |
| 22 | interrupt-parent = <&aic>; | 23 | interrupt-parent = <&aic>; |
| @@ -51,6 +52,7 @@ | |||
| 51 | }; | 52 | }; |
| 52 | 53 | ||
| 53 | memory { | 54 | memory { |
| 55 | device_type = "memory"; | ||
| 54 | reg = <0x70000000 0x10000000>; | 56 | reg = <0x70000000 0x10000000>; |
| 55 | }; | 57 | }; |
| 56 | 58 | ||
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi index 37cb81f457b5..f71d65e6e510 100644 --- a/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/arch/arm/boot/dts/at91sam9n12.dtsi | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | * Licensed under GPLv2 or later. | 7 | * Licensed under GPLv2 or later. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "skeleton.dtsi" | ||
| 11 | #include <dt-bindings/dma/at91.h> | 10 | #include <dt-bindings/dma/at91.h> |
| 12 | #include <dt-bindings/pinctrl/at91.h> | 11 | #include <dt-bindings/pinctrl/at91.h> |
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | 12 | #include <dt-bindings/interrupt-controller/irq.h> |
| @@ -15,6 +14,8 @@ | |||
| 15 | #include <dt-bindings/clock/at91.h> | 14 | #include <dt-bindings/clock/at91.h> |
| 16 | 15 | ||
| 17 | / { | 16 | / { |
| 17 | #address-cells = <1>; | ||
| 18 | #size-cells = <1>; | ||
| 18 | model = "Atmel AT91SAM9N12 SoC"; | 19 | model = "Atmel AT91SAM9N12 SoC"; |
| 19 | compatible = "atmel,at91sam9n12"; | 20 | compatible = "atmel,at91sam9n12"; |
| 20 | interrupt-parent = <&aic>; | 21 | interrupt-parent = <&aic>; |
| @@ -47,6 +48,7 @@ | |||
| 47 | }; | 48 | }; |
| 48 | 49 | ||
| 49 | memory { | 50 | memory { |
| 51 | device_type = "memory"; | ||
| 50 | reg = <0x20000000 0x10000000>; | 52 | reg = <0x20000000 0x10000000>; |
| 51 | }; | 53 | }; |
| 52 | 54 | ||
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi index 3862ff2f26e0..6b5777f3c20b 100644 --- a/arch/arm/boot/dts/at91sam9rl.dtsi +++ b/arch/arm/boot/dts/at91sam9rl.dtsi | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | * Licensed under GPLv2 or later. | 7 | * Licensed under GPLv2 or later. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "skeleton.dtsi" | ||
| 11 | #include <dt-bindings/pinctrl/at91.h> | 10 | #include <dt-bindings/pinctrl/at91.h> |
| 12 | #include <dt-bindings/clock/at91.h> | 11 | #include <dt-bindings/clock/at91.h> |
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | 12 | #include <dt-bindings/interrupt-controller/irq.h> |
| @@ -15,6 +14,8 @@ | |||
| 15 | #include <dt-bindings/pwm/pwm.h> | 14 | #include <dt-bindings/pwm/pwm.h> |
| 16 | 15 | ||
| 17 | / { | 16 | / { |
| 17 | #address-cells = <1>; | ||
| 18 | #size-cells = <1>; | ||
| 18 | model = "Atmel AT91SAM9RL family SoC"; | 19 | model = "Atmel AT91SAM9RL family SoC"; |
| 19 | compatible = "atmel,at91sam9rl", "atmel,at91sam9"; | 20 | compatible = "atmel,at91sam9rl", "atmel,at91sam9"; |
| 20 | interrupt-parent = <&aic>; | 21 | interrupt-parent = <&aic>; |
| @@ -48,6 +49,7 @@ | |||
| 48 | }; | 49 | }; |
| 49 | 50 | ||
| 50 | memory { | 51 | memory { |
| 52 | device_type = "memory"; | ||
| 51 | reg = <0x20000000 0x04000000>; | 53 | reg = <0x20000000 0x04000000>; |
| 52 | }; | 54 | }; |
| 53 | 55 | ||
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 07443a387a8f..79c4956d3902 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | * Licensed under GPLv2 or later. | 9 | * Licensed under GPLv2 or later. |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include "skeleton.dtsi" | ||
| 13 | #include <dt-bindings/dma/at91.h> | 12 | #include <dt-bindings/dma/at91.h> |
| 14 | #include <dt-bindings/pinctrl/at91.h> | 13 | #include <dt-bindings/pinctrl/at91.h> |
| 15 | #include <dt-bindings/interrupt-controller/irq.h> | 14 | #include <dt-bindings/interrupt-controller/irq.h> |
| @@ -17,6 +16,8 @@ | |||
| 17 | #include <dt-bindings/clock/at91.h> | 16 | #include <dt-bindings/clock/at91.h> |
| 18 | 17 | ||
| 19 | / { | 18 | / { |
| 19 | #address-cells = <1>; | ||
| 20 | #size-cells = <1>; | ||
| 20 | model = "Atmel AT91SAM9x5 family SoC"; | 21 | model = "Atmel AT91SAM9x5 family SoC"; |
| 21 | compatible = "atmel,at91sam9x5"; | 22 | compatible = "atmel,at91sam9x5"; |
| 22 | interrupt-parent = <&aic>; | 23 | interrupt-parent = <&aic>; |
| @@ -49,6 +50,7 @@ | |||
| 49 | }; | 50 | }; |
| 50 | 51 | ||
| 51 | memory { | 52 | memory { |
| 53 | device_type = "memory"; | ||
| 52 | reg = <0x20000000 0x10000000>; | 54 | reg = <0x20000000 0x10000000>; |
| 53 | }; | 55 | }; |
| 54 | 56 | ||
diff --git a/arch/arm/boot/dts/atlas6-evb.dts b/arch/arm/boot/dts/atlas6-evb.dts index ab042ca8dea1..40882419309d 100644 --- a/arch/arm/boot/dts/atlas6-evb.dts +++ b/arch/arm/boot/dts/atlas6-evb.dts | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | compatible = "sirf,atlas6-cb", "sirf,atlas6"; | 15 | compatible = "sirf,atlas6-cb", "sirf,atlas6"; |
| 16 | 16 | ||
| 17 | memory { | 17 | memory { |
| 18 | device_type = "memory"; | ||
| 18 | reg = <0x00000000 0x20000000>; | 19 | reg = <0x00000000 0x20000000>; |
| 19 | }; | 20 | }; |
| 20 | 21 | ||
diff --git a/arch/arm/boot/dts/atlas6.dtsi b/arch/arm/boot/dts/atlas6.dtsi index 29598667420b..5587b98032a3 100644 --- a/arch/arm/boot/dts/atlas6.dtsi +++ b/arch/arm/boot/dts/atlas6.dtsi | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | * Licensed under GPLv2 or later. | 6 | * Licensed under GPLv2 or later. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | / { | 9 | / { |
| 11 | compatible = "sirf,atlas6"; | 10 | compatible = "sirf,atlas6"; |
| 12 | #address-cells = <1>; | 11 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/atlas7.dtsi b/arch/arm/boot/dts/atlas7.dtsi index 83449b33de6b..f3de9af35b4d 100644 --- a/arch/arm/boot/dts/atlas7.dtsi +++ b/arch/arm/boot/dts/atlas7.dtsi | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | * Licensed under GPLv2 or later. | 6 | * Licensed under GPLv2 or later. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | / { | 9 | / { |
| 11 | compatible = "sirf,atlas7"; | 10 | compatible = "sirf,atlas7"; |
| 12 | #address-cells = <1>; | 11 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/axm55xx.dtsi b/arch/arm/boot/dts/axm55xx.dtsi index 47799f59faa5..2a93d3ee3b66 100644 --- a/arch/arm/boot/dts/axm55xx.dtsi +++ b/arch/arm/boot/dts/axm55xx.dtsi | |||
| @@ -12,9 +12,9 @@ | |||
| 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 13 | #include <dt-bindings/clock/lsi,axm5516-clks.h> | 13 | #include <dt-bindings/clock/lsi,axm5516-clks.h> |
| 14 | 14 | ||
| 15 | #include "skeleton64.dtsi" | ||
| 16 | |||
| 17 | / { | 15 | / { |
| 16 | #address-cells = <2>; | ||
| 17 | #size-cells = <2>; | ||
| 18 | interrupt-parent = <&gic>; | 18 | interrupt-parent = <&gic>; |
| 19 | 19 | ||
| 20 | aliases { | 20 | aliases { |
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi index 253df7170a4e..5f7b46503a51 100644 --- a/arch/arm/boot/dts/bcm-cygnus.dtsi +++ b/arch/arm/boot/dts/bcm-cygnus.dtsi | |||
| @@ -34,9 +34,9 @@ | |||
| 34 | #include <dt-bindings/interrupt-controller/irq.h> | 34 | #include <dt-bindings/interrupt-controller/irq.h> |
| 35 | #include <dt-bindings/clock/bcm-cygnus.h> | 35 | #include <dt-bindings/clock/bcm-cygnus.h> |
| 36 | 36 | ||
| 37 | #include "skeleton.dtsi" | ||
| 38 | |||
| 39 | / { | 37 | / { |
| 38 | #address-cells = <1>; | ||
| 39 | #size-cells = <1>; | ||
| 40 | compatible = "brcm,cygnus"; | 40 | compatible = "brcm,cygnus"; |
| 41 | model = "Broadcom Cygnus SoC"; | 41 | model = "Broadcom Cygnus SoC"; |
| 42 | interrupt-parent = <&gic>; | 42 | interrupt-parent = <&gic>; |
| @@ -45,6 +45,11 @@ | |||
| 45 | ethernet0 = ð0; | 45 | ethernet0 = ð0; |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | memory { | ||
| 49 | device_type = "memory"; | ||
| 50 | reg = <0 0>; | ||
| 51 | }; | ||
| 52 | |||
| 48 | cpus { | 53 | cpus { |
| 49 | #address-cells = <1>; | 54 | #address-cells = <1>; |
| 50 | #size-cells = <0>; | 55 | #size-cells = <0>; |
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi index 0d2538b46139..6925b30c2253 100644 --- a/arch/arm/boot/dts/bcm-nsp.dtsi +++ b/arch/arm/boot/dts/bcm-nsp.dtsi | |||
| @@ -34,9 +34,9 @@ | |||
| 34 | #include <dt-bindings/interrupt-controller/irq.h> | 34 | #include <dt-bindings/interrupt-controller/irq.h> |
| 35 | #include <dt-bindings/clock/bcm-nsp.h> | 35 | #include <dt-bindings/clock/bcm-nsp.h> |
| 36 | 36 | ||
| 37 | #include "skeleton.dtsi" | ||
| 38 | |||
| 39 | / { | 37 | / { |
| 38 | #address-cells = <1>; | ||
| 39 | #size-cells = <1>; | ||
| 40 | compatible = "brcm,nsp"; | 40 | compatible = "brcm,nsp"; |
| 41 | model = "Broadcom Northstar Plus SoC"; | 41 | model = "Broadcom Northstar Plus SoC"; |
| 42 | interrupt-parent = <&gic>; | 42 | interrupt-parent = <&gic>; |
diff --git a/arch/arm/boot/dts/bcm11351.dtsi b/arch/arm/boot/dts/bcm11351.dtsi index db7cded1b7ad..b99c2e579622 100644 --- a/arch/arm/boot/dts/bcm11351.dtsi +++ b/arch/arm/boot/dts/bcm11351.dtsi | |||
| @@ -16,9 +16,9 @@ | |||
| 16 | 16 | ||
| 17 | #include "dt-bindings/clock/bcm281xx.h" | 17 | #include "dt-bindings/clock/bcm281xx.h" |
| 18 | 18 | ||
| 19 | #include "skeleton.dtsi" | ||
| 20 | |||
| 21 | / { | 19 | / { |
| 20 | #address-cells = <1>; | ||
| 21 | #size-cells = <1>; | ||
| 22 | model = "BCM11351 SoC"; | 22 | model = "BCM11351 SoC"; |
| 23 | compatible = "brcm,bcm11351"; | 23 | compatible = "brcm,bcm11351"; |
| 24 | interrupt-parent = <&gic>; | 24 | interrupt-parent = <&gic>; |
diff --git a/arch/arm/boot/dts/bcm21664-garnet.dts b/arch/arm/boot/dts/bcm21664-garnet.dts index e87cb26ddf84..8b045cfab64b 100644 --- a/arch/arm/boot/dts/bcm21664-garnet.dts +++ b/arch/arm/boot/dts/bcm21664-garnet.dts | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | compatible = "brcm,bcm21664-garnet", "brcm,bcm21664"; | 22 | compatible = "brcm,bcm21664-garnet", "brcm,bcm21664"; |
| 23 | 23 | ||
| 24 | memory { | 24 | memory { |
| 25 | device_type = "memory"; | ||
| 25 | reg = <0x80000000 0x40000000>; /* 1 GB */ | 26 | reg = <0x80000000 0x40000000>; /* 1 GB */ |
| 26 | }; | 27 | }; |
| 27 | 28 | ||
diff --git a/arch/arm/boot/dts/bcm21664.dtsi b/arch/arm/boot/dts/bcm21664.dtsi index 266f2611dc22..758daa334148 100644 --- a/arch/arm/boot/dts/bcm21664.dtsi +++ b/arch/arm/boot/dts/bcm21664.dtsi | |||
| @@ -16,9 +16,9 @@ | |||
| 16 | 16 | ||
| 17 | #include "dt-bindings/clock/bcm21664.h" | 17 | #include "dt-bindings/clock/bcm21664.h" |
| 18 | 18 | ||
| 19 | #include "skeleton.dtsi" | ||
| 20 | |||
| 21 | / { | 19 | / { |
| 20 | #address-cells = <1>; | ||
| 21 | #size-cells = <1>; | ||
| 22 | model = "BCM21664 SoC"; | 22 | model = "BCM21664 SoC"; |
| 23 | compatible = "brcm,bcm21664"; | 23 | compatible = "brcm,bcm21664"; |
| 24 | interrupt-parent = <&gic>; | 24 | interrupt-parent = <&gic>; |
diff --git a/arch/arm/boot/dts/bcm23550-sparrow.dts b/arch/arm/boot/dts/bcm23550-sparrow.dts index 4d525ccb48c8..1c66b15f3013 100644 --- a/arch/arm/boot/dts/bcm23550-sparrow.dts +++ b/arch/arm/boot/dts/bcm23550-sparrow.dts | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | memory { | 48 | memory { |
| 49 | device_type = "memory"; | ||
| 49 | reg = <0x80000000 0x20000000>; /* 512 MB */ | 50 | reg = <0x80000000 0x20000000>; /* 512 MB */ |
| 50 | }; | 51 | }; |
| 51 | }; | 52 | }; |
diff --git a/arch/arm/boot/dts/bcm23550.dtsi b/arch/arm/boot/dts/bcm23550.dtsi index a7a643f38385..701198f5f498 100644 --- a/arch/arm/boot/dts/bcm23550.dtsi +++ b/arch/arm/boot/dts/bcm23550.dtsi | |||
| @@ -36,9 +36,9 @@ | |||
| 36 | /* BCM23550 and BCM21664 have almost identical clocks */ | 36 | /* BCM23550 and BCM21664 have almost identical clocks */ |
| 37 | #include "dt-bindings/clock/bcm21664.h" | 37 | #include "dt-bindings/clock/bcm21664.h" |
| 38 | 38 | ||
| 39 | #include "skeleton.dtsi" | ||
| 40 | |||
| 41 | / { | 39 | / { |
| 40 | #address-cells = <1>; | ||
| 41 | #size-cells = <1>; | ||
| 42 | model = "BCM23550 SoC"; | 42 | model = "BCM23550 SoC"; |
| 43 | compatible = "brcm,bcm23550"; | 43 | compatible = "brcm,bcm23550"; |
| 44 | interrupt-parent = <&gic>; | 44 | interrupt-parent = <&gic>; |
diff --git a/arch/arm/boot/dts/bcm28155-ap.dts b/arch/arm/boot/dts/bcm28155-ap.dts index 9ce91dd60cb6..fbfca83bd28f 100644 --- a/arch/arm/boot/dts/bcm28155-ap.dts +++ b/arch/arm/boot/dts/bcm28155-ap.dts | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | compatible = "brcm,bcm28155-ap", "brcm,bcm11351"; | 22 | compatible = "brcm,bcm28155-ap", "brcm,bcm11351"; |
| 23 | 23 | ||
| 24 | memory { | 24 | memory { |
| 25 | device_type = "memory"; | ||
| 25 | reg = <0x80000000 0x40000000>; /* 1 GB */ | 26 | reg = <0x80000000 0x40000000>; /* 1 GB */ |
| 26 | }; | 27 | }; |
| 27 | 28 | ||
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts index 2cd9c5e4f892..db8a6017f220 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | |||
| @@ -31,8 +31,8 @@ | |||
| 31 | * "FOO" = GPIO line named "FOO" on the schematic | 31 | * "FOO" = GPIO line named "FOO" on the schematic |
| 32 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | 32 | * "FOO_N" = GPIO line named "FOO" on schematic, active low |
| 33 | */ | 33 | */ |
| 34 | gpio-line-names = "SDA0", | 34 | gpio-line-names = "ID_SDA", |
| 35 | "SCL0", | 35 | "ID_SCL", |
| 36 | "SDA1", | 36 | "SDA1", |
| 37 | "SCL1", | 37 | "SCL1", |
| 38 | "GPIO_GCLK", | 38 | "GPIO_GCLK", |
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts index cfbdaacbaeba..1e40d672b055 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | |||
| @@ -33,8 +33,8 @@ | |||
| 33 | * "FOO" = GPIO line named "FOO" on the schematic | 33 | * "FOO" = GPIO line named "FOO" on the schematic |
| 34 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | 34 | * "FOO_N" = GPIO line named "FOO" on schematic, active low |
| 35 | */ | 35 | */ |
| 36 | gpio-line-names = "SDA0", | 36 | gpio-line-names = "ID_SDA", |
| 37 | "SCL0", | 37 | "ID_SCL", |
| 38 | "SDA1", | 38 | "SDA1", |
| 39 | "SCL1", | 39 | "SCL1", |
| 40 | "GPIO_GCLK", | 40 | "GPIO_GCLK", |
diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts index 644d907bafbb..ba0167df6c5f 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | |||
| @@ -25,8 +25,6 @@ | |||
| 25 | 25 | ||
| 26 | wifi_pwrseq: wifi-pwrseq { | 26 | wifi_pwrseq: wifi-pwrseq { |
| 27 | compatible = "mmc-pwrseq-simple"; | 27 | compatible = "mmc-pwrseq-simple"; |
| 28 | pinctrl-names = "default"; | ||
| 29 | pinctrl-0 = <&wl_on>; | ||
| 30 | reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>; | 28 | reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>; |
| 31 | }; | 29 | }; |
| 32 | }; | 30 | }; |
| @@ -40,8 +38,8 @@ | |||
| 40 | * "FOO" = GPIO line named "FOO" on the schematic | 38 | * "FOO" = GPIO line named "FOO" on the schematic |
| 41 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | 39 | * "FOO_N" = GPIO line named "FOO" on schematic, active low |
| 42 | */ | 40 | */ |
| 43 | gpio-line-names = "GPIO0", | 41 | gpio-line-names = "ID_SDA", |
| 44 | "GPIO1", | 42 | "ID_SCL", |
| 45 | "SDA1", | 43 | "SDA1", |
| 46 | "SCL1", | 44 | "SCL1", |
| 47 | "GPIO_GCLK", | 45 | "GPIO_GCLK", |
| @@ -98,11 +96,6 @@ | |||
| 98 | "SD_DATA3_R"; | 96 | "SD_DATA3_R"; |
| 99 | 97 | ||
| 100 | pinctrl-0 = <&gpioout &alt0>; | 98 | pinctrl-0 = <&gpioout &alt0>; |
| 101 | |||
| 102 | wl_on: wl-on { | ||
| 103 | brcm,pins = <41>; | ||
| 104 | brcm,function = <BCM2835_FSEL_GPIO_OUT>; | ||
| 105 | }; | ||
| 106 | }; | 99 | }; |
| 107 | 100 | ||
| 108 | &hdmi { | 101 | &hdmi { |
diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero.dts b/arch/arm/boot/dts/bcm2835-rpi-zero.dts index 00323ba8f7de..3b35a8a4a55f 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts | |||
| @@ -28,8 +28,8 @@ | |||
| 28 | * "FOO" = GPIO line named "FOO" on the schematic | 28 | * "FOO" = GPIO line named "FOO" on the schematic |
| 29 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | 29 | * "FOO_N" = GPIO line named "FOO" on schematic, active low |
| 30 | */ | 30 | */ |
| 31 | gpio-line-names = "SDA0", | 31 | gpio-line-names = "ID_SDA", |
| 32 | "SCL0", | 32 | "ID_SCL", |
| 33 | "SDA1", | 33 | "SDA1", |
| 34 | "SCL1", | 34 | "SCL1", |
| 35 | "GPIO_GCLK", | 35 | "GPIO_GCLK", |
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi index 29f970f864dc..715d50c64529 100644 --- a/arch/arm/boot/dts/bcm2835-rpi.dtsi +++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #include <dt-bindings/power/raspberrypi-power.h> | 1 | #include <dt-bindings/power/raspberrypi-power.h> |
| 2 | 2 | ||
| 3 | / { | 3 | / { |
| 4 | memory { | 4 | memory@0 { |
| 5 | device_type = "memory"; | 5 | device_type = "memory"; |
| 6 | reg = <0 0x10000000>; | 6 | reg = <0 0x10000000>; |
| 7 | }; | 7 | }; |
| @@ -19,8 +19,6 @@ | |||
| 19 | soc { | 19 | soc { |
| 20 | firmware: firmware { | 20 | firmware: firmware { |
| 21 | compatible = "raspberrypi,bcm2835-firmware", "simple-bus"; | 21 | compatible = "raspberrypi,bcm2835-firmware", "simple-bus"; |
| 22 | #address-cells = <0>; | ||
| 23 | #size-cells = <0>; | ||
| 24 | mboxes = <&mailbox>; | 22 | mboxes = <&mailbox>; |
| 25 | }; | 23 | }; |
| 26 | 24 | ||
| @@ -87,10 +85,6 @@ | |||
| 87 | power-domains = <&power RPI_POWER_DOMAIN_USB>; | 85 | power-domains = <&power RPI_POWER_DOMAIN_USB>; |
| 88 | }; | 86 | }; |
| 89 | 87 | ||
| 90 | &v3d { | ||
| 91 | power-domains = <&power RPI_POWER_DOMAIN_V3D>; | ||
| 92 | }; | ||
| 93 | |||
| 94 | &hdmi { | 88 | &hdmi { |
| 95 | power-domains = <&power RPI_POWER_DOMAIN_HDMI>; | 89 | power-domains = <&power RPI_POWER_DOMAIN_HDMI>; |
| 96 | status = "okay"; | 90 | status = "okay"; |
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts index ac4408b34b58..7b4e651bafdd 100644 --- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts +++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; | 9 | compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; |
| 10 | model = "Raspberry Pi 2 Model B"; | 10 | model = "Raspberry Pi 2 Model B"; |
| 11 | 11 | ||
| 12 | memory { | 12 | memory@0 { |
| 13 | reg = <0 0x40000000>; | 13 | reg = <0 0x40000000>; |
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| @@ -28,6 +28,72 @@ | |||
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | &gpio { | 30 | &gpio { |
| 31 | /* | ||
| 32 | * Taken from rpi_SCH_2b_1p2_reduced.pdf and | ||
| 33 | * the official GPU firmware DT blob. | ||
| 34 | * | ||
| 35 | * Legend: | ||
| 36 | * "NC" = not connected (no rail from the SoC) | ||
| 37 | * "FOO" = GPIO line named "FOO" on the schematic | ||
| 38 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | ||
| 39 | */ | ||
| 40 | gpio-line-names = "ID_SDA", | ||
| 41 | "ID_SCL", | ||
| 42 | "SDA1", | ||
| 43 | "SCL1", | ||
| 44 | "GPIO_GCLK", | ||
| 45 | "GPIO5", | ||
| 46 | "GPIO6", | ||
| 47 | "SPI_CE1_N", | ||
| 48 | "SPI_CE0_N", | ||
| 49 | "SPI_MISO", | ||
| 50 | "SPI_MOSI", | ||
| 51 | "SPI_SCLK", | ||
| 52 | "GPIO12", | ||
| 53 | "GPIO13", | ||
| 54 | /* Serial port */ | ||
| 55 | "TXD0", | ||
| 56 | "RXD0", | ||
| 57 | "GPIO16", | ||
| 58 | "GPIO17", | ||
| 59 | "GPIO18", | ||
| 60 | "GPIO19", | ||
| 61 | "GPIO20", | ||
| 62 | "GPIO21", | ||
| 63 | "GPIO22", | ||
| 64 | "GPIO23", | ||
| 65 | "GPIO24", | ||
| 66 | "GPIO25", | ||
| 67 | "GPIO26", | ||
| 68 | "GPIO27", | ||
| 69 | "SDA0", | ||
| 70 | "SCL0", | ||
| 71 | "", /* GPIO30 */ | ||
| 72 | "LAN_RUN", | ||
| 73 | "CAM_GPIO1", | ||
| 74 | "", /* GPIO33 */ | ||
| 75 | "", /* GPIO34 */ | ||
| 76 | "PWR_LOW_N", | ||
| 77 | "", /* GPIO36 */ | ||
| 78 | "", /* GPIO37 */ | ||
| 79 | "USB_LIMIT", | ||
| 80 | "", /* GPIO39 */ | ||
| 81 | "PWM0_OUT", | ||
| 82 | "CAM_GPIO0", | ||
| 83 | "SMPS_SCL", | ||
| 84 | "SMPS_SDA", | ||
| 85 | "ETHCLK", | ||
| 86 | "PWM1_OUT", | ||
| 87 | "HDMI_HPD_N", | ||
| 88 | "STATUS_LED", | ||
| 89 | /* Used by SD Card */ | ||
| 90 | "SD_CLK_R", | ||
| 91 | "SD_CMD_R", | ||
| 92 | "SD_DATA0_R", | ||
| 93 | "SD_DATA1_R", | ||
| 94 | "SD_DATA2_R", | ||
| 95 | "SD_DATA3_R"; | ||
| 96 | |||
| 31 | pinctrl-0 = <&gpioout &alt0 &i2s_alt0>; | 97 | pinctrl-0 = <&gpioout &alt0 &i2s_alt0>; |
| 32 | 98 | ||
| 33 | /* I2S interface */ | 99 | /* I2S interface */ |
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts new file mode 100644 index 000000000000..7f4437a8eedb --- /dev/null +++ b/arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts | |||
| @@ -0,0 +1,175 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /dts-v1/; | ||
| 3 | #include "bcm2837.dtsi" | ||
| 4 | #include "bcm2836-rpi.dtsi" | ||
| 5 | #include "bcm283x-rpi-usb-host.dtsi" | ||
| 6 | |||
| 7 | / { | ||
| 8 | compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837"; | ||
| 9 | model = "Raspberry Pi 3 Model A+"; | ||
| 10 | |||
| 11 | chosen { | ||
| 12 | /* 8250 auxiliary UART instead of pl011 */ | ||
| 13 | stdout-path = "serial1:115200n8"; | ||
| 14 | }; | ||
| 15 | |||
| 16 | memory@0 { | ||
| 17 | reg = <0 0x20000000>; | ||
| 18 | }; | ||
| 19 | |||
| 20 | leds { | ||
| 21 | act { | ||
| 22 | gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; | ||
| 23 | }; | ||
| 24 | |||
| 25 | pwr { | ||
| 26 | label = "PWR"; | ||
| 27 | gpios = <&expgpio 2 GPIO_ACTIVE_LOW>; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
| 31 | |||
| 32 | &firmware { | ||
| 33 | expgpio: gpio { | ||
| 34 | compatible = "raspberrypi,firmware-gpio"; | ||
| 35 | gpio-controller; | ||
| 36 | #gpio-cells = <2>; | ||
| 37 | gpio-line-names = "", | ||
| 38 | "BT_WL_ON", | ||
| 39 | "STATUS_LED_R", | ||
| 40 | "", | ||
| 41 | "", | ||
| 42 | "CAM_GPIO0", | ||
| 43 | "CAM_GPIO1", | ||
| 44 | ""; | ||
| 45 | status = "okay"; | ||
| 46 | }; | ||
| 47 | }; | ||
| 48 | |||
| 49 | &gpio { | ||
| 50 | /* | ||
| 51 | * This is mostly based on the official GPU firmware DT blob. | ||
| 52 | * | ||
| 53 | * Legend: | ||
| 54 | * "NC" = not connected (no rail from the SoC) | ||
| 55 | * "FOO" = GPIO line named "FOO" on the schematic | ||
| 56 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | ||
| 57 | */ | ||
| 58 | gpio-line-names = "ID_SDA", | ||
| 59 | "ID_SCL", | ||
| 60 | "SDA1", | ||
| 61 | "SCL1", | ||
| 62 | "GPIO_GCLK", | ||
| 63 | "GPIO5", | ||
| 64 | "GPIO6", | ||
| 65 | "SPI_CE1_N", | ||
| 66 | "SPI_CE0_N", | ||
| 67 | "SPI_MISO", | ||
| 68 | "SPI_MOSI", | ||
| 69 | "SPI_SCLK", | ||
| 70 | "GPIO12", | ||
| 71 | "GPIO13", | ||
| 72 | /* Serial port */ | ||
| 73 | "TXD1", | ||
| 74 | "RXD1", | ||
| 75 | "GPIO16", | ||
| 76 | "GPIO17", | ||
| 77 | "GPIO18", | ||
| 78 | "GPIO19", | ||
| 79 | "GPIO20", | ||
| 80 | "GPIO21", | ||
| 81 | "GPIO22", | ||
| 82 | "GPIO23", | ||
| 83 | "GPIO24", | ||
| 84 | "GPIO25", | ||
| 85 | "GPIO26", | ||
| 86 | "GPIO27", | ||
| 87 | "HDMI_HPD_N", | ||
| 88 | "STATUS_LED_G", | ||
| 89 | /* Used by BT module */ | ||
| 90 | "CTS0", | ||
| 91 | "RTS0", | ||
| 92 | "TXD0", | ||
| 93 | "RXD0", | ||
| 94 | /* Used by Wifi */ | ||
| 95 | "SD1_CLK", | ||
| 96 | "SD1_CMD", | ||
| 97 | "SD1_DATA0", | ||
| 98 | "SD1_DATA1", | ||
| 99 | "SD1_DATA2", | ||
| 100 | "SD1_DATA3", | ||
| 101 | "PWM0_OUT", | ||
| 102 | "PWM1_OUT", | ||
| 103 | "", /* GPIO42 */ | ||
| 104 | "WIFI_CLK", | ||
| 105 | "SDA0", | ||
| 106 | "SCL0", | ||
| 107 | "SMPS_SCL", | ||
| 108 | "SMPS_SDA", | ||
| 109 | /* Used by SD Card */ | ||
| 110 | "SD_CLK_R", | ||
| 111 | "SD_CMD_R", | ||
| 112 | "SD_DATA0_R", | ||
| 113 | "SD_DATA1_R", | ||
| 114 | "SD_DATA2_R", | ||
| 115 | "SD_DATA3_R"; | ||
| 116 | }; | ||
| 117 | |||
| 118 | &hdmi { | ||
| 119 | hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; | ||
| 120 | }; | ||
| 121 | |||
| 122 | &pwm { | ||
| 123 | pinctrl-names = "default"; | ||
| 124 | pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; | ||
| 125 | status = "okay"; | ||
| 126 | }; | ||
| 127 | |||
| 128 | /* | ||
| 129 | * SDHCI is used to control the SDIO for wireless | ||
| 130 | * | ||
| 131 | * WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven | ||
| 132 | * by a single GPIO. We can't give GPIO control to one of the drivers, | ||
| 133 | * otherwise the other part would get unexpectedly disturbed. | ||
| 134 | */ | ||
| 135 | &sdhci { | ||
| 136 | #address-cells = <1>; | ||
| 137 | #size-cells = <0>; | ||
| 138 | pinctrl-names = "default"; | ||
| 139 | pinctrl-0 = <&emmc_gpio34>; | ||
| 140 | status = "okay"; | ||
| 141 | bus-width = <4>; | ||
| 142 | non-removable; | ||
| 143 | |||
| 144 | brcmf: wifi@1 { | ||
| 145 | reg = <1>; | ||
| 146 | compatible = "brcm,bcm4329-fmac"; | ||
| 147 | }; | ||
| 148 | }; | ||
| 149 | |||
| 150 | /* SDHOST is used to drive the SD card */ | ||
| 151 | &sdhost { | ||
| 152 | pinctrl-names = "default"; | ||
| 153 | pinctrl-0 = <&sdhost_gpio48>; | ||
| 154 | status = "okay"; | ||
| 155 | bus-width = <4>; | ||
| 156 | }; | ||
| 157 | |||
| 158 | /* uart0 communicates with the BT module */ | ||
| 159 | &uart0 { | ||
| 160 | pinctrl-names = "default"; | ||
| 161 | pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>; | ||
| 162 | status = "okay"; | ||
| 163 | |||
| 164 | bluetooth { | ||
| 165 | compatible = "brcm,bcm43438-bt"; | ||
| 166 | max-speed = <2000000>; | ||
| 167 | }; | ||
| 168 | }; | ||
| 169 | |||
| 170 | /* uart1 is mapped to the pin header */ | ||
| 171 | &uart1 { | ||
| 172 | pinctrl-names = "default"; | ||
| 173 | pinctrl-0 = <&uart1_gpio14>; | ||
| 174 | status = "okay"; | ||
| 175 | }; | ||
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts index 42bb09044cc7..c6fa34c24100 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | stdout-path = "serial1:115200n8"; | 14 | stdout-path = "serial1:115200n8"; |
| 15 | }; | 15 | }; |
| 16 | 16 | ||
| 17 | memory { | 17 | memory@0 { |
| 18 | reg = <0 0x40000000>; | 18 | reg = <0 0x40000000>; |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| @@ -42,7 +42,7 @@ | |||
| 42 | #gpio-cells = <2>; | 42 | #gpio-cells = <2>; |
| 43 | gpio-line-names = "BT_ON", | 43 | gpio-line-names = "BT_ON", |
| 44 | "WL_ON", | 44 | "WL_ON", |
| 45 | "STATUS_LED", | 45 | "STATUS_LED_R", |
| 46 | "LAN_RUN", | 46 | "LAN_RUN", |
| 47 | "", | 47 | "", |
| 48 | "CAM_GPIO0", | 48 | "CAM_GPIO0", |
| @@ -52,6 +52,76 @@ | |||
| 52 | }; | 52 | }; |
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | &gpio { | ||
| 56 | /* | ||
| 57 | * Taken from rpi_SCH_3bplus_1p0_reduced.pdf and | ||
| 58 | * the official GPU firmware DT blob. | ||
| 59 | * | ||
| 60 | * Legend: | ||
| 61 | * "NC" = not connected (no rail from the SoC) | ||
| 62 | * "FOO" = GPIO line named "FOO" on the schematic | ||
| 63 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | ||
| 64 | */ | ||
| 65 | gpio-line-names = "ID_SDA", | ||
| 66 | "ID_SCL", | ||
| 67 | "SDA1", | ||
| 68 | "SCL1", | ||
| 69 | "GPIO_GCLK", | ||
| 70 | "GPIO5", | ||
| 71 | "GPIO6", | ||
| 72 | "SPI_CE1_N", | ||
| 73 | "SPI_CE0_N", | ||
| 74 | "SPI_MISO", | ||
| 75 | "SPI_MOSI", | ||
| 76 | "SPI_SCLK", | ||
| 77 | "GPIO12", | ||
| 78 | "GPIO13", | ||
| 79 | /* Serial port */ | ||
| 80 | "TXD1", | ||
| 81 | "RXD1", | ||
| 82 | "GPIO16", | ||
| 83 | "GPIO17", | ||
| 84 | "GPIO18", | ||
| 85 | "GPIO19", | ||
| 86 | "GPIO20", | ||
| 87 | "GPIO21", | ||
| 88 | "GPIO22", | ||
| 89 | "GPIO23", | ||
| 90 | "GPIO24", | ||
| 91 | "GPIO25", | ||
| 92 | "GPIO26", | ||
| 93 | "GPIO27", | ||
| 94 | "HDMI_HPD_N", | ||
| 95 | "STATUS_LED_G", | ||
| 96 | /* Used by BT module */ | ||
| 97 | "CTS0", | ||
| 98 | "RTS0", | ||
| 99 | "TXD0", | ||
| 100 | "RXD0", | ||
| 101 | /* Used by Wifi */ | ||
| 102 | "SD1_CLK", | ||
| 103 | "SD1_CMD", | ||
| 104 | "SD1_DATA0", | ||
| 105 | "SD1_DATA1", | ||
| 106 | "SD1_DATA2", | ||
| 107 | "SD1_DATA3", | ||
| 108 | "PWM0_OUT", | ||
| 109 | "PWM1_OUT", | ||
| 110 | "ETHCLK", | ||
| 111 | "WIFI_CLK", | ||
| 112 | "SDA0", | ||
| 113 | "SCL0", | ||
| 114 | "SMPS_SCL", | ||
| 115 | "SMPS_SDA", | ||
| 116 | /* Used by SD Card */ | ||
| 117 | "SD_CLK_R", | ||
| 118 | "SD_CMD_R", | ||
| 119 | "SD_DATA0_R", | ||
| 120 | "SD_DATA1_R", | ||
| 121 | "SD_DATA2_R", | ||
| 122 | "SD_DATA3_R"; | ||
| 123 | }; | ||
| 124 | |||
| 55 | &hdmi { | 125 | &hdmi { |
| 56 | hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; | 126 | hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>; |
| 57 | }; | 127 | }; |
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts index 0c155dd4f396..ce71f578c51a 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | stdout-path = "serial1:115200n8"; | 14 | stdout-path = "serial1:115200n8"; |
| 15 | }; | 15 | }; |
| 16 | 16 | ||
| 17 | memory { | 17 | memory@0 { |
| 18 | reg = <0 0x40000000>; | 18 | reg = <0 0x40000000>; |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| @@ -39,7 +39,7 @@ | |||
| 39 | "WL_ON", | 39 | "WL_ON", |
| 40 | "STATUS_LED", | 40 | "STATUS_LED", |
| 41 | "LAN_RUN", | 41 | "LAN_RUN", |
| 42 | "HPD_N", | 42 | "HDMI_HPD_N", |
| 43 | "CAM_GPIO0", | 43 | "CAM_GPIO0", |
| 44 | "CAM_GPIO1", | 44 | "CAM_GPIO1", |
| 45 | "PWR_LOW_N"; | 45 | "PWR_LOW_N"; |
| @@ -47,6 +47,76 @@ | |||
| 47 | }; | 47 | }; |
| 48 | }; | 48 | }; |
| 49 | 49 | ||
| 50 | &gpio { | ||
| 51 | /* | ||
| 52 | * Taken from rpi_SCH_3b_1p2_reduced.pdf and | ||
| 53 | * the official GPU firmware DT blob. | ||
| 54 | * | ||
| 55 | * Legend: | ||
| 56 | * "NC" = not connected (no rail from the SoC) | ||
| 57 | * "FOO" = GPIO line named "FOO" on the schematic | ||
| 58 | * "FOO_N" = GPIO line named "FOO" on schematic, active low | ||
| 59 | */ | ||
| 60 | gpio-line-names = "ID_SDA", | ||
| 61 | "ID_SCL", | ||
| 62 | "SDA1", | ||
| 63 | "SCL1", | ||
| 64 | "GPIO_GCLK", | ||
| 65 | "GPIO5", | ||
| 66 | "GPIO6", | ||
| 67 | "SPI_CE1_N", | ||
| 68 | "SPI_CE0_N", | ||
| 69 | "SPI_MISO", | ||
| 70 | "SPI_MOSI", | ||
| 71 | "SPI_SCLK", | ||
| 72 | "GPIO12", | ||
| 73 | "GPIO13", | ||
| 74 | /* Serial port */ | ||
| 75 | "TXD1", | ||
| 76 | "RXD1", | ||
| 77 | "GPIO16", | ||
| 78 | "GPIO17", | ||
| 79 | "GPIO18", | ||
| 80 | "GPIO19", | ||
| 81 | "GPIO20", | ||
| 82 | "GPIO21", | ||
| 83 | "GPIO22", | ||
| 84 | "GPIO23", | ||
| 85 | "GPIO24", | ||
| 86 | "GPIO25", | ||
| 87 | "GPIO26", | ||
| 88 | "GPIO27", | ||
| 89 | "", /* GPIO 28 */ | ||
| 90 | "LAN_RUN_BOOT", | ||
| 91 | /* Used by BT module */ | ||
| 92 | "CTS0", | ||
| 93 | "RTS0", | ||
| 94 | "TXD0", | ||
| 95 | "RXD0", | ||
| 96 | /* Used by Wifi */ | ||
| 97 | "SD1_CLK", | ||
| 98 | "SD1_CMD", | ||
| 99 | "SD1_DATA0", | ||
| 100 | "SD1_DATA1", | ||
| 101 | "SD1_DATA2", | ||
| 102 | "SD1_DATA3", | ||
| 103 | "PWM0_OUT", | ||
| 104 | "PWM1_OUT", | ||
| 105 | "ETHCLK", | ||
| 106 | "WIFI_CLK", | ||
| 107 | "SDA0", | ||
| 108 | "SCL0", | ||
| 109 | "SMPS_SCL", | ||
| 110 | "SMPS_SDA", | ||
| 111 | /* Used by SD Card */ | ||
| 112 | "SD_CLK_R", | ||
| 113 | "SD_CMD_R", | ||
| 114 | "SD_DATA0_R", | ||
| 115 | "SD_DATA1_R", | ||
| 116 | "SD_DATA2_R", | ||
| 117 | "SD_DATA3_R"; | ||
| 118 | }; | ||
| 119 | |||
| 50 | &pwm { | 120 | &pwm { |
| 51 | pinctrl-names = "default"; | 121 | pinctrl-names = "default"; |
| 52 | pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; | 122 | pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>; |
diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi index 4a89a1885a3d..81399b2c5af9 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | #include "bcm2836-rpi.dtsi" | 4 | #include "bcm2836-rpi.dtsi" |
| 5 | 5 | ||
| 6 | / { | 6 | / { |
| 7 | memory { | 7 | memory@0 { |
| 8 | reg = <0 0x40000000>; | 8 | reg = <0 0x40000000>; |
| 9 | }; | 9 | }; |
| 10 | 10 | ||
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi index 31b29646b14c..9777644c6c2b 100644 --- a/arch/arm/boot/dts/bcm283x.dtsi +++ b/arch/arm/boot/dts/bcm283x.dtsi | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | #include <dt-bindings/clock/bcm2835-aux.h> | 3 | #include <dt-bindings/clock/bcm2835-aux.h> |
| 4 | #include <dt-bindings/gpio/gpio.h> | 4 | #include <dt-bindings/gpio/gpio.h> |
| 5 | #include <dt-bindings/interrupt-controller/irq.h> | 5 | #include <dt-bindings/interrupt-controller/irq.h> |
| 6 | #include <dt-bindings/soc/bcm2835-pm.h> | ||
| 6 | 7 | ||
| 7 | /* firmware-provided startup stubs live here, where the secondary CPUs are | 8 | /* firmware-provided startup stubs live here, where the secondary CPUs are |
| 8 | * spinning. | 9 | * spinning. |
| @@ -120,9 +121,18 @@ | |||
| 120 | #interrupt-cells = <2>; | 121 | #interrupt-cells = <2>; |
| 121 | }; | 122 | }; |
| 122 | 123 | ||
| 123 | watchdog@7e100000 { | 124 | pm: watchdog@7e100000 { |
| 124 | compatible = "brcm,bcm2835-pm-wdt"; | 125 | compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; |
| 125 | reg = <0x7e100000 0x28>; | 126 | #power-domain-cells = <1>; |
| 127 | #reset-cells = <1>; | ||
| 128 | reg = <0x7e100000 0x114>, | ||
| 129 | <0x7e00a000 0x24>; | ||
| 130 | clocks = <&clocks BCM2835_CLOCK_V3D>, | ||
| 131 | <&clocks BCM2835_CLOCK_PERI_IMAGE>, | ||
| 132 | <&clocks BCM2835_CLOCK_H264>, | ||
| 133 | <&clocks BCM2835_CLOCK_ISP>; | ||
| 134 | clock-names = "v3d", "peri_image", "h264", "isp"; | ||
| 135 | system-power-controller; | ||
| 126 | }; | 136 | }; |
| 127 | 137 | ||
| 128 | clocks: cprman@7e101000 { | 138 | clocks: cprman@7e101000 { |
| @@ -629,6 +639,7 @@ | |||
| 629 | compatible = "brcm,bcm2835-v3d"; | 639 | compatible = "brcm,bcm2835-v3d"; |
| 630 | reg = <0x7ec00000 0x1000>; | 640 | reg = <0x7ec00000 0x1000>; |
| 631 | interrupts = <1 10>; | 641 | interrupts = <1 10>; |
| 642 | power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; | ||
| 632 | }; | 643 | }; |
| 633 | 644 | ||
| 634 | vc4: gpu { | 645 | vc4: gpu { |
diff --git a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts index 76a2bab3bc6f..fe842f2f1ca7 100644 --- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts +++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | memory { | 22 | memory { |
| 23 | device_type = "memory"; | ||
| 23 | reg = <0x00000000 0x08000000 | 24 | reg = <0x00000000 0x08000000 |
| 24 | 0x88000000 0x08000000>; | 25 | 0x88000000 0x08000000>; |
| 25 | }; | 26 | }; |
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts index 69e3570e03dd..6fcbb0509ba0 100644 --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | memory { | 22 | memory { |
| 23 | device_type = "memory"; | ||
| 23 | reg = <0x00000000 0x08000000 | 24 | reg = <0x00000000 0x08000000 |
| 24 | 0x88000000 0x08000000>; | 25 | 0x88000000 0x08000000>; |
| 25 | }; | 26 | }; |
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts index 0f6f0fe13bfb..b3e8cc90b13f 100644 --- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts +++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | memory { | 22 | memory { |
| 23 | device_type = "memory"; | ||
| 23 | reg = <0x00000000 0x08000000 | 24 | reg = <0x00000000 0x08000000 |
| 24 | 0x88000000 0x08000000>; | 25 | 0x88000000 0x08000000>; |
| 25 | }; | 26 | }; |
diff --git a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts index f77089744996..fdeaa895512f 100644 --- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts +++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | }; | 16 | }; |
| 17 | 17 | ||
| 18 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 19 | reg = <0x00000000 0x08000000>; | 20 | reg = <0x00000000 0x08000000>; |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
diff --git a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts index 4d427863756f..0d510cb15ec3 100644 --- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts +++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000>; | 21 | reg = <0x00000000 0x08000000>; |
| 21 | }; | 22 | }; |
| 22 | 23 | ||
diff --git a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts index 189cc3dcd6ef..962e89edba11 100644 --- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts +++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | }; | 16 | }; |
| 17 | 17 | ||
| 18 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 19 | reg = <0x00000000 0x08000000>; | 20 | reg = <0x00000000 0x08000000>; |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
diff --git a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts index 03c1ab188576..658a56ff8a5c 100644 --- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts +++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | memory { | 22 | memory { |
| 23 | device_type = "memory"; | ||
| 23 | reg = <0x00000000 0x08000000 | 24 | reg = <0x00000000 0x08000000 |
| 24 | 0x88000000 0x08000000>; | 25 | 0x88000000 0x08000000>; |
| 25 | }; | 26 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts index 36efe410dcd7..5fd47eec4407 100644 --- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts +++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000 | 21 | reg = <0x00000000 0x08000000 |
| 21 | 0x88000000 0x08000000>; | 22 | 0x88000000 0x08000000>; |
| 22 | }; | 23 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts index 3e5e9972cd97..6604be6ff0a0 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000 | 21 | reg = <0x00000000 0x08000000 |
| 21 | 0x88000000 0x18000000>; | 22 | 0x88000000 0x18000000>; |
| 22 | }; | 23 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts index 7fd85475893d..567ebbd5a0e9 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | }; | 16 | }; |
| 17 | 17 | ||
| 18 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 19 | reg = <0x00000000 0x08000000>; | 20 | reg = <0x00000000 0x08000000>; |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts index 7acbecd42950..ac2d136ed334 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000 | 21 | reg = <0x00000000 0x08000000 |
| 21 | 0x88000000 0x18000000>; | 22 | 0x88000000 0x18000000>; |
| 22 | }; | 23 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts index f4558d9d2769..74371e821b1a 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000 | 21 | reg = <0x00000000 0x08000000 |
| 21 | 0x88000000 0x08000000>; | 22 | 0x88000000 0x08000000>; |
| 22 | }; | 23 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts index bdad7267255a..b44af63ee310 100644 --- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts +++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000 | 21 | reg = <0x00000000 0x08000000 |
| 21 | 0x88000000 0x18000000>; | 22 | 0x88000000 0x18000000>; |
| 22 | }; | 23 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts index 30719380b6c0..eebc0d43e220 100644 --- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts +++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory { | 19 | memory { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000 | 21 | reg = <0x00000000 0x08000000 |
| 21 | 0x88000000 0x18000000>; | 22 | 0x88000000 0x18000000>; |
| 22 | }; | 23 | }; |
diff --git a/arch/arm/boot/dts/bcm47094-phicomm-k3.dts b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts new file mode 100644 index 000000000000..ec09c0426d16 --- /dev/null +++ b/arch/arm/boot/dts/bcm47094-phicomm-k3.dts | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2017 Hamster Tian <haotia@gmail.com> | ||
| 4 | * Copyright (C) 2019 Hao Dong <halbertdong@gmail.com> | ||
| 5 | */ | ||
| 6 | |||
| 7 | /dts-v1/; | ||
| 8 | |||
| 9 | #include "bcm47094.dtsi" | ||
| 10 | #include "bcm5301x-nand-cs0-bch4.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | compatible = "phicomm,k3", "brcm,bcm47094", "brcm,bcm4708"; | ||
| 14 | model = "Phicomm K3"; | ||
| 15 | |||
| 16 | memory { | ||
| 17 | reg = <0x00000000 0x08000000 | ||
| 18 | 0x88000000 0x18000000>; | ||
| 19 | }; | ||
| 20 | |||
| 21 | gpio-keys { | ||
| 22 | compatible = "gpio-keys"; | ||
| 23 | #address-cells = <1>; | ||
| 24 | #size-cells = <0>; | ||
| 25 | |||
| 26 | restart { | ||
| 27 | label = "Reset"; | ||
| 28 | linux,code = <KEY_RESTART>; | ||
| 29 | gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; | ||
| 30 | }; | ||
| 31 | }; | ||
| 32 | }; | ||
| 33 | |||
| 34 | &uart1 { | ||
| 35 | status = "okay"; | ||
| 36 | }; | ||
| 37 | |||
| 38 | &usb3_phy { | ||
| 39 | status = "okay"; | ||
| 40 | }; | ||
| 41 | |||
| 42 | &nandcs { | ||
| 43 | partitions { | ||
| 44 | compatible = "fixed-partitions"; | ||
| 45 | #address-cells = <1>; | ||
| 46 | #size-cells = <1>; | ||
| 47 | |||
| 48 | partition@0 { | ||
| 49 | label = "boot"; | ||
| 50 | reg = <0x0000000 0x0080000>; | ||
| 51 | read-only; | ||
| 52 | }; | ||
| 53 | |||
| 54 | partition@80000 { | ||
| 55 | label = "nvram"; | ||
| 56 | reg = <0x0080000 0x0100000>; | ||
| 57 | }; | ||
| 58 | |||
| 59 | partition@180000{ | ||
| 60 | label = "phicomm"; | ||
| 61 | reg = <0x0180000 0x0280000>; | ||
| 62 | read-only; | ||
| 63 | }; | ||
| 64 | |||
| 65 | partition@400000 { | ||
| 66 | label = "firmware"; | ||
| 67 | reg = <0x0400000 0x7C00000>; | ||
| 68 | compatible = "brcm,trx"; | ||
| 69 | }; | ||
| 70 | }; | ||
| 71 | }; | ||
diff --git a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts index 74c83b0ca54e..eb59508578e4 100644 --- a/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts +++ b/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
| 1 | /* | 2 | /* |
| 2 | * Copyright 2017 Luxul Inc. | 3 | * Copyright 2017 Luxul Inc. |
| 3 | * | ||
| 4 | * Licensed under the ISC license. | ||
| 5 | */ | 4 | */ |
| 6 | 5 | ||
| 7 | /dts-v1/; | 6 | /dts-v1/; |
| @@ -17,6 +16,7 @@ | |||
| 17 | }; | 16 | }; |
| 18 | 17 | ||
| 19 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000>; | 20 | reg = <0x00000000 0x08000000>; |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
diff --git a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts index 214df18f3a75..4c71f5e95e00 100644 --- a/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts +++ b/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
| 1 | /* | 2 | /* |
| 2 | * Copyright 2017 Luxul Inc. | 3 | * Copyright 2017 Luxul Inc. |
| 3 | * | ||
| 4 | * Licensed under the ISC license. | ||
| 5 | */ | 4 | */ |
| 6 | 5 | ||
| 7 | /dts-v1/; | 6 | /dts-v1/; |
| @@ -17,6 +16,7 @@ | |||
| 17 | }; | 16 | }; |
| 18 | 17 | ||
| 19 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 20 | reg = <0x00000000 0x08000000>; | 20 | reg = <0x00000000 0x08000000>; |
| 21 | }; | 21 | }; |
| 22 | 22 | ||
diff --git a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts index e15e2a1e9d8c..5ad53ea52d0a 100644 --- a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts +++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | }; | 16 | }; |
| 17 | 17 | ||
| 18 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 19 | reg = <0x00000000 0x08000000>; | 20 | reg = <0x00000000 0x08000000>; |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi index fd7af943fb0b..ac5266ee8d4c 100644 --- a/arch/arm/boot/dts/bcm5301x.dtsi +++ b/arch/arm/boot/dts/bcm5301x.dtsi | |||
| @@ -13,9 +13,10 @@ | |||
| 13 | #include <dt-bindings/input/input.h> | 13 | #include <dt-bindings/input/input.h> |
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | 14 | #include <dt-bindings/interrupt-controller/irq.h> |
| 15 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 15 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 16 | #include "skeleton.dtsi" | ||
| 17 | 16 | ||
| 18 | / { | 17 | / { |
| 18 | #address-cells = <1>; | ||
| 19 | #size-cells = <1>; | ||
| 19 | interrupt-parent = <&gic>; | 20 | interrupt-parent = <&gic>; |
| 20 | 21 | ||
| 21 | chipcommonA { | 22 | chipcommonA { |
diff --git a/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts b/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts index 431cda514230..2e7fda9b998c 100644 --- a/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts +++ b/arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | memory@0 { | 22 | memory@0 { |
| 23 | device_type = "memory"; | ||
| 23 | reg = <0x00000000 0x08000000>, | 24 | reg = <0x00000000 0x08000000>, |
| 24 | <0x68000000 0x08000000>; | 25 | <0x68000000 0x08000000>; |
| 25 | }; | 26 | }; |
diff --git a/arch/arm/boot/dts/bcm53573.dtsi b/arch/arm/boot/dts/bcm53573.dtsi index 5054fa9eb0d0..b29695bd4855 100644 --- a/arch/arm/boot/dts/bcm53573.dtsi +++ b/arch/arm/boot/dts/bcm53573.dtsi | |||
| @@ -7,9 +7,10 @@ | |||
| 7 | #include <dt-bindings/input/input.h> | 7 | #include <dt-bindings/input/input.h> |
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | 8 | #include <dt-bindings/interrupt-controller/irq.h> |
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 10 | #include "skeleton.dtsi" | ||
| 11 | 10 | ||
| 12 | / { | 11 | / { |
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <1>; | ||
| 13 | interrupt-parent = <&gic>; | 14 | interrupt-parent = <&gic>; |
| 14 | 15 | ||
| 15 | aliases { | 16 | aliases { |
diff --git a/arch/arm/boot/dts/bcm63138.dtsi b/arch/arm/boot/dts/bcm63138.dtsi index f59764008b9c..e6a41e1b27fd 100644 --- a/arch/arm/boot/dts/bcm63138.dtsi +++ b/arch/arm/boot/dts/bcm63138.dtsi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 6 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 7 | #include <dt-bindings/interrupt-controller/irq.h> | 7 | #include <dt-bindings/interrupt-controller/irq.h> |
| 8 | 8 | ||
| 9 | #include "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | compatible = "brcm,bcm63138"; | 12 | compatible = "brcm,bcm63138"; |
| 13 | model = "Broadcom BCM63138 DSL SoC"; | 13 | model = "Broadcom BCM63138 DSL SoC"; |
| 14 | interrupt-parent = <&gic>; | 14 | interrupt-parent = <&gic>; |
diff --git a/arch/arm/boot/dts/bcm7445.dtsi b/arch/arm/boot/dts/bcm7445.dtsi index c859aa6f358c..504a63236a5e 100644 --- a/arch/arm/boot/dts/bcm7445.dtsi +++ b/arch/arm/boot/dts/bcm7445.dtsi | |||
| @@ -1,8 +1,6 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 2 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 3 | 3 | ||
| 4 | #include "skeleton.dtsi" | ||
| 5 | |||
| 6 | / { | 4 | / { |
| 7 | #address-cells = <2>; | 5 | #address-cells = <2>; |
| 8 | #size-cells = <2>; | 6 | #size-cells = <2>; |
diff --git a/arch/arm/boot/dts/bcm947189acdbmr.dts b/arch/arm/boot/dts/bcm947189acdbmr.dts index ef263412fea5..4991700ae6b0 100644 --- a/arch/arm/boot/dts/bcm947189acdbmr.dts +++ b/arch/arm/boot/dts/bcm947189acdbmr.dts | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | }; | 18 | }; |
| 19 | 19 | ||
| 20 | memory { | 20 | memory { |
| 21 | device_type = "memory"; | ||
| 21 | reg = <0x00000000 0x08000000>; | 22 | reg = <0x00000000 0x08000000>; |
| 22 | }; | 23 | }; |
| 23 | 24 | ||
diff --git a/arch/arm/boot/dts/bcm953012er.dts b/arch/arm/boot/dts/bcm953012er.dts index 17f63c7a0437..250a1d6f2d05 100644 --- a/arch/arm/boot/dts/bcm953012er.dts +++ b/arch/arm/boot/dts/bcm953012er.dts | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708"; | 40 | compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708"; |
| 41 | 41 | ||
| 42 | memory { | 42 | memory { |
| 43 | device_type = "memory"; | ||
| 43 | reg = <0x00000000 0x8000000>; | 44 | reg = <0x00000000 0x8000000>; |
| 44 | }; | 45 | }; |
| 45 | 46 | ||
diff --git a/arch/arm/boot/dts/bcm953012hr.dts b/arch/arm/boot/dts/bcm953012hr.dts index 11b0f5ed99e6..9140be7ec053 100644 --- a/arch/arm/boot/dts/bcm953012hr.dts +++ b/arch/arm/boot/dts/bcm953012hr.dts | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | memory@80000000 { | 48 | memory@80000000 { |
| 49 | device_type = "memory"; | ||
| 49 | reg = <0x80000000 0x10000000>; | 50 | reg = <0x80000000 0x10000000>; |
| 50 | }; | 51 | }; |
| 51 | }; | 52 | }; |
diff --git a/arch/arm/boot/dts/bcm953012k.dts b/arch/arm/boot/dts/bcm953012k.dts index e798055d6989..52c4c6c9d3f1 100644 --- a/arch/arm/boot/dts/bcm953012k.dts +++ b/arch/arm/boot/dts/bcm953012k.dts | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | }; | 44 | }; |
| 45 | 45 | ||
| 46 | memory { | 46 | memory { |
| 47 | device_type = "memory"; | ||
| 47 | reg = <0x80000000 0x10000000>; | 48 | reg = <0x80000000 0x10000000>; |
| 48 | }; | 49 | }; |
| 49 | }; | 50 | }; |
diff --git a/arch/arm/boot/dts/cx92755.dtsi b/arch/arm/boot/dts/cx92755.dtsi index a5a23c376418..d2e8f36f8c60 100644 --- a/arch/arm/boot/dts/cx92755.dtsi +++ b/arch/arm/boot/dts/cx92755.dtsi | |||
| @@ -44,9 +44,9 @@ | |||
| 44 | * OTHER DEALINGS IN THE SOFTWARE. | 44 | * OTHER DEALINGS IN THE SOFTWARE. |
| 45 | */ | 45 | */ |
| 46 | 46 | ||
| 47 | #include "skeleton.dtsi" | ||
| 48 | |||
| 49 | / { | 47 | / { |
| 48 | #address-cells = <1>; | ||
| 49 | #size-cells = <1>; | ||
| 50 | compatible = "cnxt,cx92755"; | 50 | compatible = "cnxt,cx92755"; |
| 51 | 51 | ||
| 52 | interrupt-parent = <&intc>; | 52 | interrupt-parent = <&intc>; |
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts index a3c9b346721d..f04bc3e15332 100644 --- a/arch/arm/boot/dts/da850-evm.dts +++ b/arch/arm/boot/dts/da850-evm.dts | |||
| @@ -94,6 +94,28 @@ | |||
| 94 | regulator-boot-on; | 94 | regulator-boot-on; |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | baseboard_3v3: fixedregulator-3v3 { | ||
| 98 | /* TPS73701DCQ */ | ||
| 99 | compatible = "regulator-fixed"; | ||
| 100 | regulator-name = "baseboard_3v3"; | ||
| 101 | regulator-min-microvolt = <3300000>; | ||
| 102 | regulator-max-microvolt = <3300000>; | ||
| 103 | vin-supply = <&vbat>; | ||
| 104 | regulator-always-on; | ||
| 105 | regulator-boot-on; | ||
| 106 | }; | ||
| 107 | |||
| 108 | baseboard_1v8: fixedregulator-1v8 { | ||
| 109 | /* TPS73701DCQ */ | ||
| 110 | compatible = "regulator-fixed"; | ||
| 111 | regulator-name = "baseboard_1v8"; | ||
| 112 | regulator-min-microvolt = <1800000>; | ||
| 113 | regulator-max-microvolt = <1800000>; | ||
| 114 | vin-supply = <&vbat>; | ||
| 115 | regulator-always-on; | ||
| 116 | regulator-boot-on; | ||
| 117 | }; | ||
| 118 | |||
| 97 | backlight_lcd: backlight-regulator { | 119 | backlight_lcd: backlight-regulator { |
| 98 | compatible = "regulator-fixed"; | 120 | compatible = "regulator-fixed"; |
| 99 | regulator-name = "lcd_backlight_pwr"; | 121 | regulator-name = "lcd_backlight_pwr"; |
| @@ -105,7 +127,7 @@ | |||
| 105 | 127 | ||
| 106 | sound { | 128 | sound { |
| 107 | compatible = "simple-audio-card"; | 129 | compatible = "simple-audio-card"; |
| 108 | simple-audio-card,name = "DA850/OMAP-L138 EVM"; | 130 | simple-audio-card,name = "DA850-OMAPL138 EVM"; |
| 109 | simple-audio-card,widgets = | 131 | simple-audio-card,widgets = |
| 110 | "Line", "Line In", | 132 | "Line", "Line In", |
| 111 | "Line", "Line Out"; | 133 | "Line", "Line Out"; |
| @@ -210,10 +232,9 @@ | |||
| 210 | 232 | ||
| 211 | /* Regulators */ | 233 | /* Regulators */ |
| 212 | IOVDD-supply = <&vdcdc2_reg>; | 234 | IOVDD-supply = <&vdcdc2_reg>; |
| 213 | /* Derived from VBAT: Baseboard 3.3V / 1.8V */ | 235 | AVDD-supply = <&baseboard_3v3>; |
| 214 | AVDD-supply = <&vbat>; | 236 | DRVDD-supply = <&baseboard_3v3>; |
| 215 | DRVDD-supply = <&vbat>; | 237 | DVDD-supply = <&baseboard_1v8>; |
| 216 | DVDD-supply = <&vbat>; | ||
| 217 | }; | 238 | }; |
| 218 | tca6416: gpio@20 { | 239 | tca6416: gpio@20 { |
| 219 | compatible = "ti,tca6416"; | 240 | compatible = "ti,tca6416"; |
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts index 0177e3ed20fe..26f453dc8370 100644 --- a/arch/arm/boot/dts/da850-lcdk.dts +++ b/arch/arm/boot/dts/da850-lcdk.dts | |||
| @@ -39,17 +39,51 @@ | |||
| 39 | }; | 39 | }; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | vcc_5vd: fixedregulator-vcc_5vd { | ||
| 43 | compatible = "regulator-fixed"; | ||
| 44 | regulator-name = "vcc_5vd"; | ||
| 45 | regulator-min-microvolt = <5000000>; | ||
| 46 | regulator-max-microvolt = <5000000>; | ||
| 47 | regulator-boot-on; | ||
| 48 | }; | ||
| 49 | |||
| 50 | vcc_3v3d: fixedregulator-vcc_3v3d { | ||
| 51 | /* TPS650250 - VDCDC1 */ | ||
| 52 | compatible = "regulator-fixed"; | ||
| 53 | regulator-name = "vcc_3v3d"; | ||
| 54 | regulator-min-microvolt = <3300000>; | ||
| 55 | regulator-max-microvolt = <3300000>; | ||
| 56 | vin-supply = <&vcc_5vd>; | ||
| 57 | regulator-always-on; | ||
| 58 | regulator-boot-on; | ||
| 59 | }; | ||
| 60 | |||
| 61 | vcc_1v8d: fixedregulator-vcc_1v8d { | ||
| 62 | /* TPS650250 - VDCDC2 */ | ||
| 63 | compatible = "regulator-fixed"; | ||
| 64 | regulator-name = "vcc_1v8d"; | ||
| 65 | regulator-min-microvolt = <1800000>; | ||
| 66 | regulator-max-microvolt = <1800000>; | ||
| 67 | vin-supply = <&vcc_5vd>; | ||
| 68 | regulator-always-on; | ||
| 69 | regulator-boot-on; | ||
| 70 | }; | ||
| 71 | |||
| 42 | sound { | 72 | sound { |
| 43 | compatible = "simple-audio-card"; | 73 | compatible = "simple-audio-card"; |
| 44 | simple-audio-card,name = "DA850/OMAP-L138 LCDK"; | 74 | simple-audio-card,name = "DA850-OMAPL138 LCDK"; |
| 45 | simple-audio-card,widgets = | 75 | simple-audio-card,widgets = |
| 46 | "Line", "Line In", | 76 | "Line", "Line In", |
| 47 | "Line", "Line Out"; | 77 | "Line", "Line Out", |
| 78 | "Microphone", "Mic Jack"; | ||
| 48 | simple-audio-card,routing = | 79 | simple-audio-card,routing = |
| 49 | "LINE1L", "Line In", | 80 | "LINE1L", "Line In", |
| 50 | "LINE1R", "Line In", | 81 | "LINE1R", "Line In", |
| 51 | "Line Out", "LLOUT", | 82 | "Line Out", "LLOUT", |
| 52 | "Line Out", "RLOUT"; | 83 | "Line Out", "RLOUT", |
| 84 | "MIC3L", "Mic Jack", | ||
| 85 | "MIC3R", "Mic Jack", | ||
| 86 | "Mic Jack", "Mic Bias"; | ||
| 53 | simple-audio-card,format = "dsp_b"; | 87 | simple-audio-card,format = "dsp_b"; |
| 54 | simple-audio-card,bitclock-master = <&link0_codec>; | 88 | simple-audio-card,bitclock-master = <&link0_codec>; |
| 55 | simple-audio-card,frame-master = <&link0_codec>; | 89 | simple-audio-card,frame-master = <&link0_codec>; |
| @@ -220,7 +254,15 @@ | |||
| 220 | #sound-dai-cells = <0>; | 254 | #sound-dai-cells = <0>; |
| 221 | compatible = "ti,tlv320aic3106"; | 255 | compatible = "ti,tlv320aic3106"; |
| 222 | reg = <0x18>; | 256 | reg = <0x18>; |
| 257 | adc-settle-ms = <40>; | ||
| 258 | ai3x-micbias-vg = <1>; /* 2.0V */ | ||
| 223 | status = "okay"; | 259 | status = "okay"; |
| 260 | |||
| 261 | /* Regulators */ | ||
| 262 | IOVDD-supply = <&vcc_3v3d>; | ||
| 263 | AVDD-supply = <&vcc_3v3d>; | ||
| 264 | DRVDD-supply = <&vcc_3v3d>; | ||
| 265 | DVDD-supply = <&vcc_1v8d>; | ||
| 224 | }; | 266 | }; |
| 225 | }; | 267 | }; |
| 226 | 268 | ||
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index 47aa53ba6b92..559659b399d0 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi | |||
| @@ -476,7 +476,7 @@ | |||
| 476 | clocksource: timer@20000 { | 476 | clocksource: timer@20000 { |
| 477 | compatible = "ti,da830-timer"; | 477 | compatible = "ti,da830-timer"; |
| 478 | reg = <0x20000 0x1000>; | 478 | reg = <0x20000 0x1000>; |
| 479 | interrupts = <12>, <13>; | 479 | interrupts = <21>, <22>; |
| 480 | interrupt-names = "tint12", "tint34"; | 480 | interrupt-names = "tint12", "tint34"; |
| 481 | clocks = <&pll0_auxclk>; | 481 | clocks = <&pll0_auxclk>; |
| 482 | }; | 482 | }; |
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi index 601c57afd4fe..95de9f214c14 100644 --- a/arch/arm/boot/dts/dm814x.dtsi +++ b/arch/arm/boot/dts/dm814x.dtsi | |||
| @@ -222,6 +222,30 @@ | |||
| 222 | #interrupt-cells = <2>; | 222 | #interrupt-cells = <2>; |
| 223 | }; | 223 | }; |
| 224 | 224 | ||
| 225 | gpio3: gpio@1ac000 { | ||
| 226 | compatible = "ti,omap4-gpio"; | ||
| 227 | ti,hwmods = "gpio3"; | ||
| 228 | ti,gpio-always-on; | ||
| 229 | reg = <0x1ac000 0x2000>; | ||
| 230 | interrupts = <32>; | ||
| 231 | gpio-controller; | ||
| 232 | #gpio-cells = <2>; | ||
| 233 | interrupt-controller; | ||
| 234 | #interrupt-cells = <2>; | ||
| 235 | }; | ||
| 236 | |||
| 237 | gpio4: gpio@1ae000 { | ||
| 238 | compatible = "ti,omap4-gpio"; | ||
| 239 | ti,hwmods = "gpio4"; | ||
| 240 | ti,gpio-always-on; | ||
| 241 | reg = <0x1ae000 0x2000>; | ||
| 242 | interrupts = <62>; | ||
| 243 | gpio-controller; | ||
| 244 | #gpio-cells = <2>; | ||
| 245 | interrupt-controller; | ||
| 246 | #interrupt-cells = <2>; | ||
| 247 | }; | ||
| 248 | |||
| 225 | i2c2: i2c@2a000 { | 249 | i2c2: i2c@2a000 { |
| 226 | compatible = "ti,omap4-i2c"; | 250 | compatible = "ti,omap4-i2c"; |
| 227 | #address-cells = <1>; | 251 | #address-cells = <1>; |
| @@ -240,10 +264,48 @@ | |||
| 240 | ti,spi-num-cs = <4>; | 264 | ti,spi-num-cs = <4>; |
| 241 | ti,hwmods = "mcspi1"; | 265 | ti,hwmods = "mcspi1"; |
| 242 | dmas = <&edma 16 0 &edma 17 0 | 266 | dmas = <&edma 16 0 &edma 17 0 |
| 243 | &edma 18 0 &edma 19 0>; | 267 | &edma 18 0 &edma 19 0 |
| 268 | &edma 20 0 &edma 21 0 | ||
| 269 | &edma 22 0 &edma 23 0>; | ||
| 270 | |||
| 271 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
| 272 | "tx2", "rx2", "tx3", "rx3"; | ||
| 273 | }; | ||
| 274 | |||
| 275 | mcspi2: spi@1a0000 { | ||
| 276 | compatible = "ti,omap4-mcspi"; | ||
| 277 | reg = <0x1a0000 0x1000>; | ||
| 278 | #address-cells = <1>; | ||
| 279 | #size-cells = <0>; | ||
| 280 | interrupts = <125>; | ||
| 281 | ti,spi-num-cs = <4>; | ||
| 282 | ti,hwmods = "mcspi2"; | ||
| 283 | dmas = <&edma 42 0 &edma 43 0 | ||
| 284 | &edma 44 0 &edma 45 0>; | ||
| 244 | dma-names = "tx0", "rx0", "tx1", "rx1"; | 285 | dma-names = "tx0", "rx0", "tx1", "rx1"; |
| 245 | }; | 286 | }; |
| 246 | 287 | ||
| 288 | /* Board must configure dmas with edma_xbar for EDMA */ | ||
| 289 | mcspi3: spi@1a2000 { | ||
| 290 | compatible = "ti,omap4-mcspi"; | ||
| 291 | reg = <0x1a2000 0x1000>; | ||
| 292 | #address-cells = <1>; | ||
| 293 | #size-cells = <0>; | ||
| 294 | interrupts = <126>; | ||
| 295 | ti,spi-num-cs = <4>; | ||
| 296 | ti,hwmods = "mcspi3"; | ||
| 297 | }; | ||
| 298 | |||
| 299 | mcspi4: spi@1a4000 { | ||
| 300 | compatible = "ti,omap4-mcspi"; | ||
| 301 | reg = <0x1a4000 0x1000>; | ||
| 302 | #address-cells = <1>; | ||
| 303 | #size-cells = <0>; | ||
| 304 | interrupts = <127>; | ||
| 305 | ti,spi-num-cs = <4>; | ||
| 306 | ti,hwmods = "mcspi4"; | ||
| 307 | }; | ||
| 308 | |||
| 247 | timer1: timer@2e000 { | 309 | timer1: timer@2e000 { |
| 248 | compatible = "ti,dm814-timer"; | 310 | compatible = "ti,dm814-timer"; |
| 249 | reg = <0x2e000 0x2000>; | 311 | reg = <0x2e000 0x2000>; |
| @@ -343,6 +405,12 @@ | |||
| 343 | #size-cells = <1>; | 405 | #size-cells = <1>; |
| 344 | ranges = <0 0 0x800>; | 406 | ranges = <0 0 0x800>; |
| 345 | 407 | ||
| 408 | phy_gmii_sel: phy-gmii-sel { | ||
| 409 | compatible = "ti,dm814-phy-gmii-sel"; | ||
| 410 | reg = <0x650 0x4>; | ||
| 411 | #phy-cells = <1>; | ||
| 412 | }; | ||
| 413 | |||
| 346 | scm_clocks: clocks { | 414 | scm_clocks: clocks { |
| 347 | #address-cells = <1>; | 415 | #address-cells = <1>; |
| 348 | #size-cells = <0>; | 416 | #size-cells = <0>; |
| @@ -549,17 +617,14 @@ | |||
| 549 | cpsw_emac0: slave@4a100200 { | 617 | cpsw_emac0: slave@4a100200 { |
| 550 | /* Filled in by U-Boot */ | 618 | /* Filled in by U-Boot */ |
| 551 | mac-address = [ 00 00 00 00 00 00 ]; | 619 | mac-address = [ 00 00 00 00 00 00 ]; |
| 620 | phys = <&phy_gmii_sel 1>; | ||
| 621 | |||
| 552 | }; | 622 | }; |
| 553 | 623 | ||
| 554 | cpsw_emac1: slave@4a100300 { | 624 | cpsw_emac1: slave@4a100300 { |
| 555 | /* Filled in by U-Boot */ | 625 | /* Filled in by U-Boot */ |
| 556 | mac-address = [ 00 00 00 00 00 00 ]; | 626 | mac-address = [ 00 00 00 00 00 00 ]; |
| 557 | }; | 627 | phys = <&phy_gmii_sel 2>; |
| 558 | |||
| 559 | phy_sel: cpsw-phy-sel@48140650 { | ||
| 560 | compatible = "ti,am3352-cpsw-phy-sel"; | ||
| 561 | reg= <0x48140650 0x4>; | ||
| 562 | reg-names = "gmii-sel"; | ||
| 563 | }; | 628 | }; |
| 564 | }; | 629 | }; |
| 565 | 630 | ||
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index 250ad0535e8c..2e8a3977219f 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /include/ "skeleton.dtsi" | ||
| 3 | |||
| 4 | #include <dt-bindings/gpio/gpio.h> | 2 | #include <dt-bindings/gpio/gpio.h> |
| 5 | #include <dt-bindings/interrupt-controller/irq.h> | 3 | #include <dt-bindings/interrupt-controller/irq.h> |
| 6 | 4 | ||
| 7 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | 5 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) |
| 8 | 6 | ||
| 9 | / { | 7 | / { |
| 8 | #address-cells = <1>; | ||
| 9 | #size-cells = <1>; | ||
| 10 | compatible = "marvell,dove"; | 10 | compatible = "marvell,dove"; |
| 11 | model = "Marvell Armada 88AP510 SoC"; | 11 | model = "Marvell Armada 88AP510 SoC"; |
| 12 | interrupt-parent = <&intc>; | 12 | interrupt-parent = <&intc>; |
diff --git a/arch/arm/boot/dts/dra7-l4.dtsi b/arch/arm/boot/dts/dra7-l4.dtsi index bb45cb7fc3b6..414f1cd68733 100644 --- a/arch/arm/boot/dts/dra7-l4.dtsi +++ b/arch/arm/boot/dts/dra7-l4.dtsi | |||
| @@ -77,18 +77,18 @@ | |||
| 77 | }; | 77 | }; |
| 78 | }; | 78 | }; |
| 79 | 79 | ||
| 80 | phy_gmii_sel: phy-gmii-sel { | ||
| 81 | compatible = "ti,dra7xx-phy-gmii-sel"; | ||
| 82 | reg = <0x554 0x4>; | ||
| 83 | #phy-cells = <1>; | ||
| 84 | }; | ||
| 85 | |||
| 80 | scm_conf_clocks: clocks { | 86 | scm_conf_clocks: clocks { |
| 81 | #address-cells = <1>; | 87 | #address-cells = <1>; |
| 82 | #size-cells = <0>; | 88 | #size-cells = <0>; |
| 83 | }; | 89 | }; |
| 84 | }; | 90 | }; |
| 85 | 91 | ||
| 86 | phy_sel: cpsw-phy-sel@554 { | ||
| 87 | compatible = "ti,dra7xx-cpsw-phy-sel"; | ||
| 88 | reg= <0x554 0x4>; | ||
| 89 | reg-names = "gmii-sel"; | ||
| 90 | }; | ||
| 91 | |||
| 92 | dra7_pmx_core: pinmux@1400 { | 92 | dra7_pmx_core: pinmux@1400 { |
| 93 | compatible = "ti,dra7-padconf", | 93 | compatible = "ti,dra7-padconf", |
| 94 | "pinctrl-single"; | 94 | "pinctrl-single"; |
| @@ -3099,7 +3099,6 @@ | |||
| 3099 | <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>; | 3099 | <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>; |
| 3100 | ranges = <0 0 0x4000>; | 3100 | ranges = <0 0 0x4000>; |
| 3101 | syscon = <&scm_conf>; | 3101 | syscon = <&scm_conf>; |
| 3102 | cpsw-phy-sel = <&phy_sel>; | ||
| 3103 | status = "disabled"; | 3102 | status = "disabled"; |
| 3104 | 3103 | ||
| 3105 | davinci_mdio: mdio@1000 { | 3104 | davinci_mdio: mdio@1000 { |
| @@ -3114,11 +3113,13 @@ | |||
| 3114 | cpsw_emac0: slave@200 { | 3113 | cpsw_emac0: slave@200 { |
| 3115 | /* Filled in by U-Boot */ | 3114 | /* Filled in by U-Boot */ |
| 3116 | mac-address = [ 00 00 00 00 00 00 ]; | 3115 | mac-address = [ 00 00 00 00 00 00 ]; |
| 3116 | phys = <&phy_gmii_sel 1>; | ||
| 3117 | }; | 3117 | }; |
| 3118 | 3118 | ||
| 3119 | cpsw_emac1: slave@300 { | 3119 | cpsw_emac1: slave@300 { |
| 3120 | /* Filled in by U-Boot */ | 3120 | /* Filled in by U-Boot */ |
| 3121 | mac-address = [ 00 00 00 00 00 00 ]; | 3121 | mac-address = [ 00 00 00 00 00 00 ]; |
| 3122 | phys = <&phy_gmii_sel 2>; | ||
| 3122 | }; | 3123 | }; |
| 3123 | }; | 3124 | }; |
| 3124 | }; | 3125 | }; |
diff --git a/arch/arm/boot/dts/ep7209.dtsi b/arch/arm/boot/dts/ep7209.dtsi index aaf1261d2ee4..0e74222a5eae 100644 --- a/arch/arm/boot/dts/ep7209.dtsi +++ b/arch/arm/boot/dts/ep7209.dtsi | |||
| @@ -6,11 +6,11 @@ | |||
| 6 | 6 | ||
| 7 | /dts-v1/; | 7 | /dts-v1/; |
| 8 | 8 | ||
| 9 | #include "skeleton.dtsi" | ||
| 10 | |||
| 11 | #include <dt-bindings/clock/clps711x-clock.h> | 9 | #include <dt-bindings/clock/clps711x-clock.h> |
| 12 | 10 | ||
| 13 | / { | 11 | / { |
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <1>; | ||
| 14 | model = "Cirrus Logic EP7209"; | 14 | model = "Cirrus Logic EP7209"; |
| 15 | compatible = "cirrus,ep7209"; | 15 | compatible = "cirrus,ep7209"; |
| 16 | 16 | ||
diff --git a/arch/arm/boot/dts/ep7211-edb7211.dts b/arch/arm/boot/dts/ep7211-edb7211.dts index bc9d5b697452..3475c7777cbc 100644 --- a/arch/arm/boot/dts/ep7211-edb7211.dts +++ b/arch/arm/boot/dts/ep7211-edb7211.dts | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | compatible = "cirrus,edb7211", "cirrus,ep7211", "cirrus,ep7209"; | 12 | compatible = "cirrus,edb7211", "cirrus,ep7211", "cirrus,ep7209"; |
| 13 | 13 | ||
| 14 | memory { | 14 | memory { |
| 15 | device_type = "memory"; | ||
| 15 | reg = <0xc0000000 0x02000000>; | 16 | reg = <0xc0000000 0x02000000>; |
| 16 | }; | 17 | }; |
| 17 | 18 | ||
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi index 608d17454179..5892a9f7622f 100644 --- a/arch/arm/boot/dts/exynos3250.dtsi +++ b/arch/arm/boot/dts/exynos3250.dtsi | |||
| @@ -168,6 +168,9 @@ | |||
| 168 | interrupt-controller; | 168 | interrupt-controller; |
| 169 | #interrupt-cells = <3>; | 169 | #interrupt-cells = <3>; |
| 170 | interrupt-parent = <&gic>; | 170 | interrupt-parent = <&gic>; |
| 171 | clock-names = "clkout8"; | ||
| 172 | clocks = <&cmu CLK_FIN_PLL>; | ||
| 173 | #clock-cells = <1>; | ||
| 171 | }; | 174 | }; |
| 172 | 175 | ||
| 173 | mipi_phy: video-phy { | 176 | mipi_phy: video-phy { |
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi index 3a9eb1e91c45..08d3a0a7b4eb 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi | |||
| @@ -49,7 +49,7 @@ | |||
| 49 | }; | 49 | }; |
| 50 | 50 | ||
| 51 | emmc_pwrseq: pwrseq { | 51 | emmc_pwrseq: pwrseq { |
| 52 | pinctrl-0 = <&sd1_cd>; | 52 | pinctrl-0 = <&emmc_rstn>; |
| 53 | pinctrl-names = "default"; | 53 | pinctrl-names = "default"; |
| 54 | compatible = "mmc-pwrseq-emmc"; | 54 | compatible = "mmc-pwrseq-emmc"; |
| 55 | reset-gpios = <&gpk1 2 GPIO_ACTIVE_LOW>; | 55 | reset-gpios = <&gpk1 2 GPIO_ACTIVE_LOW>; |
| @@ -165,12 +165,6 @@ | |||
| 165 | cpu0-supply = <&buck2_reg>; | 165 | cpu0-supply = <&buck2_reg>; |
| 166 | }; | 166 | }; |
| 167 | 167 | ||
| 168 | /* RSTN signal for eMMC */ | ||
| 169 | &sd1_cd { | ||
| 170 | samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; | ||
| 171 | samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; | ||
| 172 | }; | ||
| 173 | |||
| 174 | &pinctrl_1 { | 168 | &pinctrl_1 { |
| 175 | gpio_power_key: power_key { | 169 | gpio_power_key: power_key { |
| 176 | samsung,pins = "gpx1-3"; | 170 | samsung,pins = "gpx1-3"; |
| @@ -188,6 +182,11 @@ | |||
| 188 | samsung,pins = "gpx3-7"; | 182 | samsung,pins = "gpx3-7"; |
| 189 | samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; | 183 | samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; |
| 190 | }; | 184 | }; |
| 185 | |||
| 186 | emmc_rstn: emmc-rstn { | ||
| 187 | samsung,pins = "gpk1-2"; | ||
| 188 | samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; | ||
| 189 | }; | ||
| 191 | }; | 190 | }; |
| 192 | 191 | ||
| 193 | &ehci { | 192 | &ehci { |
| @@ -390,7 +389,6 @@ | |||
| 390 | regulator-name = "LDO20_1.8V"; | 389 | regulator-name = "LDO20_1.8V"; |
| 391 | regulator-min-microvolt = <1800000>; | 390 | regulator-min-microvolt = <1800000>; |
| 392 | regulator-max-microvolt = <1800000>; | 391 | regulator-max-microvolt = <1800000>; |
| 393 | regulator-boot-on; | ||
| 394 | }; | 392 | }; |
| 395 | 393 | ||
| 396 | ldo21_reg: LDO21 { | 394 | ldo21_reg: LDO21 { |
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts index 348556fcdd9d..a2251581f6b6 100644 --- a/arch/arm/boot/dts/exynos4412-odroidx.dts +++ b/arch/arm/boot/dts/exynos4412-odroidx.dts | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | regulator-name = "p3v3_en"; | 53 | regulator-name = "p3v3_en"; |
| 54 | regulator-min-microvolt = <3300000>; | 54 | regulator-min-microvolt = <3300000>; |
| 55 | regulator-max-microvolt = <3300000>; | 55 | regulator-max-microvolt = <3300000>; |
| 56 | gpio = <&gpa1 1 GPIO_ACTIVE_LOW>; | 56 | gpio = <&gpa1 1 GPIO_ACTIVE_HIGH>; |
| 57 | enable-active-high; | 57 | enable-active-high; |
| 58 | regulator-always-on; | 58 | regulator-always-on; |
| 59 | }; | 59 | }; |
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index 2ca9319f48f2..dc6fa6fe83f1 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts | |||
| @@ -23,7 +23,7 @@ | |||
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | chosen { | 25 | chosen { |
| 26 | bootargs = "console=ttySAC2,115200"; | 26 | stdout-path = "serial2:115200n8"; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | gpio_keys { | 29 | gpio_keys { |
| @@ -100,7 +100,7 @@ | |||
| 100 | regulator-name = "VDD_33ON_2.8V"; | 100 | regulator-name = "VDD_33ON_2.8V"; |
| 101 | regulator-min-microvolt = <2800000>; | 101 | regulator-min-microvolt = <2800000>; |
| 102 | regulator-max-microvolt = <2800000>; | 102 | regulator-max-microvolt = <2800000>; |
| 103 | gpio = <&gpx1 1 GPIO_ACTIVE_LOW>; | 103 | gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>; |
| 104 | enable-active-high; | 104 | enable-active-high; |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi index bf09eab90f8a..25d95de15c9b 100644 --- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi +++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi | |||
| @@ -36,6 +36,11 @@ | |||
| 36 | }; | 36 | }; |
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | &adc { | ||
| 40 | vdd-supply = <&ldo4_reg>; | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 39 | &bus_wcore { | 44 | &bus_wcore { |
| 40 | devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>, | 45 | devfreq-events = <&nocp_mem0_0>, <&nocp_mem0_1>, |
| 41 | <&nocp_mem1_0>, <&nocp_mem1_1>; | 46 | <&nocp_mem1_0>, <&nocp_mem1_1>; |
| @@ -468,7 +473,7 @@ | |||
| 468 | buck8_reg: BUCK8 { | 473 | buck8_reg: BUCK8 { |
| 469 | regulator-name = "vdd_1.8v_ldo"; | 474 | regulator-name = "vdd_1.8v_ldo"; |
| 470 | regulator-min-microvolt = <800000>; | 475 | regulator-min-microvolt = <800000>; |
| 471 | regulator-max-microvolt = <1500000>; | 476 | regulator-max-microvolt = <2000000>; |
| 472 | regulator-always-on; | 477 | regulator-always-on; |
| 473 | regulator-boot-on; | 478 | regulator-boot-on; |
| 474 | }; | 479 | }; |
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi index e84544b220b9..51a843bd65ed 100644 --- a/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-audio.dtsi | |||
| @@ -24,7 +24,9 @@ | |||
| 24 | "Headphone Jack", "MICBIAS", | 24 | "Headphone Jack", "MICBIAS", |
| 25 | "IN1", "Headphone Jack", | 25 | "IN1", "Headphone Jack", |
| 26 | "Speakers", "SPKL", | 26 | "Speakers", "SPKL", |
| 27 | "Speakers", "SPKR"; | 27 | "Speakers", "SPKR", |
| 28 | "I2S Playback", "Mixer DAI TX", | ||
| 29 | "HiFi Playback", "Mixer DAI TX"; | ||
| 28 | 30 | ||
| 29 | assigned-clocks = <&clock CLK_MOUT_EPLL>, | 31 | assigned-clocks = <&clock CLK_MOUT_EPLL>, |
| 30 | <&clock CLK_MOUT_MAU_EPLL>, | 32 | <&clock CLK_MOUT_MAU_EPLL>, |
| @@ -51,7 +53,7 @@ | |||
| 51 | <196608000>; | 53 | <196608000>; |
| 52 | 54 | ||
| 53 | cpu { | 55 | cpu { |
| 54 | sound-dai = <&i2s0 0>; | 56 | sound-dai = <&i2s0 0>, <&i2s0 1>; |
| 55 | }; | 57 | }; |
| 56 | codec { | 58 | codec { |
| 57 | sound-dai = <&hdmi>, <&max98090>; | 59 | sound-dai = <&hdmi>, <&max98090>; |
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi index b299e541cac0..5f195ad7e467 100644 --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | |||
| @@ -362,11 +362,6 @@ | |||
| 362 | }; | 362 | }; |
| 363 | }; | 363 | }; |
| 364 | 364 | ||
| 365 | &adc { | ||
| 366 | vdd-supply = <&ldo4_reg>; | ||
| 367 | status = "okay"; | ||
| 368 | }; | ||
| 369 | |||
| 370 | &hdmi { | 365 | &hdmi { |
| 371 | status = "okay"; | 366 | status = "okay"; |
| 372 | ddc = <&i2c_2>; | 367 | ddc = <&i2c_2>; |
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts index 0db935f2b836..c19b5a51ca44 100644 --- a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts | |||
| @@ -18,6 +18,14 @@ | |||
| 18 | compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5"; | 18 | compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5"; |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| 21 | &arm_a7_pmu { | ||
| 22 | status = "disabled"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | &arm_a15_pmu { | ||
| 26 | status = "disabled"; | ||
| 27 | }; | ||
| 28 | |||
| 21 | &pwm { | 29 | &pwm { |
| 22 | /* | 30 | /* |
| 23 | * PWM 0 -- fan | 31 | * PWM 0 -- fan |
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu4.dts b/arch/arm/boot/dts/exynos5422-odroidxu4.dts index 122174ea9e0a..892d389d6d09 100644 --- a/arch/arm/boot/dts/exynos5422-odroidxu4.dts +++ b/arch/arm/boot/dts/exynos5422-odroidxu4.dts | |||
| @@ -33,6 +33,8 @@ | |||
| 33 | compatible = "samsung,odroid-xu3-audio"; | 33 | compatible = "samsung,odroid-xu3-audio"; |
| 34 | model = "Odroid-XU4"; | 34 | model = "Odroid-XU4"; |
| 35 | 35 | ||
| 36 | samsung,audio-routing = "I2S Playback", "Mixer DAI TX"; | ||
| 37 | |||
| 36 | assigned-clocks = <&clock CLK_MOUT_EPLL>, | 38 | assigned-clocks = <&clock CLK_MOUT_EPLL>, |
| 37 | <&clock CLK_MOUT_MAU_EPLL>, | 39 | <&clock CLK_MOUT_MAU_EPLL>, |
| 38 | <&clock CLK_MOUT_USER_MAU_EPLL>, | 40 | <&clock CLK_MOUT_USER_MAU_EPLL>, |
| @@ -58,7 +60,7 @@ | |||
| 58 | <196608000>; | 60 | <196608000>; |
| 59 | 61 | ||
| 60 | cpu { | 62 | cpu { |
| 61 | sound-dai = <&i2s0 0>; | 63 | sound-dai = <&i2s0 0>, <&i2s0 1>; |
| 62 | }; | 64 | }; |
| 63 | 65 | ||
| 64 | codec { | 66 | codec { |
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts index cc0c3cf89eaa..592111c8d6fd 100644 --- a/arch/arm/boot/dts/gemini-dlink-dir-685.dts +++ b/arch/arm/boot/dts/gemini-dlink-dir-685.dts | |||
| @@ -443,7 +443,7 @@ | |||
| 443 | }; | 443 | }; |
| 444 | 444 | ||
| 445 | display-controller@6a000000 { | 445 | display-controller@6a000000 { |
| 446 | status = "disabled"; | 446 | status = "okay"; |
| 447 | 447 | ||
| 448 | port@0 { | 448 | port@0 { |
| 449 | reg = <0>; | 449 | reg = <0>; |
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi index 26ff5d419bfc..3652f5556b29 100644 --- a/arch/arm/boot/dts/imx27.dtsi +++ b/arch/arm/boot/dts/imx27.dtsi | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | spi2 = &cspi3; | 40 | spi2 = &cspi3; |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| 43 | aitc: aitc-interrupt-controller@e0000000 { | 43 | aitc: aitc-interrupt-controller@10040000 { |
| 44 | compatible = "fsl,imx27-aitc", "fsl,avic"; | 44 | compatible = "fsl,imx27-aitc", "fsl,avic"; |
| 45 | interrupt-controller; | 45 | interrupt-controller; |
| 46 | #interrupt-cells = <1>; | 46 | #interrupt-cells = <1>; |
diff --git a/arch/arm/boot/dts/imx28-cfa10036.dts b/arch/arm/boot/dts/imx28-cfa10036.dts index d3e3622979c5..de48b5808ef6 100644 --- a/arch/arm/boot/dts/imx28-cfa10036.dts +++ b/arch/arm/boot/dts/imx28-cfa10036.dts | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | #include "imx28.dtsi" | 13 | #include "imx28.dtsi" |
| 14 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | 15 | ||
| 15 | / { | 16 | / { |
| 16 | model = "Crystalfontz CFA-10036 Board"; | 17 | model = "Crystalfontz CFA-10036 Board"; |
| @@ -96,7 +97,7 @@ | |||
| 96 | pinctrl-names = "default"; | 97 | pinctrl-names = "default"; |
| 97 | pinctrl-0 = <&ssd1306_cfa10036>; | 98 | pinctrl-0 = <&ssd1306_cfa10036>; |
| 98 | reg = <0x3c>; | 99 | reg = <0x3c>; |
| 99 | reset-gpios = <&gpio2 7 0>; | 100 | reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>; |
| 100 | solomon,height = <32>; | 101 | solomon,height = <32>; |
| 101 | solomon,width = <128>; | 102 | solomon,width = <128>; |
| 102 | solomon,page-offset = <0>; | 103 | solomon,page-offset = <0>; |
diff --git a/arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts b/arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts index 2967a748d859..a2eea58510dc 100644 --- a/arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts +++ b/arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts | |||
| @@ -21,12 +21,28 @@ | |||
| 21 | }; | 21 | }; |
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | &esdhc1 { | ||
| 25 | status = "okay"; | ||
| 26 | }; | ||
| 27 | |||
| 24 | &owire { | 28 | &owire { |
| 25 | pinctrl-names = "default"; | 29 | pinctrl-names = "default"; |
| 26 | pinctrl-0 = <&pinctrl_owire>; | 30 | pinctrl-0 = <&pinctrl_owire>; |
| 27 | status = "okay"; | 31 | status = "okay"; |
| 28 | }; | 32 | }; |
| 29 | 33 | ||
| 34 | &pmic { | ||
| 35 | fsl,mc13xxx-uses-rtc; | ||
| 36 | |||
| 37 | regulators { | ||
| 38 | vcoincell_reg: vcoincell { | ||
| 39 | regulator-min-microvolt = <3000000>; | ||
| 40 | regulator-max-microvolt = <3000000>; | ||
| 41 | regulator-always-on; | ||
| 42 | }; | ||
| 43 | }; | ||
| 44 | }; | ||
| 45 | |||
| 30 | &uart1 { | 46 | &uart1 { |
| 31 | pinctrl-names = "default"; | 47 | pinctrl-names = "default"; |
| 32 | pinctrl-0 = <&pinctrl_uart1>; | 48 | pinctrl-0 = <&pinctrl_uart1>; |
diff --git a/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi b/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi index 82d8df097ef1..d90ba5fe4f1b 100644 --- a/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi +++ b/arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi | |||
| @@ -37,7 +37,6 @@ | |||
| 37 | reg = <0>; | 37 | reg = <0>; |
| 38 | interrupt-parent = <&gpio1>; | 38 | interrupt-parent = <&gpio1>; |
| 39 | interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; | 39 | interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; |
| 40 | fsl,mc13xxx-uses-rtc; | ||
| 41 | 40 | ||
| 42 | regulators { | 41 | regulators { |
| 43 | sw1_reg: sw1 { | 42 | sw1_reg: sw1 { |
| @@ -142,16 +141,17 @@ | |||
| 142 | pwgt2spi_reg: pwgt2spi { | 141 | pwgt2spi_reg: pwgt2spi { |
| 143 | regulator-always-on; | 142 | regulator-always-on; |
| 144 | }; | 143 | }; |
| 145 | |||
| 146 | vcoincell_reg: vcoincell { | ||
| 147 | regulator-min-microvolt = <3000000>; | ||
| 148 | regulator-max-microvolt = <3000000>; | ||
| 149 | regulator-always-on; | ||
| 150 | }; | ||
| 151 | }; | 144 | }; |
| 152 | }; | 145 | }; |
| 153 | }; | 146 | }; |
| 154 | 147 | ||
| 148 | &esdhc1 { | ||
| 149 | pinctrl-names = "default"; | ||
| 150 | pinctrl-0 = <&pinctrl_esdhc1>; | ||
| 151 | max-frequency = <50000000>; | ||
| 152 | bus-width = <1>; | ||
| 153 | }; | ||
| 154 | |||
| 155 | &esdhc2 { | 155 | &esdhc2 { |
| 156 | pinctrl-names = "default"; | 156 | pinctrl-names = "default"; |
| 157 | pinctrl-0 = <&pinctrl_esdhc2>; | 157 | pinctrl-0 = <&pinctrl_esdhc2>; |
| @@ -174,9 +174,12 @@ | |||
| 174 | }; | 174 | }; |
| 175 | 175 | ||
| 176 | &i2c2 { | 176 | &i2c2 { |
| 177 | pinctrl-names = "default"; | 177 | pinctrl-names = "default", "gpio"; |
| 178 | pinctrl-0 = <&pinctrl_i2c2>; | 178 | pinctrl-0 = <&pinctrl_i2c2>; |
| 179 | pinctrl-1 = <&pinctrl_i2c2_gpio>; | ||
| 179 | clock-frequency = <400000>; | 180 | clock-frequency = <400000>; |
| 181 | scl-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; | ||
| 182 | sda-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; | ||
| 180 | status = "okay"; | 183 | status = "okay"; |
| 181 | 184 | ||
| 182 | mma7455l@1d { | 185 | mma7455l@1d { |
| @@ -241,6 +244,14 @@ | |||
| 241 | >; | 244 | >; |
| 242 | }; | 245 | }; |
| 243 | 246 | ||
| 247 | pinctrl_esdhc1: esdhc1grp { | ||
| 248 | fsl,pins = < | ||
| 249 | MX51_PAD_SD1_CLK__SD1_CLK 0x400021d5 | ||
| 250 | MX51_PAD_SD1_CMD__SD1_CMD 0x400020d5 | ||
| 251 | MX51_PAD_SD1_DATA0__SD1_DATA0 0x400020d5 | ||
| 252 | >; | ||
| 253 | }; | ||
| 254 | |||
| 244 | pinctrl_esdhc2: esdhc2grp { | 255 | pinctrl_esdhc2: esdhc2grp { |
| 245 | fsl,pins = < | 256 | fsl,pins = < |
| 246 | MX51_PAD_SD2_CMD__SD2_CMD 0x400020d5 | 257 | MX51_PAD_SD2_CMD__SD2_CMD 0x400020d5 |
| @@ -282,6 +293,13 @@ | |||
| 282 | >; | 293 | >; |
| 283 | }; | 294 | }; |
| 284 | 295 | ||
| 296 | pinctrl_i2c2_gpio: i2c2gpiogrp { | ||
| 297 | fsl,pins = < | ||
| 298 | MX51_PAD_GPIO1_2__GPIO1_2 0x400001ed | ||
| 299 | MX51_PAD_GPIO1_3__GPIO1_3 0x400001ed | ||
| 300 | >; | ||
| 301 | }; | ||
| 302 | |||
| 285 | pinctrl_nfc: nfcgrp { | 303 | pinctrl_nfc: nfcgrp { |
| 286 | fsl,pins = < | 304 | fsl,pins = < |
| 287 | MX51_PAD_NANDF_D0__NANDF_D0 0x80000000 | 305 | MX51_PAD_NANDF_D0__NANDF_D0 0x80000000 |
diff --git a/arch/arm/boot/dts/imx6-logicpd-baseboard.dtsi b/arch/arm/boot/dts/imx6-logicpd-baseboard.dtsi new file mode 100644 index 000000000000..fb01fa6e4224 --- /dev/null +++ b/arch/arm/boot/dts/imx6-logicpd-baseboard.dtsi | |||
| @@ -0,0 +1,555 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2019 Logic PD, Inc. | ||
| 4 | |||
| 5 | / { | ||
| 6 | keyboard { | ||
| 7 | compatible = "gpio-keys"; | ||
| 8 | |||
| 9 | btn0 { | ||
| 10 | gpios = <&pcf8575 0 GPIO_ACTIVE_LOW>; | ||
| 11 | label = "btn0"; | ||
| 12 | linux,code = <KEY_WAKEUP>; | ||
| 13 | debounce-interval = <10>; | ||
| 14 | wakeup-source; | ||
| 15 | }; | ||
| 16 | |||
| 17 | btn1 { | ||
| 18 | gpios = <&pcf8575 1 GPIO_ACTIVE_LOW>; | ||
| 19 | label = "btn1"; | ||
| 20 | linux,code = <KEY_WAKEUP>; | ||
| 21 | debounce-interval = <10>; | ||
| 22 | wakeup-source; | ||
| 23 | }; | ||
| 24 | |||
| 25 | btn2 { | ||
| 26 | gpios = <&pcf8575 2 GPIO_ACTIVE_LOW>; | ||
| 27 | label = "btn2"; | ||
| 28 | linux,code = <KEY_WAKEUP>; | ||
| 29 | debounce-interval = <10>; | ||
| 30 | wakeup-source; | ||
| 31 | }; | ||
| 32 | |||
| 33 | btn3 { | ||
| 34 | gpios = <&pcf8575 3 GPIO_ACTIVE_LOW>; | ||
| 35 | label = "btn3"; | ||
| 36 | linux,code = <KEY_WAKEUP>; | ||
| 37 | debounce-interval = <10>; | ||
| 38 | wakeup-source; | ||
| 39 | }; | ||
| 40 | |||
| 41 | }; | ||
| 42 | |||
| 43 | leds { | ||
| 44 | compatible = "gpio-leds"; | ||
| 45 | |||
| 46 | gen-led0 { | ||
| 47 | label = "led0"; | ||
| 48 | pinctrl-names = "default"; | ||
| 49 | pinctrl-0 = <&pinctrl_led0>; | ||
| 50 | gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; | ||
| 51 | linux,default-trigger = "cpu0"; | ||
| 52 | }; | ||
| 53 | |||
| 54 | gen-led1 { | ||
| 55 | label = "led1"; | ||
| 56 | gpios = <&pcf8575 8 GPIO_ACTIVE_HIGH>; | ||
| 57 | }; | ||
| 58 | |||
| 59 | gen-led2 { | ||
| 60 | label = "led2"; | ||
| 61 | gpios = <&pcf8575 9 GPIO_ACTIVE_HIGH>; | ||
| 62 | linux,default-trigger = "heartbeat"; | ||
| 63 | }; | ||
| 64 | |||
| 65 | gen-led3 { | ||
| 66 | label = "led3"; | ||
| 67 | gpios = <&pcf8575 10 GPIO_ACTIVE_HIGH>; | ||
| 68 | linux,default-trigger = "default-on"; | ||
| 69 | }; | ||
| 70 | }; | ||
| 71 | |||
| 72 | reg_usb_otg_vbus: regulator-otg-vbus { | ||
| 73 | pinctrl-names = "default"; | ||
| 74 | pinctrl-0 = <&pinctrl_reg_usb_otg>; | ||
| 75 | compatible = "regulator-fixed"; | ||
| 76 | regulator-name = "usb_otg_vbus"; | ||
| 77 | regulator-min-microvolt = <5000000>; | ||
| 78 | regulator-max-microvolt = <5000000>; | ||
| 79 | gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>; | ||
| 80 | enable-active-high; | ||
| 81 | }; | ||
| 82 | |||
| 83 | reg_usb_h1_vbus: regulator-usb-h1-vbus { | ||
| 84 | pinctrl-names = "default"; | ||
| 85 | pinctrl-0 = <&pinctrl_reg_usb_h1_vbus>; | ||
| 86 | compatible = "regulator-fixed"; | ||
| 87 | regulator-name = "usb_h1_vbus"; | ||
| 88 | regulator-min-microvolt = <5000000>; | ||
| 89 | regulator-max-microvolt = <5000000>; | ||
| 90 | gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; | ||
| 91 | enable-active-high; | ||
| 92 | }; | ||
| 93 | |||
| 94 | reg_3v3: regulator-3v3 { | ||
| 95 | pinctrl-names = "default"; | ||
| 96 | pinctrl-0 = <&pinctrl_reg_3v3>; | ||
| 97 | compatible = "regulator-fixed"; | ||
| 98 | regulator-name = "reg_3v3"; | ||
| 99 | regulator-min-microvolt = <3300000>; | ||
| 100 | regulator-max-microvolt = <3300000>; | ||
| 101 | gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>; | ||
| 102 | enable-active-high; | ||
| 103 | regulator-always-on; | ||
| 104 | }; | ||
| 105 | |||
| 106 | reg_enet: regulator-ethernet { | ||
| 107 | pinctrl-names = "default"; | ||
| 108 | pinctrl-0 = <&pinctrl_reg_enet>; | ||
| 109 | compatible = "regulator-fixed"; | ||
| 110 | regulator-name = "ethernet-supply"; | ||
| 111 | regulator-min-microvolt = <3300000>; | ||
| 112 | regulator-max-microvolt = <3300000>; | ||
| 113 | gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; | ||
| 114 | startup-delay-us = <70000>; | ||
| 115 | enable-active-high; | ||
| 116 | vin-supply = <&sw4_reg>; | ||
| 117 | }; | ||
| 118 | |||
| 119 | reg_audio: regulator-audio { | ||
| 120 | pinctrl-names = "default"; | ||
| 121 | pinctrl-0 = <&pinctrl_reg_audio>; | ||
| 122 | compatible = "regulator-fixed"; | ||
| 123 | regulator-name = "3v3_aud"; | ||
| 124 | regulator-min-microvolt = <3300000>; | ||
| 125 | regulator-max-microvolt = <3300000>; | ||
| 126 | gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>; | ||
| 127 | enable-active-high; | ||
| 128 | vin-supply = <®_3v3>; | ||
| 129 | }; | ||
| 130 | |||
| 131 | reg_hdmi: regulator-hdmi { | ||
| 132 | pinctrl-names = "default"; | ||
| 133 | pinctrl-0 = <&pinctrl_reg_hdmi>; | ||
| 134 | compatible = "regulator-fixed"; | ||
| 135 | regulator-name = "hdmi-supply"; | ||
| 136 | regulator-min-microvolt = <3300000>; | ||
| 137 | regulator-max-microvolt = <3300000>; | ||
| 138 | gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>; | ||
| 139 | enable-active-high; | ||
| 140 | vin-supply = <®_3v3>; | ||
| 141 | }; | ||
| 142 | |||
| 143 | reg_uart3: regulator-uart3 { | ||
| 144 | pinctrl-names = "default"; | ||
| 145 | pinctrl-0 = <&pinctrl_reg_uart3>; | ||
| 146 | compatible = "regulator-fixed"; | ||
| 147 | regulator-name = "uart3-supply"; | ||
| 148 | gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; | ||
| 149 | enable-active-high; | ||
| 150 | regulator-always-on; | ||
| 151 | vin-supply = <®_3v3>; | ||
| 152 | }; | ||
| 153 | |||
| 154 | reg_1v8: regulator-1v8 { | ||
| 155 | pinctrl-names = "default"; | ||
| 156 | pinctrl-0 = <&pinctrl_reg_1v8>; | ||
| 157 | compatible = "regulator-fixed"; | ||
| 158 | regulator-name = "1v8-supply"; | ||
| 159 | gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; | ||
| 160 | enable-active-high; | ||
| 161 | regulator-always-on; | ||
| 162 | vin-supply = <®_3v3>; | ||
| 163 | }; | ||
| 164 | |||
| 165 | reg_pcie: regulator-pcie { | ||
| 166 | compatible = "regulator-fixed"; | ||
| 167 | pinctrl-names = "default"; | ||
| 168 | pinctrl-0 = <&pinctrl_reg_pcie>; | ||
| 169 | regulator-name = "mpcie_3v3"; | ||
| 170 | regulator-min-microvolt = <3300000>; | ||
| 171 | regulator-max-microvolt = <3300000>; | ||
| 172 | gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; | ||
| 173 | enable-active-high; | ||
| 174 | }; | ||
| 175 | |||
| 176 | reg_mipi: regulator-mipi { | ||
| 177 | compatible = "regulator-fixed"; | ||
| 178 | pinctrl-names = "default"; | ||
| 179 | pinctrl-0 = <&pinctrl_reg_mipi>; | ||
| 180 | regulator-name = "mipi_pwr_en"; | ||
| 181 | regulator-min-microvolt = <2800000>; | ||
| 182 | regulator-max-microvolt = <2800000>; | ||
| 183 | gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; | ||
| 184 | enable-active-high; | ||
| 185 | }; | ||
| 186 | |||
| 187 | sound { | ||
| 188 | compatible = "fsl,imx-audio-wm8962"; | ||
| 189 | model = "wm8962-audio"; | ||
| 190 | ssi-controller = <&ssi2>; | ||
| 191 | audio-codec = <&wm8962>; | ||
| 192 | audio-routing = | ||
| 193 | "Headphone Jack", "HPOUTL", | ||
| 194 | "Headphone Jack", "HPOUTR", | ||
| 195 | "Ext Spk", "SPKOUTL", | ||
| 196 | "Ext Spk", "SPKOUTR", | ||
| 197 | "AMIC", "MICBIAS", | ||
| 198 | "IN3R", "AMIC"; | ||
| 199 | mux-int-port = <2>; | ||
| 200 | mux-ext-port = <4>; | ||
| 201 | }; | ||
| 202 | }; | ||
| 203 | |||
| 204 | &audmux { | ||
| 205 | pinctrl-names = "default"; | ||
| 206 | pinctrl-0 = <&pinctrl_audmux>; | ||
| 207 | status = "okay"; | ||
| 208 | }; | ||
| 209 | |||
| 210 | &ecspi1 { | ||
| 211 | pinctrl-names = "default"; | ||
| 212 | pinctrl-0 = <&pinctrl_ecspi1>; | ||
| 213 | status = "disabled"; | ||
| 214 | }; | ||
| 215 | |||
| 216 | &fec { | ||
| 217 | pinctrl-names = "default"; | ||
| 218 | pinctrl-0 = <&pinctrl_enet>; | ||
| 219 | phy-mode = "rgmii"; | ||
| 220 | phy-reset-duration = <10>; | ||
| 221 | phy-reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; | ||
| 222 | phy-supply = <®_enet>; | ||
| 223 | interrupt-parent = <&gpio1>; | ||
| 224 | interrupts = <25 IRQ_TYPE_EDGE_FALLING>; | ||
| 225 | status = "okay"; | ||
| 226 | }; | ||
| 227 | |||
| 228 | &i2c1 { | ||
| 229 | pinctrl-names = "default"; | ||
| 230 | pinctrl-0 = <&pinctrl_i2c1>; | ||
| 231 | clock-frequency = <400000>; | ||
| 232 | status = "okay"; | ||
| 233 | |||
| 234 | wm8962: audio-codec@1a { | ||
| 235 | compatible = "wlf,wm8962"; | ||
| 236 | reg = <0x1a>; | ||
| 237 | clocks = <&clks IMX6QDL_CLK_CKO>; | ||
| 238 | clock-names = "xclk"; | ||
| 239 | DCVDD-supply = <®_audio>; | ||
| 240 | DBVDD-supply = <®_audio>; | ||
| 241 | AVDD-supply = <®_audio>; | ||
| 242 | CPVDD-supply = <®_audio>; | ||
| 243 | MICVDD-supply = <®_audio>; | ||
| 244 | PLLVDD-supply = <®_audio>; | ||
| 245 | SPKVDD1-supply = <®_audio>; | ||
| 246 | SPKVDD2-supply = <®_audio>; | ||
| 247 | gpio-cfg = < | ||
| 248 | 0x0000 /* 0:Default */ | ||
| 249 | 0x0000 /* 1:Default */ | ||
| 250 | 0x0013 /* 2:FN_DMICCLK */ | ||
| 251 | 0x0000 /* 3:Default */ | ||
| 252 | 0x8014 /* 4:FN_DMICCDAT */ | ||
| 253 | 0x0000 /* 5:Default */ | ||
| 254 | >; | ||
| 255 | }; | ||
| 256 | }; | ||
| 257 | |||
| 258 | &i2c3 { | ||
| 259 | ov5640: camera@10 { | ||
| 260 | compatible = "ovti,ov5640"; | ||
| 261 | pinctrl-names = "default"; | ||
| 262 | pinctrl-0 = <&pinctrl_ov5640>; | ||
| 263 | reg = <0x10>; | ||
| 264 | clocks = <&clks IMX6QDL_CLK_CKO>; | ||
| 265 | clock-names = "xclk"; | ||
| 266 | DOVDD-supply = <®_mipi>; | ||
| 267 | AVDD-supply = <®_mipi>; | ||
| 268 | DVDD-supply = <®_mipi>; | ||
| 269 | reset-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; | ||
| 270 | powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; | ||
| 271 | |||
| 272 | port { | ||
| 273 | ov5640_to_mipi_csi2: endpoint { | ||
| 274 | remote-endpoint = <&mipi_csi2_in>; | ||
| 275 | clock-lanes = <0>; | ||
| 276 | data-lanes = <1 2>; | ||
| 277 | }; | ||
| 278 | }; | ||
| 279 | }; | ||
| 280 | |||
| 281 | pcf8575: gpio@20 { | ||
| 282 | pinctrl-names = "default"; | ||
| 283 | pinctrl-0 = <&pinctrl_pcf8574>; | ||
| 284 | compatible = "nxp,pcf8575"; | ||
| 285 | reg = <0x20>; | ||
| 286 | interrupt-parent = <&gpio6>; | ||
| 287 | interrupts = <31 IRQ_TYPE_EDGE_FALLING>; | ||
| 288 | gpio-controller; | ||
| 289 | #gpio-cells = <2>; | ||
| 290 | interrupt-controller; | ||
| 291 | #interrupt-cells = <2>; | ||
| 292 | lines-initial-states = <0x0710>; | ||
| 293 | wakeup-source; | ||
| 294 | }; | ||
| 295 | }; | ||
| 296 | |||
| 297 | &ipu1_csi1_from_mipi_vc1 { | ||
| 298 | clock-lanes = <0>; | ||
| 299 | data-lanes = <1 2>; | ||
| 300 | }; | ||
| 301 | |||
| 302 | &mipi_csi { | ||
| 303 | status = "okay"; | ||
| 304 | |||
| 305 | port@0 { | ||
| 306 | reg = <0>; | ||
| 307 | |||
| 308 | mipi_csi2_in: endpoint { | ||
| 309 | remote-endpoint = <&ov5640_to_mipi_csi2>; | ||
| 310 | clock-lanes = <0>; | ||
| 311 | data-lanes = <1 2>; | ||
| 312 | }; | ||
| 313 | }; | ||
| 314 | }; | ||
| 315 | |||
| 316 | &pcie { | ||
| 317 | pinctrl-names = "default"; | ||
| 318 | pinctrl-0 = <&pinctrl_pcie>; | ||
| 319 | reset-gpio = <&gpio1 9 GPIO_ACTIVE_LOW>; | ||
| 320 | vpcie-supply = <®_pcie>; | ||
| 321 | status = "okay"; | ||
| 322 | }; | ||
| 323 | |||
| 324 | &pwm3 { | ||
| 325 | pinctrl-names = "default"; | ||
| 326 | pinctrl-0 = <&pinctrl_pwm3>; | ||
| 327 | }; | ||
| 328 | |||
| 329 | &ssi2 { | ||
| 330 | status = "okay"; | ||
| 331 | }; | ||
| 332 | |||
| 333 | &uart3 { | ||
| 334 | pinctrl-names = "default"; | ||
| 335 | pinctrl-0 = <&pinctrl_uart3>; | ||
| 336 | status = "okay"; | ||
| 337 | }; | ||
| 338 | |||
| 339 | &usbh1 { | ||
| 340 | vbus-supply = <®_usb_h1_vbus>; | ||
| 341 | status = "okay"; | ||
| 342 | }; | ||
| 343 | |||
| 344 | &usbotg { | ||
| 345 | vbus-supply = <®_usb_otg_vbus>; | ||
| 346 | pinctrl-names = "default"; | ||
| 347 | pinctrl-0 = <&pinctrl_usbotg>; | ||
| 348 | disable-over-current; | ||
| 349 | dr_mode = "otg"; | ||
| 350 | status = "okay"; | ||
| 351 | }; | ||
| 352 | |||
| 353 | &usdhc2 { | ||
| 354 | pinctrl-names = "default"; | ||
| 355 | pinctrl-0 = <&pinctrl_usdhc2>; | ||
| 356 | pinctrl-1 = <&pinctrl_usdhc2_100mhz>; | ||
| 357 | pinctrl-2 = <&pinctrl_usdhc2_200mhz>; | ||
| 358 | vmmc-supply = <®_3v3>; | ||
| 359 | no-1-8-v; | ||
| 360 | keep-power-in-suspend; | ||
| 361 | cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; | ||
| 362 | status = "okay"; | ||
| 363 | }; | ||
| 364 | |||
| 365 | &iomuxc { | ||
| 366 | pinctrl_audmux: audmuxgrp { | ||
| 367 | fsl,pins = < | ||
| 368 | MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0 | ||
| 369 | MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0 | ||
| 370 | MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0 | ||
| 371 | MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x130b0 | ||
| 372 | >; | ||
| 373 | }; | ||
| 374 | |||
| 375 | pinctrl_ecspi1: ecspi1grp { | ||
| 376 | fsl,pins = < | ||
| 377 | MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1 | ||
| 378 | MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1 | ||
| 379 | MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1 | ||
| 380 | MX6QDL_PAD_KEY_ROW1__ECSPI1_SS0 0x100b1 | ||
| 381 | >; | ||
| 382 | }; | ||
| 383 | |||
| 384 | pinctrl_enet: enetgrp { | ||
| 385 | fsl,pins = < | ||
| 386 | MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b8b0 | ||
| 387 | MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 | ||
| 388 | MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030 | ||
| 389 | MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030 | ||
| 390 | MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030 | ||
| 391 | MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030 | ||
| 392 | MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030 | ||
| 393 | MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0 | ||
| 394 | MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030 | ||
| 395 | MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8 | ||
| 396 | MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030 | ||
| 397 | MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x13030 | ||
| 398 | MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x13030 | ||
| 399 | MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030 | ||
| 400 | MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030 | ||
| 401 | MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x13030 | ||
| 402 | MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0 /* ENET_INT */ | ||
| 403 | MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x1b0b0 /* ETHR_nRST */ | ||
| 404 | >; | ||
| 405 | }; | ||
| 406 | |||
| 407 | pinctrl_i2c1: i2c1grp { | ||
| 408 | fsl,pins = < | ||
| 409 | MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 | ||
| 410 | MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1 | ||
| 411 | >; | ||
| 412 | }; | ||
| 413 | |||
| 414 | pinctrl_led0: led0grp { | ||
| 415 | fsl,pins = < | ||
| 416 | MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1b0b0 | ||
| 417 | >; | ||
| 418 | }; | ||
| 419 | |||
| 420 | pinctrl_ov5640: ov5640grp { | ||
| 421 | fsl,pins = < | ||
| 422 | MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x1b0b1 | ||
| 423 | MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x1b0b1 | ||
| 424 | >; | ||
| 425 | }; | ||
| 426 | |||
| 427 | pinctrl_pcf8574: pcf8575grp { | ||
| 428 | fsl,pins = < | ||
| 429 | MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b0 | ||
| 430 | >; | ||
| 431 | }; | ||
| 432 | |||
| 433 | pinctrl_pcie: pciegrp { | ||
| 434 | fsl,pins = < | ||
| 435 | MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0 | ||
| 436 | MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0 | ||
| 437 | >; | ||
| 438 | }; | ||
| 439 | |||
| 440 | pinctrl_pwm3: pwm3grp { | ||
| 441 | fsl,pins = < | ||
| 442 | MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1 | ||
| 443 | >; | ||
| 444 | }; | ||
| 445 | |||
| 446 | pinctrl_reg_1v8: reg1v8grp { | ||
| 447 | fsl,pins = < | ||
| 448 | MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b0 | ||
| 449 | >; | ||
| 450 | }; | ||
| 451 | |||
| 452 | pinctrl_reg_3v3: reg3v3grp { | ||
| 453 | fsl,pins = < | ||
| 454 | MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b0 | ||
| 455 | >; | ||
| 456 | }; | ||
| 457 | |||
| 458 | pinctrl_reg_audio: reg-audiogrp { | ||
| 459 | fsl,pins = < | ||
| 460 | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 | ||
| 461 | >; | ||
| 462 | }; | ||
| 463 | |||
| 464 | pinctrl_reg_enet: reg-enetgrp { | ||
| 465 | fsl,pins = < | ||
| 466 | MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x1b0b0 | ||
| 467 | >; | ||
| 468 | }; | ||
| 469 | |||
| 470 | pinctrl_reg_hdmi: reg-hdmigrp { | ||
| 471 | fsl,pins = < | ||
| 472 | MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b0 | ||
| 473 | >; | ||
| 474 | }; | ||
| 475 | |||
| 476 | pinctrl_reg_mipi: reg-mipigrp { | ||
| 477 | fsl,pins = <MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b1>; | ||
| 478 | }; | ||
| 479 | |||
| 480 | pinctrl_reg_pcie: reg-pciegrp { | ||
| 481 | fsl,pins = < | ||
| 482 | MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0 | ||
| 483 | >; | ||
| 484 | }; | ||
| 485 | |||
| 486 | pinctrl_reg_uart3: reguart3grp { | ||
| 487 | fsl,pins = < | ||
| 488 | MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0 | ||
| 489 | >; | ||
| 490 | }; | ||
| 491 | |||
| 492 | pinctrl_reg_usb_h1_vbus: usbh1grp { | ||
| 493 | fsl,pins = < | ||
| 494 | MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 | ||
| 495 | >; | ||
| 496 | }; | ||
| 497 | |||
| 498 | pinctrl_reg_usb_otg: reg-usb-otggrp { | ||
| 499 | fsl,pins = < | ||
| 500 | MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0 | ||
| 501 | >; | ||
| 502 | }; | ||
| 503 | |||
| 504 | pinctrl_uart3: uart3grp { | ||
| 505 | fsl,pins = < | ||
| 506 | MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1 | ||
| 507 | MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 | ||
| 508 | MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 | ||
| 509 | MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1 | ||
| 510 | >; | ||
| 511 | }; | ||
| 512 | |||
| 513 | pinctrl_usbotg: usbotggrp { | ||
| 514 | fsl,pins = < | ||
| 515 | MX6QDL_PAD_GPIO_1__USB_OTG_ID 0xd17059 | ||
| 516 | >; | ||
| 517 | }; | ||
| 518 | |||
| 519 | pinctrl_usdhc2: usdhc2grp { | ||
| 520 | fsl,pins = < | ||
| 521 | MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 /* CD */ | ||
| 522 | MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17069 | ||
| 523 | MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10069 | ||
| 524 | MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17069 | ||
| 525 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17069 | ||
| 526 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17069 | ||
| 527 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17069 | ||
| 528 | >; | ||
| 529 | }; | ||
| 530 | |||
| 531 | pinctrl_usdhc2_100mhz: h100-usdhc2-100mhz { | ||
| 532 | fsl,pins = < | ||
| 533 | MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 /* CD */ | ||
| 534 | MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9 | ||
| 535 | MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9 | ||
| 536 | MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 | ||
| 537 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 | ||
| 538 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 | ||
| 539 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 | ||
| 540 | >; | ||
| 541 | }; | ||
| 542 | |||
| 543 | pinctrl_usdhc2_200mhz: h100-usdhc2-200mhz { | ||
| 544 | fsl,pins = < | ||
| 545 | MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 /* CD */ | ||
| 546 | MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9 | ||
| 547 | MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9 | ||
| 548 | MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9 | ||
| 549 | MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9 | ||
| 550 | MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9 | ||
| 551 | MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9 | ||
| 552 | >; | ||
| 553 | }; | ||
| 554 | |||
| 555 | }; | ||
diff --git a/arch/arm/boot/dts/imx6-logicpd-som.dtsi b/arch/arm/boot/dts/imx6-logicpd-som.dtsi new file mode 100644 index 000000000000..7ceae3573248 --- /dev/null +++ b/arch/arm/boot/dts/imx6-logicpd-som.dtsi | |||
| @@ -0,0 +1,365 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2019 Logic PD, Inc. | ||
| 4 | |||
| 5 | #include <dt-bindings/gpio/gpio.h> | ||
| 6 | #include <dt-bindings/input/input.h> | ||
| 7 | |||
| 8 | / { | ||
| 9 | chosen { | ||
| 10 | stdout-path = &uart1; | ||
| 11 | }; | ||
| 12 | |||
| 13 | memory@10000000 { | ||
| 14 | device_type = "memory"; | ||
| 15 | reg = <0x10000000 0x80000000>; | ||
| 16 | }; | ||
| 17 | |||
| 18 | reg_wl18xx_vmmc: regulator-wl18xx { | ||
| 19 | compatible = "regulator-fixed"; | ||
| 20 | regulator-name = "vwl1837"; | ||
| 21 | regulator-min-microvolt = <3300000>; | ||
| 22 | regulator-max-microvolt = <3300000>; | ||
| 23 | gpio = <&gpio7 0 GPIO_ACTIVE_HIGH>; | ||
| 24 | startup-delay-us = <70000>; | ||
| 25 | enable-active-high; | ||
| 26 | }; | ||
| 27 | }; | ||
| 28 | |||
| 29 | &clks { | ||
| 30 | assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, | ||
| 31 | <&clks IMX6QDL_CLK_LDB_DI1_SEL>; | ||
| 32 | assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>, | ||
| 33 | <&clks IMX6QDL_CLK_PLL3_USB_OTG>; | ||
| 34 | }; | ||
| 35 | |||
| 36 | &gpmi { | ||
| 37 | pinctrl-names = "default"; | ||
| 38 | pinctrl-0 = <&pinctrl_gpmi_nand>; | ||
| 39 | nand-on-flash-bbt; | ||
| 40 | status = "okay"; | ||
| 41 | }; | ||
| 42 | |||
| 43 | &i2c3 { | ||
| 44 | clock-frequency = <100000>; | ||
| 45 | pinctrl-names = "default"; | ||
| 46 | pinctrl-0 = <&pinctrl_i2c3>; | ||
| 47 | status = "okay"; | ||
| 48 | |||
| 49 | pfuze100: pmic@8 { | ||
| 50 | compatible = "fsl,pfuze100"; | ||
| 51 | reg = <0x08>; | ||
| 52 | |||
| 53 | regulators { | ||
| 54 | sw1a_reg: sw1ab { | ||
| 55 | regulator-min-microvolt = <725000>; | ||
| 56 | regulator-max-microvolt = <1450000>; | ||
| 57 | regulator-name = "vddcore"; | ||
| 58 | regulator-boot-on; | ||
| 59 | regulator-always-on; | ||
| 60 | regulator-ramp-delay = <6250>; | ||
| 61 | }; | ||
| 62 | |||
| 63 | sw1c_reg: sw1c { | ||
| 64 | regulator-min-microvolt = <725000>; | ||
| 65 | regulator-max-microvolt = <1450000>; | ||
| 66 | regulator-name = "vddsoc"; | ||
| 67 | regulator-boot-on; | ||
| 68 | regulator-always-on; | ||
| 69 | regulator-ramp-delay = <6250>; | ||
| 70 | }; | ||
| 71 | |||
| 72 | sw2_reg: sw2 { | ||
| 73 | regulator-min-microvolt = <3300000>; | ||
| 74 | regulator-max-microvolt = <3300000>; | ||
| 75 | regulator-name = "gen_3v3"; | ||
| 76 | regulator-boot-on; | ||
| 77 | }; | ||
| 78 | |||
| 79 | sw3a_reg: sw3a { | ||
| 80 | regulator-min-microvolt = <1350000>; | ||
| 81 | regulator-max-microvolt = <1350000>; | ||
| 82 | regulator-name = "sw3a_vddr"; | ||
| 83 | regulator-boot-on; | ||
| 84 | regulator-always-on; | ||
| 85 | }; | ||
| 86 | |||
| 87 | sw3b_reg: sw3b { | ||
| 88 | regulator-min-microvolt = <1350000>; | ||
| 89 | regulator-max-microvolt = <1350000>; | ||
| 90 | regulator-name = "sw3b_vddr"; | ||
| 91 | regulator-boot-on; | ||
| 92 | regulator-always-on; | ||
| 93 | }; | ||
| 94 | |||
| 95 | sw4_reg: sw4 { | ||
| 96 | regulator-min-microvolt = <1800000>; | ||
| 97 | regulator-max-microvolt = <3300000>; | ||
| 98 | regulator-name = "gen_rgmii"; | ||
| 99 | }; | ||
| 100 | |||
| 101 | swbst_reg: swbst { | ||
| 102 | regulator-min-microvolt = <5000000>; | ||
| 103 | regulator-max-microvolt = <5150000>; | ||
| 104 | regulator-name = "gen_5v0"; | ||
| 105 | }; | ||
| 106 | |||
| 107 | snvs_reg: vsnvs { | ||
| 108 | regulator-min-microvolt = <1000000>; | ||
| 109 | regulator-max-microvolt = <3000000>; | ||
| 110 | regulator-name = "gen_vsns"; | ||
| 111 | regulator-boot-on; | ||
| 112 | regulator-always-on; | ||
| 113 | }; | ||
| 114 | |||
| 115 | vref_reg: vrefddr { | ||
| 116 | regulator-boot-on; | ||
| 117 | regulator-always-on; | ||
| 118 | }; | ||
| 119 | |||
| 120 | vgen1_reg: vgen1 { | ||
| 121 | regulator-min-microvolt = <1500000>; | ||
| 122 | regulator-max-microvolt = <1500000>; | ||
| 123 | regulator-name = "gen_1v5"; | ||
| 124 | }; | ||
| 125 | |||
| 126 | vgen2_reg: vgen2 { | ||
| 127 | regulator-name = "vgen2"; | ||
| 128 | regulator-min-microvolt = <800000>; | ||
| 129 | regulator-max-microvolt = <1550000>; | ||
| 130 | }; | ||
| 131 | |||
| 132 | vgen3_reg: vgen3 { | ||
| 133 | regulator-name = "gen_vadj_0"; | ||
| 134 | regulator-min-microvolt = <1800000>; | ||
| 135 | regulator-max-microvolt = <3300000>; | ||
| 136 | }; | ||
| 137 | |||
| 138 | vgen4_reg: vgen4 { | ||
| 139 | regulator-name = "gen_1v8"; | ||
| 140 | regulator-min-microvolt = <1800000>; | ||
| 141 | regulator-max-microvolt = <1800000>; | ||
| 142 | regulator-always-on; | ||
| 143 | }; | ||
| 144 | |||
| 145 | vgen5_reg: vgen5 { | ||
| 146 | regulator-name = "gen_vadj_1"; | ||
| 147 | regulator-min-microvolt = <1800000>; | ||
| 148 | regulator-max-microvolt = <3300000>; | ||
| 149 | regulator-always-on; | ||
| 150 | }; | ||
| 151 | |||
| 152 | vgen6_reg: vgen6 { | ||
| 153 | regulator-name = "gen_2v5"; | ||
| 154 | regulator-min-microvolt = <2500000>; | ||
| 155 | regulator-max-microvolt = <2500000>; | ||
| 156 | regulator-always-on; | ||
| 157 | }; | ||
| 158 | |||
| 159 | coin_reg: coin { | ||
| 160 | regulator-min-microvolt = <2500000>; | ||
| 161 | regulator-max-microvolt = <3000000>; | ||
| 162 | regulator-always-on; | ||
| 163 | }; | ||
| 164 | }; | ||
| 165 | }; | ||
| 166 | |||
| 167 | temperature-sensor@49 { | ||
| 168 | compatible = "ti,tmp102"; | ||
| 169 | reg = <0x49>; | ||
| 170 | interrupt-parent = <&gpio6>; | ||
| 171 | interrupts = <15 IRQ_TYPE_LEVEL_LOW>; | ||
| 172 | #thermal-sensor-cells = <1>; | ||
| 173 | }; | ||
| 174 | |||
| 175 | temperature-sensor@4a { | ||
| 176 | compatible = "ti,tmp102"; | ||
| 177 | reg = <0x4a>; | ||
| 178 | pinctrl-names = "default"; | ||
| 179 | pinctrl-0 = <&pinctrl_tempsense>; | ||
| 180 | interrupt-parent = <&gpio6>; | ||
| 181 | interrupts = <15 IRQ_TYPE_LEVEL_LOW>; | ||
| 182 | #thermal-sensor-cells = <1>; | ||
| 183 | }; | ||
| 184 | |||
| 185 | eeprom@51 { | ||
| 186 | compatible = "atmel,24c64"; | ||
| 187 | pagesize = <32>; | ||
| 188 | read-only; /* Manufacturing EEPROM programmed at factory */ | ||
| 189 | reg = <0x51>; | ||
| 190 | }; | ||
| 191 | |||
| 192 | eeprom@52 { | ||
| 193 | compatible = "atmel,24c64"; | ||
| 194 | pagesize = <32>; | ||
| 195 | reg = <0x52>; | ||
| 196 | }; | ||
| 197 | }; | ||
| 198 | |||
| 199 | /* Reroute power feeding the CPU to come from the external PMIC */ | ||
| 200 | ®_arm | ||
| 201 | { | ||
| 202 | vin-supply = <&sw1a_reg>; | ||
| 203 | }; | ||
| 204 | |||
| 205 | ®_soc | ||
| 206 | { | ||
| 207 | vin-supply = <&sw1c_reg>; | ||
| 208 | }; | ||
| 209 | |||
| 210 | &iomuxc { | ||
| 211 | pinctrl-names = "default"; | ||
| 212 | pinctrl-0 = <&pinctrl_hog>; | ||
| 213 | |||
| 214 | pinctrl_gpmi_nand: gpmi-nandgrp { | ||
| 215 | fsl,pins = < | ||
| 216 | MX6QDL_PAD_NANDF_CLE__NAND_CLE 0x0b0b1 | ||
| 217 | MX6QDL_PAD_NANDF_ALE__NAND_ALE 0x0b0b1 | ||
| 218 | MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0x0b0b1 | ||
| 219 | MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0x0b000 | ||
| 220 | MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0x0b0b1 | ||
| 221 | MX6QDL_PAD_SD4_CMD__NAND_RE_B 0x0b0b1 | ||
| 222 | MX6QDL_PAD_SD4_CLK__NAND_WE_B 0x0b0b1 | ||
| 223 | MX6QDL_PAD_NANDF_D0__NAND_DATA00 0x0b0b1 | ||
| 224 | MX6QDL_PAD_NANDF_D1__NAND_DATA01 0x0b0b1 | ||
| 225 | MX6QDL_PAD_NANDF_D2__NAND_DATA02 0x0b0b1 | ||
| 226 | MX6QDL_PAD_NANDF_D3__NAND_DATA03 0x0b0b1 | ||
| 227 | MX6QDL_PAD_NANDF_D4__NAND_DATA04 0x0b0b1 | ||
| 228 | MX6QDL_PAD_NANDF_D5__NAND_DATA05 0x0b0b1 | ||
| 229 | MX6QDL_PAD_NANDF_D6__NAND_DATA06 0x0b0b1 | ||
| 230 | MX6QDL_PAD_NANDF_D7__NAND_DATA07 0x0b0b1 | ||
| 231 | >; | ||
| 232 | }; | ||
| 233 | |||
| 234 | pinctrl_hog: hoggrp { | ||
| 235 | fsl,pins = < /* Enable ARM Debugger */ | ||
| 236 | MX6QDL_PAD_CSI0_MCLK__ARM_TRACE_CTL 0x1b0b0 | ||
| 237 | MX6QDL_PAD_CSI0_PIXCLK__ARM_EVENTO 0x1b0b0 | ||
| 238 | MX6QDL_PAD_CSI0_VSYNC__ARM_TRACE00 0x1b0b0 | ||
| 239 | MX6QDL_PAD_CSI0_DATA_EN__ARM_TRACE_CLK 0x1b0b0 | ||
| 240 | MX6QDL_PAD_CSI0_DAT4__ARM_TRACE01 0x1b0b0 | ||
| 241 | MX6QDL_PAD_CSI0_DAT5__ARM_TRACE02 0x1b0b0 | ||
| 242 | MX6QDL_PAD_CSI0_DAT6__ARM_TRACE03 0x1b0b0 | ||
| 243 | MX6QDL_PAD_CSI0_DAT7__ARM_TRACE04 0x1b0b0 | ||
| 244 | MX6QDL_PAD_CSI0_DAT8__ARM_TRACE05 0x1b0b0 | ||
| 245 | MX6QDL_PAD_CSI0_DAT9__ARM_TRACE06 0x1b0b0 | ||
| 246 | MX6QDL_PAD_CSI0_DAT10__ARM_TRACE07 0x1b0b0 | ||
| 247 | MX6QDL_PAD_CSI0_DAT11__ARM_TRACE08 0x1b0b0 | ||
| 248 | MX6QDL_PAD_CSI0_DAT12__ARM_TRACE09 0x1b0b0 | ||
| 249 | MX6QDL_PAD_CSI0_DAT13__ARM_TRACE10 0x1b0b0 | ||
| 250 | MX6QDL_PAD_CSI0_DAT14__ARM_TRACE11 0x1b0b0 | ||
| 251 | MX6QDL_PAD_CSI0_DAT15__ARM_TRACE12 0x1b0b0 | ||
| 252 | MX6QDL_PAD_CSI0_DAT16__ARM_TRACE13 0x1b0b0 | ||
| 253 | MX6QDL_PAD_CSI0_DAT17__ARM_TRACE14 0x1b0b0 | ||
| 254 | MX6QDL_PAD_CSI0_DAT18__ARM_TRACE15 0x1b0b0 | ||
| 255 | MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 | ||
| 256 | >; | ||
| 257 | }; | ||
| 258 | |||
| 259 | pinctrl_i2c3: i2c3grp { | ||
| 260 | fsl,pins = < | ||
| 261 | MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1 | ||
| 262 | MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1 | ||
| 263 | >; | ||
| 264 | }; | ||
| 265 | |||
| 266 | pinctrl_tempsense: tempsensegrp { | ||
| 267 | fsl,pins = < | ||
| 268 | MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0 | ||
| 269 | >; | ||
| 270 | }; | ||
| 271 | |||
| 272 | pinctrl_uart1: uart1grp { | ||
| 273 | fsl,pins = < | ||
| 274 | MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1 | ||
| 275 | MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1 | ||
| 276 | >; | ||
| 277 | }; | ||
| 278 | |||
| 279 | pinctrl_uart2: uart2grp { | ||
| 280 | fsl,pins = < | ||
| 281 | MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x13059 /* BT_EN */ | ||
| 282 | MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1 | ||
| 283 | MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1 | ||
| 284 | MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1 | ||
| 285 | MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1 | ||
| 286 | >; | ||
| 287 | }; | ||
| 288 | |||
| 289 | pinctrl_usdhc1: usdhc1grp { | ||
| 290 | fsl,pins = < | ||
| 291 | MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170B9 | ||
| 292 | MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100B9 | ||
| 293 | MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170B9 | ||
| 294 | MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170B9 | ||
| 295 | MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170B9 | ||
| 296 | MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170B9 | ||
| 297 | >; | ||
| 298 | }; | ||
| 299 | |||
| 300 | pinctrl_usdhc3: usdhc3grp { | ||
| 301 | fsl,pins = < | ||
| 302 | MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17049 | ||
| 303 | MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10049 | ||
| 304 | MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17049 | ||
| 305 | MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17049 | ||
| 306 | MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17049 | ||
| 307 | MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17049 | ||
| 308 | MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x130b0 /* WL_IRQ */ | ||
| 309 | MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* WLAN_EN */ | ||
| 310 | >; | ||
| 311 | }; | ||
| 312 | }; | ||
| 313 | |||
| 314 | &snvs_poweroff { | ||
| 315 | status = "okay"; | ||
| 316 | }; | ||
| 317 | |||
| 318 | &uart1 { | ||
| 319 | pinctrl-names = "default"; | ||
| 320 | pinctrl-0 = <&pinctrl_uart1>; | ||
| 321 | status = "okay"; | ||
| 322 | }; | ||
| 323 | |||
| 324 | &uart2 { | ||
| 325 | pinctrl-names = "default"; | ||
| 326 | pinctrl-0 = <&pinctrl_uart2>; | ||
| 327 | uart-has-rtscts; | ||
| 328 | status = "okay"; | ||
| 329 | |||
| 330 | bluetooth { | ||
| 331 | compatible = "ti,wl1837-st"; | ||
| 332 | enable-gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>; | ||
| 333 | }; | ||
| 334 | }; | ||
| 335 | |||
| 336 | &usdhc1 { | ||
| 337 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
| 338 | pinctrl-0 = <&pinctrl_usdhc1>; | ||
| 339 | non-removable; | ||
| 340 | keep-power-in-suspend; | ||
| 341 | wakeup-source; | ||
| 342 | vmmc-supply = <&sw2_reg>; | ||
| 343 | status = "okay"; | ||
| 344 | }; | ||
| 345 | |||
| 346 | &usdhc3 { | ||
| 347 | pinctrl-names = "default"; | ||
| 348 | pinctrl-0 = <&pinctrl_usdhc3>; | ||
| 349 | non-removable; | ||
| 350 | cap-power-off-card; | ||
| 351 | keep-power-in-suspend; | ||
| 352 | wakeup-source; | ||
| 353 | vmmc-supply = <®_wl18xx_vmmc>; | ||
| 354 | #address-cells = <1>; | ||
| 355 | #size-cells = <0>; | ||
| 356 | status = "okay"; | ||
| 357 | |||
| 358 | wlcore: wlcore@2 { | ||
| 359 | compatible = "ti,wl1837"; | ||
| 360 | reg = <2>; | ||
| 361 | interrupt-parent = <&gpio7>; | ||
| 362 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; | ||
| 363 | tcxo-clock-frequency = <26000000>; | ||
| 364 | }; | ||
| 365 | }; | ||
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts index d5f7a1703aae..9a5d6c94cca4 100644 --- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts +++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts | |||
| @@ -228,10 +228,11 @@ | |||
| 228 | &weim { | 228 | &weim { |
| 229 | status = "okay"; | 229 | status = "okay"; |
| 230 | 230 | ||
| 231 | /* weim memory map: 32MB on CS0, 32MB on CS1, 32MB on CS2 */ | 231 | /* weim memory map: 32MB on CS0, CS1, CS2 and CS3 */ |
| 232 | ranges = <0 0 0x08000000 0x02000000 | 232 | ranges = <0 0 0x08000000 0x02000000 |
| 233 | 1 0 0x0a000000 0x02000000 | 233 | 1 0 0x0a000000 0x02000000 |
| 234 | 2 0 0x0c000000 0x02000000>; | 234 | 2 0 0x0c000000 0x02000000 |
| 235 | 3 0 0x0e000000 0x02000000>; | ||
| 235 | 236 | ||
| 236 | /* SRAM on Colibri nEXT_CS0 */ | 237 | /* SRAM on Colibri nEXT_CS0 */ |
| 237 | sram@0,0 { | 238 | sram@0,0 { |
diff --git a/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi new file mode 100644 index 000000000000..b715ab0fa1ff --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-yapp4-common.dtsi | |||
| @@ -0,0 +1,595 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2015-2018 Y Soft Corporation, a.s. | ||
| 4 | |||
| 5 | #include <dt-bindings/gpio/gpio.h> | ||
| 6 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 7 | #include <dt-bindings/pwm/pwm.h> | ||
| 8 | |||
| 9 | / { | ||
| 10 | backlight: backlight { | ||
| 11 | compatible = "pwm-backlight"; | ||
| 12 | pwms = <&pwm1 0 500000 PWM_POLARITY_INVERTED>; | ||
| 13 | brightness-levels = <0 32 64 128 255>; | ||
| 14 | default-brightness-level = <32>; | ||
| 15 | num-interpolated-steps = <8>; | ||
| 16 | power-supply = <&sw2_reg>; | ||
| 17 | status = "disabled"; | ||
| 18 | }; | ||
| 19 | |||
| 20 | lcd_display: display { | ||
| 21 | compatible = "fsl,imx-parallel-display"; | ||
| 22 | #address-cells = <1>; | ||
| 23 | #size-cells = <0>; | ||
| 24 | interface-pix-fmt = "rgb24"; | ||
| 25 | pinctrl-names = "default"; | ||
| 26 | pinctrl-0 = <&pinctrl_ipu1>; | ||
| 27 | status = "disabled"; | ||
| 28 | |||
| 29 | port@0 { | ||
| 30 | reg = <0>; | ||
| 31 | |||
| 32 | lcd_display_in: endpoint { | ||
| 33 | remote-endpoint = <&ipu1_di0_disp0>; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 37 | port@1 { | ||
| 38 | reg = <1>; | ||
| 39 | |||
| 40 | lcd_display_out: endpoint { | ||
| 41 | remote-endpoint = <&lcd_panel_in>; | ||
| 42 | }; | ||
| 43 | }; | ||
| 44 | }; | ||
| 45 | |||
| 46 | panel: panel { | ||
| 47 | compatible = "dataimage,scf0700c48ggu18"; | ||
| 48 | power-supply = <&sw2_reg>; | ||
| 49 | status = "disabled"; | ||
| 50 | |||
| 51 | port { | ||
| 52 | lcd_panel_in: endpoint { | ||
| 53 | remote-endpoint = <&lcd_display_out>; | ||
| 54 | }; | ||
| 55 | }; | ||
| 56 | }; | ||
| 57 | |||
| 58 | reg_pcie: regulator-pcie { | ||
| 59 | compatible = "regulator-fixed"; | ||
| 60 | pinctrl-names = "default"; | ||
| 61 | pinctrl-0 = <&pinctrl_pcie_reg>; | ||
| 62 | regulator-name = "MPCIE_3V3"; | ||
| 63 | regulator-min-microvolt = <3300000>; | ||
| 64 | regulator-max-microvolt = <3300000>; | ||
| 65 | gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; | ||
| 66 | enable-active-high; | ||
| 67 | status = "disabled"; | ||
| 68 | }; | ||
| 69 | |||
| 70 | reg_usb_h1_vbus: regulator-usb-h1-vbus { | ||
| 71 | compatible = "regulator-fixed"; | ||
| 72 | pinctrl-names = "default"; | ||
| 73 | pinctrl-0 = <&pinctrl_usbh1_vbus>; | ||
| 74 | regulator-name = "usb_h1_vbus"; | ||
| 75 | regulator-min-microvolt = <5000000>; | ||
| 76 | regulator-max-microvolt = <5000000>; | ||
| 77 | gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>; | ||
| 78 | enable-active-high; | ||
| 79 | status = "disabled"; | ||
| 80 | }; | ||
| 81 | |||
| 82 | reg_usb_otg_vbus: regulator-usb-otg-vbus { | ||
| 83 | compatible = "regulator-fixed"; | ||
| 84 | pinctrl-names = "default"; | ||
| 85 | pinctrl-0 = <&pinctrl_usbotg_vbus>; | ||
| 86 | regulator-name = "usb_otg_vbus"; | ||
| 87 | regulator-min-microvolt = <5000000>; | ||
| 88 | regulator-max-microvolt = <5000000>; | ||
| 89 | gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; | ||
| 90 | enable-active-high; | ||
| 91 | status = "okay"; | ||
| 92 | }; | ||
| 93 | }; | ||
| 94 | |||
| 95 | &fec { | ||
| 96 | pinctrl-names = "default"; | ||
| 97 | pinctrl-0 = <&pinctrl_enet>; | ||
| 98 | phy-mode = "rgmii-id"; | ||
| 99 | phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; | ||
| 100 | phy-reset-duration = <20>; | ||
| 101 | phy-supply = <&sw2_reg>; | ||
| 102 | phy-handle = <ðphy0>; | ||
| 103 | status = "okay"; | ||
| 104 | |||
| 105 | mdio { | ||
| 106 | #address-cells = <1>; | ||
| 107 | #size-cells = <0>; | ||
| 108 | |||
| 109 | phy_port2: phy@1 { | ||
| 110 | reg = <1>; | ||
| 111 | }; | ||
| 112 | |||
| 113 | phy_port3: phy@2 { | ||
| 114 | reg = <2>; | ||
| 115 | }; | ||
| 116 | |||
| 117 | switch@0 { | ||
| 118 | compatible = "qca,qca8334"; | ||
| 119 | reg = <0>; | ||
| 120 | |||
| 121 | switch_ports: ports { | ||
| 122 | #address-cells = <1>; | ||
| 123 | #size-cells = <0>; | ||
| 124 | |||
| 125 | ethphy0: port@0 { | ||
| 126 | reg = <0>; | ||
| 127 | label = "cpu"; | ||
| 128 | phy-mode = "rgmii"; | ||
| 129 | ethernet = <&fec>; | ||
| 130 | |||
| 131 | fixed-link { | ||
| 132 | speed = <1000>; | ||
| 133 | full-duplex; | ||
| 134 | }; | ||
| 135 | }; | ||
| 136 | |||
| 137 | port@2 { | ||
| 138 | reg = <2>; | ||
| 139 | label = "eth2"; | ||
| 140 | phy-handle = <&phy_port2>; | ||
| 141 | }; | ||
| 142 | |||
| 143 | port@3 { | ||
| 144 | reg = <3>; | ||
| 145 | label = "eth1"; | ||
| 146 | phy-handle = <&phy_port3>; | ||
| 147 | }; | ||
| 148 | }; | ||
| 149 | }; | ||
| 150 | }; | ||
| 151 | }; | ||
| 152 | |||
| 153 | &hdmi { | ||
| 154 | pinctrl-names = "default"; | ||
| 155 | pinctrl-0 = <&pinctrl_hdmi_cec>; | ||
| 156 | ddc-i2c-bus = <&i2c2>; | ||
| 157 | status = "disabled"; | ||
| 158 | }; | ||
| 159 | |||
| 160 | &i2c2 { | ||
| 161 | clock-frequency = <100000>; | ||
| 162 | pinctrl-names = "default"; | ||
| 163 | pinctrl-0 = <&pinctrl_i2c2>; | ||
| 164 | status = "okay"; | ||
| 165 | |||
| 166 | pmic@8 { | ||
| 167 | compatible = "fsl,pfuze200"; | ||
| 168 | pinctrl-names = "default"; | ||
| 169 | pinctrl-0 = <&pinctrl_pmic>; | ||
| 170 | reg = <0x8>; | ||
| 171 | |||
| 172 | regulators { | ||
| 173 | sw1a_reg: sw1ab { | ||
| 174 | regulator-min-microvolt = <300000>; | ||
| 175 | regulator-max-microvolt = <1875000>; | ||
| 176 | regulator-boot-on; | ||
| 177 | regulator-always-on; | ||
| 178 | regulator-ramp-delay = <6250>; | ||
| 179 | }; | ||
| 180 | |||
| 181 | sw2_reg: sw2 { | ||
| 182 | regulator-min-microvolt = <800000>; | ||
| 183 | regulator-max-microvolt = <3300000>; | ||
| 184 | regulator-boot-on; | ||
| 185 | regulator-always-on; | ||
| 186 | }; | ||
| 187 | |||
| 188 | sw3a_reg: sw3a { | ||
| 189 | regulator-min-microvolt = <400000>; | ||
| 190 | regulator-max-microvolt = <1975000>; | ||
| 191 | regulator-boot-on; | ||
| 192 | regulator-always-on; | ||
| 193 | }; | ||
| 194 | |||
| 195 | sw3b_reg: sw3b { | ||
| 196 | regulator-min-microvolt = <400000>; | ||
| 197 | regulator-max-microvolt = <1975000>; | ||
| 198 | regulator-boot-on; | ||
| 199 | regulator-always-on; | ||
| 200 | }; | ||
| 201 | |||
| 202 | swbst_reg: swbst { | ||
| 203 | regulator-min-microvolt = <5000000>; | ||
| 204 | regulator-max-microvolt = <5150000>; | ||
| 205 | }; | ||
| 206 | |||
| 207 | vgen1_reg: vgen1 { | ||
| 208 | regulator-min-microvolt = <800000>; | ||
| 209 | regulator-max-microvolt = <1550000>; | ||
| 210 | }; | ||
| 211 | |||
| 212 | vgen2_reg: vgen2 { | ||
| 213 | regulator-min-microvolt = <800000>; | ||
| 214 | regulator-max-microvolt = <1550000>; | ||
| 215 | }; | ||
| 216 | |||
| 217 | vgen3_reg: vgen3 { | ||
| 218 | regulator-min-microvolt = <1800000>; | ||
| 219 | regulator-max-microvolt = <3300000>; | ||
| 220 | regulator-always-on; | ||
| 221 | }; | ||
| 222 | |||
| 223 | vgen4_reg: vgen4 { | ||
| 224 | regulator-min-microvolt = <1800000>; | ||
| 225 | regulator-max-microvolt = <3300000>; | ||
| 226 | regulator-always-on; | ||
| 227 | }; | ||
| 228 | |||
| 229 | vgen5_reg: vgen5 { | ||
| 230 | regulator-min-microvolt = <1800000>; | ||
| 231 | regulator-max-microvolt = <3300000>; | ||
| 232 | regulator-always-on; | ||
| 233 | }; | ||
| 234 | |||
| 235 | vgen6_reg: vgen6 { | ||
| 236 | regulator-min-microvolt = <1800000>; | ||
| 237 | regulator-max-microvolt = <3300000>; | ||
| 238 | regulator-always-on; | ||
| 239 | }; | ||
| 240 | |||
| 241 | vref_reg: vrefddr { | ||
| 242 | regulator-boot-on; | ||
| 243 | regulator-always-on; | ||
| 244 | }; | ||
| 245 | |||
| 246 | vsnvs_reg: vsnvs { | ||
| 247 | regulator-min-microvolt = <1000000>; | ||
| 248 | regulator-max-microvolt = <3000000>; | ||
| 249 | regulator-boot-on; | ||
| 250 | regulator-always-on; | ||
| 251 | }; | ||
| 252 | }; | ||
| 253 | }; | ||
| 254 | |||
| 255 | leds: led-controller@30 { | ||
| 256 | compatible = "ti,lp5562"; | ||
| 257 | reg = <0x30>; | ||
| 258 | clock-mode = /bits/ 8 <1>; | ||
| 259 | status = "disabled"; | ||
| 260 | |||
| 261 | chan0 { | ||
| 262 | chan-name = "R"; | ||
| 263 | led-cur = /bits/ 8 <0x20>; | ||
| 264 | max-cur = /bits/ 8 <0x60>; | ||
| 265 | }; | ||
| 266 | |||
| 267 | chan1 { | ||
| 268 | chan-name = "G"; | ||
| 269 | led-cur = /bits/ 8 <0x20>; | ||
| 270 | max-cur = /bits/ 8 <0x60>; | ||
| 271 | }; | ||
| 272 | |||
| 273 | chan2 { | ||
| 274 | chan-name = "B"; | ||
| 275 | led-cur = /bits/ 8 <0x20>; | ||
| 276 | max-cur = /bits/ 8 <0x60>; | ||
| 277 | }; | ||
| 278 | |||
| 279 | chan3 { | ||
| 280 | chan-name = "W"; | ||
| 281 | led-cur = /bits/ 8 <0x0>; | ||
| 282 | max-cur = /bits/ 8 <0x0>; | ||
| 283 | }; | ||
| 284 | }; | ||
| 285 | |||
| 286 | eeprom@57 { | ||
| 287 | compatible = "atmel,24c128"; | ||
| 288 | reg = <0x57>; | ||
| 289 | pagesize = <64>; | ||
| 290 | status = "okay"; | ||
| 291 | }; | ||
| 292 | |||
| 293 | touchscreen: touchscreen@5c { | ||
| 294 | compatible = "pixcir,pixcir_tangoc"; | ||
| 295 | reg = <0x5c>; | ||
| 296 | pinctrl-0 = <&pinctrl_touch>; | ||
| 297 | interrupt-parent = <&gpio4>; | ||
| 298 | interrupts = <5 IRQ_TYPE_EDGE_FALLING>; | ||
| 299 | attb-gpio = <&gpio4 5 GPIO_ACTIVE_HIGH>; | ||
| 300 | reset-gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>; | ||
| 301 | touchscreen-size-x = <800>; | ||
| 302 | touchscreen-size-y = <480>; | ||
| 303 | status = "disabled"; | ||
| 304 | }; | ||
| 305 | }; | ||
| 306 | |||
| 307 | &i2c3 { | ||
| 308 | clock-frequency = <100000>; | ||
| 309 | pinctrl-names = "default"; | ||
| 310 | pinctrl-0 = <&pinctrl_i2c3>; | ||
| 311 | status = "disabled"; | ||
| 312 | |||
| 313 | oled: oled@3d { | ||
| 314 | compatible = "solomon,ssd1305fb-i2c"; | ||
| 315 | reg = <0x3d>; | ||
| 316 | solomon,height = <64>; | ||
| 317 | solomon,width = <128>; | ||
| 318 | solomon,page-offset = <0>; | ||
| 319 | solomon,prechargep2 = <15>; | ||
| 320 | reset-gpios = <&gpio_oled 1 GPIO_ACTIVE_LOW>; | ||
| 321 | vbat-supply = <&sw2_reg>; | ||
| 322 | status = "disabled"; | ||
| 323 | }; | ||
| 324 | |||
| 325 | gpio_oled: gpio@41 { | ||
| 326 | compatible = "nxp,pca9536"; | ||
| 327 | gpio-controller; | ||
| 328 | #gpio-cells = <2>; | ||
| 329 | reg = <0x41>; | ||
| 330 | vcc-supply = <&sw2_reg>; | ||
| 331 | status = "disabled"; | ||
| 332 | }; | ||
| 333 | }; | ||
| 334 | |||
| 335 | &iomuxc { | ||
| 336 | pinctrl_enet: enetgrp { | ||
| 337 | fsl,pins = < | ||
| 338 | MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b020 | ||
| 339 | MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b020 | ||
| 340 | MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b020 | ||
| 341 | MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b020 | ||
| 342 | MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b020 | ||
| 343 | MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b020 | ||
| 344 | MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b020 | ||
| 345 | MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b020 | ||
| 346 | MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b020 | ||
| 347 | MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b020 | ||
| 348 | MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b020 | ||
| 349 | MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b020 | ||
| 350 | MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b020 | ||
| 351 | MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b020 | ||
| 352 | MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b010 | ||
| 353 | MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x1b010 | ||
| 354 | MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b098 | ||
| 355 | >; | ||
| 356 | }; | ||
| 357 | |||
| 358 | pinctrl_hdmi_cec: hdmicecgrp { | ||
| 359 | fsl,pins = < | ||
| 360 | MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1b898 | ||
| 361 | >; | ||
| 362 | }; | ||
| 363 | |||
| 364 | pinctrl_i2c2: i2c2grp { | ||
| 365 | fsl,pins = < | ||
| 366 | MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b899 | ||
| 367 | MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b899 | ||
| 368 | >; | ||
| 369 | }; | ||
| 370 | |||
| 371 | pinctrl_i2c3: i2c3grp { | ||
| 372 | fsl,pins = < | ||
| 373 | MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b899 | ||
| 374 | MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b899 | ||
| 375 | >; | ||
| 376 | }; | ||
| 377 | |||
| 378 | pinctrl_ipu1: ipu1grp { | ||
| 379 | fsl,pins = < | ||
| 380 | MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x10 | ||
| 381 | MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x10 | ||
| 382 | MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x10 | ||
| 383 | MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x10 | ||
| 384 | MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x10 | ||
| 385 | MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x10 | ||
| 386 | MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x10 | ||
| 387 | MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x10 | ||
| 388 | MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x10 | ||
| 389 | MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x10 | ||
| 390 | MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x10 | ||
| 391 | MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x10 | ||
| 392 | MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x10 | ||
| 393 | MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x10 | ||
| 394 | MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x10 | ||
| 395 | MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x10 | ||
| 396 | MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x10 | ||
| 397 | MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x10 | ||
| 398 | MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x10 | ||
| 399 | MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x10 | ||
| 400 | MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x10 | ||
| 401 | MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x10 | ||
| 402 | MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x10 | ||
| 403 | MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x10 | ||
| 404 | MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x10 | ||
| 405 | MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x10 | ||
| 406 | MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x10 | ||
| 407 | >; | ||
| 408 | }; | ||
| 409 | |||
| 410 | pinctrl_pcie: pciegrp { | ||
| 411 | fsl,pins = < | ||
| 412 | MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b098 | ||
| 413 | MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b098 | ||
| 414 | MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x1b098 | ||
| 415 | >; | ||
| 416 | }; | ||
| 417 | |||
| 418 | pinctrl_pcie_reg: pciereggrp { | ||
| 419 | fsl,pins = < | ||
| 420 | MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b098 | ||
| 421 | >; | ||
| 422 | }; | ||
| 423 | |||
| 424 | pinctrl_pmic: pmicgrp { | ||
| 425 | fsl,pins = < | ||
| 426 | MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x1b098 | ||
| 427 | >; | ||
| 428 | }; | ||
| 429 | |||
| 430 | pinctrl_pwm1: pwm1grp { | ||
| 431 | fsl,pins = < | ||
| 432 | MX6QDL_PAD_GPIO_9__PWM1_OUT 0x8 | ||
| 433 | >; | ||
| 434 | }; | ||
| 435 | |||
| 436 | pinctrl_touch: touchgrp { | ||
| 437 | fsl,pins = < | ||
| 438 | MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b098 | ||
| 439 | MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b098 | ||
| 440 | >; | ||
| 441 | }; | ||
| 442 | |||
| 443 | pinctrl_uart1: uart1grp { | ||
| 444 | fsl,pins = < | ||
| 445 | MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0a8 | ||
| 446 | MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0a8 | ||
| 447 | >; | ||
| 448 | }; | ||
| 449 | |||
| 450 | pinctrl_usbh1: usbh1grp { | ||
| 451 | fsl,pins = < | ||
| 452 | MX6QDL_PAD_EIM_D30__USB_H1_OC 0x1b098 | ||
| 453 | >; | ||
| 454 | }; | ||
| 455 | |||
| 456 | pinctrl_usbh1_vbus: usbh1-vbus { | ||
| 457 | fsl,pins = < | ||
| 458 | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x98 | ||
| 459 | >; | ||
| 460 | }; | ||
| 461 | |||
| 462 | pinctrl_usbotg: usbotggrp { | ||
| 463 | fsl,pins = < | ||
| 464 | MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1b098 | ||
| 465 | MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x1b098 | ||
| 466 | >; | ||
| 467 | }; | ||
| 468 | |||
| 469 | pinctrl_usbotg_vbus: usbotg-vbus { | ||
| 470 | fsl,pins = < | ||
| 471 | MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x98 | ||
| 472 | >; | ||
| 473 | }; | ||
| 474 | |||
| 475 | pinctrl_usdhc3: usdhc3grp { | ||
| 476 | fsl,pins = < | ||
| 477 | MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x1b018 | ||
| 478 | MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x1b018 | ||
| 479 | MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 | ||
| 480 | MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059 | ||
| 481 | MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059 | ||
| 482 | MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 | ||
| 483 | MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 | ||
| 484 | MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 | ||
| 485 | >; | ||
| 486 | }; | ||
| 487 | |||
| 488 | pinctrl_usdhc4: usdhc4grp { | ||
| 489 | fsl,pins = < | ||
| 490 | MX6QDL_PAD_SD4_CMD__SD4_CMD 0x1f069 | ||
| 491 | MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10069 | ||
| 492 | MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17069 | ||
| 493 | MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17069 | ||
| 494 | MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17069 | ||
| 495 | MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17069 | ||
| 496 | MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17069 | ||
| 497 | MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17069 | ||
| 498 | MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17069 | ||
| 499 | MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17069 | ||
| 500 | >; | ||
| 501 | }; | ||
| 502 | |||
| 503 | pinctrl_wdog: wdoggrp { | ||
| 504 | fsl,pins = < | ||
| 505 | MX6QDL_PAD_GPIO_1__WDOG2_B 0x1b0b0 | ||
| 506 | >; | ||
| 507 | }; | ||
| 508 | }; | ||
| 509 | |||
| 510 | &ipu1_di0_disp0 { | ||
| 511 | remote-endpoint = <&lcd_display_in>; | ||
| 512 | }; | ||
| 513 | |||
| 514 | &pcie { | ||
| 515 | pinctrl-names = "default"; | ||
| 516 | pinctrl-0 = <&pinctrl_pcie>; | ||
| 517 | reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>; | ||
| 518 | vpcie-supply = <®_pcie>; | ||
| 519 | status = "disabled"; | ||
| 520 | }; | ||
| 521 | |||
| 522 | &pwm1 { | ||
| 523 | #pwm-cells = <3>; | ||
| 524 | pinctrl-names = "default"; | ||
| 525 | pinctrl-0 = <&pinctrl_pwm1>; | ||
| 526 | status = "disabled"; | ||
| 527 | }; | ||
| 528 | |||
| 529 | &uart1 { | ||
| 530 | pinctrl-names = "default"; | ||
| 531 | pinctrl-0 = <&pinctrl_uart1>; | ||
| 532 | status = "okay"; | ||
| 533 | }; | ||
| 534 | |||
| 535 | &usbh1 { | ||
| 536 | pinctrl-names = "default"; | ||
| 537 | pinctrl-0 = <&pinctrl_usbh1>; | ||
| 538 | vbus-supply = <®_usb_h1_vbus>; | ||
| 539 | status = "disabled"; | ||
| 540 | }; | ||
| 541 | |||
| 542 | &usbotg { | ||
| 543 | pinctrl-names = "default"; | ||
| 544 | pinctrl-0 = <&pinctrl_usbotg>; | ||
| 545 | vbus-supply = <®_usb_otg_vbus>; | ||
| 546 | srp-disable; | ||
| 547 | hnp-disable; | ||
| 548 | adp-disable; | ||
| 549 | status = "okay"; | ||
| 550 | }; | ||
| 551 | |||
| 552 | &usbphy1 { | ||
| 553 | fsl,tx-d-cal = <106>; | ||
| 554 | status = "okay"; | ||
| 555 | }; | ||
| 556 | |||
| 557 | &usbphy2 { | ||
| 558 | fsl,tx-d-cal = <109>; | ||
| 559 | status = "disabled"; | ||
| 560 | }; | ||
| 561 | |||
| 562 | &usdhc3 { | ||
| 563 | pinctrl-names = "default"; | ||
| 564 | pinctrl-0 = <&pinctrl_usdhc3>; | ||
| 565 | bus-width = <4>; | ||
| 566 | cd-gpios = <&gpio7 8 GPIO_ACTIVE_LOW>; | ||
| 567 | wp-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; | ||
| 568 | no-1-8-v; | ||
| 569 | keep-power-in-suspend; | ||
| 570 | wakeup-source; | ||
| 571 | vmmc-supply = <&sw2_reg>; | ||
| 572 | status = "disabled"; | ||
| 573 | }; | ||
| 574 | |||
| 575 | &usdhc4 { | ||
| 576 | pinctrl-names = "default"; | ||
| 577 | pinctrl-0 = <&pinctrl_usdhc4>; | ||
| 578 | bus-width = <8>; | ||
| 579 | non-removable; | ||
| 580 | no-1-8-v; | ||
| 581 | keep-power-in-suspend; | ||
| 582 | vmmc-supply = <&sw2_reg>; | ||
| 583 | status = "okay"; | ||
| 584 | }; | ||
| 585 | |||
| 586 | &wdog1 { | ||
| 587 | status = "disabled"; | ||
| 588 | }; | ||
| 589 | |||
| 590 | &wdog2 { | ||
| 591 | pinctrl-names = "default"; | ||
| 592 | pinctrl-0 = <&pinctrl_wdog>; | ||
| 593 | fsl,ext-reset-output; | ||
| 594 | status = "okay"; | ||
| 595 | }; | ||
diff --git a/arch/arm/boot/dts/imx6dl-yapp4-draco.dts b/arch/arm/boot/dts/imx6dl-yapp4-draco.dts new file mode 100644 index 000000000000..a38c407fd837 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-yapp4-draco.dts | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2015-2018 Y Soft Corporation, a.s. | ||
| 4 | |||
| 5 | /dts-v1/; | ||
| 6 | |||
| 7 | #include "imx6dl.dtsi" | ||
| 8 | #include "imx6dl-yapp4-common.dtsi" | ||
| 9 | |||
| 10 | / { | ||
| 11 | model = "Y Soft IOTA Draco i.MX6Solo board"; | ||
| 12 | compatible = "ysoft,imx6dl-yapp4-draco", "fsl,imx6dl"; | ||
| 13 | |||
| 14 | memory@10000000 { | ||
| 15 | device_type = "memory"; | ||
| 16 | reg = <0x10000000 0x20000000>; | ||
| 17 | }; | ||
| 18 | }; | ||
| 19 | |||
| 20 | &backlight { | ||
| 21 | status = "okay"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | &lcd_display { | ||
| 25 | status = "okay"; | ||
| 26 | }; | ||
| 27 | |||
| 28 | &leds { | ||
| 29 | status = "okay"; | ||
| 30 | }; | ||
| 31 | |||
| 32 | &panel { | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | |||
| 36 | &pwm1 { | ||
| 37 | status = "okay"; | ||
| 38 | }; | ||
| 39 | |||
| 40 | ®_usb_h1_vbus { | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | &touchscreen { | ||
| 45 | status = "okay"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | &usbh1 { | ||
| 49 | status = "okay"; | ||
| 50 | }; | ||
| 51 | |||
| 52 | &usbphy2 { | ||
| 53 | status = "okay"; | ||
| 54 | }; | ||
| 55 | |||
| 56 | &usdhc3 { | ||
| 57 | status = "okay"; | ||
| 58 | }; | ||
diff --git a/arch/arm/boot/dts/imx6dl-yapp4-hydra.dts b/arch/arm/boot/dts/imx6dl-yapp4-hydra.dts new file mode 100644 index 000000000000..f97927064750 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-yapp4-hydra.dts | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2015-2018 Y Soft Corporation, a.s. | ||
| 4 | |||
| 5 | /dts-v1/; | ||
| 6 | |||
| 7 | #include "imx6dl.dtsi" | ||
| 8 | #include "imx6dl-yapp4-common.dtsi" | ||
| 9 | |||
| 10 | / { | ||
| 11 | model = "Y Soft IOTA Hydra i.MX6DualLite board"; | ||
| 12 | compatible = "ysoft,imx6dl-yapp4-hydra", "fsl,imx6dl"; | ||
| 13 | |||
| 14 | memory@10000000 { | ||
| 15 | device_type = "memory"; | ||
| 16 | reg = <0x10000000 0x80000000>; | ||
| 17 | }; | ||
| 18 | }; | ||
| 19 | |||
| 20 | &gpio_oled { | ||
| 21 | status = "okay"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | &hdmi { | ||
| 25 | status = "okay"; | ||
| 26 | }; | ||
| 27 | |||
| 28 | &i2c3 { | ||
| 29 | status = "okay"; | ||
| 30 | }; | ||
| 31 | |||
| 32 | &leds { | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | |||
| 36 | &oled { | ||
| 37 | status = "okay"; | ||
| 38 | }; | ||
| 39 | |||
| 40 | &pcie { | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | ®_pcie { | ||
| 45 | status = "okay"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | &usdhc3 { | ||
| 49 | status = "okay"; | ||
| 50 | }; | ||
diff --git a/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts b/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts new file mode 100644 index 000000000000..0d594e4bd559 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-yapp4-ursa.dts | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2015-2018 Y Soft Corporation, a.s. | ||
| 4 | |||
| 5 | /dts-v1/; | ||
| 6 | |||
| 7 | #include "imx6dl.dtsi" | ||
| 8 | #include "imx6dl-yapp4-common.dtsi" | ||
| 9 | |||
| 10 | / { | ||
| 11 | model = "Y Soft IOTA Ursa i.MX6Solo board"; | ||
| 12 | compatible = "ysoft,imx6dl-yapp4-ursa", "fsl,imx6dl"; | ||
| 13 | |||
| 14 | memory@10000000 { | ||
| 15 | device_type = "memory"; | ||
| 16 | reg = <0x10000000 0x20000000>; | ||
| 17 | }; | ||
| 18 | }; | ||
| 19 | |||
| 20 | &backlight { | ||
| 21 | status = "okay"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | &lcd_display { | ||
| 25 | status = "okay"; | ||
| 26 | }; | ||
| 27 | |||
| 28 | &panel { | ||
| 29 | status = "okay"; | ||
| 30 | }; | ||
| 31 | |||
| 32 | &pwm1 { | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | |||
| 36 | ®_usb_h1_vbus { | ||
| 37 | status = "okay"; | ||
| 38 | }; | ||
| 39 | |||
| 40 | &switch_ports { | ||
| 41 | /delete-node/ port@2; | ||
| 42 | }; | ||
| 43 | |||
| 44 | &touchscreen { | ||
| 45 | status = "okay"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | &usbh1 { | ||
| 49 | status = "okay"; | ||
| 50 | }; | ||
| 51 | |||
| 52 | &usbphy2 { | ||
| 53 | status = "okay"; | ||
| 54 | }; | ||
diff --git a/arch/arm/boot/dts/imx6q-logicpd.dts b/arch/arm/boot/dts/imx6q-logicpd.dts new file mode 100644 index 000000000000..45eb0b7f75f8 --- /dev/null +++ b/arch/arm/boot/dts/imx6q-logicpd.dts | |||
| @@ -0,0 +1,120 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | // | ||
| 3 | // Copyright (C) 2019 Logic PD, Inc. | ||
| 4 | |||
| 5 | /dts-v1/; | ||
| 6 | #include "imx6q.dtsi" | ||
| 7 | #include "imx6-logicpd-som.dtsi" | ||
| 8 | #include "imx6-logicpd-baseboard.dtsi" | ||
| 9 | |||
| 10 | / { | ||
| 11 | model = "Logic PD i.MX6QD SOM-M3"; | ||
| 12 | compatible = "fsl,imx6q"; | ||
| 13 | |||
| 14 | backlight: backlight-lvds { | ||
| 15 | compatible = "pwm-backlight"; | ||
| 16 | pwms = <&pwm3 0 20000>; | ||
| 17 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
| 18 | default-brightness-level = <6>; | ||
| 19 | power-supply = <®_lcd>; | ||
| 20 | }; | ||
| 21 | |||
| 22 | panel-lvds0 { | ||
| 23 | compatible = "okaya,rs800480t-7x0gp"; | ||
| 24 | |||
| 25 | port { | ||
| 26 | panel_in_lvds0: endpoint { | ||
| 27 | remote-endpoint = <&lvds0_out>; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | }; | ||
| 31 | |||
| 32 | reg_lcd: regulator-lcd { | ||
| 33 | pinctrl-names = "default"; | ||
| 34 | pinctrl-0 = <&pinctrl_lcd_reg>; | ||
| 35 | compatible = "regulator-fixed"; | ||
| 36 | regulator-name = "lcd_panel_pwr"; | ||
| 37 | regulator-min-microvolt = <3300000>; | ||
| 38 | regulator-max-microvolt = <3300000>; | ||
| 39 | gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>; | ||
| 40 | enable-active-high; | ||
| 41 | regulator-always-on; | ||
| 42 | vin-supply = <®_3v3>; | ||
| 43 | startup-delay-us = <500000>; | ||
| 44 | }; | ||
| 45 | |||
| 46 | reg_lcd_reset: regulator-lcd-reset { | ||
| 47 | pinctrl-names = "default"; | ||
| 48 | pinctrl-0 = <&pinctrl_lcd_reset>; | ||
| 49 | compatible = "regulator-fixed"; | ||
| 50 | regulator-name = "nLCD_RESET"; | ||
| 51 | regulator-min-microvolt = <3300000>; | ||
| 52 | regulator-max-microvolt = <3300000>; | ||
| 53 | gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; | ||
| 54 | enable-active-high; | ||
| 55 | regulator-always-on; | ||
| 56 | vin-supply = <®_lcd>; | ||
| 57 | }; | ||
| 58 | }; | ||
| 59 | |||
| 60 | &clks { | ||
| 61 | assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, | ||
| 62 | <&clks IMX6QDL_CLK_LDB_DI1_SEL>, | ||
| 63 | <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>, | ||
| 64 | <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>; | ||
| 65 | assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, | ||
| 66 | <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, | ||
| 67 | <&clks IMX6QDL_CLK_PLL2_PFD2_396M>, | ||
| 68 | <&clks IMX6QDL_CLK_PLL2_PFD2_396M>; | ||
| 69 | }; | ||
| 70 | |||
| 71 | &hdmi { | ||
| 72 | ddc-i2c-bus = <&i2c3>; | ||
| 73 | status = "okay"; | ||
| 74 | }; | ||
| 75 | |||
| 76 | &ldb { | ||
| 77 | status = "okay"; | ||
| 78 | |||
| 79 | lvds-channel@0 { | ||
| 80 | fsl,data-mapping = "spwg"; | ||
| 81 | fsl,data-width = <24>; | ||
| 82 | status = "okay"; | ||
| 83 | |||
| 84 | port@4 { | ||
| 85 | reg = <4>; | ||
| 86 | lvds0_out: endpoint { | ||
| 87 | remote-endpoint = <&panel_in_lvds0>; | ||
| 88 | }; | ||
| 89 | }; | ||
| 90 | }; | ||
| 91 | |||
| 92 | }; | ||
| 93 | |||
| 94 | &pwm3 { | ||
| 95 | status = "okay"; | ||
| 96 | }; | ||
| 97 | |||
| 98 | ®_hdmi { | ||
| 99 | regulator-always-on; /* Without this, the level shifter on HDMI doesn't turn on */ | ||
| 100 | }; | ||
| 101 | |||
| 102 | &iomuxc { | ||
| 103 | pinctrl_lcd_reg: lcdreg { | ||
| 104 | fsl,pins = < | ||
| 105 | MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x100b0 /* R_LCD_PANEL_PWR */ | ||
| 106 | >; | ||
| 107 | }; | ||
| 108 | |||
| 109 | pinctrl_lcd_reset: lcdreset { | ||
| 110 | fsl,pins = < | ||
| 111 | MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x100b0 /* LCD_nRESET */ | ||
| 112 | >; | ||
| 113 | }; | ||
| 114 | |||
| 115 | pinctrl_touchscreen: touchscreengrp { | ||
| 116 | fsl,pins = < | ||
| 117 | MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x1b0b0 /* TOUCH_nPINTDAV */ | ||
| 118 | >; | ||
| 119 | }; | ||
| 120 | }; | ||
diff --git a/arch/arm/boot/dts/imx6q-pistachio.dts b/arch/arm/boot/dts/imx6q-pistachio.dts index 5edf858c8b86..a31b17eaf51c 100644 --- a/arch/arm/boot/dts/imx6q-pistachio.dts +++ b/arch/arm/boot/dts/imx6q-pistachio.dts | |||
| @@ -103,7 +103,7 @@ | |||
| 103 | power { | 103 | power { |
| 104 | label = "Power Button"; | 104 | label = "Power Button"; |
| 105 | gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; | 105 | gpios = <&gpio2 12 GPIO_ACTIVE_LOW>; |
| 106 | gpio-key,wakeup; | 106 | wakeup-source; |
| 107 | linux,code = <KEY_POWER>; | 107 | linux,code = <KEY_POWER>; |
| 108 | }; | 108 | }; |
| 109 | }; | 109 | }; |
diff --git a/arch/arm/boot/dts/imx6q-tbs2910.dts b/arch/arm/boot/dts/imx6q-tbs2910.dts index 279b15e9ae2e..2ce8399a10ba 100644 --- a/arch/arm/boot/dts/imx6q-tbs2910.dts +++ b/arch/arm/boot/dts/imx6q-tbs2910.dts | |||
| @@ -1,49 +1,6 @@ | |||
| 1 | /* | 1 | // SPDX-License-Identifier: GPL-2.0+ OR MIT |
| 2 | * Copyright 2014 Soeren Moch <smoch@web.de> | 2 | // |
| 3 | * | 3 | // Copyright 2014 Soeren Moch <smoch@web.de> |
| 4 | * This file is dual-licensed: you can use it either under the terms | ||
| 5 | * of the GPL or the X11 license, at your option. Note that this dual | ||
| 6 | * licensing only applies to this file, and not this project as a | ||
| 7 | * whole. | ||
| 8 | * | ||
| 9 | * a) This file is free software; you can redistribute it and/or | ||
| 10 | * modify it under the terms of the GNU General Public License as | ||
| 11 | * published by the Free Software Foundation; either version 2 of | ||
| 12 | * the License, or (at your option) any later version. | ||
| 13 | * | ||
| 14 | * This file is distributed in the hope that it will be useful, | ||
| 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | * GNU General Public License for more details. | ||
| 18 | * | ||
| 19 | * You should have received a copy of the GNU General Public | ||
| 20 | * License along with this file; if not, write to the Free | ||
| 21 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
| 22 | * MA 02110-1301 USA | ||
| 23 | * | ||
| 24 | * Or, alternatively, | ||
| 25 | * | ||
| 26 | * b) Permission is hereby granted, free of charge, to any person | ||
| 27 | * obtaining a copy of this software and associated documentation | ||
| 28 | * files (the "Software"), to deal in the Software without | ||
| 29 | * restriction, including without limitation the rights to use, | ||
| 30 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
| 31 | * sell copies of the Software, and to permit persons to whom the | ||
| 32 | * Software is furnished to do so, subject to the following | ||
| 33 | * conditions: | ||
| 34 | * | ||
| 35 | * The above copyright notice and this permission notice shall be | ||
| 36 | * included in all copies or substantial portions of the Software. | ||
| 37 | * | ||
| 38 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
| 39 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
| 40 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
| 41 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
| 42 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
| 43 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
| 44 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
| 45 | * OTHER DEALINGS IN THE SOFTWARE. | ||
| 46 | */ | ||
| 47 | 4 | ||
| 48 | /dts-v1/; | 5 | /dts-v1/; |
| 49 | 6 | ||
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi index 8380f1b26826..7c4ad541c3f5 100644 --- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi +++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi | |||
| @@ -332,11 +332,17 @@ | |||
| 332 | id = <0>; | 332 | id = <0>; |
| 333 | blocks = <0x5>; | 333 | blocks = <0x5>; |
| 334 | irq-trigger = <0x1>; | 334 | irq-trigger = <0x1>; |
| 335 | /* 3.25 MHz ADC clock speed */ | ||
| 336 | st,adc-freq = <1>; | ||
| 337 | /* 12-bit ADC */ | ||
| 338 | st,mod-12b = <1>; | ||
| 339 | /* internal ADC reference */ | ||
| 340 | st,ref-sel = <0>; | ||
| 341 | /* ADC converstion time: 80 clocks */ | ||
| 342 | st,sample-time = <4>; | ||
| 335 | 343 | ||
| 336 | stmpe_touchscreen { | 344 | stmpe_touchscreen { |
| 337 | compatible = "st,stmpe-ts"; | 345 | compatible = "st,stmpe-ts"; |
| 338 | /* 3.25 MHz ADC clock speed */ | ||
| 339 | st,adc-freq = <1>; | ||
| 340 | /* 8 sample average control */ | 346 | /* 8 sample average control */ |
| 341 | st,ave-ctrl = <3>; | 347 | st,ave-ctrl = <3>; |
| 342 | /* 7 length fractional part in z */ | 348 | /* 7 length fractional part in z */ |
| @@ -346,17 +352,17 @@ | |||
| 346 | * current limit value | 352 | * current limit value |
| 347 | */ | 353 | */ |
| 348 | st,i-drive = <1>; | 354 | st,i-drive = <1>; |
| 349 | /* 12-bit ADC */ | ||
| 350 | st,mod-12b = <1>; | ||
| 351 | /* internal ADC reference */ | ||
| 352 | st,ref-sel = <0>; | ||
| 353 | /* ADC converstion time: 80 clocks */ | ||
| 354 | st,sample-time = <4>; | ||
| 355 | /* 1 ms panel driver settling time */ | 355 | /* 1 ms panel driver settling time */ |
| 356 | st,settling = <3>; | 356 | st,settling = <3>; |
| 357 | /* 5 ms touch detect interrupt delay */ | 357 | /* 5 ms touch detect interrupt delay */ |
| 358 | st,touch-det-delay = <5>; | 358 | st,touch-det-delay = <5>; |
| 359 | }; | 359 | }; |
| 360 | |||
| 361 | stmpe_adc { | ||
| 362 | compatible = "st,stmpe-adc"; | ||
| 363 | /* forbid to use ADC channels 3-0 (touch) */ | ||
| 364 | st,norequest-mask = <0x0F>; | ||
| 365 | }; | ||
| 360 | }; | 366 | }; |
| 361 | }; | 367 | }; |
| 362 | 368 | ||
| @@ -369,8 +375,8 @@ | |||
| 369 | pinctrl-names = "default", "recovery"; | 375 | pinctrl-names = "default", "recovery"; |
| 370 | pinctrl-0 = <&pinctrl_i2c3>; | 376 | pinctrl-0 = <&pinctrl_i2c3>; |
| 371 | pinctrl-1 = <&pinctrl_i2c3_recovery>; | 377 | pinctrl-1 = <&pinctrl_i2c3_recovery>; |
| 372 | scl-gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>; | 378 | scl-gpios = <&gpio3 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 373 | sda-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>; | 379 | sda-gpios = <&gpio3 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 374 | status = "disabled"; | 380 | status = "disabled"; |
| 375 | }; | 381 | }; |
| 376 | 382 | ||
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi index 87e15e7cb32b..1beac22266ed 100644 --- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi | |||
| @@ -262,11 +262,17 @@ | |||
| 262 | id = <0>; | 262 | id = <0>; |
| 263 | blocks = <0x5>; | 263 | blocks = <0x5>; |
| 264 | irq-trigger = <0x1>; | 264 | irq-trigger = <0x1>; |
| 265 | /* 3.25 MHz ADC clock speed */ | ||
| 266 | st,adc-freq = <1>; | ||
| 267 | /* 12-bit ADC */ | ||
| 268 | st,mod-12b = <1>; | ||
| 269 | /* internal ADC reference */ | ||
| 270 | st,ref-sel = <0>; | ||
| 271 | /* ADC converstion time: 80 clocks */ | ||
| 272 | st,sample-time = <4>; | ||
| 265 | 273 | ||
| 266 | stmpe_touchscreen { | 274 | stmpe_touchscreen { |
| 267 | compatible = "st,stmpe-ts"; | 275 | compatible = "st,stmpe-ts"; |
| 268 | /* 3.25 MHz ADC clock speed */ | ||
| 269 | st,adc-freq = <1>; | ||
| 270 | /* 8 sample average control */ | 276 | /* 8 sample average control */ |
| 271 | st,ave-ctrl = <3>; | 277 | st,ave-ctrl = <3>; |
| 272 | /* 7 length fractional part in z */ | 278 | /* 7 length fractional part in z */ |
| @@ -276,17 +282,17 @@ | |||
| 276 | * current limit value | 282 | * current limit value |
| 277 | */ | 283 | */ |
| 278 | st,i-drive = <1>; | 284 | st,i-drive = <1>; |
| 279 | /* 12-bit ADC */ | ||
| 280 | st,mod-12b = <1>; | ||
| 281 | /* internal ADC reference */ | ||
| 282 | st,ref-sel = <0>; | ||
| 283 | /* ADC converstion time: 80 clocks */ | ||
| 284 | st,sample-time = <4>; | ||
| 285 | /* 1 ms panel driver settling time */ | 285 | /* 1 ms panel driver settling time */ |
| 286 | st,settling = <3>; | 286 | st,settling = <3>; |
| 287 | /* 5 ms touch detect interrupt delay */ | 287 | /* 5 ms touch detect interrupt delay */ |
| 288 | st,touch-det-delay = <5>; | 288 | st,touch-det-delay = <5>; |
| 289 | }; | 289 | }; |
| 290 | |||
| 291 | stmpe_adc { | ||
| 292 | compatible = "st,stmpe-adc"; | ||
| 293 | /* forbid to use ADC channels 3-0 (touch) */ | ||
| 294 | st,norequest-mask = <0x0F>; | ||
| 295 | }; | ||
| 290 | }; | 296 | }; |
| 291 | }; | 297 | }; |
| 292 | 298 | ||
| @@ -298,8 +304,8 @@ | |||
| 298 | pinctrl-names = "default", "recovery"; | 304 | pinctrl-names = "default", "recovery"; |
| 299 | pinctrl-0 = <&pinctrl_i2c3>; | 305 | pinctrl-0 = <&pinctrl_i2c3>; |
| 300 | pinctrl-1 = <&pinctrl_i2c3_recovery>; | 306 | pinctrl-1 = <&pinctrl_i2c3_recovery>; |
| 301 | scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>; | 307 | scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 302 | sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; | 308 | sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 303 | status = "disabled"; | 309 | status = "disabled"; |
| 304 | }; | 310 | }; |
| 305 | 311 | ||
diff --git a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi index 1b50b01e9bac..433bf09a1954 100644 --- a/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi +++ b/arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | |||
| @@ -89,10 +89,23 @@ | |||
| 89 | &fec { | 89 | &fec { |
| 90 | pinctrl-names = "default"; | 90 | pinctrl-names = "default"; |
| 91 | pinctrl-0 = <&pinctrl_enet>; | 91 | pinctrl-0 = <&pinctrl_enet>; |
| 92 | phy-handle = <ðphy>; | ||
| 92 | phy-mode = "rgmii"; | 93 | phy-mode = "rgmii"; |
| 93 | phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; | 94 | phy-reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; |
| 94 | phy-supply = <&vdd_eth_io_reg>; | 95 | phy-supply = <&vdd_eth_io_reg>; |
| 95 | status = "disabled"; | 96 | status = "disabled"; |
| 97 | |||
| 98 | fec_mdio: mdio { | ||
| 99 | #address-cells = <1>; | ||
| 100 | #size-cells = <0>; | ||
| 101 | |||
| 102 | ethphy: ethernet-phy@0 { | ||
| 103 | compatible = "ethernet-phy-ieee802.3-c22"; | ||
| 104 | reg = <0>; | ||
| 105 | txc-skew-ps = <1680>; | ||
| 106 | rxc-skew-ps = <1860>; | ||
| 107 | }; | ||
| 108 | }; | ||
| 96 | }; | 109 | }; |
| 97 | 110 | ||
| 98 | &gpmi { | 111 | &gpmi { |
| @@ -117,6 +130,7 @@ | |||
| 117 | reg = <0x58>; | 130 | reg = <0x58>; |
| 118 | interrupt-parent = <&gpio2>; | 131 | interrupt-parent = <&gpio2>; |
| 119 | interrupts = <9 IRQ_TYPE_LEVEL_LOW>; /* active-low GPIO2_9 */ | 132 | interrupts = <9 IRQ_TYPE_LEVEL_LOW>; /* active-low GPIO2_9 */ |
| 133 | interrupt-controller; | ||
| 120 | 134 | ||
| 121 | regulators { | 135 | regulators { |
| 122 | vddcore_reg: bcore1 { | 136 | vddcore_reg: bcore1 { |
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi index 8930aec6464c..a0705066ccba 100644 --- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi +++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi | |||
| @@ -64,7 +64,6 @@ | |||
| 64 | regulator-max-microvolt = <3300000>; | 64 | regulator-max-microvolt = <3300000>; |
| 65 | gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; | 65 | gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; |
| 66 | enable-active-high; | 66 | enable-active-high; |
| 67 | regulator-always-on; | ||
| 68 | }; | 67 | }; |
| 69 | 68 | ||
| 70 | gpio-keys { | 69 | gpio-keys { |
| @@ -250,6 +249,8 @@ | |||
| 250 | pinctrl-0 = <&pinctrl_i2c1_mma8451_int>; | 249 | pinctrl-0 = <&pinctrl_i2c1_mma8451_int>; |
| 251 | interrupt-parent = <&gpio1>; | 250 | interrupt-parent = <&gpio1>; |
| 252 | interrupts = <18 IRQ_TYPE_LEVEL_LOW>; | 251 | interrupts = <18 IRQ_TYPE_LEVEL_LOW>; |
| 252 | vdd-supply = <®_sensors>; | ||
| 253 | vddio-supply = <®_sensors>; | ||
| 253 | }; | 254 | }; |
| 254 | 255 | ||
| 255 | ov5642: camera@3c { | 256 | ov5642: camera@3c { |
| @@ -440,6 +441,8 @@ | |||
| 440 | pinctrl-0 = <&pinctrl_i2c3_mag3110_int>; | 441 | pinctrl-0 = <&pinctrl_i2c3_mag3110_int>; |
| 441 | interrupt-parent = <&gpio3>; | 442 | interrupt-parent = <&gpio3>; |
| 442 | interrupts = <16 IRQ_TYPE_EDGE_RISING>; | 443 | interrupts = <16 IRQ_TYPE_EDGE_RISING>; |
| 444 | vdd-supply = <®_sensors>; | ||
| 445 | vddio-supply = <®_sensors>; | ||
| 443 | }; | 446 | }; |
| 444 | 447 | ||
| 445 | light-sensor@44 { | 448 | light-sensor@44 { |
| @@ -449,6 +452,7 @@ | |||
| 449 | pinctrl-0 = <&pinctrl_i2c3_isl29023_int>; | 452 | pinctrl-0 = <&pinctrl_i2c3_isl29023_int>; |
| 450 | interrupt-parent = <&gpio3>; | 453 | interrupt-parent = <&gpio3>; |
| 451 | interrupts = <9 IRQ_TYPE_EDGE_FALLING>; | 454 | interrupts = <9 IRQ_TYPE_EDGE_FALLING>; |
| 455 | vcc-supply = <®_sensors>; | ||
| 452 | }; | 456 | }; |
| 453 | }; | 457 | }; |
| 454 | 458 | ||
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index e7524e73efb4..4b4813f176cd 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi | |||
| @@ -338,7 +338,7 @@ | |||
| 338 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; | 338 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; |
| 339 | reg = <0x02080000 0x4000>; | 339 | reg = <0x02080000 0x4000>; |
| 340 | interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>; | 340 | interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>; |
| 341 | clocks = <&clks IMX6SL_CLK_PWM1>, | 341 | clocks = <&clks IMX6SL_CLK_PERCLK>, |
| 342 | <&clks IMX6SL_CLK_PWM1>; | 342 | <&clks IMX6SL_CLK_PWM1>; |
| 343 | clock-names = "ipg", "per"; | 343 | clock-names = "ipg", "per"; |
| 344 | }; | 344 | }; |
| @@ -348,7 +348,7 @@ | |||
| 348 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; | 348 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; |
| 349 | reg = <0x02084000 0x4000>; | 349 | reg = <0x02084000 0x4000>; |
| 350 | interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>; | 350 | interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>; |
| 351 | clocks = <&clks IMX6SL_CLK_PWM2>, | 351 | clocks = <&clks IMX6SL_CLK_PERCLK>, |
| 352 | <&clks IMX6SL_CLK_PWM2>; | 352 | <&clks IMX6SL_CLK_PWM2>; |
| 353 | clock-names = "ipg", "per"; | 353 | clock-names = "ipg", "per"; |
| 354 | }; | 354 | }; |
| @@ -358,7 +358,7 @@ | |||
| 358 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; | 358 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; |
| 359 | reg = <0x02088000 0x4000>; | 359 | reg = <0x02088000 0x4000>; |
| 360 | interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>; | 360 | interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>; |
| 361 | clocks = <&clks IMX6SL_CLK_PWM3>, | 361 | clocks = <&clks IMX6SL_CLK_PERCLK>, |
| 362 | <&clks IMX6SL_CLK_PWM3>; | 362 | <&clks IMX6SL_CLK_PWM3>; |
| 363 | clock-names = "ipg", "per"; | 363 | clock-names = "ipg", "per"; |
| 364 | }; | 364 | }; |
| @@ -368,7 +368,7 @@ | |||
| 368 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; | 368 | compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm"; |
| 369 | reg = <0x0208c000 0x4000>; | 369 | reg = <0x0208c000 0x4000>; |
| 370 | interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; | 370 | interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; |
| 371 | clocks = <&clks IMX6SL_CLK_PWM4>, | 371 | clocks = <&clks IMX6SL_CLK_PERCLK>, |
| 372 | <&clks IMX6SL_CLK_PWM4>; | 372 | <&clks IMX6SL_CLK_PWM4>; |
| 373 | clock-names = "ipg", "per"; | 373 | clock-names = "ipg", "per"; |
| 374 | }; | 374 | }; |
diff --git a/arch/arm/boot/dts/imx6sll-evk.dts b/arch/arm/boot/dts/imx6sll-evk.dts index d8163705363e..4a31a415f88e 100644 --- a/arch/arm/boot/dts/imx6sll-evk.dts +++ b/arch/arm/boot/dts/imx6sll-evk.dts | |||
| @@ -309,7 +309,7 @@ | |||
| 309 | pinctrl-2 = <&pinctrl_usdhc3_200mhz>; | 309 | pinctrl-2 = <&pinctrl_usdhc3_200mhz>; |
| 310 | cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>; | 310 | cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>; |
| 311 | keep-power-in-suspend; | 311 | keep-power-in-suspend; |
| 312 | enable-sdio-wakeup; | 312 | wakeup-source; |
| 313 | vmmc-supply = <®_sd3_vmmc>; | 313 | vmmc-supply = <®_sd3_vmmc>; |
| 314 | status = "okay"; | 314 | status = "okay"; |
| 315 | }; | 315 | }; |
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi index 272ff6133ec1..5b16e65f7696 100644 --- a/arch/arm/boot/dts/imx6sx.dtsi +++ b/arch/arm/boot/dts/imx6sx.dtsi | |||
| @@ -467,7 +467,7 @@ | |||
| 467 | }; | 467 | }; |
| 468 | 468 | ||
| 469 | gpt: gpt@2098000 { | 469 | gpt: gpt@2098000 { |
| 470 | compatible = "fsl,imx6sx-gpt", "fsl,imx31-gpt"; | 470 | compatible = "fsl,imx6sx-gpt", "fsl,imx6dl-gpt"; |
| 471 | reg = <0x02098000 0x4000>; | 471 | reg = <0x02098000 0x4000>; |
| 472 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; | 472 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; |
| 473 | clocks = <&clks IMX6SX_CLK_GPT_BUS>, | 473 | clocks = <&clks IMX6SX_CLK_GPT_BUS>, |
| @@ -785,6 +785,18 @@ | |||
| 785 | clocks = <&clks IMX6SX_CLK_GPU>; | 785 | clocks = <&clks IMX6SX_CLK_GPU>; |
| 786 | }; | 786 | }; |
| 787 | 787 | ||
| 788 | pd_disp: power-domain@2 { | ||
| 789 | reg = <2>; | ||
| 790 | #power-domain-cells = <0>; | ||
| 791 | clocks = <&clks IMX6SX_CLK_PXP_AXI>, | ||
| 792 | <&clks IMX6SX_CLK_DISPLAY_AXI>, | ||
| 793 | <&clks IMX6SX_CLK_LCDIF1_PIX>, | ||
| 794 | <&clks IMX6SX_CLK_LCDIF_APB>, | ||
| 795 | <&clks IMX6SX_CLK_LCDIF2_PIX>, | ||
| 796 | <&clks IMX6SX_CLK_CSI>, | ||
| 797 | <&clks IMX6SX_CLK_VADC>; | ||
| 798 | }; | ||
| 799 | |||
| 788 | pd_pci: power-domain@3 { | 800 | pd_pci: power-domain@3 { |
| 789 | reg = <3>; | 801 | reg = <3>; |
| 790 | #power-domain-cells = <0>; | 802 | #power-domain-cells = <0>; |
| @@ -1205,6 +1217,7 @@ | |||
| 1205 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | 1217 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; |
| 1206 | clocks = <&clks IMX6SX_CLK_PXP_AXI>; | 1218 | clocks = <&clks IMX6SX_CLK_PXP_AXI>; |
| 1207 | clock-names = "axi"; | 1219 | clock-names = "axi"; |
| 1220 | power-domains = <&pd_disp>; | ||
| 1208 | status = "disabled"; | 1221 | status = "disabled"; |
| 1209 | }; | 1222 | }; |
| 1210 | 1223 | ||
| @@ -1226,6 +1239,7 @@ | |||
| 1226 | <&clks IMX6SX_CLK_LCDIF_APB>, | 1239 | <&clks IMX6SX_CLK_LCDIF_APB>, |
| 1227 | <&clks IMX6SX_CLK_DISPLAY_AXI>; | 1240 | <&clks IMX6SX_CLK_DISPLAY_AXI>; |
| 1228 | clock-names = "pix", "axi", "disp_axi"; | 1241 | clock-names = "pix", "axi", "disp_axi"; |
| 1242 | power-domains = <&pd_disp>; | ||
| 1229 | status = "disabled"; | 1243 | status = "disabled"; |
| 1230 | }; | 1244 | }; |
| 1231 | 1245 | ||
| @@ -1237,6 +1251,7 @@ | |||
| 1237 | <&clks IMX6SX_CLK_LCDIF_APB>, | 1251 | <&clks IMX6SX_CLK_LCDIF_APB>, |
| 1238 | <&clks IMX6SX_CLK_DISPLAY_AXI>; | 1252 | <&clks IMX6SX_CLK_DISPLAY_AXI>; |
| 1239 | clock-names = "pix", "axi", "disp_axi"; | 1253 | clock-names = "pix", "axi", "disp_axi"; |
| 1254 | power-domains = <&pd_disp>; | ||
| 1240 | status = "disabled"; | 1255 | status = "disabled"; |
| 1241 | }; | 1256 | }; |
| 1242 | 1257 | ||
| @@ -1246,6 +1261,7 @@ | |||
| 1246 | clocks = <&clks IMX6SX_CLK_VADC>, | 1261 | clocks = <&clks IMX6SX_CLK_VADC>, |
| 1247 | <&clks IMX6SX_CLK_CSI>; | 1262 | <&clks IMX6SX_CLK_CSI>; |
| 1248 | clock-names = "vadc", "csi"; | 1263 | clock-names = "vadc", "csi"; |
| 1264 | power-domains = <&pd_disp>; | ||
| 1249 | status = "disabled"; | 1265 | status = "disabled"; |
| 1250 | }; | 1266 | }; |
| 1251 | }; | 1267 | }; |
| @@ -1370,7 +1386,8 @@ | |||
| 1370 | <&clks IMX6SX_CLK_PCIE_REF_125M>, | 1386 | <&clks IMX6SX_CLK_PCIE_REF_125M>, |
| 1371 | <&clks IMX6SX_CLK_DISPLAY_AXI>; | 1387 | <&clks IMX6SX_CLK_DISPLAY_AXI>; |
| 1372 | clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_inbound_axi"; | 1388 | clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_inbound_axi"; |
| 1373 | power-domains = <&pd_pci>; | 1389 | power-domains = <&pd_disp>, <&pd_pci>; |
| 1390 | power-domain-names = "pcie", "pcie_phy"; | ||
| 1374 | status = "disabled"; | 1391 | status = "disabled"; |
| 1375 | }; | 1392 | }; |
| 1376 | }; | 1393 | }; |
diff --git a/arch/arm/boot/dts/imx6ul-phytec-pcl063.dtsi b/arch/arm/boot/dts/imx6ul-phytec-pcl063.dtsi new file mode 100644 index 000000000000..fc2997449b49 --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-phytec-pcl063.dtsi | |||
| @@ -0,0 +1,148 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2016 PHYTEC Messtechnik GmbH | ||
| 4 | * Author: Christian Hemp <c.hemp@phytec.de> | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <dt-bindings/gpio/gpio.h> | ||
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 9 | #include <dt-bindings/pwm/pwm.h> | ||
| 10 | #include "imx6ul.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | model = "Phytec phyCORE i.MX6 UltraLite"; | ||
| 14 | compatible = "phytec,imx6ul-pcl063", "fsl,imx6ul"; | ||
| 15 | |||
| 16 | chosen { | ||
| 17 | stdout-path = &uart1; | ||
| 18 | }; | ||
| 19 | |||
| 20 | /* | ||
| 21 | * Set the minimum memory size here and | ||
| 22 | * let the bootloader set the real size. | ||
| 23 | */ | ||
| 24 | memory { | ||
| 25 | device_type = "memory"; | ||
| 26 | reg = <0x80000000 0x8000000>; | ||
| 27 | }; | ||
| 28 | |||
| 29 | gpio_leds_som: leds { | ||
| 30 | pinctrl-names = "default"; | ||
| 31 | pinctrl-0 = <&pinctrl_gpioleds_som>; | ||
| 32 | compatible = "gpio-leds"; | ||
| 33 | |||
| 34 | led_green { | ||
| 35 | label = "phycore:green"; | ||
| 36 | gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>; | ||
| 37 | linux,default-trigger = "heartbeat"; | ||
| 38 | }; | ||
| 39 | }; | ||
| 40 | }; | ||
| 41 | |||
| 42 | &fec1 { | ||
| 43 | pinctrl-names = "default"; | ||
| 44 | pinctrl-0 = <&pinctrl_enet1>; | ||
| 45 | phy-mode = "rmii"; | ||
| 46 | phy-handle = <ðphy0>; | ||
| 47 | status = "okay"; | ||
| 48 | |||
| 49 | mdio: mdio { | ||
| 50 | #address-cells = <1>; | ||
| 51 | #size-cells = <0>; | ||
| 52 | |||
| 53 | ethphy0: ethernet-phy@1 { | ||
| 54 | reg = <1>; | ||
| 55 | interrupt-parent = <&gpio1>; | ||
| 56 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | ||
| 57 | micrel,led-mode = <1>; | ||
| 58 | clocks = <&clks IMX6UL_CLK_ENET_REF>; | ||
| 59 | clock-names = "rmii-ref"; | ||
| 60 | }; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | |||
| 64 | &gpmi { | ||
| 65 | pinctrl-names = "default"; | ||
| 66 | pinctrl-0 = <&pinctrl_gpmi_nand>; | ||
| 67 | nand-on-flash-bbt; | ||
| 68 | status = "okay"; | ||
| 69 | }; | ||
| 70 | |||
| 71 | &i2c1 { | ||
| 72 | pinctrl-names = "default"; | ||
| 73 | pinctrl-0 =<&pinctrl_i2c1>; | ||
| 74 | clock-frequency = <100000>; | ||
| 75 | status = "okay"; | ||
| 76 | |||
| 77 | eeprom@52 { | ||
| 78 | compatible = "catalyst,24c32", "atmel,24c32"; | ||
| 79 | reg = <0x52>; | ||
| 80 | }; | ||
| 81 | }; | ||
| 82 | |||
| 83 | &snvs_poweroff { | ||
| 84 | status = "okay"; | ||
| 85 | }; | ||
| 86 | |||
| 87 | &uart1 { | ||
| 88 | pinctrl-names = "default"; | ||
| 89 | pinctrl-0 = <&pinctrl_uart1>; | ||
| 90 | status = "okay"; | ||
| 91 | }; | ||
| 92 | |||
| 93 | &iomuxc { | ||
| 94 | pinctrl_enet1: enet1grp { | ||
| 95 | fsl,pins = < | ||
| 96 | MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0 | ||
| 97 | MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 | ||
| 98 | MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 | ||
| 99 | MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 | ||
| 100 | MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 | ||
| 101 | MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 | ||
| 102 | MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 | ||
| 103 | MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 | ||
| 104 | MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 | ||
| 105 | MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 | ||
| 106 | MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x17059 | ||
| 107 | >; | ||
| 108 | }; | ||
| 109 | |||
| 110 | pinctrl_gpioleds_som: gpioledssomgrp { | ||
| 111 | fsl,pins = <MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x0b0b0>; | ||
| 112 | }; | ||
| 113 | |||
| 114 | pinctrl_gpmi_nand: gpminandgrp { | ||
| 115 | fsl,pins = < | ||
| 116 | MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0x0b0b1 | ||
| 117 | MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0x0b0b1 | ||
| 118 | MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0x0b0b1 | ||
| 119 | MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x0b000 | ||
| 120 | MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0x0b0b1 | ||
| 121 | MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0x0b0b1 | ||
| 122 | MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0x0b0b1 | ||
| 123 | MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0x0b0b1 | ||
| 124 | MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0x0b0b1 | ||
| 125 | MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0x0b0b1 | ||
| 126 | MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0x0b0b1 | ||
| 127 | MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0x0b0b1 | ||
| 128 | MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0x0b0b1 | ||
| 129 | MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0x0b0b1 | ||
| 130 | MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0x0b0b1 | ||
| 131 | >; | ||
| 132 | }; | ||
| 133 | |||
| 134 | pinctrl_i2c1: i2cgrp { | ||
| 135 | fsl,pins = < | ||
| 136 | MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0 | ||
| 137 | MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0 | ||
| 138 | >; | ||
| 139 | }; | ||
| 140 | |||
| 141 | pinctrl_uart1: uart1grp { | ||
| 142 | fsl,pins = < | ||
| 143 | MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 | ||
| 144 | MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 | ||
| 145 | >; | ||
| 146 | }; | ||
| 147 | |||
| 148 | }; | ||
diff --git a/arch/arm/boot/dts/imx6ul-phytec-peb-eval-01.dtsi b/arch/arm/boot/dts/imx6ul-phytec-peb-eval-01.dtsi new file mode 100644 index 000000000000..e2f38f39a6ad --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-phytec-peb-eval-01.dtsi | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2016 PHYTEC Messtechnik | ||
| 4 | * Author: Christian Hemp <c.hemp@phytec.de> | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <dt-bindings/input/input.h> | ||
| 8 | |||
| 9 | / { | ||
| 10 | gpio_keys: gpio-keys { | ||
| 11 | compatible = "gpio-key"; | ||
| 12 | pinctrl-names = "default"; | ||
| 13 | pinctrl-0 = <&pinctrl_gpio_keys>; | ||
| 14 | status = "disabled"; | ||
| 15 | |||
| 16 | power { | ||
| 17 | label = "Power Button"; | ||
| 18 | gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; | ||
| 19 | linux,code = <KEY_POWER>; | ||
| 20 | wakeup-source; | ||
| 21 | }; | ||
| 22 | }; | ||
| 23 | |||
| 24 | user_leds: leds { | ||
| 25 | compatible = "gpio-leds"; | ||
| 26 | pinctrl-names = "default"; | ||
| 27 | pinctrl-0 = <&pinctrl_user_leds>; | ||
| 28 | status = "disabled"; | ||
| 29 | |||
| 30 | led_yellow { | ||
| 31 | gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; | ||
| 32 | linux,default-trigger = "default-on"; | ||
| 33 | }; | ||
| 34 | |||
| 35 | led_red { | ||
| 36 | gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; | ||
| 37 | linux,default-trigger = "default-on"; | ||
| 38 | }; | ||
| 39 | }; | ||
| 40 | }; | ||
| 41 | |||
| 42 | &iomuxc { | ||
| 43 | pinctrl_gpio_keys: gpio_keysgrp { | ||
| 44 | fsl,pins = < | ||
| 45 | MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x79 | ||
| 46 | >; | ||
| 47 | }; | ||
| 48 | |||
| 49 | pinctrl_user_leds: user_ledsgrp { | ||
| 50 | fsl,pins = < | ||
| 51 | MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x79 | ||
| 52 | MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x79 | ||
| 53 | >; | ||
| 54 | }; | ||
| 55 | }; | ||
diff --git a/arch/arm/boot/dts/imx6ul-phytec-phyboard-segin-full.dts b/arch/arm/boot/dts/imx6ul-phytec-phyboard-segin-full.dts new file mode 100644 index 000000000000..b6a1407a9d44 --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-phytec-phyboard-segin-full.dts | |||
| @@ -0,0 +1,89 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2016 PHYTEC Messtechnik GmbH | ||
| 4 | * Author: Christian Hemp <c.hemp@phytec.de> | ||
| 5 | */ | ||
| 6 | |||
| 7 | /dts-v1/; | ||
| 8 | #include "imx6ul-phytec-pcl063.dtsi" | ||
| 9 | #include "imx6ul-phytec-phyboard-segin.dtsi" | ||
| 10 | #include "imx6ul-phytec-peb-eval-01.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | model = "Phytec phyBOARD-Segin i.MX6 UltraLite Full Featured"; | ||
| 14 | compatible = "phytec,imx6ul-pbacd10", "phytec,imx6ul-pcl063", "fsl,imx6ul"; | ||
| 15 | }; | ||
| 16 | |||
| 17 | &adc1 { | ||
| 18 | status = "okay"; | ||
| 19 | }; | ||
| 20 | |||
| 21 | &can1 { | ||
| 22 | status = "okay"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | &tlv320 { | ||
| 26 | status = "okay"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | &ecspi3 { | ||
| 30 | pinctrl-names = "default"; | ||
| 31 | pinctrl-0 = <&pinctrl_ecspi3>; | ||
| 32 | cs-gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>; | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | |||
| 36 | &fec2 { | ||
| 37 | status = "okay"; | ||
| 38 | }; | ||
| 39 | |||
| 40 | &i2c_rtc { | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | ®_can1_en { | ||
| 45 | status = "okay"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | ®_sound_1v8 { | ||
| 49 | status = "okay"; | ||
| 50 | }; | ||
| 51 | |||
| 52 | ®_sound_3v3 { | ||
| 53 | status = "okay"; | ||
| 54 | }; | ||
| 55 | |||
| 56 | &sai2 { | ||
| 57 | status = "okay"; | ||
| 58 | }; | ||
| 59 | |||
| 60 | &sound { | ||
| 61 | status = "okay"; | ||
| 62 | }; | ||
| 63 | |||
| 64 | &uart5 { | ||
| 65 | status = "okay"; | ||
| 66 | }; | ||
| 67 | |||
| 68 | &usbotg1 { | ||
| 69 | status = "okay"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | &usbotg2 { | ||
| 73 | status = "okay"; | ||
| 74 | }; | ||
| 75 | |||
| 76 | &usdhc1 { | ||
| 77 | status = "okay"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | &iomuxc { | ||
| 81 | pinctrl_ecspi3: ecspi3grp { | ||
| 82 | fsl,pins = < | ||
| 83 | MX6UL_PAD_UART2_RTS_B__ECSPI3_MISO 0x10b0 | ||
| 84 | MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI 0x10b0 | ||
| 85 | MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK 0x10b0 | ||
| 86 | MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x10b0 | ||
| 87 | >; | ||
| 88 | }; | ||
| 89 | }; | ||
diff --git a/arch/arm/boot/dts/imx6ul-phytec-phyboard-segin.dtsi b/arch/arm/boot/dts/imx6ul-phytec-phyboard-segin.dtsi new file mode 100644 index 000000000000..7bf439a77d2c --- /dev/null +++ b/arch/arm/boot/dts/imx6ul-phytec-phyboard-segin.dtsi | |||
| @@ -0,0 +1,329 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2016 PHYTEC Messtechnik GmbH | ||
| 4 | * Author: Christian Hemp <c.hemp@phytec.de> | ||
| 5 | */ | ||
| 6 | |||
| 7 | / { | ||
| 8 | model = "Phytec phyBOARD-Segin i.MX6 UltraLite"; | ||
| 9 | compatible = "phytec,imx6ul-pbacd-10", "phytec,imx6ul-pcl063", "fsl,imx6ul"; | ||
| 10 | |||
| 11 | aliases { | ||
| 12 | rtc0 = &i2c_rtc; | ||
| 13 | rtc1 = &snvs_rtc; | ||
| 14 | }; | ||
| 15 | |||
| 16 | reg_sound_1v8: regulator-1v8 { | ||
| 17 | compatible = "regulator-fixed"; | ||
| 18 | regulator-name = "i2s-audio-1v8"; | ||
| 19 | regulator-min-microvolt = <1800000>; | ||
| 20 | regulator-max-microvolt = <1800000>; | ||
| 21 | status = "disabled"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | reg_sound_3v3: regulator-3v3 { | ||
| 25 | compatible = "regulator-fixed"; | ||
| 26 | regulator-name = "i2s-audio-3v3"; | ||
| 27 | regulator-min-microvolt = <3300000>; | ||
| 28 | regulator-max-microvolt = <3300000>; | ||
| 29 | status = "disabled"; | ||
| 30 | }; | ||
| 31 | |||
| 32 | reg_can1_en: regulator-can1 { | ||
| 33 | compatible = "regulator-fixed"; | ||
| 34 | pinctrl-names = "default"; | ||
| 35 | pinctrl-0 = <&princtrl_flexcan1_en>; | ||
| 36 | regulator-name = "Can"; | ||
| 37 | regulator-min-microvolt = <3300000>; | ||
| 38 | regulator-max-microvolt = <3300000>; | ||
| 39 | gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; | ||
| 40 | enable-active-high; | ||
| 41 | status = "disabled"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | reg_adc1_vref_3v3: regulator-vref-3v3 { | ||
| 45 | compatible = "regulator-fixed"; | ||
| 46 | regulator-name = "vref-3v3"; | ||
| 47 | regulator-min-microvolt = <3300000>; | ||
| 48 | regulator-max-microvolt = <3300000>; | ||
| 49 | }; | ||
| 50 | |||
| 51 | sound: sound { | ||
| 52 | compatible = "simple-audio-card"; | ||
| 53 | simple-audio-card,name = "phyBOARD-Segin-TLV320AIC3007"; | ||
| 54 | simple-audio-card,format = "i2s"; | ||
| 55 | simple-audio-card,bitclock-master = <&dailink_master>; | ||
| 56 | simple-audio-card,frame-master = <&dailink_master>; | ||
| 57 | simple-audio-card,widgets = | ||
| 58 | "Line", "Line In", | ||
| 59 | "Line", "Line Out", | ||
| 60 | "Speaker", "Speaker"; | ||
| 61 | simple-audio-card,routing = | ||
| 62 | "Line Out", "LLOUT", | ||
| 63 | "Line Out", "RLOUT", | ||
| 64 | "Speaker", "SPOP", | ||
| 65 | "Speaker", "SPOM", | ||
| 66 | "LINE1L", "Line In", | ||
| 67 | "LINE1R", "Line In"; | ||
| 68 | status = "disabled"; | ||
| 69 | |||
| 70 | simple-audio-card,cpu { | ||
| 71 | sound-dai = <&sai2>; | ||
| 72 | }; | ||
| 73 | |||
| 74 | dailink_master: simple-audio-card,codec { | ||
| 75 | sound-dai = <&tlv320>; | ||
| 76 | clocks = <&clks IMX6UL_CLK_SAI2>; | ||
| 77 | }; | ||
| 78 | }; | ||
| 79 | |||
| 80 | }; | ||
| 81 | |||
| 82 | &adc1 { | ||
| 83 | pinctrl-names = "default"; | ||
| 84 | pinctrl-0 = <&pinctrl_adc1>; | ||
| 85 | vref-supply = <®_adc1_vref_3v3>; | ||
| 86 | /* | ||
| 87 | * driver can not separate a specific channel so we request 4 channels | ||
| 88 | * here - we need only the fourth channel | ||
| 89 | */ | ||
| 90 | num-channels = <4>; | ||
| 91 | status = "disabled"; | ||
| 92 | }; | ||
| 93 | |||
| 94 | &can1 { | ||
| 95 | pinctrl-names = "default"; | ||
| 96 | pinctrl-0 = <&pinctrl_flexcan1>; | ||
| 97 | xceiver-supply = <®_can1_en>; | ||
| 98 | status = "disabled"; | ||
| 99 | }; | ||
| 100 | |||
| 101 | &clks { | ||
| 102 | assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; | ||
| 103 | assigned-clock-rates = <786432000>; | ||
| 104 | }; | ||
| 105 | |||
| 106 | &fec2 { | ||
| 107 | pinctrl-names = "default"; | ||
| 108 | pinctrl-0 = <&pinctrl_enet2>; | ||
| 109 | phy-mode = "rmii"; | ||
| 110 | phy-handle = <ðphy1>; | ||
| 111 | status = "disabled"; | ||
| 112 | }; | ||
| 113 | |||
| 114 | &i2c1 { | ||
| 115 | tlv320: codec@18 { | ||
| 116 | compatible = "ti,tlv320aic3007"; | ||
| 117 | #sound-dai-cells = <0>; | ||
| 118 | reg = <0x18>; | ||
| 119 | AVDD-supply = <®_sound_3v3>; | ||
| 120 | IOVDD-supply = <®_sound_3v3>; | ||
| 121 | DRVDD-supply = <®_sound_3v3>; | ||
| 122 | DVDD-supply = <®_sound_1v8>; | ||
| 123 | status = "disabled"; | ||
| 124 | }; | ||
| 125 | |||
| 126 | stmpe: touchscreen@44 { | ||
| 127 | compatible = "st,stmpe811"; | ||
| 128 | reg = <0x44>; | ||
| 129 | interrupts = <3 IRQ_TYPE_LEVEL_LOW>; | ||
| 130 | interrupt-parent = <&gpio5>; | ||
| 131 | pinctrl-names = "default"; | ||
| 132 | pinctrl-0 = <&pinctrl_stmpe>; | ||
| 133 | status = "disabled"; | ||
| 134 | |||
| 135 | touchscreen { | ||
| 136 | compatible = "st,stmpe-ts"; | ||
| 137 | st,sample-time = <4>; | ||
| 138 | st,mod-12b = <1>; | ||
| 139 | st,ref-sel = <0>; | ||
| 140 | st,adc-freq = <1>; | ||
| 141 | st,ave-ctrl = <1>; | ||
| 142 | st,touch-det-delay = <2>; | ||
| 143 | st,settling = <2>; | ||
| 144 | st,fraction-z = <7>; | ||
| 145 | st,i-drive = <1>; | ||
| 146 | touchscreen-inverted-x = <1>; | ||
| 147 | touchscreen-inverted-y = <1>; | ||
| 148 | }; | ||
| 149 | }; | ||
| 150 | |||
| 151 | i2c_rtc: rtc@68 { | ||
| 152 | pinctrl-names = "default"; | ||
| 153 | pinctrl-0 = <&pinctrl_rtc_int>; | ||
| 154 | compatible = "microcrystal,rv4162"; | ||
| 155 | reg = <0x68>; | ||
| 156 | interrupt-parent = <&gpio5>; | ||
| 157 | interrupts = <1 IRQ_TYPE_LEVEL_LOW>; | ||
| 158 | status = "disabled"; | ||
| 159 | }; | ||
| 160 | }; | ||
| 161 | |||
| 162 | &mdio { | ||
| 163 | ethphy1: ethernet-phy@2 { | ||
| 164 | reg = <2>; | ||
| 165 | micrel,led-mode = <1>; | ||
| 166 | clocks = <&clks IMX6UL_CLK_ENET2_REF>; | ||
| 167 | clock-names = "rmii-ref"; | ||
| 168 | }; | ||
| 169 | }; | ||
| 170 | |||
| 171 | &pwm3 { | ||
| 172 | pinctrl-names = "default"; | ||
| 173 | pinctrl-0 = <&pinctrl_pwm3>; | ||
| 174 | status = "disabled"; | ||
| 175 | }; | ||
| 176 | |||
| 177 | &sai2 { | ||
| 178 | pinctrl-names = "default"; | ||
| 179 | pinctrl-0 = <&pinctrl_sai2>; | ||
| 180 | assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>, | ||
| 181 | <&clks IMX6UL_CLK_SAI2>; | ||
| 182 | assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; | ||
| 183 | assigned-clock-rates = <0>, <19200000>; | ||
| 184 | fsl,sai-mclk-direction-output; | ||
| 185 | status = "disabled"; | ||
| 186 | }; | ||
| 187 | |||
| 188 | &uart5 { | ||
| 189 | pinctrl-names = "default"; | ||
| 190 | pinctrl-0 = <&pinctrl_uart5>; | ||
| 191 | uart-has-rtscts; | ||
| 192 | status = "disabled"; | ||
| 193 | }; | ||
| 194 | |||
| 195 | &usbotg1 { | ||
| 196 | pinctrl-names = "default"; | ||
| 197 | pinctrl-0 = <&pinctrl_usb_otg1_id>; | ||
| 198 | dr_mode = "otg"; | ||
| 199 | status = "disabled"; | ||
| 200 | }; | ||
| 201 | |||
| 202 | &usbotg2 { | ||
| 203 | dr_mode = "host"; | ||
| 204 | disable-over-current; | ||
| 205 | status = "disabled"; | ||
| 206 | }; | ||
| 207 | |||
| 208 | &usdhc1 { | ||
| 209 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
| 210 | pinctrl-0 = <&pinctrl_usdhc1>; | ||
| 211 | pinctrl-1 = <&pinctrl_usdhc1_100mhz>; | ||
| 212 | pinctrl-2 = <&pinctrl_usdhc1_200mhz>; | ||
| 213 | cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; | ||
| 214 | no-1-8-v; | ||
| 215 | keep-power-in-suspend; | ||
| 216 | wakeup-source; | ||
| 217 | status = "disabled"; | ||
| 218 | }; | ||
| 219 | |||
| 220 | &iomuxc { | ||
| 221 | pinctrl_adc1: adc1grp { | ||
| 222 | fsl,pins = < | ||
| 223 | MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0 | ||
| 224 | >; | ||
| 225 | }; | ||
| 226 | |||
| 227 | pinctrl_enet2: enet2grp { | ||
| 228 | fsl,pins = < | ||
| 229 | MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 | ||
| 230 | MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 | ||
| 231 | MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 | ||
| 232 | MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 | ||
| 233 | MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0 | ||
| 234 | MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 | ||
| 235 | MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 | ||
| 236 | MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 | ||
| 237 | >; | ||
| 238 | }; | ||
| 239 | |||
| 240 | pinctrl_flexcan1: flexcan1 { | ||
| 241 | fsl,pins = < | ||
| 242 | MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x0b0b0 | ||
| 243 | MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x0b0b0 | ||
| 244 | >; | ||
| 245 | }; | ||
| 246 | |||
| 247 | princtrl_flexcan1_en: flexcan1engrp { | ||
| 248 | fsl,pins = < | ||
| 249 | MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x17059 | ||
| 250 | >; | ||
| 251 | }; | ||
| 252 | |||
| 253 | pinctrl_pwm3: pwm3grp { | ||
| 254 | fsl,pins = < | ||
| 255 | MX6UL_PAD_GPIO1_IO04__PWM3_OUT 0x0b0b0 | ||
| 256 | >; | ||
| 257 | }; | ||
| 258 | |||
| 259 | pinctrl_rtc_int: rtcintgrp { | ||
| 260 | fsl,pins = < | ||
| 261 | MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x17059 | ||
| 262 | >; | ||
| 263 | }; | ||
| 264 | |||
| 265 | pinctrl_sai2: sai2grp { | ||
| 266 | fsl,pins = < | ||
| 267 | MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 | ||
| 268 | MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 | ||
| 269 | MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 | ||
| 270 | MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 | ||
| 271 | MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 | ||
| 272 | >; | ||
| 273 | }; | ||
| 274 | |||
| 275 | pinctrl_stmpe: stmpegrp { | ||
| 276 | fsl,pins = < | ||
| 277 | MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 | ||
| 278 | >; | ||
| 279 | }; | ||
| 280 | |||
| 281 | pinctrl_uart5: uart5grp { | ||
| 282 | fsl,pins = < | ||
| 283 | MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x1b0b1 | ||
| 284 | MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1 | ||
| 285 | MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS 0x1b0b1 | ||
| 286 | MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x1b0b1 | ||
| 287 | >; | ||
| 288 | }; | ||
| 289 | |||
| 290 | pinctrl_usb_otg1_id: usbotg1idgrp { | ||
| 291 | fsl,pins = < | ||
| 292 | MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059 | ||
| 293 | >; | ||
| 294 | }; | ||
| 295 | |||
| 296 | pinctrl_usdhc1: usdhc1grp { | ||
| 297 | fsl,pins = < | ||
| 298 | MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 | ||
| 299 | MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059 | ||
| 300 | MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 | ||
| 301 | MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 | ||
| 302 | MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 | ||
| 303 | MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 | ||
| 304 | MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 | ||
| 305 | >; | ||
| 306 | }; | ||
| 307 | |||
| 308 | pinctrl_usdhc1_100mhz: usdhc1grp100mhz { | ||
| 309 | fsl,pins = < | ||
| 310 | MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 | ||
| 311 | MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 | ||
| 312 | MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 | ||
| 313 | MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 | ||
| 314 | MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 | ||
| 315 | MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 | ||
| 316 | >; | ||
| 317 | }; | ||
| 318 | |||
| 319 | pinctrl_usdhc1_200mhz: usdhc1grp200mhz { | ||
| 320 | fsl,pins = < | ||
| 321 | MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 | ||
| 322 | MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 | ||
| 323 | MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 | ||
| 324 | MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 | ||
| 325 | MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 | ||
| 326 | MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 | ||
| 327 | >; | ||
| 328 | }; | ||
| 329 | }; | ||
diff --git a/arch/arm/boot/dts/imx6ull-colibri.dtsi b/arch/arm/boot/dts/imx6ull-colibri.dtsi index 6c63a7384611..9ad1da159768 100644 --- a/arch/arm/boot/dts/imx6ull-colibri.dtsi +++ b/arch/arm/boot/dts/imx6ull-colibri.dtsi | |||
| @@ -94,16 +94,16 @@ | |||
| 94 | pinctrl-names = "default", "gpio"; | 94 | pinctrl-names = "default", "gpio"; |
| 95 | pinctrl-0 = <&pinctrl_i2c1>; | 95 | pinctrl-0 = <&pinctrl_i2c1>; |
| 96 | pinctrl-1 = <&pinctrl_i2c1_gpio>; | 96 | pinctrl-1 = <&pinctrl_i2c1_gpio>; |
| 97 | sda-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; | 97 | sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 98 | scl-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; | 98 | scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 99 | }; | 99 | }; |
| 100 | 100 | ||
| 101 | &i2c2 { | 101 | &i2c2 { |
| 102 | pinctrl-names = "default", "gpio"; | 102 | pinctrl-names = "default", "gpio"; |
| 103 | pinctrl-0 = <&pinctrl_i2c2>; | 103 | pinctrl-0 = <&pinctrl_i2c2>; |
| 104 | pinctrl-1 = <&pinctrl_i2c2_gpio>; | 104 | pinctrl-1 = <&pinctrl_i2c2_gpio>; |
| 105 | sda-gpios = <&gpio1 31 GPIO_ACTIVE_LOW>; | 105 | sda-gpios = <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 106 | scl-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; | 106 | scl-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; |
| 107 | status = "okay"; | 107 | status = "okay"; |
| 108 | 108 | ||
| 109 | ad7879@2c { | 109 | ad7879@2c { |
diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi index f3668fe69eac..22e4a307fa59 100644 --- a/arch/arm/boot/dts/imx6ull.dtsi +++ b/arch/arm/boot/dts/imx6ull.dtsi | |||
| @@ -30,6 +30,18 @@ | |||
| 30 | >; | 30 | >; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | &ocotp { | ||
| 34 | compatible = "fsl,imx6ull-ocotp", "syscon"; | ||
| 35 | }; | ||
| 36 | |||
| 37 | &usdhc1 { | ||
| 38 | compatible = "fsl,imx6ull-usdhc", "fsl,imx6sx-usdhc"; | ||
| 39 | }; | ||
| 40 | |||
| 41 | &usdhc2 { | ||
| 42 | compatible = "fsl,imx6ull-usdhc", "fsl,imx6sx-usdhc"; | ||
| 43 | }; | ||
| 44 | |||
| 33 | / { | 45 | / { |
| 34 | soc { | 46 | soc { |
| 35 | aips3: aips-bus@2200000 { | 47 | aips3: aips-bus@2200000 { |
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi index 6b298e388f4b..6eb98e7c568d 100644 --- a/arch/arm/boot/dts/imx7d.dtsi +++ b/arch/arm/boot/dts/imx7d.dtsi | |||
| @@ -96,6 +96,14 @@ | |||
| 96 | }; | 96 | }; |
| 97 | }; | 97 | }; |
| 98 | 98 | ||
| 99 | &aips2 { | ||
| 100 | pcie_phy: pcie-phy@306d0000 { | ||
| 101 | compatible = "fsl,imx7d-pcie-phy"; | ||
| 102 | reg = <0x306d0000 0x10000>; | ||
| 103 | status = "disabled"; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | |||
| 99 | &aips3 { | 107 | &aips3 { |
| 100 | usbotg2: usb@30b20000 { | 108 | usbotg2: usb@30b20000 { |
| 101 | compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; | 109 | compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; |
| @@ -173,6 +181,7 @@ | |||
| 173 | <&src IMX7_RESET_PCIE_CTRL_APPS_EN>, | 181 | <&src IMX7_RESET_PCIE_CTRL_APPS_EN>, |
| 174 | <&src IMX7_RESET_PCIE_CTRL_APPS_TURNOFF>; | 182 | <&src IMX7_RESET_PCIE_CTRL_APPS_TURNOFF>; |
| 175 | reset-names = "pciephy", "apps", "turnoff"; | 183 | reset-names = "pciephy", "apps", "turnoff"; |
| 184 | fsl,imx7d-pcie-phy = <&pcie_phy>; | ||
| 176 | status = "disabled"; | 185 | status = "disabled"; |
| 177 | }; | 186 | }; |
| 178 | }; | 187 | }; |
diff --git a/arch/arm/boot/dts/imx7ulp.dtsi b/arch/arm/boot/dts/imx7ulp.dtsi index 931b2754b099..fca6e50f37c8 100644 --- a/arch/arm/boot/dts/imx7ulp.dtsi +++ b/arch/arm/boot/dts/imx7ulp.dtsi | |||
| @@ -199,9 +199,13 @@ | |||
| 199 | assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>; | 199 | assigned-clock-parents = <&scg1 IMX7ULP_CLK_SOSC_BUS_CLK>; |
| 200 | }; | 200 | }; |
| 201 | 201 | ||
| 202 | smc1: smc1@40410000 { | 202 | smc1: clock-controller@40410000 { |
| 203 | compatible = "fsl,imx7ulp-smc1"; | 203 | compatible = "fsl,imx7ulp-smc1"; |
| 204 | reg = <0x40410000 0x1000>; | 204 | reg = <0x40410000 0x1000>; |
| 205 | #clock-cells = <1>; | ||
| 206 | clocks = <&scg1 IMX7ULP_CLK_CORE_DIV>, | ||
| 207 | <&scg1 IMX7ULP_CLK_HSRUN_CORE_DIV>; | ||
| 208 | clock-names = "divcore", "hsrun_divcore"; | ||
| 205 | }; | 209 | }; |
| 206 | 210 | ||
| 207 | pcc3: clock-controller@40b30000 { | 211 | pcc3: clock-controller@40b30000 { |
| @@ -343,4 +347,17 @@ | |||
| 343 | gpio-ranges = <&iomuxc1 0 96 32>; | 347 | gpio-ranges = <&iomuxc1 0 96 32>; |
| 344 | }; | 348 | }; |
| 345 | }; | 349 | }; |
| 350 | |||
| 351 | m4aips1: bus@41080000 { | ||
| 352 | compatible = "simple-bus"; | ||
| 353 | #address-cells = <1>; | ||
| 354 | #size-cells = <1>; | ||
| 355 | reg = <0x41080000 0x80000>; | ||
| 356 | ranges; | ||
| 357 | |||
| 358 | sim: sim@410a3000 { | ||
| 359 | compatible = "fsl,imx7ulp-sim", "syscon"; | ||
| 360 | reg = <0x410a3000 0x1000>; | ||
| 361 | }; | ||
| 362 | }; | ||
| 346 | }; | 363 | }; |
diff --git a/arch/arm/boot/dts/integrator.dtsi b/arch/arm/boot/dts/integrator.dtsi index 4d58638d104b..1612a869a4f7 100644 --- a/arch/arm/boot/dts/integrator.dtsi +++ b/arch/arm/boot/dts/integrator.dtsi | |||
| @@ -3,9 +3,15 @@ | |||
| 3 | * SoC core Device Tree for the ARM Integrator platforms | 3 | * SoC core Device Tree for the ARM Integrator platforms |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | /include/ "skeleton.dtsi" | ||
| 7 | |||
| 8 | / { | 6 | / { |
| 7 | #address-cells = <1>; | ||
| 8 | #size-cells = <1>; | ||
| 9 | |||
| 10 | memory { | ||
| 11 | device_type = "memory"; | ||
| 12 | reg = <0x0 0x0>; | ||
| 13 | }; | ||
| 14 | |||
| 9 | core-module@10000000 { | 15 | core-module@10000000 { |
| 10 | compatible = "arm,core-module-integrator", "syscon", "simple-mfd"; | 16 | compatible = "arm,core-module-integrator", "syscon", "simple-mfd"; |
| 11 | reg = <0x10000000 0x200>; | 17 | reg = <0x10000000 0x200>; |
diff --git a/arch/arm/boot/dts/integratorcp.dts b/arch/arm/boot/dts/integratorcp.dts index a185ab8759fa..01fa229e1bd0 100644 --- a/arch/arm/boot/dts/integratorcp.dts +++ b/arch/arm/boot/dts/integratorcp.dts | |||
| @@ -192,6 +192,43 @@ | |||
| 192 | interrupts = <27>; | 192 | interrupts = <27>; |
| 193 | }; | 193 | }; |
| 194 | 194 | ||
| 195 | bridge { | ||
| 196 | compatible = "ti,ths8134a", "ti,ths8134"; | ||
| 197 | #address-cells = <1>; | ||
| 198 | #size-cells = <0>; | ||
| 199 | |||
| 200 | ports { | ||
| 201 | #address-cells = <1>; | ||
| 202 | #size-cells = <0>; | ||
| 203 | |||
| 204 | port@0 { | ||
| 205 | reg = <0>; | ||
| 206 | |||
| 207 | vga_bridge_in: endpoint { | ||
| 208 | remote-endpoint = <&clcd_pads_vga_dac>; | ||
| 209 | }; | ||
| 210 | }; | ||
| 211 | |||
| 212 | port@1 { | ||
| 213 | reg = <1>; | ||
| 214 | |||
| 215 | vga_bridge_out: endpoint { | ||
| 216 | remote-endpoint = <&vga_con_in>; | ||
| 217 | }; | ||
| 218 | }; | ||
| 219 | }; | ||
| 220 | }; | ||
| 221 | |||
| 222 | vga { | ||
| 223 | compatible = "vga-connector"; | ||
| 224 | |||
| 225 | port { | ||
| 226 | vga_con_in: endpoint { | ||
| 227 | remote-endpoint = <&vga_bridge_out>; | ||
| 228 | }; | ||
| 229 | }; | ||
| 230 | }; | ||
| 231 | |||
| 195 | fpga { | 232 | fpga { |
| 196 | /* | 233 | /* |
| 197 | * These PrimeCells are at the same location and using | 234 | * These PrimeCells are at the same location and using |
| @@ -254,39 +291,27 @@ | |||
| 254 | interrupts = <22>; | 291 | interrupts = <22>; |
| 255 | clocks = <&auxosc>, <&pclk>; | 292 | clocks = <&auxosc>, <&pclk>; |
| 256 | clock-names = "clcdclk", "apb_pclk"; | 293 | clock-names = "clcdclk", "apb_pclk"; |
| 294 | /* 640x480 16bpp @ 25.175MHz is 36827428 bytes/s */ | ||
| 295 | max-memory-bandwidth = <40000000>; | ||
| 257 | 296 | ||
| 258 | port { | 297 | /* |
| 259 | /* | 298 | * This port is routed through a PLD (Programmable |
| 260 | * The VGA connected is implemented with a | 299 | * Logic Device) that routes the output from the CLCD |
| 261 | * THS8134A triple DAC that can be run in 24bit | 300 | * (after transformations) to the VGA DAC and also an |
| 262 | * or 16bit RGB mode. | 301 | * external panel connector. The PLD is essential for |
| 263 | */ | 302 | * supporting RGB565/BGR565. |
| 264 | clcd_pads: endpoint { | 303 | * |
| 265 | remote-endpoint = <&clcd_panel>; | 304 | * The signals from the port thus reaches two endpoints. |
| 266 | arm,pl11x,tft-r0g0b0-pads = <1 7 13>; | 305 | * The PLD is managed through a few special bits in the |
| 267 | }; | 306 | * FPGA "sysreg". |
| 268 | }; | 307 | * |
| 269 | 308 | * This arrangement can be clearly seen in | |
| 270 | panel { | 309 | * ARM DUI 0225D, page 3-41, figure 3-19. |
| 271 | compatible = "panel-dpi"; | 310 | */ |
| 272 | 311 | port@0 { | |
| 273 | port { | 312 | clcd_pads_vga_dac: endpoint { |
| 274 | clcd_panel: endpoint { | 313 | remote-endpoint = <&vga_bridge_in>; |
| 275 | remote-endpoint = <&clcd_pads>; | 314 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
| 276 | }; | ||
| 277 | }; | ||
| 278 | |||
| 279 | /* Standard 640x480 VGA timings */ | ||
| 280 | panel-timing { | ||
| 281 | clock-frequency = <25175000>; | ||
| 282 | hactive = <640>; | ||
| 283 | hback-porch = <48>; | ||
| 284 | hfront-porch = <16>; | ||
| 285 | hsync-len = <96>; | ||
| 286 | vactive = <480>; | ||
| 287 | vback-porch = <33>; | ||
| 288 | vfront-porch = <10>; | ||
| 289 | vsync-len = <2>; | ||
| 290 | }; | 315 | }; |
| 291 | }; | 316 | }; |
| 292 | }; | 317 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-dir665.dts b/arch/arm/boot/dts/kirkwood-dir665.dts index 31ceacd841de..b3ad3f607d31 100644 --- a/arch/arm/boot/dts/kirkwood-dir665.dts +++ b/arch/arm/boot/dts/kirkwood-dir665.dts | |||
| @@ -190,53 +190,6 @@ | |||
| 190 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; | 190 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 191 | }; | 191 | }; |
| 192 | }; | 192 | }; |
| 193 | |||
| 194 | dsa { | ||
| 195 | status = "disabled"; | ||
| 196 | |||
| 197 | compatible = "marvell,dsa"; | ||
| 198 | #address-cells = <2>; | ||
| 199 | #size-cells = <0>; | ||
| 200 | |||
| 201 | dsa,ethernet = <ð0port>; | ||
| 202 | dsa,mii-bus = <&mdio>; | ||
| 203 | |||
| 204 | switch@0 { | ||
| 205 | #address-cells = <1>; | ||
| 206 | #size-cells = <0>; | ||
| 207 | reg = <0 0>; /* MDIO address 0, switch 0 in tree */ | ||
| 208 | |||
| 209 | port@0 { | ||
| 210 | reg = <0>; | ||
| 211 | label = "lan4"; | ||
| 212 | }; | ||
| 213 | |||
| 214 | port@1 { | ||
| 215 | reg = <1>; | ||
| 216 | label = "lan3"; | ||
| 217 | }; | ||
| 218 | |||
| 219 | port@2 { | ||
| 220 | reg = <2>; | ||
| 221 | label = "lan2"; | ||
| 222 | }; | ||
| 223 | |||
| 224 | port@3 { | ||
| 225 | reg = <3>; | ||
| 226 | label = "lan1"; | ||
| 227 | }; | ||
| 228 | |||
| 229 | port@4 { | ||
| 230 | reg = <4>; | ||
| 231 | label = "wan"; | ||
| 232 | }; | ||
| 233 | |||
| 234 | port@6 { | ||
| 235 | reg = <6>; | ||
| 236 | label = "cpu"; | ||
| 237 | }; | ||
| 238 | }; | ||
| 239 | }; | ||
| 240 | }; | 193 | }; |
| 241 | 194 | ||
| 242 | &mdio { | 195 | &mdio { |
diff --git a/arch/arm/boot/dts/kirkwood-dnskw.dtsi b/arch/arm/boot/dts/kirkwood-dnskw.dtsi index cbaf06f2f78e..eb917462b219 100644 --- a/arch/arm/boot/dts/kirkwood-dnskw.dtsi +++ b/arch/arm/boot/dts/kirkwood-dnskw.dtsi | |||
| @@ -36,8 +36,8 @@ | |||
| 36 | compatible = "gpio-fan"; | 36 | compatible = "gpio-fan"; |
| 37 | pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>; | 37 | pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>; |
| 38 | pinctrl-names = "default"; | 38 | pinctrl-names = "default"; |
| 39 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW | 39 | gpios = <&gpio1 14 GPIO_ACTIVE_HIGH |
| 40 | &gpio1 13 GPIO_ACTIVE_LOW>; | 40 | &gpio1 13 GPIO_ACTIVE_HIGH>; |
| 41 | gpio-fan,speed-map = <0 0 | 41 | gpio-fan,speed-map = <0 0 |
| 42 | 3000 1 | 42 | 3000 1 |
| 43 | 6000 2>; | 43 | 6000 2>; |
diff --git a/arch/arm/boot/dts/kirkwood-linksys-viper.dts b/arch/arm/boot/dts/kirkwood-linksys-viper.dts index a7d659b7145a..2f9660f3b457 100644 --- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts +++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts | |||
| @@ -66,53 +66,6 @@ | |||
| 66 | gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; | 66 | gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; |
| 67 | }; | 67 | }; |
| 68 | }; | 68 | }; |
| 69 | |||
| 70 | dsa { | ||
| 71 | status = "disabled"; | ||
| 72 | |||
| 73 | compatible = "marvell,dsa"; | ||
| 74 | #address-cells = <2>; | ||
| 75 | #size-cells = <0>; | ||
| 76 | |||
| 77 | dsa,ethernet = <ð0port>; | ||
| 78 | dsa,mii-bus = <&mdio>; | ||
| 79 | |||
| 80 | switch@16,0 { | ||
| 81 | #address-cells = <1>; | ||
| 82 | #size-cells = <0>; | ||
| 83 | reg = <16 0>; /* MDIO address 16, switch 0 in tree */ | ||
| 84 | |||
| 85 | port@0 { | ||
| 86 | reg = <0>; | ||
| 87 | label = "ethernet1"; | ||
| 88 | }; | ||
| 89 | |||
| 90 | port@1 { | ||
| 91 | reg = <1>; | ||
| 92 | label = "ethernet2"; | ||
| 93 | }; | ||
| 94 | |||
| 95 | port@2 { | ||
| 96 | reg = <2>; | ||
| 97 | label = "ethernet3"; | ||
| 98 | }; | ||
| 99 | |||
| 100 | port@3 { | ||
| 101 | reg = <3>; | ||
| 102 | label = "ethernet4"; | ||
| 103 | }; | ||
| 104 | |||
| 105 | port@4 { | ||
| 106 | reg = <4>; | ||
| 107 | label = "internet"; | ||
| 108 | }; | ||
| 109 | |||
| 110 | port@5 { | ||
| 111 | reg = <5>; | ||
| 112 | label = "cpu"; | ||
| 113 | }; | ||
| 114 | }; | ||
| 115 | }; | ||
| 116 | }; | 69 | }; |
| 117 | 70 | ||
| 118 | &pinctrl { | 71 | &pinctrl { |
diff --git a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts index 86d532916d56..2e1a75348908 100644 --- a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts +++ b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | |||
| @@ -107,53 +107,6 @@ | |||
| 107 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; | 107 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 108 | }; | 108 | }; |
| 109 | }; | 109 | }; |
| 110 | |||
| 111 | dsa { | ||
| 112 | status = "disabled"; | ||
| 113 | |||
| 114 | compatible = "marvell,dsa"; | ||
| 115 | #address-cells = <1>; | ||
| 116 | #size-cells = <0>; | ||
| 117 | |||
| 118 | dsa,ethernet = <ð0port>; | ||
| 119 | dsa,mii-bus = <&mdio>; | ||
| 120 | |||
| 121 | switch@0 { | ||
| 122 | #address-cells = <1>; | ||
| 123 | #size-cells = <0>; | ||
| 124 | reg = <0 0>; /* MDIO address 0, switch 0 in tree */ | ||
| 125 | |||
| 126 | port@0 { | ||
| 127 | reg = <0>; | ||
| 128 | label = "lan1"; | ||
| 129 | }; | ||
| 130 | |||
| 131 | port@1 { | ||
| 132 | reg = <1>; | ||
| 133 | label = "lan2"; | ||
| 134 | }; | ||
| 135 | |||
| 136 | port@2 { | ||
| 137 | reg = <2>; | ||
| 138 | label = "lan3"; | ||
| 139 | }; | ||
| 140 | |||
| 141 | port@3 { | ||
| 142 | reg = <3>; | ||
| 143 | label = "lan4"; | ||
| 144 | }; | ||
| 145 | |||
| 146 | port@4 { | ||
| 147 | reg = <4>; | ||
| 148 | label = "wan"; | ||
| 149 | }; | ||
| 150 | |||
| 151 | port@5 { | ||
| 152 | reg = <5>; | ||
| 153 | label = "cpu"; | ||
| 154 | }; | ||
| 155 | }; | ||
| 156 | }; | ||
| 157 | }; | 110 | }; |
| 158 | 111 | ||
| 159 | &mdio { | 112 | &mdio { |
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts index a9fee2c2bcaf..9d88301daf0e 100644 --- a/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts +++ b/arch/arm/boot/dts/kirkwood-rd88f6281-z0.dts | |||
| @@ -16,15 +16,6 @@ | |||
| 16 | model = "Marvell RD88f6281 Reference design, with Z0 SoC"; | 16 | model = "Marvell RD88f6281 Reference design, with Z0 SoC"; |
| 17 | compatible = "marvell,rd88f6281-z0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood"; | 17 | compatible = "marvell,rd88f6281-z0", "marvell,rd88f6281","marvell,kirkwood-88f6281", "marvell,kirkwood"; |
| 18 | 18 | ||
| 19 | dsa { | ||
| 20 | switch@0 { | ||
| 21 | reg = <0 0>; /* MDIO address 0, switch 0 in tree */ | ||
| 22 | port@4 { | ||
| 23 | reg = <4>; | ||
| 24 | label = "wan"; | ||
| 25 | }; | ||
| 26 | }; | ||
| 27 | }; | ||
| 28 | }; | 19 | }; |
| 29 | 20 | ||
| 30 | ð1 { | 21 | ð1 { |
diff --git a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi index 0f22f0e6f56b..f1f8eee132e8 100644 --- a/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi +++ b/arch/arm/boot/dts/kirkwood-rd88f6281.dtsi | |||
| @@ -48,47 +48,6 @@ | |||
| 48 | cd-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; | 48 | cd-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; |
| 49 | /* No WP GPIO */ | 49 | /* No WP GPIO */ |
| 50 | }; | 50 | }; |
| 51 | }; | ||
| 52 | |||
| 53 | dsa { | ||
| 54 | status = "disabled"; | ||
| 55 | |||
| 56 | compatible = "marvell,dsa"; | ||
| 57 | #address-cells = <2>; | ||
| 58 | #size-cells = <0>; | ||
| 59 | |||
| 60 | dsa,ethernet = <ð0port>; | ||
| 61 | dsa,mii-bus = <&mdio>; | ||
| 62 | |||
| 63 | switch@0 { | ||
| 64 | #address-cells = <1>; | ||
| 65 | #size-cells = <0>; | ||
| 66 | |||
| 67 | port@0 { | ||
| 68 | reg = <0>; | ||
| 69 | label = "lan1"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | port@1 { | ||
| 73 | reg = <1>; | ||
| 74 | label = "lan2"; | ||
| 75 | }; | ||
| 76 | |||
| 77 | port@2 { | ||
| 78 | reg = <2>; | ||
| 79 | label = "lan3"; | ||
| 80 | }; | ||
| 81 | |||
| 82 | port@3 { | ||
| 83 | reg = <3>; | ||
| 84 | label = "lan4"; | ||
| 85 | }; | ||
| 86 | |||
| 87 | port@5 { | ||
| 88 | reg = <5>; | ||
| 89 | label = "cpu"; | ||
| 90 | }; | ||
| 91 | }; | ||
| 92 | }; | 51 | }; |
| 93 | }; | 52 | }; |
| 94 | 53 | ||
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 81c7eda2c442..2161e23bd98e 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
| @@ -1,11 +1,12 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /include/ "skeleton.dtsi" | ||
| 3 | #include <dt-bindings/input/input.h> | 2 | #include <dt-bindings/input/input.h> |
| 4 | #include <dt-bindings/gpio/gpio.h> | 3 | #include <dt-bindings/gpio/gpio.h> |
| 5 | 4 | ||
| 6 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | 5 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) |
| 7 | 6 | ||
| 8 | / { | 7 | / { |
| 8 | #address-cells = <1>; | ||
| 9 | #size-cells = <1>; | ||
| 9 | compatible = "marvell,kirkwood"; | 10 | compatible = "marvell,kirkwood"; |
| 10 | interrupt-parent = <&intc>; | 11 | interrupt-parent = <&intc>; |
| 11 | 12 | ||
diff --git a/arch/arm/boot/dts/lpc3250-ea3250.dts b/arch/arm/boot/dts/lpc3250-ea3250.dts index 58ea0a4e7afa..f46a11827ef6 100644 --- a/arch/arm/boot/dts/lpc3250-ea3250.dts +++ b/arch/arm/boot/dts/lpc3250-ea3250.dts | |||
| @@ -17,64 +17,70 @@ | |||
| 17 | / { | 17 | / { |
| 18 | model = "Embedded Artists LPC3250 board based on NXP LPC3250"; | 18 | model = "Embedded Artists LPC3250 board based on NXP LPC3250"; |
| 19 | compatible = "ea,ea3250", "nxp,lpc3250"; | 19 | compatible = "ea,ea3250", "nxp,lpc3250"; |
| 20 | #address-cells = <1>; | ||
| 21 | #size-cells = <1>; | ||
| 22 | 20 | ||
| 23 | memory { | 21 | memory@80000000 { |
| 24 | device_type = "memory"; | 22 | device_type = "memory"; |
| 25 | reg = <0x80000000 0x4000000>; | 23 | reg = <0x80000000 0x4000000>; |
| 26 | }; | 24 | }; |
| 27 | 25 | ||
| 28 | gpio_keys { | 26 | gpio-keys { |
| 29 | compatible = "gpio-keys"; | 27 | compatible = "gpio-keys"; |
| 30 | #address-cells = <1>; | ||
| 31 | #size-cells = <0>; | ||
| 32 | autorepeat; | 28 | autorepeat; |
| 33 | button@21 { | 29 | |
| 30 | button { | ||
| 34 | label = "Interrupt Key"; | 31 | label = "Interrupt Key"; |
| 35 | linux,code = <103>; | 32 | linux,code = <103>; |
| 36 | gpios = <&gpio 4 1 0>; /* GPI_P3 1 */ | 33 | gpios = <&gpio 4 1 0>; /* GPI_P3 1 */ |
| 37 | }; | 34 | }; |
| 35 | |||
| 38 | key1 { | 36 | key1 { |
| 39 | label = "KEY1"; | 37 | label = "KEY1"; |
| 40 | linux,code = <1>; | 38 | linux,code = <1>; |
| 41 | gpios = <&pca9532 0 0>; | 39 | gpios = <&pca9532 0 0>; |
| 42 | }; | 40 | }; |
| 41 | |||
| 43 | key2 { | 42 | key2 { |
| 44 | label = "KEY2"; | 43 | label = "KEY2"; |
| 45 | linux,code = <2>; | 44 | linux,code = <2>; |
| 46 | gpios = <&pca9532 1 0>; | 45 | gpios = <&pca9532 1 0>; |
| 47 | }; | 46 | }; |
| 47 | |||
| 48 | key3 { | 48 | key3 { |
| 49 | label = "KEY3"; | 49 | label = "KEY3"; |
| 50 | linux,code = <3>; | 50 | linux,code = <3>; |
| 51 | gpios = <&pca9532 2 0>; | 51 | gpios = <&pca9532 2 0>; |
| 52 | }; | 52 | }; |
| 53 | |||
| 53 | key4 { | 54 | key4 { |
| 54 | label = "KEY4"; | 55 | label = "KEY4"; |
| 55 | linux,code = <4>; | 56 | linux,code = <4>; |
| 56 | gpios = <&pca9532 3 0>; | 57 | gpios = <&pca9532 3 0>; |
| 57 | }; | 58 | }; |
| 59 | |||
| 58 | joy0 { | 60 | joy0 { |
| 59 | label = "Joystick Key 0"; | 61 | label = "Joystick Key 0"; |
| 60 | linux,code = <10>; | 62 | linux,code = <10>; |
| 61 | gpios = <&gpio 2 0 0>; /* P2.0 */ | 63 | gpios = <&gpio 2 0 0>; /* P2.0 */ |
| 62 | }; | 64 | }; |
| 65 | |||
| 63 | joy1 { | 66 | joy1 { |
| 64 | label = "Joystick Key 1"; | 67 | label = "Joystick Key 1"; |
| 65 | linux,code = <11>; | 68 | linux,code = <11>; |
| 66 | gpios = <&gpio 2 1 0>; /* P2.1 */ | 69 | gpios = <&gpio 2 1 0>; /* P2.1 */ |
| 67 | }; | 70 | }; |
| 71 | |||
| 68 | joy2 { | 72 | joy2 { |
| 69 | label = "Joystick Key 2"; | 73 | label = "Joystick Key 2"; |
| 70 | linux,code = <12>; | 74 | linux,code = <12>; |
| 71 | gpios = <&gpio 2 2 0>; /* P2.2 */ | 75 | gpios = <&gpio 2 2 0>; /* P2.2 */ |
| 72 | }; | 76 | }; |
| 77 | |||
| 73 | joy3 { | 78 | joy3 { |
| 74 | label = "Joystick Key 3"; | 79 | label = "Joystick Key 3"; |
| 75 | linux,code = <13>; | 80 | linux,code = <13>; |
| 76 | gpios = <&gpio 2 3 0>; /* P2.3 */ | 81 | gpios = <&gpio 2 3 0>; /* P2.3 */ |
| 77 | }; | 82 | }; |
| 83 | |||
| 78 | joy4 { | 84 | joy4 { |
| 79 | label = "Joystick Key 4"; | 85 | label = "Joystick Key 4"; |
| 80 | linux,code = <14>; | 86 | linux,code = <14>; |
diff --git a/arch/arm/boot/dts/lpc3250-phy3250.dts b/arch/arm/boot/dts/lpc3250-phy3250.dts index 1e1c2f517a82..ebd19258e22b 100644 --- a/arch/arm/boot/dts/lpc3250-phy3250.dts +++ b/arch/arm/boot/dts/lpc3250-phy3250.dts | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * PHYTEC phyCORE-LPC3250 board | 2 | * PHYTEC phyCORE-LPC3250 board |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2015-2019 Vladimir Zapolskiy <vz@mleia.com> | ||
| 4 | * Copyright 2012 Roland Stigge <stigge@antcom.de> | 5 | * Copyright 2012 Roland Stigge <stigge@antcom.de> |
| 5 | * | 6 | * |
| 6 | * The code contained herein is licensed under the GNU General Public | 7 | * The code contained herein is licensed under the GNU General Public |
| @@ -17,45 +18,12 @@ | |||
| 17 | / { | 18 | / { |
| 18 | model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250"; | 19 | model = "PHYTEC phyCORE-LPC3250 board based on NXP LPC3250"; |
| 19 | compatible = "phytec,phy3250", "nxp,lpc3250"; | 20 | compatible = "phytec,phy3250", "nxp,lpc3250"; |
| 20 | #address-cells = <1>; | ||
| 21 | #size-cells = <1>; | ||
| 22 | 21 | ||
| 23 | memory { | 22 | memory@80000000 { |
| 24 | device_type = "memory"; | 23 | device_type = "memory"; |
| 25 | reg = <0x80000000 0x4000000>; | 24 | reg = <0x80000000 0x4000000>; |
| 26 | }; | 25 | }; |
| 27 | 26 | ||
| 28 | regulators { | ||
| 29 | backlight_reg: regulator@0 { | ||
| 30 | compatible = "regulator-fixed"; | ||
| 31 | regulator-name = "backlight_reg"; | ||
| 32 | regulator-min-microvolt = <1800000>; | ||
| 33 | regulator-max-microvolt = <1800000>; | ||
| 34 | gpio = <&gpio 5 4 0>; | ||
| 35 | enable-active-high; | ||
| 36 | regulator-boot-on; | ||
| 37 | }; | ||
| 38 | |||
| 39 | lcd_reg: regulator@1 { | ||
| 40 | compatible = "regulator-fixed"; | ||
| 41 | regulator-name = "lcd_reg"; | ||
| 42 | regulator-min-microvolt = <1800000>; | ||
| 43 | regulator-max-microvolt = <1800000>; | ||
| 44 | gpio = <&gpio 5 0 0>; | ||
| 45 | enable-active-high; | ||
| 46 | regulator-boot-on; | ||
| 47 | }; | ||
| 48 | |||
| 49 | sd_reg: regulator@2 { | ||
| 50 | compatible = "regulator-fixed"; | ||
| 51 | regulator-name = "sd_reg"; | ||
| 52 | regulator-min-microvolt = <1800000>; | ||
| 53 | regulator-max-microvolt = <1800000>; | ||
| 54 | gpio = <&gpio 5 5 0>; | ||
| 55 | enable-active-high; | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | |||
| 59 | leds { | 27 | leds { |
| 60 | compatible = "gpio-leds"; | 28 | compatible = "gpio-leds"; |
| 61 | 29 | ||
| @@ -69,10 +37,59 @@ | |||
| 69 | linux,default-trigger = "heartbeat"; | 37 | linux,default-trigger = "heartbeat"; |
| 70 | }; | 38 | }; |
| 71 | }; | 39 | }; |
| 40 | |||
| 41 | panel: panel { | ||
| 42 | compatible = "sharp,lq035q7db03"; | ||
| 43 | power-supply = <®_lcd>; | ||
| 44 | |||
| 45 | port { | ||
| 46 | panel_input: endpoint { | ||
| 47 | remote-endpoint = <&cldc_output>; | ||
| 48 | }; | ||
| 49 | }; | ||
| 50 | }; | ||
| 51 | |||
| 52 | reg_backlight: regulator-backlight { | ||
| 53 | compatible = "regulator-fixed"; | ||
| 54 | regulator-name = "backlight"; | ||
| 55 | regulator-min-microvolt = <1800000>; | ||
| 56 | regulator-max-microvolt = <1800000>; | ||
| 57 | gpio = <&gpio 5 4 0>; | ||
| 58 | enable-active-high; | ||
| 59 | regulator-boot-on; | ||
| 60 | }; | ||
| 61 | |||
| 62 | reg_lcd: regulator-lcd { | ||
| 63 | compatible = "regulator-fixed"; | ||
| 64 | regulator-name = "lcd"; | ||
| 65 | regulator-min-microvolt = <1800000>; | ||
| 66 | regulator-max-microvolt = <1800000>; | ||
| 67 | gpio = <&gpio 5 0 0>; | ||
| 68 | enable-active-high; | ||
| 69 | regulator-boot-on; | ||
| 70 | }; | ||
| 71 | |||
| 72 | reg_sd: regulator-sd { | ||
| 73 | compatible = "regulator-fixed"; | ||
| 74 | regulator-name = "sd"; | ||
| 75 | regulator-min-microvolt = <3300000>; | ||
| 76 | regulator-max-microvolt = <3300000>; | ||
| 77 | gpio = <&gpio 5 5 0>; | ||
| 78 | enable-active-high; | ||
| 79 | regulator-boot-on; | ||
| 80 | }; | ||
| 72 | }; | 81 | }; |
| 73 | 82 | ||
| 74 | &clcd { | 83 | &clcd { |
| 84 | max-memory-bandwidth = <18710000>; | ||
| 75 | status = "okay"; | 85 | status = "okay"; |
| 86 | |||
| 87 | port { | ||
| 88 | cldc_output: endpoint { | ||
| 89 | remote-endpoint = <&panel_input>; | ||
| 90 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | ||
| 91 | }; | ||
| 92 | }; | ||
| 76 | }; | 93 | }; |
| 77 | 94 | ||
| 78 | &i2c1 { | 95 | &i2c1 { |
| @@ -130,7 +147,7 @@ | |||
| 130 | cd-gpios = <&gpio 3 1 0>; | 147 | cd-gpios = <&gpio 3 1 0>; |
| 131 | cd-inverted; | 148 | cd-inverted; |
| 132 | bus-width = <4>; | 149 | bus-width = <4>; |
| 133 | vmmc-supply = <&sd_reg>; | 150 | vmmc-supply = <®_sd>; |
| 134 | status = "okay"; | 151 | status = "okay"; |
| 135 | }; | 152 | }; |
| 136 | 153 | ||
diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi index b7303a4e4236..20b38f4ade37 100644 --- a/arch/arm/boot/dts/lpc32xx.dtsi +++ b/arch/arm/boot/dts/lpc32xx.dtsi | |||
| @@ -11,12 +11,12 @@ | |||
| 11 | * http://www.gnu.org/copyleft/gpl.html | 11 | * http://www.gnu.org/copyleft/gpl.html |
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | #include "skeleton.dtsi" | ||
| 15 | |||
| 16 | #include <dt-bindings/clock/lpc32xx-clock.h> | 14 | #include <dt-bindings/clock/lpc32xx-clock.h> |
| 17 | #include <dt-bindings/interrupt-controller/irq.h> | 15 | #include <dt-bindings/interrupt-controller/irq.h> |
| 18 | 16 | ||
| 19 | / { | 17 | / { |
| 18 | #address-cells = <1>; | ||
| 19 | #size-cells = <1>; | ||
| 20 | compatible = "nxp,lpc3220"; | 20 | compatible = "nxp,lpc3220"; |
| 21 | interrupt-parent = <&mic>; | 21 | interrupt-parent = <&mic>; |
| 22 | 22 | ||
| @@ -139,11 +139,11 @@ | |||
| 139 | }; | 139 | }; |
| 140 | 140 | ||
| 141 | clcd: clcd@31040000 { | 141 | clcd: clcd@31040000 { |
| 142 | compatible = "arm,pl110", "arm,primecell"; | 142 | compatible = "arm,pl111", "arm,primecell"; |
| 143 | reg = <0x31040000 0x1000>; | 143 | reg = <0x31040000 0x1000>; |
| 144 | interrupts = <14 IRQ_TYPE_LEVEL_HIGH>; | 144 | interrupts = <14 IRQ_TYPE_LEVEL_HIGH>; |
| 145 | clocks = <&clk LPC32XX_CLK_LCD>; | 145 | clocks = <&clk LPC32XX_CLK_LCD>, <&clk LPC32XX_CLK_LCD>; |
| 146 | clock-names = "apb_pclk"; | 146 | clock-names = "clcdclk", "apb_pclk"; |
| 147 | status = "disabled"; | 147 | status = "disabled"; |
| 148 | }; | 148 | }; |
| 149 | 149 | ||
| @@ -230,7 +230,7 @@ | |||
| 230 | status = "disabled"; | 230 | status = "disabled"; |
| 231 | }; | 231 | }; |
| 232 | 232 | ||
| 233 | i2s1: i2s@2009C000 { | 233 | i2s1: i2s@2009c000 { |
| 234 | compatible = "nxp,lpc3220-i2s"; | 234 | compatible = "nxp,lpc3220-i2s"; |
| 235 | reg = <0x2009C000 0x1000>; | 235 | reg = <0x2009C000 0x1000>; |
| 236 | }; | 236 | }; |
| @@ -273,7 +273,7 @@ | |||
| 273 | status = "disabled"; | 273 | status = "disabled"; |
| 274 | }; | 274 | }; |
| 275 | 275 | ||
| 276 | i2c1: i2c@400A0000 { | 276 | i2c1: i2c@400a0000 { |
| 277 | compatible = "nxp,pnx-i2c"; | 277 | compatible = "nxp,pnx-i2c"; |
| 278 | reg = <0x400A0000 0x100>; | 278 | reg = <0x400A0000 0x100>; |
| 279 | interrupt-parent = <&sic1>; | 279 | interrupt-parent = <&sic1>; |
| @@ -284,7 +284,7 @@ | |||
| 284 | clocks = <&clk LPC32XX_CLK_I2C1>; | 284 | clocks = <&clk LPC32XX_CLK_I2C1>; |
| 285 | }; | 285 | }; |
| 286 | 286 | ||
| 287 | i2c2: i2c@400A8000 { | 287 | i2c2: i2c@400a8000 { |
| 288 | compatible = "nxp,pnx-i2c"; | 288 | compatible = "nxp,pnx-i2c"; |
| 289 | reg = <0x400A8000 0x100>; | 289 | reg = <0x400A8000 0x100>; |
| 290 | interrupt-parent = <&sic1>; | 290 | interrupt-parent = <&sic1>; |
| @@ -295,7 +295,7 @@ | |||
| 295 | clocks = <&clk LPC32XX_CLK_I2C2>; | 295 | clocks = <&clk LPC32XX_CLK_I2C2>; |
| 296 | }; | 296 | }; |
| 297 | 297 | ||
| 298 | mpwm: mpwm@400E8000 { | 298 | mpwm: mpwm@400e8000 { |
| 299 | compatible = "nxp,lpc3220-motor-pwm"; | 299 | compatible = "nxp,lpc3220-motor-pwm"; |
| 300 | reg = <0x400E8000 0x78>; | 300 | reg = <0x400E8000 0x78>; |
| 301 | status = "disabled"; | 301 | status = "disabled"; |
| @@ -394,7 +394,7 @@ | |||
| 394 | #gpio-cells = <3>; /* bank, pin, flags */ | 394 | #gpio-cells = <3>; /* bank, pin, flags */ |
| 395 | }; | 395 | }; |
| 396 | 396 | ||
| 397 | timer4: timer@4002C000 { | 397 | timer4: timer@4002c000 { |
| 398 | compatible = "nxp,lpc3220-timer"; | 398 | compatible = "nxp,lpc3220-timer"; |
| 399 | reg = <0x4002C000 0x1000>; | 399 | reg = <0x4002C000 0x1000>; |
| 400 | interrupts = <3 IRQ_TYPE_LEVEL_LOW>; | 400 | interrupts = <3 IRQ_TYPE_LEVEL_LOW>; |
| @@ -412,7 +412,7 @@ | |||
| 412 | status = "disabled"; | 412 | status = "disabled"; |
| 413 | }; | 413 | }; |
| 414 | 414 | ||
| 415 | watchdog: watchdog@4003C000 { | 415 | watchdog: watchdog@4003c000 { |
| 416 | compatible = "nxp,pnx4008-wdt"; | 416 | compatible = "nxp,pnx4008-wdt"; |
| 417 | reg = <0x4003C000 0x1000>; | 417 | reg = <0x4003C000 0x1000>; |
| 418 | clocks = <&clk LPC32XX_CLK_WDOG>; | 418 | clocks = <&clk LPC32XX_CLK_WDOG>; |
| @@ -451,7 +451,7 @@ | |||
| 451 | status = "disabled"; | 451 | status = "disabled"; |
| 452 | }; | 452 | }; |
| 453 | 453 | ||
| 454 | timer1: timer@4004C000 { | 454 | timer1: timer@4004c000 { |
| 455 | compatible = "nxp,lpc3220-timer"; | 455 | compatible = "nxp,lpc3220-timer"; |
| 456 | reg = <0x4004C000 0x1000>; | 456 | reg = <0x4004C000 0x1000>; |
| 457 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; | 457 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; |
| @@ -462,7 +462,9 @@ | |||
| 462 | key: key@40050000 { | 462 | key: key@40050000 { |
| 463 | compatible = "nxp,lpc3220-key"; | 463 | compatible = "nxp,lpc3220-key"; |
| 464 | reg = <0x40050000 0x1000>; | 464 | reg = <0x40050000 0x1000>; |
| 465 | interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; | 465 | clocks = <&clk LPC32XX_CLK_KEY>; |
| 466 | interrupt-parent = <&sic1>; | ||
| 467 | interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; | ||
| 466 | status = "disabled"; | 468 | status = "disabled"; |
| 467 | }; | 469 | }; |
| 468 | 470 | ||
| @@ -475,7 +477,7 @@ | |||
| 475 | status = "disabled"; | 477 | status = "disabled"; |
| 476 | }; | 478 | }; |
| 477 | 479 | ||
| 478 | pwm1: pwm@4005C000 { | 480 | pwm1: pwm@4005c000 { |
| 479 | compatible = "nxp,lpc3220-pwm"; | 481 | compatible = "nxp,lpc3220-pwm"; |
| 480 | reg = <0x4005C000 0x4>; | 482 | reg = <0x4005C000 0x4>; |
| 481 | clocks = <&clk LPC32XX_CLK_PWM1>; | 483 | clocks = <&clk LPC32XX_CLK_PWM1>; |
| @@ -484,7 +486,7 @@ | |||
| 484 | status = "disabled"; | 486 | status = "disabled"; |
| 485 | }; | 487 | }; |
| 486 | 488 | ||
| 487 | pwm2: pwm@4005C004 { | 489 | pwm2: pwm@4005c004 { |
| 488 | compatible = "nxp,lpc3220-pwm"; | 490 | compatible = "nxp,lpc3220-pwm"; |
| 489 | reg = <0x4005C004 0x4>; | 491 | reg = <0x4005C004 0x4>; |
| 490 | clocks = <&clk LPC32XX_CLK_PWM2>; | 492 | clocks = <&clk LPC32XX_CLK_PWM2>; |
diff --git a/arch/arm/boot/dts/lpc4350-hitex-eval.dts b/arch/arm/boot/dts/lpc4350-hitex-eval.dts index 8b973f537d3a..93d0c2e99e7c 100644 --- a/arch/arm/boot/dts/lpc4350-hitex-eval.dts +++ b/arch/arm/boot/dts/lpc4350-hitex-eval.dts | |||
| @@ -40,8 +40,6 @@ | |||
| 40 | 40 | ||
| 41 | pca_buttons { | 41 | pca_buttons { |
| 42 | compatible = "gpio-keys-polled"; | 42 | compatible = "gpio-keys-polled"; |
| 43 | #address-cells = <1>; | ||
| 44 | #size-cells = <0>; | ||
| 45 | poll-interval = <100>; | 43 | poll-interval = <100>; |
| 46 | autorepeat; | 44 | autorepeat; |
| 47 | 45 | ||
diff --git a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts index 02b23fa29d75..224f80a4a31d 100644 --- a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts +++ b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | |||
| @@ -57,8 +57,6 @@ | |||
| 57 | compatible = "gpio-keys-polled"; | 57 | compatible = "gpio-keys-polled"; |
| 58 | pinctrl-names = "default"; | 58 | pinctrl-names = "default"; |
| 59 | pinctrl-0 = <&gpio_joystick_pins>; | 59 | pinctrl-0 = <&gpio_joystick_pins>; |
| 60 | #address-cells = <1>; | ||
| 61 | #size-cells = <0>; | ||
| 62 | poll-interval = <100>; | 60 | poll-interval = <100>; |
| 63 | autorepeat; | 61 | autorepeat; |
| 64 | 62 | ||
diff --git a/arch/arm/boot/dts/lpc4357-myd-lpc4357.dts b/arch/arm/boot/dts/lpc4357-myd-lpc4357.dts new file mode 100644 index 000000000000..1f84654df50c --- /dev/null +++ b/arch/arm/boot/dts/lpc4357-myd-lpc4357.dts | |||
| @@ -0,0 +1,619 @@ | |||
| 1 | // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) | ||
| 2 | /* | ||
| 3 | * MYIR Tech MYD-LPC4357 Development Board with 800x480 7" TFT panel | ||
| 4 | * | ||
| 5 | * Copyright (C) 2016-2018 Vladimir Zapolskiy <vz@mleia.com> | ||
| 6 | */ | ||
| 7 | |||
| 8 | /dts-v1/; | ||
| 9 | |||
| 10 | #include "lpc18xx.dtsi" | ||
| 11 | #include "lpc4357.dtsi" | ||
| 12 | |||
| 13 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | |||
| 15 | / { | ||
| 16 | model = "MYIR Tech LPC4357 Development Board"; | ||
| 17 | compatible = "myir,myd-lpc4357", "nxp,lpc4357"; | ||
| 18 | |||
| 19 | chosen { | ||
| 20 | stdout-path = "serial3:115200n8"; | ||
| 21 | }; | ||
| 22 | |||
| 23 | memory@28000000 { | ||
| 24 | device_type = "memory"; | ||
| 25 | reg = <0x28000000 0x2000000>; | ||
| 26 | }; | ||
| 27 | |||
| 28 | leds { | ||
| 29 | compatible = "gpio-leds"; | ||
| 30 | pinctrl-names = "default"; | ||
| 31 | pinctrl-0 = <&led_pins>; | ||
| 32 | |||
| 33 | led1 { | ||
| 34 | gpios = <&gpio LPC_GPIO(6,15) GPIO_ACTIVE_LOW>; | ||
| 35 | default-state = "off"; | ||
| 36 | }; | ||
| 37 | |||
| 38 | led2 { | ||
| 39 | gpios = <&gpio LPC_GPIO(6,16) GPIO_ACTIVE_LOW>; | ||
| 40 | default-state = "off"; | ||
| 41 | }; | ||
| 42 | |||
| 43 | led3 { | ||
| 44 | gpios = <&gpio LPC_GPIO(6,17) GPIO_ACTIVE_LOW>; | ||
| 45 | default-state = "off"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | led4 { | ||
| 49 | gpios = <&gpio LPC_GPIO(6,10) GPIO_ACTIVE_LOW>; | ||
| 50 | default-state = "off"; | ||
| 51 | }; | ||
| 52 | |||
| 53 | led5 { | ||
| 54 | gpios = <&gpio LPC_GPIO(7,14) GPIO_ACTIVE_LOW>; | ||
| 55 | default-state = "off"; | ||
| 56 | }; | ||
| 57 | |||
| 58 | led6 { | ||
| 59 | gpios = <&gpio LPC_GPIO(6,14) GPIO_ACTIVE_LOW>; | ||
| 60 | default-state = "off"; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | |||
| 64 | panel: panel { | ||
| 65 | compatible = "innolux,at070tn92"; | ||
| 66 | |||
| 67 | port { | ||
| 68 | panel_input: endpoint { | ||
| 69 | remote-endpoint = <&lcdc_output>; | ||
| 70 | }; | ||
| 71 | }; | ||
| 72 | }; | ||
| 73 | |||
| 74 | vcc: vcc_fixed { | ||
| 75 | compatible = "regulator-fixed"; | ||
| 76 | regulator-name = "vcc-supply"; | ||
| 77 | regulator-min-microvolt = <3300000>; | ||
| 78 | regulator-max-microvolt = <3300000>; | ||
| 79 | }; | ||
| 80 | |||
| 81 | vmmc: vmmc_fixed { | ||
| 82 | compatible = "regulator-fixed"; | ||
| 83 | regulator-name = "vmmc-supply"; | ||
| 84 | regulator-min-microvolt = <3300000>; | ||
| 85 | regulator-max-microvolt = <3300000>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | &pinctrl { | ||
| 90 | can0_pins: can0-pins { | ||
| 91 | can_rd_cfg { | ||
| 92 | pins = "p3_1"; | ||
| 93 | function = "can0"; | ||
| 94 | input-enable; | ||
| 95 | }; | ||
| 96 | |||
| 97 | can_td_cfg { | ||
| 98 | pins = "p3_2"; | ||
| 99 | function = "can0"; | ||
| 100 | }; | ||
| 101 | }; | ||
| 102 | |||
| 103 | can1_pins: can1-pins { | ||
| 104 | can_rd_cfg { | ||
| 105 | pins = "pe_1"; | ||
| 106 | function = "can1"; | ||
| 107 | input-enable; | ||
| 108 | }; | ||
| 109 | |||
| 110 | can_td_cfg { | ||
| 111 | pins = "pe_0"; | ||
| 112 | function = "can1"; | ||
| 113 | }; | ||
| 114 | }; | ||
| 115 | |||
| 116 | emc_pins: emc-pins { | ||
| 117 | emc_addr0_22_cfg { | ||
| 118 | pins = "p2_9", "p2_10", "p2_11", "p2_12", | ||
| 119 | "p2_13", "p1_0", "p1_1", "p1_2", | ||
| 120 | "p2_8", "p2_7", "p2_6", "p2_2", | ||
| 121 | "p2_1", "p2_0", "p6_8", "p6_7", | ||
| 122 | "pd_16", "pd_15", "pe_0", "pe_1", | ||
| 123 | "pe_2", "pe_3", "pe_4"; | ||
| 124 | function = "emc"; | ||
| 125 | slew-rate = <1>; | ||
| 126 | bias-disable; | ||
| 127 | }; | ||
| 128 | |||
| 129 | emc_data0_15_cfg { | ||
| 130 | pins = "p1_7", "p1_8", "p1_9", "p1_10", | ||
| 131 | "p1_11", "p1_12", "p1_13", "p1_14", | ||
| 132 | "p5_4", "p5_5", "p5_6", "p5_7", | ||
| 133 | "p5_0", "p5_1", "p5_2", "p5_3"; | ||
| 134 | function = "emc"; | ||
| 135 | input-enable; | ||
| 136 | input-schmitt-disable; | ||
| 137 | slew-rate = <1>; | ||
| 138 | bias-disable; | ||
| 139 | }; | ||
| 140 | |||
| 141 | emc_we_oe_cfg { | ||
| 142 | pins = "p1_6", "p1_3"; | ||
| 143 | function = "emc"; | ||
| 144 | slew-rate = <1>; | ||
| 145 | bias-disable; | ||
| 146 | }; | ||
| 147 | |||
| 148 | emc_cs0_cfg { | ||
| 149 | pins = "p1_5"; | ||
| 150 | function = "emc"; | ||
| 151 | slew-rate = <1>; | ||
| 152 | bias-disable; | ||
| 153 | }; | ||
| 154 | |||
| 155 | emc_sdram_dqm0_1_cfg { | ||
| 156 | pins = "p6_12", "p6_10"; | ||
| 157 | function = "emc"; | ||
| 158 | slew-rate = <1>; | ||
| 159 | bias-disable; | ||
| 160 | }; | ||
| 161 | |||
| 162 | emc_sdram_ras_cas_cfg { | ||
| 163 | pins = "p6_5", "p6_4"; | ||
| 164 | function = "emc"; | ||
| 165 | slew-rate = <1>; | ||
| 166 | bias-disable; | ||
| 167 | }; | ||
| 168 | |||
| 169 | emc_sdram_dycs0_cfg { | ||
| 170 | pins = "p6_9"; | ||
| 171 | function = "emc"; | ||
| 172 | slew-rate = <1>; | ||
| 173 | bias-disable; | ||
| 174 | }; | ||
| 175 | |||
| 176 | emc_sdram_cke_cfg { | ||
| 177 | pins = "p6_11"; | ||
| 178 | function = "emc"; | ||
| 179 | slew-rate = <1>; | ||
| 180 | bias-disable; | ||
| 181 | }; | ||
| 182 | |||
| 183 | emc_sdram_clock_cfg { | ||
| 184 | pins = "clk0"; | ||
| 185 | function = "emc"; | ||
| 186 | input-enable; | ||
| 187 | input-schmitt-disable; | ||
| 188 | slew-rate = <1>; | ||
| 189 | bias-disable; | ||
| 190 | }; | ||
| 191 | }; | ||
| 192 | |||
| 193 | enet_rmii_pins: enet-rmii-pins { | ||
| 194 | enet_rmii_rxd_cfg { | ||
| 195 | pins = "p1_15", "p0_0"; | ||
| 196 | function = "enet"; | ||
| 197 | input-enable; | ||
| 198 | input-schmitt-disable; | ||
| 199 | slew-rate = <1>; | ||
| 200 | bias-disable; | ||
| 201 | }; | ||
| 202 | |||
| 203 | enet_rmii_txd_cfg { | ||
| 204 | pins = "p1_18", "p1_20"; | ||
| 205 | function = "enet"; | ||
| 206 | slew-rate = <1>; | ||
| 207 | bias-disable; | ||
| 208 | }; | ||
| 209 | |||
| 210 | enet_rmii_rx_dv_cfg { | ||
| 211 | pins = "p1_16"; | ||
| 212 | function = "enet"; | ||
| 213 | input-enable; | ||
| 214 | input-schmitt-disable; | ||
| 215 | bias-disable; | ||
| 216 | }; | ||
| 217 | |||
| 218 | enet_mdio_cfg { | ||
| 219 | pins = "p1_17"; | ||
| 220 | function = "enet"; | ||
| 221 | input-enable; | ||
| 222 | input-schmitt-disable; | ||
| 223 | bias-disable; | ||
| 224 | }; | ||
| 225 | |||
| 226 | enet_mdc_cfg { | ||
| 227 | pins = "pc_1"; | ||
| 228 | function = "enet"; | ||
| 229 | slew-rate = <1>; | ||
| 230 | bias-disable; | ||
| 231 | }; | ||
| 232 | |||
| 233 | enet_rmii_tx_en_cfg { | ||
| 234 | pins = "p0_1"; | ||
| 235 | function = "enet"; | ||
| 236 | bias-disable; | ||
| 237 | }; | ||
| 238 | |||
| 239 | enet_ref_clk_cfg { | ||
| 240 | pins = "p1_19"; | ||
| 241 | function = "enet"; | ||
| 242 | slew-rate = <1>; | ||
| 243 | input-enable; | ||
| 244 | input-schmitt-disable; | ||
| 245 | bias-disable; | ||
| 246 | }; | ||
| 247 | }; | ||
| 248 | |||
| 249 | i2c0_pins: i2c0-pins { | ||
| 250 | i2c0_pins_cfg { | ||
| 251 | pins = "i2c0_scl", "i2c0_sda"; | ||
| 252 | function = "i2c0"; | ||
| 253 | input-enable; | ||
| 254 | }; | ||
| 255 | }; | ||
| 256 | |||
| 257 | i2c1_pins: i2c1-pins { | ||
| 258 | i2c1_pins_cfg { | ||
| 259 | pins = "pe_15", "pe_13"; | ||
| 260 | function = "i2c1"; | ||
| 261 | input-enable; | ||
| 262 | }; | ||
| 263 | }; | ||
| 264 | |||
| 265 | lcd_pins: lcd-pins { | ||
| 266 | lcd_vd0_23_cfg { | ||
| 267 | pins = "p4_1", "p4_4", "p4_3", "p4_2", | ||
| 268 | "p8_7", "p8_6", "p8_5", "p8_4", | ||
| 269 | "p7_5", "p4_8", "p4_10", "p4_9", | ||
| 270 | "p8_3", "pb_6", "pb_5", "pb_4", | ||
| 271 | "p7_4", "p7_3", "p7_2", "p7_1", | ||
| 272 | "pb_3", "pb_2", "pb_1", "pb_0"; | ||
| 273 | function = "lcd"; | ||
| 274 | }; | ||
| 275 | |||
| 276 | lcd_vsync_en_dclk_lp_pwr_cfg { | ||
| 277 | pins = "p4_5", "p4_6", "p4_7", "p7_6", "p7_7"; | ||
| 278 | function = "lcd"; | ||
| 279 | }; | ||
| 280 | }; | ||
| 281 | |||
| 282 | led_pins: led-pins { | ||
| 283 | led_1_6_cfg { | ||
| 284 | pins = "pd_1", "pd_2", "pd_3", "pc_11", "pe_14", "pd_0"; | ||
| 285 | function = "gpio"; | ||
| 286 | bias-pull-down; | ||
| 287 | }; | ||
| 288 | }; | ||
| 289 | |||
| 290 | sdmmc_pins: sdmmc-pins { | ||
| 291 | sdmmc_clk_cfg { | ||
| 292 | pins = "pc_0"; | ||
| 293 | function = "sdmmc"; | ||
| 294 | slew-rate = <1>; | ||
| 295 | bias-pull-down; | ||
| 296 | }; | ||
| 297 | |||
| 298 | sdmmc_cmd_dat0_3_cfg { | ||
| 299 | pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10"; | ||
| 300 | function = "sdmmc"; | ||
| 301 | input-enable; | ||
| 302 | input-schmitt-disable; | ||
| 303 | slew-rate = <1>; | ||
| 304 | bias-disable; | ||
| 305 | }; | ||
| 306 | |||
| 307 | sdmmc_cd_cfg { | ||
| 308 | pins = "pc_8"; | ||
| 309 | function = "sdmmc"; | ||
| 310 | input-enable; | ||
| 311 | bias-pull-down; | ||
| 312 | }; | ||
| 313 | }; | ||
| 314 | |||
| 315 | spifi_pins: spifi-pins { | ||
| 316 | spifi_sck_cfg { | ||
| 317 | pins = "p3_3"; | ||
| 318 | function = "spifi"; | ||
| 319 | input-enable; | ||
| 320 | input-schmitt-disable; | ||
| 321 | slew-rate = <1>; | ||
| 322 | bias-disable; | ||
| 323 | }; | ||
| 324 | |||
| 325 | spifi_mosi_miso_sio2_sio3_cfg { | ||
| 326 | pins = "p3_7", "p3_6", "p3_5", "p3_4"; | ||
| 327 | function = "spifi"; | ||
| 328 | input-enable; | ||
| 329 | input-schmitt-disable; | ||
| 330 | slew-rate = <1>; | ||
| 331 | bias-disable; | ||
| 332 | }; | ||
| 333 | |||
| 334 | spifi_cs_cfg { | ||
| 335 | pins = "p3_8"; | ||
| 336 | function = "spifi"; | ||
| 337 | bias-disable; | ||
| 338 | }; | ||
| 339 | }; | ||
| 340 | |||
| 341 | ssp1_pins: ssp1-pins { | ||
| 342 | ssp1_sck_cfg { | ||
| 343 | pins = "pf_4"; | ||
| 344 | function = "ssp1"; | ||
| 345 | slew-rate = <1>; | ||
| 346 | bias-pull-down; | ||
| 347 | }; | ||
| 348 | |||
| 349 | ssp1_miso_cfg { | ||
| 350 | pins = "pf_6"; | ||
| 351 | function = "ssp1"; | ||
| 352 | input-enable; | ||
| 353 | input-schmitt-disable; | ||
| 354 | slew-rate = <1>; | ||
| 355 | bias-pull-down; | ||
| 356 | }; | ||
| 357 | |||
| 358 | ssp1_mosi_cfg { | ||
| 359 | pins = "pf_7"; | ||
| 360 | function = "ssp1"; | ||
| 361 | slew-rate = <1>; | ||
| 362 | bias-pull-down; | ||
| 363 | }; | ||
| 364 | |||
| 365 | ssp1_ssel_cfg { | ||
| 366 | pins = "pf_5"; | ||
| 367 | function = "gpio"; | ||
| 368 | bias-disable; | ||
| 369 | }; | ||
| 370 | }; | ||
| 371 | |||
| 372 | uart0_pins: uart0-pins { | ||
| 373 | uart0_rxd_cfg { | ||
| 374 | pins = "pf_11"; | ||
| 375 | function = "uart0"; | ||
| 376 | input-enable; | ||
| 377 | input-schmitt-disable; | ||
| 378 | bias-disable; | ||
| 379 | }; | ||
| 380 | |||
| 381 | uart0_clk_dir_txd_cfg { | ||
| 382 | pins = "pf_8", "pf_9", "pf_10"; | ||
| 383 | function = "uart0"; | ||
| 384 | bias-pull-down; | ||
| 385 | }; | ||
| 386 | }; | ||
| 387 | |||
| 388 | uart1_pins: uart1-pins { | ||
| 389 | uart1_rxd_cfg { | ||
| 390 | pins = "pc_14"; | ||
| 391 | function = "uart1"; | ||
| 392 | bias-disable; | ||
| 393 | input-enable; | ||
| 394 | input-schmitt-disable; | ||
| 395 | }; | ||
| 396 | |||
| 397 | uart1_dtr_txd_cfg { | ||
| 398 | pins = "pc_12", "pc_13"; | ||
| 399 | function = "uart1"; | ||
| 400 | bias-pull-down; | ||
| 401 | }; | ||
| 402 | }; | ||
| 403 | |||
| 404 | uart2_pins: uart2-pins { | ||
| 405 | uart2_rxd_cfg { | ||
| 406 | pins = "pa_2"; | ||
| 407 | function = "uart2"; | ||
| 408 | bias-disable; | ||
| 409 | input-enable; | ||
| 410 | input-schmitt-disable; | ||
| 411 | }; | ||
| 412 | |||
| 413 | uart2_txd_cfg { | ||
| 414 | pins = "pa_1"; | ||
| 415 | function = "uart2"; | ||
| 416 | bias-pull-down; | ||
| 417 | }; | ||
| 418 | }; | ||
| 419 | |||
| 420 | uart3_pins: uart3-pins { | ||
| 421 | uart3_rx_cfg { | ||
| 422 | pins = "p2_4"; | ||
| 423 | function = "uart3"; | ||
| 424 | bias-disable; | ||
| 425 | input-enable; | ||
| 426 | input-schmitt-disable; | ||
| 427 | }; | ||
| 428 | |||
| 429 | uart3_tx_cfg { | ||
| 430 | pins = "p2_3"; | ||
| 431 | function = "uart3"; | ||
| 432 | bias-pull-down; | ||
| 433 | }; | ||
| 434 | }; | ||
| 435 | |||
| 436 | usb0_pins: usb0-pins { | ||
| 437 | usb0_pwr_enable_cfg { | ||
| 438 | pins = "p6_3"; | ||
| 439 | function = "usb0"; | ||
| 440 | }; | ||
| 441 | |||
| 442 | usb0_pwr_fault_cfg { | ||
| 443 | pins = "p8_0"; | ||
| 444 | function = "usb0"; | ||
| 445 | bias-disable; | ||
| 446 | input-enable; | ||
| 447 | }; | ||
| 448 | }; | ||
| 449 | }; | ||
| 450 | |||
| 451 | &adc1 { | ||
| 452 | status = "okay"; | ||
| 453 | vref-supply = <&vcc>; | ||
| 454 | }; | ||
| 455 | |||
| 456 | &can0 { | ||
| 457 | status = "okay"; | ||
| 458 | pinctrl-names = "default"; | ||
| 459 | pinctrl-0 = <&can0_pins>; | ||
| 460 | }; | ||
| 461 | |||
| 462 | /* Pin conflict with EMC, muxed by JP5 and JP6 */ | ||
| 463 | &can1 { | ||
| 464 | status = "disabled"; | ||
| 465 | pinctrl-names = "default"; | ||
| 466 | pinctrl-0 = <&can1_pins>; | ||
| 467 | }; | ||
| 468 | |||
| 469 | &emc { | ||
| 470 | status = "okay"; | ||
| 471 | pinctrl-names = "default"; | ||
| 472 | pinctrl-0 = <&emc_pins>; | ||
| 473 | |||
| 474 | cs0 { | ||
| 475 | #address-cells = <2>; | ||
| 476 | #size-cells = <1>; | ||
| 477 | ranges; | ||
| 478 | |||
| 479 | mpmc,cs = <0>; | ||
| 480 | mpmc,memory-width = <16>; | ||
| 481 | mpmc,byte-lane-low; | ||
| 482 | mpmc,write-enable-delay = <0>; | ||
| 483 | mpmc,output-enable-delay = <0>; | ||
| 484 | mpmc,read-access-delay = <70>; | ||
| 485 | mpmc,page-mode-read-delay = <70>; | ||
| 486 | |||
| 487 | /* SST/Microchip SST39VF1601 */ | ||
| 488 | flash@0,0 { | ||
| 489 | compatible = "cfi-flash"; | ||
| 490 | reg = <0 0 0x400000>; | ||
| 491 | bank-width = <2>; | ||
| 492 | }; | ||
| 493 | }; | ||
| 494 | }; | ||
| 495 | |||
| 496 | &enet_tx_clk { | ||
| 497 | clock-frequency = <50000000>; | ||
| 498 | }; | ||
| 499 | |||
| 500 | &i2c0 { | ||
| 501 | status = "okay"; | ||
| 502 | pinctrl-names = "default"; | ||
| 503 | pinctrl-0 = <&i2c0_pins>; | ||
| 504 | clock-frequency = <400000>; | ||
| 505 | }; | ||
| 506 | |||
| 507 | &i2c1 { | ||
| 508 | status = "okay"; | ||
| 509 | pinctrl-names = "default"; | ||
| 510 | pinctrl-0 = <&i2c1_pins>; | ||
| 511 | clock-frequency = <400000>; | ||
| 512 | |||
| 513 | sensor@49 { | ||
| 514 | compatible = "lm75"; | ||
| 515 | reg = <0x49>; | ||
| 516 | }; | ||
| 517 | |||
| 518 | eeprom@50 { | ||
| 519 | compatible = "atmel,24c512"; | ||
| 520 | reg = <0x50>; | ||
| 521 | }; | ||
| 522 | }; | ||
| 523 | |||
| 524 | &lcdc { | ||
| 525 | status = "okay"; | ||
| 526 | pinctrl-names = "default"; | ||
| 527 | pinctrl-0 = <&lcd_pins>; | ||
| 528 | |||
| 529 | max-memory-bandwidth = <92240000>; | ||
| 530 | |||
| 531 | port { | ||
| 532 | lcdc_output: endpoint { | ||
| 533 | remote-endpoint = <&panel_input>; | ||
| 534 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | ||
| 535 | }; | ||
| 536 | }; | ||
| 537 | }; | ||
| 538 | |||
| 539 | &mac { | ||
| 540 | status = "okay"; | ||
| 541 | phy-mode = "rmii"; | ||
| 542 | pinctrl-names = "default"; | ||
| 543 | pinctrl-0 = <&enet_rmii_pins>; | ||
| 544 | phy-handle = <&phy1>; | ||
| 545 | |||
| 546 | mdio0 { | ||
| 547 | #address-cells = <1>; | ||
| 548 | #size-cells = <0>; | ||
| 549 | compatible = "snps,dwmac-mdio"; | ||
| 550 | |||
| 551 | phy1: ethernet-phy@1 { | ||
| 552 | reg = <1>; | ||
| 553 | }; | ||
| 554 | }; | ||
| 555 | }; | ||
| 556 | |||
| 557 | &mmcsd { | ||
| 558 | status = "okay"; | ||
| 559 | pinctrl-names = "default"; | ||
| 560 | pinctrl-0 = <&sdmmc_pins>; | ||
| 561 | bus-width = <4>; | ||
| 562 | vmmc-supply = <&vmmc>; | ||
| 563 | }; | ||
| 564 | |||
| 565 | /* Pin conflict with SSP0, the latter is routed to J17 pin header */ | ||
| 566 | &spifi { | ||
| 567 | status = "okay"; | ||
| 568 | pinctrl-names = "default"; | ||
| 569 | pinctrl-0 = <&spifi_pins>; | ||
| 570 | |||
| 571 | /* Atmel AT25DF321A */ | ||
| 572 | flash { | ||
| 573 | compatible = "jedec,spi-nor"; | ||
| 574 | spi-max-frequency = <51000000>; | ||
| 575 | spi-cpol; | ||
| 576 | spi-cpha; | ||
| 577 | }; | ||
| 578 | }; | ||
| 579 | |||
| 580 | &ssp1 { | ||
| 581 | status = "okay"; | ||
| 582 | pinctrl-names = "default"; | ||
| 583 | pinctrl-0 = <&ssp1_pins>; | ||
| 584 | num-cs = <1>; | ||
| 585 | cs-gpios = <&gpio LPC_GPIO(7,19) GPIO_ACTIVE_LOW>; | ||
| 586 | }; | ||
| 587 | |||
| 588 | /* Routed to J17 pin header */ | ||
| 589 | &uart0 { | ||
| 590 | status = "okay"; | ||
| 591 | pinctrl-names = "default"; | ||
| 592 | pinctrl-0 = <&uart0_pins>; | ||
| 593 | }; | ||
| 594 | |||
| 595 | /* RS485 */ | ||
| 596 | &uart1 { | ||
| 597 | status = "okay"; | ||
| 598 | pinctrl-names = "default"; | ||
| 599 | pinctrl-0 = <&uart1_pins>; | ||
| 600 | }; | ||
| 601 | |||
| 602 | /* Routed to J17 pin header */ | ||
| 603 | &uart2 { | ||
| 604 | status = "okay"; | ||
| 605 | pinctrl-names = "default"; | ||
| 606 | pinctrl-0 = <&uart2_pins>; | ||
| 607 | }; | ||
| 608 | |||
| 609 | &uart3 { | ||
| 610 | status = "okay"; | ||
| 611 | pinctrl-names = "default"; | ||
| 612 | pinctrl-0 = <&uart3_pins>; | ||
| 613 | }; | ||
| 614 | |||
| 615 | &usb0 { | ||
| 616 | status = "okay"; | ||
| 617 | pinctrl-names = "default"; | ||
| 618 | pinctrl-0 = <&usb0_pins>; | ||
| 619 | }; | ||
diff --git a/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts b/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts index 6a83f30029ea..ba1ddd93b8f8 100644 --- a/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts +++ b/arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | / { | 19 | / { |
| 20 | model = "Moxa UC-8410A"; | 20 | model = "Moxa UC-8410A"; |
| 21 | compatible = "fsl,ls1021a-moxa-uc-8410a", "fsl,ls1021a"; | ||
| 21 | 22 | ||
| 22 | aliases { | 23 | aliases { |
| 23 | enet0_rgmii_phy = &rgmii_phy0; | 24 | enet0_rgmii_phy = &rgmii_phy0; |
diff --git a/arch/arm/boot/dts/ls1021a-qds.dts b/arch/arm/boot/dts/ls1021a-qds.dts index 923a25760516..ca60730dda40 100644 --- a/arch/arm/boot/dts/ls1021a-qds.dts +++ b/arch/arm/boot/dts/ls1021a-qds.dts | |||
| @@ -51,6 +51,7 @@ | |||
| 51 | 51 | ||
| 52 | / { | 52 | / { |
| 53 | model = "LS1021A QDS Board"; | 53 | model = "LS1021A QDS Board"; |
| 54 | compatible = "fsl,ls1021a-qds", "fsl,ls1021a"; | ||
| 54 | 55 | ||
| 55 | aliases { | 56 | aliases { |
| 56 | enet0_rgmii_phy = &rgmii_phy1; | 57 | enet0_rgmii_phy = &rgmii_phy1; |
diff --git a/arch/arm/boot/dts/ls1021a-twr.dts b/arch/arm/boot/dts/ls1021a-twr.dts index 8b48c3c7cd21..97e1fb7ea932 100644 --- a/arch/arm/boot/dts/ls1021a-twr.dts +++ b/arch/arm/boot/dts/ls1021a-twr.dts | |||
| @@ -51,6 +51,7 @@ | |||
| 51 | 51 | ||
| 52 | / { | 52 | / { |
| 53 | model = "LS1021A TWR Board"; | 53 | model = "LS1021A TWR Board"; |
| 54 | compatible = "fsl,ls1021a-twr", "fsl,ls1021a"; | ||
| 54 | 55 | ||
| 55 | aliases { | 56 | aliases { |
| 56 | enet2_rgmii_phy = &rgmii_phy1; | 57 | enet2_rgmii_phy = &rgmii_phy1; |
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi index ed0941292172..b4f2723ecd86 100644 --- a/arch/arm/boot/dts/ls1021a.dtsi +++ b/arch/arm/boot/dts/ls1021a.dtsi | |||
| @@ -45,11 +45,12 @@ | |||
| 45 | * OTHER DEALINGS IN THE SOFTWARE. | 45 | * OTHER DEALINGS IN THE SOFTWARE. |
| 46 | */ | 46 | */ |
| 47 | 47 | ||
| 48 | #include "skeleton64.dtsi" | ||
| 49 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 48 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 50 | #include <dt-bindings/thermal/thermal.h> | 49 | #include <dt-bindings/thermal/thermal.h> |
| 51 | 50 | ||
| 52 | / { | 51 | / { |
| 52 | #address-cells = <2>; | ||
| 53 | #size-cells = <2>; | ||
| 53 | compatible = "fsl,ls1021a"; | 54 | compatible = "fsl,ls1021a"; |
| 54 | interrupt-parent = <&gic>; | 55 | interrupt-parent = <&gic>; |
| 55 | 56 | ||
| @@ -88,6 +89,11 @@ | |||
| 88 | }; | 89 | }; |
| 89 | }; | 90 | }; |
| 90 | 91 | ||
| 92 | memory { | ||
| 93 | device_type = "memory"; | ||
| 94 | reg = <0x0 0x0 0x0 0x0>; | ||
| 95 | }; | ||
| 96 | |||
| 91 | sysclk: sysclk { | 97 | sysclk: sysclk { |
| 92 | compatible = "fixed-clock"; | 98 | compatible = "fixed-clock"; |
| 93 | #clock-cells = <0>; | 99 | #clock-cells = <0>; |
| @@ -125,6 +131,13 @@ | |||
| 125 | interrupt-parent = <&gic>; | 131 | interrupt-parent = <&gic>; |
| 126 | ranges; | 132 | ranges; |
| 127 | 133 | ||
| 134 | ddr: memory-controller@1080000 { | ||
| 135 | compatible = "fsl,qoriq-memory-controller"; | ||
| 136 | reg = <0x0 0x1080000 0x0 0x1000>; | ||
| 137 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; | ||
| 138 | big-endian; | ||
| 139 | }; | ||
| 140 | |||
| 128 | gic: interrupt-controller@1400000 { | 141 | gic: interrupt-controller@1400000 { |
| 129 | compatible = "arm,gic-400", "arm,cortex-a7-gic"; | 142 | compatible = "arm,gic-400", "arm,cortex-a7-gic"; |
| 130 | #interrupt-cells = <3>; | 143 | #interrupt-cells = <3>; |
| @@ -706,6 +719,7 @@ | |||
| 706 | fsl,tmr-fiper1 = <999999995>; | 719 | fsl,tmr-fiper1 = <999999995>; |
| 707 | fsl,tmr-fiper2 = <99990>; | 720 | fsl,tmr-fiper2 = <99990>; |
| 708 | fsl,max-adj = <499999999>; | 721 | fsl,max-adj = <499999999>; |
| 722 | fsl,extts-fifo; | ||
| 709 | }; | 723 | }; |
| 710 | 724 | ||
| 711 | enet0: ethernet@2d10000 { | 725 | enet0: ethernet@2d10000 { |
| @@ -811,6 +825,7 @@ | |||
| 811 | dr_mode = "host"; | 825 | dr_mode = "host"; |
| 812 | snps,quirk-frame-length-adjustment = <0x20>; | 826 | snps,quirk-frame-length-adjustment = <0x20>; |
| 813 | snps,dis_rxdet_inp3_quirk; | 827 | snps,dis_rxdet_inp3_quirk; |
| 828 | snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; | ||
| 814 | }; | 829 | }; |
| 815 | 830 | ||
| 816 | pcie@3400000 { | 831 | pcie@3400000 { |
| @@ -824,6 +839,7 @@ | |||
| 824 | #size-cells = <2>; | 839 | #size-cells = <2>; |
| 825 | device_type = "pci"; | 840 | device_type = "pci"; |
| 826 | num-lanes = <4>; | 841 | num-lanes = <4>; |
| 842 | num-viewport = <6>; | ||
| 827 | bus-range = <0x0 0xff>; | 843 | bus-range = <0x0 0xff>; |
| 828 | ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ | 844 | ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ |
| 829 | 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ | 845 | 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ |
| @@ -848,6 +864,7 @@ | |||
| 848 | #size-cells = <2>; | 864 | #size-cells = <2>; |
| 849 | device_type = "pci"; | 865 | device_type = "pci"; |
| 850 | num-lanes = <4>; | 866 | num-lanes = <4>; |
| 867 | num-viewport = <6>; | ||
| 851 | bus-range = <0x0 0xff>; | 868 | bus-range = <0x0 0xff>; |
| 852 | ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ | 869 | ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ |
| 853 | 0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ | 870 | 0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */ |
diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi index e4645f612712..6f54a8897574 100644 --- a/arch/arm/boot/dts/meson.dtsi +++ b/arch/arm/boot/dts/meson.dtsi | |||
| @@ -47,9 +47,10 @@ | |||
| 47 | 47 | ||
| 48 | #include <dt-bindings/interrupt-controller/irq.h> | 48 | #include <dt-bindings/interrupt-controller/irq.h> |
| 49 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 49 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 50 | /include/ "skeleton.dtsi" | ||
| 51 | 50 | ||
| 52 | / { | 51 | / { |
| 52 | #address-cells = <1>; | ||
| 53 | #size-cells = <1>; | ||
| 53 | interrupt-parent = <&gic>; | 54 | interrupt-parent = <&gic>; |
| 54 | 55 | ||
| 55 | L2: l2-cache-controller@c4200000 { | 56 | L2: l2-cache-controller@c4200000 { |
| @@ -72,6 +73,13 @@ | |||
| 72 | #size-cells = <1>; | 73 | #size-cells = <1>; |
| 73 | ranges = <0x0 0xc1100000 0x200000>; | 74 | ranges = <0x0 0xc1100000 0x200000>; |
| 74 | 75 | ||
| 76 | hhi: system-controller@4000 { | ||
| 77 | compatible = "amlogic,meson-hhi-sysctrl", | ||
| 78 | "simple-mfd", | ||
| 79 | "syscon"; | ||
| 80 | reg = <0x4000 0x400>; | ||
| 81 | }; | ||
| 82 | |||
| 75 | assist: assist@7c00 { | 83 | assist: assist@7c00 { |
| 76 | compatible = "amlogic,meson-mx-assist", "syscon"; | 84 | compatible = "amlogic,meson-mx-assist", "syscon"; |
| 77 | reg = <0x7c00 0x200>; | 85 | reg = <0x7c00 0x200>; |
| @@ -274,7 +282,7 @@ | |||
| 274 | compatible = "amlogic,meson6-dwmac", "snps,dwmac"; | 282 | compatible = "amlogic,meson6-dwmac", "snps,dwmac"; |
| 275 | reg = <0xc9410000 0x10000 | 283 | reg = <0xc9410000 0x10000 |
| 276 | 0xc1108108 0x4>; | 284 | 0xc1108108 0x4>; |
| 277 | interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; | 285 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; |
| 278 | interrupt-names = "macirq"; | 286 | interrupt-names = "macirq"; |
| 279 | status = "disabled"; | 287 | status = "disabled"; |
| 280 | }; | 288 | }; |
diff --git a/arch/arm/boot/dts/meson6-atv1200.dts b/arch/arm/boot/dts/meson6-atv1200.dts index fc48cff71ddf..997e69c5963e 100644 --- a/arch/arm/boot/dts/meson6-atv1200.dts +++ b/arch/arm/boot/dts/meson6-atv1200.dts | |||
| @@ -61,6 +61,7 @@ | |||
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | memory { | 63 | memory { |
| 64 | device_type = "memory"; | ||
| 64 | reg = <0x40000000 0x80000000>; | 65 | reg = <0x40000000 0x80000000>; |
| 65 | }; | 66 | }; |
| 66 | }; | 67 | }; |
diff --git a/arch/arm/boot/dts/meson6.dtsi b/arch/arm/boot/dts/meson6.dtsi index ca978ab952cd..65585255910a 100644 --- a/arch/arm/boot/dts/meson6.dtsi +++ b/arch/arm/boot/dts/meson6.dtsi | |||
| @@ -70,6 +70,14 @@ | |||
| 70 | }; | 70 | }; |
| 71 | }; | 71 | }; |
| 72 | 72 | ||
| 73 | apb2: bus@d0000000 { | ||
| 74 | compatible = "simple-bus"; | ||
| 75 | reg = <0xd0000000 0x40000>; | ||
| 76 | #address-cells = <1>; | ||
| 77 | #size-cells = <1>; | ||
| 78 | ranges = <0x0 0xd0000000 0x40000>; | ||
| 79 | }; | ||
| 80 | |||
| 73 | xtal: xtal-clk { | 81 | xtal: xtal-clk { |
| 74 | compatible = "fixed-clock"; | 82 | compatible = "fixed-clock"; |
| 75 | clock-frequency = <24000000>; | 83 | clock-frequency = <24000000>; |
diff --git a/arch/arm/boot/dts/meson8-minix-neo-x8.dts b/arch/arm/boot/dts/meson8-minix-neo-x8.dts index 55fb090a40ef..8686abd5de7f 100644 --- a/arch/arm/boot/dts/meson8-minix-neo-x8.dts +++ b/arch/arm/boot/dts/meson8-minix-neo-x8.dts | |||
| @@ -57,6 +57,7 @@ | |||
| 57 | }; | 57 | }; |
| 58 | 58 | ||
| 59 | memory { | 59 | memory { |
| 60 | device_type = "memory"; | ||
| 60 | reg = <0x40000000 0x80000000>; | 61 | reg = <0x40000000 0x80000000>; |
| 61 | }; | 62 | }; |
| 62 | 63 | ||
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi index e5cd325d7ea8..a9781243453e 100644 --- a/arch/arm/boot/dts/meson8.dtsi +++ b/arch/arm/boot/dts/meson8.dtsi | |||
| @@ -166,6 +166,32 @@ | |||
| 166 | }; | 166 | }; |
| 167 | }; | 167 | }; |
| 168 | 168 | ||
| 169 | gpu_opp_table: gpu-opp-table { | ||
| 170 | compatible = "operating-points-v2"; | ||
| 171 | |||
| 172 | opp-182150000 { | ||
| 173 | opp-hz = /bits/ 64 <182150000>; | ||
| 174 | opp-microvolt = <1150000>; | ||
| 175 | }; | ||
| 176 | opp-318750000 { | ||
| 177 | opp-hz = /bits/ 64 <318750000>; | ||
| 178 | opp-microvolt = <1150000>; | ||
| 179 | }; | ||
| 180 | opp-425000000 { | ||
| 181 | opp-hz = /bits/ 64 <425000000>; | ||
| 182 | opp-microvolt = <1150000>; | ||
| 183 | }; | ||
| 184 | opp-510000000 { | ||
| 185 | opp-hz = /bits/ 64 <510000000>; | ||
| 186 | opp-microvolt = <1150000>; | ||
| 187 | }; | ||
| 188 | opp-637500000 { | ||
| 189 | opp-hz = /bits/ 64 <637500000>; | ||
| 190 | opp-microvolt = <1150000>; | ||
| 191 | turbo-mode; | ||
| 192 | }; | ||
| 193 | }; | ||
| 194 | |||
| 169 | pmu { | 195 | pmu { |
| 170 | compatible = "arm,cortex-a9-pmu"; | 196 | compatible = "arm,cortex-a9-pmu"; |
| 171 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, | 197 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -201,6 +227,46 @@ | |||
| 201 | no-map; | 227 | no-map; |
| 202 | }; | 228 | }; |
| 203 | }; | 229 | }; |
| 230 | |||
| 231 | apb: bus@d0000000 { | ||
| 232 | compatible = "simple-bus"; | ||
| 233 | reg = <0xd0000000 0x200000>; | ||
| 234 | #address-cells = <1>; | ||
| 235 | #size-cells = <1>; | ||
| 236 | ranges = <0x0 0xd0000000 0x200000>; | ||
| 237 | |||
| 238 | mali: gpu@c0000 { | ||
| 239 | compatible = "amlogic,meson8-mali", "arm,mali-450"; | ||
| 240 | reg = <0xc0000 0x40000>; | ||
| 241 | interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, | ||
| 242 | <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | ||
| 243 | <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, | ||
| 244 | <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, | ||
| 245 | <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, | ||
| 246 | <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, | ||
| 247 | <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, | ||
| 248 | <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, | ||
| 249 | <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, | ||
| 250 | <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>, | ||
| 251 | <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, | ||
| 252 | <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, | ||
| 253 | <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, | ||
| 254 | <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>, | ||
| 255 | <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>, | ||
| 256 | <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>, | ||
| 257 | <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, | ||
| 258 | <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; | ||
| 259 | interrupt-names = "gp", "gpmmu", "pp", "pmu", | ||
| 260 | "pp0", "ppmmu0", "pp1", "ppmmu1", | ||
| 261 | "pp2", "ppmmu2", "pp4", "ppmmu4", | ||
| 262 | "pp5", "ppmmu5", "pp6", "ppmmu6"; | ||
| 263 | resets = <&reset RESET_MALI>; | ||
| 264 | clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; | ||
| 265 | clock-names = "bus", "core"; | ||
| 266 | operating-points-v2 = <&gpu_opp_table>; | ||
| 267 | switch-delay = <0xffff>; | ||
| 268 | }; | ||
| 269 | }; | ||
| 204 | }; /* end of / */ | 270 | }; /* end of / */ |
| 205 | 271 | ||
| 206 | &aobus { | 272 | &aobus { |
| @@ -261,13 +327,6 @@ | |||
| 261 | }; | 327 | }; |
| 262 | 328 | ||
| 263 | &cbus { | 329 | &cbus { |
| 264 | clkc: clock-controller@4000 { | ||
| 265 | #clock-cells = <1>; | ||
| 266 | #reset-cells = <1>; | ||
| 267 | compatible = "amlogic,meson8-clkc"; | ||
| 268 | reg = <0x8000 0x4>, <0x4000 0x400>; | ||
| 269 | }; | ||
| 270 | |||
| 271 | reset: reset-controller@4404 { | 330 | reset: reset-controller@4404 { |
| 272 | compatible = "amlogic,meson8b-reset"; | 331 | compatible = "amlogic,meson8b-reset"; |
| 273 | reg = <0x4404 0x9c>; | 332 | reg = <0x4404 0x9c>; |
| @@ -390,6 +449,11 @@ | |||
| 390 | compatible = "amlogic,meson8-efuse"; | 449 | compatible = "amlogic,meson8-efuse"; |
| 391 | clocks = <&clkc CLKID_EFUSE>; | 450 | clocks = <&clkc CLKID_EFUSE>; |
| 392 | clock-names = "core"; | 451 | clock-names = "core"; |
| 452 | |||
| 453 | temperature_calib: calib@1f4 { | ||
| 454 | /* only the upper two bytes are relevant */ | ||
| 455 | reg = <0x1f4 0x4>; | ||
| 456 | }; | ||
| 393 | }; | 457 | }; |
| 394 | 458 | ||
| 395 | ðmac { | 459 | ðmac { |
| @@ -402,6 +466,14 @@ | |||
| 402 | status = "okay"; | 466 | status = "okay"; |
| 403 | }; | 467 | }; |
| 404 | 468 | ||
| 469 | &hhi { | ||
| 470 | clkc: clock-controller { | ||
| 471 | compatible = "amlogic,meson8-clkc"; | ||
| 472 | #clock-cells = <1>; | ||
| 473 | #reset-cells = <1>; | ||
| 474 | }; | ||
| 475 | }; | ||
| 476 | |||
| 405 | &hwrng { | 477 | &hwrng { |
| 406 | compatible = "amlogic,meson8-rng", "amlogic,meson-rng"; | 478 | compatible = "amlogic,meson8-rng", "amlogic,meson-rng"; |
| 407 | clocks = <&clkc CLKID_RNG0>; | 479 | clocks = <&clkc CLKID_RNG0>; |
| @@ -469,6 +541,9 @@ | |||
| 469 | clocks = <&clkc CLKID_XTAL>, | 541 | clocks = <&clkc CLKID_XTAL>, |
| 470 | <&clkc CLKID_SAR_ADC>; | 542 | <&clkc CLKID_SAR_ADC>; |
| 471 | clock-names = "clkin", "core"; | 543 | clock-names = "clkin", "core"; |
| 544 | amlogic,hhi-sysctrl = <&hhi>; | ||
| 545 | nvmem-cells = <&temperature_calib>; | ||
| 546 | nvmem-cell-names = "temperature_calib"; | ||
| 472 | }; | 547 | }; |
| 473 | 548 | ||
| 474 | &sdio { | 549 | &sdio { |
diff --git a/arch/arm/boot/dts/meson8b-ec100.dts b/arch/arm/boot/dts/meson8b-ec100.dts index 0872f6e3abf5..3ca9638fad09 100644 --- a/arch/arm/boot/dts/meson8b-ec100.dts +++ b/arch/arm/boot/dts/meson8b-ec100.dts | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | memory { | 25 | memory { |
| 26 | device_type = "memory"; | ||
| 26 | reg = <0x40000000 0x40000000>; | 27 | reg = <0x40000000 0x40000000>; |
| 27 | }; | 28 | }; |
| 28 | 29 | ||
| @@ -64,6 +65,11 @@ | |||
| 64 | timeout-ms = <20000>; | 65 | timeout-ms = <20000>; |
| 65 | }; | 66 | }; |
| 66 | 67 | ||
| 68 | iio-hwmon { | ||
| 69 | compatible = "iio-hwmon"; | ||
| 70 | io-channels = <&saradc 8>; | ||
| 71 | }; | ||
| 72 | |||
| 67 | leds { | 73 | leds { |
| 68 | compatible = "gpio-leds"; | 74 | compatible = "gpio-leds"; |
| 69 | 75 | ||
| @@ -83,6 +89,9 @@ | |||
| 83 | }; | 89 | }; |
| 84 | 90 | ||
| 85 | usb_vbus: regulator-usb-vbus { | 91 | usb_vbus: regulator-usb-vbus { |
| 92 | /* | ||
| 93 | * Silergy SY6288CCAC-GP 2A Power Distribution Switch. | ||
| 94 | */ | ||
| 86 | compatible = "regulator-fixed"; | 95 | compatible = "regulator-fixed"; |
| 87 | 96 | ||
| 88 | regulator-name = "USB_VBUS"; | 97 | regulator-name = "USB_VBUS"; |
| @@ -90,11 +99,20 @@ | |||
| 90 | regulator-min-microvolt = <5000000>; | 99 | regulator-min-microvolt = <5000000>; |
| 91 | regulator-max-microvolt = <5000000>; | 100 | regulator-max-microvolt = <5000000>; |
| 92 | 101 | ||
| 102 | vin-supply = <&vcc_5v>; | ||
| 103 | |||
| 104 | /* | ||
| 105 | * signal name from the schematics: USB_PWR_EN | ||
| 106 | */ | ||
| 93 | gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | 107 | gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; |
| 94 | enable-active-high; | 108 | enable-active-high; |
| 95 | }; | 109 | }; |
| 96 | 110 | ||
| 97 | vcc_5v: regulator-vcc5v { | 111 | vcc_5v: regulator-vcc5v { |
| 112 | /* | ||
| 113 | * supplied by the main power input which called PWR_5V_STB | ||
| 114 | * in the schematics | ||
| 115 | */ | ||
| 98 | compatible = "regulator-fixed"; | 116 | compatible = "regulator-fixed"; |
| 99 | 117 | ||
| 100 | regulator-name = "VCC5V"; | 118 | regulator-name = "VCC5V"; |
| @@ -102,6 +120,9 @@ | |||
| 102 | regulator-min-microvolt = <5000000>; | 120 | regulator-min-microvolt = <5000000>; |
| 103 | regulator-max-microvolt = <5000000>; | 121 | regulator-max-microvolt = <5000000>; |
| 104 | 122 | ||
| 123 | /* | ||
| 124 | * signal name from the schematics: 3V3_5V_EN | ||
| 125 | */ | ||
| 105 | gpio = <&gpio GPIODV_29 GPIO_ACTIVE_LOW>; | 126 | gpio = <&gpio GPIODV_29 GPIO_ACTIVE_LOW>; |
| 106 | 127 | ||
| 107 | regulator-boot-on; | 128 | regulator-boot-on; |
| @@ -109,12 +130,18 @@ | |||
| 109 | }; | 130 | }; |
| 110 | 131 | ||
| 111 | vcck: regulator-vcck { | 132 | vcck: regulator-vcck { |
| 133 | /* | ||
| 134 | * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz | ||
| 135 | * Synchronous Step Down Regulator. | ||
| 136 | */ | ||
| 112 | compatible = "pwm-regulator"; | 137 | compatible = "pwm-regulator"; |
| 113 | 138 | ||
| 114 | regulator-name = "VCCK"; | 139 | regulator-name = "VCCK"; |
| 115 | regulator-min-microvolt = <860000>; | 140 | regulator-min-microvolt = <860000>; |
| 116 | regulator-max-microvolt = <1140000>; | 141 | regulator-max-microvolt = <1140000>; |
| 117 | 142 | ||
| 143 | vin-supply = <&vcc_5v>; | ||
| 144 | |||
| 118 | pwms = <&pwm_cd 0 1148 0>; | 145 | pwms = <&pwm_cd 0 1148 0>; |
| 119 | pwm-dutycycle-range = <100 0>; | 146 | pwm-dutycycle-range = <100 0>; |
| 120 | 147 | ||
| @@ -123,19 +150,66 @@ | |||
| 123 | }; | 150 | }; |
| 124 | 151 | ||
| 125 | vcc_1v8: regulator-vcc1v8 { | 152 | vcc_1v8: regulator-vcc1v8 { |
| 153 | /* | ||
| 154 | * ABLIC S-1339D18-M5001-GP | ||
| 155 | */ | ||
| 126 | compatible = "regulator-fixed"; | 156 | compatible = "regulator-fixed"; |
| 127 | 157 | ||
| 128 | regulator-name = "VCC1V8"; | 158 | regulator-name = "VCC1V8"; |
| 129 | regulator-min-microvolt = <1800000>; | 159 | regulator-min-microvolt = <1800000>; |
| 130 | regulator-max-microvolt = <1800000>; | 160 | regulator-max-microvolt = <1800000>; |
| 161 | |||
| 162 | vin-supply = <&vcc_3v3>; | ||
| 131 | }; | 163 | }; |
| 132 | 164 | ||
| 133 | vcc_3v3: regulator-vcc3v3 { | 165 | vcc_3v3: regulator-vcc3v3 { |
| 166 | /* | ||
| 167 | * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz | ||
| 168 | * Synchronous Step Down Regulator. Also called | ||
| 169 | * VDDIO_AO3.3V in the schematics. | ||
| 170 | */ | ||
| 134 | compatible = "regulator-fixed"; | 171 | compatible = "regulator-fixed"; |
| 135 | 172 | ||
| 136 | regulator-name = "VCC3V3"; | 173 | regulator-name = "VCC3V3"; |
| 137 | regulator-min-microvolt = <3300000>; | 174 | regulator-min-microvolt = <3300000>; |
| 138 | regulator-max-microvolt = <3300000>; | 175 | regulator-max-microvolt = <3300000>; |
| 176 | |||
| 177 | vin-supply = <&vcc_5v>; | ||
| 178 | }; | ||
| 179 | |||
| 180 | vcc_ddr3: regulator-vcc-ddr3 { | ||
| 181 | /* | ||
| 182 | * Silergy SY8089AAC-GP 2A continuous, 3A peak, 1MHz | ||
| 183 | * Synchronous Step Down Regulator. Also called | ||
| 184 | * DDR3_1.5V in the schematics. | ||
| 185 | */ | ||
| 186 | compatible = "regulator-fixed"; | ||
| 187 | |||
| 188 | regulator-name = "VCC_DDR3_1V5"; | ||
| 189 | regulator-min-microvolt = <1500000>; | ||
| 190 | regulator-max-microvolt = <1500000>; | ||
| 191 | |||
| 192 | vin-supply = <&vcc_5v>; | ||
| 193 | |||
| 194 | regulator-boot-on; | ||
| 195 | regulator-always-on; | ||
| 196 | }; | ||
| 197 | |||
| 198 | vcc_rtc: regulator-vcc-rtc { | ||
| 199 | /* | ||
| 200 | * Global Mixed-mode Technology Inc. G918T12U-GP | ||
| 201 | */ | ||
| 202 | compatible = "regulator-fixed"; | ||
| 203 | |||
| 204 | regulator-name = "VCC_RTC"; | ||
| 205 | regulator-min-microvolt = <900000>; | ||
| 206 | regulator-max-microvolt = <900000>; | ||
| 207 | |||
| 208 | /* | ||
| 209 | * When the board is powered then the input is VCC3V3, | ||
| 210 | * otherwise power is taken from the coin cell battery. | ||
| 211 | */ | ||
| 212 | vin-supply = <&vcc_3v3>; | ||
| 139 | }; | 213 | }; |
| 140 | }; | 214 | }; |
| 141 | 215 | ||
| @@ -164,6 +238,10 @@ | |||
| 164 | eth_phy0: ethernet-phy@0 { | 238 | eth_phy0: ethernet-phy@0 { |
| 165 | /* IC Plus IP101A/G (0x02430c54) */ | 239 | /* IC Plus IP101A/G (0x02430c54) */ |
| 166 | reg = <0>; | 240 | reg = <0>; |
| 241 | icplus,select-interrupt; | ||
| 242 | interrupt-parent = <&gpio_intc>; | ||
| 243 | /* GPIOH_3 */ | ||
| 244 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; | ||
| 167 | }; | 245 | }; |
| 168 | }; | 246 | }; |
| 169 | }; | 247 | }; |
| @@ -205,13 +283,62 @@ | |||
| 205 | cap-sd-highspeed; | 283 | cap-sd-highspeed; |
| 206 | disable-wp; | 284 | disable-wp; |
| 207 | 285 | ||
| 208 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 286 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
| 209 | cd-inverted; | ||
| 210 | 287 | ||
| 211 | vmmc-supply = <&vcc_3v3>; | 288 | vmmc-supply = <&vcc_3v3>; |
| 212 | }; | 289 | }; |
| 213 | }; | 290 | }; |
| 214 | 291 | ||
| 292 | &gpio_ao { | ||
| 293 | gpio-line-names = "Linux_TX", "Linux_RX", | ||
| 294 | "SLP_S5_N", "USB2_OC_FLAG#", | ||
| 295 | "HUB_RST", "USB_PWR_EN", | ||
| 296 | "I2S_IN", "SLP_S1_N", | ||
| 297 | "TCK", "TMS", "TDI", "TDO", | ||
| 298 | "HDMI_CEC", "5640_IRQ", | ||
| 299 | "MUTE", "S805_TEST#"; | ||
| 300 | }; | ||
| 301 | |||
| 302 | &gpio { | ||
| 303 | gpio-line-names = /* Bank GPIOX */ | ||
| 304 | "WIFI_SD_D0", "WIFI_SD_D1", "WIFI_SD_D2", | ||
| 305 | "WIFI_SD_D3", "BTPCM_DOUT", "BTPCM_DIN", | ||
| 306 | "BTPCM_SYNC", "BTPCM_CLK", "WIFI_SD_CLK", | ||
| 307 | "WIFI_SD_CMD", "WIFI_32K", "WIFI_PWREN", | ||
| 308 | "UART_B_TX", "UART_B_RX", "UART_B_CTS_N", | ||
| 309 | "UART_B_RTS_N", "BT_EN", "WIFI_WAKE_HOST", | ||
| 310 | /* Bank GPIOY */ | ||
| 311 | "", "", "", "", "", "", "", "", "", "", | ||
| 312 | "", "", | ||
| 313 | /* Bank GPIODV */ | ||
| 314 | "VCCK_PWM_C", "I2C_SDA_A", "I2C_SCL_A", | ||
| 315 | "I2C_SDA_B", "I2C_SCL_B", "VDDEE_PWM_D", | ||
| 316 | "VDDEE_PWM 3V3_5V_EN", | ||
| 317 | /* Bank GPIOH */ | ||
| 318 | "HDMI_HPD", "HDMI_I2C_SDA", "HDMI_I2C_SCL", | ||
| 319 | "RMII_IRQ", "RMII_RST#", "RMII_TXD1", | ||
| 320 | "RMII_TXD0", "AV_select_1", "AV_select_2", | ||
| 321 | "MCU_Control_S", | ||
| 322 | /* Bank CARD */ | ||
| 323 | "SD_D1_B", "SD_D0_B", "SD_CLK_8726MX", | ||
| 324 | "SD_CMD_8726MX", "SD_D3_B", "SD_D2_B", | ||
| 325 | "CARD_EN_DET (CARD_DET)", | ||
| 326 | /* Bank BOOT */ | ||
| 327 | "NAND_D0 (EMMC)", "NAND_D1 (EMMC)", | ||
| 328 | "NAND_D2 (EMMC)", "NAND_D3 (EMMC)", | ||
| 329 | "NAND_D4 (EMMC)", "NAND_D5 (EMMC)", | ||
| 330 | "NAND_D6 (EMMC)", "NAND_D7 (EMMC)", | ||
| 331 | "NAND_CS1 (EMMC)", "NAND_CS2 iNAND_RS1 (EMMC)", | ||
| 332 | "NAND_nR/B iNAND_CMD (EMMC)", "NAND_ALE (EMMC)", | ||
| 333 | "NAND_CLE (EMMC)", "nRE_S1 NAND_nRE (EMMC)", | ||
| 334 | "nWE_S1 NAND_nWE (EMMC)", "", "", "SPI_CS", | ||
| 335 | /* Bank DIF */ | ||
| 336 | "RMII_RXD1", "RMII_RXD0", "RMII_CRS_DV", | ||
| 337 | "RMII_50M_IN", "GPIODIF_4", "GPIODIF_5", | ||
| 338 | "RMII_TXEN", "CPUETH_25MOUT", "RMII_MDC", | ||
| 339 | "RMII_MDIO"; | ||
| 340 | }; | ||
| 341 | |||
| 215 | &pwm_cd { | 342 | &pwm_cd { |
| 216 | status = "okay"; | 343 | status = "okay"; |
| 217 | pinctrl-0 = <&pwm_c1_pins>; | 344 | pinctrl-0 = <&pwm_c1_pins>; |
diff --git a/arch/arm/boot/dts/meson8b-mxq.dts b/arch/arm/boot/dts/meson8b-mxq.dts index 5c9b76af8d42..08ddd7fb0bf8 100644 --- a/arch/arm/boot/dts/meson8b-mxq.dts +++ b/arch/arm/boot/dts/meson8b-mxq.dts | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | memory { | 62 | memory { |
| 63 | device_type = "memory"; | ||
| 63 | reg = <0x40000000 0x40000000>; | 64 | reg = <0x40000000 0x40000000>; |
| 64 | }; | 65 | }; |
| 65 | }; | 66 | }; |
diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts index 58669abda259..3b0e0f8fbc23 100644 --- a/arch/arm/boot/dts/meson8b-odroidc1.dts +++ b/arch/arm/boot/dts/meson8b-odroidc1.dts | |||
| @@ -62,6 +62,7 @@ | |||
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| 64 | memory { | 64 | memory { |
| 65 | device_type = "memory"; | ||
| 65 | reg = <0x40000000 0x40000000>; | 66 | reg = <0x40000000 0x40000000>; |
| 66 | }; | 67 | }; |
| 67 | 68 | ||
| @@ -118,6 +119,11 @@ | |||
| 118 | 1800000 1>; | 119 | 1800000 1>; |
| 119 | }; | 120 | }; |
| 120 | 121 | ||
| 122 | iio-hwmon { | ||
| 123 | compatible = "iio-hwmon"; | ||
| 124 | io-channels = <&saradc 8>; | ||
| 125 | }; | ||
| 126 | |||
| 121 | vcc_1v8: regulator-vcc-1v8 { | 127 | vcc_1v8: regulator-vcc-1v8 { |
| 122 | /* | 128 | /* |
| 123 | * RICHTEK RT9179 configured for a fixed output voltage of | 129 | * RICHTEK RT9179 configured for a fixed output voltage of |
| @@ -221,7 +227,6 @@ | |||
| 221 | /* Realtek RTL8211F (0x001cc916) */ | 227 | /* Realtek RTL8211F (0x001cc916) */ |
| 222 | eth_phy: ethernet-phy@0 { | 228 | eth_phy: ethernet-phy@0 { |
| 223 | reg = <0>; | 229 | reg = <0>; |
| 224 | eee-broken-1000t; | ||
| 225 | interrupt-parent = <&gpio_intc>; | 230 | interrupt-parent = <&gpio_intc>; |
| 226 | /* GPIOH_3 */ | 231 | /* GPIOH_3 */ |
| 227 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; | 232 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; |
| @@ -273,8 +278,7 @@ | |||
| 273 | cap-sd-highspeed; | 278 | cap-sd-highspeed; |
| 274 | disable-wp; | 279 | disable-wp; |
| 275 | 280 | ||
| 276 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 281 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
| 277 | cd-inverted; | ||
| 278 | 282 | ||
| 279 | vmmc-supply = <&tflash_vdd>; | 283 | vmmc-supply = <&tflash_vdd>; |
| 280 | vqmmc-supply = <&tf_io>; | 284 | vqmmc-supply = <&tf_io>; |
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi index 22d775460767..fe84a8c3ce81 100644 --- a/arch/arm/boot/dts/meson8b.dtsi +++ b/arch/arm/boot/dts/meson8b.dtsi | |||
| @@ -158,6 +158,32 @@ | |||
| 158 | }; | 158 | }; |
| 159 | }; | 159 | }; |
| 160 | 160 | ||
| 161 | gpu_opp_table: gpu-opp-table { | ||
| 162 | compatible = "operating-points-v2"; | ||
| 163 | |||
| 164 | opp-255000000 { | ||
| 165 | opp-hz = /bits/ 64 <255000000>; | ||
| 166 | opp-microvolt = <1150000>; | ||
| 167 | }; | ||
| 168 | opp-364300000 { | ||
| 169 | opp-hz = /bits/ 64 <364300000>; | ||
| 170 | opp-microvolt = <1150000>; | ||
| 171 | }; | ||
| 172 | opp-425000000 { | ||
| 173 | opp-hz = /bits/ 64 <425000000>; | ||
| 174 | opp-microvolt = <1150000>; | ||
| 175 | }; | ||
| 176 | opp-510000000 { | ||
| 177 | opp-hz = /bits/ 64 <510000000>; | ||
| 178 | opp-microvolt = <1150000>; | ||
| 179 | }; | ||
| 180 | opp-637500000 { | ||
| 181 | opp-hz = /bits/ 64 <637500000>; | ||
| 182 | opp-microvolt = <1150000>; | ||
| 183 | turbo-mode; | ||
| 184 | }; | ||
| 185 | }; | ||
| 186 | |||
| 161 | pmu { | 187 | pmu { |
| 162 | compatible = "arm,cortex-a5-pmu"; | 188 | compatible = "arm,cortex-a5-pmu"; |
| 163 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, | 189 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -178,6 +204,34 @@ | |||
| 178 | no-map; | 204 | no-map; |
| 179 | }; | 205 | }; |
| 180 | }; | 206 | }; |
| 207 | |||
| 208 | apb: bus@d0000000 { | ||
| 209 | compatible = "simple-bus"; | ||
| 210 | reg = <0xd0000000 0x200000>; | ||
| 211 | #address-cells = <1>; | ||
| 212 | #size-cells = <1>; | ||
| 213 | ranges = <0x0 0xd0000000 0x200000>; | ||
| 214 | |||
| 215 | mali: gpu@c0000 { | ||
| 216 | compatible = "amlogic,meson8b-mali", "arm,mali-450"; | ||
| 217 | reg = <0xc0000 0x40000>; | ||
| 218 | interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, | ||
| 219 | <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, | ||
| 220 | <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, | ||
| 221 | <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, | ||
| 222 | <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, | ||
| 223 | <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, | ||
| 224 | <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, | ||
| 225 | <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
| 226 | interrupt-names = "gp", "gpmmu", "pp", "pmu", | ||
| 227 | "pp0", "ppmmu0", "pp1", "ppmmu1"; | ||
| 228 | resets = <&reset RESET_MALI>; | ||
| 229 | clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; | ||
| 230 | clock-names = "bus", "core"; | ||
| 231 | operating-points-v2 = <&gpu_opp_table>; | ||
| 232 | switch-delay = <0xffff>; | ||
| 233 | }; | ||
| 234 | }; | ||
| 181 | }; /* end of / */ | 235 | }; /* end of / */ |
| 182 | 236 | ||
| 183 | &aobus { | 237 | &aobus { |
| @@ -222,13 +276,6 @@ | |||
| 222 | }; | 276 | }; |
| 223 | 277 | ||
| 224 | &cbus { | 278 | &cbus { |
| 225 | clkc: clock-controller@4000 { | ||
| 226 | #clock-cells = <1>; | ||
| 227 | #reset-cells = <1>; | ||
| 228 | compatible = "amlogic,meson8b-clkc"; | ||
| 229 | reg = <0x8000 0x4>, <0x4000 0x400>; | ||
| 230 | }; | ||
| 231 | |||
| 232 | reset: reset-controller@4404 { | 279 | reset: reset-controller@4404 { |
| 233 | compatible = "amlogic,meson8b-reset"; | 280 | compatible = "amlogic,meson8b-reset"; |
| 234 | reg = <0x4404 0x9c>; | 281 | reg = <0x4404 0x9c>; |
| @@ -270,9 +317,7 @@ | |||
| 270 | groups = "eth_tx_clk", | 317 | groups = "eth_tx_clk", |
| 271 | "eth_tx_en", | 318 | "eth_tx_en", |
| 272 | "eth_txd1_0", | 319 | "eth_txd1_0", |
| 273 | "eth_txd1_1", | ||
| 274 | "eth_txd0_0", | 320 | "eth_txd0_0", |
| 275 | "eth_txd0_1", | ||
| 276 | "eth_rx_clk", | 321 | "eth_rx_clk", |
| 277 | "eth_rx_dv", | 322 | "eth_rx_dv", |
| 278 | "eth_rxd1", | 323 | "eth_rxd1", |
| @@ -281,7 +326,9 @@ | |||
| 281 | "eth_mdc", | 326 | "eth_mdc", |
| 282 | "eth_ref_clk", | 327 | "eth_ref_clk", |
| 283 | "eth_txd2", | 328 | "eth_txd2", |
| 284 | "eth_txd3"; | 329 | "eth_txd3", |
| 330 | "eth_rxd3", | ||
| 331 | "eth_rxd2"; | ||
| 285 | function = "ethernet"; | 332 | function = "ethernet"; |
| 286 | bias-disable; | 333 | bias-disable; |
| 287 | }; | 334 | }; |
| @@ -360,6 +407,11 @@ | |||
| 360 | compatible = "amlogic,meson8b-efuse"; | 407 | compatible = "amlogic,meson8b-efuse"; |
| 361 | clocks = <&clkc CLKID_EFUSE>; | 408 | clocks = <&clkc CLKID_EFUSE>; |
| 362 | clock-names = "core"; | 409 | clock-names = "core"; |
| 410 | |||
| 411 | temperature_calib: calib@1f4 { | ||
| 412 | /* only the upper two bytes are relevant */ | ||
| 413 | reg = <0x1f4 0x4>; | ||
| 414 | }; | ||
| 363 | }; | 415 | }; |
| 364 | 416 | ||
| 365 | ðmac { | 417 | ðmac { |
| @@ -383,6 +435,14 @@ | |||
| 383 | status = "okay"; | 435 | status = "okay"; |
| 384 | }; | 436 | }; |
| 385 | 437 | ||
| 438 | &hhi { | ||
| 439 | clkc: clock-controller { | ||
| 440 | compatible = "amlogic,meson8-clkc"; | ||
| 441 | #clock-cells = <1>; | ||
| 442 | #reset-cells = <1>; | ||
| 443 | }; | ||
| 444 | }; | ||
| 445 | |||
| 386 | &hwrng { | 446 | &hwrng { |
| 387 | compatible = "amlogic,meson8b-rng", "amlogic,meson-rng"; | 447 | compatible = "amlogic,meson8b-rng", "amlogic,meson-rng"; |
| 388 | clocks = <&clkc CLKID_RNG0>; | 448 | clocks = <&clkc CLKID_RNG0>; |
| @@ -450,6 +510,9 @@ | |||
| 450 | clocks = <&clkc CLKID_XTAL>, | 510 | clocks = <&clkc CLKID_XTAL>, |
| 451 | <&clkc CLKID_SAR_ADC>; | 511 | <&clkc CLKID_SAR_ADC>; |
| 452 | clock-names = "clkin", "core"; | 512 | clock-names = "clkin", "core"; |
| 513 | amlogic,hhi-sysctrl = <&hhi>; | ||
| 514 | nvmem-cells = <&temperature_calib>; | ||
| 515 | nvmem-cell-names = "temperature_calib"; | ||
| 453 | }; | 516 | }; |
| 454 | 517 | ||
| 455 | &sdio { | 518 | &sdio { |
diff --git a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts index f5853610b20b..29d830ae4bf4 100644 --- a/arch/arm/boot/dts/meson8m2-mxiii-plus.dts +++ b/arch/arm/boot/dts/meson8m2-mxiii-plus.dts | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | memory { | 30 | memory { |
| 31 | device_type = "memory"; | ||
| 31 | reg = <0x40000000 0x80000000>; | 32 | reg = <0x40000000 0x80000000>; |
| 32 | }; | 33 | }; |
| 33 | 34 | ||
| @@ -44,6 +45,11 @@ | |||
| 44 | }; | 45 | }; |
| 45 | }; | 46 | }; |
| 46 | 47 | ||
| 48 | iio-hwmon { | ||
| 49 | compatible = "iio-hwmon"; | ||
| 50 | io-channels = <&saradc 8>; | ||
| 51 | }; | ||
| 52 | |||
| 47 | vcc_3v3: regulator-vcc3v3 { | 53 | vcc_3v3: regulator-vcc3v3 { |
| 48 | compatible = "regulator-fixed"; | 54 | compatible = "regulator-fixed"; |
| 49 | regulator-name = "VCC3V3"; | 55 | regulator-name = "VCC3V3"; |
| @@ -206,8 +212,7 @@ | |||
| 206 | cap-sd-highspeed; | 212 | cap-sd-highspeed; |
| 207 | disable-wp; | 213 | disable-wp; |
| 208 | 214 | ||
| 209 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 215 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>; |
| 210 | cd-inverted; | ||
| 211 | 216 | ||
| 212 | vmmc-supply = <&vcc_3v3>; | 217 | vmmc-supply = <&vcc_3v3>; |
| 213 | }; | 218 | }; |
diff --git a/arch/arm/boot/dts/meson8m2.dtsi b/arch/arm/boot/dts/meson8m2.dtsi index d1a28c2adac5..bb87b251e16d 100644 --- a/arch/arm/boot/dts/meson8m2.dtsi +++ b/arch/arm/boot/dts/meson8m2.dtsi | |||
| @@ -50,6 +50,10 @@ | |||
| 50 | }; | 50 | }; |
| 51 | }; | 51 | }; |
| 52 | 52 | ||
| 53 | &saradc { | ||
| 54 | compatible = "amlogic,meson8m2-saradc", "amlogic,meson-saradc"; | ||
| 55 | }; | ||
| 56 | |||
| 53 | &wdt { | 57 | &wdt { |
| 54 | compatible = "amlogic,meson8m2-wdt", "amlogic,meson8b-wdt"; | 58 | compatible = "amlogic,meson8m2-wdt", "amlogic,meson8b-wdt"; |
| 55 | }; | 59 | }; |
diff --git a/arch/arm/boot/dts/milbeaut-m10v-evb.dts b/arch/arm/boot/dts/milbeaut-m10v-evb.dts new file mode 100644 index 000000000000..614f60c6b0a2 --- /dev/null +++ b/arch/arm/boot/dts/milbeaut-m10v-evb.dts | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* Socionext Milbeaut M10V Evaluation Board */ | ||
| 3 | /dts-v1/; | ||
| 4 | #include "milbeaut-m10v.dtsi" | ||
| 5 | |||
| 6 | / { | ||
| 7 | model = "Socionext M10V EVB"; | ||
| 8 | compatible = "socionext,milbeaut-m10v-evb", "socionext,sc2000a"; | ||
| 9 | |||
| 10 | aliases { | ||
| 11 | serial0 = &uart1; | ||
| 12 | }; | ||
| 13 | |||
| 14 | chosen { | ||
| 15 | bootargs = "rootwait earlycon"; | ||
| 16 | stdout-path = "serial0:115200n8"; | ||
| 17 | }; | ||
| 18 | |||
| 19 | clocks { | ||
| 20 | uclk40xi: uclk40xi { | ||
| 21 | compatible = "fixed-clock"; | ||
| 22 | #clock-cells = <0>; | ||
| 23 | clock-frequency = <40000000>; | ||
| 24 | }; | ||
| 25 | }; | ||
| 26 | |||
| 27 | memory@40000000 { | ||
| 28 | device_type = "memory"; | ||
| 29 | reg = <0x40000000 0x80000000>; | ||
| 30 | }; | ||
| 31 | |||
| 32 | }; | ||
diff --git a/arch/arm/boot/dts/milbeaut-m10v.dtsi b/arch/arm/boot/dts/milbeaut-m10v.dtsi new file mode 100644 index 000000000000..aa7c6caeb750 --- /dev/null +++ b/arch/arm/boot/dts/milbeaut-m10v.dtsi | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 4 | #include <dt-bindings/gpio/gpio.h> | ||
| 5 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 6 | |||
| 7 | / { | ||
| 8 | compatible = "socionext,sc2000a"; | ||
| 9 | interrupt-parent = <&gic>; | ||
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | |||
| 13 | cpus { | ||
| 14 | #address-cells = <1>; | ||
| 15 | #size-cells = <0>; | ||
| 16 | enable-method = "socionext,milbeaut-m10v-smp"; | ||
| 17 | cpu@f00 { | ||
| 18 | device_type = "cpu"; | ||
| 19 | compatible = "arm,cortex-a7"; | ||
| 20 | reg = <0xf00>; | ||
| 21 | }; | ||
| 22 | cpu@f01 { | ||
| 23 | device_type = "cpu"; | ||
| 24 | compatible = "arm,cortex-a7"; | ||
| 25 | reg = <0xf01>; | ||
| 26 | }; | ||
| 27 | cpu@f02 { | ||
| 28 | device_type = "cpu"; | ||
| 29 | compatible = "arm,cortex-a7"; | ||
| 30 | reg = <0xf02>; | ||
| 31 | }; | ||
| 32 | cpu@f03 { | ||
| 33 | device_type = "cpu"; | ||
| 34 | compatible = "arm,cortex-a7"; | ||
| 35 | reg = <0xf03>; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | |||
| 39 | timer { /* The Generic Timer */ | ||
| 40 | compatible = "arm,armv7-timer"; | ||
| 41 | interrupts = <GIC_PPI 13 | ||
| 42 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
| 43 | <GIC_PPI 14 | ||
| 44 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
| 45 | <GIC_PPI 11 | ||
| 46 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
| 47 | <GIC_PPI 10 | ||
| 48 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
| 49 | clock-frequency = <40000000>; | ||
| 50 | always-on; | ||
| 51 | }; | ||
| 52 | |||
| 53 | soc { | ||
| 54 | compatible = "simple-bus"; | ||
| 55 | #address-cells = <1>; | ||
| 56 | #size-cells = <1>; | ||
| 57 | ranges; | ||
| 58 | interrupt-parent = <&gic>; | ||
| 59 | |||
| 60 | gic: interrupt-controller@1d000000 { | ||
| 61 | compatible = "arm,cortex-a7-gic"; | ||
| 62 | interrupt-controller; | ||
| 63 | #interrupt-cells = <3>; | ||
| 64 | reg = <0x1d001000 0x1000>, | ||
| 65 | <0x1d002000 0x1000>; /* CPU I/f base and size */ | ||
| 66 | }; | ||
| 67 | |||
| 68 | timer@1e000050 { /* 32-bit Reload Timers */ | ||
| 69 | compatible = "socionext,milbeaut-timer"; | ||
| 70 | reg = <0x1e000050 0x20>; | ||
| 71 | interrupts = <0 91 4>; | ||
| 72 | }; | ||
| 73 | |||
| 74 | uart1: serial@1e700010 { /* PE4, PE5 */ | ||
| 75 | /* Enable this as ttyUSI0 */ | ||
| 76 | compatible = "socionext,milbeaut-usio-uart"; | ||
| 77 | reg = <0x1e700010 0x10>; | ||
| 78 | interrupts = <0 141 0x4>, <0 149 0x4>; | ||
| 79 | interrupt-names = "rx", "tx"; | ||
| 80 | }; | ||
| 81 | |||
| 82 | }; | ||
| 83 | |||
| 84 | sram@0 { | ||
| 85 | compatible = "mmio-sram"; | ||
| 86 | reg = <0x0 0x10000>; | ||
| 87 | #address-cells = <1>; | ||
| 88 | #size-cells = <1>; | ||
| 89 | ranges = <0 0x0 0x10000>; | ||
| 90 | smp-sram@f100 { | ||
| 91 | compatible = "socionext,milbeaut-smp-sram"; | ||
| 92 | reg = <0xf100 0x20>; | ||
| 93 | }; | ||
| 94 | }; | ||
| 95 | }; | ||
diff --git a/arch/arm/boot/dts/mmp2-brownstone.dts b/arch/arm/boot/dts/mmp2-brownstone.dts index 350208c5e1ed..3da038ba5733 100644 --- a/arch/arm/boot/dts/mmp2-brownstone.dts +++ b/arch/arm/boot/dts/mmp2-brownstone.dts | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| 21 | memory { | 21 | memory { |
| 22 | device_type = "memory"; | ||
| 22 | reg = <0x00000000 0x08000000>; | 23 | reg = <0x00000000 0x08000000>; |
| 23 | }; | 24 | }; |
| 24 | 25 | ||
diff --git a/arch/arm/boot/dts/mmp2.dtsi b/arch/arm/boot/dts/mmp2.dtsi index ee03e0846740..f02fb97f515c 100644 --- a/arch/arm/boot/dts/mmp2.dtsi +++ b/arch/arm/boot/dts/mmp2.dtsi | |||
| @@ -7,10 +7,12 @@ | |||
| 7 | * publishhed by the Free Software Foundation. | 7 | * publishhed by the Free Software Foundation. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "skeleton.dtsi" | ||
| 11 | #include <dt-bindings/clock/marvell,mmp2.h> | 10 | #include <dt-bindings/clock/marvell,mmp2.h> |
| 12 | 11 | ||
| 13 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 15 | |||
| 14 | aliases { | 16 | aliases { |
| 15 | serial0 = &uart1; | 17 | serial0 = &uart1; |
| 16 | serial1 = &uart2; | 18 | serial1 = &uart2; |
diff --git a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi index ddc7a7bb33c0..f57acf8f66b9 100644 --- a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi +++ b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi | |||
| @@ -105,7 +105,7 @@ | |||
| 105 | interrupts-extended = < | 105 | interrupts-extended = < |
| 106 | &cpcap 15 0 &cpcap 14 0 &cpcap 28 0 &cpcap 19 0 | 106 | &cpcap 15 0 &cpcap 14 0 &cpcap 28 0 &cpcap 19 0 |
| 107 | &cpcap 18 0 &cpcap 17 0 &cpcap 16 0 &cpcap 49 0 | 107 | &cpcap 18 0 &cpcap 17 0 &cpcap 16 0 &cpcap 49 0 |
| 108 | &cpcap 48 1 | 108 | &cpcap 48 0 |
| 109 | >; | 109 | >; |
| 110 | interrupt-names = | 110 | interrupt-names = |
| 111 | "id_ground", "id_float", "se0conn", "vbusvld", | 111 | "id_ground", "id_float", "se0conn", "vbusvld", |
diff --git a/arch/arm/boot/dts/moxart.dtsi b/arch/arm/boot/dts/moxart.dtsi index da7b3237bfe9..cbf17656bcc7 100644 --- a/arch/arm/boot/dts/moxart.dtsi +++ b/arch/arm/boot/dts/moxart.dtsi | |||
| @@ -5,10 +5,11 @@ | |||
| 5 | * Licensed under GPLv2 or later. | 5 | * Licensed under GPLv2 or later. |
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | /include/ "skeleton.dtsi" | ||
| 9 | #include <dt-bindings/interrupt-controller/irq.h> | 8 | #include <dt-bindings/interrupt-controller/irq.h> |
| 10 | 9 | ||
| 11 | / { | 10 | / { |
| 11 | #address-cells = <1>; | ||
| 12 | #size-cells = <1>; | ||
| 12 | compatible = "moxa,moxart"; | 13 | compatible = "moxa,moxart"; |
| 13 | model = "MOXART"; | 14 | model = "MOXART"; |
| 14 | interrupt-parent = <&intc>; | 15 | interrupt-parent = <&intc>; |
diff --git a/arch/arm/boot/dts/mps2.dtsi b/arch/arm/boot/dts/mps2.dtsi index 23467390558d..96fb5a5cf4d3 100644 --- a/arch/arm/boot/dts/mps2.dtsi +++ b/arch/arm/boot/dts/mps2.dtsi | |||
| @@ -171,7 +171,7 @@ | |||
| 171 | uart0: serial@4000 { | 171 | uart0: serial@4000 { |
| 172 | compatible = "arm,mps2-uart"; | 172 | compatible = "arm,mps2-uart"; |
| 173 | reg = <0x4000 0x1000>; | 173 | reg = <0x4000 0x1000>; |
| 174 | interrupts = <0 1 12>; | 174 | interrupts = <0>, <1>, <12>; |
| 175 | clocks = <&sysclk>; | 175 | clocks = <&sysclk>; |
| 176 | status = "disabled"; | 176 | status = "disabled"; |
| 177 | }; | 177 | }; |
| @@ -179,7 +179,7 @@ | |||
| 179 | uart1: serial@5000 { | 179 | uart1: serial@5000 { |
| 180 | compatible = "arm,mps2-uart"; | 180 | compatible = "arm,mps2-uart"; |
| 181 | reg = <0x5000 0x1000>; | 181 | reg = <0x5000 0x1000>; |
| 182 | interrupts = <2 3 12>; | 182 | interrupts = <2>, <3>, <12>; |
| 183 | clocks = <&sysclk>; | 183 | clocks = <&sysclk>; |
| 184 | status = "disabled"; | 184 | status = "disabled"; |
| 185 | }; | 185 | }; |
| @@ -187,7 +187,7 @@ | |||
| 187 | uart2: serial@6000 { | 187 | uart2: serial@6000 { |
| 188 | compatible = "arm,mps2-uart"; | 188 | compatible = "arm,mps2-uart"; |
| 189 | reg = <0x6000 0x1000>; | 189 | reg = <0x6000 0x1000>; |
| 190 | interrupts = <4 5 12>; | 190 | interrupts = <4>, <5>, <12>; |
| 191 | clocks = <&sysclk>; | 191 | clocks = <&sysclk>; |
| 192 | status = "disabled"; | 192 | status = "disabled"; |
| 193 | }; | 193 | }; |
diff --git a/arch/arm/boot/dts/mt2701-evb.dts b/arch/arm/boot/dts/mt2701-evb.dts index be0edb3dae6c..88f8fd22302a 100644 --- a/arch/arm/boot/dts/mt2701-evb.dts +++ b/arch/arm/boot/dts/mt2701-evb.dts | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | compatible = "mediatek,mt2701-evb", "mediatek,mt2701"; | 13 | compatible = "mediatek,mt2701-evb", "mediatek,mt2701"; |
| 14 | 14 | ||
| 15 | memory { | 15 | memory { |
| 16 | device_type = "memory"; | ||
| 16 | reg = <0 0x80000000 0 0x40000000>; | 17 | reg = <0 0x80000000 0 0x40000000>; |
| 17 | }; | 18 | }; |
| 18 | 19 | ||
diff --git a/arch/arm/boot/dts/mt2701.dtsi b/arch/arm/boot/dts/mt2701.dtsi index 180377e56ef4..51e1305c6471 100644 --- a/arch/arm/boot/dts/mt2701.dtsi +++ b/arch/arm/boot/dts/mt2701.dtsi | |||
| @@ -12,10 +12,11 @@ | |||
| 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 13 | #include <dt-bindings/memory/mt2701-larb-port.h> | 13 | #include <dt-bindings/memory/mt2701-larb-port.h> |
| 14 | #include <dt-bindings/reset/mt2701-resets.h> | 14 | #include <dt-bindings/reset/mt2701-resets.h> |
| 15 | #include "skeleton64.dtsi" | ||
| 16 | #include "mt2701-pinfunc.h" | 15 | #include "mt2701-pinfunc.h" |
| 17 | 16 | ||
| 18 | / { | 17 | / { |
| 18 | #address-cells = <2>; | ||
| 19 | #size-cells = <2>; | ||
| 19 | compatible = "mediatek,mt2701"; | 20 | compatible = "mediatek,mt2701"; |
| 20 | interrupt-parent = <&cirq>; | 21 | interrupt-parent = <&cirq>; |
| 21 | 22 | ||
diff --git a/arch/arm/boot/dts/mt6580-evbp1.dts b/arch/arm/boot/dts/mt6580-evbp1.dts index ca137897ed60..755a0774a8ee 100644 --- a/arch/arm/boot/dts/mt6580-evbp1.dts +++ b/arch/arm/boot/dts/mt6580-evbp1.dts | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | memory { | 24 | memory { |
| 25 | device_type = "memory"; | ||
| 25 | reg = <0x80000000 0x20000000>; | 26 | reg = <0x80000000 0x20000000>; |
| 26 | }; | 27 | }; |
| 27 | }; | 28 | }; |
diff --git a/arch/arm/boot/dts/mt6580.dtsi b/arch/arm/boot/dts/mt6580.dtsi index 2bdc5ed12fca..9e17698c0609 100644 --- a/arch/arm/boot/dts/mt6580.dtsi +++ b/arch/arm/boot/dts/mt6580.dtsi | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | 7 | ||
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | 8 | #include <dt-bindings/interrupt-controller/irq.h> |
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 10 | #include "skeleton.dtsi" | ||
| 11 | 10 | ||
| 12 | / { | 11 | / { |
| 13 | compatible = "mediatek,mt6580"; | 12 | compatible = "mediatek,mt6580"; |
diff --git a/arch/arm/boot/dts/mt6589-aquaris5.dts b/arch/arm/boot/dts/mt6589-aquaris5.dts index 7bbaa1279a26..1e7079a3b449 100644 --- a/arch/arm/boot/dts/mt6589-aquaris5.dts +++ b/arch/arm/boot/dts/mt6589-aquaris5.dts | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | }; | 18 | }; |
| 19 | 19 | ||
| 20 | memory { | 20 | memory { |
| 21 | device_type = "memory"; | ||
| 21 | reg = <0x80000000 0x40000000>; | 22 | reg = <0x80000000 0x40000000>; |
| 22 | }; | 23 | }; |
| 23 | 24 | ||
diff --git a/arch/arm/boot/dts/mt6589.dtsi b/arch/arm/boot/dts/mt6589.dtsi index 28df8495686a..f3ccb70c0779 100644 --- a/arch/arm/boot/dts/mt6589.dtsi +++ b/arch/arm/boot/dts/mt6589.dtsi | |||
| @@ -7,9 +7,10 @@ | |||
| 7 | 7 | ||
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | 8 | #include <dt-bindings/interrupt-controller/irq.h> |
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 10 | #include "skeleton.dtsi" | ||
| 11 | 10 | ||
| 12 | / { | 11 | / { |
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <1>; | ||
| 13 | compatible = "mediatek,mt6589"; | 14 | compatible = "mediatek,mt6589"; |
| 14 | interrupt-parent = <&sysirq>; | 15 | interrupt-parent = <&sysirq>; |
| 15 | 16 | ||
diff --git a/arch/arm/boot/dts/mt6592-evb.dts b/arch/arm/boot/dts/mt6592-evb.dts index 02849f6548e3..5e00c1cca2d1 100644 --- a/arch/arm/boot/dts/mt6592-evb.dts +++ b/arch/arm/boot/dts/mt6592-evb.dts | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | compatible = "mediatek,mt6592-evb", "mediatek,mt6592"; | 13 | compatible = "mediatek,mt6592-evb", "mediatek,mt6592"; |
| 14 | 14 | ||
| 15 | memory { | 15 | memory { |
| 16 | device_type = "memory"; | ||
| 16 | reg = <0x80000000 0x40000000>; | 17 | reg = <0x80000000 0x40000000>; |
| 17 | }; | 18 | }; |
| 18 | }; | 19 | }; |
| 19 | |||
diff --git a/arch/arm/boot/dts/mt6592.dtsi b/arch/arm/boot/dts/mt6592.dtsi index 8696ac891d60..3716f8db951c 100644 --- a/arch/arm/boot/dts/mt6592.dtsi +++ b/arch/arm/boot/dts/mt6592.dtsi | |||
| @@ -7,9 +7,10 @@ | |||
| 7 | 7 | ||
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | 8 | #include <dt-bindings/interrupt-controller/irq.h> |
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 10 | #include "skeleton.dtsi" | ||
| 11 | 10 | ||
| 12 | / { | 11 | / { |
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <1>; | ||
| 13 | compatible = "mediatek,mt6592"; | 14 | compatible = "mediatek,mt6592"; |
| 14 | interrupt-parent = <&sysirq>; | 15 | interrupt-parent = <&sysirq>; |
| 15 | 16 | ||
diff --git a/arch/arm/boot/dts/mt7623.dtsi b/arch/arm/boot/dts/mt7623.dtsi index 98f115966391..a79f0b6c3429 100644 --- a/arch/arm/boot/dts/mt7623.dtsi +++ b/arch/arm/boot/dts/mt7623.dtsi | |||
| @@ -187,17 +187,26 @@ | |||
| 187 | cooling-maps { | 187 | cooling-maps { |
| 188 | map0 { | 188 | map0 { |
| 189 | trip = <&cpu_passive>; | 189 | trip = <&cpu_passive>; |
| 190 | cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | 190 | cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, |
| 191 | <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
| 192 | <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
| 193 | <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||
| 191 | }; | 194 | }; |
| 192 | 195 | ||
| 193 | map1 { | 196 | map1 { |
| 194 | trip = <&cpu_active>; | 197 | trip = <&cpu_active>; |
| 195 | cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | 198 | cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, |
| 199 | <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
| 200 | <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
| 201 | <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||
| 196 | }; | 202 | }; |
| 197 | 203 | ||
| 198 | map2 { | 204 | map2 { |
| 199 | trip = <&cpu_hot>; | 205 | trip = <&cpu_hot>; |
| 200 | cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | 206 | cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, |
| 207 | <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
| 208 | <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | ||
| 209 | <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | ||
| 201 | }; | 210 | }; |
| 202 | }; | 211 | }; |
| 203 | }; | 212 | }; |
diff --git a/arch/arm/boot/dts/mt8127-moose.dts b/arch/arm/boot/dts/mt8127-moose.dts index 308829b2da86..560687af87dc 100644 --- a/arch/arm/boot/dts/mt8127-moose.dts +++ b/arch/arm/boot/dts/mt8127-moose.dts | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | compatible = "mediatek,mt8127-moose", "mediatek,mt8127"; | 13 | compatible = "mediatek,mt8127-moose", "mediatek,mt8127"; |
| 14 | 14 | ||
| 15 | memory { | 15 | memory { |
| 16 | device_type = "memory"; | ||
| 16 | reg = <0 0x80000000 0 0x40000000>; | 17 | reg = <0 0x80000000 0 0x40000000>; |
| 17 | }; | 18 | }; |
| 18 | }; | 19 | }; |
diff --git a/arch/arm/boot/dts/mt8127.dtsi b/arch/arm/boot/dts/mt8127.dtsi index 3adfc6f7859c..aced173c2a52 100644 --- a/arch/arm/boot/dts/mt8127.dtsi +++ b/arch/arm/boot/dts/mt8127.dtsi | |||
| @@ -7,9 +7,10 @@ | |||
| 7 | 7 | ||
| 8 | #include <dt-bindings/interrupt-controller/irq.h> | 8 | #include <dt-bindings/interrupt-controller/irq.h> |
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 10 | #include "skeleton64.dtsi" | ||
| 11 | 10 | ||
| 12 | / { | 11 | / { |
| 12 | #address-cells = <2>; | ||
| 13 | #size-cells = <2>; | ||
| 13 | compatible = "mediatek,mt8127"; | 14 | compatible = "mediatek,mt8127"; |
| 14 | interrupt-parent = <&sysirq>; | 15 | interrupt-parent = <&sysirq>; |
| 15 | 16 | ||
diff --git a/arch/arm/boot/dts/mt8135-evbp1.dts b/arch/arm/boot/dts/mt8135-evbp1.dts index 0ace7a40a60d..f6147fe62f41 100644 --- a/arch/arm/boot/dts/mt8135-evbp1.dts +++ b/arch/arm/boot/dts/mt8135-evbp1.dts | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | compatible = "mediatek,mt8135-evbp1", "mediatek,mt8135"; | 13 | compatible = "mediatek,mt8135-evbp1", "mediatek,mt8135"; |
| 14 | 14 | ||
| 15 | memory { | 15 | memory { |
| 16 | device_type = "memory"; | ||
| 16 | reg = <0 0x80000000 0 0x40000000>; | 17 | reg = <0 0x80000000 0 0x40000000>; |
| 17 | }; | 18 | }; |
| 18 | }; | 19 | }; |
diff --git a/arch/arm/boot/dts/mt8135.dtsi b/arch/arm/boot/dts/mt8135.dtsi index 688069dc1533..0e4e835026db 100644 --- a/arch/arm/boot/dts/mt8135.dtsi +++ b/arch/arm/boot/dts/mt8135.dtsi | |||
| @@ -9,10 +9,11 @@ | |||
| 9 | #include <dt-bindings/interrupt-controller/irq.h> | 9 | #include <dt-bindings/interrupt-controller/irq.h> |
| 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 11 | #include <dt-bindings/reset/mt8135-resets.h> | 11 | #include <dt-bindings/reset/mt8135-resets.h> |
| 12 | #include "skeleton64.dtsi" | ||
| 13 | #include "mt8135-pinfunc.h" | 12 | #include "mt8135-pinfunc.h" |
| 14 | 13 | ||
| 15 | / { | 14 | / { |
| 15 | #address-cells = <2>; | ||
| 16 | #size-cells = <2>; | ||
| 16 | compatible = "mediatek,mt8135"; | 17 | compatible = "mediatek,mt8135"; |
| 17 | interrupt-parent = <&sysirq>; | 18 | interrupt-parent = <&sysirq>; |
| 18 | 19 | ||
diff --git a/arch/arm/boot/dts/nspire.dtsi b/arch/arm/boot/dts/nspire.dtsi index 1a5ae4cd107f..5a3c1f9d1832 100644 --- a/arch/arm/boot/dts/nspire.dtsi +++ b/arch/arm/boot/dts/nspire.dtsi | |||
| @@ -9,9 +9,9 @@ | |||
| 9 | * | 9 | * |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | /include/ "skeleton.dtsi" | ||
| 13 | |||
| 14 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 15 | interrupt-parent = <&intc>; | 15 | interrupt-parent = <&intc>; |
| 16 | 16 | ||
| 17 | cpus { | 17 | cpus { |
diff --git a/arch/arm/boot/dts/omap3-evm-common.dtsi b/arch/arm/boot/dts/omap3-evm-common.dtsi index 4c1227d1e79b..17c89df6ce6b 100644 --- a/arch/arm/boot/dts/omap3-evm-common.dtsi +++ b/arch/arm/boot/dts/omap3-evm-common.dtsi | |||
| @@ -122,6 +122,7 @@ | |||
| 122 | }; | 122 | }; |
| 123 | 123 | ||
| 124 | &mmc2 { | 124 | &mmc2 { |
| 125 | interrupts-extended = <&intc 86 &omap3_pmx_core 0x12e>; | ||
| 125 | vmmc-supply = <&wl12xx_vmmc>; | 126 | vmmc-supply = <&wl12xx_vmmc>; |
| 126 | non-removable; | 127 | non-removable; |
| 127 | bus-width = <4>; | 128 | bus-width = <4>; |
| @@ -132,8 +133,10 @@ | |||
| 132 | wlcore: wlcore@2 { | 133 | wlcore: wlcore@2 { |
| 133 | compatible = "ti,wl1271"; | 134 | compatible = "ti,wl1271"; |
| 134 | reg = <2>; | 135 | reg = <2>; |
| 135 | interrupt-parent = <&gpio5>; | 136 | /* gpio_149 with uart1_rts pad as wakeirq */ |
| 136 | interrupts = <21 IRQ_TYPE_EDGE_RISING>; /* gpio 149 */ | 137 | interrupts-extended = <&gpio5 21 IRQ_TYPE_EDGE_RISING>, |
| 138 | <&omap3_pmx_core 0x14e>; | ||
| 139 | interrupt-names = "irq", "wakeup"; | ||
| 137 | ref-clock-frequency = <38400000>; | 140 | ref-clock-frequency = <38400000>; |
| 138 | }; | 141 | }; |
| 139 | }; | 142 | }; |
diff --git a/arch/arm/boot/dts/omap3-evm-processor-common.dtsi b/arch/arm/boot/dts/omap3-evm-processor-common.dtsi index ce7f42f9448c..b4109f48ec18 100644 --- a/arch/arm/boot/dts/omap3-evm-processor-common.dtsi +++ b/arch/arm/boot/dts/omap3-evm-processor-common.dtsi | |||
| @@ -86,6 +86,10 @@ | |||
| 86 | OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ | 86 | OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ |
| 87 | OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ | 87 | OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ |
| 88 | OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ | 88 | OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ |
| 89 | OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat4.sdmmc2_dir_dat0 */ | ||
| 90 | OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat5.sdmmc2_dir_dat1 */ | ||
| 91 | OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat6.sdmmc2_dir_cmd */ | ||
| 92 | OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT | MUX_MODE1) /* sdmmc2_dat7.sdmmc2_clkin */ | ||
| 89 | >; | 93 | >; |
| 90 | }; | 94 | }; |
| 91 | 95 | ||
| @@ -127,9 +131,13 @@ | |||
| 127 | >; | 131 | >; |
| 128 | }; | 132 | }; |
| 129 | 133 | ||
| 134 | /* | ||
| 135 | * Note that gpio_150 pulled high with internal pull to prevent wlcore | ||
| 136 | * reset on return from off mode in idle. | ||
| 137 | */ | ||
| 130 | wl12xx_gpio: pinmux_wl12xx_gpio { | 138 | wl12xx_gpio: pinmux_wl12xx_gpio { |
| 131 | pinctrl-single,pins = < | 139 | pinctrl-single,pins = < |
| 132 | OMAP3_CORE1_IOPAD(0x2180, PIN_OUTPUT | MUX_MODE4) /* uart1_cts.gpio_150 */ | 140 | OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE7) /* uart1_cts.gpio_150 */ |
| 133 | OMAP3_CORE1_IOPAD(0x217e, PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */ | 141 | OMAP3_CORE1_IOPAD(0x217e, PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */ |
| 134 | >; | 142 | >; |
| 135 | }; | 143 | }; |
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi index e53d32691308..04f2b53d4d3d 100644 --- a/arch/arm/boot/dts/omap3-gta04.dtsi +++ b/arch/arm/boot/dts/omap3-gta04.dtsi | |||
| @@ -32,6 +32,14 @@ | |||
| 32 | display1 = &tv0; | 32 | display1 = &tv0; |
| 33 | }; | 33 | }; |
| 34 | 34 | ||
| 35 | ldo_3v3: fixedregulator { | ||
| 36 | compatible = "regulator-fixed"; | ||
| 37 | regulator-name = "ldo_3v3"; | ||
| 38 | regulator-min-microvolt = <3300000>; | ||
| 39 | regulator-max-microvolt = <3300000>; | ||
| 40 | regulator-always-on; | ||
| 41 | }; | ||
| 42 | |||
| 35 | /* fixed 26MHz oscillator */ | 43 | /* fixed 26MHz oscillator */ |
| 36 | hfclk_26m: oscillator { | 44 | hfclk_26m: oscillator { |
| 37 | #clock-cells = <0>; | 45 | #clock-cells = <0>; |
| @@ -116,6 +124,7 @@ | |||
| 116 | spi-cpol; | 124 | spi-cpol; |
| 117 | spi-cpha; | 125 | spi-cpha; |
| 118 | 126 | ||
| 127 | backlight= <&backlight>; | ||
| 119 | label = "lcd"; | 128 | label = "lcd"; |
| 120 | port { | 129 | port { |
| 121 | lcd_in: endpoint { | 130 | lcd_in: endpoint { |
| @@ -125,7 +134,7 @@ | |||
| 125 | }; | 134 | }; |
| 126 | }; | 135 | }; |
| 127 | 136 | ||
| 128 | backlight { | 137 | backlight: backlight { |
| 129 | compatible = "pwm-backlight"; | 138 | compatible = "pwm-backlight"; |
| 130 | pwms = <&pwm11 0 12000000 0>; | 139 | pwms = <&pwm11 0 12000000 0>; |
| 131 | pwm-names = "backlight"; | 140 | pwm-names = "backlight"; |
| @@ -224,6 +233,15 @@ | |||
| 224 | }; | 233 | }; |
| 225 | }; | 234 | }; |
| 226 | 235 | ||
| 236 | &omap3_pmx_wkup { | ||
| 237 | gpio1_pins: pinmux_gpio1_pins { | ||
| 238 | pinctrl-single,pins = < | ||
| 239 | OMAP3_WKUP_IOPAD(0x2a14, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_boot5.gpio_7 */ | ||
| 240 | OMAP3_WKUP_IOPAD(0x2a1a, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE4) /* sys_clkout.gpio_10 */ | ||
| 241 | >; | ||
| 242 | }; | ||
| 243 | }; | ||
| 244 | |||
| 227 | &omap3_pmx_core { | 245 | &omap3_pmx_core { |
| 228 | pinctrl-names = "default"; | 246 | pinctrl-names = "default"; |
| 229 | pinctrl-0 = < | 247 | pinctrl-0 = < |
| @@ -312,6 +330,12 @@ | |||
| 312 | >; | 330 | >; |
| 313 | }; | 331 | }; |
| 314 | 332 | ||
| 333 | gps_pins: pinmux_gps_pins { | ||
| 334 | pinctrl-single,pins = < | ||
| 335 | OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* gpio145 */ | ||
| 336 | >; | ||
| 337 | }; | ||
| 338 | |||
| 315 | hdq_pins: hdq_pins { | 339 | hdq_pins: hdq_pins { |
| 316 | pinctrl-single,pins = < | 340 | pinctrl-single,pins = < |
| 317 | OMAP3_CORE1_IOPAD(0x21c6, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda.hdq */ | 341 | OMAP3_CORE1_IOPAD(0x21c6, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda.hdq */ |
| @@ -636,6 +660,11 @@ | |||
| 636 | status = "disabled"; | 660 | status = "disabled"; |
| 637 | }; | 661 | }; |
| 638 | 662 | ||
| 663 | &gpio1 { | ||
| 664 | pinctrl-names = "default"; | ||
| 665 | pinctrl-0 = <&gpio1_pins>; | ||
| 666 | }; | ||
| 667 | |||
| 639 | &uart1 { | 668 | &uart1 { |
| 640 | pinctrl-names = "default"; | 669 | pinctrl-names = "default"; |
| 641 | pinctrl-0 = <&uart1_pins>; | 670 | pinctrl-0 = <&uart1_pins>; |
| @@ -644,6 +673,14 @@ | |||
| 644 | &uart2 { | 673 | &uart2 { |
| 645 | pinctrl-names = "default"; | 674 | pinctrl-names = "default"; |
| 646 | pinctrl-0 = <&uart2_pins>; | 675 | pinctrl-0 = <&uart2_pins>; |
| 676 | gnss: gnss { | ||
| 677 | compatible = "wi2wi,w2sg0004"; | ||
| 678 | pinctrl-names = "default"; | ||
| 679 | pinctrl-0 = <&gps_pins>; | ||
| 680 | sirf,onoff-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; | ||
| 681 | lna-supply = <&vsim>; | ||
| 682 | vcc-supply = <&ldo_3v3>; | ||
| 683 | }; | ||
| 647 | }; | 684 | }; |
| 648 | 685 | ||
| 649 | &uart3 { | 686 | &uart3 { |
| @@ -714,11 +751,7 @@ | |||
| 714 | 751 | ||
| 715 | vdda-supply = <&vdac>; | 752 | vdda-supply = <&vdac>; |
| 716 | 753 | ||
| 717 | #address-cells = <1>; | ||
| 718 | #size-cells = <0>; | ||
| 719 | |||
| 720 | port { | 754 | port { |
| 721 | reg = <0>; | ||
| 722 | venc_out: endpoint { | 755 | venc_out: endpoint { |
| 723 | remote-endpoint = <&opa_in>; | 756 | remote-endpoint = <&opa_in>; |
| 724 | ti,channels = <1>; | 757 | ti,channels = <1>; |
diff --git a/arch/arm/boot/dts/omap3-gta04a5.dts b/arch/arm/boot/dts/omap3-gta04a5.dts index bd232b1b24cb..223b47ac596e 100644 --- a/arch/arm/boot/dts/omap3-gta04a5.dts +++ b/arch/arm/boot/dts/omap3-gta04a5.dts | |||
| @@ -82,7 +82,7 @@ | |||
| 82 | 82 | ||
| 83 | /* | 83 | /* |
| 84 | * for WL183x module see | 84 | * for WL183x module see |
| 85 | * http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt | 85 | * Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt |
| 86 | */ | 86 | */ |
| 87 | 87 | ||
| 88 | &wifi_pwrseq { | 88 | &wifi_pwrseq { |
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts index 182a53991c90..826920e6b878 100644 --- a/arch/arm/boot/dts/omap3-n900.dts +++ b/arch/arm/boot/dts/omap3-n900.dts | |||
| @@ -814,7 +814,7 @@ | |||
| 814 | /* For debugging, it is often good idea to remove this GPIO. | 814 | /* For debugging, it is often good idea to remove this GPIO. |
| 815 | It means you can remove back cover (to reboot by removing | 815 | It means you can remove back cover (to reboot by removing |
| 816 | battery) and still use the MMC card. */ | 816 | battery) and still use the MMC card. */ |
| 817 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */ | 817 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */ |
| 818 | }; | 818 | }; |
| 819 | 819 | ||
| 820 | /* most boards use vaux3, only some old versions use vmmc2 instead */ | 820 | /* most boards use vaux3, only some old versions use vmmc2 instead */ |
diff --git a/arch/arm/boot/dts/omap3-n950-n9.dtsi b/arch/arm/boot/dts/omap3-n950-n9.dtsi index 0d9b85317529..e142e6c70a59 100644 --- a/arch/arm/boot/dts/omap3-n950-n9.dtsi +++ b/arch/arm/boot/dts/omap3-n950-n9.dtsi | |||
| @@ -370,6 +370,19 @@ | |||
| 370 | compatible = "ti,omap2-onenand"; | 370 | compatible = "ti,omap2-onenand"; |
| 371 | reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */ | 371 | reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */ |
| 372 | 372 | ||
| 373 | /* | ||
| 374 | * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported | ||
| 375 | * bootloader set values when booted with v4.19 using both N950 | ||
| 376 | * and N9 devices (OneNAND Manufacturer: Samsung): | ||
| 377 | * | ||
| 378 | * gpmc cs0 before gpmc_cs_program_settings: | ||
| 379 | * cs0 GPMC_CS_CONFIG1: 0xfd001202 | ||
| 380 | * cs0 GPMC_CS_CONFIG2: 0x00181800 | ||
| 381 | * cs0 GPMC_CS_CONFIG3: 0x00030300 | ||
| 382 | * cs0 GPMC_CS_CONFIG4: 0x18001804 | ||
| 383 | * cs0 GPMC_CS_CONFIG5: 0x03171d1d | ||
| 384 | * cs0 GPMC_CS_CONFIG6: 0x97080000 | ||
| 385 | */ | ||
| 373 | gpmc,sync-read; | 386 | gpmc,sync-read; |
| 374 | gpmc,sync-write; | 387 | gpmc,sync-write; |
| 375 | gpmc,burst-length = <16>; | 388 | gpmc,burst-length = <16>; |
| @@ -379,26 +392,27 @@ | |||
| 379 | gpmc,device-width = <2>; | 392 | gpmc,device-width = <2>; |
| 380 | gpmc,mux-add-data = <2>; | 393 | gpmc,mux-add-data = <2>; |
| 381 | gpmc,cs-on-ns = <0>; | 394 | gpmc,cs-on-ns = <0>; |
| 382 | gpmc,cs-rd-off-ns = <87>; | 395 | gpmc,cs-rd-off-ns = <122>; |
| 383 | gpmc,cs-wr-off-ns = <87>; | 396 | gpmc,cs-wr-off-ns = <122>; |
| 384 | gpmc,adv-on-ns = <0>; | 397 | gpmc,adv-on-ns = <0>; |
| 385 | gpmc,adv-rd-off-ns = <10>; | 398 | gpmc,adv-rd-off-ns = <15>; |
| 386 | gpmc,adv-wr-off-ns = <10>; | 399 | gpmc,adv-wr-off-ns = <15>; |
| 387 | gpmc,oe-on-ns = <15>; | 400 | gpmc,oe-on-ns = <20>; |
| 388 | gpmc,oe-off-ns = <87>; | 401 | gpmc,oe-off-ns = <122>; |
| 389 | gpmc,we-on-ns = <0>; | 402 | gpmc,we-on-ns = <0>; |
| 390 | gpmc,we-off-ns = <87>; | 403 | gpmc,we-off-ns = <122>; |
| 391 | gpmc,rd-cycle-ns = <112>; | 404 | gpmc,rd-cycle-ns = <148>; |
| 392 | gpmc,wr-cycle-ns = <112>; | 405 | gpmc,wr-cycle-ns = <148>; |
| 393 | gpmc,access-ns = <81>; | 406 | gpmc,access-ns = <117>; |
| 394 | gpmc,page-burst-access-ns = <15>; | 407 | gpmc,page-burst-access-ns = <15>; |
| 395 | gpmc,bus-turnaround-ns = <0>; | 408 | gpmc,bus-turnaround-ns = <0>; |
| 396 | gpmc,cycle2cycle-delay-ns = <0>; | 409 | gpmc,cycle2cycle-delay-ns = <0>; |
| 397 | gpmc,wait-monitoring-ns = <0>; | 410 | gpmc,wait-monitoring-ns = <0>; |
| 398 | gpmc,clk-activation-ns = <5>; | 411 | gpmc,clk-activation-ns = <10>; |
| 399 | gpmc,wr-data-mux-bus-ns = <30>; | 412 | gpmc,wr-data-mux-bus-ns = <40>; |
| 400 | gpmc,wr-access-ns = <81>; | 413 | gpmc,wr-access-ns = <117>; |
| 401 | gpmc,sync-clk-ps = <15000>; | 414 | |
| 415 | gpmc,sync-clk-ps = <15000>; /* TBC; Where this value came? */ | ||
| 402 | 416 | ||
| 403 | /* | 417 | /* |
| 404 | * MTD partition table corresponding to Nokia's MeeGo 1.2 | 418 | * MTD partition table corresponding to Nokia's MeeGo 1.2 |
diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts index 04758a2a87f0..e21ec929f096 100644 --- a/arch/arm/boot/dts/omap4-droid4-xt894.dts +++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts | |||
| @@ -359,20 +359,24 @@ | |||
| 359 | 359 | ||
| 360 | &mmc3 { | 360 | &mmc3 { |
| 361 | vmmc-supply = <&wl12xx_vmmc>; | 361 | vmmc-supply = <&wl12xx_vmmc>; |
| 362 | /* uart2_tx.sdmmc3_dat1 pad as wakeirq */ | ||
| 362 | interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH | 363 | interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH |
| 363 | &omap4_pmx_core 0xde>; | 364 | &omap4_pmx_core 0xde>; |
| 364 | 365 | interrupt-names = "irq", "wakeup"; | |
| 365 | non-removable; | 366 | non-removable; |
| 366 | bus-width = <4>; | 367 | bus-width = <4>; |
| 367 | cap-power-off-card; | 368 | cap-power-off-card; |
| 369 | keep-power-in-suspend; | ||
| 368 | 370 | ||
| 369 | #address-cells = <1>; | 371 | #address-cells = <1>; |
| 370 | #size-cells = <0>; | 372 | #size-cells = <0>; |
| 371 | wlcore: wlcore@2 { | 373 | wlcore: wlcore@2 { |
| 372 | compatible = "ti,wl1285", "ti,wl1283"; | 374 | compatible = "ti,wl1285", "ti,wl1283"; |
| 373 | reg = <2>; | 375 | reg = <2>; |
| 374 | interrupt-parent = <&gpio4>; | 376 | /* gpio_100 with gpmc_wait2 pad as wakeirq */ |
| 375 | interrupts = <4 IRQ_TYPE_EDGE_RISING>; /* gpio100 */ | 377 | interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>, |
| 378 | <&omap4_pmx_core 0x4e>; | ||
| 379 | interrupt-names = "irq", "wakeup"; | ||
| 376 | ref-clock-frequency = <26000000>; | 380 | ref-clock-frequency = <26000000>; |
| 377 | tcxo-clock-frequency = <26000000>; | 381 | tcxo-clock-frequency = <26000000>; |
| 378 | }; | 382 | }; |
| @@ -644,6 +648,17 @@ | |||
| 644 | }; | 648 | }; |
| 645 | }; | 649 | }; |
| 646 | 650 | ||
| 651 | /* Configure pwm clock source for timers 8 & 9 */ | ||
| 652 | &timer8 { | ||
| 653 | assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>; | ||
| 654 | assigned-clock-parents = <&sys_clkin_ck>; | ||
| 655 | }; | ||
| 656 | |||
| 657 | &timer9 { | ||
| 658 | assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>; | ||
| 659 | assigned-clock-parents = <&sys_clkin_ck>; | ||
| 660 | }; | ||
| 661 | |||
| 647 | /* | 662 | /* |
| 648 | * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for | 663 | * As uart1 is wired to mdm6600 with rts and cts, we can use the cts pin for |
| 649 | * uart1 wakeirq. | 664 | * uart1 wakeirq. |
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi index 27895c1604b9..926f018823a4 100644 --- a/arch/arm/boot/dts/omap4-panda-common.dtsi +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi | |||
| @@ -485,8 +485,10 @@ | |||
| 485 | wlcore: wlcore@2 { | 485 | wlcore: wlcore@2 { |
| 486 | compatible = "ti,wl1271"; | 486 | compatible = "ti,wl1271"; |
| 487 | reg = <2>; | 487 | reg = <2>; |
| 488 | interrupt-parent = <&gpio2>; | 488 | /* gpio_53 with gpmc_ncs3 pad as wakeup */ |
| 489 | interrupts = <21 IRQ_TYPE_EDGE_RISING>; /* gpio 53 */ | 489 | interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_RISING>, |
| 490 | <&omap4_pmx_core 0x3a>; | ||
| 491 | interrupt-names = "irq", "wakeup"; | ||
| 490 | ref-clock-frequency = <38400000>; | 492 | ref-clock-frequency = <38400000>; |
| 491 | }; | 493 | }; |
| 492 | }; | 494 | }; |
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index 9dc7ec7655cb..c88817bdcc56 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts | |||
| @@ -26,6 +26,9 @@ | |||
| 26 | }; | 26 | }; |
| 27 | 27 | ||
| 28 | vdd_eth: fixedregulator-vdd-eth { | 28 | vdd_eth: fixedregulator-vdd-eth { |
| 29 | pinctrl-names = "default"; | ||
| 30 | pinctrl-0 = <&enet_enable_gpio>; | ||
| 31 | |||
| 29 | compatible = "regulator-fixed"; | 32 | compatible = "regulator-fixed"; |
| 30 | regulator-name = "VDD_ETH"; | 33 | regulator-name = "VDD_ETH"; |
| 31 | regulator-min-microvolt = <3300000>; | 34 | regulator-min-microvolt = <3300000>; |
| @@ -352,6 +355,29 @@ | |||
| 352 | OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */ | 355 | OMAP4_IOPAD(0x152, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */ |
| 353 | >; | 356 | >; |
| 354 | }; | 357 | }; |
| 358 | |||
| 359 | /* gpio_48 for ENET_ENABLE */ | ||
| 360 | enet_enable_gpio: pinmux_enet_enable_gpio { | ||
| 361 | pinctrl-single,pins = < | ||
| 362 | OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* gpmc_a24.gpio_48 */ | ||
| 363 | >; | ||
| 364 | }; | ||
| 365 | |||
| 366 | ks8851_pins: pinmux_ks8851_pins { | ||
| 367 | pinctrl-single,pins = < | ||
| 368 | /* ENET_INT */ | ||
| 369 | OMAP4_IOPAD(0x054, PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ad10.gpio_34 */ | ||
| 370 | /* | ||
| 371 | * Misterious pin which makes the ethernet working | ||
| 372 | * The legacy board file requested this pin on boot | ||
| 373 | * (ETH_KS8851_QUART) and set it to high, similarly to | ||
| 374 | * the ENET_ENABLE pin. | ||
| 375 | * We could use gpio-hog to keep it high, but let's use | ||
| 376 | * it as a reset GPIO for ks8851. | ||
| 377 | */ | ||
| 378 | OMAP4_IOPAD(0x13a, PIN_OUTPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.gpio_138 */ | ||
| 379 | >; | ||
| 380 | }; | ||
| 355 | }; | 381 | }; |
| 356 | 382 | ||
| 357 | &i2c1 { | 383 | &i2c1 { |
| @@ -452,12 +478,16 @@ | |||
| 452 | pinctrl-0 = <&mcspi1_pins>; | 478 | pinctrl-0 = <&mcspi1_pins>; |
| 453 | 479 | ||
| 454 | eth@0 { | 480 | eth@0 { |
| 481 | pinctrl-names = "default"; | ||
| 482 | pinctrl-0 = <&ks8851_pins>; | ||
| 483 | |||
| 455 | compatible = "ks8851"; | 484 | compatible = "ks8851"; |
| 456 | spi-max-frequency = <24000000>; | 485 | spi-max-frequency = <24000000>; |
| 457 | reg = <0>; | 486 | reg = <0>; |
| 458 | interrupt-parent = <&gpio2>; | 487 | interrupt-parent = <&gpio2>; |
| 459 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */ | 488 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; /* gpio line 34 */ |
| 460 | vdd-supply = <&vdd_eth>; | 489 | vdd-supply = <&vdd_eth>; |
| 490 | reset-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>; | ||
| 461 | }; | 491 | }; |
| 462 | }; | 492 | }; |
| 463 | 493 | ||
diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi index bc853ebeda22..61a06f6add3c 100644 --- a/arch/arm/boot/dts/omap5-board-common.dtsi +++ b/arch/arm/boot/dts/omap5-board-common.dtsi | |||
| @@ -317,7 +317,8 @@ | |||
| 317 | 317 | ||
| 318 | palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins { | 318 | palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins { |
| 319 | pinctrl-single,pins = < | 319 | pinctrl-single,pins = < |
| 320 | OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1 */ | 320 | /* sys_nirq1 is pulled down as the SoC is inverting it for GIC */ |
| 321 | OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 321 | >; | 322 | >; |
| 322 | }; | 323 | }; |
| 323 | 324 | ||
| @@ -385,7 +386,8 @@ | |||
| 385 | 386 | ||
| 386 | palmas: palmas@48 { | 387 | palmas: palmas@48 { |
| 387 | compatible = "ti,palmas"; | 388 | compatible = "ti,palmas"; |
| 388 | interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ | 389 | /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */ |
| 390 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>; | ||
| 389 | reg = <0x48>; | 391 | reg = <0x48>; |
| 390 | interrupt-controller; | 392 | interrupt-controller; |
| 391 | #interrupt-cells = <2>; | 393 | #interrupt-cells = <2>; |
| @@ -651,7 +653,8 @@ | |||
| 651 | pinctrl-names = "default"; | 653 | pinctrl-names = "default"; |
| 652 | pinctrl-0 = <&twl6040_pins>; | 654 | pinctrl-0 = <&twl6040_pins>; |
| 653 | 655 | ||
| 654 | interrupts = <GIC_SPI 119 IRQ_TYPE_NONE>; /* IRQ_SYS_2N cascaded to gic */ | 656 | /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */ |
| 657 | interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_LOW>; | ||
| 655 | 658 | ||
| 656 | /* audpwron gpio defined in the board specific dts */ | 659 | /* audpwron gpio defined in the board specific dts */ |
| 657 | 660 | ||
diff --git a/arch/arm/boot/dts/omap5-cm-t54.dts b/arch/arm/boot/dts/omap5-cm-t54.dts index 5e21fb430a65..e78d3718f145 100644 --- a/arch/arm/boot/dts/omap5-cm-t54.dts +++ b/arch/arm/boot/dts/omap5-cm-t54.dts | |||
| @@ -181,6 +181,13 @@ | |||
| 181 | OMAP5_IOPAD(0x0042, PIN_INPUT_PULLDOWN | MUX_MODE6) /* llib_wakereqin.gpio1_wk15 */ | 181 | OMAP5_IOPAD(0x0042, PIN_INPUT_PULLDOWN | MUX_MODE6) /* llib_wakereqin.gpio1_wk15 */ |
| 182 | >; | 182 | >; |
| 183 | }; | 183 | }; |
| 184 | |||
| 185 | palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins { | ||
| 186 | pinctrl-single,pins = < | ||
| 187 | /* sys_nirq1 is pulled down as the SoC is inverting it for GIC */ | ||
| 188 | OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) | ||
| 189 | >; | ||
| 190 | }; | ||
| 184 | }; | 191 | }; |
| 185 | 192 | ||
| 186 | &omap5_pmx_core { | 193 | &omap5_pmx_core { |
| @@ -414,8 +421,11 @@ | |||
| 414 | 421 | ||
| 415 | palmas: palmas@48 { | 422 | palmas: palmas@48 { |
| 416 | compatible = "ti,palmas"; | 423 | compatible = "ti,palmas"; |
| 417 | interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* IRQ_SYS_1N */ | ||
| 418 | reg = <0x48>; | 424 | reg = <0x48>; |
| 425 | pinctrl-0 = <&palmas_sys_nirq_pins>; | ||
| 426 | pinctrl-names = "default"; | ||
| 427 | /* sys_nirq/ext_sys_irq pins get inverted at mpuss wakeupgen */ | ||
| 428 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>; | ||
| 419 | interrupt-controller; | 429 | interrupt-controller; |
| 420 | #interrupt-cells = <2>; | 430 | #interrupt-cells = <2>; |
| 421 | ti,system-power-controller; | 431 | ti,system-power-controller; |
diff --git a/arch/arm/boot/dts/omap5-l4.dtsi b/arch/arm/boot/dts/omap5-l4.dtsi index 9c7e309d9c2c..0960348002ad 100644 --- a/arch/arm/boot/dts/omap5-l4.dtsi +++ b/arch/arm/boot/dts/omap5-l4.dtsi | |||
| @@ -1046,8 +1046,6 @@ | |||
| 1046 | <SYSC_IDLE_SMART>, | 1046 | <SYSC_IDLE_SMART>, |
| 1047 | <SYSC_IDLE_SMART_WKUP>; | 1047 | <SYSC_IDLE_SMART_WKUP>; |
| 1048 | ti,syss-mask = <1>; | 1048 | ti,syss-mask = <1>; |
| 1049 | ti,no-reset-on-init; | ||
| 1050 | ti,no-idle-on-init; | ||
| 1051 | /* Domains (V, P, C): core, core_pwrdm, l4per_clkdm */ | 1049 | /* Domains (V, P, C): core, core_pwrdm, l4per_clkdm */ |
| 1052 | clocks = <&l4per_clkctrl OMAP5_UART3_CLKCTRL 0>; | 1050 | clocks = <&l4per_clkctrl OMAP5_UART3_CLKCTRL 0>; |
| 1053 | clock-names = "fck"; | 1051 | clock-names = "fck"; |
diff --git a/arch/arm/boot/dts/orion5x-lacie-d2-network.dts b/arch/arm/boot/dts/orion5x-lacie-d2-network.dts index 8c2449da6f00..422958d13d42 100644 --- a/arch/arm/boot/dts/orion5x-lacie-d2-network.dts +++ b/arch/arm/boot/dts/orion5x-lacie-d2-network.dts | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | compatible = "lacie,d2-network", "marvell,orion5x-88f5182", "marvell,orion5x"; | 19 | compatible = "lacie,d2-network", "marvell,orion5x-88f5182", "marvell,orion5x"; |
| 20 | 20 | ||
| 21 | memory { | 21 | memory { |
| 22 | device_type = "memory"; | ||
| 22 | reg = <0x00000000 0x4000000>; /* 64 MB */ | 23 | reg = <0x00000000 0x4000000>; /* 64 MB */ |
| 23 | }; | 24 | }; |
| 24 | 25 | ||
diff --git a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts index b545d0f228a5..0043e0040153 100644 --- a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts +++ b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | compatible = "lacie,ethernet-disk-mini-v2", "marvell,orion5x-88f5182", "marvell,orion5x"; | 25 | compatible = "lacie,ethernet-disk-mini-v2", "marvell,orion5x-88f5182", "marvell,orion5x"; |
| 26 | 26 | ||
| 27 | memory { | 27 | memory { |
| 28 | device_type = "memory"; | ||
| 28 | reg = <0x00000000 0x4000000>; /* 64 MB */ | 29 | reg = <0x00000000 0x4000000>; /* 64 MB */ |
| 29 | }; | 30 | }; |
| 30 | 31 | ||
diff --git a/arch/arm/boot/dts/orion5x-lswsgl.dts b/arch/arm/boot/dts/orion5x-lswsgl.dts index 0d97ded66257..2fbc17d6dfa4 100644 --- a/arch/arm/boot/dts/orion5x-lswsgl.dts +++ b/arch/arm/boot/dts/orion5x-lswsgl.dts | |||
| @@ -55,6 +55,7 @@ | |||
| 55 | compatible = "buffalo,lswsgl", "marvell,orion5x-88f5182", "marvell,orion5x"; | 55 | compatible = "buffalo,lswsgl", "marvell,orion5x-88f5182", "marvell,orion5x"; |
| 56 | 56 | ||
| 57 | memory { | 57 | memory { |
| 58 | device_type = "memory"; | ||
| 58 | reg = <0x00000000 0x8000000>; /* 128 MB */ | 59 | reg = <0x00000000 0x8000000>; /* 128 MB */ |
| 59 | }; | 60 | }; |
| 60 | 61 | ||
diff --git a/arch/arm/boot/dts/orion5x-maxtor-shared-storage-2.dts b/arch/arm/boot/dts/orion5x-maxtor-shared-storage-2.dts index 0324cb54939d..0ca6208a267d 100644 --- a/arch/arm/boot/dts/orion5x-maxtor-shared-storage-2.dts +++ b/arch/arm/boot/dts/orion5x-maxtor-shared-storage-2.dts | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | compatible = "maxtor,shared-storage-2", "marvell,orion5x-88f5182", "marvell,orion5x"; | 19 | compatible = "maxtor,shared-storage-2", "marvell,orion5x-88f5182", "marvell,orion5x"; |
| 20 | 20 | ||
| 21 | memory { | 21 | memory { |
| 22 | device_type = "memory"; | ||
| 22 | reg = <0x00000000 0x4000000>; /* 64 MB */ | 23 | reg = <0x00000000 0x4000000>; /* 64 MB */ |
| 23 | }; | 24 | }; |
| 24 | 25 | ||
diff --git a/arch/arm/boot/dts/orion5x-netgear-wnr854t.dts b/arch/arm/boot/dts/orion5x-netgear-wnr854t.dts index 9f6ae4e1de06..ea081afa469d 100644 --- a/arch/arm/boot/dts/orion5x-netgear-wnr854t.dts +++ b/arch/arm/boot/dts/orion5x-netgear-wnr854t.dts | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | memory { | 23 | memory { |
| 24 | device_type = "memory"; | ||
| 24 | reg = <0x00000000 0x2000000>; /* 32 MB */ | 25 | reg = <0x00000000 0x2000000>; /* 32 MB */ |
| 25 | }; | 26 | }; |
| 26 | 27 | ||
diff --git a/arch/arm/boot/dts/orion5x-rd88f5182-nas.dts b/arch/arm/boot/dts/orion5x-rd88f5182-nas.dts index d1817af53e0b..487324f7c54e 100644 --- a/arch/arm/boot/dts/orion5x-rd88f5182-nas.dts +++ b/arch/arm/boot/dts/orion5x-rd88f5182-nas.dts | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | compatible = "marvell,rd-88f5182-nas", "marvell,orion5x-88f5182", "marvell,orion5x"; | 16 | compatible = "marvell,rd-88f5182-nas", "marvell,orion5x-88f5182", "marvell,orion5x"; |
| 17 | 17 | ||
| 18 | memory { | 18 | memory { |
| 19 | device_type = "memory"; | ||
| 19 | reg = <0x00000000 0x4000000>; /* 64 MB */ | 20 | reg = <0x00000000 0x4000000>; /* 64 MB */ |
| 20 | }; | 21 | }; |
| 21 | 22 | ||
diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi index fbccfbbab223..61e631b3fd8b 100644 --- a/arch/arm/boot/dts/orion5x.dtsi +++ b/arch/arm/boot/dts/orion5x.dtsi | |||
| @@ -6,11 +6,11 @@ | |||
| 6 | * warranty of any kind, whether express or implied. | 6 | * warranty of any kind, whether express or implied. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "skeleton.dtsi" | ||
| 10 | |||
| 11 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | 9 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) |
| 12 | 10 | ||
| 13 | / { | 11 | / { |
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <1>; | ||
| 14 | model = "Marvell Orion5x SoC"; | 14 | model = "Marvell Orion5x SoC"; |
| 15 | compatible = "marvell,orion5x"; | 15 | compatible = "marvell,orion5x"; |
| 16 | interrupt-parent = <&intc>; | 16 | interrupt-parent = <&intc>; |
diff --git a/arch/arm/boot/dts/ox810se.dtsi b/arch/arm/boot/dts/ox810se.dtsi index c2b48a1838eb..3a26650de4eb 100644 --- a/arch/arm/boot/dts/ox810se.dtsi +++ b/arch/arm/boot/dts/ox810se.dtsi | |||
| @@ -6,11 +6,12 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | #include <dt-bindings/clock/oxsemi,ox810se.h> | 9 | #include <dt-bindings/clock/oxsemi,ox810se.h> |
| 11 | #include <dt-bindings/reset/oxsemi,ox810se.h> | 10 | #include <dt-bindings/reset/oxsemi,ox810se.h> |
| 12 | 11 | ||
| 13 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 14 | compatible = "oxsemi,ox810se"; | 15 | compatible = "oxsemi,ox810se"; |
| 15 | 16 | ||
| 16 | cpus { | 17 | cpus { |
| @@ -25,6 +26,7 @@ | |||
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 27 | memory { | 28 | memory { |
| 29 | device_type = "memory"; | ||
| 28 | /* Max 256MB @ 0x48000000 */ | 30 | /* Max 256MB @ 0x48000000 */ |
| 29 | reg = <0x48000000 0x10000000>; | 31 | reg = <0x48000000 0x10000000>; |
| 30 | }; | 32 | }; |
diff --git a/arch/arm/boot/dts/ox820.dtsi b/arch/arm/boot/dts/ox820.dtsi index 085bbd33eadc..f3239586f38d 100644 --- a/arch/arm/boot/dts/ox820.dtsi +++ b/arch/arm/boot/dts/ox820.dtsi | |||
| @@ -6,12 +6,13 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 11 | #include <dt-bindings/clock/oxsemi,ox820.h> | 10 | #include <dt-bindings/clock/oxsemi,ox820.h> |
| 12 | #include <dt-bindings/reset/oxsemi,ox820.h> | 11 | #include <dt-bindings/reset/oxsemi,ox820.h> |
| 13 | 12 | ||
| 14 | / { | 13 | / { |
| 14 | #address-cells = <1>; | ||
| 15 | #size-cells = <1>; | ||
| 15 | compatible = "oxsemi,ox820"; | 16 | compatible = "oxsemi,ox820"; |
| 16 | 17 | ||
| 17 | cpus { | 18 | cpus { |
| @@ -35,6 +36,7 @@ | |||
| 35 | }; | 36 | }; |
| 36 | 37 | ||
| 37 | memory { | 38 | memory { |
| 39 | device_type = "memory"; | ||
| 38 | /* Max 512MB @ 0x60000000 */ | 40 | /* Max 512MB @ 0x60000000 */ |
| 39 | reg = <0x60000000 0x20000000>; | 41 | reg = <0x60000000 0x20000000>; |
| 40 | }; | 42 | }; |
diff --git a/arch/arm/boot/dts/picoxcell-pc3x2.dtsi b/arch/arm/boot/dts/picoxcell-pc3x2.dtsi index a1266cf8776c..291a28f34762 100644 --- a/arch/arm/boot/dts/picoxcell-pc3x2.dtsi +++ b/arch/arm/boot/dts/picoxcell-pc3x2.dtsi | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. | 11 | * GNU General Public License for more details. |
| 12 | */ | 12 | */ |
| 13 | /include/ "skeleton.dtsi" | ||
| 14 | / { | 13 | / { |
| 15 | model = "Picochip picoXcell PC3X2"; | 14 | model = "Picochip picoXcell PC3X2"; |
| 16 | compatible = "picochip,pc3x2"; | 15 | compatible = "picochip,pc3x2"; |
diff --git a/arch/arm/boot/dts/picoxcell-pc3x3.dtsi b/arch/arm/boot/dts/picoxcell-pc3x3.dtsi index d78cd207eca1..bf9a39ea76b0 100644 --- a/arch/arm/boot/dts/picoxcell-pc3x3.dtsi +++ b/arch/arm/boot/dts/picoxcell-pc3x3.dtsi | |||
| @@ -10,7 +10,6 @@ | |||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. | 11 | * GNU General Public License for more details. |
| 12 | */ | 12 | */ |
| 13 | /include/ "skeleton.dtsi" | ||
| 14 | / { | 13 | / { |
| 15 | model = "Picochip picoXcell PC3X3"; | 14 | model = "Picochip picoXcell PC3X3"; |
| 16 | compatible = "picochip,pc3x3"; | 15 | compatible = "picochip,pc3x3"; |
diff --git a/arch/arm/boot/dts/prima2-evb.dts b/arch/arm/boot/dts/prima2-evb.dts index 57286b4e7b87..55594b3bbc99 100644 --- a/arch/arm/boot/dts/prima2-evb.dts +++ b/arch/arm/boot/dts/prima2-evb.dts | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | compatible = "sirf,prima2", "sirf,prima2-cb"; | 15 | compatible = "sirf,prima2", "sirf,prima2-cb"; |
| 16 | 16 | ||
| 17 | memory { | 17 | memory { |
| 18 | device_type = "memory"; | ||
| 18 | reg = <0x00000000 0x20000000>; | 19 | reg = <0x00000000 0x20000000>; |
| 19 | }; | 20 | }; |
| 20 | 21 | ||
diff --git a/arch/arm/boot/dts/prima2.dtsi b/arch/arm/boot/dts/prima2.dtsi index 1ca1a9aa953f..54d4f8850e22 100644 --- a/arch/arm/boot/dts/prima2.dtsi +++ b/arch/arm/boot/dts/prima2.dtsi | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | * Licensed under GPLv2 or later. | 6 | * Licensed under GPLv2 or later. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | / { | 9 | / { |
| 11 | compatible = "sirf,prima2"; | 10 | compatible = "sirf,prima2"; |
| 12 | #address-cells = <1>; | 11 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/pxa168.dtsi b/arch/arm/boot/dts/pxa168.dtsi index b899e25cbb1b..7137f3550183 100644 --- a/arch/arm/boot/dts/pxa168.dtsi +++ b/arch/arm/boot/dts/pxa168.dtsi | |||
| @@ -7,10 +7,12 @@ | |||
| 7 | * publishhed by the Free Software Foundation. | 7 | * publishhed by the Free Software Foundation. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "skeleton.dtsi" | ||
| 11 | #include <dt-bindings/clock/marvell,pxa168.h> | 10 | #include <dt-bindings/clock/marvell,pxa168.h> |
| 12 | 11 | ||
| 13 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 15 | |||
| 14 | aliases { | 16 | aliases { |
| 15 | serial0 = &uart1; | 17 | serial0 = &uart1; |
| 16 | serial1 = &uart2; | 18 | serial1 = &uart2; |
diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi index e83879d97aea..bd6bf6d9300f 100644 --- a/arch/arm/boot/dts/pxa2xx.dtsi +++ b/arch/arm/boot/dts/pxa2xx.dtsi | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | * Licensed under GPLv2 or later. | 6 | * Licensed under GPLv2 or later. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include "skeleton.dtsi" | ||
| 10 | #include "dt-bindings/clock/pxa-clock.h" | 9 | #include "dt-bindings/clock/pxa-clock.h" |
| 11 | 10 | ||
| 12 | #define PMGROUP(pin) #pin | 11 | #define PMGROUP(pin) #pin |
| @@ -29,6 +28,8 @@ | |||
| 29 | } | 28 | } |
| 30 | 29 | ||
| 31 | / { | 30 | / { |
| 31 | #address-cells = <1>; | ||
| 32 | #size-cells = <1>; | ||
| 32 | model = "Marvell PXA2xx family SoC"; | 33 | model = "Marvell PXA2xx family SoC"; |
| 33 | compatible = "marvell,pxa2xx"; | 34 | compatible = "marvell,pxa2xx"; |
| 34 | interrupt-parent = <&pxairq>; | 35 | interrupt-parent = <&pxairq>; |
diff --git a/arch/arm/boot/dts/pxa910.dtsi b/arch/arm/boot/dts/pxa910.dtsi index 0868f6729be1..c88553a8ee29 100644 --- a/arch/arm/boot/dts/pxa910.dtsi +++ b/arch/arm/boot/dts/pxa910.dtsi | |||
| @@ -7,10 +7,12 @@ | |||
| 7 | * publishhed by the Free Software Foundation. | 7 | * publishhed by the Free Software Foundation. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "skeleton.dtsi" | ||
| 11 | #include <dt-bindings/clock/marvell,pxa910.h> | 10 | #include <dt-bindings/clock/marvell,pxa910.h> |
| 12 | 11 | ||
| 13 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 15 | |||
| 14 | aliases { | 16 | aliases { |
| 15 | serial0 = &uart1; | 17 | serial0 = &uart1; |
| 16 | serial1 = &uart2; | 18 | serial1 = &uart2; |
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts index 497bb065eb9d..4e6c50d45cb2 100644 --- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts | |||
| @@ -93,9 +93,8 @@ | |||
| 93 | vdd-supply = <&pm8058_l14>; // 2.85V | 93 | vdd-supply = <&pm8058_l14>; // 2.85V |
| 94 | aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>; | 94 | aset-gpios = <&pm8058_gpio 35 GPIO_ACTIVE_LOW>; |
| 95 | capella,aset-resistance-ohms = <100000>; | 95 | capella,aset-resistance-ohms = <100000>; |
| 96 | /* GPIO34 has interrupt 225 on the PM8058 */ | ||
| 97 | /* Trig on both edges - getting close or far away */ | 96 | /* Trig on both edges - getting close or far away */ |
| 98 | interrupts-extended = <&pm8058 225 IRQ_TYPE_EDGE_BOTH>; | 97 | interrupts-extended = <&pm8058_gpio 34 IRQ_TYPE_EDGE_BOTH>; |
| 99 | /* MPP05 analog input to the XOADC */ | 98 | /* MPP05 analog input to the XOADC */ |
| 100 | io-channels = <&xoadc 0x00 0x05>; | 99 | io-channels = <&xoadc 0x00 0x05>; |
| 101 | io-channel-names = "aout"; | 100 | io-channel-names = "aout"; |
| @@ -515,9 +514,8 @@ | |||
| 515 | ak8975@c { | 514 | ak8975@c { |
| 516 | compatible = "asahi-kasei,ak8975"; | 515 | compatible = "asahi-kasei,ak8975"; |
| 517 | reg = <0x0c>; | 516 | reg = <0x0c>; |
| 518 | /* FIXME: GPIO33 has interrupt 224 on the PM8058 */ | 517 | interrupt-parent = <&pm8058_gpio>; |
| 519 | interrupt-parent = <&pm8058>; | 518 | interrupts = <33 IRQ_TYPE_EDGE_RISING>; |
| 520 | interrupts = <224 IRQ_TYPE_EDGE_RISING>; | ||
| 521 | pinctrl-names = "default"; | 519 | pinctrl-names = "default"; |
| 522 | pinctrl-0 = <&dragon_ak8975_gpios>; | 520 | pinctrl-0 = <&dragon_ak8975_gpios>; |
| 523 | vid-supply = <&pm8058_lvs0>; // 1.8V | 521 | vid-supply = <&pm8058_lvs0>; // 1.8V |
| @@ -526,9 +524,8 @@ | |||
| 526 | bmp085@77 { | 524 | bmp085@77 { |
| 527 | compatible = "bosch,bmp085"; | 525 | compatible = "bosch,bmp085"; |
| 528 | reg = <0x77>; | 526 | reg = <0x77>; |
| 529 | /* FIXME: GPIO16 has interrupt 207 on the PM8058 */ | 527 | interrupt-parent = <&pm8058_gpio>; |
| 530 | interrupt-parent = <&pm8058>; | 528 | interrupts = <16 IRQ_TYPE_EDGE_RISING>; |
| 531 | interrupts = <207 IRQ_TYPE_EDGE_RISING>; | ||
| 532 | reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>; | 529 | reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>; |
| 533 | pinctrl-names = "default"; | 530 | pinctrl-names = "default"; |
| 534 | pinctrl-0 = <&dragon_bmp085_gpios>; | 531 | pinctrl-0 = <&dragon_bmp085_gpios>; |
| @@ -539,12 +536,11 @@ | |||
| 539 | compatible = "invensense,mpu3050"; | 536 | compatible = "invensense,mpu3050"; |
| 540 | reg = <0x68>; | 537 | reg = <0x68>; |
| 541 | /* | 538 | /* |
| 542 | * GPIO17 has interrupt 208 on the | 539 | * GPIO17 is pulled high by a 10k |
| 543 | * PM8058, it is pulled high by a 10k | ||
| 544 | * resistor to VLOGIC so needs to be | 540 | * resistor to VLOGIC so needs to be |
| 545 | * active low/falling edge. | 541 | * active low/falling edge. |
| 546 | */ | 542 | */ |
| 547 | interrupts-extended = <&pm8058 208 IRQ_TYPE_EDGE_FALLING>; | 543 | interrupts-extended = <&pm8058_gpio 17 IRQ_TYPE_EDGE_FALLING>; |
| 548 | pinctrl-names = "default"; | 544 | pinctrl-names = "default"; |
| 549 | pinctrl-0 = <&dragon_mpu3050_gpios>; | 545 | pinctrl-0 = <&dragon_mpu3050_gpios>; |
| 550 | vlogic-supply = <&pm8058_lvs0>; // 1.8V | 546 | vlogic-supply = <&pm8058_lvs0>; // 1.8V |
| @@ -589,11 +585,10 @@ | |||
| 589 | compatible = "smsc,lan9221", "smsc,lan9115"; | 585 | compatible = "smsc,lan9221", "smsc,lan9115"; |
| 590 | reg = <2 0x0 0x100>; | 586 | reg = <2 0x0 0x100>; |
| 591 | /* | 587 | /* |
| 592 | * GPIO7 has interrupt 198 on the PM8058 | ||
| 593 | * The second interrupt is the PME interrupt | 588 | * The second interrupt is the PME interrupt |
| 594 | * for network wakeup, connected to the TLMM. | 589 | * for network wakeup, connected to the TLMM. |
| 595 | */ | 590 | */ |
| 596 | interrupts-extended = <&pm8058 198 IRQ_TYPE_EDGE_FALLING>, | 591 | interrupts-extended = <&pm8058_gpio 7 IRQ_TYPE_EDGE_FALLING>, |
| 597 | <&tlmm 29 IRQ_TYPE_EDGE_RISING>; | 592 | <&tlmm 29 IRQ_TYPE_EDGE_RISING>; |
| 598 | reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; | 593 | reset-gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; |
| 599 | vdd33a-supply = <&dragon_veth>; | 594 | vdd33a-supply = <&dragon_veth>; |
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi index 48c3cf427610..bd6907db615b 100644 --- a/arch/arm/boot/dts/qcom-apq8064.dtsi +++ b/arch/arm/boot/dts/qcom-apq8064.dtsi | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /dts-v1/; | 2 | /dts-v1/; |
| 3 | 3 | ||
| 4 | #include "skeleton.dtsi" | ||
| 5 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> | 4 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> |
| 6 | #include <dt-bindings/reset/qcom,gcc-msm8960.h> | 5 | #include <dt-bindings/reset/qcom,gcc-msm8960.h> |
| 7 | #include <dt-bindings/clock/qcom,mmcc-msm8960.h> | 6 | #include <dt-bindings/clock/qcom,mmcc-msm8960.h> |
| @@ -10,6 +9,8 @@ | |||
| 10 | #include <dt-bindings/interrupt-controller/irq.h> | 9 | #include <dt-bindings/interrupt-controller/irq.h> |
| 11 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 12 | / { | 11 | / { |
| 12 | #address-cells = <1>; | ||
| 13 | #size-cells = <1>; | ||
| 13 | model = "Qualcomm APQ8064"; | 14 | model = "Qualcomm APQ8064"; |
| 14 | compatible = "qcom,apq8064"; | 15 | compatible = "qcom,apq8064"; |
| 15 | interrupt-parent = <&intc>; | 16 | interrupt-parent = <&intc>; |
| @@ -94,6 +95,11 @@ | |||
| 94 | }; | 95 | }; |
| 95 | }; | 96 | }; |
| 96 | 97 | ||
| 98 | memory { | ||
| 99 | device_type = "memory"; | ||
| 100 | reg = <0x0 0x0>; | ||
| 101 | }; | ||
| 102 | |||
| 97 | thermal-zones { | 103 | thermal-zones { |
| 98 | cpu-thermal0 { | 104 | cpu-thermal0 { |
| 99 | polling-delay-passive = <250>; | 105 | polling-delay-passive = <250>; |
| @@ -705,50 +711,8 @@ | |||
| 705 | compatible = "qcom,pm8921-gpio", | 711 | compatible = "qcom,pm8921-gpio", |
| 706 | "qcom,ssbi-gpio"; | 712 | "qcom,ssbi-gpio"; |
| 707 | reg = <0x150>; | 713 | reg = <0x150>; |
| 708 | interrupts = <192 IRQ_TYPE_NONE>, | 714 | interrupt-controller; |
| 709 | <193 IRQ_TYPE_NONE>, | 715 | #interrupt-cells = <2>; |
| 710 | <194 IRQ_TYPE_NONE>, | ||
| 711 | <195 IRQ_TYPE_NONE>, | ||
| 712 | <196 IRQ_TYPE_NONE>, | ||
| 713 | <197 IRQ_TYPE_NONE>, | ||
| 714 | <198 IRQ_TYPE_NONE>, | ||
| 715 | <199 IRQ_TYPE_NONE>, | ||
| 716 | <200 IRQ_TYPE_NONE>, | ||
| 717 | <201 IRQ_TYPE_NONE>, | ||
| 718 | <202 IRQ_TYPE_NONE>, | ||
| 719 | <203 IRQ_TYPE_NONE>, | ||
| 720 | <204 IRQ_TYPE_NONE>, | ||
| 721 | <205 IRQ_TYPE_NONE>, | ||
| 722 | <206 IRQ_TYPE_NONE>, | ||
| 723 | <207 IRQ_TYPE_NONE>, | ||
| 724 | <208 IRQ_TYPE_NONE>, | ||
| 725 | <209 IRQ_TYPE_NONE>, | ||
| 726 | <210 IRQ_TYPE_NONE>, | ||
| 727 | <211 IRQ_TYPE_NONE>, | ||
| 728 | <212 IRQ_TYPE_NONE>, | ||
| 729 | <213 IRQ_TYPE_NONE>, | ||
| 730 | <214 IRQ_TYPE_NONE>, | ||
| 731 | <215 IRQ_TYPE_NONE>, | ||
| 732 | <216 IRQ_TYPE_NONE>, | ||
| 733 | <217 IRQ_TYPE_NONE>, | ||
| 734 | <218 IRQ_TYPE_NONE>, | ||
| 735 | <219 IRQ_TYPE_NONE>, | ||
| 736 | <220 IRQ_TYPE_NONE>, | ||
| 737 | <221 IRQ_TYPE_NONE>, | ||
| 738 | <222 IRQ_TYPE_NONE>, | ||
| 739 | <223 IRQ_TYPE_NONE>, | ||
| 740 | <224 IRQ_TYPE_NONE>, | ||
| 741 | <225 IRQ_TYPE_NONE>, | ||
| 742 | <226 IRQ_TYPE_NONE>, | ||
| 743 | <227 IRQ_TYPE_NONE>, | ||
| 744 | <228 IRQ_TYPE_NONE>, | ||
| 745 | <229 IRQ_TYPE_NONE>, | ||
| 746 | <230 IRQ_TYPE_NONE>, | ||
| 747 | <231 IRQ_TYPE_NONE>, | ||
| 748 | <232 IRQ_TYPE_NONE>, | ||
| 749 | <233 IRQ_TYPE_NONE>, | ||
| 750 | <234 IRQ_TYPE_NONE>, | ||
| 751 | <235 IRQ_TYPE_NONE>; | ||
| 752 | gpio-controller; | 716 | gpio-controller; |
| 753 | #gpio-cells = <2>; | 717 | #gpio-cells = <2>; |
| 754 | 718 | ||
diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi index 899f28533ed7..0a0fb147ebb9 100644 --- a/arch/arm/boot/dts/qcom-apq8084.dtsi +++ b/arch/arm/boot/dts/qcom-apq8084.dtsi | |||
| @@ -1,12 +1,12 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /dts-v1/; | 2 | /dts-v1/; |
| 3 | 3 | ||
| 4 | #include "skeleton.dtsi" | ||
| 5 | |||
| 6 | #include <dt-bindings/clock/qcom,gcc-apq8084.h> | 4 | #include <dt-bindings/clock/qcom,gcc-apq8084.h> |
| 7 | #include <dt-bindings/gpio/gpio.h> | 5 | #include <dt-bindings/gpio/gpio.h> |
| 8 | 6 | ||
| 9 | / { | 7 | / { |
| 8 | #address-cells = <1>; | ||
| 9 | #size-cells = <1>; | ||
| 10 | model = "Qualcomm APQ 8084"; | 10 | model = "Qualcomm APQ 8084"; |
| 11 | compatible = "qcom,apq8084"; | 11 | compatible = "qcom,apq8084"; |
| 12 | interrupt-parent = <&intc>; | 12 | interrupt-parent = <&intc>; |
| @@ -87,6 +87,11 @@ | |||
| 87 | }; | 87 | }; |
| 88 | }; | 88 | }; |
| 89 | 89 | ||
| 90 | memory { | ||
| 91 | device_type = "memory"; | ||
| 92 | reg = <0x0 0x0>; | ||
| 93 | }; | ||
| 94 | |||
| 90 | firmware { | 95 | firmware { |
| 91 | scm { | 96 | scm { |
| 92 | compatible = "qcom,scm"; | 97 | compatible = "qcom,scm"; |
diff --git a/arch/arm/boot/dts/qcom-ipq4019.dtsi b/arch/arm/boot/dts/qcom-ipq4019.dtsi index 2d56008d8d6b..9e75f97770ce 100644 --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi +++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi | |||
| @@ -13,12 +13,14 @@ | |||
| 13 | 13 | ||
| 14 | /dts-v1/; | 14 | /dts-v1/; |
| 15 | 15 | ||
| 16 | #include "skeleton.dtsi" | ||
| 17 | #include <dt-bindings/clock/qcom,gcc-ipq4019.h> | 16 | #include <dt-bindings/clock/qcom,gcc-ipq4019.h> |
| 18 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 17 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 19 | #include <dt-bindings/interrupt-controller/irq.h> | 18 | #include <dt-bindings/interrupt-controller/irq.h> |
| 20 | 19 | ||
| 21 | / { | 20 | / { |
| 21 | #address-cells = <1>; | ||
| 22 | #size-cells = <1>; | ||
| 23 | |||
| 22 | model = "Qualcomm Technologies, Inc. IPQ4019"; | 24 | model = "Qualcomm Technologies, Inc. IPQ4019"; |
| 23 | compatible = "qcom,ipq4019"; | 25 | compatible = "qcom,ipq4019"; |
| 24 | interrupt-parent = <&intc>; | 26 | interrupt-parent = <&intc>; |
| @@ -133,6 +135,11 @@ | |||
| 133 | }; | 135 | }; |
| 134 | }; | 136 | }; |
| 135 | 137 | ||
| 138 | memory { | ||
| 139 | device_type = "memory"; | ||
| 140 | reg = <0x0 0x0>; | ||
| 141 | }; | ||
| 142 | |||
| 136 | pmu { | 143 | pmu { |
| 137 | compatible = "arm,cortex-a7-pmu"; | 144 | compatible = "arm,cortex-a7-pmu"; |
| 138 | interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | | 145 | interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | |
| @@ -396,7 +403,7 @@ | |||
| 396 | ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000 | 403 | ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000 |
| 397 | 0x82000000 0 0x40300000 0x40300000 0 0x400000>; | 404 | 0x82000000 0 0x40300000 0x40300000 0 0x400000>; |
| 398 | 405 | ||
| 399 | interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>; | 406 | interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; |
| 400 | interrupt-names = "msi"; | 407 | interrupt-names = "msi"; |
| 401 | #interrupt-cells = <1>; | 408 | #interrupt-cells = <1>; |
| 402 | interrupt-map-mask = <0 0 0 0x7>; | 409 | interrupt-map-mask = <0 0 0 0x7>; |
diff --git a/arch/arm/boot/dts/qcom-ipq8064.dtsi b/arch/arm/boot/dts/qcom-ipq8064.dtsi index f793cd1ad6d0..16c0da97932c 100644 --- a/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /dts-v1/; | 2 | /dts-v1/; |
| 3 | 3 | ||
| 4 | #include "skeleton.dtsi" | ||
| 5 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 6 | #include <dt-bindings/clock/qcom,gcc-ipq806x.h> | 5 | #include <dt-bindings/clock/qcom,gcc-ipq806x.h> |
| 7 | #include <dt-bindings/clock/qcom,lcc-ipq806x.h> | 6 | #include <dt-bindings/clock/qcom,lcc-ipq806x.h> |
| @@ -11,6 +10,8 @@ | |||
| 11 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 12 | 11 | ||
| 13 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 14 | model = "Qualcomm IPQ8064"; | 15 | model = "Qualcomm IPQ8064"; |
| 15 | compatible = "qcom,ipq8064"; | 16 | compatible = "qcom,ipq8064"; |
| 16 | interrupt-parent = <&intc>; | 17 | interrupt-parent = <&intc>; |
| @@ -45,6 +46,11 @@ | |||
| 45 | }; | 46 | }; |
| 46 | }; | 47 | }; |
| 47 | 48 | ||
| 49 | memory { | ||
| 50 | device_type = "memory"; | ||
| 51 | reg = <0x0 0x0>; | ||
| 52 | }; | ||
| 53 | |||
| 48 | cpu-pmu { | 54 | cpu-pmu { |
| 49 | compatible = "qcom,krait-pmu"; | 55 | compatible = "qcom,krait-pmu"; |
| 50 | interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | | 56 | interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | |
diff --git a/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi b/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi index 7869898e392d..26b034bd19d2 100644 --- a/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi +++ b/arch/arm/boot/dts/qcom-mdm9615-wp8548.dtsi | |||
| @@ -50,6 +50,7 @@ | |||
| 50 | compatible = "swir,wp8548", "qcom,mdm9615"; | 50 | compatible = "swir,wp8548", "qcom,mdm9615"; |
| 51 | 51 | ||
| 52 | memory { | 52 | memory { |
| 53 | device_type = "memory"; | ||
| 53 | reg = <0x48000000 0x7F00000>; | 54 | reg = <0x48000000 0x7F00000>; |
| 54 | }; | 55 | }; |
| 55 | }; | 56 | }; |
diff --git a/arch/arm/boot/dts/qcom-mdm9615.dtsi b/arch/arm/boot/dts/qcom-mdm9615.dtsi index c852b69229c9..02afc6a42005 100644 --- a/arch/arm/boot/dts/qcom-mdm9615.dtsi +++ b/arch/arm/boot/dts/qcom-mdm9615.dtsi | |||
| @@ -45,8 +45,6 @@ | |||
| 45 | 45 | ||
| 46 | /dts-v1/; | 46 | /dts-v1/; |
| 47 | 47 | ||
| 48 | /include/ "skeleton.dtsi" | ||
| 49 | |||
| 50 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 48 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 51 | #include <dt-bindings/clock/qcom,gcc-mdm9615.h> | 49 | #include <dt-bindings/clock/qcom,gcc-mdm9615.h> |
| 52 | #include <dt-bindings/reset/qcom,gcc-mdm9615.h> | 50 | #include <dt-bindings/reset/qcom,gcc-mdm9615.h> |
| @@ -54,6 +52,8 @@ | |||
| 54 | #include <dt-bindings/soc/qcom,gsbi.h> | 52 | #include <dt-bindings/soc/qcom,gsbi.h> |
| 55 | 53 | ||
| 56 | / { | 54 | / { |
| 55 | #address-cells = <1>; | ||
| 56 | #size-cells = <1>; | ||
| 57 | model = "Qualcomm MDM9615"; | 57 | model = "Qualcomm MDM9615"; |
| 58 | compatible = "qcom,mdm9615"; | 58 | compatible = "qcom,mdm9615"; |
| 59 | interrupt-parent = <&intc>; | 59 | interrupt-parent = <&intc>; |
| @@ -323,13 +323,8 @@ | |||
| 323 | 323 | ||
| 324 | pmicgpio: gpio@150 { | 324 | pmicgpio: gpio@150 { |
| 325 | compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio"; | 325 | compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio"; |
| 326 | interrupt-parent = <&pmicintc>; | 326 | interrupt-controller; |
| 327 | interrupts = <24 IRQ_TYPE_NONE>, | 327 | #interrupt-cells = <2>; |
| 328 | <25 IRQ_TYPE_NONE>, | ||
| 329 | <26 IRQ_TYPE_NONE>, | ||
| 330 | <27 IRQ_TYPE_NONE>, | ||
| 331 | <28 IRQ_TYPE_NONE>, | ||
| 332 | <29 IRQ_TYPE_NONE>; | ||
| 333 | gpio-controller; | 328 | gpio-controller; |
| 334 | #gpio-cells = <2>; | 329 | #gpio-cells = <2>; |
| 335 | }; | 330 | }; |
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi index 70698941f64c..65a994f0e09b 100644 --- a/arch/arm/boot/dts/qcom-msm8660.dtsi +++ b/arch/arm/boot/dts/qcom-msm8660.dtsi | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /dts-v1/; | 2 | /dts-v1/; |
| 3 | 3 | ||
| 4 | /include/ "skeleton.dtsi" | ||
| 5 | |||
| 6 | #include <dt-bindings/interrupt-controller/irq.h> | 4 | #include <dt-bindings/interrupt-controller/irq.h> |
| 7 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 5 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 8 | #include <dt-bindings/clock/qcom,gcc-msm8660.h> | 6 | #include <dt-bindings/clock/qcom,gcc-msm8660.h> |
| 9 | #include <dt-bindings/soc/qcom,gsbi.h> | 7 | #include <dt-bindings/soc/qcom,gsbi.h> |
| 10 | 8 | ||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | model = "Qualcomm MSM8660"; | 12 | model = "Qualcomm MSM8660"; |
| 13 | compatible = "qcom,msm8660"; | 13 | compatible = "qcom,msm8660"; |
| 14 | interrupt-parent = <&intc>; | 14 | interrupt-parent = <&intc>; |
| @@ -39,6 +39,11 @@ | |||
| 39 | }; | 39 | }; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | memory { | ||
| 43 | device_type = "memory"; | ||
| 44 | reg = <0x0 0x0>; | ||
| 45 | }; | ||
| 46 | |||
| 42 | cpu-pmu { | 47 | cpu-pmu { |
| 43 | compatible = "qcom,scorpion-mp-pmu"; | 48 | compatible = "qcom,scorpion-mp-pmu"; |
| 44 | interrupts = <1 9 0x304>; | 49 | interrupts = <1 9 0x304>; |
| @@ -133,6 +138,7 @@ | |||
| 133 | #address-cells = <1>; | 138 | #address-cells = <1>; |
| 134 | #size-cells = <1>; | 139 | #size-cells = <1>; |
| 135 | ranges; | 140 | ranges; |
| 141 | status = "disabled"; | ||
| 136 | 142 | ||
| 137 | syscon-tcsr = <&tcsr>; | 143 | syscon-tcsr = <&tcsr>; |
| 138 | 144 | ||
| @@ -140,7 +146,7 @@ | |||
| 140 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | 146 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |
| 141 | reg = <0x16540000 0x1000>, | 147 | reg = <0x16540000 0x1000>, |
| 142 | <0x16500000 0x1000>; | 148 | <0x16500000 0x1000>; |
| 143 | interrupts = <GIC_SPI 156 IRQ_TYPE_NONE>; | 149 | interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; |
| 144 | clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>; | 150 | clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>; |
| 145 | clock-names = "core", "iface"; | 151 | clock-names = "core", "iface"; |
| 146 | status = "disabled"; | 152 | status = "disabled"; |
| @@ -149,7 +155,7 @@ | |||
| 149 | gsbi6_i2c: i2c@16580000 { | 155 | gsbi6_i2c: i2c@16580000 { |
| 150 | compatible = "qcom,i2c-qup-v1.1.1"; | 156 | compatible = "qcom,i2c-qup-v1.1.1"; |
| 151 | reg = <0x16580000 0x1000>; | 157 | reg = <0x16580000 0x1000>; |
| 152 | interrupts = <GIC_SPI 157 IRQ_TYPE_NONE>; | 158 | interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; |
| 153 | clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>; | 159 | clocks = <&gcc GSBI6_QUP_CLK>, <&gcc GSBI6_H_CLK>; |
| 154 | clock-names = "core", "iface"; | 160 | clock-names = "core", "iface"; |
| 155 | #address-cells = <1>; | 161 | #address-cells = <1>; |
| @@ -167,6 +173,7 @@ | |||
| 167 | #address-cells = <1>; | 173 | #address-cells = <1>; |
| 168 | #size-cells = <1>; | 174 | #size-cells = <1>; |
| 169 | ranges; | 175 | ranges; |
| 176 | status = "disabled"; | ||
| 170 | 177 | ||
| 171 | syscon-tcsr = <&tcsr>; | 178 | syscon-tcsr = <&tcsr>; |
| 172 | 179 | ||
| @@ -174,7 +181,7 @@ | |||
| 174 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | 181 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |
| 175 | reg = <0x16640000 0x1000>, | 182 | reg = <0x16640000 0x1000>, |
| 176 | <0x16600000 0x1000>; | 183 | <0x16600000 0x1000>; |
| 177 | interrupts = <GIC_SPI 158 IRQ_TYPE_NONE>; | 184 | interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; |
| 178 | clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>; | 185 | clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>; |
| 179 | clock-names = "core", "iface"; | 186 | clock-names = "core", "iface"; |
| 180 | status = "disabled"; | 187 | status = "disabled"; |
| @@ -183,7 +190,7 @@ | |||
| 183 | gsbi7_i2c: i2c@16680000 { | 190 | gsbi7_i2c: i2c@16680000 { |
| 184 | compatible = "qcom,i2c-qup-v1.1.1"; | 191 | compatible = "qcom,i2c-qup-v1.1.1"; |
| 185 | reg = <0x16680000 0x1000>; | 192 | reg = <0x16680000 0x1000>; |
| 186 | interrupts = <GIC_SPI 159 IRQ_TYPE_NONE>; | 193 | interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; |
| 187 | clocks = <&gcc GSBI7_QUP_CLK>, <&gcc GSBI7_H_CLK>; | 194 | clocks = <&gcc GSBI7_QUP_CLK>, <&gcc GSBI7_H_CLK>; |
| 188 | clock-names = "core", "iface"; | 195 | clock-names = "core", "iface"; |
| 189 | #address-cells = <1>; | 196 | #address-cells = <1>; |
| @@ -207,7 +214,7 @@ | |||
| 207 | gsbi8_i2c: i2c@19880000 { | 214 | gsbi8_i2c: i2c@19880000 { |
| 208 | compatible = "qcom,i2c-qup-v1.1.1"; | 215 | compatible = "qcom,i2c-qup-v1.1.1"; |
| 209 | reg = <0x19880000 0x1000>; | 216 | reg = <0x19880000 0x1000>; |
| 210 | interrupts = <GIC_SPI 161 IRQ_TYPE_NONE>; | 217 | interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; |
| 211 | clocks = <&gcc GSBI8_QUP_CLK>, <&gcc GSBI8_H_CLK>; | 218 | clocks = <&gcc GSBI8_QUP_CLK>, <&gcc GSBI8_H_CLK>; |
| 212 | clock-names = "core", "iface"; | 219 | clock-names = "core", "iface"; |
| 213 | #address-cells = <1>; | 220 | #address-cells = <1>; |
| @@ -232,7 +239,7 @@ | |||
| 232 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; | 239 | compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; |
| 233 | reg = <0x19c40000 0x1000>, | 240 | reg = <0x19c40000 0x1000>, |
| 234 | <0x19c00000 0x1000>; | 241 | <0x19c00000 0x1000>; |
| 235 | interrupts = <0 195 IRQ_TYPE_NONE>; | 242 | interrupts = <0 195 IRQ_TYPE_LEVEL_HIGH>; |
| 236 | clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>; | 243 | clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>; |
| 237 | clock-names = "core", "iface"; | 244 | clock-names = "core", "iface"; |
| 238 | status = "disabled"; | 245 | status = "disabled"; |
| @@ -241,7 +248,7 @@ | |||
| 241 | gsbi12_i2c: i2c@19c80000 { | 248 | gsbi12_i2c: i2c@19c80000 { |
| 242 | compatible = "qcom,i2c-qup-v1.1.1"; | 249 | compatible = "qcom,i2c-qup-v1.1.1"; |
| 243 | reg = <0x19c80000 0x1000>; | 250 | reg = <0x19c80000 0x1000>; |
| 244 | interrupts = <0 196 IRQ_TYPE_NONE>; | 251 | interrupts = <0 196 IRQ_TYPE_LEVEL_HIGH>; |
| 245 | clocks = <&gcc GSBI12_QUP_CLK>, <&gcc GSBI12_H_CLK>; | 252 | clocks = <&gcc GSBI12_QUP_CLK>, <&gcc GSBI12_H_CLK>; |
| 246 | clock-names = "core", "iface"; | 253 | clock-names = "core", "iface"; |
| 247 | #address-cells = <1>; | 254 | #address-cells = <1>; |
| @@ -285,51 +292,8 @@ | |||
| 285 | compatible = "qcom,pm8058-gpio", | 292 | compatible = "qcom,pm8058-gpio", |
| 286 | "qcom,ssbi-gpio"; | 293 | "qcom,ssbi-gpio"; |
| 287 | reg = <0x150>; | 294 | reg = <0x150>; |
| 288 | interrupt-parent = <&pm8058>; | 295 | interrupt-controller; |
| 289 | interrupts = <192 IRQ_TYPE_NONE>, | 296 | #interrupt-cells = <2>; |
| 290 | <193 IRQ_TYPE_NONE>, | ||
| 291 | <194 IRQ_TYPE_NONE>, | ||
| 292 | <195 IRQ_TYPE_NONE>, | ||
| 293 | <196 IRQ_TYPE_NONE>, | ||
| 294 | <197 IRQ_TYPE_NONE>, | ||
| 295 | <198 IRQ_TYPE_NONE>, | ||
| 296 | <199 IRQ_TYPE_NONE>, | ||
| 297 | <200 IRQ_TYPE_NONE>, | ||
| 298 | <201 IRQ_TYPE_NONE>, | ||
| 299 | <202 IRQ_TYPE_NONE>, | ||
| 300 | <203 IRQ_TYPE_NONE>, | ||
| 301 | <204 IRQ_TYPE_NONE>, | ||
| 302 | <205 IRQ_TYPE_NONE>, | ||
| 303 | <206 IRQ_TYPE_NONE>, | ||
| 304 | <207 IRQ_TYPE_NONE>, | ||
| 305 | <208 IRQ_TYPE_NONE>, | ||
| 306 | <209 IRQ_TYPE_NONE>, | ||
| 307 | <210 IRQ_TYPE_NONE>, | ||
| 308 | <211 IRQ_TYPE_NONE>, | ||
| 309 | <212 IRQ_TYPE_NONE>, | ||
| 310 | <213 IRQ_TYPE_NONE>, | ||
| 311 | <214 IRQ_TYPE_NONE>, | ||
| 312 | <215 IRQ_TYPE_NONE>, | ||
| 313 | <216 IRQ_TYPE_NONE>, | ||
| 314 | <217 IRQ_TYPE_NONE>, | ||
| 315 | <218 IRQ_TYPE_NONE>, | ||
| 316 | <219 IRQ_TYPE_NONE>, | ||
| 317 | <220 IRQ_TYPE_NONE>, | ||
| 318 | <221 IRQ_TYPE_NONE>, | ||
| 319 | <222 IRQ_TYPE_NONE>, | ||
| 320 | <223 IRQ_TYPE_NONE>, | ||
| 321 | <224 IRQ_TYPE_NONE>, | ||
| 322 | <225 IRQ_TYPE_NONE>, | ||
| 323 | <226 IRQ_TYPE_NONE>, | ||
| 324 | <227 IRQ_TYPE_NONE>, | ||
| 325 | <228 IRQ_TYPE_NONE>, | ||
| 326 | <229 IRQ_TYPE_NONE>, | ||
| 327 | <230 IRQ_TYPE_NONE>, | ||
| 328 | <231 IRQ_TYPE_NONE>, | ||
| 329 | <232 IRQ_TYPE_NONE>, | ||
| 330 | <233 IRQ_TYPE_NONE>, | ||
| 331 | <234 IRQ_TYPE_NONE>, | ||
| 332 | <235 IRQ_TYPE_NONE>; | ||
| 333 | gpio-controller; | 297 | gpio-controller; |
| 334 | #gpio-cells = <2>; | 298 | #gpio-cells = <2>; |
| 335 | 299 | ||
diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi index 1733d8f40ab1..f2aeaccdc1ad 100644 --- a/arch/arm/boot/dts/qcom-msm8960.dtsi +++ b/arch/arm/boot/dts/qcom-msm8960.dtsi | |||
| @@ -1,14 +1,14 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /dts-v1/; | 2 | /dts-v1/; |
| 3 | 3 | ||
| 4 | /include/ "skeleton.dtsi" | ||
| 5 | |||
| 6 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 7 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> | 5 | #include <dt-bindings/clock/qcom,gcc-msm8960.h> |
| 8 | #include <dt-bindings/mfd/qcom-rpm.h> | 6 | #include <dt-bindings/mfd/qcom-rpm.h> |
| 9 | #include <dt-bindings/soc/qcom,gsbi.h> | 7 | #include <dt-bindings/soc/qcom,gsbi.h> |
| 10 | 8 | ||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | model = "Qualcomm MSM8960"; | 12 | model = "Qualcomm MSM8960"; |
| 13 | compatible = "qcom,msm8960"; | 13 | compatible = "qcom,msm8960"; |
| 14 | interrupt-parent = <&intc>; | 14 | interrupt-parent = <&intc>; |
| @@ -44,6 +44,11 @@ | |||
| 44 | }; | 44 | }; |
| 45 | }; | 45 | }; |
| 46 | 46 | ||
| 47 | memory { | ||
| 48 | device_type = "memory"; | ||
| 49 | reg = <0x0 0x0>; | ||
| 50 | }; | ||
| 51 | |||
| 47 | cpu-pmu { | 52 | cpu-pmu { |
| 48 | compatible = "qcom,krait-pmu"; | 53 | compatible = "qcom,krait-pmu"; |
| 49 | interrupts = <1 10 0x304>; | 54 | interrupts = <1 10 0x304>; |
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts index 51444c53fc72..b3b04736a159 100644 --- a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts +++ b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts | |||
| @@ -220,6 +220,20 @@ | |||
| 220 | }; | 220 | }; |
| 221 | }; | 221 | }; |
| 222 | }; | 222 | }; |
| 223 | |||
| 224 | vreg_wlan: wlan-regulator { | ||
| 225 | compatible = "regulator-fixed"; | ||
| 226 | |||
| 227 | regulator-name = "wl-reg"; | ||
| 228 | regulator-min-microvolt = <3300000>; | ||
| 229 | regulator-max-microvolt = <3300000>; | ||
| 230 | |||
| 231 | gpio = <&msmgpio 26 GPIO_ACTIVE_HIGH>; | ||
| 232 | enable-active-high; | ||
| 233 | |||
| 234 | pinctrl-names = "default"; | ||
| 235 | pinctrl-0 = <&wlan_regulator_pin>; | ||
| 236 | }; | ||
| 223 | }; | 237 | }; |
| 224 | 238 | ||
| 225 | &soc { | 239 | &soc { |
| @@ -242,6 +256,30 @@ | |||
| 242 | }; | 256 | }; |
| 243 | }; | 257 | }; |
| 244 | 258 | ||
| 259 | sdhc2_pin_a: sdhc2-pin-active { | ||
| 260 | clk { | ||
| 261 | pins = "sdc2_clk"; | ||
| 262 | drive-strength = <6>; | ||
| 263 | bias-disable; | ||
| 264 | }; | ||
| 265 | |||
| 266 | cmd-data { | ||
| 267 | pins = "sdc2_cmd", "sdc2_data"; | ||
| 268 | drive-strength = <6>; | ||
| 269 | bias-pull-up; | ||
| 270 | }; | ||
| 271 | }; | ||
| 272 | |||
| 273 | i2c1_pins: i2c1 { | ||
| 274 | mux { | ||
| 275 | pins = "gpio2", "gpio3"; | ||
| 276 | function = "blsp_i2c1"; | ||
| 277 | |||
| 278 | drive-strength = <2>; | ||
| 279 | bias-disable; | ||
| 280 | }; | ||
| 281 | }; | ||
| 282 | |||
| 245 | i2c3_pins: i2c3 { | 283 | i2c3_pins: i2c3 { |
| 246 | mux { | 284 | mux { |
| 247 | pins = "gpio10", "gpio11"; | 285 | pins = "gpio10", "gpio11"; |
| @@ -283,6 +321,32 @@ | |||
| 283 | pinctrl-0 = <&sdhc1_pin_a>; | 321 | pinctrl-0 = <&sdhc1_pin_a>; |
| 284 | }; | 322 | }; |
| 285 | 323 | ||
| 324 | sdhci@f98a4900 { | ||
| 325 | status = "ok"; | ||
| 326 | |||
| 327 | max-frequency = <100000000>; | ||
| 328 | bus-width = <4>; | ||
| 329 | non-removable; | ||
| 330 | vmmc-supply = <&vreg_wlan>; | ||
| 331 | vqmmc-supply = <&pm8941_s3>; | ||
| 332 | |||
| 333 | pinctrl-names = "default"; | ||
| 334 | pinctrl-0 = <&sdhc2_pin_a>; | ||
| 335 | |||
| 336 | #address-cells = <1>; | ||
| 337 | #size-cells = <0>; | ||
| 338 | |||
| 339 | bcrmf@1 { | ||
| 340 | compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac"; | ||
| 341 | reg = <1>; | ||
| 342 | |||
| 343 | brcm,drive-strength = <10>; | ||
| 344 | |||
| 345 | pinctrl-names = "default"; | ||
| 346 | pinctrl-0 = <&wlan_sleep_clk_pin>; | ||
| 347 | }; | ||
| 348 | }; | ||
| 349 | |||
| 286 | gpio-keys { | 350 | gpio-keys { |
| 287 | compatible = "gpio-keys"; | 351 | compatible = "gpio-keys"; |
| 288 | input-name = "gpio-keys"; | 352 | input-name = "gpio-keys"; |
| @@ -342,6 +406,24 @@ | |||
| 342 | }; | 406 | }; |
| 343 | }; | 407 | }; |
| 344 | 408 | ||
| 409 | i2c@f9923000 { | ||
| 410 | status = "ok"; | ||
| 411 | pinctrl-names = "default"; | ||
| 412 | pinctrl-0 = <&i2c1_pins>; | ||
| 413 | clock-frequency = <100000>; | ||
| 414 | qcom,src-freq = <50000000>; | ||
| 415 | |||
| 416 | charger: bq24192@6b { | ||
| 417 | compatible = "ti,bq24192"; | ||
| 418 | reg = <0x6b>; | ||
| 419 | interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>; | ||
| 420 | |||
| 421 | omit-battery-class; | ||
| 422 | |||
| 423 | usb_otg_vbus: usb-otg-vbus { }; | ||
| 424 | }; | ||
| 425 | }; | ||
| 426 | |||
| 345 | i2c@f9925000 { | 427 | i2c@f9925000 { |
| 346 | status = "ok"; | 428 | status = "ok"; |
| 347 | pinctrl-names = "default"; | 429 | pinctrl-names = "default"; |
| @@ -359,6 +441,31 @@ | |||
| 359 | amstaos,proximity-diodes = <0>; | 441 | amstaos,proximity-diodes = <0>; |
| 360 | }; | 442 | }; |
| 361 | }; | 443 | }; |
| 444 | |||
| 445 | usb@f9a55000 { | ||
| 446 | status = "ok"; | ||
| 447 | |||
| 448 | phys = <&usb_hs1_phy>; | ||
| 449 | phy-select = <&tcsr 0xb000 0>; | ||
| 450 | |||
| 451 | extcon = <&charger>, <&usb_id>; | ||
| 452 | vbus-supply = <&usb_otg_vbus>; | ||
| 453 | |||
| 454 | hnp-disable; | ||
| 455 | srp-disable; | ||
| 456 | adp-disable; | ||
| 457 | |||
| 458 | ulpi { | ||
| 459 | phy@a { | ||
| 460 | status = "ok"; | ||
| 461 | |||
| 462 | v1p8-supply = <&pm8941_l6>; | ||
| 463 | v3p3-supply = <&pm8941_l24>; | ||
| 464 | |||
| 465 | qcom,init-seq = /bits/ 8 <0x1 0x64>; | ||
| 466 | }; | ||
| 467 | }; | ||
| 468 | }; | ||
| 362 | }; | 469 | }; |
| 363 | 470 | ||
| 364 | &spmi_bus { | 471 | &spmi_bus { |
| @@ -371,6 +478,29 @@ | |||
| 371 | bias-pull-up; | 478 | bias-pull-up; |
| 372 | power-source = <PM8941_GPIO_S3>; | 479 | power-source = <PM8941_GPIO_S3>; |
| 373 | }; | 480 | }; |
| 481 | |||
| 482 | wlan_sleep_clk_pin: wl-sleep-clk { | ||
| 483 | pins = "gpio16"; | ||
| 484 | function = "func2"; | ||
| 485 | |||
| 486 | output-high; | ||
| 487 | power-source = <PM8941_GPIO_S3>; | ||
| 488 | }; | ||
| 489 | |||
| 490 | wlan_regulator_pin: wl-reg-active { | ||
| 491 | pins = "gpio17"; | ||
| 492 | function = "normal"; | ||
| 493 | |||
| 494 | bias-disable; | ||
| 495 | power-source = <PM8941_GPIO_S3>; | ||
| 496 | }; | ||
| 497 | |||
| 498 | otg { | ||
| 499 | gpio-hog; | ||
| 500 | gpios = <35 GPIO_ACTIVE_HIGH>; | ||
| 501 | output-high; | ||
| 502 | line-name = "otg-gpio"; | ||
| 503 | }; | ||
| 374 | }; | 504 | }; |
| 375 | }; | 505 | }; |
| 376 | }; | 506 | }; |
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi index ca266a5f021d..45b5c8ef0374 100644 --- a/arch/arm/boot/dts/qcom-msm8974.dtsi +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi | |||
| @@ -6,9 +6,10 @@ | |||
| 6 | #include <dt-bindings/clock/qcom,rpmcc.h> | 6 | #include <dt-bindings/clock/qcom,rpmcc.h> |
| 7 | #include <dt-bindings/reset/qcom,gcc-msm8974.h> | 7 | #include <dt-bindings/reset/qcom,gcc-msm8974.h> |
| 8 | #include <dt-bindings/gpio/gpio.h> | 8 | #include <dt-bindings/gpio/gpio.h> |
| 9 | #include "skeleton.dtsi" | ||
| 10 | 9 | ||
| 11 | / { | 10 | / { |
| 11 | #address-cells = <1>; | ||
| 12 | #size-cells = <1>; | ||
| 12 | model = "Qualcomm MSM8974"; | 13 | model = "Qualcomm MSM8974"; |
| 13 | compatible = "qcom,msm8974"; | 14 | compatible = "qcom,msm8974"; |
| 14 | interrupt-parent = <&intc>; | 15 | interrupt-parent = <&intc>; |
| @@ -130,6 +131,11 @@ | |||
| 130 | }; | 131 | }; |
| 131 | }; | 132 | }; |
| 132 | 133 | ||
| 134 | memory { | ||
| 135 | device_type = "memory"; | ||
| 136 | reg = <0x0 0x0>; | ||
| 137 | }; | ||
| 138 | |||
| 133 | thermal-zones { | 139 | thermal-zones { |
| 134 | cpu-thermal0 { | 140 | cpu-thermal0 { |
| 135 | polling-delay-passive = <250>; | 141 | polling-delay-passive = <250>; |
| @@ -706,6 +712,17 @@ | |||
| 706 | interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; | 712 | interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; |
| 707 | }; | 713 | }; |
| 708 | 714 | ||
| 715 | i2c@f9923000 { | ||
| 716 | status = "disabled"; | ||
| 717 | compatible = "qcom,i2c-qup-v2.1.1"; | ||
| 718 | reg = <0xf9923000 0x1000>; | ||
| 719 | interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>; | ||
| 720 | clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 721 | clock-names = "core", "iface"; | ||
| 722 | #address-cells = <1>; | ||
| 723 | #size-cells = <0>; | ||
| 724 | }; | ||
| 725 | |||
| 709 | i2c@f9924000 { | 726 | i2c@f9924000 { |
| 710 | status = "disabled"; | 727 | status = "disabled"; |
| 711 | compatible = "qcom,i2c-qup-v2.1.1"; | 728 | compatible = "qcom,i2c-qup-v2.1.1"; |
diff --git a/arch/arm/boot/dts/qcom-pm8941.dtsi b/arch/arm/boot/dts/qcom-pm8941.dtsi index 2515c5c217ac..f198480c8ef4 100644 --- a/arch/arm/boot/dts/qcom-pm8941.dtsi +++ b/arch/arm/boot/dts/qcom-pm8941.dtsi | |||
| @@ -63,43 +63,10 @@ | |||
| 63 | compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio"; | 63 | compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio"; |
| 64 | reg = <0xc000>; | 64 | reg = <0xc000>; |
| 65 | gpio-controller; | 65 | gpio-controller; |
| 66 | gpio-ranges = <&pm8941_gpios 0 0 36>; | ||
| 66 | #gpio-cells = <2>; | 67 | #gpio-cells = <2>; |
| 67 | interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, | 68 | interrupt-controller; |
| 68 | <0 0xc1 0 IRQ_TYPE_NONE>, | 69 | #interrupt-cells = <2>; |
| 69 | <0 0xc2 0 IRQ_TYPE_NONE>, | ||
| 70 | <0 0xc3 0 IRQ_TYPE_NONE>, | ||
| 71 | <0 0xc4 0 IRQ_TYPE_NONE>, | ||
| 72 | <0 0xc5 0 IRQ_TYPE_NONE>, | ||
| 73 | <0 0xc6 0 IRQ_TYPE_NONE>, | ||
| 74 | <0 0xc7 0 IRQ_TYPE_NONE>, | ||
| 75 | <0 0xc8 0 IRQ_TYPE_NONE>, | ||
| 76 | <0 0xc9 0 IRQ_TYPE_NONE>, | ||
| 77 | <0 0xca 0 IRQ_TYPE_NONE>, | ||
| 78 | <0 0xcb 0 IRQ_TYPE_NONE>, | ||
| 79 | <0 0xcc 0 IRQ_TYPE_NONE>, | ||
| 80 | <0 0xcd 0 IRQ_TYPE_NONE>, | ||
| 81 | <0 0xce 0 IRQ_TYPE_NONE>, | ||
| 82 | <0 0xcf 0 IRQ_TYPE_NONE>, | ||
| 83 | <0 0xd0 0 IRQ_TYPE_NONE>, | ||
| 84 | <0 0xd1 0 IRQ_TYPE_NONE>, | ||
| 85 | <0 0xd2 0 IRQ_TYPE_NONE>, | ||
| 86 | <0 0xd3 0 IRQ_TYPE_NONE>, | ||
| 87 | <0 0xd4 0 IRQ_TYPE_NONE>, | ||
| 88 | <0 0xd5 0 IRQ_TYPE_NONE>, | ||
| 89 | <0 0xd6 0 IRQ_TYPE_NONE>, | ||
| 90 | <0 0xd7 0 IRQ_TYPE_NONE>, | ||
| 91 | <0 0xd8 0 IRQ_TYPE_NONE>, | ||
| 92 | <0 0xd9 0 IRQ_TYPE_NONE>, | ||
| 93 | <0 0xda 0 IRQ_TYPE_NONE>, | ||
| 94 | <0 0xdb 0 IRQ_TYPE_NONE>, | ||
| 95 | <0 0xdc 0 IRQ_TYPE_NONE>, | ||
| 96 | <0 0xdd 0 IRQ_TYPE_NONE>, | ||
| 97 | <0 0xde 0 IRQ_TYPE_NONE>, | ||
| 98 | <0 0xdf 0 IRQ_TYPE_NONE>, | ||
| 99 | <0 0xe0 0 IRQ_TYPE_NONE>, | ||
| 100 | <0 0xe1 0 IRQ_TYPE_NONE>, | ||
| 101 | <0 0xe2 0 IRQ_TYPE_NONE>, | ||
| 102 | <0 0xe3 0 IRQ_TYPE_NONE>; | ||
| 103 | 70 | ||
| 104 | boost_bypass_n_pin: boost-bypass { | 71 | boost_bypass_n_pin: boost-bypass { |
| 105 | pins = "gpio21"; | 72 | pins = "gpio21"; |
diff --git a/arch/arm/boot/dts/qcom-pma8084.dtsi b/arch/arm/boot/dts/qcom-pma8084.dtsi index aac7e73b6872..8f5ea7add20f 100644 --- a/arch/arm/boot/dts/qcom-pma8084.dtsi +++ b/arch/arm/boot/dts/qcom-pma8084.dtsi | |||
| @@ -32,28 +32,8 @@ | |||
| 32 | reg = <0xc000>; | 32 | reg = <0xc000>; |
| 33 | gpio-controller; | 33 | gpio-controller; |
| 34 | #gpio-cells = <2>; | 34 | #gpio-cells = <2>; |
| 35 | interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, | 35 | interrupt-controller; |
| 36 | <0 0xc1 0 IRQ_TYPE_NONE>, | 36 | #interrupt-cells = <2>; |
| 37 | <0 0xc2 0 IRQ_TYPE_NONE>, | ||
| 38 | <0 0xc3 0 IRQ_TYPE_NONE>, | ||
| 39 | <0 0xc4 0 IRQ_TYPE_NONE>, | ||
| 40 | <0 0xc5 0 IRQ_TYPE_NONE>, | ||
| 41 | <0 0xc6 0 IRQ_TYPE_NONE>, | ||
| 42 | <0 0xc7 0 IRQ_TYPE_NONE>, | ||
| 43 | <0 0xc8 0 IRQ_TYPE_NONE>, | ||
| 44 | <0 0xc9 0 IRQ_TYPE_NONE>, | ||
| 45 | <0 0xca 0 IRQ_TYPE_NONE>, | ||
| 46 | <0 0xcb 0 IRQ_TYPE_NONE>, | ||
| 47 | <0 0xcc 0 IRQ_TYPE_NONE>, | ||
| 48 | <0 0xcd 0 IRQ_TYPE_NONE>, | ||
| 49 | <0 0xce 0 IRQ_TYPE_NONE>, | ||
| 50 | <0 0xcf 0 IRQ_TYPE_NONE>, | ||
| 51 | <0 0xd0 0 IRQ_TYPE_NONE>, | ||
| 52 | <0 0xd1 0 IRQ_TYPE_NONE>, | ||
| 53 | <0 0xd2 0 IRQ_TYPE_NONE>, | ||
| 54 | <0 0xd3 0 IRQ_TYPE_NONE>, | ||
| 55 | <0 0xd4 0 IRQ_TYPE_NONE>, | ||
| 56 | <0 0xd5 0 IRQ_TYPE_NONE>; | ||
| 57 | }; | 37 | }; |
| 58 | 38 | ||
| 59 | pma8084_mpps: mpps@a000 { | 39 | pma8084_mpps: mpps@a000 { |
diff --git a/arch/arm/boot/dts/r7s9210-rza2mevb.dts b/arch/arm/boot/dts/r7s9210-rza2mevb.dts new file mode 100644 index 000000000000..991e09de1219 --- /dev/null +++ b/arch/arm/boot/dts/r7s9210-rza2mevb.dts | |||
| @@ -0,0 +1,82 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Device Tree Source for the RZA2MEVB board | ||
| 4 | * | ||
| 5 | * Copyright (C) 2018 Renesas Electronics | ||
| 6 | * | ||
| 7 | */ | ||
| 8 | |||
| 9 | /dts-v1/; | ||
| 10 | #include "r7s9210.dtsi" | ||
| 11 | #include <dt-bindings/gpio/gpio.h> | ||
| 12 | #include <dt-bindings/pinctrl/r7s9210-pinctrl.h> | ||
| 13 | |||
| 14 | / { | ||
| 15 | model = "RZA2MEVB"; | ||
| 16 | compatible = "renesas,rza2mevb", "renesas,r7s9210"; | ||
| 17 | |||
| 18 | aliases { | ||
| 19 | serial0 = &scif4; | ||
| 20 | }; | ||
| 21 | |||
| 22 | chosen { | ||
| 23 | bootargs = "ignore_loglevel"; | ||
| 24 | stdout-path = "serial0:115200n8"; | ||
| 25 | }; | ||
| 26 | |||
| 27 | memory@40000000 { | ||
| 28 | device_type = "memory"; | ||
| 29 | reg = <0x40000000 0x00800000>; /* HyperRAM */ | ||
| 30 | }; | ||
| 31 | |||
| 32 | lbsc { | ||
| 33 | #address-cells = <1>; | ||
| 34 | #size-cells = <1>; | ||
| 35 | }; | ||
| 36 | |||
| 37 | leds { | ||
| 38 | compatible = "gpio-leds"; | ||
| 39 | |||
| 40 | red { | ||
| 41 | gpios = <&pinctrl RZA2_PIN(PORT6, 0) GPIO_ACTIVE_HIGH>; | ||
| 42 | }; | ||
| 43 | green { | ||
| 44 | gpios = <&pinctrl RZA2_PIN(PORTC, 1) GPIO_ACTIVE_HIGH>; | ||
| 45 | }; | ||
| 46 | }; | ||
| 47 | }; | ||
| 48 | |||
| 49 | /* EXTAL */ | ||
| 50 | &extal_clk { | ||
| 51 | clock-frequency = <24000000>; /* 24MHz */ | ||
| 52 | }; | ||
| 53 | |||
| 54 | /* RTC_X1 */ | ||
| 55 | &rtc_x1_clk { | ||
| 56 | clock-frequency = <32768>; | ||
| 57 | }; | ||
| 58 | |||
| 59 | &pinctrl { | ||
| 60 | /* Serial Console */ | ||
| 61 | scif4_pins: serial4 { | ||
| 62 | pinmux = <RZA2_PINMUX(PORT9, 0, 4)>, /* TxD4 */ | ||
| 63 | <RZA2_PINMUX(PORT9, 1, 4)>; /* RxD4 */ | ||
| 64 | }; | ||
| 65 | }; | ||
| 66 | |||
| 67 | /* High resolution System tick timers */ | ||
| 68 | &ostm0 { | ||
| 69 | status = "okay"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | &ostm1 { | ||
| 73 | status = "okay"; | ||
| 74 | }; | ||
| 75 | |||
| 76 | /* Serial Console */ | ||
| 77 | &scif4 { | ||
| 78 | pinctrl-names = "default"; | ||
| 79 | pinctrl-0 = <&scif4_pins>; | ||
| 80 | |||
| 81 | status = "okay"; | ||
| 82 | }; | ||
diff --git a/arch/arm/boot/dts/r7s9210.dtsi b/arch/arm/boot/dts/r7s9210.dtsi new file mode 100644 index 000000000000..22baa96f5974 --- /dev/null +++ b/arch/arm/boot/dts/r7s9210.dtsi | |||
| @@ -0,0 +1,218 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Device Tree Source for the R7S9210 SoC | ||
| 4 | * | ||
| 5 | * Copyright (C) 2018 Renesas Electronics Corporation | ||
| 6 | * | ||
| 7 | */ | ||
| 8 | |||
| 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 10 | #include <dt-bindings/clock/r7s9210-cpg-mssr.h> | ||
| 11 | |||
| 12 | / { | ||
| 13 | compatible = "renesas,r7s9210"; | ||
| 14 | interrupt-parent = <&gic>; | ||
| 15 | #address-cells = <1>; | ||
| 16 | #size-cells = <1>; | ||
| 17 | |||
| 18 | /* External clocks */ | ||
| 19 | extal_clk: extal { | ||
| 20 | #clock-cells = <0>; | ||
| 21 | compatible = "fixed-clock"; | ||
| 22 | /* Value must be set by board */ | ||
| 23 | clock-frequency = <0>; | ||
| 24 | }; | ||
| 25 | |||
| 26 | rtc_x1_clk: rtc_x1 { | ||
| 27 | #clock-cells = <0>; | ||
| 28 | compatible = "fixed-clock"; | ||
| 29 | /* If clk present, value (32678) must be set by board */ | ||
| 30 | clock-frequency = <0>; | ||
| 31 | }; | ||
| 32 | |||
| 33 | cpus { | ||
| 34 | #address-cells = <1>; | ||
| 35 | #size-cells = <0>; | ||
| 36 | |||
| 37 | cpu@0 { | ||
| 38 | device_type = "cpu"; | ||
| 39 | compatible = "arm,cortex-a9"; | ||
| 40 | reg = <0>; | ||
| 41 | clock-frequency = <528000000>; | ||
| 42 | next-level-cache = <&L2>; | ||
| 43 | }; | ||
| 44 | }; | ||
| 45 | |||
| 46 | soc { | ||
| 47 | compatible = "simple-bus"; | ||
| 48 | interrupt-parent = <&gic>; | ||
| 49 | |||
| 50 | #address-cells = <1>; | ||
| 51 | #size-cells = <1>; | ||
| 52 | ranges; | ||
| 53 | |||
| 54 | L2: cache-controller@1f003000 { | ||
| 55 | compatible = "arm,pl310-cache"; | ||
| 56 | reg = <0x1f003000 0x1000>; | ||
| 57 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
| 58 | arm,early-bresp-disable; | ||
| 59 | arm,full-line-zero-disable; | ||
| 60 | cache-unified; | ||
| 61 | cache-level = <2>; | ||
| 62 | }; | ||
| 63 | |||
| 64 | scif0: serial@e8007000 { | ||
| 65 | compatible = "renesas,scif-r7s9210"; | ||
| 66 | reg = <0xe8007000 0x18>; | ||
| 67 | interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>, | ||
| 68 | <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>, | ||
| 69 | <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>, | ||
| 70 | <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>, | ||
| 71 | <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, | ||
| 72 | <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; | ||
| 73 | interrupt-names = "eri", "rxi", "txi", | ||
| 74 | "bri", "dri", "tei"; | ||
| 75 | clocks = <&cpg CPG_MOD 47>; | ||
| 76 | clock-names = "fck"; | ||
| 77 | power-domains = <&cpg>; | ||
| 78 | status = "disabled"; | ||
| 79 | }; | ||
| 80 | |||
| 81 | scif1: serial@e8007800 { | ||
| 82 | compatible = "renesas,scif-r7s9210"; | ||
| 83 | reg = <0xe8007800 0x18>; | ||
| 84 | interrupts = <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, | ||
| 85 | <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>, | ||
| 86 | <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>, | ||
| 87 | <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>, | ||
| 88 | <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>, | ||
| 89 | <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>; | ||
| 90 | interrupt-names = "eri", "rxi", "txi", | ||
| 91 | "bri", "dri", "tei"; | ||
| 92 | clocks = <&cpg CPG_MOD 46>; | ||
| 93 | clock-names = "fck"; | ||
| 94 | power-domains = <&cpg>; | ||
| 95 | status = "disabled"; | ||
| 96 | }; | ||
| 97 | |||
| 98 | scif2: serial@e8008000 { | ||
| 99 | compatible = "renesas,scif-r7s9210"; | ||
| 100 | reg = <0xe8008000 0x18>; | ||
| 101 | interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>, | ||
| 102 | <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>, | ||
| 103 | <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>, | ||
| 104 | <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>, | ||
| 105 | <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>, | ||
| 106 | <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>; | ||
| 107 | interrupt-names = "eri", "rxi", "txi", | ||
| 108 | "bri", "dri", "tei"; | ||
| 109 | clocks = <&cpg CPG_MOD 45>; | ||
| 110 | clock-names = "fck"; | ||
| 111 | power-domains = <&cpg>; | ||
| 112 | status = "disabled"; | ||
| 113 | }; | ||
| 114 | |||
| 115 | scif3: serial@e8008800 { | ||
| 116 | compatible = "renesas,scif-r7s9210"; | ||
| 117 | reg = <0xe8008800 0x18>; | ||
| 118 | interrupts = <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, | ||
| 119 | <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, | ||
| 120 | <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>, | ||
| 121 | <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, | ||
| 122 | <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>, | ||
| 123 | <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
| 124 | interrupt-names = "eri", "rxi", "txi", | ||
| 125 | "bri", "dri", "tei"; | ||
| 126 | clocks = <&cpg CPG_MOD 44>; | ||
| 127 | clock-names = "fck"; | ||
| 128 | power-domains = <&cpg>; | ||
| 129 | status = "disabled"; | ||
| 130 | }; | ||
| 131 | |||
| 132 | scif4: serial@e8009000 { | ||
| 133 | compatible = "renesas,scif-r7s9210"; | ||
| 134 | reg = <0xe8009000 0x18>; | ||
| 135 | interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>, | ||
| 136 | <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>, | ||
| 137 | <GIC_SPI 291 IRQ_TYPE_LEVEL_HIGH>, | ||
| 138 | <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>, | ||
| 139 | <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>, | ||
| 140 | <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>; | ||
| 141 | interrupt-names = "eri", "rxi", "txi", | ||
| 142 | "bri", "dri", "tei"; | ||
| 143 | clocks = <&cpg CPG_MOD 43>; | ||
| 144 | clock-names = "fck"; | ||
| 145 | power-domains = <&cpg>; | ||
| 146 | status = "disabled"; | ||
| 147 | }; | ||
| 148 | |||
| 149 | ostm0: timer@e803b000 { | ||
| 150 | compatible = "renesas,r7s9210-ostm", "renesas,ostm"; | ||
| 151 | reg = <0xe803b000 0x30>; | ||
| 152 | interrupts = <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>; | ||
| 153 | clocks = <&cpg CPG_MOD 36>; | ||
| 154 | clock-names = "ostm0"; | ||
| 155 | power-domains = <&cpg>; | ||
| 156 | status = "disabled"; | ||
| 157 | }; | ||
| 158 | |||
| 159 | ostm1: timer@e803c000 { | ||
| 160 | compatible = "renesas,r7s9210-ostm", "renesas,ostm"; | ||
| 161 | reg = <0xe803c000 0x30>; | ||
| 162 | interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>; | ||
| 163 | clocks = <&cpg CPG_MOD 35>; | ||
| 164 | clock-names = "ostm1"; | ||
| 165 | power-domains = <&cpg>; | ||
| 166 | status = "disabled"; | ||
| 167 | }; | ||
| 168 | |||
| 169 | ostm2: timer@e803d000 { | ||
| 170 | compatible = "renesas,r7s9210-ostm", "renesas,ostm"; | ||
| 171 | reg = <0xe803d000 0x30>; | ||
| 172 | interrupts = <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>; | ||
| 173 | clocks = <&cpg CPG_MOD 34>; | ||
| 174 | clock-names = "ostm2"; | ||
| 175 | power-domains = <&cpg>; | ||
| 176 | status = "disabled"; | ||
| 177 | }; | ||
| 178 | |||
| 179 | gic: interrupt-controller@e8221000 { | ||
| 180 | compatible = "arm,gic-400"; | ||
| 181 | #interrupt-cells = <3>; | ||
| 182 | #address-cells = <0>; | ||
| 183 | interrupt-controller; | ||
| 184 | reg = <0xe8221000 0x1000>, | ||
| 185 | <0xe8222000 0x1000>; | ||
| 186 | }; | ||
| 187 | |||
| 188 | cpg: clock-controller@fcfe0010 { | ||
| 189 | compatible = "renesas,r7s9210-cpg-mssr"; | ||
| 190 | reg = <0xfcfe0010 0x455>; | ||
| 191 | clocks = <&extal_clk>; | ||
| 192 | clock-names = "extal"; | ||
| 193 | #clock-cells = <2>; | ||
| 194 | #power-domain-cells = <0>; | ||
| 195 | }; | ||
| 196 | |||
| 197 | wdt: watchdog@fcfe7000 { | ||
| 198 | compatible = "renesas,r7s9210-wdt", "renesas,rza-wdt"; | ||
| 199 | reg = <0xfcfe7000 0x26>; | ||
| 200 | interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; | ||
| 201 | clocks = <&cpg CPG_CORE R7S9210_CLK_P0>; | ||
| 202 | }; | ||
| 203 | |||
| 204 | bsid: chipid@fcfe8004 { | ||
| 205 | compatible = "renesas,bsid"; | ||
| 206 | reg = <0xfcfe8004 4>; | ||
| 207 | }; | ||
| 208 | |||
| 209 | pinctrl: pin-controller@fcffe000 { | ||
| 210 | compatible = "renesas,r7s9210-pinctrl"; | ||
| 211 | reg = <0xfcffe000 0x1000>; | ||
| 212 | |||
| 213 | gpio-controller; | ||
| 214 | #gpio-cells = <2>; | ||
| 215 | gpio-ranges = <&pinctrl 0 0 176>; | ||
| 216 | }; | ||
| 217 | }; | ||
| 218 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi index 3cc33f7ff7fe..de981d629bdd 100644 --- a/arch/arm/boot/dts/r8a7743.dtsi +++ b/arch/arm/boot/dts/r8a7743.dtsi | |||
| @@ -15,25 +15,6 @@ | |||
| 15 | #address-cells = <2>; | 15 | #address-cells = <2>; |
| 16 | #size-cells = <2>; | 16 | #size-cells = <2>; |
| 17 | 17 | ||
| 18 | aliases { | ||
| 19 | i2c0 = &i2c0; | ||
| 20 | i2c1 = &i2c1; | ||
| 21 | i2c2 = &i2c2; | ||
| 22 | i2c3 = &i2c3; | ||
| 23 | i2c4 = &i2c4; | ||
| 24 | i2c5 = &i2c5; | ||
| 25 | i2c6 = &iic0; | ||
| 26 | i2c7 = &iic1; | ||
| 27 | i2c8 = &iic3; | ||
| 28 | spi0 = &qspi; | ||
| 29 | spi1 = &msiof0; | ||
| 30 | spi2 = &msiof1; | ||
| 31 | spi3 = &msiof2; | ||
| 32 | vin0 = &vin0; | ||
| 33 | vin1 = &vin1; | ||
| 34 | vin2 = &vin2; | ||
| 35 | }; | ||
| 36 | |||
| 37 | /* | 18 | /* |
| 38 | * The external audio clocks are configured as 0 Hz fixed frequency | 19 | * The external audio clocks are configured as 0 Hz fixed frequency |
| 39 | * clocks by default. | 20 | * clocks by default. |
| @@ -154,6 +135,16 @@ | |||
| 154 | #size-cells = <2>; | 135 | #size-cells = <2>; |
| 155 | ranges; | 136 | ranges; |
| 156 | 137 | ||
| 138 | rwdt: watchdog@e6020000 { | ||
| 139 | compatible = "renesas,r8a7743-wdt", | ||
| 140 | "renesas,rcar-gen2-wdt"; | ||
| 141 | reg = <0 0xe6020000 0 0x0c>; | ||
| 142 | clocks = <&cpg CPG_MOD 402>; | ||
| 143 | power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; | ||
| 144 | resets = <&cpg 402>; | ||
| 145 | status = "disabled"; | ||
| 146 | }; | ||
| 147 | |||
| 157 | gpio0: gpio@e6050000 { | 148 | gpio0: gpio@e6050000 { |
| 158 | compatible = "renesas,gpio-r8a7743", | 149 | compatible = "renesas,gpio-r8a7743", |
| 159 | "renesas,rcar-gen2-gpio"; | 150 | "renesas,rcar-gen2-gpio"; |
| @@ -310,16 +301,6 @@ | |||
| 310 | reg = <0 0xe6160000 0 0x100>; | 301 | reg = <0 0xe6160000 0 0x100>; |
| 311 | }; | 302 | }; |
| 312 | 303 | ||
| 313 | rwdt: watchdog@e6020000 { | ||
| 314 | compatible = "renesas,r8a7743-wdt", | ||
| 315 | "renesas,rcar-gen2-wdt"; | ||
| 316 | reg = <0 0xe6020000 0 0x0c>; | ||
| 317 | clocks = <&cpg CPG_MOD 402>; | ||
| 318 | power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; | ||
| 319 | resets = <&cpg 402>; | ||
| 320 | status = "disabled"; | ||
| 321 | }; | ||
| 322 | |||
| 323 | sysc: system-controller@e6180000 { | 304 | sysc: system-controller@e6180000 { |
| 324 | compatible = "renesas,r8a7743-sysc"; | 305 | compatible = "renesas,r8a7743-sysc"; |
| 325 | reg = <0 0xe6180000 0 0x200>; | 306 | reg = <0 0xe6180000 0 0x200>; |
| @@ -564,9 +545,7 @@ | |||
| 564 | /* doesn't need pinmux */ | 545 | /* doesn't need pinmux */ |
| 565 | #address-cells = <1>; | 546 | #address-cells = <1>; |
| 566 | #size-cells = <0>; | 547 | #size-cells = <0>; |
| 567 | compatible = "renesas,iic-r8a7743", | 548 | compatible = "renesas,iic-r8a7743"; |
| 568 | "renesas,rcar-gen2-iic", | ||
| 569 | "renesas,rmobile-iic"; | ||
| 570 | reg = <0 0xe60b0000 0 0x425>; | 549 | reg = <0 0xe60b0000 0 0x425>; |
| 571 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; | 550 | interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; |
| 572 | clocks = <&cpg CPG_MOD 926>; | 551 | clocks = <&cpg CPG_MOD 926>; |
| @@ -1681,15 +1660,12 @@ | |||
| 1681 | 1660 | ||
| 1682 | du: display@feb00000 { | 1661 | du: display@feb00000 { |
| 1683 | compatible = "renesas,du-r8a7743"; | 1662 | compatible = "renesas,du-r8a7743"; |
| 1684 | reg = <0 0xfeb00000 0 0x40000>, | 1663 | reg = <0 0xfeb00000 0 0x40000>; |
| 1685 | <0 0xfeb90000 0 0x1c>; | ||
| 1686 | reg-names = "du", "lvds.0"; | ||
| 1687 | interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, | 1664 | interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, |
| 1688 | <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; | 1665 | <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; |
| 1689 | clocks = <&cpg CPG_MOD 724>, | 1666 | clocks = <&cpg CPG_MOD 724>, |
| 1690 | <&cpg CPG_MOD 723>, | 1667 | <&cpg CPG_MOD 723>; |
| 1691 | <&cpg CPG_MOD 726>; | 1668 | clock-names = "du.0", "du.1"; |
| 1692 | clock-names = "du.0", "du.1", "lvds.0"; | ||
| 1693 | status = "disabled"; | 1669 | status = "disabled"; |
| 1694 | 1670 | ||
| 1695 | ports { | 1671 | ports { |
| @@ -1704,6 +1680,33 @@ | |||
| 1704 | port@1 { | 1680 | port@1 { |
| 1705 | reg = <1>; | 1681 | reg = <1>; |
| 1706 | du_out_lvds0: endpoint { | 1682 | du_out_lvds0: endpoint { |
| 1683 | remote-endpoint = <&lvds0_in>; | ||
| 1684 | }; | ||
| 1685 | }; | ||
| 1686 | }; | ||
| 1687 | }; | ||
| 1688 | |||
| 1689 | lvds0: lvds@feb90000 { | ||
| 1690 | compatible = "renesas,r8a7743-lvds"; | ||
| 1691 | reg = <0 0xfeb90000 0 0x1c>; | ||
| 1692 | clocks = <&cpg CPG_MOD 726>; | ||
| 1693 | power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; | ||
| 1694 | resets = <&cpg 726>; | ||
| 1695 | status = "disabled"; | ||
| 1696 | |||
| 1697 | ports { | ||
| 1698 | #address-cells = <1>; | ||
| 1699 | #size-cells = <0>; | ||
| 1700 | |||
| 1701 | port@0 { | ||
| 1702 | reg = <0>; | ||
| 1703 | lvds0_in: endpoint { | ||
| 1704 | remote-endpoint = <&du_out_lvds0>; | ||
| 1705 | }; | ||
| 1706 | }; | ||
| 1707 | port@1 { | ||
| 1708 | reg = <1>; | ||
| 1709 | lvds0_out: endpoint { | ||
| 1707 | }; | 1710 | }; |
| 1708 | }; | 1711 | }; |
| 1709 | }; | 1712 | }; |
diff --git a/arch/arm/boot/dts/r8a7744.dtsi b/arch/arm/boot/dts/r8a7744.dtsi index 04148d608fc4..fa74a262107b 100644 --- a/arch/arm/boot/dts/r8a7744.dtsi +++ b/arch/arm/boot/dts/r8a7744.dtsi | |||
| @@ -998,6 +998,54 @@ | |||
| 998 | status = "disabled"; | 998 | status = "disabled"; |
| 999 | }; | 999 | }; |
| 1000 | 1000 | ||
| 1001 | msiof0: spi@e6e20000 { | ||
| 1002 | compatible = "renesas,msiof-r8a7744", | ||
| 1003 | "renesas,rcar-gen2-msiof"; | ||
| 1004 | reg = <0 0xe6e20000 0 0x0064>; | ||
| 1005 | interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1006 | clocks = <&cpg CPG_MOD 000>; | ||
| 1007 | dmas = <&dmac0 0x51>, <&dmac0 0x52>, | ||
| 1008 | <&dmac1 0x51>, <&dmac1 0x52>; | ||
| 1009 | dma-names = "tx", "rx", "tx", "rx"; | ||
| 1010 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1011 | #address-cells = <1>; | ||
| 1012 | #size-cells = <0>; | ||
| 1013 | resets = <&cpg 000>; | ||
| 1014 | status = "disabled"; | ||
| 1015 | }; | ||
| 1016 | |||
| 1017 | msiof1: spi@e6e10000 { | ||
| 1018 | compatible = "renesas,msiof-r8a7744", | ||
| 1019 | "renesas,rcar-gen2-msiof"; | ||
| 1020 | reg = <0 0xe6e10000 0 0x0064>; | ||
| 1021 | interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1022 | clocks = <&cpg CPG_MOD 208>; | ||
| 1023 | dmas = <&dmac0 0x55>, <&dmac0 0x56>, | ||
| 1024 | <&dmac1 0x55>, <&dmac1 0x56>; | ||
| 1025 | dma-names = "tx", "rx", "tx", "rx"; | ||
| 1026 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1027 | #address-cells = <1>; | ||
| 1028 | #size-cells = <0>; | ||
| 1029 | resets = <&cpg 208>; | ||
| 1030 | status = "disabled"; | ||
| 1031 | }; | ||
| 1032 | |||
| 1033 | msiof2: spi@e6e00000 { | ||
| 1034 | compatible = "renesas,msiof-r8a7744", | ||
| 1035 | "renesas,rcar-gen2-msiof"; | ||
| 1036 | reg = <0 0xe6e00000 0 0x0064>; | ||
| 1037 | interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1038 | clocks = <&cpg CPG_MOD 205>; | ||
| 1039 | dmas = <&dmac0 0x41>, <&dmac0 0x42>, | ||
| 1040 | <&dmac1 0x41>, <&dmac1 0x42>; | ||
| 1041 | dma-names = "tx", "rx", "tx", "rx"; | ||
| 1042 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1043 | #address-cells = <1>; | ||
| 1044 | #size-cells = <0>; | ||
| 1045 | resets = <&cpg 205>; | ||
| 1046 | status = "disabled"; | ||
| 1047 | }; | ||
| 1048 | |||
| 1001 | pwm0: pwm@e6e30000 { | 1049 | pwm0: pwm@e6e30000 { |
| 1002 | compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; | 1050 | compatible = "renesas,pwm-r8a7744", "renesas,pwm-rcar"; |
| 1003 | reg = <0 0xe6e30000 0 0x8>; | 1051 | reg = <0 0xe6e30000 0 0x8>; |
| @@ -1068,54 +1116,6 @@ | |||
| 1068 | status = "disabled"; | 1116 | status = "disabled"; |
| 1069 | }; | 1117 | }; |
| 1070 | 1118 | ||
| 1071 | msiof0: spi@e6e20000 { | ||
| 1072 | compatible = "renesas,msiof-r8a7744", | ||
| 1073 | "renesas,rcar-gen2-msiof"; | ||
| 1074 | reg = <0 0xe6e20000 0 0x0064>; | ||
| 1075 | interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1076 | clocks = <&cpg CPG_MOD 000>; | ||
| 1077 | dmas = <&dmac0 0x51>, <&dmac0 0x52>, | ||
| 1078 | <&dmac1 0x51>, <&dmac1 0x52>; | ||
| 1079 | dma-names = "tx", "rx", "tx", "rx"; | ||
| 1080 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1081 | #address-cells = <1>; | ||
| 1082 | #size-cells = <0>; | ||
| 1083 | resets = <&cpg 000>; | ||
| 1084 | status = "disabled"; | ||
| 1085 | }; | ||
| 1086 | |||
| 1087 | msiof1: spi@e6e10000 { | ||
| 1088 | compatible = "renesas,msiof-r8a7744", | ||
| 1089 | "renesas,rcar-gen2-msiof"; | ||
| 1090 | reg = <0 0xe6e10000 0 0x0064>; | ||
| 1091 | interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1092 | clocks = <&cpg CPG_MOD 208>; | ||
| 1093 | dmas = <&dmac0 0x55>, <&dmac0 0x56>, | ||
| 1094 | <&dmac1 0x55>, <&dmac1 0x56>; | ||
| 1095 | dma-names = "tx", "rx", "tx", "rx"; | ||
| 1096 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1097 | #address-cells = <1>; | ||
| 1098 | #size-cells = <0>; | ||
| 1099 | resets = <&cpg 208>; | ||
| 1100 | status = "disabled"; | ||
| 1101 | }; | ||
| 1102 | |||
| 1103 | msiof2: spi@e6e00000 { | ||
| 1104 | compatible = "renesas,msiof-r8a7744", | ||
| 1105 | "renesas,rcar-gen2-msiof"; | ||
| 1106 | reg = <0 0xe6e00000 0 0x0064>; | ||
| 1107 | interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1108 | clocks = <&cpg CPG_MOD 205>; | ||
| 1109 | dmas = <&dmac0 0x41>, <&dmac0 0x42>, | ||
| 1110 | <&dmac1 0x41>, <&dmac1 0x42>; | ||
| 1111 | dma-names = "tx", "rx", "tx", "rx"; | ||
| 1112 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1113 | #address-cells = <1>; | ||
| 1114 | #size-cells = <0>; | ||
| 1115 | resets = <&cpg 205>; | ||
| 1116 | status = "disabled"; | ||
| 1117 | }; | ||
| 1118 | |||
| 1119 | can0: can@e6e80000 { | 1119 | can0: can@e6e80000 { |
| 1120 | compatible = "renesas,can-r8a7744", | 1120 | compatible = "renesas,can-r8a7744", |
| 1121 | "renesas,rcar-gen2-can"; | 1121 | "renesas,rcar-gen2-can"; |
| @@ -1589,33 +1589,6 @@ | |||
| 1589 | resets = <&cpg 408>; | 1589 | resets = <&cpg 408>; |
| 1590 | }; | 1590 | }; |
| 1591 | 1591 | ||
| 1592 | vsp@fe928000 { | ||
| 1593 | compatible = "renesas,vsp1"; | ||
| 1594 | reg = <0 0xfe928000 0 0x8000>; | ||
| 1595 | interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1596 | clocks = <&cpg CPG_MOD 131>; | ||
| 1597 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1598 | resets = <&cpg 131>; | ||
| 1599 | }; | ||
| 1600 | |||
| 1601 | vsp@fe930000 { | ||
| 1602 | compatible = "renesas,vsp1"; | ||
| 1603 | reg = <0 0xfe930000 0 0x8000>; | ||
| 1604 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1605 | clocks = <&cpg CPG_MOD 128>; | ||
| 1606 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1607 | resets = <&cpg 128>; | ||
| 1608 | }; | ||
| 1609 | |||
| 1610 | vsp@fe938000 { | ||
| 1611 | compatible = "renesas,vsp1"; | ||
| 1612 | reg = <0 0xfe938000 0 0x8000>; | ||
| 1613 | interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1614 | clocks = <&cpg CPG_MOD 127>; | ||
| 1615 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1616 | resets = <&cpg 127>; | ||
| 1617 | }; | ||
| 1618 | |||
| 1619 | pciec: pcie@fe000000 { | 1592 | pciec: pcie@fe000000 { |
| 1620 | compatible = "renesas,pcie-r8a7744", | 1593 | compatible = "renesas,pcie-r8a7744", |
| 1621 | "renesas,pcie-rcar-gen2"; | 1594 | "renesas,pcie-rcar-gen2"; |
| @@ -1644,9 +1617,42 @@ | |||
| 1644 | status = "disabled"; | 1617 | status = "disabled"; |
| 1645 | }; | 1618 | }; |
| 1646 | 1619 | ||
| 1620 | vsp@fe928000 { | ||
| 1621 | compatible = "renesas,vsp1"; | ||
| 1622 | reg = <0 0xfe928000 0 0x8000>; | ||
| 1623 | interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1624 | clocks = <&cpg CPG_MOD 131>; | ||
| 1625 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1626 | resets = <&cpg 131>; | ||
| 1627 | }; | ||
| 1628 | |||
| 1629 | vsp@fe930000 { | ||
| 1630 | compatible = "renesas,vsp1"; | ||
| 1631 | reg = <0 0xfe930000 0 0x8000>; | ||
| 1632 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1633 | clocks = <&cpg CPG_MOD 128>; | ||
| 1634 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1635 | resets = <&cpg 128>; | ||
| 1636 | }; | ||
| 1637 | |||
| 1638 | vsp@fe938000 { | ||
| 1639 | compatible = "renesas,vsp1"; | ||
| 1640 | reg = <0 0xfe938000 0 0x8000>; | ||
| 1641 | interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1642 | clocks = <&cpg CPG_MOD 127>; | ||
| 1643 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1644 | resets = <&cpg 127>; | ||
| 1645 | }; | ||
| 1646 | |||
| 1647 | du: display@feb00000 { | 1647 | du: display@feb00000 { |
| 1648 | reg = <0 0xfeb00000 0 0x40000>, | 1648 | compatible = "renesas,du-r8a7744"; |
| 1649 | <0 0xfeb90000 0 0x1c>; | 1649 | reg = <0 0xfeb00000 0 0x40000>; |
| 1650 | interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, | ||
| 1651 | <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1652 | clocks = <&cpg CPG_MOD 724>, | ||
| 1653 | <&cpg CPG_MOD 723>; | ||
| 1654 | clock-names = "du.0", "du.1"; | ||
| 1655 | status = "disabled"; | ||
| 1650 | 1656 | ||
| 1651 | ports { | 1657 | ports { |
| 1652 | #address-cells = <1>; | 1658 | #address-cells = <1>; |
| @@ -1660,10 +1666,36 @@ | |||
| 1660 | port@1 { | 1666 | port@1 { |
| 1661 | reg = <1>; | 1667 | reg = <1>; |
| 1662 | du_out_lvds0: endpoint { | 1668 | du_out_lvds0: endpoint { |
| 1669 | remote-endpoint = <&lvds0_in>; | ||
| 1670 | }; | ||
| 1671 | }; | ||
| 1672 | }; | ||
| 1673 | }; | ||
| 1674 | |||
| 1675 | lvds0: lvds@feb90000 { | ||
| 1676 | compatible = "renesas,r8a7744-lvds"; | ||
| 1677 | reg = <0 0xfeb90000 0 0x1c>; | ||
| 1678 | clocks = <&cpg CPG_MOD 726>; | ||
| 1679 | power-domains = <&sysc R8A7744_PD_ALWAYS_ON>; | ||
| 1680 | resets = <&cpg 726>; | ||
| 1681 | status = "disabled"; | ||
| 1682 | |||
| 1683 | ports { | ||
| 1684 | #address-cells = <1>; | ||
| 1685 | #size-cells = <0>; | ||
| 1686 | |||
| 1687 | port@0 { | ||
| 1688 | reg = <0>; | ||
| 1689 | lvds0_in: endpoint { | ||
| 1690 | remote-endpoint = <&du_out_lvds0>; | ||
| 1691 | }; | ||
| 1692 | }; | ||
| 1693 | port@1 { | ||
| 1694 | reg = <1>; | ||
| 1695 | lvds0_out: endpoint { | ||
| 1663 | }; | 1696 | }; |
| 1664 | }; | 1697 | }; |
| 1665 | }; | 1698 | }; |
| 1666 | /* placeholder */ | ||
| 1667 | }; | 1699 | }; |
| 1668 | 1700 | ||
| 1669 | prr: chipid@ff000044 { | 1701 | prr: chipid@ff000044 { |
diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts index 40b7f98d6013..77d18242ef59 100644 --- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts +++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts | |||
| @@ -84,12 +84,30 @@ | |||
| 84 | clock-frequency = <20000000>; | 84 | clock-frequency = <20000000>; |
| 85 | }; | 85 | }; |
| 86 | 86 | ||
| 87 | &i2c3 { | ||
| 88 | pinctrl-0 = <&i2c3_pins>; | ||
| 89 | pinctrl-names = "default"; | ||
| 90 | |||
| 91 | status = "okay"; | ||
| 92 | clock-frequency = <400000>; | ||
| 93 | |||
| 94 | rtc@51 { | ||
| 95 | compatible = "nxp,pcf85263"; | ||
| 96 | reg = <0x51>; | ||
| 97 | }; | ||
| 98 | }; | ||
| 99 | |||
| 87 | &pfc { | 100 | &pfc { |
| 88 | avb_pins: avb { | 101 | avb_pins: avb { |
| 89 | groups = "avb_mdio", "avb_gmii_tx_rx"; | 102 | groups = "avb_mdio", "avb_gmii_tx_rx"; |
| 90 | function = "avb"; | 103 | function = "avb"; |
| 91 | }; | 104 | }; |
| 92 | 105 | ||
| 106 | i2c3_pins: i2c3 { | ||
| 107 | groups = "i2c3_c"; | ||
| 108 | function = "i2c3"; | ||
| 109 | }; | ||
| 110 | |||
| 93 | mmc_pins_uhs: mmc_uhs { | 111 | mmc_pins_uhs: mmc_uhs { |
| 94 | groups = "mmc_data8", "mmc_ctrl"; | 112 | groups = "mmc_data8", "mmc_ctrl"; |
| 95 | function = "mmc"; | 113 | function = "mmc"; |
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi index 05db0ccad7a6..10d996d2941f 100644 --- a/arch/arm/boot/dts/r8a7778.dtsi +++ b/arch/arm/boot/dts/r8a7778.dtsi | |||
| @@ -367,6 +367,30 @@ | |||
| 367 | status = "disabled"; | 367 | status = "disabled"; |
| 368 | }; | 368 | }; |
| 369 | 369 | ||
| 370 | hscif0: serial@ffe48000 { | ||
| 371 | compatible = "renesas,hscif-r8a7778", | ||
| 372 | "renesas,rcar-gen1-hscif", "renesas,hscif"; | ||
| 373 | reg = <0xffe48000 96>; | ||
| 374 | interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | ||
| 375 | clocks = <&mstp0_clks R8A7778_CLK_HSCIF0>, | ||
| 376 | <&cpg_clocks R8A7778_CLK_S>, <&scif_clk>; | ||
| 377 | clock-names = "fck", "brg_int", "scif_clk"; | ||
| 378 | power-domains = <&cpg_clocks>; | ||
| 379 | status = "disabled"; | ||
| 380 | }; | ||
| 381 | |||
| 382 | hscif1: serial@ffe49000 { | ||
| 383 | compatible = "renesas,hscif-r8a7778", | ||
| 384 | "renesas,rcar-gen1-hscif", "renesas,hscif"; | ||
| 385 | reg = <0xffe49000 96>; | ||
| 386 | interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; | ||
| 387 | clocks = <&mstp0_clks R8A7778_CLK_HSCIF1>, | ||
| 388 | <&cpg_clocks R8A7778_CLK_S>, <&scif_clk>; | ||
| 389 | clock-names = "fck", "brg_int", "scif_clk"; | ||
| 390 | power-domains = <&cpg_clocks>; | ||
| 391 | status = "disabled"; | ||
| 392 | }; | ||
| 393 | |||
| 370 | mmcif: mmc@ffe4e000 { | 394 | mmcif: mmc@ffe4e000 { |
| 371 | compatible = "renesas,mmcif-r8a7778", "renesas,sh-mmcif"; | 395 | compatible = "renesas,mmcif-r8a7778", "renesas,sh-mmcif"; |
| 372 | reg = <0xffe4e000 0x100>; | 396 | reg = <0xffe4e000 0x100>; |
| @@ -535,6 +559,8 @@ | |||
| 535 | <&cpg_clocks R8A7778_CLK_P>, | 559 | <&cpg_clocks R8A7778_CLK_P>, |
| 536 | <&cpg_clocks R8A7778_CLK_P>, | 560 | <&cpg_clocks R8A7778_CLK_P>, |
| 537 | <&cpg_clocks R8A7778_CLK_P>, | 561 | <&cpg_clocks R8A7778_CLK_P>, |
| 562 | <&cpg_clocks R8A7778_CLK_S>, | ||
| 563 | <&cpg_clocks R8A7778_CLK_S>, | ||
| 538 | <&cpg_clocks R8A7778_CLK_P>, | 564 | <&cpg_clocks R8A7778_CLK_P>, |
| 539 | <&cpg_clocks R8A7778_CLK_P>, | 565 | <&cpg_clocks R8A7778_CLK_P>, |
| 540 | <&cpg_clocks R8A7778_CLK_P>, | 566 | <&cpg_clocks R8A7778_CLK_P>, |
| @@ -551,6 +577,7 @@ | |||
| 551 | R8A7778_CLK_SCIF0 R8A7778_CLK_SCIF1 | 577 | R8A7778_CLK_SCIF0 R8A7778_CLK_SCIF1 |
| 552 | R8A7778_CLK_SCIF2 R8A7778_CLK_SCIF3 | 578 | R8A7778_CLK_SCIF2 R8A7778_CLK_SCIF3 |
| 553 | R8A7778_CLK_SCIF4 R8A7778_CLK_SCIF5 | 579 | R8A7778_CLK_SCIF4 R8A7778_CLK_SCIF5 |
| 580 | R8A7778_CLK_HSCIF0 R8A7778_CLK_HSCIF1 | ||
| 554 | R8A7778_CLK_TMU0 R8A7778_CLK_TMU1 | 581 | R8A7778_CLK_TMU0 R8A7778_CLK_TMU1 |
| 555 | R8A7778_CLK_TMU2 R8A7778_CLK_SSI0 | 582 | R8A7778_CLK_TMU2 R8A7778_CLK_SSI0 |
| 556 | R8A7778_CLK_SSI1 R8A7778_CLK_SSI2 | 583 | R8A7778_CLK_SSI1 R8A7778_CLK_SSI2 |
| @@ -560,6 +587,7 @@ | |||
| 560 | clock-output-names = | 587 | clock-output-names = |
| 561 | "i2c0", "i2c1", "i2c2", "i2c3", "scif0", | 588 | "i2c0", "i2c1", "i2c2", "i2c3", "scif0", |
| 562 | "scif1", "scif2", "scif3", "scif4", "scif5", | 589 | "scif1", "scif2", "scif3", "scif4", "scif5", |
| 590 | "hscif0", "hscif1", | ||
| 563 | "tmu0", "tmu1", "tmu2", "ssi0", "ssi1", | 591 | "tmu0", "tmu1", "tmu2", "ssi0", "ssi1", |
| 564 | "ssi2", "ssi3", "sru", "hspi"; | 592 | "ssi2", "ssi3", "sru", "hspi"; |
| 565 | }; | 593 | }; |
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi index 3bc133d9489c..3ff259207527 100644 --- a/arch/arm/boot/dts/r8a7779.dtsi +++ b/arch/arm/boot/dts/r8a7779.dtsi | |||
| @@ -287,6 +287,32 @@ | |||
| 287 | status = "disabled"; | 287 | status = "disabled"; |
| 288 | }; | 288 | }; |
| 289 | 289 | ||
| 290 | hscif0: serial@ffe48000 { | ||
| 291 | compatible = "renesas,hscif-r8a7779", | ||
| 292 | "renesas,rcar-gen1-hscif", "renesas,hscif"; | ||
| 293 | reg = <0xffe48000 96>; | ||
| 294 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; | ||
| 295 | clocks = <&mstp0_clks R8A7779_CLK_HSCIF0>, | ||
| 296 | <&cpg_clocks R8A7779_CLK_S>, | ||
| 297 | <&scif_clk>; | ||
| 298 | clock-names = "fck", "brg_int", "scif_clk"; | ||
| 299 | power-domains = <&cpg_clocks>; | ||
| 300 | status = "disabled"; | ||
| 301 | }; | ||
| 302 | |||
| 303 | hscif1: serial@ffe49000 { | ||
| 304 | compatible = "renesas,hscif-r8a7779", | ||
| 305 | "renesas,rcar-gen1-hscif", "renesas,hscif"; | ||
| 306 | reg = <0xffe49000 96>; | ||
| 307 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
| 308 | clocks = <&mstp0_clks R8A7779_CLK_HSCIF1>, | ||
| 309 | <&cpg_clocks R8A7779_CLK_S>, | ||
| 310 | <&scif_clk>; | ||
| 311 | clock-names = "fck", "brg_int", "scif_clk"; | ||
| 312 | power-domains = <&cpg_clocks>; | ||
| 313 | status = "disabled"; | ||
| 314 | }; | ||
| 315 | |||
| 290 | pfc: pin-controller@fffc0000 { | 316 | pfc: pin-controller@fffc0000 { |
| 291 | compatible = "renesas,pfc-r8a7779"; | 317 | compatible = "renesas,pfc-r8a7779"; |
| 292 | reg = <0xfffc0000 0x23c>; | 318 | reg = <0xfffc0000 0x23c>; |
diff --git a/arch/arm/boot/dts/r8a7790-stout.dts b/arch/arm/boot/dts/r8a7790-stout.dts index 629da4cee1b9..7a7d3b84d1a6 100644 --- a/arch/arm/boot/dts/r8a7790-stout.dts +++ b/arch/arm/boot/dts/r8a7790-stout.dts | |||
| @@ -94,9 +94,8 @@ | |||
| 94 | status = "okay"; | 94 | status = "okay"; |
| 95 | 95 | ||
| 96 | clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>, | 96 | clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 722>, |
| 97 | <&cpg CPG_MOD 726>, <&cpg CPG_MOD 725>, | ||
| 98 | <&osc1_clk>; | 97 | <&osc1_clk>; |
| 99 | clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1", "dclkin.0"; | 98 | clock-names = "du.0", "du.1", "du.2", "dclkin.0"; |
| 100 | 99 | ||
| 101 | ports { | 100 | ports { |
| 102 | port@0 { | 101 | port@0 { |
| @@ -104,11 +103,21 @@ | |||
| 104 | remote-endpoint = <&adv7511_in>; | 103 | remote-endpoint = <&adv7511_in>; |
| 105 | }; | 104 | }; |
| 106 | }; | 105 | }; |
| 106 | }; | ||
| 107 | }; | ||
| 108 | |||
| 109 | &lvds0 { | ||
| 110 | ports { | ||
| 107 | port@1 { | 111 | port@1 { |
| 108 | lvds_connector0: endpoint { | 112 | lvds_connector0: endpoint { |
| 109 | }; | 113 | }; |
| 110 | }; | 114 | }; |
| 111 | port@2 { | 115 | }; |
| 116 | }; | ||
| 117 | |||
| 118 | &lvds1 { | ||
| 119 | ports { | ||
| 120 | port@1 { | ||
| 112 | lvds_connector1: endpoint { | 121 | lvds_connector1: endpoint { |
| 113 | }; | 122 | }; |
| 114 | }; | 123 | }; |
diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts index 0fd19f9723df..0173eb11ec28 100644 --- a/arch/arm/boot/dts/rk3036-kylin.dts +++ b/arch/arm/boot/dts/rk3036-kylin.dts | |||
| @@ -310,7 +310,6 @@ | |||
| 310 | }; | 310 | }; |
| 311 | 311 | ||
| 312 | &i2s { | 312 | &i2s { |
| 313 | #sound-dai-cells = <0>; | ||
| 314 | status = "okay"; | 313 | status = "okay"; |
| 315 | }; | 314 | }; |
| 316 | 315 | ||
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi index d560fc4051c5..59c90863b0e7 100644 --- a/arch/arm/boot/dts/rk3036.dtsi +++ b/arch/arm/boot/dts/rk3036.dtsi | |||
| @@ -289,6 +289,7 @@ | |||
| 289 | dma-names = "tx", "rx"; | 289 | dma-names = "tx", "rx"; |
| 290 | pinctrl-names = "default"; | 290 | pinctrl-names = "default"; |
| 291 | pinctrl-0 = <&i2s_bus>; | 291 | pinctrl-0 = <&i2s_bus>; |
| 292 | #sound-dai-cells = <0>; | ||
| 292 | status = "disabled"; | 293 | status = "disabled"; |
| 293 | }; | 294 | }; |
| 294 | 295 | ||
diff --git a/arch/arm/boot/dts/rk3066a-bqcurie2.dts b/arch/arm/boot/dts/rk3066a-bqcurie2.dts index 1c925f20dba0..0a56a2f1bc4d 100644 --- a/arch/arm/boot/dts/rk3066a-bqcurie2.dts +++ b/arch/arm/boot/dts/rk3066a-bqcurie2.dts | |||
| @@ -171,7 +171,6 @@ | |||
| 171 | pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>; | 171 | pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>; |
| 172 | 172 | ||
| 173 | bus-width = <4>; | 173 | bus-width = <4>; |
| 174 | disable-wp; | ||
| 175 | }; | 174 | }; |
| 176 | 175 | ||
| 177 | &pwm3 { | 176 | &pwm3 { |
diff --git a/arch/arm/boot/dts/rk3066a-mk808.dts b/arch/arm/boot/dts/rk3066a-mk808.dts index b6a8a82d219e..9d2216d71f70 100644 --- a/arch/arm/boot/dts/rk3066a-mk808.dts +++ b/arch/arm/boot/dts/rk3066a-mk808.dts | |||
| @@ -101,7 +101,6 @@ | |||
| 101 | 101 | ||
| 102 | &mmc1 { | 102 | &mmc1 { |
| 103 | bus-width = <4>; | 103 | bus-width = <4>; |
| 104 | disable-wp; | ||
| 105 | non-removable; | 104 | non-removable; |
| 106 | pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>; | 105 | pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>; |
| 107 | pinctrl-names = "default"; | 106 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts b/arch/arm/boot/dts/rk3066a-rayeager.dts index cd126b927ba8..949fa800582d 100644 --- a/arch/arm/boot/dts/rk3066a-rayeager.dts +++ b/arch/arm/boot/dts/rk3066a-rayeager.dts | |||
| @@ -147,7 +147,6 @@ | |||
| 147 | &emmc { | 147 | &emmc { |
| 148 | bus-width = <8>; | 148 | bus-width = <8>; |
| 149 | cap-mmc-highspeed; | 149 | cap-mmc-highspeed; |
| 150 | disable-wp; | ||
| 151 | non-removable; | 150 | non-removable; |
| 152 | pinctrl-names = "default"; | 151 | pinctrl-names = "default"; |
| 153 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; | 152 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; |
| @@ -309,7 +308,6 @@ | |||
| 309 | 308 | ||
| 310 | &mmc1 { | 309 | &mmc1 { |
| 311 | bus-width = <4>; | 310 | bus-width = <4>; |
| 312 | disable-wp; | ||
| 313 | non-removable; | 311 | non-removable; |
| 314 | pinctrl-names = "default"; | 312 | pinctrl-names = "default"; |
| 315 | pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>; | 313 | pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>; |
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi index 30dc8af0bdcb..653127a377fa 100644 --- a/arch/arm/boot/dts/rk3066a.dtsi +++ b/arch/arm/boot/dts/rk3066a.dtsi | |||
| @@ -44,6 +44,11 @@ | |||
| 44 | }; | 44 | }; |
| 45 | }; | 45 | }; |
| 46 | 46 | ||
| 47 | display-subsystem { | ||
| 48 | compatible = "rockchip,display-subsystem"; | ||
| 49 | ports = <&vop0_out>, <&vop1_out>; | ||
| 50 | }; | ||
| 51 | |||
| 47 | sram: sram@10080000 { | 52 | sram: sram@10080000 { |
| 48 | compatible = "mmio-sram"; | 53 | compatible = "mmio-sram"; |
| 49 | reg = <0x10080000 0x10000>; | 54 | reg = <0x10080000 0x10000>; |
| @@ -57,6 +62,48 @@ | |||
| 57 | }; | 62 | }; |
| 58 | }; | 63 | }; |
| 59 | 64 | ||
| 65 | vop0: vop@1010c000 { | ||
| 66 | compatible = "rockchip,rk3066-vop"; | ||
| 67 | reg = <0x1010c000 0x19c>; | ||
| 68 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
| 69 | clocks = <&cru ACLK_LCDC0>, | ||
| 70 | <&cru DCLK_LCDC0>, | ||
| 71 | <&cru HCLK_LCDC0>; | ||
| 72 | clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; | ||
| 73 | power-domains = <&power RK3066_PD_VIO>; | ||
| 74 | resets = <&cru SRST_LCDC0_AXI>, | ||
| 75 | <&cru SRST_LCDC0_AHB>, | ||
| 76 | <&cru SRST_LCDC0_DCLK>; | ||
| 77 | reset-names = "axi", "ahb", "dclk"; | ||
| 78 | status = "disabled"; | ||
| 79 | |||
| 80 | vop0_out: port { | ||
| 81 | #address-cells = <1>; | ||
| 82 | #size-cells = <0>; | ||
| 83 | }; | ||
| 84 | }; | ||
| 85 | |||
| 86 | vop1: vop@1010e000 { | ||
| 87 | compatible = "rockchip,rk3066-vop"; | ||
| 88 | reg = <0x1010e000 0x19c>; | ||
| 89 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
| 90 | clocks = <&cru ACLK_LCDC1>, | ||
| 91 | <&cru DCLK_LCDC1>, | ||
| 92 | <&cru HCLK_LCDC1>; | ||
| 93 | clock-names = "aclk_vop", "dclk_vop", "hclk_vop"; | ||
| 94 | power-domains = <&power RK3066_PD_VIO>; | ||
| 95 | resets = <&cru SRST_LCDC1_AXI>, | ||
| 96 | <&cru SRST_LCDC1_AHB>, | ||
| 97 | <&cru SRST_LCDC1_DCLK>; | ||
| 98 | reset-names = "axi", "ahb", "dclk"; | ||
| 99 | status = "disabled"; | ||
| 100 | |||
| 101 | vop1_out: port { | ||
| 102 | #address-cells = <1>; | ||
| 103 | #size-cells = <0>; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | |||
| 60 | i2s0: i2s@10118000 { | 107 | i2s0: i2s@10118000 { |
| 61 | compatible = "rockchip,rk3066-i2s"; | 108 | compatible = "rockchip,rk3066-i2s"; |
| 62 | reg = <0x10118000 0x2000>; | 109 | reg = <0x10118000 0x2000>; |
| @@ -669,6 +716,7 @@ | |||
| 669 | <&cru SCLK_CIF0>, | 716 | <&cru SCLK_CIF0>, |
| 670 | <&cru ACLK_CIF0>, | 717 | <&cru ACLK_CIF0>, |
| 671 | <&cru HCLK_CIF0>, | 718 | <&cru HCLK_CIF0>, |
| 719 | <&cru HCLK_HDMI>, | ||
| 672 | <&cru ACLK_IPP>, | 720 | <&cru ACLK_IPP>, |
| 673 | <&cru HCLK_IPP>, | 721 | <&cru HCLK_IPP>, |
| 674 | <&cru ACLK_RGA>, | 722 | <&cru ACLK_RGA>, |
diff --git a/arch/arm/boot/dts/rk3188-bqedison2qc.dts b/arch/arm/boot/dts/rk3188-bqedison2qc.dts index a7477a09fbe8..c8b62bbd6a4a 100644 --- a/arch/arm/boot/dts/rk3188-bqedison2qc.dts +++ b/arch/arm/boot/dts/rk3188-bqedison2qc.dts | |||
| @@ -227,7 +227,6 @@ | |||
| 227 | &emmc { | 227 | &emmc { |
| 228 | bus-width = <8>; | 228 | bus-width = <8>; |
| 229 | cap-mmc-highspeed; | 229 | cap-mmc-highspeed; |
| 230 | disable-wp; | ||
| 231 | non-removable; | 230 | non-removable; |
| 232 | pinctrl-names = "default"; | 231 | pinctrl-names = "default"; |
| 233 | pinctrl-0 = <&emmc_clk &emmc_cmd>; | 232 | pinctrl-0 = <&emmc_clk &emmc_cmd>; |
| @@ -408,6 +407,21 @@ | |||
| 408 | &i2c2 { | 407 | &i2c2 { |
| 409 | clock-frequency = <400000>; | 408 | clock-frequency = <400000>; |
| 410 | status = "okay"; | 409 | status = "okay"; |
| 410 | |||
| 411 | ft5606: touchscreen@3e { | ||
| 412 | compatible = "edt,edt-ft5506"; | ||
| 413 | reg = <0x3e>; | ||
| 414 | interrupt-parent = <&gpio1>; | ||
| 415 | interrupts = <RK_PB7 IRQ_TYPE_EDGE_FALLING>; | ||
| 416 | pinctrl-names = "default"; | ||
| 417 | pinctrl-0 = <&tp_int &tp_rst>; | ||
| 418 | reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>; | ||
| 419 | touchscreen-inverted-y; | ||
| 420 | /* hw ts resolution does not match display */ | ||
| 421 | touchscreen-size-y = <1024>; | ||
| 422 | touchscreen-size-x = <768>; | ||
| 423 | touchscreen-swapped-x-y; | ||
| 424 | }; | ||
| 411 | }; | 425 | }; |
| 412 | 426 | ||
| 413 | &i2c3 { | 427 | &i2c3 { |
| @@ -446,7 +460,6 @@ | |||
| 446 | &mmc1 { | 460 | &mmc1 { |
| 447 | bus-width = <4>; | 461 | bus-width = <4>; |
| 448 | cap-sd-highspeed; | 462 | cap-sd-highspeed; |
| 449 | cap-mmc-highspeed; | ||
| 450 | keep-power-in-suspend; | 463 | keep-power-in-suspend; |
| 451 | mmc-pwrseq = <&sdio_pwrseq>; | 464 | mmc-pwrseq = <&sdio_pwrseq>; |
| 452 | non-removable; | 465 | non-removable; |
| @@ -526,7 +539,7 @@ | |||
| 526 | }; | 539 | }; |
| 527 | 540 | ||
| 528 | cif1_pdn: cif1-pdn { | 541 | cif1_pdn: cif1-pdn { |
| 529 | rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; | 542 | rockchip,pins = <3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; |
| 530 | }; | 543 | }; |
| 531 | 544 | ||
| 532 | cif_avdd_en: cif-avdd-en { | 545 | cif_avdd_en: cif-avdd-en { |
diff --git a/arch/arm/boot/dts/rk3188-px3-evb.dts b/arch/arm/boot/dts/rk3188-px3-evb.dts index 9ae65c767c90..c0eaa9c5490b 100644 --- a/arch/arm/boot/dts/rk3188-px3-evb.dts +++ b/arch/arm/boot/dts/rk3188-px3-evb.dts | |||
| @@ -62,7 +62,6 @@ | |||
| 62 | &emmc { | 62 | &emmc { |
| 63 | bus-width = <8>; | 63 | bus-width = <8>; |
| 64 | cap-mmc-highspeed; | 64 | cap-mmc-highspeed; |
| 65 | disable-wp; | ||
| 66 | non-removable; | 65 | non-removable; |
| 67 | pinctrl-names = "default"; | 66 | pinctrl-names = "default"; |
| 68 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; | 67 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>; |
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi index 4acb501dd3f8..3ed49898f4b2 100644 --- a/arch/arm/boot/dts/rk3188.dtsi +++ b/arch/arm/boot/dts/rk3188.dtsi | |||
| @@ -719,7 +719,6 @@ | |||
| 719 | pm_qos = <&qos_lcdc0>, | 719 | pm_qos = <&qos_lcdc0>, |
| 720 | <&qos_lcdc1>, | 720 | <&qos_lcdc1>, |
| 721 | <&qos_cif0>, | 721 | <&qos_cif0>, |
| 722 | <&qos_cif1>, | ||
| 723 | <&qos_ipp>, | 722 | <&qos_ipp>, |
| 724 | <&qos_rga>; | 723 | <&qos_rga>; |
| 725 | }; | 724 | }; |
diff --git a/arch/arm/boot/dts/rk3229-evb.dts b/arch/arm/boot/dts/rk3229-evb.dts index 4df7accc3ad7..350497a3ca86 100644 --- a/arch/arm/boot/dts/rk3229-evb.dts +++ b/arch/arm/boot/dts/rk3229-evb.dts | |||
| @@ -137,7 +137,6 @@ | |||
| 137 | 137 | ||
| 138 | &emmc { | 138 | &emmc { |
| 139 | cap-mmc-highspeed; | 139 | cap-mmc-highspeed; |
| 140 | disable-wp; | ||
| 141 | non-removable; | 140 | non-removable; |
| 142 | status = "okay"; | 141 | status = "okay"; |
| 143 | }; | 142 | }; |
diff --git a/arch/arm/boot/dts/rk3288-fennec.dts b/arch/arm/boot/dts/rk3288-fennec.dts index b1b56dfdfdba..29af26e6d442 100644 --- a/arch/arm/boot/dts/rk3288-fennec.dts +++ b/arch/arm/boot/dts/rk3288-fennec.dts | |||
| @@ -37,7 +37,6 @@ | |||
| 37 | &emmc { | 37 | &emmc { |
| 38 | bus-width = <8>; | 38 | bus-width = <8>; |
| 39 | cap-mmc-highspeed; | 39 | cap-mmc-highspeed; |
| 40 | disable-wp; | ||
| 41 | non-removable; | 40 | non-removable; |
| 42 | pinctrl-names = "default"; | 41 | pinctrl-names = "default"; |
| 43 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; | 42 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; |
diff --git a/arch/arm/boot/dts/rk3288-firefly-reload.dts b/arch/arm/boot/dts/rk3288-firefly-reload.dts index 58ea8bed040a..3a646c5f4fcf 100644 --- a/arch/arm/boot/dts/rk3288-firefly-reload.dts +++ b/arch/arm/boot/dts/rk3288-firefly-reload.dts | |||
| @@ -254,7 +254,6 @@ | |||
| 254 | bus-width = <4>; | 254 | bus-width = <4>; |
| 255 | cap-sd-highspeed; | 255 | cap-sd-highspeed; |
| 256 | cap-sdio-irq; | 256 | cap-sdio-irq; |
| 257 | disable-wp; | ||
| 258 | mmc-pwrseq = <&sdio_pwrseq>; | 257 | mmc-pwrseq = <&sdio_pwrseq>; |
| 259 | non-removable; | 258 | non-removable; |
| 260 | pinctrl-names = "default"; | 259 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts index 504ab1177aa7..fb7365b604bb 100644 --- a/arch/arm/boot/dts/rk3288-miqi.dts +++ b/arch/arm/boot/dts/rk3288-miqi.dts | |||
| @@ -87,7 +87,6 @@ | |||
| 87 | &emmc { | 87 | &emmc { |
| 88 | bus-width = <8>; | 88 | bus-width = <8>; |
| 89 | cap-mmc-highspeed; | 89 | cap-mmc-highspeed; |
| 90 | disable-wp; | ||
| 91 | non-removable; | 90 | non-removable; |
| 92 | pinctrl-names = "default"; | 91 | pinctrl-names = "default"; |
| 93 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>; | 92 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>; |
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts index 596435e03132..6a51940398b5 100644 --- a/arch/arm/boot/dts/rk3288-popmetal.dts +++ b/arch/arm/boot/dts/rk3288-popmetal.dts | |||
| @@ -109,7 +109,6 @@ | |||
| 109 | &emmc { | 109 | &emmc { |
| 110 | bus-width = <8>; | 110 | bus-width = <8>; |
| 111 | cap-mmc-highspeed; | 111 | cap-mmc-highspeed; |
| 112 | disable-wp; | ||
| 113 | mmc-ddr-1_8v; | 112 | mmc-ddr-1_8v; |
| 114 | mmc-hs200-1_8v; | 113 | mmc-hs200-1_8v; |
| 115 | non-removable; | 114 | non-removable; |
diff --git a/arch/arm/boot/dts/rk3288-rock2-square.dts b/arch/arm/boot/dts/rk3288-rock2-square.dts index 6a30cadad88a..5b7e1c9e92e1 100644 --- a/arch/arm/boot/dts/rk3288-rock2-square.dts +++ b/arch/arm/boot/dts/rk3288-rock2-square.dts | |||
| @@ -133,7 +133,6 @@ | |||
| 133 | bus-width = <4>; | 133 | bus-width = <4>; |
| 134 | cap-sd-highspeed; | 134 | cap-sd-highspeed; |
| 135 | cap-sdio-irq; | 135 | cap-sdio-irq; |
| 136 | disable-wp; | ||
| 137 | mmc-pwrseq = <&sdio_pwrseq>; | 136 | mmc-pwrseq = <&sdio_pwrseq>; |
| 138 | non-removable; | 137 | non-removable; |
| 139 | pinctrl-names = "default"; | 138 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/rk3288-tinker-s.dts b/arch/arm/boot/dts/rk3288-tinker-s.dts index 37093922b482..d97da89bcd51 100644 --- a/arch/arm/boot/dts/rk3288-tinker-s.dts +++ b/arch/arm/boot/dts/rk3288-tinker-s.dts | |||
| @@ -15,7 +15,6 @@ | |||
| 15 | &emmc { | 15 | &emmc { |
| 16 | bus-width = <8>; | 16 | bus-width = <8>; |
| 17 | cap-mmc-highspeed; | 17 | cap-mmc-highspeed; |
| 18 | disable-wp; | ||
| 19 | non-removable; | 18 | non-removable; |
| 20 | pinctrl-names = "default"; | 19 | pinctrl-names = "default"; |
| 21 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; | 20 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; |
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi index d8bf939a3aff..0bc2409f6903 100644 --- a/arch/arm/boot/dts/rk3288-veyron.dtsi +++ b/arch/arm/boot/dts/rk3288-veyron.dtsi | |||
| @@ -10,6 +10,10 @@ | |||
| 10 | #include "rk3288.dtsi" | 10 | #include "rk3288.dtsi" |
| 11 | 11 | ||
| 12 | / { | 12 | / { |
| 13 | chosen { | ||
| 14 | stdout-path = "serial2:115200n8"; | ||
| 15 | }; | ||
| 16 | |||
| 13 | /* | 17 | /* |
| 14 | * The default coreboot on veyron devices ignores memory@0 nodes | 18 | * The default coreboot on veyron devices ignores memory@0 nodes |
| 15 | * and would instead create another memory node. | 19 | * and would instead create another memory node. |
diff --git a/arch/arm/boot/dts/rk3288-vyasa.dts b/arch/arm/boot/dts/rk3288-vyasa.dts index 4856a9fc0aea..40b232eb5011 100644 --- a/arch/arm/boot/dts/rk3288-vyasa.dts +++ b/arch/arm/boot/dts/rk3288-vyasa.dts | |||
| @@ -121,7 +121,6 @@ | |||
| 121 | &emmc { | 121 | &emmc { |
| 122 | bus-width = <8>; | 122 | bus-width = <8>; |
| 123 | cap-mmc-highspeed; | 123 | cap-mmc-highspeed; |
| 124 | disable-wp; | ||
| 125 | non-removable; | 124 | non-removable; |
| 126 | pinctrl-names = "default"; | 125 | pinctrl-names = "default"; |
| 127 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; | 126 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>; |
diff --git a/arch/arm/boot/dts/rv1108-elgin-r1.dts b/arch/arm/boot/dts/rv1108-elgin-r1.dts new file mode 100644 index 000000000000..1c4507b66fdd --- /dev/null +++ b/arch/arm/boot/dts/rv1108-elgin-r1.dts | |||
| @@ -0,0 +1,208 @@ | |||
| 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | ||
| 2 | |||
| 3 | /* | ||
| 4 | * Copyright (C) 2018 O.S. Systems Software LTDA. | ||
| 5 | */ | ||
| 6 | |||
| 7 | /dts-v1/; | ||
| 8 | |||
| 9 | #include "rv1108.dtsi" | ||
| 10 | |||
| 11 | / { | ||
| 12 | model = "Elgin RV1108 R1 board"; | ||
| 13 | compatible = "elgin,rv1108-r1", "rockchip,rv1108"; | ||
| 14 | |||
| 15 | memory@60000000 { | ||
| 16 | device_type = "memory"; | ||
| 17 | reg = <0x60000000 0x08000000>; | ||
| 18 | }; | ||
| 19 | |||
| 20 | chosen { | ||
| 21 | stdout-path = "serial2:1500000n8"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | vcc_sys: vsys-regulator { | ||
| 25 | compatible = "regulator-fixed"; | ||
| 26 | regulator-name = "vsys"; | ||
| 27 | regulator-min-microvolt = <5000000>; | ||
| 28 | regulator-max-microvolt = <5000000>; | ||
| 29 | regulator-boot-on; | ||
| 30 | }; | ||
| 31 | }; | ||
| 32 | |||
| 33 | &cpu0 { | ||
| 34 | cpu-supply = <&vdd_core>; | ||
| 35 | }; | ||
| 36 | |||
| 37 | &emmc { | ||
| 38 | bus-width = <8>; | ||
| 39 | cap-mmc-highspeed; | ||
| 40 | disable-wp; | ||
| 41 | no-sd; | ||
| 42 | no-sdio; | ||
| 43 | non-removable; | ||
| 44 | mmc-ddr-1_8v; | ||
| 45 | mmc-hs200-1_8v; | ||
| 46 | pinctrl-names = "default"; | ||
| 47 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; | ||
| 48 | status = "okay"; | ||
| 49 | }; | ||
| 50 | |||
| 51 | &gmac { | ||
| 52 | clock_in_out = "output"; | ||
| 53 | pinctrl-names = "default"; | ||
| 54 | pinctrl-0 = <&rmii_pins>; | ||
| 55 | snps,reset-gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_LOW>; | ||
| 56 | snps,reset-active-low; | ||
| 57 | status = "okay"; | ||
| 58 | }; | ||
| 59 | |||
| 60 | &i2c0 { | ||
| 61 | clock-frequency = <400000>; | ||
| 62 | i2c-scl-rising-time-ns = <275>; | ||
| 63 | i2c-scl-falling-time-ns = <16>; | ||
| 64 | status = "okay"; | ||
| 65 | |||
| 66 | rk805: pmic@18 { | ||
| 67 | compatible = "rockchip,rk805"; | ||
| 68 | reg = <0x18>; | ||
| 69 | interrupt-parent = <&gpio0>; | ||
| 70 | interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>; | ||
| 71 | rockchip,system-power-controller; | ||
| 72 | |||
| 73 | vcc1-supply = <&vcc_sys>; | ||
| 74 | vcc2-supply = <&vcc_sys>; | ||
| 75 | vcc3-supply = <&vcc_sys>; | ||
| 76 | vcc4-supply = <&vcc_sys>; | ||
| 77 | vcc5-supply = <&vdd_buck2>; | ||
| 78 | vcc6-supply = <&vdd_buck2>; | ||
| 79 | |||
| 80 | regulators { | ||
| 81 | vdd_core: DCDC_REG1 { | ||
| 82 | regulator-name= "vdd_core"; | ||
| 83 | regulator-min-microvolt = <700000>; | ||
| 84 | regulator-max-microvolt = <1500000>; | ||
| 85 | regulator-always-on; | ||
| 86 | regulator-boot-on; | ||
| 87 | regulator-state-mem { | ||
| 88 | regulator-on-in-suspend; | ||
| 89 | regulator-suspend-microvolt = <900000>; | ||
| 90 | }; | ||
| 91 | }; | ||
| 92 | |||
| 93 | vdd_buck2: DCDC_REG2 { | ||
| 94 | regulator-name= "vdd_buck2"; | ||
| 95 | regulator-min-microvolt = <2200000>; | ||
| 96 | regulator-max-microvolt = <2200000>; | ||
| 97 | regulator-always-on; | ||
| 98 | regulator-boot-on; | ||
| 99 | regulator-state-mem { | ||
| 100 | regulator-off-in-suspend; | ||
| 101 | }; | ||
| 102 | }; | ||
| 103 | |||
| 104 | vcc_ddr: DCDC_REG3 { | ||
| 105 | regulator-name= "vcc_ddr"; | ||
| 106 | regulator-always-on; | ||
| 107 | regulator-boot-on; | ||
| 108 | regulator-state-mem { | ||
| 109 | regulator-on-in-suspend; | ||
| 110 | }; | ||
| 111 | }; | ||
| 112 | |||
| 113 | vcc_io: DCDC_REG4 { | ||
| 114 | regulator-name= "vcc_io"; | ||
| 115 | regulator-min-microvolt = <3300000>; | ||
| 116 | regulator-max-microvolt = <3300000>; | ||
| 117 | regulator-always-on; | ||
| 118 | regulator-boot-on; | ||
| 119 | regulator-state-mem { | ||
| 120 | regulator-on-in-suspend; | ||
| 121 | regulator-suspend-microvolt = <3300000>; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | |||
| 125 | vdd_10: LDO_REG1 { | ||
| 126 | regulator-name= "vdd_10"; | ||
| 127 | regulator-min-microvolt = <1000000>; | ||
| 128 | regulator-max-microvolt = <1000000>; | ||
| 129 | regulator-always-on; | ||
| 130 | regulator-boot-on; | ||
| 131 | regulator-state-mem { | ||
| 132 | regulator-off-in-suspend; | ||
| 133 | }; | ||
| 134 | }; | ||
| 135 | |||
| 136 | vcc_18: LDO_REG2 { | ||
| 137 | regulator-name= "vcc_18"; | ||
| 138 | regulator-min-microvolt = <1800000>; | ||
| 139 | regulator-max-microvolt = <1800000>; | ||
| 140 | regulator-always-on; | ||
| 141 | regulator-boot-on; | ||
| 142 | regulator-state-mem { | ||
| 143 | regulator-off-in-suspend; | ||
| 144 | }; | ||
| 145 | }; | ||
| 146 | |||
| 147 | vdd10_pmu: LDO_REG3 { | ||
| 148 | regulator-name= "vdd10_pmu"; | ||
| 149 | regulator-min-microvolt = <1000000>; | ||
| 150 | regulator-max-microvolt = <1000000>; | ||
| 151 | regulator-always-on; | ||
| 152 | regulator-boot-on; | ||
| 153 | regulator-state-mem { | ||
| 154 | regulator-on-in-suspend; | ||
| 155 | regulator-suspend-microvolt = <1000000>; | ||
| 156 | }; | ||
| 157 | }; | ||
| 158 | }; | ||
| 159 | }; | ||
| 160 | }; | ||
| 161 | |||
| 162 | &spi { | ||
| 163 | pinctrl-names = "default"; | ||
| 164 | pinctrl-0 = <&spim1_clk &spim1_cs0 &spim1_tx &spim1_rx>; | ||
| 165 | status = "okay"; | ||
| 166 | |||
| 167 | dh2228fv: dac@0 { | ||
| 168 | compatible = "rohm,dh2228fv"; | ||
| 169 | reg = <0>; | ||
| 170 | spi-max-frequency = <24000000>; | ||
| 171 | spi-cpha; | ||
| 172 | spi-cpol; | ||
| 173 | }; | ||
| 174 | }; | ||
| 175 | |||
| 176 | &u2phy { | ||
| 177 | status = "okay"; | ||
| 178 | |||
| 179 | u2phy_host: host-port { | ||
| 180 | status = "okay"; | ||
| 181 | }; | ||
| 182 | |||
| 183 | u2phy_otg: otg-port { | ||
| 184 | status = "okay"; | ||
| 185 | }; | ||
| 186 | }; | ||
| 187 | |||
| 188 | &uart0 { | ||
| 189 | pinctrl-names = "default"; | ||
| 190 | pinctrl-0 = <&uart0_xfer>; | ||
| 191 | status = "okay"; | ||
| 192 | }; | ||
| 193 | |||
| 194 | &uart2 { | ||
| 195 | status = "okay"; | ||
| 196 | }; | ||
| 197 | |||
| 198 | &usb_host_ehci { | ||
| 199 | status = "okay"; | ||
| 200 | }; | ||
| 201 | |||
| 202 | &usb_host_ohci { | ||
| 203 | status = "okay"; | ||
| 204 | }; | ||
| 205 | |||
| 206 | &usb_otg { | ||
| 207 | status = "okay"; | ||
| 208 | }; | ||
diff --git a/arch/arm/boot/dts/rv1108-evb.dts b/arch/arm/boot/dts/rv1108-evb.dts index 203d83e3bbf5..30f3d0470ad9 100644 --- a/arch/arm/boot/dts/rv1108-evb.dts +++ b/arch/arm/boot/dts/rv1108-evb.dts | |||
| @@ -97,8 +97,8 @@ | |||
| 97 | regulator-always-on; | 97 | regulator-always-on; |
| 98 | regulator-boot-on; | 98 | regulator-boot-on; |
| 99 | regulator-state-mem { | 99 | regulator-state-mem { |
| 100 | regulator-state-enabled; | 100 | regulator-on-in-suspend; |
| 101 | regulator-state-uv = <900000>; | 101 | regulator-suspend-microvolt = <900000>; |
| 102 | }; | 102 | }; |
| 103 | }; | 103 | }; |
| 104 | 104 | ||
| @@ -107,7 +107,7 @@ | |||
| 107 | regulator-min-microvolt = <700000>; | 107 | regulator-min-microvolt = <700000>; |
| 108 | regulator-max-microvolt = <2000000>; | 108 | regulator-max-microvolt = <2000000>; |
| 109 | regulator-state-mem { | 109 | regulator-state-mem { |
| 110 | regulator-state-disabled; | 110 | regulator-off-in-suspend; |
| 111 | }; | 111 | }; |
| 112 | }; | 112 | }; |
| 113 | 113 | ||
| @@ -116,7 +116,7 @@ | |||
| 116 | regulator-always-on; | 116 | regulator-always-on; |
| 117 | regulator-boot-on; | 117 | regulator-boot-on; |
| 118 | regulator-state-mem { | 118 | regulator-state-mem { |
| 119 | regulator-state-enabled; | 119 | regulator-on-in-suspend; |
| 120 | }; | 120 | }; |
| 121 | }; | 121 | }; |
| 122 | 122 | ||
| @@ -127,8 +127,8 @@ | |||
| 127 | regulator-always-on; | 127 | regulator-always-on; |
| 128 | regulator-boot-on; | 128 | regulator-boot-on; |
| 129 | regulator-state-mem { | 129 | regulator-state-mem { |
| 130 | regulator-state-enabled; | 130 | regulator-on-in-suspend; |
| 131 | regulator-state-uv = <3300000>; | 131 | regulator-suspend-microvolt = <3300000>; |
| 132 | }; | 132 | }; |
| 133 | }; | 133 | }; |
| 134 | 134 | ||
| @@ -139,7 +139,7 @@ | |||
| 139 | regulator-always-on; | 139 | regulator-always-on; |
| 140 | regulator-boot-on; | 140 | regulator-boot-on; |
| 141 | regulator-state-mem { | 141 | regulator-state-mem { |
| 142 | regulator-state-disabled; | 142 | regulator-off-in-suspend; |
| 143 | }; | 143 | }; |
| 144 | }; | 144 | }; |
| 145 | 145 | ||
| @@ -150,7 +150,7 @@ | |||
| 150 | regulator-always-on; | 150 | regulator-always-on; |
| 151 | regulator-boot-on; | 151 | regulator-boot-on; |
| 152 | regulator-state-mem { | 152 | regulator-state-mem { |
| 153 | regulator-state-disabled; | 153 | regulator-off-in-suspend; |
| 154 | }; | 154 | }; |
| 155 | }; | 155 | }; |
| 156 | 156 | ||
| @@ -161,8 +161,8 @@ | |||
| 161 | regulator-always-on; | 161 | regulator-always-on; |
| 162 | regulator-boot-on; | 162 | regulator-boot-on; |
| 163 | regulator-state-mem { | 163 | regulator-state-mem { |
| 164 | regulator-state-enabled; | 164 | regulator-on-in-suspend; |
| 165 | regulator-state-uv = <1000000>; | 165 | regulator-suspend-microvolt = <1000000>; |
| 166 | }; | 166 | }; |
| 167 | }; | 167 | }; |
| 168 | }; | 168 | }; |
diff --git a/arch/arm/boot/dts/rv1108.dtsi b/arch/arm/boot/dts/rv1108.dtsi index d31370ff28f4..f47ac86d2852 100644 --- a/arch/arm/boot/dts/rv1108.dtsi +++ b/arch/arm/boot/dts/rv1108.dtsi | |||
| @@ -207,6 +207,7 @@ | |||
| 207 | clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>; | 207 | clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>; |
| 208 | clock-names = "spiclk", "apb_pclk"; | 208 | clock-names = "spiclk", "apb_pclk"; |
| 209 | dmas = <&pdma 8>, <&pdma 9>; | 209 | dmas = <&pdma 8>, <&pdma 9>; |
| 210 | dma-names = "tx", "rx"; | ||
| 210 | #dma-cells = <2>; | 211 | #dma-cells = <2>; |
| 211 | #address-cells = <1>; | 212 | #address-cells = <1>; |
| 212 | #size-cells = <0>; | 213 | #size-cells = <0>; |
| @@ -833,6 +834,42 @@ | |||
| 833 | }; | 834 | }; |
| 834 | }; | 835 | }; |
| 835 | 836 | ||
| 837 | spim0 { | ||
| 838 | spim0_clk: spim0-clk { | ||
| 839 | rockchip,pins = <1 RK_PD0 RK_FUNC_2 &pcfg_pull_up>; | ||
| 840 | }; | ||
| 841 | |||
| 842 | spim0_cs0: spim0-cs0 { | ||
| 843 | rockchip,pins = <1 RK_PD1 RK_FUNC_2 &pcfg_pull_up>; | ||
| 844 | }; | ||
| 845 | |||
| 846 | spim0_tx: spim0-tx { | ||
| 847 | rockchip,pins = <1 RK_PD3 RK_FUNC_2 &pcfg_pull_up>; | ||
| 848 | }; | ||
| 849 | |||
| 850 | spim0_rx: spim0-rx { | ||
| 851 | rockchip,pins = <1 RK_PD2 RK_FUNC_2 &pcfg_pull_up>; | ||
| 852 | }; | ||
| 853 | }; | ||
| 854 | |||
| 855 | spim1 { | ||
| 856 | spim1_clk: spim1-clk { | ||
| 857 | rockchip,pins = <0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>; | ||
| 858 | }; | ||
| 859 | |||
| 860 | spim1_cs0: spim1-cs0 { | ||
| 861 | rockchip,pins = <0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>; | ||
| 862 | }; | ||
| 863 | |||
| 864 | spim1_rx: spim1-rx { | ||
| 865 | rockchip,pins = <0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>; | ||
| 866 | }; | ||
| 867 | |||
| 868 | spim1_tx: spim1-tx { | ||
| 869 | rockchip,pins = <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>; | ||
| 870 | }; | ||
| 871 | }; | ||
| 872 | |||
| 836 | tsadc { | 873 | tsadc { |
| 837 | otp_out: otp-out { | 874 | otp_out: otp-out { |
| 838 | rockchip,pins = <0 RK_PB7 RK_FUNC_1 &pcfg_pull_none>; | 875 | rockchip,pins = <0 RK_PB7 RK_FUNC_1 &pcfg_pull_none>; |
diff --git a/arch/arm/boot/dts/s3c2416-smdk2416.dts b/arch/arm/boot/dts/s3c2416-smdk2416.dts index 5164386aff3a..cb371bf72f64 100644 --- a/arch/arm/boot/dts/s3c2416-smdk2416.dts +++ b/arch/arm/boot/dts/s3c2416-smdk2416.dts | |||
| @@ -19,9 +19,12 @@ | |||
| 19 | 19 | ||
| 20 | clocks { | 20 | clocks { |
| 21 | compatible = "simple-bus"; | 21 | compatible = "simple-bus"; |
| 22 | #address-cells = <1>; | ||
| 23 | #size-cells = <0>; | ||
| 22 | 24 | ||
| 23 | xti: xti { | 25 | xti: xti@0 { |
| 24 | compatible = "fixed-clock"; | 26 | compatible = "fixed-clock"; |
| 27 | reg = <0>; | ||
| 25 | clock-frequency = <12000000>; | 28 | clock-frequency = <12000000>; |
| 26 | clock-output-names = "xti"; | 29 | clock-output-names = "xti"; |
| 27 | #clock-cells = <0>; | 30 | #clock-cells = <0>; |
diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi index 575094ea7024..8ff70b856334 100644 --- a/arch/arm/boot/dts/s5pv210-aries.dtsi +++ b/arch/arm/boot/dts/s5pv210-aries.dtsi | |||
| @@ -23,6 +23,31 @@ | |||
| 23 | 0x50000000 0x08000000>; | 23 | 0x50000000 0x08000000>; |
| 24 | }; | 24 | }; |
| 25 | 25 | ||
| 26 | reserved-memory { | ||
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <1>; | ||
| 29 | ranges; | ||
| 30 | |||
| 31 | mfc_left: region@43000000 { | ||
| 32 | compatible = "shared-dma-pool"; | ||
| 33 | no-map; | ||
| 34 | reg = <0x43000000 0x2000000>; | ||
| 35 | }; | ||
| 36 | |||
| 37 | mfc_right: region@51000000 { | ||
| 38 | compatible = "shared-dma-pool"; | ||
| 39 | no-map; | ||
| 40 | reg = <0x51000000 0x2000000>; | ||
| 41 | }; | ||
| 42 | }; | ||
| 43 | |||
| 44 | vibrator_pwr: regulator-fixed-0 { | ||
| 45 | compatible = "regulator-fixed"; | ||
| 46 | regulator-name = "vibrator-en"; | ||
| 47 | enable-active-high; | ||
| 48 | gpio = <&gpj1 1 GPIO_ACTIVE_HIGH>; | ||
| 49 | }; | ||
| 50 | |||
| 26 | wifi_pwrseq: wifi-pwrseq { | 51 | wifi_pwrseq: wifi-pwrseq { |
| 27 | compatible = "mmc-pwrseq-simple"; | 52 | compatible = "mmc-pwrseq-simple"; |
| 28 | reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; | 53 | reset-gpios = <&gpg1 2 GPIO_ACTIVE_LOW>; |
| @@ -296,6 +321,22 @@ | |||
| 296 | reg = <0x36>; | 321 | reg = <0x36>; |
| 297 | }; | 322 | }; |
| 298 | }; | 323 | }; |
| 324 | |||
| 325 | vibrator: pwm-vibrator { | ||
| 326 | compatible = "pwm-vibrator"; | ||
| 327 | pwms = <&pwm 1 44642 0>; | ||
| 328 | pwm-names = "enable"; | ||
| 329 | vcc-supply = <&vibrator_pwr>; | ||
| 330 | pinctrl-names = "default"; | ||
| 331 | pinctrl-0 = <&pwm1_out>; | ||
| 332 | }; | ||
| 333 | |||
| 334 | poweroff: syscon-poweroff { | ||
| 335 | compatible = "syscon-poweroff"; | ||
| 336 | regmap = <&pmu_syscon>; | ||
| 337 | offset = <0x681c>; /* PS_HOLD_CONTROL */ | ||
| 338 | value = <0x5200>; | ||
| 339 | }; | ||
| 299 | }; | 340 | }; |
| 300 | 341 | ||
| 301 | &fimd { | 342 | &fimd { |
| @@ -329,6 +370,27 @@ | |||
| 329 | status = "okay"; | 370 | status = "okay"; |
| 330 | }; | 371 | }; |
| 331 | 372 | ||
| 373 | &i2c2 { | ||
| 374 | samsung,i2c-sda-delay = <100>; | ||
| 375 | samsung,i2c-max-bus-freq = <400000>; | ||
| 376 | samsung,i2c-slave-addr = <0x10>; | ||
| 377 | status = "okay"; | ||
| 378 | |||
| 379 | touchscreen@4a { | ||
| 380 | compatible = "atmel,maxtouch"; | ||
| 381 | reg = <0x4a>; | ||
| 382 | interrupt-parent = <&gpj0>; | ||
| 383 | interrupts = <5 IRQ_TYPE_EDGE_FALLING>; | ||
| 384 | pinctrl-names = "default"; | ||
| 385 | pinctrl-0 = <&ts_irq>; | ||
| 386 | reset-gpios = <&gpj1 3 GPIO_ACTIVE_HIGH>; | ||
| 387 | }; | ||
| 388 | }; | ||
| 389 | |||
| 390 | &mfc { | ||
| 391 | memory-region = <&mfc_left>, <&mfc_right>; | ||
| 392 | }; | ||
| 393 | |||
| 332 | &pinctrl0 { | 394 | &pinctrl0 { |
| 333 | wlan_bt_en: wlan-bt-en { | 395 | wlan_bt_en: wlan-bt-en { |
| 334 | samsung,pins = "gpb-5"; | 396 | samsung,pins = "gpb-5"; |
| @@ -350,6 +412,13 @@ | |||
| 350 | samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; | 412 | samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; |
| 351 | }; | 413 | }; |
| 352 | 414 | ||
| 415 | bt_host_wake: bt-host-wake { | ||
| 416 | samsung,pins = "gph2-5"; | ||
| 417 | samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; | ||
| 418 | samsung,pin-pud = <S3C64XX_PIN_PULL_DOWN>; | ||
| 419 | samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; | ||
| 420 | }; | ||
| 421 | |||
| 353 | tf_detect: tf-detect { | 422 | tf_detect: tf-detect { |
| 354 | samsung,pins = "gph3-4"; | 423 | samsung,pins = "gph3-4"; |
| 355 | samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; | 424 | samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; |
| @@ -362,6 +431,17 @@ | |||
| 362 | samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; | 431 | samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; |
| 363 | samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; | 432 | samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; |
| 364 | }; | 433 | }; |
| 434 | |||
| 435 | ts_irq: ts-irq { | ||
| 436 | samsung,pins = "gpj0-5"; | ||
| 437 | samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; | ||
| 438 | samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>; | ||
| 439 | samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; | ||
| 440 | }; | ||
| 441 | }; | ||
| 442 | |||
| 443 | &pwm { | ||
| 444 | samsung,pwm-outputs = <1>; | ||
| 365 | }; | 445 | }; |
| 366 | 446 | ||
| 367 | &sdhci1 { | 447 | &sdhci1 { |
| @@ -399,6 +479,16 @@ | |||
| 399 | 479 | ||
| 400 | &uart0 { | 480 | &uart0 { |
| 401 | status = "okay"; | 481 | status = "okay"; |
| 482 | |||
| 483 | bluetooth { | ||
| 484 | compatible = "brcm,bcm43438-bt"; | ||
| 485 | max-speed = <115200>; | ||
| 486 | pinctrl-names = "default"; | ||
| 487 | pinctrl-0 = <&uart0_data &uart0_fctl &bt_host_wake>; | ||
| 488 | shutdown-gpios = <&gpb 3 GPIO_ACTIVE_HIGH>; | ||
| 489 | device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>; | ||
| 490 | host-wakeup-gpios = <&gph2 5 GPIO_ACTIVE_HIGH>; | ||
| 491 | }; | ||
| 402 | }; | 492 | }; |
| 403 | 493 | ||
| 404 | &uart1 { | 494 | &uart1 { |
diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts index ccf761b1babf..07a8d9bbe5b8 100644 --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts | |||
| @@ -11,13 +11,6 @@ | |||
| 11 | 11 | ||
| 12 | chosen { | 12 | chosen { |
| 13 | stdout-path = &uart2; | 13 | stdout-path = &uart2; |
| 14 | /* | ||
| 15 | * It's hard to change those parameters in stock bootloader, | ||
| 16 | * since it requires special hardware/cable. | ||
| 17 | * Let's hardocde bootargs for now, till u-boot port is finished, | ||
| 18 | * with which it should be easier. | ||
| 19 | */ | ||
| 20 | bootargs = "root=/dev/mmcblk1p1 rw rootwait ignore_loglevel earlyprintk"; | ||
| 21 | }; | 14 | }; |
| 22 | 15 | ||
| 23 | gpio-keys { | 16 | gpio-keys { |
diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts index 842276749717..cf161bbfbacf 100644 --- a/arch/arm/boot/dts/s5pv210-galaxys.dts +++ b/arch/arm/boot/dts/s5pv210-galaxys.dts | |||
| @@ -11,13 +11,6 @@ | |||
| 11 | 11 | ||
| 12 | chosen { | 12 | chosen { |
| 13 | stdout-path = &uart2; | 13 | stdout-path = &uart2; |
| 14 | /* | ||
| 15 | * It's hard to change those parameters in stock bootloader, | ||
| 16 | * since it requires special hardware/cable. | ||
| 17 | * Let's hardocde bootargs for now, till u-boot port is finished, | ||
| 18 | * with which it should be easier. | ||
| 19 | */ | ||
| 20 | bootargs = "root=/dev/mmcblk2p1 rw rootwait ignore_loglevel earlyprintk"; | ||
| 21 | }; | 14 | }; |
| 22 | 15 | ||
| 23 | nand_pwrseq: nand-pwrseq { | 16 | nand_pwrseq: nand-pwrseq { |
diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi index 12eac8930eac..a44d5eb56bed 100644 --- a/arch/arm/boot/dts/s5pv210.dtsi +++ b/arch/arm/boot/dts/s5pv210.dtsi | |||
| @@ -25,6 +25,8 @@ | |||
| 25 | 25 | ||
| 26 | aliases { | 26 | aliases { |
| 27 | csis0 = &csis0; | 27 | csis0 = &csis0; |
| 28 | dmc0 = &dmc0; | ||
| 29 | dmc1 = &dmc1; | ||
| 28 | fimc0 = &fimc0; | 30 | fimc0 = &fimc0; |
| 29 | fimc1 = &fimc1; | 31 | fimc1 = &fimc1; |
| 30 | fimc2 = &fimc2; | 32 | fimc2 = &fimc2; |
| @@ -78,7 +80,7 @@ | |||
| 78 | }; | 80 | }; |
| 79 | }; | 81 | }; |
| 80 | 82 | ||
| 81 | onenand: onenand@b0000000 { | 83 | onenand: onenand@b0600000 { |
| 82 | compatible = "samsung,s5pv210-onenand"; | 84 | compatible = "samsung,s5pv210-onenand"; |
| 83 | reg = <0xb0600000 0x2000>, | 85 | reg = <0xb0600000 0x2000>, |
| 84 | <0xb0000000 0x20000>, | 86 | <0xb0000000 0x20000>, |
| @@ -511,7 +513,7 @@ | |||
| 511 | }; | 513 | }; |
| 512 | 514 | ||
| 513 | fimd: fimd@f8000000 { | 515 | fimd: fimd@f8000000 { |
| 514 | compatible = "samsung,exynos4210-fimd"; | 516 | compatible = "samsung,s5pv210-fimd"; |
| 515 | interrupt-parent = <&vic2>; | 517 | interrupt-parent = <&vic2>; |
| 516 | reg = <0xf8000000 0x20000>; | 518 | reg = <0xf8000000 0x20000>; |
| 517 | interrupt-names = "fifo", "vsync", "lcd_sys"; | 519 | interrupt-names = "fifo", "vsync", "lcd_sys"; |
| @@ -521,6 +523,16 @@ | |||
| 521 | status = "disabled"; | 523 | status = "disabled"; |
| 522 | }; | 524 | }; |
| 523 | 525 | ||
| 526 | dmc0: dmc@f0000000 { | ||
| 527 | compatible = "samsung,s5pv210-dmc"; | ||
| 528 | reg = <0xf0000000 0x1000>; | ||
| 529 | }; | ||
| 530 | |||
| 531 | dmc1: dmc@f1400000 { | ||
| 532 | compatible = "samsung,s5pv210-dmc"; | ||
| 533 | reg = <0xf1400000 0x1000>; | ||
| 534 | }; | ||
| 535 | |||
| 524 | g2d: g2d@fa000000 { | 536 | g2d: g2d@fa000000 { |
| 525 | compatible = "samsung,s5pv210-g2d"; | 537 | compatible = "samsung,s5pv210-g2d"; |
| 526 | reg = <0xfa000000 0x1000>; | 538 | reg = <0xfa000000 0x1000>; |
| @@ -542,6 +554,15 @@ | |||
| 542 | #dma-requests = <1>; | 554 | #dma-requests = <1>; |
| 543 | }; | 555 | }; |
| 544 | 556 | ||
| 557 | rotator: rotator@fa300000 { | ||
| 558 | compatible = "samsung,s5pv210-rotator"; | ||
| 559 | reg = <0xfa300000 0x1000>; | ||
| 560 | interrupt-parent = <&vic2>; | ||
| 561 | interrupts = <4>; | ||
| 562 | clocks = <&clocks CLK_ROTATOR>; | ||
| 563 | clock-names = "rotator"; | ||
| 564 | }; | ||
| 565 | |||
| 545 | i2c1: i2c@fab00000 { | 566 | i2c1: i2c@fab00000 { |
| 546 | compatible = "samsung,s3c2440-i2c"; | 567 | compatible = "samsung,s3c2440-i2c"; |
| 547 | reg = <0xfab00000 0x1000>; | 568 | reg = <0xfab00000 0x1000>; |
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi index dc2280d9127f..d159ee42ef29 100644 --- a/arch/arm/boot/dts/sama5d2.dtsi +++ b/arch/arm/boot/dts/sama5d2.dtsi | |||
| @@ -43,13 +43,14 @@ | |||
| 43 | * OTHER DEALINGS IN THE SOFTWARE. | 43 | * OTHER DEALINGS IN THE SOFTWARE. |
| 44 | */ | 44 | */ |
| 45 | 45 | ||
| 46 | #include "skeleton.dtsi" | ||
| 47 | #include <dt-bindings/dma/at91.h> | 46 | #include <dt-bindings/dma/at91.h> |
| 48 | #include <dt-bindings/interrupt-controller/irq.h> | 47 | #include <dt-bindings/interrupt-controller/irq.h> |
| 49 | #include <dt-bindings/clock/at91.h> | 48 | #include <dt-bindings/clock/at91.h> |
| 50 | #include <dt-bindings/iio/adc/at91-sama5d2_adc.h> | 49 | #include <dt-bindings/iio/adc/at91-sama5d2_adc.h> |
| 51 | 50 | ||
| 52 | / { | 51 | / { |
| 52 | #address-cells = <1>; | ||
| 53 | #size-cells = <1>; | ||
| 53 | model = "Atmel SAMA5D2 family SoC"; | 54 | model = "Atmel SAMA5D2 family SoC"; |
| 54 | compatible = "atmel,sama5d2"; | 55 | compatible = "atmel,sama5d2"; |
| 55 | interrupt-parent = <&aic>; | 56 | interrupt-parent = <&aic>; |
| @@ -113,6 +114,7 @@ | |||
| 113 | }; | 114 | }; |
| 114 | 115 | ||
| 115 | memory { | 116 | memory { |
| 117 | device_type = "memory"; | ||
| 116 | reg = <0x20000000 0x20000000>; | 118 | reg = <0x20000000 0x20000000>; |
| 117 | }; | 119 | }; |
| 118 | 120 | ||
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi index 1408fa4a62e4..02198772eb81 100644 --- a/arch/arm/boot/dts/sama5d3.dtsi +++ b/arch/arm/boot/dts/sama5d3.dtsi | |||
| @@ -8,7 +8,6 @@ | |||
| 8 | * Licensed under GPLv2 or later. | 8 | * Licensed under GPLv2 or later. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include "skeleton.dtsi" | ||
| 12 | #include <dt-bindings/dma/at91.h> | 11 | #include <dt-bindings/dma/at91.h> |
| 13 | #include <dt-bindings/pinctrl/at91.h> | 12 | #include <dt-bindings/pinctrl/at91.h> |
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | 13 | #include <dt-bindings/interrupt-controller/irq.h> |
| @@ -16,6 +15,8 @@ | |||
| 16 | #include <dt-bindings/clock/at91.h> | 15 | #include <dt-bindings/clock/at91.h> |
| 17 | 16 | ||
| 18 | / { | 17 | / { |
| 18 | #address-cells = <1>; | ||
| 19 | #size-cells = <1>; | ||
| 19 | model = "Atmel SAMA5D3 family SoC"; | 20 | model = "Atmel SAMA5D3 family SoC"; |
| 20 | compatible = "atmel,sama5d3", "atmel,sama5"; | 21 | compatible = "atmel,sama5d3", "atmel,sama5"; |
| 21 | interrupt-parent = <&aic>; | 22 | interrupt-parent = <&aic>; |
| @@ -56,6 +57,7 @@ | |||
| 56 | }; | 57 | }; |
| 57 | 58 | ||
| 58 | memory { | 59 | memory { |
| 60 | device_type = "memory"; | ||
| 59 | reg = <0x20000000 0x8000000>; | 61 | reg = <0x20000000 0x8000000>; |
| 60 | }; | 62 | }; |
| 61 | 63 | ||
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi index 2604fd07dd53..6c1e41f94549 100644 --- a/arch/arm/boot/dts/sama5d4.dtsi +++ b/arch/arm/boot/dts/sama5d4.dtsi | |||
| @@ -43,7 +43,6 @@ | |||
| 43 | * OTHER DEALINGS IN THE SOFTWARE. | 43 | * OTHER DEALINGS IN THE SOFTWARE. |
| 44 | */ | 44 | */ |
| 45 | 45 | ||
| 46 | #include "skeleton.dtsi" | ||
| 47 | #include <dt-bindings/clock/at91.h> | 46 | #include <dt-bindings/clock/at91.h> |
| 48 | #include <dt-bindings/dma/at91.h> | 47 | #include <dt-bindings/dma/at91.h> |
| 49 | #include <dt-bindings/pinctrl/at91.h> | 48 | #include <dt-bindings/pinctrl/at91.h> |
| @@ -51,6 +50,8 @@ | |||
| 51 | #include <dt-bindings/gpio/gpio.h> | 50 | #include <dt-bindings/gpio/gpio.h> |
| 52 | 51 | ||
| 53 | / { | 52 | / { |
| 53 | #address-cells = <1>; | ||
| 54 | #size-cells = <1>; | ||
| 54 | model = "Atmel SAMA5D4 family SoC"; | 55 | model = "Atmel SAMA5D4 family SoC"; |
| 55 | compatible = "atmel,sama5d4"; | 56 | compatible = "atmel,sama5d4"; |
| 56 | interrupt-parent = <&aic>; | 57 | interrupt-parent = <&aic>; |
| @@ -90,6 +91,7 @@ | |||
| 90 | }; | 91 | }; |
| 91 | 92 | ||
| 92 | memory { | 93 | memory { |
| 94 | device_type = "memory"; | ||
| 93 | reg = <0x20000000 0x20000000>; | 95 | reg = <0x20000000 0x20000000>; |
| 94 | }; | 96 | }; |
| 95 | 97 | ||
diff --git a/arch/arm/boot/dts/skeleton.dtsi b/arch/arm/boot/dts/skeleton.dtsi deleted file mode 100644 index 34eda68d9ea2..000000000000 --- a/arch/arm/boot/dts/skeleton.dtsi +++ /dev/null | |||
| @@ -1,18 +0,0 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * This file is deprecated, and will be removed once existing users have been | ||
| 4 | * updated. New dts{,i} files should *not* include skeleton.dtsi, and should | ||
| 5 | * instead explicitly provide the below nodes only as required. | ||
| 6 | * | ||
| 7 | * Skeleton device tree; the bare minimum needed to boot; just include and | ||
| 8 | * add a compatible value. The bootloader will typically populate the memory | ||
| 9 | * node. | ||
| 10 | */ | ||
| 11 | |||
| 12 | / { | ||
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 15 | chosen { }; | ||
| 16 | aliases { }; | ||
| 17 | memory { device_type = "memory"; reg = <0 0>; }; | ||
| 18 | }; | ||
diff --git a/arch/arm/boot/dts/skeleton64.dtsi b/arch/arm/boot/dts/skeleton64.dtsi deleted file mode 100644 index 54e637752b9d..000000000000 --- a/arch/arm/boot/dts/skeleton64.dtsi +++ /dev/null | |||
| @@ -1,14 +0,0 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Skeleton device tree in the 64 bits version; the bare minimum | ||
| 4 | * needed to boot; just include and add a compatible value. The | ||
| 5 | * bootloader will typically populate the memory node. | ||
| 6 | */ | ||
| 7 | |||
| 8 | / { | ||
| 9 | #address-cells = <2>; | ||
| 10 | #size-cells = <2>; | ||
| 11 | chosen { }; | ||
| 12 | aliases { }; | ||
| 13 | memory { device_type = "memory"; reg = <0 0 0 0>; }; | ||
| 14 | }; | ||
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi index dcb8fba3d709..ec1966480f2f 100644 --- a/arch/arm/boot/dts/socfpga.dtsi +++ b/arch/arm/boot/dts/socfpga.dtsi | |||
| @@ -84,6 +84,7 @@ | |||
| 84 | #dma-requests = <32>; | 84 | #dma-requests = <32>; |
| 85 | clocks = <&l4_main_clk>; | 85 | clocks = <&l4_main_clk>; |
| 86 | clock-names = "apb_pclk"; | 86 | clock-names = "apb_pclk"; |
| 87 | resets = <&rst DMA_RESET>; | ||
| 87 | }; | 88 | }; |
| 88 | }; | 89 | }; |
| 89 | 90 | ||
| @@ -100,6 +101,7 @@ | |||
| 100 | reg = <0xffc00000 0x1000>; | 101 | reg = <0xffc00000 0x1000>; |
| 101 | interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>; | 102 | interrupts = <0 131 4>, <0 132 4>, <0 133 4>, <0 134 4>; |
| 102 | clocks = <&can0_clk>; | 103 | clocks = <&can0_clk>; |
| 104 | resets = <&rst CAN0_RESET>; | ||
| 103 | status = "disabled"; | 105 | status = "disabled"; |
| 104 | }; | 106 | }; |
| 105 | 107 | ||
| @@ -108,6 +110,7 @@ | |||
| 108 | reg = <0xffc01000 0x1000>; | 110 | reg = <0xffc01000 0x1000>; |
| 109 | interrupts = <0 135 4>, <0 136 4>, <0 137 4>, <0 138 4>; | 111 | interrupts = <0 135 4>, <0 136 4>, <0 137 4>, <0 138 4>; |
| 110 | clocks = <&can1_clk>; | 112 | clocks = <&can1_clk>; |
| 113 | resets = <&rst CAN1_RESET>; | ||
| 111 | status = "disabled"; | 114 | status = "disabled"; |
| 112 | }; | 115 | }; |
| 113 | 116 | ||
| @@ -585,6 +588,7 @@ | |||
| 585 | compatible = "snps,dw-apb-gpio"; | 588 | compatible = "snps,dw-apb-gpio"; |
| 586 | reg = <0xff708000 0x1000>; | 589 | reg = <0xff708000 0x1000>; |
| 587 | clocks = <&l4_mp_clk>; | 590 | clocks = <&l4_mp_clk>; |
| 591 | resets = <&rst GPIO0_RESET>; | ||
| 588 | status = "disabled"; | 592 | status = "disabled"; |
| 589 | 593 | ||
| 590 | porta: gpio-controller@0 { | 594 | porta: gpio-controller@0 { |
| @@ -605,6 +609,7 @@ | |||
| 605 | compatible = "snps,dw-apb-gpio"; | 609 | compatible = "snps,dw-apb-gpio"; |
| 606 | reg = <0xff709000 0x1000>; | 610 | reg = <0xff709000 0x1000>; |
| 607 | clocks = <&l4_mp_clk>; | 611 | clocks = <&l4_mp_clk>; |
| 612 | resets = <&rst GPIO1_RESET>; | ||
| 608 | status = "disabled"; | 613 | status = "disabled"; |
| 609 | 614 | ||
| 610 | portb: gpio-controller@0 { | 615 | portb: gpio-controller@0 { |
| @@ -625,6 +630,7 @@ | |||
| 625 | compatible = "snps,dw-apb-gpio"; | 630 | compatible = "snps,dw-apb-gpio"; |
| 626 | reg = <0xff70a000 0x1000>; | 631 | reg = <0xff70a000 0x1000>; |
| 627 | clocks = <&l4_mp_clk>; | 632 | clocks = <&l4_mp_clk>; |
| 633 | resets = <&rst GPIO2_RESET>; | ||
| 628 | status = "disabled"; | 634 | status = "disabled"; |
| 629 | 635 | ||
| 630 | portc: gpio-controller@0 { | 636 | portc: gpio-controller@0 { |
| @@ -735,6 +741,7 @@ | |||
| 735 | #size-cells = <0>; | 741 | #size-cells = <0>; |
| 736 | clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>; | 742 | clocks = <&l4_mp_clk>, <&sdmmc_clk_divided>; |
| 737 | clock-names = "biu", "ciu"; | 743 | clock-names = "biu", "ciu"; |
| 744 | resets = <&rst SDMMC_RESET>; | ||
| 738 | status = "disabled"; | 745 | status = "disabled"; |
| 739 | }; | 746 | }; |
| 740 | 747 | ||
| @@ -748,6 +755,7 @@ | |||
| 748 | interrupts = <0x0 0x90 0x4>; | 755 | interrupts = <0x0 0x90 0x4>; |
| 749 | clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>; | 756 | clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>; |
| 750 | clock-names = "nand", "nand_x", "ecc"; | 757 | clock-names = "nand", "nand_x", "ecc"; |
| 758 | resets = <&rst NAND_RESET>; | ||
| 751 | status = "disabled"; | 759 | status = "disabled"; |
| 752 | }; | 760 | }; |
| 753 | 761 | ||
| @@ -767,6 +775,7 @@ | |||
| 767 | cdns,fifo-width = <4>; | 775 | cdns,fifo-width = <4>; |
| 768 | cdns,trigger-address = <0x00000000>; | 776 | cdns,trigger-address = <0x00000000>; |
| 769 | clocks = <&qspi_clk>; | 777 | clocks = <&qspi_clk>; |
| 778 | resets = <&rst QSPI_RESET>; | ||
| 770 | status = "disabled"; | 779 | status = "disabled"; |
| 771 | }; | 780 | }; |
| 772 | 781 | ||
| @@ -785,6 +794,7 @@ | |||
| 785 | sdr: sdr@ffc25000 { | 794 | sdr: sdr@ffc25000 { |
| 786 | compatible = "altr,sdr-ctl", "syscon"; | 795 | compatible = "altr,sdr-ctl", "syscon"; |
| 787 | reg = <0xffc25000 0x1000>; | 796 | reg = <0xffc25000 0x1000>; |
| 797 | resets = <&rst SDR_RESET>; | ||
| 788 | }; | 798 | }; |
| 789 | 799 | ||
| 790 | sdramedac { | 800 | sdramedac { |
| @@ -801,6 +811,7 @@ | |||
| 801 | interrupts = <0 154 4>; | 811 | interrupts = <0 154 4>; |
| 802 | num-cs = <4>; | 812 | num-cs = <4>; |
| 803 | clocks = <&spi_m_clk>; | 813 | clocks = <&spi_m_clk>; |
| 814 | resets = <&rst SPIM0_RESET>; | ||
| 804 | status = "disabled"; | 815 | status = "disabled"; |
| 805 | }; | 816 | }; |
| 806 | 817 | ||
| @@ -812,6 +823,7 @@ | |||
| 812 | interrupts = <0 155 4>; | 823 | interrupts = <0 155 4>; |
| 813 | num-cs = <4>; | 824 | num-cs = <4>; |
| 814 | clocks = <&spi_m_clk>; | 825 | clocks = <&spi_m_clk>; |
| 826 | resets = <&rst SPIM1_RESET>; | ||
| 815 | status = "disabled"; | 827 | status = "disabled"; |
| 816 | }; | 828 | }; |
| 817 | 829 | ||
| @@ -878,6 +890,7 @@ | |||
| 878 | dmas = <&pdma 28>, | 890 | dmas = <&pdma 28>, |
| 879 | <&pdma 29>; | 891 | <&pdma 29>; |
| 880 | dma-names = "tx", "rx"; | 892 | dma-names = "tx", "rx"; |
| 893 | resets = <&rst UART0_RESET>; | ||
| 881 | }; | 894 | }; |
| 882 | 895 | ||
| 883 | uart1: serial1@ffc03000 { | 896 | uart1: serial1@ffc03000 { |
| @@ -890,6 +903,7 @@ | |||
| 890 | dmas = <&pdma 30>, | 903 | dmas = <&pdma 30>, |
| 891 | <&pdma 31>; | 904 | <&pdma 31>; |
| 892 | dma-names = "tx", "rx"; | 905 | dma-names = "tx", "rx"; |
| 906 | resets = <&rst UART1_RESET>; | ||
| 893 | }; | 907 | }; |
| 894 | 908 | ||
| 895 | usbphy0: usbphy { | 909 | usbphy0: usbphy { |
| @@ -929,6 +943,7 @@ | |||
| 929 | reg = <0xffd02000 0x1000>; | 943 | reg = <0xffd02000 0x1000>; |
| 930 | interrupts = <0 171 4>; | 944 | interrupts = <0 171 4>; |
| 931 | clocks = <&osc1>; | 945 | clocks = <&osc1>; |
| 946 | resets = <&rst L4WD0_RESET>; | ||
| 932 | status = "disabled"; | 947 | status = "disabled"; |
| 933 | }; | 948 | }; |
| 934 | 949 | ||
| @@ -937,6 +952,7 @@ | |||
| 937 | reg = <0xffd03000 0x1000>; | 952 | reg = <0xffd03000 0x1000>; |
| 938 | interrupts = <0 172 4>; | 953 | interrupts = <0 172 4>; |
| 939 | clocks = <&osc1>; | 954 | clocks = <&osc1>; |
| 955 | resets = <&rst L4WD1_RESET>; | ||
| 940 | status = "disabled"; | 956 | status = "disabled"; |
| 941 | }; | 957 | }; |
| 942 | }; | 958 | }; |
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi index e41fa23481c3..ae24599d5829 100644 --- a/arch/arm/boot/dts/socfpga_arria10.dtsi +++ b/arch/arm/boot/dts/socfpga_arria10.dtsi | |||
| @@ -470,6 +470,7 @@ | |||
| 470 | tx-fifo-depth = <4096>; | 470 | tx-fifo-depth = <4096>; |
| 471 | rx-fifo-depth = <16384>; | 471 | rx-fifo-depth = <16384>; |
| 472 | clocks = <&l4_mp_clk>; | 472 | clocks = <&l4_mp_clk>; |
| 473 | resets = <&rst EMAC2_RESET>; | ||
| 473 | clock-names = "stmmaceth"; | 474 | clock-names = "stmmaceth"; |
| 474 | snps,axi-config = <&socfpga_axi_setup>; | 475 | snps,axi-config = <&socfpga_axi_setup>; |
| 475 | status = "disabled"; | 476 | status = "disabled"; |
| @@ -480,6 +481,7 @@ | |||
| 480 | #size-cells = <0>; | 481 | #size-cells = <0>; |
| 481 | compatible = "snps,dw-apb-gpio"; | 482 | compatible = "snps,dw-apb-gpio"; |
| 482 | reg = <0xffc02900 0x100>; | 483 | reg = <0xffc02900 0x100>; |
| 484 | resets = <&rst GPIO0_RESET>; | ||
| 483 | status = "disabled"; | 485 | status = "disabled"; |
| 484 | 486 | ||
| 485 | porta: gpio-controller@0 { | 487 | porta: gpio-controller@0 { |
| @@ -499,6 +501,7 @@ | |||
| 499 | #size-cells = <0>; | 501 | #size-cells = <0>; |
| 500 | compatible = "snps,dw-apb-gpio"; | 502 | compatible = "snps,dw-apb-gpio"; |
| 501 | reg = <0xffc02a00 0x100>; | 503 | reg = <0xffc02a00 0x100>; |
| 504 | resets = <&rst GPIO1_RESET>; | ||
| 502 | status = "disabled"; | 505 | status = "disabled"; |
| 503 | 506 | ||
| 504 | portb: gpio-controller@0 { | 507 | portb: gpio-controller@0 { |
| @@ -518,6 +521,7 @@ | |||
| 518 | #size-cells = <0>; | 521 | #size-cells = <0>; |
| 519 | compatible = "snps,dw-apb-gpio"; | 522 | compatible = "snps,dw-apb-gpio"; |
| 520 | reg = <0xffc02b00 0x100>; | 523 | reg = <0xffc02b00 0x100>; |
| 524 | resets = <&rst GPIO2_RESET>; | ||
| 521 | status = "disabled"; | 525 | status = "disabled"; |
| 522 | 526 | ||
| 523 | portc: gpio-controller@0 { | 527 | portc: gpio-controller@0 { |
| @@ -548,6 +552,7 @@ | |||
| 548 | reg = <0xffc02200 0x100>; | 552 | reg = <0xffc02200 0x100>; |
| 549 | interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; | 553 | interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; |
| 550 | clocks = <&l4_sp_clk>; | 554 | clocks = <&l4_sp_clk>; |
| 555 | resets = <&rst I2C0_RESET>; | ||
| 551 | status = "disabled"; | 556 | status = "disabled"; |
| 552 | }; | 557 | }; |
| 553 | 558 | ||
| @@ -558,6 +563,7 @@ | |||
| 558 | reg = <0xffc02300 0x100>; | 563 | reg = <0xffc02300 0x100>; |
| 559 | interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; | 564 | interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; |
| 560 | clocks = <&l4_sp_clk>; | 565 | clocks = <&l4_sp_clk>; |
| 566 | resets = <&rst I2C1_RESET>; | ||
| 561 | status = "disabled"; | 567 | status = "disabled"; |
| 562 | }; | 568 | }; |
| 563 | 569 | ||
| @@ -568,6 +574,7 @@ | |||
| 568 | reg = <0xffc02400 0x100>; | 574 | reg = <0xffc02400 0x100>; |
| 569 | interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; | 575 | interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; |
| 570 | clocks = <&l4_sp_clk>; | 576 | clocks = <&l4_sp_clk>; |
| 577 | resets = <&rst I2C2_RESET>; | ||
| 571 | status = "disabled"; | 578 | status = "disabled"; |
| 572 | }; | 579 | }; |
| 573 | 580 | ||
| @@ -578,6 +585,7 @@ | |||
| 578 | reg = <0xffc02500 0x100>; | 585 | reg = <0xffc02500 0x100>; |
| 579 | interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; | 586 | interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; |
| 580 | clocks = <&l4_sp_clk>; | 587 | clocks = <&l4_sp_clk>; |
| 588 | resets = <&rst I2C3_RESET>; | ||
| 581 | status = "disabled"; | 589 | status = "disabled"; |
| 582 | }; | 590 | }; |
| 583 | 591 | ||
| @@ -588,6 +596,7 @@ | |||
| 588 | reg = <0xffc02600 0x100>; | 596 | reg = <0xffc02600 0x100>; |
| 589 | interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>; | 597 | interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>; |
| 590 | clocks = <&l4_sp_clk>; | 598 | clocks = <&l4_sp_clk>; |
| 599 | resets = <&rst I2C4_RESET>; | ||
| 591 | status = "disabled"; | 600 | status = "disabled"; |
| 592 | }; | 601 | }; |
| 593 | 602 | ||
| @@ -600,6 +609,7 @@ | |||
| 600 | num-cs = <4>; | 609 | num-cs = <4>; |
| 601 | /*32bit_access;*/ | 610 | /*32bit_access;*/ |
| 602 | clocks = <&spi_m_clk>; | 611 | clocks = <&spi_m_clk>; |
| 612 | resets = <&rst SPIM0_RESET>; | ||
| 603 | status = "disabled"; | 613 | status = "disabled"; |
| 604 | }; | 614 | }; |
| 605 | 615 | ||
| @@ -614,6 +624,7 @@ | |||
| 614 | tx-dma-channel = <&pdma 16>; | 624 | tx-dma-channel = <&pdma 16>; |
| 615 | rx-dma-channel = <&pdma 17>; | 625 | rx-dma-channel = <&pdma 17>; |
| 616 | clocks = <&spi_m_clk>; | 626 | clocks = <&spi_m_clk>; |
| 627 | resets = <&rst SPIM1_RESET>; | ||
| 617 | status = "disabled"; | 628 | status = "disabled"; |
| 618 | }; | 629 | }; |
| 619 | 630 | ||
| @@ -642,6 +653,7 @@ | |||
| 642 | fifo-depth = <0x400>; | 653 | fifo-depth = <0x400>; |
| 643 | clocks = <&l4_mp_clk>, <&sdmmc_clk>; | 654 | clocks = <&l4_mp_clk>, <&sdmmc_clk>; |
| 644 | clock-names = "biu", "ciu"; | 655 | clock-names = "biu", "ciu"; |
| 656 | resets = <&rst SDMMC_RESET>; | ||
| 645 | status = "disabled"; | 657 | status = "disabled"; |
| 646 | }; | 658 | }; |
| 647 | 659 | ||
| @@ -655,6 +667,7 @@ | |||
| 655 | interrupts = <0 99 4>; | 667 | interrupts = <0 99 4>; |
| 656 | clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>; | 668 | clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>; |
| 657 | clock-names = "nand", "nand_x", "ecc"; | 669 | clock-names = "nand", "nand_x", "ecc"; |
| 670 | resets = <&rst NAND_RESET>; | ||
| 658 | status = "disabled"; | 671 | status = "disabled"; |
| 659 | }; | 672 | }; |
| 660 | 673 | ||
| @@ -739,6 +752,7 @@ | |||
| 739 | cdns,fifo-width = <4>; | 752 | cdns,fifo-width = <4>; |
| 740 | cdns,trigger-address = <0x00000000>; | 753 | cdns,trigger-address = <0x00000000>; |
| 741 | clocks = <&qspi_clk>; | 754 | clocks = <&qspi_clk>; |
| 755 | resets = <&rst QSPI_RESET>; | ||
| 742 | status = "disabled"; | 756 | status = "disabled"; |
| 743 | }; | 757 | }; |
| 744 | 758 | ||
| @@ -815,6 +829,7 @@ | |||
| 815 | reg-shift = <2>; | 829 | reg-shift = <2>; |
| 816 | reg-io-width = <4>; | 830 | reg-io-width = <4>; |
| 817 | clocks = <&l4_sp_clk>; | 831 | clocks = <&l4_sp_clk>; |
| 832 | resets = <&rst UART0_RESET>; | ||
| 818 | status = "disabled"; | 833 | status = "disabled"; |
| 819 | }; | 834 | }; |
| 820 | 835 | ||
| @@ -825,6 +840,7 @@ | |||
| 825 | reg-shift = <2>; | 840 | reg-shift = <2>; |
| 826 | reg-io-width = <4>; | 841 | reg-io-width = <4>; |
| 827 | clocks = <&l4_sp_clk>; | 842 | clocks = <&l4_sp_clk>; |
| 843 | resets = <&rst UART1_RESET>; | ||
| 828 | status = "disabled"; | 844 | status = "disabled"; |
| 829 | }; | 845 | }; |
| 830 | 846 | ||
| @@ -865,6 +881,7 @@ | |||
| 865 | reg = <0xffd00200 0x100>; | 881 | reg = <0xffd00200 0x100>; |
| 866 | interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>; | 882 | interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>; |
| 867 | clocks = <&l4_sys_free_clk>; | 883 | clocks = <&l4_sys_free_clk>; |
| 884 | resets = <&rst L4WD0_RESET>; | ||
| 868 | status = "disabled"; | 885 | status = "disabled"; |
| 869 | }; | 886 | }; |
| 870 | 887 | ||
| @@ -873,6 +890,7 @@ | |||
| 873 | reg = <0xffd00300 0x100>; | 890 | reg = <0xffd00300 0x100>; |
| 874 | interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>; | 891 | interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>; |
| 875 | clocks = <&l4_sys_free_clk>; | 892 | clocks = <&l4_sys_free_clk>; |
| 893 | resets = <&rst L4WD1_RESET>; | ||
| 876 | status = "disabled"; | 894 | status = "disabled"; |
| 877 | }; | 895 | }; |
| 878 | }; | 896 | }; |
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_chameleon96.dts b/arch/arm/boot/dts/socfpga_cyclone5_chameleon96.dts new file mode 100644 index 000000000000..f6561766d83f --- /dev/null +++ b/arch/arm/boot/dts/socfpga_cyclone5_chameleon96.dts | |||
| @@ -0,0 +1,130 @@ | |||
| 1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
| 2 | /* | ||
| 3 | * Device Tree file for the Chameleon96 | ||
| 4 | * | ||
| 5 | * Copyright (c) 2018 Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> | ||
| 6 | */ | ||
| 7 | |||
| 8 | #include <dt-bindings/gpio/gpio.h> | ||
| 9 | |||
| 10 | #include "socfpga_cyclone5.dtsi" | ||
| 11 | |||
| 12 | / { | ||
| 13 | model = "Novetech Chameleon96"; | ||
| 14 | compatible = "novtech,chameleon96", "altr,socfpga-cyclone5", "altr,socfpga"; | ||
| 15 | |||
| 16 | chosen { | ||
| 17 | bootargs = "earlyprintk"; | ||
| 18 | stdout-path = "serial0:115200n8"; | ||
| 19 | }; | ||
| 20 | |||
| 21 | memory@0 { | ||
| 22 | name = "memory"; | ||
| 23 | device_type = "memory"; | ||
| 24 | reg = <0x0 0x20000000>; /* 512MB */ | ||
| 25 | }; | ||
| 26 | |||
| 27 | regulator_3_3v: 3-3-v-regulator { | ||
| 28 | compatible = "regulator-fixed"; | ||
| 29 | regulator-name = "3.3V"; | ||
| 30 | regulator-min-microvolt = <3300000>; | ||
| 31 | regulator-max-microvolt = <3300000>; | ||
| 32 | }; | ||
| 33 | |||
| 34 | leds { | ||
| 35 | compatible = "gpio-leds"; | ||
| 36 | |||
| 37 | user_led1 { | ||
| 38 | label = "green:user1"; | ||
| 39 | gpios = <&porta 14 GPIO_ACTIVE_LOW>; | ||
| 40 | linux,default-trigger = "heartbeat"; | ||
| 41 | }; | ||
| 42 | |||
| 43 | user_led2 { | ||
| 44 | label = "green:user2"; | ||
| 45 | gpios = <&porta 22 GPIO_ACTIVE_LOW>; | ||
| 46 | linux,default-trigger = "mmc0"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | user_led3 { | ||
| 50 | label = "green:user3"; | ||
| 51 | gpios = <&porta 25 GPIO_ACTIVE_LOW>; | ||
| 52 | linux,default-trigger = "none"; | ||
| 53 | }; | ||
| 54 | |||
| 55 | user_led4 { | ||
| 56 | label = "green:user4"; | ||
| 57 | gpios = <&portb 3 GPIO_ACTIVE_LOW>; | ||
| 58 | panic-indicator; | ||
| 59 | linux,default-trigger = "none"; | ||
| 60 | }; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | |||
| 64 | &gpio0 { | ||
| 65 | status = "okay"; | ||
| 66 | }; | ||
| 67 | |||
| 68 | &gpio1 { | ||
| 69 | status = "okay"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | &i2c0 { | ||
| 73 | /* On Low speed expansion */ | ||
| 74 | label = "LS-I2C0"; | ||
| 75 | status = "okay"; | ||
| 76 | }; | ||
| 77 | |||
| 78 | &i2c1 { | ||
| 79 | /* On Low speed expansion */ | ||
| 80 | label = "LS-I2C1"; | ||
| 81 | status = "okay"; | ||
| 82 | }; | ||
| 83 | |||
| 84 | &i2c2 { | ||
| 85 | status = "okay"; | ||
| 86 | }; | ||
| 87 | |||
| 88 | &i2c3 { | ||
| 89 | /* On High speed expansion */ | ||
| 90 | label = "HS-I2C2"; | ||
| 91 | status = "okay"; | ||
| 92 | }; | ||
| 93 | |||
| 94 | &mmc0 { | ||
| 95 | vmmc-supply = <®ulator_3_3v>; | ||
| 96 | vqmmc-supply = <®ulator_3_3v>; | ||
| 97 | status = "okay"; | ||
| 98 | }; | ||
| 99 | |||
| 100 | &spi0 { | ||
| 101 | /* On High speed expansion */ | ||
| 102 | label = "HS-SPI1"; | ||
| 103 | status = "okay"; | ||
| 104 | }; | ||
| 105 | |||
| 106 | &spi1 { | ||
| 107 | /* On Low speed expansion */ | ||
| 108 | label = "LS-SPI0"; | ||
| 109 | status = "okay"; | ||
| 110 | }; | ||
| 111 | |||
| 112 | &uart0 { | ||
| 113 | /* On Low speed expansion */ | ||
| 114 | label = "LS-UART1"; | ||
| 115 | status = "okay"; | ||
| 116 | }; | ||
| 117 | |||
| 118 | &uart1 { | ||
| 119 | /* On Low speed expansion */ | ||
| 120 | label = "LS-UART0"; | ||
| 121 | status = "okay"; | ||
| 122 | }; | ||
| 123 | |||
| 124 | &usbphy0 { | ||
| 125 | status = "okay"; | ||
| 126 | }; | ||
| 127 | |||
| 128 | &usb1 { | ||
| 129 | status = "okay"; | ||
| 130 | }; | ||
diff --git a/arch/arm/boot/dts/spear13xx.dtsi b/arch/arm/boot/dts/spear13xx.dtsi index 086b4b333249..390df643a174 100644 --- a/arch/arm/boot/dts/spear13xx.dtsi +++ b/arch/arm/boot/dts/spear13xx.dtsi | |||
| @@ -11,9 +11,9 @@ | |||
| 11 | * http://www.gnu.org/copyleft/gpl.html | 11 | * http://www.gnu.org/copyleft/gpl.html |
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | /include/ "skeleton.dtsi" | ||
| 15 | |||
| 16 | / { | 14 | / { |
| 15 | #address-cells = <1>; | ||
| 16 | #size-cells = <1>; | ||
| 17 | interrupt-parent = <&gic>; | 17 | interrupt-parent = <&gic>; |
| 18 | 18 | ||
| 19 | cpus { | 19 | cpus { |
diff --git a/arch/arm/boot/dts/spear3xx.dtsi b/arch/arm/boot/dts/spear3xx.dtsi index 118135d75899..c47380763cae 100644 --- a/arch/arm/boot/dts/spear3xx.dtsi +++ b/arch/arm/boot/dts/spear3xx.dtsi | |||
| @@ -11,9 +11,9 @@ | |||
| 11 | * http://www.gnu.org/copyleft/gpl.html | 11 | * http://www.gnu.org/copyleft/gpl.html |
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | /include/ "skeleton.dtsi" | ||
| 15 | |||
| 16 | / { | 14 | / { |
| 15 | #address-cells = <1>; | ||
| 16 | #size-cells = <1>; | ||
| 17 | interrupt-parent = <&vic>; | 17 | interrupt-parent = <&vic>; |
| 18 | 18 | ||
| 19 | cpus { | 19 | cpus { |
diff --git a/arch/arm/boot/dts/spear600.dtsi b/arch/arm/boot/dts/spear600.dtsi index 00166eb9be86..0a634fb07452 100644 --- a/arch/arm/boot/dts/spear600.dtsi +++ b/arch/arm/boot/dts/spear600.dtsi | |||
| @@ -9,9 +9,9 @@ | |||
| 9 | * http://www.gnu.org/copyleft/gpl.html | 9 | * http://www.gnu.org/copyleft/gpl.html |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | /include/ "skeleton.dtsi" | ||
| 13 | |||
| 14 | / { | 12 | / { |
| 13 | #address-cells = <1>; | ||
| 14 | #size-cells = <1>; | ||
| 15 | compatible = "st,spear600"; | 15 | compatible = "st,spear600"; |
| 16 | 16 | ||
| 17 | cpus { | 17 | cpus { |
diff --git a/arch/arm/boot/dts/ste-nomadik-nhk15.dts b/arch/arm/boot/dts/ste-nomadik-nhk15.dts index 12afdc7467e7..04066f9cb8a3 100644 --- a/arch/arm/boot/dts/ste-nomadik-nhk15.dts +++ b/arch/arm/boot/dts/ste-nomadik-nhk15.dts | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /* | 2 | /* |
| 3 | * Device Tree for the ST-Ericsson Nomadik S8815 board | 3 | * Device Tree for the ST Microelectronics Nomadik NHK8815 board |
| 4 | * Produced by Calao Systems | ||
| 5 | */ | 4 | */ |
| 6 | 5 | ||
| 7 | /dts-v1/; | 6 | /dts-v1/; |
| @@ -182,43 +181,12 @@ | |||
| 182 | pinctrl-names = "default"; | 181 | pinctrl-names = "default"; |
| 183 | pinctrl-0 = <&clcd_24bit_mux>; | 182 | pinctrl-0 = <&clcd_24bit_mux>; |
| 184 | port { | 183 | port { |
| 185 | nomadik_clcd_pads: endpoint { | 184 | nomadik_clcd: endpoint { |
| 186 | remote-endpoint = <&nomadik_clcd_panel>; | 185 | remote-endpoint = <&nomadik_clcd_panel>; |
| 187 | arm,pl11x,tft-r0g0b0-pads = <16 8 0>; | 186 | arm,pl11x,tft-r0g0b0-pads = <16 8 0>; |
| 188 | }; | 187 | }; |
| 189 | }; | 188 | }; |
| 190 | 189 | ||
| 191 | /* | ||
| 192 | * WVGA connector 21 | ||
| 193 | * WVGA (800x480): 4.3" TPG110 TDO43MTEA2 24-bit RGB | ||
| 194 | * with TPO touch screen. | ||
| 195 | */ | ||
| 196 | panel { | ||
| 197 | compatible = "tpo,tpg110", "panel-dpi"; | ||
| 198 | grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>; | ||
| 199 | scen-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; | ||
| 200 | scl-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; | ||
| 201 | sda-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>; | ||
| 202 | backlight = <&bl>; | ||
| 203 | |||
| 204 | port { | ||
| 205 | nomadik_clcd_panel: endpoint { | ||
| 206 | remote-endpoint = <&nomadik_clcd_pads>; | ||
| 207 | }; | ||
| 208 | }; | ||
| 209 | |||
| 210 | panel-timing { | ||
| 211 | clock-frequency = <33200000>; | ||
| 212 | hactive = <800>; | ||
| 213 | hback-porch = <216>; | ||
| 214 | hfront-porch = <40>; | ||
| 215 | hsync-len = <1>; | ||
| 216 | vactive = <480>; | ||
| 217 | vback-porch = <35>; | ||
| 218 | vfront-porch = <10>; | ||
| 219 | vsync-len = <1>; | ||
| 220 | }; | ||
| 221 | }; | ||
| 222 | }; | 190 | }; |
| 223 | 191 | ||
| 224 | /* Activate RX/TX and CTS/RTS on UART 0 */ | 192 | /* Activate RX/TX and CTS/RTS on UART 0 */ |
| @@ -233,6 +201,55 @@ | |||
| 233 | }; | 201 | }; |
| 234 | }; | 202 | }; |
| 235 | 203 | ||
| 204 | spi { | ||
| 205 | compatible = "spi-gpio"; | ||
| 206 | #address-cells = <1>; | ||
| 207 | #size-cells = <0>; | ||
| 208 | |||
| 209 | /* | ||
| 210 | * As we're dealing with 3wire SPI, we only define SCK | ||
| 211 | * and MOSI (in the spec MOSI is called "SDA"). | ||
| 212 | */ | ||
| 213 | gpio-sck = <&gpio0 5 GPIO_ACTIVE_HIGH>; | ||
| 214 | gpio-mosi = <&gpio0 4 GPIO_ACTIVE_HIGH>; | ||
| 215 | /* | ||
| 216 | * It's not actually active high, but the frameworks assume | ||
| 217 | * the polarity of the passed-in GPIO is "normal" (active | ||
| 218 | * high) then actively drives the line low to select the | ||
| 219 | * chip. | ||
| 220 | */ | ||
| 221 | cs-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; | ||
| 222 | num-chipselects = <1>; | ||
| 223 | |||
| 224 | /* | ||
| 225 | * WVGA connector 21 | ||
| 226 | * WVGA (800x480): 4.3" TPG110 TDO43MTEA2 24-bit RGB | ||
| 227 | * with TPO touch screen. | ||
| 228 | */ | ||
| 229 | panel: display@0 { | ||
| 230 | /* | ||
| 231 | * The TPO display driver is connected to a | ||
| 232 | * 5.7" OSD OSD057VA01CT TFT display. | ||
| 233 | */ | ||
| 234 | compatible = "tpo,tpg110"; | ||
| 235 | reg = <0>; | ||
| 236 | spi-3wire; | ||
| 237 | /* 320 ns min period ~= 3 MHz */ | ||
| 238 | spi-max-frequency = <3000000>; | ||
| 239 | /* Width and height from the OSD data sheet */ | ||
| 240 | width-mm = <116>; | ||
| 241 | height-mm = <87>; | ||
| 242 | grestb-gpios = <&stmpe_gpio44 5 GPIO_ACTIVE_LOW>; | ||
| 243 | backlight = <&bl>; | ||
| 244 | |||
| 245 | port { | ||
| 246 | nomadik_clcd_panel: endpoint { | ||
| 247 | remote-endpoint = <&nomadik_clcd>; | ||
| 248 | }; | ||
| 249 | }; | ||
| 250 | }; | ||
| 251 | }; | ||
| 252 | |||
| 236 | bl: backlight { | 253 | bl: backlight { |
| 237 | compatible = "pwm-backlight"; | 254 | compatible = "pwm-backlight"; |
| 238 | pwms = <&stmpe0_pwm 0 500000>; | 255 | pwms = <&stmpe0_pwm 0 500000>; |
diff --git a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi index fca76a696d9d..f78b4eabd68c 100644 --- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi +++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | |||
| @@ -4,13 +4,13 @@ | |||
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | #include <dt-bindings/gpio/gpio.h> | 6 | #include <dt-bindings/gpio/gpio.h> |
| 7 | #include "skeleton.dtsi" | ||
| 8 | 7 | ||
| 9 | / { | 8 | / { |
| 10 | #address-cells = <1>; | 9 | #address-cells = <1>; |
| 11 | #size-cells = <1>; | 10 | #size-cells = <1>; |
| 12 | 11 | ||
| 13 | memory { | 12 | memory { |
| 13 | device_type = "memory"; | ||
| 14 | reg = <0x00000000 0x04000000>, | 14 | reg = <0x00000000 0x04000000>, |
| 15 | <0x08000000 0x04000000>; | 15 | <0x08000000 0x04000000>; |
| 16 | }; | 16 | }; |
diff --git a/arch/arm/boot/dts/ste-u300.dts b/arch/arm/boot/dts/ste-u300.dts index 1bd1aba3322f..f4e7660fead7 100644 --- a/arch/arm/boot/dts/ste-u300.dts +++ b/arch/arm/boot/dts/ste-u300.dts | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | /dts-v1/; | 6 | /dts-v1/; |
| 7 | /include/ "skeleton.dtsi" | ||
| 8 | 7 | ||
| 9 | / { | 8 | / { |
| 10 | model = "ST-Ericsson U300"; | 9 | model = "ST-Ericsson U300"; |
| @@ -22,6 +21,7 @@ | |||
| 22 | }; | 21 | }; |
| 23 | 22 | ||
| 24 | memory { | 23 | memory { |
| 24 | device_type = "memory"; | ||
| 25 | reg = <0x48000000 0x03c00000>; | 25 | reg = <0x48000000 0x03c00000>; |
| 26 | }; | 26 | }; |
| 27 | 27 | ||
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts index ed7d7f46465e..73ea84df7bf4 100644 --- a/arch/arm/boot/dts/stm32429i-eval.dts +++ b/arch/arm/boot/dts/stm32429i-eval.dts | |||
| @@ -61,6 +61,7 @@ | |||
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | memory { | 63 | memory { |
| 64 | device_type = "memory"; | ||
| 64 | reg = <0x00000000 0x2000000>; | 65 | reg = <0x00000000 0x2000000>; |
| 65 | }; | 66 | }; |
| 66 | 67 | ||
diff --git a/arch/arm/boot/dts/stm32746g-eval.dts b/arch/arm/boot/dts/stm32746g-eval.dts index 8c081eaf20fe..d90b0d1e18c7 100644 --- a/arch/arm/boot/dts/stm32746g-eval.dts +++ b/arch/arm/boot/dts/stm32746g-eval.dts | |||
| @@ -55,6 +55,7 @@ | |||
| 55 | }; | 55 | }; |
| 56 | 56 | ||
| 57 | memory { | 57 | memory { |
| 58 | device_type = "memory"; | ||
| 58 | reg = <0xc0000000 0x2000000>; | 59 | reg = <0xc0000000 0x2000000>; |
| 59 | }; | 60 | }; |
| 60 | 61 | ||
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts index 5ceb2cf3777f..e19d0fe7dbda 100644 --- a/arch/arm/boot/dts/stm32f429-disco.dts +++ b/arch/arm/boot/dts/stm32f429-disco.dts | |||
| @@ -60,6 +60,7 @@ | |||
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | memory { | 62 | memory { |
| 63 | device_type = "memory"; | ||
| 63 | reg = <0x90000000 0x800000>; | 64 | reg = <0x90000000 0x800000>; |
| 64 | }; | 65 | }; |
| 65 | 66 | ||
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi index 8d6f028ae285..588b6ef94e93 100644 --- a/arch/arm/boot/dts/stm32f429.dtsi +++ b/arch/arm/boot/dts/stm32f429.dtsi | |||
| @@ -45,12 +45,14 @@ | |||
| 45 | * OTHER DEALINGS IN THE SOFTWARE. | 45 | * OTHER DEALINGS IN THE SOFTWARE. |
| 46 | */ | 46 | */ |
| 47 | 47 | ||
| 48 | #include "skeleton.dtsi" | ||
| 49 | #include "armv7-m.dtsi" | 48 | #include "armv7-m.dtsi" |
| 50 | #include <dt-bindings/clock/stm32fx-clock.h> | 49 | #include <dt-bindings/clock/stm32fx-clock.h> |
| 51 | #include <dt-bindings/mfd/stm32f4-rcc.h> | 50 | #include <dt-bindings/mfd/stm32f4-rcc.h> |
| 52 | 51 | ||
| 53 | / { | 52 | / { |
| 53 | #address-cells = <1>; | ||
| 54 | #size-cells = <1>; | ||
| 55 | |||
| 54 | clocks { | 56 | clocks { |
| 55 | clk_hse: clk-hse { | 57 | clk_hse: clk-hse { |
| 56 | #clock-cells = <0>; | 58 | #clock-cells = <0>; |
| @@ -314,6 +316,26 @@ | |||
| 314 | status = "disabled"; | 316 | status = "disabled"; |
| 315 | }; | 317 | }; |
| 316 | 318 | ||
| 319 | spi2: spi@40003800 { | ||
| 320 | #address-cells = <1>; | ||
| 321 | #size-cells = <0>; | ||
| 322 | compatible = "st,stm32f4-spi"; | ||
| 323 | reg = <0x40003800 0x400>; | ||
| 324 | interrupts = <36>; | ||
| 325 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI2)>; | ||
| 326 | status = "disabled"; | ||
| 327 | }; | ||
| 328 | |||
| 329 | spi3: spi@40003c00 { | ||
| 330 | #address-cells = <1>; | ||
| 331 | #size-cells = <0>; | ||
| 332 | compatible = "st,stm32f4-spi"; | ||
| 333 | reg = <0x40003c00 0x400>; | ||
| 334 | interrupts = <51>; | ||
| 335 | clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI3)>; | ||
| 336 | status = "disabled"; | ||
| 337 | }; | ||
| 338 | |||
| 317 | usart2: serial@40004400 { | 339 | usart2: serial@40004400 { |
| 318 | compatible = "st,stm32-uart"; | 340 | compatible = "st,stm32-uart"; |
| 319 | reg = <0x40004400 0x400>; | 341 | reg = <0x40004400 0x400>; |
| @@ -523,6 +545,26 @@ | |||
| 523 | status = "disabled"; | 545 | status = "disabled"; |
| 524 | }; | 546 | }; |
| 525 | 547 | ||
| 548 | spi1: spi@40013000 { | ||
| 549 | #address-cells = <1>; | ||
| 550 | #size-cells = <0>; | ||
| 551 | compatible = "st,stm32f4-spi"; | ||
| 552 | reg = <0x40013000 0x400>; | ||
| 553 | interrupts = <35>; | ||
| 554 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI1)>; | ||
| 555 | status = "disabled"; | ||
| 556 | }; | ||
| 557 | |||
| 558 | spi4: spi@40013400 { | ||
| 559 | #address-cells = <1>; | ||
| 560 | #size-cells = <0>; | ||
| 561 | compatible = "st,stm32f4-spi"; | ||
| 562 | reg = <0x40013400 0x400>; | ||
| 563 | interrupts = <84>; | ||
| 564 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI4)>; | ||
| 565 | status = "disabled"; | ||
| 566 | }; | ||
| 567 | |||
| 526 | syscfg: system-config@40013800 { | 568 | syscfg: system-config@40013800 { |
| 527 | compatible = "syscon"; | 569 | compatible = "syscon"; |
| 528 | reg = <0x40013800 0x400>; | 570 | reg = <0x40013800 0x400>; |
| @@ -587,6 +629,26 @@ | |||
| 587 | }; | 629 | }; |
| 588 | }; | 630 | }; |
| 589 | 631 | ||
| 632 | spi5: spi@40015000 { | ||
| 633 | #address-cells = <1>; | ||
| 634 | #size-cells = <0>; | ||
| 635 | compatible = "st,stm32f4-spi"; | ||
| 636 | reg = <0x40015000 0x400>; | ||
| 637 | interrupts = <85>; | ||
| 638 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>; | ||
| 639 | status = "disabled"; | ||
| 640 | }; | ||
| 641 | |||
| 642 | spi6: spi@40015400 { | ||
| 643 | #address-cells = <1>; | ||
| 644 | #size-cells = <0>; | ||
| 645 | compatible = "st,stm32f4-spi"; | ||
| 646 | reg = <0x40015400 0x400>; | ||
| 647 | interrupts = <86>; | ||
| 648 | clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI6)>; | ||
| 649 | status = "disabled"; | ||
| 650 | }; | ||
| 651 | |||
| 590 | pwrcfg: power-config@40007000 { | 652 | pwrcfg: power-config@40007000 { |
| 591 | compatible = "syscon"; | 653 | compatible = "syscon"; |
| 592 | reg = <0x40007000 0x400>; | 654 | reg = <0x40007000 0x400>; |
diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts index 7937b43d7788..a3ff04940aec 100644 --- a/arch/arm/boot/dts/stm32f469-disco.dts +++ b/arch/arm/boot/dts/stm32f469-disco.dts | |||
| @@ -61,6 +61,7 @@ | |||
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | memory { | 63 | memory { |
| 64 | device_type = "memory"; | ||
| 64 | reg = <0x00000000 0x1000000>; | 65 | reg = <0x00000000 0x1000000>; |
| 65 | }; | 66 | }; |
| 66 | 67 | ||
diff --git a/arch/arm/boot/dts/stm32f746-disco.dts b/arch/arm/boot/dts/stm32f746-disco.dts index e3a7bd338d61..0ba9c5b08ab9 100644 --- a/arch/arm/boot/dts/stm32f746-disco.dts +++ b/arch/arm/boot/dts/stm32f746-disco.dts | |||
| @@ -56,6 +56,7 @@ | |||
| 56 | }; | 56 | }; |
| 57 | 57 | ||
| 58 | memory { | 58 | memory { |
| 59 | device_type = "memory"; | ||
| 59 | reg = <0xC0000000 0x800000>; | 60 | reg = <0xC0000000 0x800000>; |
| 60 | }; | 61 | }; |
| 61 | 62 | ||
diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi index f48d06a80d1d..a25b7000a3a1 100644 --- a/arch/arm/boot/dts/stm32f746.dtsi +++ b/arch/arm/boot/dts/stm32f746.dtsi | |||
| @@ -40,12 +40,14 @@ | |||
| 40 | * OTHER DEALINGS IN THE SOFTWARE. | 40 | * OTHER DEALINGS IN THE SOFTWARE. |
| 41 | */ | 41 | */ |
| 42 | 42 | ||
| 43 | #include "skeleton.dtsi" | ||
| 44 | #include "armv7-m.dtsi" | 43 | #include "armv7-m.dtsi" |
| 45 | #include <dt-bindings/clock/stm32fx-clock.h> | 44 | #include <dt-bindings/clock/stm32fx-clock.h> |
| 46 | #include <dt-bindings/mfd/stm32f7-rcc.h> | 45 | #include <dt-bindings/mfd/stm32f7-rcc.h> |
| 47 | 46 | ||
| 48 | / { | 47 | / { |
| 48 | #address-cells = <1>; | ||
| 49 | #size-cells = <1>; | ||
| 50 | |||
| 49 | clocks { | 51 | clocks { |
| 50 | clk_hse: clk-hse { | 52 | clk_hse: clk-hse { |
| 51 | #clock-cells = <0>; | 53 | #clock-cells = <0>; |
diff --git a/arch/arm/boot/dts/stm32f769-disco.dts b/arch/arm/boot/dts/stm32f769-disco.dts index 483d896e2bc1..3c7216844a9b 100644 --- a/arch/arm/boot/dts/stm32f769-disco.dts +++ b/arch/arm/boot/dts/stm32f769-disco.dts | |||
| @@ -56,6 +56,7 @@ | |||
| 56 | }; | 56 | }; |
| 57 | 57 | ||
| 58 | memory { | 58 | memory { |
| 59 | device_type = "memory"; | ||
| 59 | reg = <0xC0000000 0x1000000>; | 60 | reg = <0xC0000000 0x1000000>; |
| 60 | }; | 61 | }; |
| 61 | 62 | ||
diff --git a/arch/arm/boot/dts/stm32h743-pinctrl.dtsi b/arch/arm/boot/dts/stm32h743-pinctrl.dtsi index 24be8e63dec8..980b2769caf9 100644 --- a/arch/arm/boot/dts/stm32h743-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32h743-pinctrl.dtsi | |||
| @@ -173,6 +173,21 @@ | |||
| 173 | }; | 173 | }; |
| 174 | }; | 174 | }; |
| 175 | 175 | ||
| 176 | ethernet_rmii: rmii@0 { | ||
| 177 | pins { | ||
| 178 | pinmux = <STM32_PINMUX('G', 11, AF11)>, | ||
| 179 | <STM32_PINMUX('G', 13, AF11)>, | ||
| 180 | <STM32_PINMUX('G', 12, AF11)>, | ||
| 181 | <STM32_PINMUX('C', 4, AF11)>, | ||
| 182 | <STM32_PINMUX('C', 5, AF11)>, | ||
| 183 | <STM32_PINMUX('A', 7, AF11)>, | ||
| 184 | <STM32_PINMUX('C', 1, AF11)>, | ||
| 185 | <STM32_PINMUX('A', 2, AF11)>, | ||
| 186 | <STM32_PINMUX('A', 1, AF11)>; | ||
| 187 | slew-rate = <2>; | ||
| 188 | }; | ||
| 189 | }; | ||
| 190 | |||
| 176 | usart1_pins: usart1@0 { | 191 | usart1_pins: usart1@0 { |
| 177 | pins1 { | 192 | pins1 { |
| 178 | pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */ | 193 | pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */ |
diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi index cbdd69ca9e7a..5cac79ebebb1 100644 --- a/arch/arm/boot/dts/stm32h743.dtsi +++ b/arch/arm/boot/dts/stm32h743.dtsi | |||
| @@ -40,13 +40,15 @@ | |||
| 40 | * OTHER DEALINGS IN THE SOFTWARE. | 40 | * OTHER DEALINGS IN THE SOFTWARE. |
| 41 | */ | 41 | */ |
| 42 | 42 | ||
| 43 | #include "skeleton.dtsi" | ||
| 44 | #include "armv7-m.dtsi" | 43 | #include "armv7-m.dtsi" |
| 45 | #include <dt-bindings/clock/stm32h7-clks.h> | 44 | #include <dt-bindings/clock/stm32h7-clks.h> |
| 46 | #include <dt-bindings/mfd/stm32h7-rcc.h> | 45 | #include <dt-bindings/mfd/stm32h7-rcc.h> |
| 47 | #include <dt-bindings/interrupt-controller/irq.h> | 46 | #include <dt-bindings/interrupt-controller/irq.h> |
| 48 | 47 | ||
| 49 | / { | 48 | / { |
| 49 | #address-cells = <1>; | ||
| 50 | #size-cells = <1>; | ||
| 51 | |||
| 50 | clocks { | 52 | clocks { |
| 51 | clk_hse: clk-hse { | 53 | clk_hse: clk-hse { |
| 52 | #clock-cells = <0>; | 54 | #clock-cells = <0>; |
| @@ -511,6 +513,19 @@ | |||
| 511 | status = "disabled"; | 513 | status = "disabled"; |
| 512 | }; | 514 | }; |
| 513 | }; | 515 | }; |
| 516 | |||
| 517 | mac: ethernet@40028000 { | ||
| 518 | compatible = "st,stm32-dwmac", "snps,dwmac-4.10a"; | ||
| 519 | reg = <0x40028000 0x8000>; | ||
| 520 | reg-names = "stmmaceth"; | ||
| 521 | interrupts = <61>; | ||
| 522 | interrupt-names = "macirq"; | ||
| 523 | clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx"; | ||
| 524 | clocks = <&rcc ETH1MAC_CK>, <&rcc ETH1TX_CK>, <&rcc ETH1RX_CK>; | ||
| 525 | st,syscon = <&syscfg 0x4>; | ||
| 526 | snps,pbl = <8>; | ||
| 527 | status = "disabled"; | ||
| 528 | }; | ||
| 514 | }; | 529 | }; |
| 515 | }; | 530 | }; |
| 516 | 531 | ||
diff --git a/arch/arm/boot/dts/stm32h743i-disco.dts b/arch/arm/boot/dts/stm32h743i-disco.dts index 45e088c55741..dd06c8f3d09a 100644 --- a/arch/arm/boot/dts/stm32h743i-disco.dts +++ b/arch/arm/boot/dts/stm32h743i-disco.dts | |||
| @@ -54,6 +54,7 @@ | |||
| 54 | }; | 54 | }; |
| 55 | 55 | ||
| 56 | memory { | 56 | memory { |
| 57 | device_type = "memory"; | ||
| 57 | reg = <0xd0000000 0x2000000>; | 58 | reg = <0xd0000000 0x2000000>; |
| 58 | }; | 59 | }; |
| 59 | 60 | ||
| @@ -66,6 +67,23 @@ | |||
| 66 | clock-frequency = <25000000>; | 67 | clock-frequency = <25000000>; |
| 67 | }; | 68 | }; |
| 68 | 69 | ||
| 70 | &mac { | ||
| 71 | status = "disabled"; | ||
| 72 | pinctrl-0 = <ðernet_rmii>; | ||
| 73 | pinctrl-names = "default"; | ||
| 74 | phy-mode = "rmii"; | ||
| 75 | phy-handle = <&phy0>; | ||
| 76 | |||
| 77 | mdio0 { | ||
| 78 | #address-cells = <1>; | ||
| 79 | #size-cells = <0>; | ||
| 80 | compatible = "snps,dwmac-mdio"; | ||
| 81 | phy0: ethernet-phy@0 { | ||
| 82 | reg = <0>; | ||
| 83 | }; | ||
| 84 | }; | ||
| 85 | }; | ||
| 86 | |||
| 69 | &usart2 { | 87 | &usart2 { |
| 70 | pinctrl-0 = <&usart2_pins>; | 88 | pinctrl-0 = <&usart2_pins>; |
| 71 | pinctrl-names = "default"; | 89 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/stm32h743i-eval.dts b/arch/arm/boot/dts/stm32h743i-eval.dts index 3f8e0c4a998d..ebc3f0933f5c 100644 --- a/arch/arm/boot/dts/stm32h743i-eval.dts +++ b/arch/arm/boot/dts/stm32h743i-eval.dts | |||
| @@ -54,6 +54,7 @@ | |||
| 54 | }; | 54 | }; |
| 55 | 55 | ||
| 56 | memory { | 56 | memory { |
| 57 | device_type = "memory"; | ||
| 57 | reg = <0xd0000000 0x2000000>; | 58 | reg = <0xd0000000 0x2000000>; |
| 58 | }; | 59 | }; |
| 59 | 60 | ||
| @@ -104,6 +105,23 @@ | |||
| 104 | status = "okay"; | 105 | status = "okay"; |
| 105 | }; | 106 | }; |
| 106 | 107 | ||
| 108 | &mac { | ||
| 109 | status = "disabled"; | ||
| 110 | pinctrl-0 = <ðernet_rmii>; | ||
| 111 | pinctrl-names = "default"; | ||
| 112 | phy-mode = "rmii"; | ||
| 113 | phy-handle = <&phy0>; | ||
| 114 | |||
| 115 | mdio0 { | ||
| 116 | #address-cells = <1>; | ||
| 117 | #size-cells = <0>; | ||
| 118 | compatible = "snps,dwmac-mdio"; | ||
| 119 | phy0: ethernet-phy@0 { | ||
| 120 | reg = <0>; | ||
| 121 | }; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | |||
| 107 | &usart1 { | 125 | &usart1 { |
| 108 | pinctrl-0 = <&usart1_pins>; | 126 | pinctrl-0 = <&usart1_pins>; |
| 109 | pinctrl-names = "default"; | 127 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi index c4851271e810..9ec4694e93a7 100644 --- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi | |||
| @@ -246,6 +246,13 @@ | |||
| 246 | }; | 246 | }; |
| 247 | }; | 247 | }; |
| 248 | 248 | ||
| 249 | m_can1_sleep_pins_a: m_can1-sleep@0 { | ||
| 250 | pins { | ||
| 251 | pinmux = <STM32_PINMUX('H', 13, ANALOG)>, /* CAN1_TX */ | ||
| 252 | <STM32_PINMUX('I', 9, ANALOG)>; /* CAN1_RX */ | ||
| 253 | }; | ||
| 254 | }; | ||
| 255 | |||
| 249 | pwm2_pins_a: pwm2-0 { | 256 | pwm2_pins_a: pwm2-0 { |
| 250 | pins { | 257 | pins { |
| 251 | pinmux = <STM32_PINMUX('A', 3, AF1)>; /* TIM2_CH4 */ | 258 | pinmux = <STM32_PINMUX('A', 3, AF1)>; /* TIM2_CH4 */ |
diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts b/arch/arm/boot/dts/stm32mp157c-ed1.dts index f77bea49c079..d66edb0c66cd 100644 --- a/arch/arm/boot/dts/stm32mp157c-ed1.dts +++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | memory@c0000000 { | 19 | memory@c0000000 { |
| 20 | device_type = "memory"; | ||
| 20 | reg = <0xC0000000 0x40000000>; | 21 | reg = <0xC0000000 0x40000000>; |
| 21 | }; | 22 | }; |
| 22 | 23 | ||
| @@ -49,6 +50,10 @@ | |||
| 49 | }; | 50 | }; |
| 50 | }; | 51 | }; |
| 51 | 52 | ||
| 53 | &dts { | ||
| 54 | status = "okay"; | ||
| 55 | }; | ||
| 56 | |||
| 52 | &i2c4 { | 57 | &i2c4 { |
| 53 | pinctrl-names = "default"; | 58 | pinctrl-names = "default"; |
| 54 | pinctrl-0 = <&i2c4_pins_a>; | 59 | pinctrl-0 = <&i2c4_pins_a>; |
| @@ -72,6 +77,9 @@ | |||
| 72 | 77 | ||
| 73 | &timers6 { | 78 | &timers6 { |
| 74 | status = "okay"; | 79 | status = "okay"; |
| 80 | /* spare dmas for other usage */ | ||
| 81 | /delete-property/dmas; | ||
| 82 | /delete-property/dma-names; | ||
| 75 | timer@5 { | 83 | timer@5 { |
| 76 | status = "okay"; | 84 | status = "okay"; |
| 77 | }; | 85 | }; |
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts index 063ee8ac5dcb..b6aca40b9b90 100644 --- a/arch/arm/boot/dts/stm32mp157c-ev1.dts +++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts | |||
| @@ -124,8 +124,9 @@ | |||
| 124 | }; | 124 | }; |
| 125 | 125 | ||
| 126 | &m_can1 { | 126 | &m_can1 { |
| 127 | pinctrl-names = "default"; | 127 | pinctrl-names = "default", "sleep"; |
| 128 | pinctrl-0 = <&m_can1_pins_a>; | 128 | pinctrl-0 = <&m_can1_pins_a>; |
| 129 | pinctrl-1 = <&m_can1_sleep_pins_a>; | ||
| 129 | status = "okay"; | 130 | status = "okay"; |
| 130 | }; | 131 | }; |
| 131 | 132 | ||
| @@ -161,6 +162,9 @@ | |||
| 161 | }; | 162 | }; |
| 162 | 163 | ||
| 163 | &timers2 { | 164 | &timers2 { |
| 165 | /* spare dmas for other usage (un-delete to enable pwm capture) */ | ||
| 166 | /delete-property/dmas; | ||
| 167 | /delete-property/dma-names; | ||
| 164 | status = "disabled"; | 168 | status = "disabled"; |
| 165 | pwm { | 169 | pwm { |
| 166 | pinctrl-0 = <&pwm2_pins_a>; | 170 | pinctrl-0 = <&pwm2_pins_a>; |
| @@ -173,6 +177,8 @@ | |||
| 173 | }; | 177 | }; |
| 174 | 178 | ||
| 175 | &timers8 { | 179 | &timers8 { |
| 180 | /delete-property/dmas; | ||
| 181 | /delete-property/dma-names; | ||
| 176 | status = "disabled"; | 182 | status = "disabled"; |
| 177 | pwm { | 183 | pwm { |
| 178 | pinctrl-0 = <&pwm8_pins_a>; | 184 | pinctrl-0 = <&pwm8_pins_a>; |
| @@ -185,6 +191,8 @@ | |||
| 185 | }; | 191 | }; |
| 186 | 192 | ||
| 187 | &timers12 { | 193 | &timers12 { |
| 194 | /delete-property/dmas; | ||
| 195 | /delete-property/dma-names; | ||
| 188 | status = "disabled"; | 196 | status = "disabled"; |
| 189 | pwm { | 197 | pwm { |
| 190 | pinctrl-0 = <&pwm12_pins_a>; | 198 | pinctrl-0 = <&pwm12_pins_a>; |
diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi index 8bf1c17f8cef..f8bbfff5950b 100644 --- a/arch/arm/boot/dts/stm32mp157c.dtsi +++ b/arch/arm/boot/dts/stm32mp157c.dtsi | |||
| @@ -84,6 +84,31 @@ | |||
| 84 | }; | 84 | }; |
| 85 | }; | 85 | }; |
| 86 | 86 | ||
| 87 | thermal-zones { | ||
| 88 | cpu_thermal: cpu-thermal { | ||
| 89 | polling-delay-passive = <0>; | ||
| 90 | polling-delay = <0>; | ||
| 91 | thermal-sensors = <&dts>; | ||
| 92 | |||
| 93 | trips { | ||
| 94 | cpu_alert1: cpu-alert1 { | ||
| 95 | temperature = <85000>; | ||
| 96 | hysteresis = <0>; | ||
| 97 | type = "passive"; | ||
| 98 | }; | ||
| 99 | |||
| 100 | cpu-crit { | ||
| 101 | temperature = <120000>; | ||
| 102 | hysteresis = <0>; | ||
| 103 | type = "critical"; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | |||
| 107 | cooling-maps { | ||
| 108 | }; | ||
| 109 | }; | ||
| 110 | }; | ||
| 111 | |||
| 87 | soc { | 112 | soc { |
| 88 | compatible = "simple-bus"; | 113 | compatible = "simple-bus"; |
| 89 | #address-cells = <1>; | 114 | #address-cells = <1>; |
| @@ -98,6 +123,12 @@ | |||
| 98 | reg = <0x40000000 0x400>; | 123 | reg = <0x40000000 0x400>; |
| 99 | clocks = <&rcc TIM2_K>; | 124 | clocks = <&rcc TIM2_K>; |
| 100 | clock-names = "int"; | 125 | clock-names = "int"; |
| 126 | dmas = <&dmamux1 18 0x400 0x1>, | ||
| 127 | <&dmamux1 19 0x400 0x1>, | ||
| 128 | <&dmamux1 20 0x400 0x1>, | ||
| 129 | <&dmamux1 21 0x400 0x1>, | ||
| 130 | <&dmamux1 22 0x400 0x1>; | ||
| 131 | dma-names = "ch1", "ch2", "ch3", "ch4", "up"; | ||
| 101 | status = "disabled"; | 132 | status = "disabled"; |
| 102 | 133 | ||
| 103 | pwm { | 134 | pwm { |
| @@ -119,6 +150,13 @@ | |||
| 119 | reg = <0x40001000 0x400>; | 150 | reg = <0x40001000 0x400>; |
| 120 | clocks = <&rcc TIM3_K>; | 151 | clocks = <&rcc TIM3_K>; |
| 121 | clock-names = "int"; | 152 | clock-names = "int"; |
| 153 | dmas = <&dmamux1 23 0x400 0x1>, | ||
| 154 | <&dmamux1 24 0x400 0x1>, | ||
| 155 | <&dmamux1 25 0x400 0x1>, | ||
| 156 | <&dmamux1 26 0x400 0x1>, | ||
| 157 | <&dmamux1 27 0x400 0x1>, | ||
| 158 | <&dmamux1 28 0x400 0x1>; | ||
| 159 | dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; | ||
| 122 | status = "disabled"; | 160 | status = "disabled"; |
| 123 | 161 | ||
| 124 | pwm { | 162 | pwm { |
| @@ -140,6 +178,11 @@ | |||
| 140 | reg = <0x40002000 0x400>; | 178 | reg = <0x40002000 0x400>; |
| 141 | clocks = <&rcc TIM4_K>; | 179 | clocks = <&rcc TIM4_K>; |
| 142 | clock-names = "int"; | 180 | clock-names = "int"; |
| 181 | dmas = <&dmamux1 29 0x400 0x1>, | ||
| 182 | <&dmamux1 30 0x400 0x1>, | ||
| 183 | <&dmamux1 31 0x400 0x1>, | ||
| 184 | <&dmamux1 32 0x400 0x1>; | ||
| 185 | dma-names = "ch1", "ch2", "ch3", "ch4"; | ||
| 143 | status = "disabled"; | 186 | status = "disabled"; |
| 144 | 187 | ||
| 145 | pwm { | 188 | pwm { |
| @@ -161,6 +204,13 @@ | |||
| 161 | reg = <0x40003000 0x400>; | 204 | reg = <0x40003000 0x400>; |
| 162 | clocks = <&rcc TIM5_K>; | 205 | clocks = <&rcc TIM5_K>; |
| 163 | clock-names = "int"; | 206 | clock-names = "int"; |
| 207 | dmas = <&dmamux1 55 0x400 0x1>, | ||
| 208 | <&dmamux1 56 0x400 0x1>, | ||
| 209 | <&dmamux1 57 0x400 0x1>, | ||
| 210 | <&dmamux1 58 0x400 0x1>, | ||
| 211 | <&dmamux1 59 0x400 0x1>, | ||
| 212 | <&dmamux1 60 0x400 0x1>; | ||
| 213 | dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig"; | ||
| 164 | status = "disabled"; | 214 | status = "disabled"; |
| 165 | 215 | ||
| 166 | pwm { | 216 | pwm { |
| @@ -182,6 +232,8 @@ | |||
| 182 | reg = <0x40004000 0x400>; | 232 | reg = <0x40004000 0x400>; |
| 183 | clocks = <&rcc TIM6_K>; | 233 | clocks = <&rcc TIM6_K>; |
| 184 | clock-names = "int"; | 234 | clock-names = "int"; |
| 235 | dmas = <&dmamux1 69 0x400 0x1>; | ||
| 236 | dma-names = "up"; | ||
| 185 | status = "disabled"; | 237 | status = "disabled"; |
| 186 | 238 | ||
| 187 | timer@5 { | 239 | timer@5 { |
| @@ -198,6 +250,8 @@ | |||
| 198 | reg = <0x40005000 0x400>; | 250 | reg = <0x40005000 0x400>; |
| 199 | clocks = <&rcc TIM7_K>; | 251 | clocks = <&rcc TIM7_K>; |
| 200 | clock-names = "int"; | 252 | clock-names = "int"; |
| 253 | dmas = <&dmamux1 70 0x400 0x1>; | ||
| 254 | dma-names = "up"; | ||
| 201 | status = "disabled"; | 255 | status = "disabled"; |
| 202 | 256 | ||
| 203 | timer@6 { | 257 | timer@6 { |
| @@ -465,6 +519,15 @@ | |||
| 465 | reg = <0x44000000 0x400>; | 519 | reg = <0x44000000 0x400>; |
| 466 | clocks = <&rcc TIM1_K>; | 520 | clocks = <&rcc TIM1_K>; |
| 467 | clock-names = "int"; | 521 | clock-names = "int"; |
| 522 | dmas = <&dmamux1 11 0x400 0x1>, | ||
| 523 | <&dmamux1 12 0x400 0x1>, | ||
| 524 | <&dmamux1 13 0x400 0x1>, | ||
| 525 | <&dmamux1 14 0x400 0x1>, | ||
| 526 | <&dmamux1 15 0x400 0x1>, | ||
| 527 | <&dmamux1 16 0x400 0x1>, | ||
| 528 | <&dmamux1 17 0x400 0x1>; | ||
| 529 | dma-names = "ch1", "ch2", "ch3", "ch4", | ||
| 530 | "up", "trig", "com"; | ||
| 468 | status = "disabled"; | 531 | status = "disabled"; |
| 469 | 532 | ||
| 470 | pwm { | 533 | pwm { |
| @@ -486,6 +549,15 @@ | |||
| 486 | reg = <0x44001000 0x400>; | 549 | reg = <0x44001000 0x400>; |
| 487 | clocks = <&rcc TIM8_K>; | 550 | clocks = <&rcc TIM8_K>; |
| 488 | clock-names = "int"; | 551 | clock-names = "int"; |
| 552 | dmas = <&dmamux1 47 0x400 0x1>, | ||
| 553 | <&dmamux1 48 0x400 0x1>, | ||
| 554 | <&dmamux1 49 0x400 0x1>, | ||
| 555 | <&dmamux1 50 0x400 0x1>, | ||
| 556 | <&dmamux1 51 0x400 0x1>, | ||
| 557 | <&dmamux1 52 0x400 0x1>, | ||
| 558 | <&dmamux1 53 0x400 0x1>; | ||
| 559 | dma-names = "ch1", "ch2", "ch3", "ch4", | ||
| 560 | "up", "trig", "com"; | ||
| 489 | status = "disabled"; | 561 | status = "disabled"; |
| 490 | 562 | ||
| 491 | pwm { | 563 | pwm { |
| @@ -543,6 +615,11 @@ | |||
| 543 | reg = <0x44006000 0x400>; | 615 | reg = <0x44006000 0x400>; |
| 544 | clocks = <&rcc TIM15_K>; | 616 | clocks = <&rcc TIM15_K>; |
| 545 | clock-names = "int"; | 617 | clock-names = "int"; |
| 618 | dmas = <&dmamux1 105 0x400 0x1>, | ||
| 619 | <&dmamux1 106 0x400 0x1>, | ||
| 620 | <&dmamux1 107 0x400 0x1>, | ||
| 621 | <&dmamux1 108 0x400 0x1>; | ||
| 622 | dma-names = "ch1", "up", "trig", "com"; | ||
| 546 | status = "disabled"; | 623 | status = "disabled"; |
| 547 | 624 | ||
| 548 | pwm { | 625 | pwm { |
| @@ -564,6 +641,9 @@ | |||
| 564 | reg = <0x44007000 0x400>; | 641 | reg = <0x44007000 0x400>; |
| 565 | clocks = <&rcc TIM16_K>; | 642 | clocks = <&rcc TIM16_K>; |
| 566 | clock-names = "int"; | 643 | clock-names = "int"; |
| 644 | dmas = <&dmamux1 109 0x400 0x1>, | ||
| 645 | <&dmamux1 110 0x400 0x1>; | ||
| 646 | dma-names = "ch1", "up"; | ||
| 567 | status = "disabled"; | 647 | status = "disabled"; |
| 568 | 648 | ||
| 569 | pwm { | 649 | pwm { |
| @@ -584,6 +664,9 @@ | |||
| 584 | reg = <0x44008000 0x400>; | 664 | reg = <0x44008000 0x400>; |
| 585 | clocks = <&rcc TIM17_K>; | 665 | clocks = <&rcc TIM17_K>; |
| 586 | clock-names = "int"; | 666 | clock-names = "int"; |
| 667 | dmas = <&dmamux1 111 0x400 0x1>, | ||
| 668 | <&dmamux1 112 0x400 0x1>; | ||
| 669 | dma-names = "ch1", "up"; | ||
| 587 | status = "disabled"; | 670 | status = "disabled"; |
| 588 | 671 | ||
| 589 | pwm { | 672 | pwm { |
| @@ -684,14 +767,14 @@ | |||
| 684 | 767 | ||
| 685 | m_can1: can@4400e000 { | 768 | m_can1: can@4400e000 { |
| 686 | compatible = "bosch,m_can"; | 769 | compatible = "bosch,m_can"; |
| 687 | reg = <0x4400e000 0x400>, <0x44011000 0x2800>; | 770 | reg = <0x4400e000 0x400>, <0x44011000 0x1400>; |
| 688 | reg-names = "m_can", "message_ram"; | 771 | reg-names = "m_can", "message_ram"; |
| 689 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, | 772 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, |
| 690 | <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | 773 | <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; |
| 691 | interrupt-names = "int0", "int1"; | 774 | interrupt-names = "int0", "int1"; |
| 692 | clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; | 775 | clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>; |
| 693 | clock-names = "hclk", "cclk"; | 776 | clock-names = "hclk", "cclk"; |
| 694 | bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>; | 777 | bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>; |
| 695 | status = "disabled"; | 778 | status = "disabled"; |
| 696 | }; | 779 | }; |
| 697 | 780 | ||
| @@ -908,6 +991,16 @@ | |||
| 908 | status = "disabled"; | 991 | status = "disabled"; |
| 909 | }; | 992 | }; |
| 910 | 993 | ||
| 994 | dts: thermal@50028000 { | ||
| 995 | compatible = "st,stm32-thermal"; | ||
| 996 | reg = <0x50028000 0x100>; | ||
| 997 | interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; | ||
| 998 | clocks = <&rcc TMPSENS>; | ||
| 999 | clock-names = "pclk"; | ||
| 1000 | #thermal-sensor-cells = <0>; | ||
| 1001 | status = "disabled"; | ||
| 1002 | }; | ||
| 1003 | |||
| 911 | cryp1: cryp@54001000 { | 1004 | cryp1: cryp@54001000 { |
| 912 | compatible = "st,stm32mp1-cryp"; | 1005 | compatible = "st,stm32mp1-cryp"; |
| 913 | reg = <0x54001000 0x400>; | 1006 | reg = <0x54001000 0x400>; |
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi index 5d46bb0139fa..73c3ac42095f 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi | |||
| @@ -184,6 +184,26 @@ | |||
| 184 | status = "disabled"; | 184 | status = "disabled"; |
| 185 | }; | 185 | }; |
| 186 | 186 | ||
| 187 | pmu { | ||
| 188 | compatible = "arm,cortex-a8-pmu"; | ||
| 189 | interrupts = <3>; | ||
| 190 | }; | ||
| 191 | |||
| 192 | reserved-memory { | ||
| 193 | #address-cells = <1>; | ||
| 194 | #size-cells = <1>; | ||
| 195 | ranges; | ||
| 196 | |||
| 197 | /* Address must be kept in the lower 256 MiBs of DRAM for VE. */ | ||
| 198 | default-pool { | ||
| 199 | compatible = "shared-dma-pool"; | ||
| 200 | size = <0x6000000>; | ||
| 201 | alloc-ranges = <0x4a000000 0x6000000>; | ||
| 202 | reusable; | ||
| 203 | linux,cma-default; | ||
| 204 | }; | ||
| 205 | }; | ||
| 206 | |||
| 187 | soc { | 207 | soc { |
| 188 | compatible = "simple-bus"; | 208 | compatible = "simple-bus"; |
| 189 | #address-cells = <1>; | 209 | #address-cells = <1>; |
| @@ -224,6 +244,19 @@ | |||
| 224 | status = "disabled"; | 244 | status = "disabled"; |
| 225 | }; | 245 | }; |
| 226 | }; | 246 | }; |
| 247 | |||
| 248 | sram_c: sram@1d00000 { | ||
| 249 | compatible = "mmio-sram"; | ||
| 250 | reg = <0x01d00000 0xd0000>; | ||
| 251 | #address-cells = <1>; | ||
| 252 | #size-cells = <1>; | ||
| 253 | ranges = <0 0x01d00000 0xd0000>; | ||
| 254 | |||
| 255 | ve_sram: sram-section@0 { | ||
| 256 | compatible = "allwinner,sun4i-a10-sram-c1"; | ||
| 257 | reg = <0x000000 0x80000>; | ||
| 258 | }; | ||
| 259 | }; | ||
| 227 | }; | 260 | }; |
| 228 | 261 | ||
| 229 | dma: dma-controller@1c02000 { | 262 | dma: dma-controller@1c02000 { |
| @@ -394,6 +427,17 @@ | |||
| 394 | }; | 427 | }; |
| 395 | }; | 428 | }; |
| 396 | 429 | ||
| 430 | video-codec@1c0e000 { | ||
| 431 | compatible = "allwinner,sun4i-a10-video-engine"; | ||
| 432 | reg = <0x01c0e000 0x1000>; | ||
| 433 | clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>, | ||
| 434 | <&ccu CLK_DRAM_VE>; | ||
| 435 | clock-names = "ahb", "mod", "ram"; | ||
| 436 | resets = <&ccu RST_VE>; | ||
| 437 | interrupts = <53>; | ||
| 438 | allwinner,sram = <&ve_sram 1>; | ||
| 439 | }; | ||
| 440 | |||
| 397 | mmc0: mmc@1c0f000 { | 441 | mmc0: mmc@1c0f000 { |
| 398 | compatible = "allwinner,sun4i-a10-mmc"; | 442 | compatible = "allwinner,sun4i-a10-mmc"; |
| 399 | reg = <0x01c0f000 0x1000>; | 443 | reg = <0x01c0f000 0x1000>; |
diff --git a/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts b/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts index a89f29fa3e40..7257f39b31ce 100644 --- a/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts +++ b/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts | |||
| @@ -49,14 +49,15 @@ | |||
| 49 | compatible = "allwinner,q8-a13", "allwinner,sun5i-a13"; | 49 | compatible = "allwinner,q8-a13", "allwinner,sun5i-a13"; |
| 50 | 50 | ||
| 51 | panel: panel { | 51 | panel: panel { |
| 52 | compatible = "urt,umsh-8596md-t", "simple-panel"; | 52 | compatible = "bananapi,s070wv20-ct16", "simple-panel"; |
| 53 | power-supply = <®_vcc3v3>; | ||
| 54 | enable-gpios = <&axp_gpio 0 GPIO_ACTIVE_HIGH>; /* AXP GPIO0 */ | ||
| 55 | backlight = <&backlight>; | ||
| 53 | #address-cells = <1>; | 56 | #address-cells = <1>; |
| 54 | #size-cells = <0>; | 57 | #size-cells = <0>; |
| 55 | 58 | ||
| 56 | port@0 { | 59 | port@0 { |
| 57 | reg = <0>; | 60 | reg = <0>; |
| 58 | /* TODO: lcd panel uses axp gpio0 as enable pin */ | ||
| 59 | backlight = <&backlight>; | ||
| 60 | #address-cells = <1>; | 61 | #address-cells = <1>; |
| 61 | #size-cells = <0>; | 62 | #size-cells = <0>; |
| 62 | 63 | ||
diff --git a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi index 6202aabedbfe..5b1f0e198eb6 100644 --- a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi +++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi | |||
| @@ -54,7 +54,7 @@ | |||
| 54 | pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; | 54 | pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; |
| 55 | brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; | 55 | brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; |
| 56 | default-brightness-level = <8>; | 56 | default-brightness-level = <8>; |
| 57 | /* TODO: backlight uses axp gpio1 as enable pin */ | 57 | enable-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>; /* AXP GPIO1 */ |
| 58 | }; | 58 | }; |
| 59 | 59 | ||
| 60 | chosen { | 60 | chosen { |
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi index 353d90f99b40..13304b8c5139 100644 --- a/arch/arm/boot/dts/sun6i-a31.dtsi +++ b/arch/arm/boot/dts/sun6i-a31.dtsi | |||
| @@ -216,6 +216,7 @@ | |||
| 216 | #clock-cells = <0>; | 216 | #clock-cells = <0>; |
| 217 | compatible = "fixed-clock"; | 217 | compatible = "fixed-clock"; |
| 218 | clock-frequency = <24000000>; | 218 | clock-frequency = <24000000>; |
| 219 | clock-output-names = "osc24M"; | ||
| 219 | }; | 220 | }; |
| 220 | 221 | ||
| 221 | osc32k: clk-32k { | 222 | osc32k: clk-32k { |
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts index 556b1b591c5d..81bc85d398c1 100644 --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts +++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts | |||
| @@ -191,6 +191,11 @@ | |||
| 191 | }; | 191 | }; |
| 192 | 192 | ||
| 193 | &pio { | 193 | &pio { |
| 194 | vcc-pa-supply = <®_vcc3v3>; | ||
| 195 | vcc-pc-supply = <®_vcc3v3>; | ||
| 196 | vcc-pe-supply = <®_vcc3v3>; | ||
| 197 | vcc-pf-supply = <®_vcc3v3>; | ||
| 198 | vcc-pg-supply = <®_vcc3v3>; | ||
| 194 | gpio-line-names = | 199 | gpio-line-names = |
| 195 | /* PA */ | 200 | /* PA */ |
| 196 | "ERXD3", "ERXD2", "ERXD1", "ERXD0", "ETXD3", | 201 | "ERXD3", "ERXD2", "ERXD1", "ERXD0", "ETXD3", |
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi index a9c123de5d2c..43fe215e83ea 100644 --- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi +++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi | |||
| @@ -68,6 +68,12 @@ | |||
| 68 | }; | 68 | }; |
| 69 | }; | 69 | }; |
| 70 | 70 | ||
| 71 | de: display-engine { | ||
| 72 | /* compatible gets set in SoC specific dtsi file */ | ||
| 73 | allwinner,pipelines = <&fe0>; | ||
| 74 | status = "disabled"; | ||
| 75 | }; | ||
| 76 | |||
| 71 | timer { | 77 | timer { |
| 72 | compatible = "arm,armv7-timer"; | 78 | compatible = "arm,armv7-timer"; |
| 73 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 79 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| @@ -155,6 +161,55 @@ | |||
| 155 | #dma-cells = <1>; | 161 | #dma-cells = <1>; |
| 156 | }; | 162 | }; |
| 157 | 163 | ||
| 164 | nfc: nand@1c03000 { | ||
| 165 | compatible = "allwinner,sun4i-a10-nand"; | ||
| 166 | reg = <0x01c03000 0x1000>; | ||
| 167 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
| 168 | clocks = <&ccu CLK_BUS_NAND>, <&ccu CLK_NAND>; | ||
| 169 | clock-names = "ahb", "mod"; | ||
| 170 | resets = <&ccu RST_BUS_NAND>; | ||
| 171 | reset-names = "ahb"; | ||
| 172 | status = "disabled"; | ||
| 173 | #address-cells = <1>; | ||
| 174 | #size-cells = <0>; | ||
| 175 | }; | ||
| 176 | |||
| 177 | tcon0: lcd-controller@1c0c000 { | ||
| 178 | /* compatible gets set in SoC specific dtsi file */ | ||
| 179 | reg = <0x01c0c000 0x1000>; | ||
| 180 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; | ||
| 181 | clocks = <&ccu CLK_BUS_LCD>, | ||
| 182 | <&ccu CLK_LCD_CH0>; | ||
| 183 | clock-names = "ahb", | ||
| 184 | "tcon-ch0"; | ||
| 185 | clock-output-names = "tcon-pixel-clock"; | ||
| 186 | resets = <&ccu RST_BUS_LCD>; | ||
| 187 | reset-names = "lcd"; | ||
| 188 | status = "disabled"; | ||
| 189 | |||
| 190 | ports { | ||
| 191 | #address-cells = <1>; | ||
| 192 | #size-cells = <0>; | ||
| 193 | |||
| 194 | tcon0_in: port@0 { | ||
| 195 | #address-cells = <1>; | ||
| 196 | #size-cells = <0>; | ||
| 197 | reg = <0>; | ||
| 198 | |||
| 199 | tcon0_in_drc0: endpoint@0 { | ||
| 200 | reg = <0>; | ||
| 201 | remote-endpoint = <&drc0_out_tcon0>; | ||
| 202 | }; | ||
| 203 | }; | ||
| 204 | |||
| 205 | tcon0_out: port@1 { | ||
| 206 | #address-cells = <1>; | ||
| 207 | #size-cells = <0>; | ||
| 208 | reg = <1>; | ||
| 209 | }; | ||
| 210 | }; | ||
| 211 | }; | ||
| 212 | |||
| 158 | mmc0: mmc@1c0f000 { | 213 | mmc0: mmc@1c0f000 { |
| 159 | compatible = "allwinner,sun7i-a20-mmc"; | 214 | compatible = "allwinner,sun7i-a20-mmc"; |
| 160 | reg = <0x01c0f000 0x1000>; | 215 | reg = <0x01c0f000 0x1000>; |
| @@ -214,21 +269,6 @@ | |||
| 214 | #size-cells = <0>; | 269 | #size-cells = <0>; |
| 215 | }; | 270 | }; |
| 216 | 271 | ||
| 217 | nfc: nand@1c03000 { | ||
| 218 | compatible = "allwinner,sun4i-a10-nand"; | ||
| 219 | reg = <0x01c03000 0x1000>; | ||
| 220 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
| 221 | clocks = <&ccu CLK_BUS_NAND>, <&ccu CLK_NAND>; | ||
| 222 | clock-names = "ahb", "mod"; | ||
| 223 | resets = <&ccu RST_BUS_NAND>; | ||
| 224 | reset-names = "ahb"; | ||
| 225 | pinctrl-names = "default"; | ||
| 226 | pinctrl-0 = <&nand_pins &nand_pins_cs0 &nand_pins_rb0>; | ||
| 227 | status = "disabled"; | ||
| 228 | #address-cells = <1>; | ||
| 229 | #size-cells = <0>; | ||
| 230 | }; | ||
| 231 | |||
| 232 | usb_otg: usb@1c19000 { | 272 | usb_otg: usb@1c19000 { |
| 233 | /* compatible gets set in SoC specific dtsi file */ | 273 | /* compatible gets set in SoC specific dtsi file */ |
| 234 | reg = <0x01c19000 0x0400>; | 274 | reg = <0x01c19000 0x0400>; |
| @@ -572,6 +612,111 @@ | |||
| 572 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | 612 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; |
| 573 | }; | 613 | }; |
| 574 | 614 | ||
| 615 | fe0: display-frontend@1e00000 { | ||
| 616 | /* compatible gets set in SoC specific dtsi file */ | ||
| 617 | reg = <0x01e00000 0x20000>; | ||
| 618 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
| 619 | clocks = <&ccu CLK_BUS_DE_FE>, <&ccu CLK_DE_FE>, | ||
| 620 | <&ccu CLK_DRAM_DE_FE>; | ||
| 621 | clock-names = "ahb", "mod", | ||
| 622 | "ram"; | ||
| 623 | resets = <&ccu RST_BUS_DE_FE>; | ||
| 624 | |||
| 625 | ports { | ||
| 626 | #address-cells = <1>; | ||
| 627 | #size-cells = <0>; | ||
| 628 | |||
| 629 | fe0_out: port@1 { | ||
| 630 | #address-cells = <1>; | ||
| 631 | #size-cells = <0>; | ||
| 632 | reg = <1>; | ||
| 633 | |||
| 634 | fe0_out_be0: endpoint@0 { | ||
| 635 | reg = <0>; | ||
| 636 | remote-endpoint = <&be0_in_fe0>; | ||
| 637 | }; | ||
| 638 | }; | ||
| 639 | }; | ||
| 640 | }; | ||
| 641 | |||
| 642 | be0: display-backend@1e60000 { | ||
| 643 | /* compatible gets set in SoC specific dtsi file */ | ||
| 644 | reg = <0x01e60000 0x10000>; | ||
| 645 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
| 646 | clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>, | ||
| 647 | <&ccu CLK_DRAM_DE_BE>; | ||
| 648 | clock-names = "ahb", "mod", | ||
| 649 | "ram"; | ||
| 650 | resets = <&ccu RST_BUS_DE_BE>; | ||
| 651 | |||
| 652 | ports { | ||
| 653 | #address-cells = <1>; | ||
| 654 | #size-cells = <0>; | ||
| 655 | |||
| 656 | be0_in: port@0 { | ||
| 657 | #address-cells = <1>; | ||
| 658 | #size-cells = <0>; | ||
| 659 | reg = <0>; | ||
| 660 | |||
| 661 | be0_in_fe0: endpoint@0 { | ||
| 662 | reg = <0>; | ||
| 663 | remote-endpoint = <&fe0_out_be0>; | ||
| 664 | }; | ||
| 665 | }; | ||
| 666 | |||
| 667 | be0_out: port@1 { | ||
| 668 | #address-cells = <1>; | ||
| 669 | #size-cells = <0>; | ||
| 670 | reg = <1>; | ||
| 671 | |||
| 672 | be0_out_drc0: endpoint@0 { | ||
| 673 | reg = <0>; | ||
| 674 | remote-endpoint = <&drc0_in_be0>; | ||
| 675 | }; | ||
| 676 | }; | ||
| 677 | }; | ||
| 678 | }; | ||
| 679 | |||
| 680 | drc0: drc@1e70000 { | ||
| 681 | /* compatible gets set in SoC specific dtsi file */ | ||
| 682 | reg = <0x01e70000 0x10000>; | ||
| 683 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | ||
| 684 | clocks = <&ccu CLK_BUS_DRC>, <&ccu CLK_DRC>, | ||
| 685 | <&ccu CLK_DRAM_DRC>; | ||
| 686 | clock-names = "ahb", "mod", "ram"; | ||
| 687 | resets = <&ccu RST_BUS_DRC>; | ||
| 688 | |||
| 689 | assigned-clocks = <&ccu CLK_DRC>; | ||
| 690 | assigned-clock-rates = <300000000>; | ||
| 691 | |||
| 692 | ports { | ||
| 693 | #address-cells = <1>; | ||
| 694 | #size-cells = <0>; | ||
| 695 | |||
| 696 | drc0_in: port@0 { | ||
| 697 | #address-cells = <1>; | ||
| 698 | #size-cells = <0>; | ||
| 699 | reg = <0>; | ||
| 700 | |||
| 701 | drc0_in_be0: endpoint@0 { | ||
| 702 | reg = <0>; | ||
| 703 | remote-endpoint = <&be0_out_drc0>; | ||
| 704 | }; | ||
| 705 | }; | ||
| 706 | |||
| 707 | drc0_out: port@1 { | ||
| 708 | #address-cells = <1>; | ||
| 709 | #size-cells = <0>; | ||
| 710 | reg = <1>; | ||
| 711 | |||
| 712 | drc0_out_tcon0: endpoint@0 { | ||
| 713 | reg = <0>; | ||
| 714 | remote-endpoint = <&tcon0_in_drc0>; | ||
| 715 | }; | ||
| 716 | }; | ||
| 717 | }; | ||
| 718 | }; | ||
| 719 | |||
| 575 | rtc: rtc@1f00000 { | 720 | rtc: rtc@1f00000 { |
| 576 | compatible = "allwinner,sun8i-a23-rtc"; | 721 | compatible = "allwinner,sun8i-a23-rtc"; |
| 577 | reg = <0x01f00000 0x400>; | 722 | reg = <0x01f00000 0x400>; |
diff --git a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts index b6958e8f2f01..d4dab7c28398 100644 --- a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts +++ b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts | |||
| @@ -61,3 +61,7 @@ | |||
| 61 | "Headset Mic", "HBIAS"; | 61 | "Headset Mic", "HBIAS"; |
| 62 | status = "okay"; | 62 | status = "okay"; |
| 63 | }; | 63 | }; |
| 64 | |||
| 65 | &panel { | ||
| 66 | compatible = "bananapi,s070wv20-ct16", "simple-panel"; | ||
| 67 | }; | ||
diff --git a/arch/arm/boot/dts/sun8i-a23.dtsi b/arch/arm/boot/dts/sun8i-a23.dtsi index d00055e9eef5..a5e884a8b2ae 100644 --- a/arch/arm/boot/dts/sun8i-a23.dtsi +++ b/arch/arm/boot/dts/sun8i-a23.dtsi | |||
| @@ -62,10 +62,26 @@ | |||
| 62 | }; | 62 | }; |
| 63 | }; | 63 | }; |
| 64 | 64 | ||
| 65 | &be0 { | ||
| 66 | compatible = "allwinner,sun8i-a23-display-backend"; | ||
| 67 | }; | ||
| 68 | |||
| 65 | &ccu { | 69 | &ccu { |
| 66 | compatible = "allwinner,sun8i-a23-ccu"; | 70 | compatible = "allwinner,sun8i-a23-ccu"; |
| 67 | }; | 71 | }; |
| 68 | 72 | ||
| 73 | &de { | ||
| 74 | compatible = "allwinner,sun8i-a23-display-engine"; | ||
| 75 | }; | ||
| 76 | |||
| 77 | &drc0 { | ||
| 78 | compatible = "allwinner,sun8i-a23-drc"; | ||
| 79 | }; | ||
| 80 | |||
| 81 | &fe0 { | ||
| 82 | compatible = "allwinner,sun8i-a23-display-frontend"; | ||
| 83 | }; | ||
| 84 | |||
| 69 | &pio { | 85 | &pio { |
| 70 | compatible = "allwinner,sun8i-a23-pinctrl"; | 86 | compatible = "allwinner,sun8i-a23-pinctrl"; |
| 71 | interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, | 87 | interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -73,6 +89,10 @@ | |||
| 73 | <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; | 89 | <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; |
| 74 | }; | 90 | }; |
| 75 | 91 | ||
| 92 | &tcon0 { | ||
| 93 | compatible = "allwinner,sun8i-a23-tcon"; | ||
| 94 | }; | ||
| 95 | |||
| 76 | &usb_otg { | 96 | &usb_otg { |
| 77 | compatible = "allwinner,sun6i-a31-musb"; | 97 | compatible = "allwinner,sun6i-a31-musb"; |
| 78 | }; | 98 | }; |
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi index 626152c30f50..1111a6498102 100644 --- a/arch/arm/boot/dts/sun8i-a33.dtsi +++ b/arch/arm/boot/dts/sun8i-a33.dtsi | |||
| @@ -159,12 +159,6 @@ | |||
| 159 | }; | 159 | }; |
| 160 | }; | 160 | }; |
| 161 | 161 | ||
| 162 | de: display-engine { | ||
| 163 | compatible = "allwinner,sun8i-a33-display-engine"; | ||
| 164 | allwinner,pipelines = <&fe0>; | ||
| 165 | status = "disabled"; | ||
| 166 | }; | ||
| 167 | |||
| 168 | iio-hwmon { | 162 | iio-hwmon { |
| 169 | compatible = "iio-hwmon"; | 163 | compatible = "iio-hwmon"; |
| 170 | io-channels = <&ths>; | 164 | io-channels = <&ths>; |
| @@ -209,47 +203,6 @@ | |||
| 209 | }; | 203 | }; |
| 210 | 204 | ||
| 211 | soc { | 205 | soc { |
| 212 | tcon0: lcd-controller@1c0c000 { | ||
| 213 | compatible = "allwinner,sun8i-a33-tcon"; | ||
| 214 | reg = <0x01c0c000 0x1000>; | ||
| 215 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; | ||
| 216 | clocks = <&ccu CLK_BUS_LCD>, | ||
| 217 | <&ccu CLK_LCD_CH0>; | ||
| 218 | clock-names = "ahb", | ||
| 219 | "tcon-ch0"; | ||
| 220 | clock-output-names = "tcon-pixel-clock"; | ||
| 221 | resets = <&ccu RST_BUS_LCD>; | ||
| 222 | reset-names = "lcd"; | ||
| 223 | status = "disabled"; | ||
| 224 | |||
| 225 | ports { | ||
| 226 | #address-cells = <1>; | ||
| 227 | #size-cells = <0>; | ||
| 228 | |||
| 229 | tcon0_in: port@0 { | ||
| 230 | #address-cells = <1>; | ||
| 231 | #size-cells = <0>; | ||
| 232 | reg = <0>; | ||
| 233 | |||
| 234 | tcon0_in_drc0: endpoint@0 { | ||
| 235 | reg = <0>; | ||
| 236 | remote-endpoint = <&drc0_out_tcon0>; | ||
| 237 | }; | ||
| 238 | }; | ||
| 239 | |||
| 240 | tcon0_out: port@1 { | ||
| 241 | #address-cells = <1>; | ||
| 242 | #size-cells = <0>; | ||
| 243 | reg = <1>; | ||
| 244 | |||
| 245 | tcon0_out_dsi: endpoint@1 { | ||
| 246 | reg = <1>; | ||
| 247 | remote-endpoint = <&dsi_in_tcon0>; | ||
| 248 | }; | ||
| 249 | }; | ||
| 250 | }; | ||
| 251 | }; | ||
| 252 | |||
| 253 | video-codec@1c0e000 { | 206 | video-codec@1c0e000 { |
| 254 | compatible = "allwinner,sun8i-a33-video-engine"; | 207 | compatible = "allwinner,sun8i-a33-video-engine"; |
| 255 | reg = <0x01c0e000 0x1000>; | 208 | reg = <0x01c0e000 0x1000>; |
| @@ -339,115 +292,6 @@ | |||
| 339 | status = "disabled"; | 292 | status = "disabled"; |
| 340 | #phy-cells = <0>; | 293 | #phy-cells = <0>; |
| 341 | }; | 294 | }; |
| 342 | |||
| 343 | fe0: display-frontend@1e00000 { | ||
| 344 | compatible = "allwinner,sun8i-a33-display-frontend"; | ||
| 345 | reg = <0x01e00000 0x20000>; | ||
| 346 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
| 347 | clocks = <&ccu CLK_BUS_DE_FE>, <&ccu CLK_DE_FE>, | ||
| 348 | <&ccu CLK_DRAM_DE_FE>; | ||
| 349 | clock-names = "ahb", "mod", | ||
| 350 | "ram"; | ||
| 351 | resets = <&ccu RST_BUS_DE_FE>; | ||
| 352 | |||
| 353 | ports { | ||
| 354 | #address-cells = <1>; | ||
| 355 | #size-cells = <0>; | ||
| 356 | |||
| 357 | fe0_out: port@1 { | ||
| 358 | #address-cells = <1>; | ||
| 359 | #size-cells = <0>; | ||
| 360 | reg = <1>; | ||
| 361 | |||
| 362 | fe0_out_be0: endpoint@0 { | ||
| 363 | reg = <0>; | ||
| 364 | remote-endpoint = <&be0_in_fe0>; | ||
| 365 | }; | ||
| 366 | }; | ||
| 367 | }; | ||
| 368 | }; | ||
| 369 | |||
| 370 | be0: display-backend@1e60000 { | ||
| 371 | compatible = "allwinner,sun8i-a33-display-backend"; | ||
| 372 | reg = <0x01e60000 0x10000>, <0x01e80000 0x1000>; | ||
| 373 | reg-names = "be", "sat"; | ||
| 374 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
| 375 | clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>, | ||
| 376 | <&ccu CLK_DRAM_DE_BE>, <&ccu CLK_BUS_SAT>; | ||
| 377 | clock-names = "ahb", "mod", | ||
| 378 | "ram", "sat"; | ||
| 379 | resets = <&ccu RST_BUS_DE_BE>, <&ccu RST_BUS_SAT>; | ||
| 380 | reset-names = "be", "sat"; | ||
| 381 | assigned-clocks = <&ccu CLK_DE_BE>; | ||
| 382 | assigned-clock-rates = <300000000>; | ||
| 383 | |||
| 384 | ports { | ||
| 385 | #address-cells = <1>; | ||
| 386 | #size-cells = <0>; | ||
| 387 | |||
| 388 | be0_in: port@0 { | ||
| 389 | #address-cells = <1>; | ||
| 390 | #size-cells = <0>; | ||
| 391 | reg = <0>; | ||
| 392 | |||
| 393 | be0_in_fe0: endpoint@0 { | ||
| 394 | reg = <0>; | ||
| 395 | remote-endpoint = <&fe0_out_be0>; | ||
| 396 | }; | ||
| 397 | }; | ||
| 398 | |||
| 399 | be0_out: port@1 { | ||
| 400 | #address-cells = <1>; | ||
| 401 | #size-cells = <0>; | ||
| 402 | reg = <1>; | ||
| 403 | |||
| 404 | be0_out_drc0: endpoint@0 { | ||
| 405 | reg = <0>; | ||
| 406 | remote-endpoint = <&drc0_in_be0>; | ||
| 407 | }; | ||
| 408 | }; | ||
| 409 | }; | ||
| 410 | }; | ||
| 411 | |||
| 412 | drc0: drc@1e70000 { | ||
| 413 | compatible = "allwinner,sun8i-a33-drc"; | ||
| 414 | reg = <0x01e70000 0x10000>; | ||
| 415 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | ||
| 416 | clocks = <&ccu CLK_BUS_DRC>, <&ccu CLK_DRC>, | ||
| 417 | <&ccu CLK_DRAM_DRC>; | ||
| 418 | clock-names = "ahb", "mod", "ram"; | ||
| 419 | resets = <&ccu RST_BUS_DRC>; | ||
| 420 | |||
| 421 | assigned-clocks = <&ccu CLK_DRC>; | ||
| 422 | assigned-clock-rates = <300000000>; | ||
| 423 | |||
| 424 | ports { | ||
| 425 | #address-cells = <1>; | ||
| 426 | #size-cells = <0>; | ||
| 427 | |||
| 428 | drc0_in: port@0 { | ||
| 429 | #address-cells = <1>; | ||
| 430 | #size-cells = <0>; | ||
| 431 | reg = <0>; | ||
| 432 | |||
| 433 | drc0_in_be0: endpoint@0 { | ||
| 434 | reg = <0>; | ||
| 435 | remote-endpoint = <&be0_out_drc0>; | ||
| 436 | }; | ||
| 437 | }; | ||
| 438 | |||
| 439 | drc0_out: port@1 { | ||
| 440 | #address-cells = <1>; | ||
| 441 | #size-cells = <0>; | ||
| 442 | reg = <1>; | ||
| 443 | |||
| 444 | drc0_out_tcon0: endpoint@0 { | ||
| 445 | reg = <0>; | ||
| 446 | remote-endpoint = <&tcon0_in_drc0>; | ||
| 447 | }; | ||
| 448 | }; | ||
| 449 | }; | ||
| 450 | }; | ||
| 451 | }; | 295 | }; |
| 452 | 296 | ||
| 453 | thermal-zones { | 297 | thermal-zones { |
| @@ -524,10 +368,37 @@ | |||
| 524 | }; | 368 | }; |
| 525 | }; | 369 | }; |
| 526 | 370 | ||
| 371 | &be0 { | ||
| 372 | compatible = "allwinner,sun8i-a33-display-backend"; | ||
| 373 | /* A33 has an extra "SAT" module packed inside the display backend */ | ||
| 374 | reg = <0x01e60000 0x10000>, <0x01e80000 0x1000>; | ||
| 375 | reg-names = "be", "sat"; | ||
| 376 | clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>, | ||
| 377 | <&ccu CLK_DRAM_DE_BE>, <&ccu CLK_BUS_SAT>; | ||
| 378 | clock-names = "ahb", "mod", | ||
| 379 | "ram", "sat"; | ||
| 380 | resets = <&ccu RST_BUS_DE_BE>, <&ccu RST_BUS_SAT>; | ||
| 381 | reset-names = "be", "sat"; | ||
| 382 | assigned-clocks = <&ccu CLK_DE_BE>; | ||
| 383 | assigned-clock-rates = <300000000>; | ||
| 384 | }; | ||
| 385 | |||
| 527 | &ccu { | 386 | &ccu { |
| 528 | compatible = "allwinner,sun8i-a33-ccu"; | 387 | compatible = "allwinner,sun8i-a33-ccu"; |
| 529 | }; | 388 | }; |
| 530 | 389 | ||
| 390 | &de { | ||
| 391 | compatible = "allwinner,sun8i-a33-display-engine"; | ||
| 392 | }; | ||
| 393 | |||
| 394 | &drc0 { | ||
| 395 | compatible = "allwinner,sun8i-a33-drc"; | ||
| 396 | }; | ||
| 397 | |||
| 398 | &fe0 { | ||
| 399 | compatible = "allwinner,sun8i-a33-display-frontend"; | ||
| 400 | }; | ||
| 401 | |||
| 531 | &mali { | 402 | &mali { |
| 532 | operating-points-v2 = <&mali_opp_table>; | 403 | operating-points-v2 = <&mali_opp_table>; |
| 533 | }; | 404 | }; |
| @@ -544,6 +415,17 @@ | |||
| 544 | 415 | ||
| 545 | }; | 416 | }; |
| 546 | 417 | ||
| 418 | &tcon0 { | ||
| 419 | compatible = "allwinner,sun8i-a33-tcon"; | ||
| 420 | }; | ||
| 421 | |||
| 422 | &tcon0_out { | ||
| 423 | tcon0_out_dsi: endpoint@1 { | ||
| 424 | reg = <1>; | ||
| 425 | remote-endpoint = <&dsi_in_tcon0>; | ||
| 426 | }; | ||
| 427 | }; | ||
| 428 | |||
| 547 | &usb_otg { | 429 | &usb_otg { |
| 548 | compatible = "allwinner,sun8i-a33-musb"; | 430 | compatible = "allwinner,sun8i-a33-musb"; |
| 549 | }; | 431 | }; |
diff --git a/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts b/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts index 1c012a4def16..9c006fc18821 100644 --- a/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts +++ b/arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts | |||
| @@ -154,6 +154,10 @@ | |||
| 154 | 154 | ||
| 155 | #include "axp81x.dtsi" | 155 | #include "axp81x.dtsi" |
| 156 | 156 | ||
| 157 | &ac_power_supply { | ||
| 158 | status = "okay"; | ||
| 159 | }; | ||
| 160 | |||
| 157 | ®_aldo1 { | 161 | ®_aldo1 { |
| 158 | regulator-always-on; | 162 | regulator-always-on; |
| 159 | regulator-min-microvolt = <1800000>; | 163 | regulator-min-microvolt = <1800000>; |
diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts index 7d30d3e530fb..838be7b3715f 100644 --- a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts +++ b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts | |||
| @@ -237,6 +237,14 @@ | |||
| 237 | 237 | ||
| 238 | #include "axp81x.dtsi" | 238 | #include "axp81x.dtsi" |
| 239 | 239 | ||
| 240 | &ac_power_supply { | ||
| 241 | status = "okay"; | ||
| 242 | }; | ||
| 243 | |||
| 244 | &battery_power_supply { | ||
| 245 | status = "okay"; | ||
| 246 | }; | ||
| 247 | |||
| 240 | ®_aldo1 { | 248 | ®_aldo1 { |
| 241 | regulator-always-on; | 249 | regulator-always-on; |
| 242 | regulator-min-microvolt = <1800000>; | 250 | regulator-min-microvolt = <1800000>; |
diff --git a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts index a5a9f5a0603e..fcbec3d7ccd7 100644 --- a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts +++ b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts | |||
| @@ -247,6 +247,14 @@ | |||
| 247 | 247 | ||
| 248 | #include "axp81x.dtsi" | 248 | #include "axp81x.dtsi" |
| 249 | 249 | ||
| 250 | &ac_power_supply { | ||
| 251 | status = "okay"; | ||
| 252 | }; | ||
| 253 | |||
| 254 | &battery_power_supply { | ||
| 255 | status = "okay"; | ||
| 256 | }; | ||
| 257 | |||
| 250 | ®_aldo1 { | 258 | ®_aldo1 { |
| 251 | regulator-always-on; | 259 | regulator-always-on; |
| 252 | regulator-min-microvolt = <1800000>; | 260 | regulator-min-microvolt = <1800000>; |
diff --git a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts index 5d23667dc2d2..25540b7694d5 100644 --- a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts +++ b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | 53 | ||
| 54 | aliases { | 54 | aliases { |
| 55 | serial0 = &uart0; | 55 | serial0 = &uart0; |
| 56 | /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */ | 56 | ethernet0 = &emac; |
| 57 | ethernet1 = &sdiowifi; | 57 | ethernet1 = &sdiowifi; |
| 58 | }; | 58 | }; |
| 59 | 59 | ||
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts index 65cba1050802..4ec94d72f021 100644 --- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts | |||
| @@ -67,6 +67,21 @@ | |||
| 67 | pinctrl-names = "default"; | 67 | pinctrl-names = "default"; |
| 68 | reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ | 68 | reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ |
| 69 | }; | 69 | }; |
| 70 | |||
| 71 | connector { | ||
| 72 | compatible = "hdmi-connector"; | ||
| 73 | type = "a"; | ||
| 74 | |||
| 75 | port { | ||
| 76 | hdmi_con_in: endpoint { | ||
| 77 | remote-endpoint = <&hdmi_out_con>; | ||
| 78 | }; | ||
| 79 | }; | ||
| 80 | }; | ||
| 81 | }; | ||
| 82 | |||
| 83 | &de { | ||
| 84 | status = "okay"; | ||
| 70 | }; | 85 | }; |
| 71 | 86 | ||
| 72 | &ehci1 { | 87 | &ehci1 { |
| @@ -94,6 +109,16 @@ | |||
| 94 | }; | 109 | }; |
| 95 | }; | 110 | }; |
| 96 | 111 | ||
| 112 | &hdmi { | ||
| 113 | status = "okay"; | ||
| 114 | }; | ||
| 115 | |||
| 116 | &hdmi_out { | ||
| 117 | hdmi_out_con: endpoint { | ||
| 118 | remote-endpoint = <&hdmi_con_in>; | ||
| 119 | }; | ||
| 120 | }; | ||
| 121 | |||
| 97 | &ir { | 122 | &ir { |
| 98 | pinctrl-names = "default"; | 123 | pinctrl-names = "default"; |
| 99 | pinctrl-0 = <&ir_pins_a>; | 124 | pinctrl-0 = <&ir_pins_a>; |
diff --git a/arch/arm/boot/dts/sun8i-q8-common.dtsi b/arch/arm/boot/dts/sun8i-q8-common.dtsi index 719ad769b837..53104f4ccacc 100644 --- a/arch/arm/boot/dts/sun8i-q8-common.dtsi +++ b/arch/arm/boot/dts/sun8i-q8-common.dtsi | |||
| @@ -49,6 +49,26 @@ | |||
| 49 | ethernet0 = &sdio_wifi; | 49 | ethernet0 = &sdio_wifi; |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | panel: panel { | ||
| 53 | /* Tablet dts should provide panel compatible */ | ||
| 54 | backlight = <&backlight>; | ||
| 55 | enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ | ||
| 56 | power-supply = <®_dc1sw>; | ||
| 57 | #address-cells = <1>; | ||
| 58 | #size-cells = <0>; | ||
| 59 | |||
| 60 | port@0 { | ||
| 61 | reg = <0>; | ||
| 62 | #address-cells = <1>; | ||
| 63 | #size-cells = <0>; | ||
| 64 | |||
| 65 | panel_input: endpoint@0 { | ||
| 66 | reg = <0>; | ||
| 67 | remote-endpoint = <&tcon0_out_lcd>; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | }; | ||
| 71 | |||
| 52 | wifi_pwrseq: wifi_pwrseq { | 72 | wifi_pwrseq: wifi_pwrseq { |
| 53 | compatible = "mmc-pwrseq-simple"; | 73 | compatible = "mmc-pwrseq-simple"; |
| 54 | /* | 74 | /* |
| @@ -64,6 +84,10 @@ | |||
| 64 | }; | 84 | }; |
| 65 | }; | 85 | }; |
| 66 | 86 | ||
| 87 | &de { | ||
| 88 | status = "okay"; | ||
| 89 | }; | ||
| 90 | |||
| 67 | &ehci0 { | 91 | &ehci0 { |
| 68 | status = "okay"; | 92 | status = "okay"; |
| 69 | }; | 93 | }; |
| @@ -90,6 +114,19 @@ | |||
| 90 | }; | 114 | }; |
| 91 | }; | 115 | }; |
| 92 | 116 | ||
| 117 | &tcon0 { | ||
| 118 | pinctrl-names = "default"; | ||
| 119 | pinctrl-0 = <&lcd_rgb666_pins>; | ||
| 120 | status = "okay"; | ||
| 121 | }; | ||
| 122 | |||
| 123 | &tcon0_out { | ||
| 124 | tcon0_out_lcd: endpoint@0 { | ||
| 125 | reg = <0>; | ||
| 126 | remote-endpoint = <&panel_input>; | ||
| 127 | }; | ||
| 128 | }; | ||
| 129 | |||
| 93 | &usbphy { | 130 | &usbphy { |
| 94 | usb1_vbus-supply = <®_dldo1>; | 131 | usb1_vbus-supply = <®_dldo1>; |
| 95 | }; | 132 | }; |
diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts index 438b7b44dab3..c488aaacbd68 100644 --- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts +++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts | |||
| @@ -102,6 +102,8 @@ | |||
| 102 | wifi_pwrseq: wifi_pwrseq { | 102 | wifi_pwrseq: wifi_pwrseq { |
| 103 | compatible = "mmc-pwrseq-simple"; | 103 | compatible = "mmc-pwrseq-simple"; |
| 104 | reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */ | 104 | reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */ |
| 105 | clocks = <&ccu CLK_OUTA>; | ||
| 106 | clock-names = "ext_clock"; | ||
| 105 | }; | 107 | }; |
| 106 | }; | 108 | }; |
| 107 | 109 | ||
| @@ -196,6 +198,11 @@ | |||
| 196 | status = "okay"; | 198 | status = "okay"; |
| 197 | }; | 199 | }; |
| 198 | 200 | ||
| 201 | &pio { | ||
| 202 | pinctrl-names = "default"; | ||
| 203 | pinctrl-0 = <&clk_out_a_pin>; | ||
| 204 | }; | ||
| 205 | |||
| 199 | ®_aldo2 { | 206 | ®_aldo2 { |
| 200 | regulator-always-on; | 207 | regulator-always-on; |
| 201 | regulator-min-microvolt = <2500000>; | 208 | regulator-min-microvolt = <2500000>; |
| @@ -250,12 +257,27 @@ | |||
| 250 | regulator-name = "vcc-wifi-io"; | 257 | regulator-name = "vcc-wifi-io"; |
| 251 | }; | 258 | }; |
| 252 | 259 | ||
| 260 | /* | ||
| 261 | * Our WiFi chip needs both DLDO2 and DLDO3 to be powered at the same | ||
| 262 | * time, with the two being in sync, to be able to meet maximum power | ||
| 263 | * consumption during transmits. Since this is not really supported | ||
| 264 | * right now, just use the two as always on, and we will fix it later. | ||
| 265 | */ | ||
| 266 | |||
| 253 | ®_dldo2 { | 267 | ®_dldo2 { |
| 268 | regulator-always-on; | ||
| 254 | regulator-min-microvolt = <3300000>; | 269 | regulator-min-microvolt = <3300000>; |
| 255 | regulator-max-microvolt = <3300000>; | 270 | regulator-max-microvolt = <3300000>; |
| 256 | regulator-name = "vcc-wifi"; | 271 | regulator-name = "vcc-wifi"; |
| 257 | }; | 272 | }; |
| 258 | 273 | ||
| 274 | ®_dldo3 { | ||
| 275 | regulator-always-on; | ||
| 276 | regulator-min-microvolt = <3300000>; | ||
| 277 | regulator-max-microvolt = <3300000>; | ||
| 278 | regulator-name = "vcc-wifi-2"; | ||
| 279 | }; | ||
| 280 | |||
| 259 | ®_dldo4 { | 281 | ®_dldo4 { |
| 260 | regulator-min-microvolt = <2500000>; | 282 | regulator-min-microvolt = <2500000>; |
| 261 | regulator-max-microvolt = <2500000>; | 283 | regulator-max-microvolt = <2500000>; |
| @@ -278,6 +300,25 @@ | |||
| 278 | status = "okay"; | 300 | status = "okay"; |
| 279 | }; | 301 | }; |
| 280 | 302 | ||
| 303 | &uart3 { | ||
| 304 | pinctrl-names = "default"; | ||
| 305 | pinctrl-0 = <&uart3_pg_pins>, <&uart3_rts_cts_pg_pins>; | ||
| 306 | uart-has-rtscts; | ||
| 307 | status = "okay"; | ||
| 308 | |||
| 309 | bluetooth { | ||
| 310 | compatible = "brcm,bcm43438-bt"; | ||
| 311 | clocks = <&ccu CLK_OUTA>; | ||
| 312 | clock-names = "lpo"; | ||
| 313 | vbat-supply = <®_dldo2>; | ||
| 314 | vddio-supply = <®_dldo1>; | ||
| 315 | device-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */ | ||
| 316 | /* TODO host wake line connected to PMIC GPIO pins */ | ||
| 317 | shutdown-gpios = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */ | ||
| 318 | max-speed = <1500000>; | ||
| 319 | }; | ||
| 320 | }; | ||
| 321 | |||
| 281 | &usbphy { | 322 | &usbphy { |
| 282 | usb1_vbus-supply = <®_vcc5v0>; | 323 | usb1_vbus-supply = <®_vcc5v0>; |
| 283 | usb2_vbus-supply = <®_vcc5v0>; | 324 | usb2_vbus-supply = <®_vcc5v0>; |
diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi index 89762dbefe42..06b685869f52 100644 --- a/arch/arm/boot/dts/sun8i-r40.dtsi +++ b/arch/arm/boot/dts/sun8i-r40.dtsi | |||
| @@ -342,6 +342,11 @@ | |||
| 342 | #interrupt-cells = <3>; | 342 | #interrupt-cells = <3>; |
| 343 | #gpio-cells = <3>; | 343 | #gpio-cells = <3>; |
| 344 | 344 | ||
| 345 | clk_out_a_pin: clk-out-a-pin { | ||
| 346 | pins = "PI12"; | ||
| 347 | function = "clk_out_a"; | ||
| 348 | }; | ||
| 349 | |||
| 345 | gmac_rgmii_pins: gmac-rgmii-pins { | 350 | gmac_rgmii_pins: gmac-rgmii-pins { |
| 346 | pins = "PA0", "PA1", "PA2", "PA3", | 351 | pins = "PA0", "PA1", "PA2", "PA3", |
| 347 | "PA4", "PA5", "PA6", "PA7", | 352 | "PA4", "PA5", "PA6", "PA7", |
| @@ -389,6 +394,16 @@ | |||
| 389 | pins = "PB22", "PB23"; | 394 | pins = "PB22", "PB23"; |
| 390 | function = "uart0"; | 395 | function = "uart0"; |
| 391 | }; | 396 | }; |
| 397 | |||
| 398 | uart3_pg_pins: uart3-pg-pins { | ||
| 399 | pins = "PG6", "PG7"; | ||
| 400 | function = "uart3"; | ||
| 401 | }; | ||
| 402 | |||
| 403 | uart3_rts_cts_pg_pins: uart3-rts-cts-pg-pins { | ||
| 404 | pins = "PG8", "PG9"; | ||
| 405 | function = "uart3"; | ||
| 406 | }; | ||
| 392 | }; | 407 | }; |
| 393 | 408 | ||
| 394 | wdt: watchdog@1c20c90 { | 409 | wdt: watchdog@1c20c90 { |
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts index 85da85faf869..28c034928d67 100644 --- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | |||
| @@ -133,6 +133,19 @@ | |||
| 133 | status = "okay"; | 133 | status = "okay"; |
| 134 | }; | 134 | }; |
| 135 | 135 | ||
| 136 | &gmac { | ||
| 137 | pinctrl-names = "default"; | ||
| 138 | pinctrl-0 = <&gmac_rgmii_pins>; | ||
| 139 | phy = <&phy1>; | ||
| 140 | phy-mode = "rgmii"; | ||
| 141 | phy-supply = <®_cldo1>; | ||
| 142 | status = "okay"; | ||
| 143 | |||
| 144 | phy1: ethernet-phy@1 { | ||
| 145 | reg = <1>; | ||
| 146 | }; | ||
| 147 | }; | ||
| 148 | |||
| 136 | &i2c3 { | 149 | &i2c3 { |
| 137 | pinctrl-names = "default"; | 150 | pinctrl-names = "default"; |
| 138 | pinctrl-0 = <&i2c3_pins>; | 151 | pinctrl-0 = <&i2c3_pins>; |
| @@ -183,10 +196,26 @@ | |||
| 183 | clocks = <&ac100_rtc 0>; | 196 | clocks = <&ac100_rtc 0>; |
| 184 | }; | 197 | }; |
| 185 | 198 | ||
| 199 | &pio { | ||
| 200 | vcc-pa-supply = <®_ldo_io1>; | ||
| 201 | vcc-pb-supply = <®_aldo2>; | ||
| 202 | vcc-pc-supply = <®_dcdc1>; | ||
| 203 | vcc-pd-supply = <®_dc1sw>; | ||
| 204 | vcc-pe-supply = <®_eldo2>; | ||
| 205 | vcc-pf-supply = <®_dcdc1>; | ||
| 206 | vcc-pg-supply = <®_ldo_io0>; | ||
| 207 | vcc-ph-supply = <®_dcdc1>; | ||
| 208 | }; | ||
| 209 | |||
| 186 | &r_ir { | 210 | &r_ir { |
| 187 | status = "okay"; | 211 | status = "okay"; |
| 188 | }; | 212 | }; |
| 189 | 213 | ||
| 214 | &r_pio { | ||
| 215 | vcc-pl-supply = <®_dldo2>; | ||
| 216 | vcc-pm-supply = <®_eldo3>; | ||
| 217 | }; | ||
| 218 | |||
| 190 | &r_rsb { | 219 | &r_rsb { |
| 191 | status = "okay"; | 220 | status = "okay"; |
| 192 | 221 | ||
| @@ -217,6 +246,10 @@ | |||
| 217 | /* unused */ | 246 | /* unused */ |
| 218 | }; | 247 | }; |
| 219 | 248 | ||
| 249 | reg_dc1sw: dc1sw { | ||
| 250 | regulator-name = "vcc-pd"; | ||
| 251 | }; | ||
| 252 | |||
| 220 | reg_dc5ldo: dc5ldo { | 253 | reg_dc5ldo: dc5ldo { |
| 221 | regulator-always-on; | 254 | regulator-always-on; |
| 222 | regulator-min-microvolt = <800000>; | 255 | regulator-min-microvolt = <800000>; |
| @@ -271,7 +304,6 @@ | |||
| 271 | }; | 304 | }; |
| 272 | 305 | ||
| 273 | reg_dldo2: dldo2 { | 306 | reg_dldo2: dldo2 { |
| 274 | regulator-always-on; | ||
| 275 | regulator-min-microvolt = <3000000>; | 307 | regulator-min-microvolt = <3000000>; |
| 276 | regulator-max-microvolt = <3000000>; | 308 | regulator-max-microvolt = <3000000>; |
| 277 | regulator-name = "vcc-pl"; | 309 | regulator-name = "vcc-pl"; |
| @@ -290,14 +322,12 @@ | |||
| 290 | }; | 322 | }; |
| 291 | 323 | ||
| 292 | reg_eldo3: eldo3 { | 324 | reg_eldo3: eldo3 { |
| 293 | regulator-always-on; | ||
| 294 | regulator-min-microvolt = <3000000>; | 325 | regulator-min-microvolt = <3000000>; |
| 295 | regulator-max-microvolt = <3000000>; | 326 | regulator-max-microvolt = <3000000>; |
| 296 | regulator-name = "vcc-pm-codec-io1"; | 327 | regulator-name = "vcc-pm-codec-io1"; |
| 297 | }; | 328 | }; |
| 298 | 329 | ||
| 299 | reg_ldo_io0: ldo_io0 { | 330 | reg_ldo_io0: ldo_io0 { |
| 300 | regulator-always-on; | ||
| 301 | regulator-min-microvolt = <3000000>; | 331 | regulator-min-microvolt = <3000000>; |
| 302 | regulator-max-microvolt = <3000000>; | 332 | regulator-max-microvolt = <3000000>; |
| 303 | regulator-name = "vcc-pg"; | 333 | regulator-name = "vcc-pg"; |
| @@ -385,6 +415,14 @@ | |||
| 385 | */ | 415 | */ |
| 386 | regulator-min-microvolt = <3300000>; | 416 | regulator-min-microvolt = <3300000>; |
| 387 | regulator-max-microvolt = <3300000>; | 417 | regulator-max-microvolt = <3300000>; |
| 418 | /* | ||
| 419 | * The PHY requires 20ms after all voltages | ||
| 420 | * are applied until core logic is ready and | ||
| 421 | * 30ms after the reset pin is de-asserted. | ||
| 422 | * Set a 100ms delay to account for PMIC | ||
| 423 | * ramp time and board traces. | ||
| 424 | */ | ||
| 425 | regulator-enable-ramp-delay = <100000>; | ||
| 388 | regulator-name = "vcc-gmac-phy"; | 426 | regulator-name = "vcc-gmac-phy"; |
| 389 | }; | 427 | }; |
| 390 | 428 | ||
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts index 58a199b0e494..864715ec3cb0 100644 --- a/arch/arm/boot/dts/sun9i-a80-optimus.dts +++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts | |||
| @@ -120,6 +120,19 @@ | |||
| 120 | status = "okay"; | 120 | status = "okay"; |
| 121 | }; | 121 | }; |
| 122 | 122 | ||
| 123 | &gmac { | ||
| 124 | pinctrl-names = "default"; | ||
| 125 | pinctrl-0 = <&gmac_rgmii_pins>; | ||
| 126 | phy = <&phy1>; | ||
| 127 | phy-mode = "rgmii"; | ||
| 128 | phy-supply = <®_cldo1>; | ||
| 129 | status = "okay"; | ||
| 130 | |||
| 131 | phy1: ethernet-phy@1 { | ||
| 132 | reg = <1>; | ||
| 133 | }; | ||
| 134 | }; | ||
| 135 | |||
| 123 | &mmc0 { | 136 | &mmc0 { |
| 124 | pinctrl-names = "default"; | 137 | pinctrl-names = "default"; |
| 125 | pinctrl-0 = <&mmc0_pins>; | 138 | pinctrl-0 = <&mmc0_pins>; |
| @@ -172,10 +185,26 @@ | |||
| 172 | clocks = <&ac100_rtc 0>; | 185 | clocks = <&ac100_rtc 0>; |
| 173 | }; | 186 | }; |
| 174 | 187 | ||
| 188 | &pio { | ||
| 189 | vcc-pa-supply = <®_ldo_io1>; | ||
| 190 | vcc-pb-supply = <®_aldo2>; | ||
| 191 | vcc-pc-supply = <®_dcdc1>; | ||
| 192 | vcc-pd-supply = <®_dcdc1>; | ||
| 193 | vcc-pe-supply = <®_eldo2>; | ||
| 194 | vcc-pf-supply = <®_dcdc1>; | ||
| 195 | vcc-pg-supply = <®_ldo_io0>; | ||
| 196 | vcc-ph-supply = <®_dcdc1>; | ||
| 197 | }; | ||
| 198 | |||
| 175 | &r_ir { | 199 | &r_ir { |
| 176 | status = "okay"; | 200 | status = "okay"; |
| 177 | }; | 201 | }; |
| 178 | 202 | ||
| 203 | &r_pio { | ||
| 204 | vcc-pl-supply = <®_dldo2>; | ||
| 205 | vcc-pm-supply = <®_eldo3>; | ||
| 206 | }; | ||
| 207 | |||
| 179 | &r_rsb { | 208 | &r_rsb { |
| 180 | status = "okay"; | 209 | status = "okay"; |
| 181 | 210 | ||
| @@ -213,6 +242,10 @@ | |||
| 213 | regulator-name = "vdd-cpus-09-usbh"; | 242 | regulator-name = "vdd-cpus-09-usbh"; |
| 214 | }; | 243 | }; |
| 215 | 244 | ||
| 245 | dc1sw { | ||
| 246 | /* unused */ | ||
| 247 | }; | ||
| 248 | |||
| 216 | reg_dcdc1: dcdc1 { | 249 | reg_dcdc1: dcdc1 { |
| 217 | regulator-always-on; | 250 | regulator-always-on; |
| 218 | regulator-min-microvolt = <3000000>; | 251 | regulator-min-microvolt = <3000000>; |
| @@ -260,7 +293,6 @@ | |||
| 260 | }; | 293 | }; |
| 261 | 294 | ||
| 262 | reg_dldo2: dldo2 { | 295 | reg_dldo2: dldo2 { |
| 263 | regulator-always-on; | ||
| 264 | regulator-min-microvolt = <3000000>; | 296 | regulator-min-microvolt = <3000000>; |
| 265 | regulator-max-microvolt = <3000000>; | 297 | regulator-max-microvolt = <3000000>; |
| 266 | regulator-name = "vcc-pl"; | 298 | regulator-name = "vcc-pl"; |
| @@ -279,14 +311,12 @@ | |||
| 279 | }; | 311 | }; |
| 280 | 312 | ||
| 281 | reg_eldo3: eldo3 { | 313 | reg_eldo3: eldo3 { |
| 282 | regulator-always-on; | ||
| 283 | regulator-min-microvolt = <3000000>; | 314 | regulator-min-microvolt = <3000000>; |
| 284 | regulator-max-microvolt = <3000000>; | 315 | regulator-max-microvolt = <3000000>; |
| 285 | regulator-name = "vcc-pm-codec-io1"; | 316 | regulator-name = "vcc-pm-codec-io1"; |
| 286 | }; | 317 | }; |
| 287 | 318 | ||
| 288 | reg_ldo_io0: ldo_io0 { | 319 | reg_ldo_io0: ldo_io0 { |
| 289 | regulator-always-on; | ||
| 290 | regulator-min-microvolt = <3000000>; | 320 | regulator-min-microvolt = <3000000>; |
| 291 | regulator-max-microvolt = <3000000>; | 321 | regulator-max-microvolt = <3000000>; |
| 292 | regulator-name = "vcc-pg"; | 322 | regulator-name = "vcc-pg"; |
| @@ -374,6 +404,14 @@ | |||
| 374 | */ | 404 | */ |
| 375 | regulator-min-microvolt = <3300000>; | 405 | regulator-min-microvolt = <3300000>; |
| 376 | regulator-max-microvolt = <3300000>; | 406 | regulator-max-microvolt = <3300000>; |
| 407 | /* | ||
| 408 | * The PHY requires 20ms after all voltages | ||
| 409 | * are applied until core logic is ready and | ||
| 410 | * 30ms after the reset pin is de-asserted. | ||
| 411 | * Set a 100ms delay to account for PMIC | ||
| 412 | * ramp time and board traces. | ||
| 413 | */ | ||
| 414 | regulator-enable-ramp-delay = <100000>; | ||
| 377 | regulator-name = "vcc-gmac-phy"; | 415 | regulator-name = "vcc-gmac-phy"; |
| 378 | }; | 416 | }; |
| 379 | 417 | ||
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi index d9532fb1ef65..6fb292e0b662 100644 --- a/arch/arm/boot/dts/sun9i-a80.dtsi +++ b/arch/arm/boot/dts/sun9i-a80.dtsi | |||
| @@ -56,6 +56,10 @@ | |||
| 56 | #size-cells = <2>; | 56 | #size-cells = <2>; |
| 57 | interrupt-parent = <&gic>; | 57 | interrupt-parent = <&gic>; |
| 58 | 58 | ||
| 59 | aliases { | ||
| 60 | ethernet0 = &gmac; | ||
| 61 | }; | ||
| 62 | |||
| 59 | cpus { | 63 | cpus { |
| 60 | #address-cells = <1>; | 64 | #address-cells = <1>; |
| 61 | #size-cells = <0>; | 65 | #size-cells = <0>; |
| @@ -183,6 +187,37 @@ | |||
| 183 | clock-output-names = "osc32k"; | 187 | clock-output-names = "osc32k"; |
| 184 | }; | 188 | }; |
| 185 | 189 | ||
| 190 | /* | ||
| 191 | * The following two are dummy clocks, placeholders | ||
| 192 | * used in the gmac_tx clock. The gmac driver will | ||
| 193 | * choose one parent depending on the PHY interface | ||
| 194 | * mode, using clk_set_rate auto-reparenting. | ||
| 195 | * | ||
| 196 | * The actual TX clock rate is not controlled by the | ||
| 197 | * gmac_tx clock. | ||
| 198 | */ | ||
| 199 | mii_phy_tx_clk: mii_phy_tx_clk { | ||
| 200 | #clock-cells = <0>; | ||
| 201 | compatible = "fixed-clock"; | ||
| 202 | clock-frequency = <25000000>; | ||
| 203 | clock-output-names = "mii_phy_tx"; | ||
| 204 | }; | ||
| 205 | |||
| 206 | gmac_int_tx_clk: gmac_int_tx_clk { | ||
| 207 | #clock-cells = <0>; | ||
| 208 | compatible = "fixed-clock"; | ||
| 209 | clock-frequency = <125000000>; | ||
| 210 | clock-output-names = "gmac_int_tx"; | ||
| 211 | }; | ||
| 212 | |||
| 213 | gmac_tx_clk: clk@800030 { | ||
| 214 | #clock-cells = <0>; | ||
| 215 | compatible = "allwinner,sun7i-a20-gmac-clk"; | ||
| 216 | reg = <0x00800030 0x4>; | ||
| 217 | clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; | ||
| 218 | clock-output-names = "gmac_tx"; | ||
| 219 | }; | ||
| 220 | |||
| 186 | cpus_clk: clk@8001410 { | 221 | cpus_clk: clk@8001410 { |
| 187 | compatible = "allwinner,sun9i-a80-cpus-clk"; | 222 | compatible = "allwinner,sun9i-a80-cpus-clk"; |
| 188 | reg = <0x08001410 0x4>; | 223 | reg = <0x08001410 0x4>; |
| @@ -283,6 +318,23 @@ | |||
| 283 | }; | 318 | }; |
| 284 | }; | 319 | }; |
| 285 | 320 | ||
| 321 | gmac: ethernet@830000 { | ||
| 322 | compatible = "allwinner,sun7i-a20-gmac"; | ||
| 323 | reg = <0x00830000 0x1054>; | ||
| 324 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
| 325 | interrupt-names = "macirq"; | ||
| 326 | clocks = <&ccu CLK_BUS_GMAC>, <&gmac_tx_clk>; | ||
| 327 | clock-names = "stmmaceth", "allwinner_gmac_tx"; | ||
| 328 | resets = <&ccu RST_BUS_GMAC>; | ||
| 329 | reset-names = "stmmaceth"; | ||
| 330 | snps,pbl = <2>; | ||
| 331 | snps,fixed-burst; | ||
| 332 | snps,force_sf_dma_mode; | ||
| 333 | status = "disabled"; | ||
| 334 | #address-cells = <1>; | ||
| 335 | #size-cells = <0>; | ||
| 336 | }; | ||
| 337 | |||
| 286 | ehci0: usb@a00000 { | 338 | ehci0: usb@a00000 { |
| 287 | compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; | 339 | compatible = "allwinner,sun9i-a80-ehci", "generic-ehci"; |
| 288 | reg = <0x00a00000 0x100>; | 340 | reg = <0x00a00000 0x100>; |
| @@ -948,6 +1000,19 @@ | |||
| 948 | #size-cells = <0>; | 1000 | #size-cells = <0>; |
| 949 | #gpio-cells = <3>; | 1001 | #gpio-cells = <3>; |
| 950 | 1002 | ||
| 1003 | gmac_rgmii_pins: gmac-rgmii-pins { | ||
| 1004 | allwinner,pins = "PA0", "PA1", "PA2", "PA3", | ||
| 1005 | "PA4", "PA5", "PA7", "PA8", | ||
| 1006 | "PA9", "PA10", "PA12", "PA13", | ||
| 1007 | "PA15", "PA16", "PA17"; | ||
| 1008 | allwinner,function = "gmac"; | ||
| 1009 | /* | ||
| 1010 | * data lines in RGMII mode use DDR mode | ||
| 1011 | * and need a higher signal drive strength | ||
| 1012 | */ | ||
| 1013 | drive-strength = <40>; | ||
| 1014 | }; | ||
| 1015 | |||
| 951 | i2c3_pins: i2c3-pins { | 1016 | i2c3_pins: i2c3-pins { |
| 952 | pins = "PG10", "PG11"; | 1017 | pins = "PG10", "PG11"; |
| 953 | function = "i2c3"; | 1018 | function = "i2c3"; |
diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi index b3283aeb5b7d..3bed375b9c03 100644 --- a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi +++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi | |||
| @@ -103,6 +103,8 @@ | |||
| 103 | compatible = "mmc-pwrseq-simple"; | 103 | compatible = "mmc-pwrseq-simple"; |
| 104 | pinctrl-names = "default"; | 104 | pinctrl-names = "default"; |
| 105 | reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ | 105 | reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */ |
| 106 | clocks = <&rtc 1>; | ||
| 107 | clock-names = "ext_clock"; | ||
| 106 | }; | 108 | }; |
| 107 | }; | 109 | }; |
| 108 | 110 | ||
| @@ -215,7 +217,19 @@ | |||
| 215 | &uart1 { | 217 | &uart1 { |
| 216 | pinctrl-names = "default"; | 218 | pinctrl-names = "default"; |
| 217 | pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; | 219 | pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; |
| 218 | status = "okay"; | 220 | uart-has-rtscts; |
| 221 | status = "okay"; | ||
| 222 | |||
| 223 | bluetooth { | ||
| 224 | compatible = "brcm,bcm43438-bt"; | ||
| 225 | clocks = <&rtc 1>; | ||
| 226 | clock-names = "lpo"; | ||
| 227 | vbat-supply = <®_vcc3v3>; | ||
| 228 | vddio-supply = <®_vcc3v3>; | ||
| 229 | device-wakeup-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */ | ||
| 230 | host-wakeup-gpios = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */ | ||
| 231 | shutdown-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ | ||
| 232 | }; | ||
| 219 | }; | 233 | }; |
| 220 | 234 | ||
| 221 | &usb_otg { | 235 | &usb_otg { |
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi index a4c757c0b741..d74a6cbbfdf4 100644 --- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi +++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi | |||
| @@ -740,8 +740,7 @@ | |||
| 740 | }; | 740 | }; |
| 741 | 741 | ||
| 742 | csi: camera@1cb0000 { | 742 | csi: camera@1cb0000 { |
| 743 | compatible = "allwinner,sun8i-h3-csi", | 743 | compatible = "allwinner,sun8i-h3-csi"; |
| 744 | "allwinner,sun6i-a31-csi"; | ||
| 745 | reg = <0x01cb0000 0x1000>; | 744 | reg = <0x01cb0000 0x1000>; |
| 746 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | 745 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; |
| 747 | clocks = <&ccu CLK_BUS_CSI>, | 746 | clocks = <&ccu CLK_BUS_CSI>, |
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts index 1788556b4977..97a5c3504bbe 100644 --- a/arch/arm/boot/dts/tegra114-dalmore.dts +++ b/arch/arm/boot/dts/tegra114-dalmore.dts | |||
| @@ -1087,7 +1087,7 @@ | |||
| 1087 | status = "okay"; | 1087 | status = "okay"; |
| 1088 | spi-max-frequency = <25000000>; | 1088 | spi-max-frequency = <25000000>; |
| 1089 | spi-flash@0 { | 1089 | spi-flash@0 { |
| 1090 | compatible = "winbond,w25q32dw"; | 1090 | compatible = "winbond,w25q32dw", "jedec,spi-nor"; |
| 1091 | reg = <0>; | 1091 | reg = <0>; |
| 1092 | spi-max-frequency = <20000000>; | 1092 | spi-max-frequency = <20000000>; |
| 1093 | }; | 1093 | }; |
diff --git a/arch/arm/boot/dts/tegra124-jetson-tk1.dts b/arch/arm/boot/dts/tegra124-jetson-tk1.dts index 9151b3ebb839..33bbb1c5285d 100644 --- a/arch/arm/boot/dts/tegra124-jetson-tk1.dts +++ b/arch/arm/boot/dts/tegra124-jetson-tk1.dts | |||
| @@ -1656,7 +1656,7 @@ | |||
| 1656 | status = "okay"; | 1656 | status = "okay"; |
| 1657 | spi-max-frequency = <25000000>; | 1657 | spi-max-frequency = <25000000>; |
| 1658 | spi-flash@0 { | 1658 | spi-flash@0 { |
| 1659 | compatible = "winbond,w25q32dw"; | 1659 | compatible = "winbond,w25q32dw", "jedec,spi-nor"; |
| 1660 | reg = <0>; | 1660 | reg = <0>; |
| 1661 | spi-max-frequency = <20000000>; | 1661 | spi-max-frequency = <20000000>; |
| 1662 | }; | 1662 | }; |
diff --git a/arch/arm/boot/dts/tegra124-nyan.dtsi b/arch/arm/boot/dts/tegra124-nyan.dtsi index d5f11d6d987e..a1acd872bcf2 100644 --- a/arch/arm/boot/dts/tegra124-nyan.dtsi +++ b/arch/arm/boot/dts/tegra124-nyan.dtsi | |||
| @@ -13,10 +13,25 @@ | |||
| 13 | stdout-path = "serial0:115200n8"; | 13 | stdout-path = "serial0:115200n8"; |
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | memory@80000000 { | 16 | /* |
| 17 | * Note that recent version of the device tree compiler (starting with | ||
| 18 | * version 1.4.2) warn about this node containing a reg property, but | ||
| 19 | * missing a unit-address. However, the bootloader on these Chromebook | ||
| 20 | * devices relies on the full name of this node to be exactly /memory. | ||
| 21 | * Adding the unit-address causes the bootloader to create a /memory | ||
| 22 | * node and write the memory bank configuration to that node, which in | ||
| 23 | * turn leads the kernel to believe that the device has 2 GiB of | ||
| 24 | * memory instead of the amount detected by the bootloader. | ||
| 25 | * | ||
| 26 | * The name of this node is effectively ABI and must not be changed. | ||
| 27 | */ | ||
| 28 | memory { | ||
| 29 | device_type = "memory"; | ||
| 17 | reg = <0x0 0x80000000 0x0 0x80000000>; | 30 | reg = <0x0 0x80000000 0x0 0x80000000>; |
| 18 | }; | 31 | }; |
| 19 | 32 | ||
| 33 | /delete-node/ memory@80000000; | ||
| 34 | |||
| 20 | host1x@50000000 { | 35 | host1x@50000000 { |
| 21 | hdmi@54280000 { | 36 | hdmi@54280000 { |
| 22 | status = "okay"; | 37 | status = "okay"; |
| @@ -355,7 +370,7 @@ | |||
| 355 | spi-max-frequency = <25000000>; | 370 | spi-max-frequency = <25000000>; |
| 356 | 371 | ||
| 357 | flash@0 { | 372 | flash@0 { |
| 358 | compatible = "winbond,w25q32dw"; | 373 | compatible = "winbond,w25q32dw", "jedec,spi-nor"; |
| 359 | spi-max-frequency = <25000000>; | 374 | spi-max-frequency = <25000000>; |
| 360 | reg = <0>; | 375 | reg = <0>; |
| 361 | }; | 376 | }; |
diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts index 82d139648ef1..4882b61fb680 100644 --- a/arch/arm/boot/dts/tegra124-venice2.dts +++ b/arch/arm/boot/dts/tegra124-venice2.dts | |||
| @@ -879,7 +879,7 @@ | |||
| 879 | status = "okay"; | 879 | status = "okay"; |
| 880 | spi-max-frequency = <25000000>; | 880 | spi-max-frequency = <25000000>; |
| 881 | spi-flash@0 { | 881 | spi-flash@0 { |
| 882 | compatible = "winbond,w25q32dw"; | 882 | compatible = "winbond,w25q32dw", "jedec,spi-nor"; |
| 883 | reg = <0>; | 883 | reg = <0>; |
| 884 | spi-max-frequency = <20000000>; | 884 | spi-max-frequency = <20000000>; |
| 885 | }; | 885 | }; |
diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts index 9eb26dc15f6b..3e5ac096d85e 100644 --- a/arch/arm/boot/dts/tegra20-trimslice.dts +++ b/arch/arm/boot/dts/tegra20-trimslice.dts | |||
| @@ -287,7 +287,7 @@ | |||
| 287 | status = "okay"; | 287 | status = "okay"; |
| 288 | spi-max-frequency = <48000000>; | 288 | spi-max-frequency = <48000000>; |
| 289 | spi-flash@0 { | 289 | spi-flash@0 { |
| 290 | compatible = "winbond,w25q80bl"; | 290 | compatible = "winbond,w25q80bl", "jedec,spi-nor"; |
| 291 | reg = <0>; | 291 | reg = <0>; |
| 292 | spi-max-frequency = <48000000>; | 292 | spi-max-frequency = <48000000>; |
| 293 | }; | 293 | }; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index dcad6d6128cf..8c942e60703e 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
| @@ -616,17 +616,14 @@ | |||
| 616 | }; | 616 | }; |
| 617 | 617 | ||
| 618 | mc: memory-controller@7000f000 { | 618 | mc: memory-controller@7000f000 { |
| 619 | compatible = "nvidia,tegra20-mc"; | 619 | compatible = "nvidia,tegra20-mc-gart"; |
| 620 | reg = <0x7000f000 0x024 | 620 | reg = <0x7000f000 0x400 /* controller registers */ |
| 621 | 0x7000f03c 0x3c4>; | 621 | 0x58000000 0x02000000>; /* GART aperture */ |
| 622 | clocks = <&tegra_car TEGRA20_CLK_MC>; | ||
| 623 | clock-names = "mc"; | ||
| 622 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; | 624 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; |
| 623 | #reset-cells = <1>; | 625 | #reset-cells = <1>; |
| 624 | }; | 626 | #iommu-cells = <0>; |
| 625 | |||
| 626 | iommu@7000f024 { | ||
| 627 | compatible = "nvidia,tegra20-gart"; | ||
| 628 | reg = <0x7000f024 0x00000018 /* controller registers */ | ||
| 629 | 0x58000000 0x02000000>; /* GART aperture */ | ||
| 630 | }; | 627 | }; |
| 631 | 628 | ||
| 632 | memory-controller@7000f400 { | 629 | memory-controller@7000f400 { |
diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts index b0d40ac8ac6e..a3b0f3555cd2 100644 --- a/arch/arm/boot/dts/tegra30-beaver.dts +++ b/arch/arm/boot/dts/tegra30-beaver.dts | |||
| @@ -1886,7 +1886,7 @@ | |||
| 1886 | status = "okay"; | 1886 | status = "okay"; |
| 1887 | spi-max-frequency = <25000000>; | 1887 | spi-max-frequency = <25000000>; |
| 1888 | spi-flash@1 { | 1888 | spi-flash@1 { |
| 1889 | compatible = "winbond,w25q32"; | 1889 | compatible = "winbond,w25q32", "jedec,spi-nor"; |
| 1890 | reg = <1>; | 1890 | reg = <1>; |
| 1891 | spi-max-frequency = <20000000>; | 1891 | spi-max-frequency = <20000000>; |
| 1892 | }; | 1892 | }; |
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index fb9222b479d2..7ce61edd52f5 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi | |||
| @@ -360,7 +360,7 @@ | |||
| 360 | status = "okay"; | 360 | status = "okay"; |
| 361 | spi-max-frequency = <25000000>; | 361 | spi-max-frequency = <25000000>; |
| 362 | spi-flash@1 { | 362 | spi-flash@1 { |
| 363 | compatible = "winbond,w25q32"; | 363 | compatible = "winbond,w25q32", "jedec,spi-nor"; |
| 364 | reg = <1>; | 364 | reg = <1>; |
| 365 | spi-max-frequency = <20000000>; | 365 | spi-max-frequency = <20000000>; |
| 366 | }; | 366 | }; |
diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts index 6f4f60ba5429..269e6bf99ccb 100644 --- a/arch/arm/boot/dts/versatile-ab.dts +++ b/arch/arm/boot/dts/versatile-ab.dts | |||
| @@ -1,6 +1,5 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | /dts-v1/; | 2 | /dts-v1/; |
| 3 | /include/ "skeleton.dtsi" | ||
| 4 | 3 | ||
| 5 | / { | 4 | / { |
| 6 | model = "ARM Versatile AB"; | 5 | model = "ARM Versatile AB"; |
| @@ -21,6 +20,7 @@ | |||
| 21 | }; | 20 | }; |
| 22 | 21 | ||
| 23 | memory { | 22 | memory { |
| 23 | device_type = "memory"; | ||
| 24 | reg = <0x0 0x08000000>; | 24 | reg = <0x0 0x08000000>; |
| 25 | }; | 25 | }; |
| 26 | 26 | ||
diff --git a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi index a9569d15de41..d3963e9eaf48 100644 --- a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi +++ b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi | |||
| @@ -133,7 +133,7 @@ | |||
| 133 | mmci@50000 { | 133 | mmci@50000 { |
| 134 | compatible = "arm,pl180", "arm,primecell"; | 134 | compatible = "arm,pl180", "arm,primecell"; |
| 135 | reg = <0x050000 0x1000>; | 135 | reg = <0x050000 0x1000>; |
| 136 | interrupts = <9 10>; | 136 | interrupts = <9>, <10>; |
| 137 | cd-gpios = <&v2m_mmc_gpios 0 0>; | 137 | cd-gpios = <&v2m_mmc_gpios 0 0>; |
| 138 | wp-gpios = <&v2m_mmc_gpios 1 0>; | 138 | wp-gpios = <&v2m_mmc_gpios 1 0>; |
| 139 | max-frequency = <12000000>; | 139 | max-frequency = <12000000>; |
diff --git a/arch/arm/boot/dts/vexpress-v2m.dtsi b/arch/arm/boot/dts/vexpress-v2m.dtsi index fd42e1194179..798c97aff7fa 100644 --- a/arch/arm/boot/dts/vexpress-v2m.dtsi +++ b/arch/arm/boot/dts/vexpress-v2m.dtsi | |||
| @@ -133,7 +133,7 @@ | |||
| 133 | mmci@5000 { | 133 | mmci@5000 { |
| 134 | compatible = "arm,pl180", "arm,primecell"; | 134 | compatible = "arm,pl180", "arm,primecell"; |
| 135 | reg = <0x05000 0x1000>; | 135 | reg = <0x05000 0x1000>; |
| 136 | interrupts = <9 10>; | 136 | interrupts = <9>, <10>; |
| 137 | cd-gpios = <&v2m_mmc_gpios 0 0>; | 137 | cd-gpios = <&v2m_mmc_gpios 0 0>; |
| 138 | wp-gpios = <&v2m_mmc_gpios 1 0>; | 138 | wp-gpios = <&v2m_mmc_gpios 1 0>; |
| 139 | max-frequency = <12000000>; | 139 | max-frequency = <12000000>; |
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts index a2ccacd07f4f..00cd9f5bef2e 100644 --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | cci-control-port = <&cci_control1>; | 42 | cci-control-port = <&cci_control1>; |
| 43 | cpu-idle-states = <&CLUSTER_SLEEP_BIG>; | 43 | cpu-idle-states = <&CLUSTER_SLEEP_BIG>; |
| 44 | capacity-dmips-mhz = <1024>; | 44 | capacity-dmips-mhz = <1024>; |
| 45 | dynamic-power-coefficient = <990>; | ||
| 45 | }; | 46 | }; |
| 46 | 47 | ||
| 47 | cpu1: cpu@1 { | 48 | cpu1: cpu@1 { |
| @@ -51,6 +52,7 @@ | |||
| 51 | cci-control-port = <&cci_control1>; | 52 | cci-control-port = <&cci_control1>; |
| 52 | cpu-idle-states = <&CLUSTER_SLEEP_BIG>; | 53 | cpu-idle-states = <&CLUSTER_SLEEP_BIG>; |
| 53 | capacity-dmips-mhz = <1024>; | 54 | capacity-dmips-mhz = <1024>; |
| 55 | dynamic-power-coefficient = <990>; | ||
| 54 | }; | 56 | }; |
| 55 | 57 | ||
| 56 | cpu2: cpu@2 { | 58 | cpu2: cpu@2 { |
| @@ -60,6 +62,7 @@ | |||
| 60 | cci-control-port = <&cci_control2>; | 62 | cci-control-port = <&cci_control2>; |
| 61 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; | 63 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; |
| 62 | capacity-dmips-mhz = <516>; | 64 | capacity-dmips-mhz = <516>; |
| 65 | dynamic-power-coefficient = <133>; | ||
| 63 | }; | 66 | }; |
| 64 | 67 | ||
| 65 | cpu3: cpu@3 { | 68 | cpu3: cpu@3 { |
| @@ -69,6 +72,7 @@ | |||
| 69 | cci-control-port = <&cci_control2>; | 72 | cci-control-port = <&cci_control2>; |
| 70 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; | 73 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; |
| 71 | capacity-dmips-mhz = <516>; | 74 | capacity-dmips-mhz = <516>; |
| 75 | dynamic-power-coefficient = <133>; | ||
| 72 | }; | 76 | }; |
| 73 | 77 | ||
| 74 | cpu4: cpu@4 { | 78 | cpu4: cpu@4 { |
| @@ -78,6 +82,7 @@ | |||
| 78 | cci-control-port = <&cci_control2>; | 82 | cci-control-port = <&cci_control2>; |
| 79 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; | 83 | cpu-idle-states = <&CLUSTER_SLEEP_LITTLE>; |
| 80 | capacity-dmips-mhz = <516>; | 84 | capacity-dmips-mhz = <516>; |
| 85 | dynamic-power-coefficient = <133>; | ||
| 81 | }; | 86 | }; |
| 82 | 87 | ||
| 83 | idle-states { | 88 | idle-states { |
diff --git a/arch/arm/boot/dts/vf610-bk4.dts b/arch/arm/boot/dts/vf610-bk4.dts index 689c8930dce3..3fa0cbe456db 100644 --- a/arch/arm/boot/dts/vf610-bk4.dts +++ b/arch/arm/boot/dts/vf610-bk4.dts | |||
| @@ -60,6 +60,29 @@ | |||
| 60 | regulator-min-microvolt = <3300000>; | 60 | regulator-min-microvolt = <3300000>; |
| 61 | regulator-max-microvolt = <3300000>; | 61 | regulator-max-microvolt = <3300000>; |
| 62 | }; | 62 | }; |
| 63 | |||
| 64 | spi-gpio { | ||
| 65 | compatible = "spi-gpio"; | ||
| 66 | pinctrl-0 = <&pinctrl_gpio_spi>; | ||
| 67 | pinctrl-names = "default"; | ||
| 68 | #address-cells = <1>; | ||
| 69 | #size-cells = <0>; | ||
| 70 | /* PTD12 ->RPIO[91] */ | ||
| 71 | sck-gpios = <&gpio2 27 GPIO_ACTIVE_LOW>; | ||
| 72 | /* PTD10 ->RPIO[89] */ | ||
| 73 | miso-gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>; | ||
| 74 | num-chipselects = <0>; | ||
| 75 | |||
| 76 | gpio@0 { | ||
| 77 | compatible = "pisosr-gpio"; | ||
| 78 | reg = <0>; | ||
| 79 | gpio-controller; | ||
| 80 | #gpio-cells = <2>; | ||
| 81 | /* PTB18 -> RGPIO[40] */ | ||
| 82 | load-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; | ||
| 83 | spi-max-frequency = <100000>; | ||
| 84 | }; | ||
| 85 | }; | ||
| 63 | }; | 86 | }; |
| 64 | 87 | ||
| 65 | &adc0 { | 88 | &adc0 { |
| @@ -110,11 +133,11 @@ | |||
| 110 | bus-num = <3>; | 133 | bus-num = <3>; |
| 111 | status = "okay"; | 134 | status = "okay"; |
| 112 | spi-slave; | 135 | spi-slave; |
| 136 | #address-cells = <0>; | ||
| 113 | 137 | ||
| 114 | slave@0 { | 138 | slave { |
| 115 | compatible = "lwn,bk4"; | 139 | compatible = "lwn,bk4"; |
| 116 | spi-max-frequency = <30000000>; | 140 | spi-max-frequency = <30000000>; |
| 117 | reg = <0>; | ||
| 118 | }; | 141 | }; |
| 119 | }; | 142 | }; |
| 120 | 143 | ||
| @@ -431,6 +454,14 @@ | |||
| 431 | >; | 454 | >; |
| 432 | }; | 455 | }; |
| 433 | 456 | ||
| 457 | pinctrl_gpio_spi: pinctrl-gpio-spi { | ||
| 458 | fsl,pins = < | ||
| 459 | VF610_PAD_PTB18__GPIO_40 0x1183 | ||
| 460 | VF610_PAD_PTD10__GPIO_89 0x1183 | ||
| 461 | VF610_PAD_PTD12__GPIO_91 0x1183 | ||
| 462 | >; | ||
| 463 | }; | ||
| 464 | |||
| 434 | pinctrl_i2c2: i2c2grp { | 465 | pinctrl_i2c2: i2c2grp { |
| 435 | fsl,pins = < | 466 | fsl,pins = < |
| 436 | VF610_PAD_PTA22__I2C2_SCL 0x34df | 467 | VF610_PAD_PTA22__I2C2_SCL 0x34df |
diff --git a/arch/arm/boot/dts/vf610-zii-cfu1.dts b/arch/arm/boot/dts/vf610-zii-cfu1.dts index 7cdcc5fe8282..445c7dc306b2 100644 --- a/arch/arm/boot/dts/vf610-zii-cfu1.dts +++ b/arch/arm/boot/dts/vf610-zii-cfu1.dts | |||
| @@ -207,7 +207,7 @@ | |||
| 207 | }; | 207 | }; |
| 208 | 208 | ||
| 209 | &i2c0 { | 209 | &i2c0 { |
| 210 | clock-frequency = <100000>; | 210 | clock-frequency = <400000>; |
| 211 | pinctrl-names = "default"; | 211 | pinctrl-names = "default"; |
| 212 | pinctrl-0 = <&pinctrl_i2c0>; | 212 | pinctrl-0 = <&pinctrl_i2c0>; |
| 213 | status = "okay"; | 213 | status = "okay"; |
diff --git a/arch/arm/boot/dts/vf610-zii-ssmb-dtu.dts b/arch/arm/boot/dts/vf610-zii-ssmb-dtu.dts new file mode 100644 index 000000000000..2b10672fadbd --- /dev/null +++ b/arch/arm/boot/dts/vf610-zii-ssmb-dtu.dts | |||
| @@ -0,0 +1,311 @@ | |||
| 1 | // SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
| 2 | |||
| 3 | /* | ||
| 4 | * Device tree file for ZII's SSMB DTU board | ||
| 5 | * | ||
| 6 | * SSMB - SPU3 Switch Management Board | ||
| 7 | * DTU - Digital Tapping Unit | ||
| 8 | * | ||
| 9 | * Copyright (C) 2015-2019 Zodiac Inflight Innovations | ||
| 10 | * | ||
| 11 | * Based on an original 'vf610-twr.dts' which is Copyright 2015, | ||
| 12 | * Freescale Semiconductor, Inc. | ||
| 13 | */ | ||
| 14 | |||
| 15 | /dts-v1/; | ||
| 16 | #include "vf610.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "ZII VF610 SSMB DTU Board"; | ||
| 20 | compatible = "zii,vf610dtu", "zii,vf610dev", "fsl,vf610"; | ||
| 21 | |||
| 22 | chosen { | ||
| 23 | stdout-path = &uart0; | ||
| 24 | }; | ||
| 25 | |||
| 26 | memory@80000000 { | ||
| 27 | device_type = "memory"; | ||
| 28 | reg = <0x80000000 0x20000000>; | ||
| 29 | }; | ||
| 30 | |||
| 31 | gpio-leds { | ||
| 32 | compatible = "gpio-leds"; | ||
| 33 | pinctrl-0 = <&pinctrl_leds_debug>; | ||
| 34 | pinctrl-names = "default"; | ||
| 35 | |||
| 36 | led-debug { | ||
| 37 | label = "zii:green:debug1"; | ||
| 38 | gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>; | ||
| 39 | linux,default-trigger = "heartbeat"; | ||
| 40 | max-brightness = <1>; | ||
| 41 | }; | ||
| 42 | }; | ||
| 43 | |||
| 44 | reg_vcc_3v3_mcu: regulator { | ||
| 45 | compatible = "regulator-fixed"; | ||
| 46 | regulator-name = "vcc_3v3_mcu"; | ||
| 47 | regulator-min-microvolt = <3300000>; | ||
| 48 | regulator-max-microvolt = <3300000>; | ||
| 49 | }; | ||
| 50 | }; | ||
| 51 | |||
| 52 | &adc0 { | ||
| 53 | vref-supply = <®_vcc_3v3_mcu>; | ||
| 54 | status = "okay"; | ||
| 55 | }; | ||
| 56 | |||
| 57 | &adc1 { | ||
| 58 | vref-supply = <®_vcc_3v3_mcu>; | ||
| 59 | status = "okay"; | ||
| 60 | }; | ||
| 61 | |||
| 62 | &edma0 { | ||
| 63 | status = "okay"; | ||
| 64 | }; | ||
| 65 | |||
| 66 | &edma1 { | ||
| 67 | status = "okay"; | ||
| 68 | }; | ||
| 69 | |||
| 70 | &esdhc0 { | ||
| 71 | pinctrl-names = "default"; | ||
| 72 | pinctrl-0 = <&pinctrl_esdhc0>; | ||
| 73 | bus-width = <8>; | ||
| 74 | non-removable; | ||
| 75 | no-1-8-v; | ||
| 76 | keep-power-in-suspend; | ||
| 77 | status = "okay"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | &esdhc1 { | ||
| 81 | pinctrl-names = "default"; | ||
| 82 | pinctrl-0 = <&pinctrl_esdhc1>; | ||
| 83 | bus-width = <4>; | ||
| 84 | status = "okay"; | ||
| 85 | }; | ||
| 86 | |||
| 87 | &fec1 { | ||
| 88 | phy-mode = "rmii"; | ||
| 89 | pinctrl-names = "default"; | ||
| 90 | pinctrl-0 = <&pinctrl_fec1>; | ||
| 91 | status = "okay"; | ||
| 92 | |||
| 93 | fixed-link { | ||
| 94 | speed = <100>; | ||
| 95 | full-duplex; | ||
| 96 | }; | ||
| 97 | |||
| 98 | mdio1: mdio { | ||
| 99 | #address-cells = <1>; | ||
| 100 | #size-cells = <0>; | ||
| 101 | status = "okay"; | ||
| 102 | |||
| 103 | switch0: switch0@0 { | ||
| 104 | compatible = "marvell,mv88e6190"; | ||
| 105 | pinctrl-0 = <&pinctrl_gpio_switch0>; | ||
| 106 | pinctrl-names = "default"; | ||
| 107 | reg = <0>; | ||
| 108 | eeprom-length = <65536>; | ||
| 109 | reset-gpios = <&gpio3 11 GPIO_ACTIVE_LOW>; | ||
| 110 | interrupt-parent = <&gpio3>; | ||
| 111 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; | ||
| 112 | interrupt-controller; | ||
| 113 | #interrupt-cells = <2>; | ||
| 114 | |||
| 115 | ports { | ||
| 116 | #address-cells = <1>; | ||
| 117 | #size-cells = <0>; | ||
| 118 | |||
| 119 | port@0 { | ||
| 120 | reg = <0>; | ||
| 121 | label = "cpu"; | ||
| 122 | ethernet = <&fec1>; | ||
| 123 | |||
| 124 | fixed-link { | ||
| 125 | speed = <100>; | ||
| 126 | full-duplex; | ||
| 127 | }; | ||
| 128 | }; | ||
| 129 | |||
| 130 | port@1 { | ||
| 131 | reg = <1>; | ||
| 132 | label = "eth_cu_100_3"; | ||
| 133 | }; | ||
| 134 | |||
| 135 | port@5 { | ||
| 136 | reg = <5>; | ||
| 137 | label = "eth_cu_1000_4"; | ||
| 138 | }; | ||
| 139 | |||
| 140 | port@6 { | ||
| 141 | reg = <6>; | ||
| 142 | label = "eth_cu_1000_5"; | ||
| 143 | }; | ||
| 144 | |||
| 145 | port@8 { | ||
| 146 | reg = <8>; | ||
| 147 | label = "eth_cu_1000_1"; | ||
| 148 | }; | ||
| 149 | |||
| 150 | port@9 { | ||
| 151 | reg = <9>; | ||
| 152 | label = "eth_cu_1000_2"; | ||
| 153 | phy-handle = <&phy9>; | ||
| 154 | phy-mode = "sgmii"; | ||
| 155 | managed = "in-band-status"; | ||
| 156 | }; | ||
| 157 | }; | ||
| 158 | |||
| 159 | mdio1 { | ||
| 160 | compatible = "marvell,mv88e6xxx-mdio-external"; | ||
| 161 | #address-cells = <1>; | ||
| 162 | #size-cells = <0>; | ||
| 163 | |||
| 164 | phy9: phy9@0 { | ||
| 165 | compatible = "ethernet-phy-ieee802.3-c45"; | ||
| 166 | pinctrl-0 = <&pinctrl_gpio_phy9>; | ||
| 167 | pinctrl-names = "default"; | ||
| 168 | interrupt-parent = <&gpio2>; | ||
| 169 | interrupts = <30 IRQ_TYPE_LEVEL_LOW>; | ||
| 170 | reg = <0>; | ||
| 171 | }; | ||
| 172 | }; | ||
| 173 | }; | ||
| 174 | }; | ||
| 175 | }; | ||
| 176 | |||
| 177 | &i2c0 { | ||
| 178 | clock-frequency = <100000>; | ||
| 179 | pinctrl-names = "default"; | ||
| 180 | pinctrl-0 = <&pinctrl_i2c0>; | ||
| 181 | status = "okay"; | ||
| 182 | |||
| 183 | gpio6: gpio-expander@22 { | ||
| 184 | compatible = "nxp,pca9554"; | ||
| 185 | reg = <0x22>; | ||
| 186 | gpio-controller; | ||
| 187 | #gpio-cells = <2>; | ||
| 188 | }; | ||
| 189 | |||
| 190 | /* On SSMB */ | ||
| 191 | temperature-sensor@48 { | ||
| 192 | compatible = "national,lm75"; | ||
| 193 | reg = <0x48>; | ||
| 194 | }; | ||
| 195 | |||
| 196 | /* On DSB */ | ||
| 197 | temperature-sensor@4d { | ||
| 198 | compatible = "national,lm75"; | ||
| 199 | reg = <0x4d>; | ||
| 200 | }; | ||
| 201 | |||
| 202 | eeprom@50 { | ||
| 203 | compatible = "atmel,24c04"; | ||
| 204 | reg = <0x50>; | ||
| 205 | label = "nameplate"; | ||
| 206 | }; | ||
| 207 | |||
| 208 | eeprom@52 { | ||
| 209 | compatible = "atmel,24c04"; | ||
| 210 | reg = <0x52>; | ||
| 211 | }; | ||
| 212 | }; | ||
| 213 | |||
| 214 | &uart0 { | ||
| 215 | pinctrl-names = "default"; | ||
| 216 | pinctrl-0 = <&pinctrl_uart0>; | ||
| 217 | status = "okay"; | ||
| 218 | }; | ||
| 219 | |||
| 220 | &iomuxc { | ||
| 221 | pinctrl_dspi1: dspi1grp { | ||
| 222 | fsl,pins = < | ||
| 223 | VF610_PAD_PTD5__DSPI1_CS0 0x1182 | ||
| 224 | VF610_PAD_PTD4__DSPI1_CS1 0x1182 | ||
| 225 | VF610_PAD_PTC6__DSPI1_SIN 0x1181 | ||
| 226 | VF610_PAD_PTC7__DSPI1_SOUT 0x1182 | ||
| 227 | VF610_PAD_PTC8__DSPI1_SCK 0x1182 | ||
| 228 | >; | ||
| 229 | }; | ||
| 230 | |||
| 231 | pinctrl_esdhc0: esdhc0grp { | ||
| 232 | fsl,pins = < | ||
| 233 | VF610_PAD_PTC0__ESDHC0_CLK 0x31ef | ||
| 234 | VF610_PAD_PTC1__ESDHC0_CMD 0x31ef | ||
| 235 | VF610_PAD_PTC2__ESDHC0_DAT0 0x31ef | ||
| 236 | VF610_PAD_PTC3__ESDHC0_DAT1 0x31ef | ||
| 237 | VF610_PAD_PTC4__ESDHC0_DAT2 0x31ef | ||
| 238 | VF610_PAD_PTC5__ESDHC0_DAT3 0x31ef | ||
| 239 | VF610_PAD_PTD23__ESDHC0_DAT4 0x31ef | ||
| 240 | VF610_PAD_PTD22__ESDHC0_DAT5 0x31ef | ||
| 241 | VF610_PAD_PTD21__ESDHC0_DAT6 0x31ef | ||
| 242 | VF610_PAD_PTD20__ESDHC0_DAT7 0x31ef | ||
| 243 | >; | ||
| 244 | }; | ||
| 245 | |||
| 246 | pinctrl_esdhc1: esdhc1grp { | ||
| 247 | fsl,pins = < | ||
| 248 | VF610_PAD_PTA24__ESDHC1_CLK 0x31ef | ||
| 249 | VF610_PAD_PTA25__ESDHC1_CMD 0x31ef | ||
| 250 | VF610_PAD_PTA26__ESDHC1_DAT0 0x31ef | ||
| 251 | VF610_PAD_PTA27__ESDHC1_DAT1 0x31ef | ||
| 252 | VF610_PAD_PTA28__ESDHC1_DATA2 0x31ef | ||
| 253 | VF610_PAD_PTA29__ESDHC1_DAT3 0x31ef | ||
| 254 | >; | ||
| 255 | }; | ||
| 256 | |||
| 257 | pinctrl_fec1: fec1grp { | ||
| 258 | fsl,pins = < | ||
| 259 | VF610_PAD_PTA6__RMII_CLKIN 0x30d1 | ||
| 260 | VF610_PAD_PTC9__ENET_RMII1_MDC 0x30d2 | ||
| 261 | VF610_PAD_PTC10__ENET_RMII1_MDIO 0x30d3 | ||
| 262 | VF610_PAD_PTC11__ENET_RMII1_CRS 0x30d1 | ||
| 263 | VF610_PAD_PTC12__ENET_RMII1_RXD1 0x30d1 | ||
| 264 | VF610_PAD_PTC13__ENET_RMII1_RXD0 0x30d1 | ||
| 265 | VF610_PAD_PTC14__ENET_RMII1_RXER 0x30d1 | ||
| 266 | VF610_PAD_PTC15__ENET_RMII1_TXD1 0x30d2 | ||
| 267 | VF610_PAD_PTC16__ENET_RMII1_TXD0 0x30d2 | ||
| 268 | VF610_PAD_PTC17__ENET_RMII1_TXEN 0x30d2 | ||
| 269 | >; | ||
| 270 | }; | ||
| 271 | |||
| 272 | pinctrl_gpio_phy9: pinctrl-gpio-phy9 { | ||
| 273 | fsl,pins = < | ||
| 274 | VF610_PAD_PTB24__GPIO_94 0x219d | ||
| 275 | >; | ||
| 276 | }; | ||
| 277 | |||
| 278 | pinctrl_gpio_switch0: pinctrl-gpio-switch0 { | ||
| 279 | fsl,pins = < | ||
| 280 | VF610_PAD_PTE2__GPIO_107 0x31c2 | ||
| 281 | VF610_PAD_PTB28__GPIO_98 0x219d | ||
| 282 | >; | ||
| 283 | }; | ||
| 284 | |||
| 285 | pinctrl_i2c0: i2c0grp { | ||
| 286 | fsl,pins = < | ||
| 287 | VF610_PAD_PTB14__I2C0_SCL 0x37ff | ||
| 288 | VF610_PAD_PTB15__I2C0_SDA 0x37ff | ||
| 289 | >; | ||
| 290 | }; | ||
| 291 | |||
| 292 | pinctrl_i2c1: i2c1grp { | ||
| 293 | fsl,pins = < | ||
| 294 | VF610_PAD_PTB16__I2C1_SCL 0x37ff | ||
| 295 | VF610_PAD_PTB17__I2C1_SDA 0x37ff | ||
| 296 | >; | ||
| 297 | }; | ||
| 298 | |||
| 299 | pinctrl_leds_debug: pinctrl-leds-debug { | ||
| 300 | fsl,pins = < | ||
| 301 | VF610_PAD_PTD3__GPIO_82 0x31c2 | ||
| 302 | >; | ||
| 303 | }; | ||
| 304 | |||
| 305 | pinctrl_uart0: uart0grp { | ||
| 306 | fsl,pins = < | ||
| 307 | VF610_PAD_PTB10__UART0_TX 0x21a2 | ||
| 308 | VF610_PAD_PTB11__UART0_RX 0x21a1 | ||
| 309 | >; | ||
| 310 | }; | ||
| 311 | }; | ||
diff --git a/arch/arm/boot/dts/vf610-zii-ssmb-spu3.dts b/arch/arm/boot/dts/vf610-zii-ssmb-spu3.dts index 757af56e8ee7..0d9fe5ac83a3 100644 --- a/arch/arm/boot/dts/vf610-zii-ssmb-spu3.dts +++ b/arch/arm/boot/dts/vf610-zii-ssmb-spu3.dts | |||
| @@ -99,6 +99,8 @@ | |||
| 99 | non-removable; | 99 | non-removable; |
| 100 | no-1-8-v; | 100 | no-1-8-v; |
| 101 | keep-power-in-suspend; | 101 | keep-power-in-suspend; |
| 102 | no-sdio; | ||
| 103 | no-sd; | ||
| 102 | status = "okay"; | 104 | status = "okay"; |
| 103 | }; | 105 | }; |
| 104 | 106 | ||
| @@ -106,6 +108,7 @@ | |||
| 106 | pinctrl-names = "default"; | 108 | pinctrl-names = "default"; |
| 107 | pinctrl-0 = <&pinctrl_esdhc1>; | 109 | pinctrl-0 = <&pinctrl_esdhc1>; |
| 108 | bus-width = <4>; | 110 | bus-width = <4>; |
| 111 | no-sdio; | ||
| 109 | status = "okay"; | 112 | status = "okay"; |
| 110 | }; | 113 | }; |
| 111 | 114 | ||
diff --git a/arch/arm/boot/dts/vt8500.dtsi b/arch/arm/boot/dts/vt8500.dtsi index 1929ad390d88..8b5af039b072 100644 --- a/arch/arm/boot/dts/vt8500.dtsi +++ b/arch/arm/boot/dts/vt8500.dtsi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | compatible = "via,vt8500"; | 12 | compatible = "via,vt8500"; |
| 13 | 13 | ||
| 14 | cpus { | 14 | cpus { |
| @@ -21,6 +21,11 @@ | |||
| 21 | }; | 21 | }; |
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | memory { | ||
| 25 | device_type = "memory"; | ||
| 26 | reg = <0x0 0x0>; | ||
| 27 | }; | ||
| 28 | |||
| 24 | aliases { | 29 | aliases { |
| 25 | serial0 = &uart0; | 30 | serial0 = &uart0; |
| 26 | serial1 = &uart1; | 31 | serial1 = &uart1; |
diff --git a/arch/arm/boot/dts/wm8505.dtsi b/arch/arm/boot/dts/wm8505.dtsi index e9ef539e13d3..cca6747304c4 100644 --- a/arch/arm/boot/dts/wm8505.dtsi +++ b/arch/arm/boot/dts/wm8505.dtsi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | compatible = "wm,wm8505"; | 12 | compatible = "wm,wm8505"; |
| 13 | 13 | ||
| 14 | cpus { | 14 | cpus { |
| @@ -21,6 +21,11 @@ | |||
| 21 | }; | 21 | }; |
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | memory { | ||
| 25 | device_type = "memory"; | ||
| 26 | reg = <0x0 0x0>; | ||
| 27 | }; | ||
| 28 | |||
| 24 | aliases { | 29 | aliases { |
| 25 | serial0 = &uart0; | 30 | serial0 = &uart0; |
| 26 | serial1 = &uart1; | 31 | serial1 = &uart1; |
diff --git a/arch/arm/boot/dts/wm8650.dtsi b/arch/arm/boot/dts/wm8650.dtsi index e12213d16693..00d01769a68f 100644 --- a/arch/arm/boot/dts/wm8650.dtsi +++ b/arch/arm/boot/dts/wm8650.dtsi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | compatible = "wm,wm8650"; | 12 | compatible = "wm,wm8650"; |
| 13 | 13 | ||
| 14 | cpus { | 14 | cpus { |
| @@ -21,6 +21,11 @@ | |||
| 21 | }; | 21 | }; |
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | memory { | ||
| 25 | device_type = "memory"; | ||
| 26 | reg = <0x0 0x0>; | ||
| 27 | }; | ||
| 28 | |||
| 24 | aliases { | 29 | aliases { |
| 25 | serial0 = &uart0; | 30 | serial0 = &uart0; |
| 26 | serial1 = &uart1; | 31 | serial1 = &uart1; |
diff --git a/arch/arm/boot/dts/wm8750.dtsi b/arch/arm/boot/dts/wm8750.dtsi index 46d076d7302b..54d8f7d9bb33 100644 --- a/arch/arm/boot/dts/wm8750.dtsi +++ b/arch/arm/boot/dts/wm8750.dtsi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | compatible = "wm,wm8750"; | 12 | compatible = "wm,wm8750"; |
| 13 | 13 | ||
| 14 | cpus { | 14 | cpus { |
| @@ -21,6 +21,11 @@ | |||
| 21 | }; | 21 | }; |
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | memory { | ||
| 25 | device_type = "memory"; | ||
| 26 | reg = <0x0 0x0>; | ||
| 27 | }; | ||
| 28 | |||
| 24 | aliases { | 29 | aliases { |
| 25 | serial0 = &uart0; | 30 | serial0 = &uart0; |
| 26 | serial1 = &uart1; | 31 | serial1 = &uart1; |
diff --git a/arch/arm/boot/dts/wm8850.dtsi b/arch/arm/boot/dts/wm8850.dtsi index 8fbccfbe75f3..c572d777077f 100644 --- a/arch/arm/boot/dts/wm8850.dtsi +++ b/arch/arm/boot/dts/wm8850.dtsi | |||
| @@ -6,9 +6,9 @@ | |||
| 6 | * Licensed under GPLv2 or later | 6 | * Licensed under GPLv2 or later |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /include/ "skeleton.dtsi" | ||
| 10 | |||
| 11 | / { | 9 | / { |
| 10 | #address-cells = <1>; | ||
| 11 | #size-cells = <1>; | ||
| 12 | compatible = "wm,wm8850"; | 12 | compatible = "wm,wm8850"; |
| 13 | 13 | ||
| 14 | cpus { | 14 | cpus { |
| @@ -22,6 +22,11 @@ | |||
| 22 | }; | 22 | }; |
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | memory { | ||
| 26 | device_type = "memory"; | ||
| 27 | reg = <0x0 0x0>; | ||
| 28 | }; | ||
| 29 | |||
| 25 | aliases { | 30 | aliases { |
| 26 | serial0 = &uart0; | 31 | serial0 = &uart0; |
| 27 | serial1 = &uart1; | 32 | serial1 = &uart1; |
diff --git a/arch/arm/boot/dts/zx296702-ad1.dts b/arch/arm/boot/dts/zx296702-ad1.dts index eedd3fcbc002..bd9400840023 100644 --- a/arch/arm/boot/dts/zx296702-ad1.dts +++ b/arch/arm/boot/dts/zx296702-ad1.dts | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | memory { | 16 | memory { |
| 17 | device_type = "memory"; | ||
| 17 | reg = <0x50000000 0x20000000>; | 18 | reg = <0x50000000 0x20000000>; |
| 18 | }; | 19 | }; |
| 19 | }; | 20 | }; |
diff --git a/arch/arm/boot/dts/zx296702.dtsi b/arch/arm/boot/dts/zx296702.dtsi index 240e7a23d81f..afd98de029be 100644 --- a/arch/arm/boot/dts/zx296702.dtsi +++ b/arch/arm/boot/dts/zx296702.dtsi | |||
| @@ -1,10 +1,12 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
| 2 | 2 | ||
| 3 | #include "skeleton.dtsi" | ||
| 4 | #include <dt-bindings/clock/zx296702-clock.h> | 3 | #include <dt-bindings/clock/zx296702-clock.h> |
| 5 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 6 | 5 | ||
| 7 | / { | 6 | / { |
| 7 | #address-cells = <1>; | ||
| 8 | #size-cells = <1>; | ||
| 9 | |||
| 8 | cpus { | 10 | cpus { |
| 9 | #address-cells = <1>; | 11 | #address-cells = <1>; |
| 10 | #size-cells = <0>; | 12 | #size-cells = <0>; |
diff --git a/arch/arm/boot/dts/zynq-zturn.dts b/arch/arm/boot/dts/zynq-zturn.dts index b38704657960..5ec616ebca08 100644 --- a/arch/arm/boot/dts/zynq-zturn.dts +++ b/arch/arm/boot/dts/zynq-zturn.dts | |||
| @@ -54,7 +54,7 @@ | |||
| 54 | label = "K1"; | 54 | label = "K1"; |
| 55 | gpios = <&gpio0 0x32 0x1>; | 55 | gpios = <&gpio0 0x32 0x1>; |
| 56 | linux,code = <0x66>; | 56 | linux,code = <0x66>; |
| 57 | gpio-key,wakeup; | 57 | wakeup-source; |
| 58 | autorepeat; | 58 | autorepeat; |
| 59 | }; | 59 | }; |
| 60 | }; | 60 | }; |
diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c index ad574d20415c..1b1b82b37ce0 100644 --- a/arch/arm/common/mcpm_entry.c +++ b/arch/arm/common/mcpm_entry.c | |||
| @@ -381,7 +381,7 @@ static int __init nocache_trampoline(unsigned long _arg) | |||
| 381 | unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); | 381 | unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); |
| 382 | phys_reset_t phys_reset; | 382 | phys_reset_t phys_reset; |
| 383 | 383 | ||
| 384 | mcpm_set_entry_vector(cpu, cluster, cpu_resume); | 384 | mcpm_set_entry_vector(cpu, cluster, cpu_resume_no_hyp); |
| 385 | setup_mm_for_reboot(); | 385 | setup_mm_for_reboot(); |
| 386 | 386 | ||
| 387 | __mcpm_cpu_going_down(cpu, cluster); | 387 | __mcpm_cpu_going_down(cpu, cluster); |
diff --git a/arch/arm/configs/axm55xx_defconfig b/arch/arm/configs/axm55xx_defconfig index 8e17e7ed1f02..53864316bee1 100644 --- a/arch/arm/configs/axm55xx_defconfig +++ b/arch/arm/configs/axm55xx_defconfig | |||
| @@ -155,10 +155,6 @@ CONFIG_PMBUS=y | |||
| 155 | CONFIG_SENSORS_LTC2978=y | 155 | CONFIG_SENSORS_LTC2978=y |
| 156 | CONFIG_WATCHDOG=y | 156 | CONFIG_WATCHDOG=y |
| 157 | CONFIG_ARM_SP805_WATCHDOG=y | 157 | CONFIG_ARM_SP805_WATCHDOG=y |
| 158 | CONFIG_FB=y | ||
| 159 | CONFIG_FB_ARMCLCD=y | ||
| 160 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 161 | CONFIG_LOGO=y | ||
| 162 | # CONFIG_LOGO_LINUX_MONO is not set | 158 | # CONFIG_LOGO_LINUX_MONO is not set |
| 163 | # CONFIG_LOGO_LINUX_VGA16 is not set | 159 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 164 | CONFIG_HID_A4TECH=y | 160 | CONFIG_HID_A4TECH=y |
diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index bb6a35fb1dd7..dcf7610cfe55 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig | |||
| @@ -91,6 +91,8 @@ CONFIG_THERMAL=y | |||
| 91 | CONFIG_BCM2835_THERMAL=y | 91 | CONFIG_BCM2835_THERMAL=y |
| 92 | CONFIG_WATCHDOG=y | 92 | CONFIG_WATCHDOG=y |
| 93 | CONFIG_BCM2835_WDT=y | 93 | CONFIG_BCM2835_WDT=y |
| 94 | CONFIG_MEDIA_SUPPORT=y | ||
| 95 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
| 94 | CONFIG_DRM=y | 96 | CONFIG_DRM=y |
| 95 | CONFIG_DRM_VC4=y | 97 | CONFIG_DRM_VC4=y |
| 96 | CONFIG_FB_SIMPLE=y | 98 | CONFIG_FB_SIMPLE=y |
| @@ -129,6 +131,7 @@ CONFIG_DMADEVICES=y | |||
| 129 | CONFIG_DMA_BCM2835=y | 131 | CONFIG_DMA_BCM2835=y |
| 130 | CONFIG_STAGING=y | 132 | CONFIG_STAGING=y |
| 131 | CONFIG_SND_BCM2835=m | 133 | CONFIG_SND_BCM2835=m |
| 134 | CONFIG_VIDEO_BCM2835=m | ||
| 132 | CONFIG_MAILBOX=y | 135 | CONFIG_MAILBOX=y |
| 133 | CONFIG_BCM2835_MBOX=y | 136 | CONFIG_BCM2835_MBOX=y |
| 134 | # CONFIG_IOMMU_SUPPORT is not set | 137 | # CONFIG_IOMMU_SUPPORT is not set |
| @@ -158,7 +161,6 @@ CONFIG_PRINTK_TIME=y | |||
| 158 | CONFIG_BOOT_PRINTK_DELAY=y | 161 | CONFIG_BOOT_PRINTK_DELAY=y |
| 159 | CONFIG_DYNAMIC_DEBUG=y | 162 | CONFIG_DYNAMIC_DEBUG=y |
| 160 | CONFIG_DEBUG_INFO=y | 163 | CONFIG_DEBUG_INFO=y |
| 161 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 162 | # CONFIG_ENABLE_MUST_CHECK is not set | 164 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 163 | CONFIG_UNUSED_SYMBOLS=y | 165 | CONFIG_UNUSED_SYMBOLS=y |
| 164 | CONFIG_DEBUG_MEMORY_INIT=y | 166 | CONFIG_DEBUG_MEMORY_INIT=y |
diff --git a/arch/arm/configs/cns3420vb_defconfig b/arch/arm/configs/cns3420vb_defconfig index c6dcd6e4f4e6..419b73564f29 100644 --- a/arch/arm/configs/cns3420vb_defconfig +++ b/arch/arm/configs/cns3420vb_defconfig | |||
| @@ -60,7 +60,6 @@ CONFIG_EXT2_FS_XATTR=y | |||
| 60 | CONFIG_AUTOFS4_FS=y | 60 | CONFIG_AUTOFS4_FS=y |
| 61 | CONFIG_FSCACHE=y | 61 | CONFIG_FSCACHE=y |
| 62 | CONFIG_TMPFS=y | 62 | CONFIG_TMPFS=y |
| 63 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 64 | # CONFIG_ENABLE_MUST_CHECK is not set | 63 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 65 | CONFIG_DEBUG_FS=y | 64 | CONFIG_DEBUG_FS=y |
| 66 | # CONFIG_ARM_UNWIND is not set | 65 | # CONFIG_ARM_UNWIND is not set |
diff --git a/arch/arm/configs/efm32_defconfig b/arch/arm/configs/efm32_defconfig index 860d27138e6f..ee42158f41ec 100644 --- a/arch/arm/configs/efm32_defconfig +++ b/arch/arm/configs/efm32_defconfig | |||
| @@ -94,7 +94,6 @@ CONFIG_ROMFS_BACKED_BY_MTD=y | |||
| 94 | # CONFIG_NETWORK_FILESYSTEMS is not set | 94 | # CONFIG_NETWORK_FILESYSTEMS is not set |
| 95 | CONFIG_PRINTK_TIME=y | 95 | CONFIG_PRINTK_TIME=y |
| 96 | CONFIG_DEBUG_INFO=y | 96 | CONFIG_DEBUG_INFO=y |
| 97 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 98 | # CONFIG_ENABLE_MUST_CHECK is not set | 97 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 99 | CONFIG_MAGIC_SYSRQ=y | 98 | CONFIG_MAGIC_SYSRQ=y |
| 100 | # CONFIG_SCHED_DEBUG is not set | 99 | # CONFIG_SCHED_DEBUG is not set |
diff --git a/arch/arm/configs/eseries_pxa_defconfig b/arch/arm/configs/eseries_pxa_defconfig index cd27d651463c..eabb784cf7da 100644 --- a/arch/arm/configs/eseries_pxa_defconfig +++ b/arch/arm/configs/eseries_pxa_defconfig | |||
| @@ -103,7 +103,6 @@ CONFIG_NFS_V3=y | |||
| 103 | CONFIG_PARTITION_ADVANCED=y | 103 | CONFIG_PARTITION_ADVANCED=y |
| 104 | CONFIG_NLS_CODEPAGE_437=y | 104 | CONFIG_NLS_CODEPAGE_437=y |
| 105 | CONFIG_NLS_ISO8859_1=y | 105 | CONFIG_NLS_ISO8859_1=y |
| 106 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 107 | # CONFIG_ENABLE_MUST_CHECK is not set | 106 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 108 | CONFIG_CRYPTO_CBC=m | 107 | CONFIG_CRYPTO_CBC=m |
| 109 | CONFIG_CRYPTO_PCBC=m | 108 | CONFIG_CRYPTO_PCBC=m |
diff --git a/arch/arm/configs/gemini_defconfig b/arch/arm/configs/gemini_defconfig index 553777ac2814..ef9aae89907d 100644 --- a/arch/arm/configs/gemini_defconfig +++ b/arch/arm/configs/gemini_defconfig | |||
| @@ -87,6 +87,5 @@ CONFIG_TMPFS_POSIX_ACL=y | |||
| 87 | CONFIG_ROMFS_FS=y | 87 | CONFIG_ROMFS_FS=y |
| 88 | CONFIG_NLS_CODEPAGE_437=y | 88 | CONFIG_NLS_CODEPAGE_437=y |
| 89 | CONFIG_NLS_ISO8859_1=y | 89 | CONFIG_NLS_ISO8859_1=y |
| 90 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 91 | # CONFIG_ENABLE_MUST_CHECK is not set | 90 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 92 | CONFIG_DEBUG_FS=y | 91 | CONFIG_DEBUG_FS=y |
diff --git a/arch/arm/configs/integrator_defconfig b/arch/arm/configs/integrator_defconfig index 69cb8f1efcea..747550c7af2f 100644 --- a/arch/arm/configs/integrator_defconfig +++ b/arch/arm/configs/integrator_defconfig | |||
| @@ -27,6 +27,7 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=y | |||
| 27 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | 27 | CONFIG_CPU_FREQ_GOV_USERSPACE=y |
| 28 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | 28 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y |
| 29 | CONFIG_CPUFREQ_DT=y | 29 | CONFIG_CPUFREQ_DT=y |
| 30 | CONFIG_CMA=y | ||
| 30 | CONFIG_NET=y | 31 | CONFIG_NET=y |
| 31 | CONFIG_PACKET=y | 32 | CONFIG_PACKET=y |
| 32 | CONFIG_UNIX=y | 33 | CONFIG_UNIX=y |
| @@ -53,13 +54,17 @@ CONFIG_E100=y | |||
| 53 | CONFIG_SMC91X=y | 54 | CONFIG_SMC91X=y |
| 54 | # CONFIG_KEYBOARD_ATKBD is not set | 55 | # CONFIG_KEYBOARD_ATKBD is not set |
| 55 | # CONFIG_SERIO_SERPORT is not set | 56 | # CONFIG_SERIO_SERPORT is not set |
| 56 | CONFIG_FB=y | 57 | CONFIG_DRM=y |
| 58 | CONFIG_DRM_DUMB_VGA_DAC=y | ||
| 59 | CONFIG_DRM_PL111=y | ||
| 57 | CONFIG_FB_MODE_HELPERS=y | 60 | CONFIG_FB_MODE_HELPERS=y |
| 58 | CONFIG_FB_ARMCLCD=y | ||
| 59 | CONFIG_FB_MATROX=y | 61 | CONFIG_FB_MATROX=y |
| 60 | CONFIG_FB_MATROX_MILLENIUM=y | 62 | CONFIG_FB_MATROX_MILLENIUM=y |
| 61 | CONFIG_FB_MATROX_MYSTIQUE=y | 63 | CONFIG_FB_MATROX_MYSTIQUE=y |
| 64 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 65 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 62 | # CONFIG_VGA_CONSOLE is not set | 66 | # CONFIG_VGA_CONSOLE is not set |
| 67 | CONFIG_LOGO=y | ||
| 63 | CONFIG_MMC=y | 68 | CONFIG_MMC=y |
| 64 | CONFIG_MMC_ARMMMCI=y | 69 | CONFIG_MMC_ARMMMCI=y |
| 65 | CONFIG_NEW_LEDS=y | 70 | CONFIG_NEW_LEDS=y |
diff --git a/arch/arm/configs/lpc18xx_defconfig b/arch/arm/configs/lpc18xx_defconfig index 23df2518203d..e3d5e15d66d1 100644 --- a/arch/arm/configs/lpc18xx_defconfig +++ b/arch/arm/configs/lpc18xx_defconfig | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" | 1 | CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" |
| 2 | CONFIG_HIGH_RES_TIMERS=y | 2 | CONFIG_HIGH_RES_TIMERS=y |
| 3 | CONFIG_PREEMPT=y | ||
| 3 | CONFIG_BLK_DEV_INITRD=y | 4 | CONFIG_BLK_DEV_INITRD=y |
| 4 | # CONFIG_RD_BZIP2 is not set | 5 | # CONFIG_RD_BZIP2 is not set |
| 5 | # CONFIG_RD_LZMA is not set | 6 | # CONFIG_RD_LZMA is not set |
| @@ -17,22 +18,20 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
| 17 | CONFIG_EMBEDDED=y | 18 | CONFIG_EMBEDDED=y |
| 18 | # CONFIG_VM_EVENT_COUNTERS is not set | 19 | # CONFIG_VM_EVENT_COUNTERS is not set |
| 19 | # CONFIG_SLUB_DEBUG is not set | 20 | # CONFIG_SLUB_DEBUG is not set |
| 20 | # CONFIG_LBDAF is not set | ||
| 21 | # CONFIG_BLK_DEV_BSG is not set | ||
| 22 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 23 | # CONFIG_IOSCHED_CFQ is not set | ||
| 24 | # CONFIG_MMU is not set | 21 | # CONFIG_MMU is not set |
| 25 | CONFIG_ARM_SINGLE_ARMV7M=y | ||
| 26 | CONFIG_ARCH_LPC18XX=y | 22 | CONFIG_ARCH_LPC18XX=y |
| 27 | CONFIG_SET_MEM_PARAM=y | 23 | CONFIG_SET_MEM_PARAM=y |
| 28 | CONFIG_DRAM_BASE=0x28000000 | 24 | CONFIG_DRAM_BASE=0x28000000 |
| 29 | CONFIG_DRAM_SIZE=0x02000000 | 25 | CONFIG_DRAM_SIZE=0x02000000 |
| 30 | CONFIG_FLASH_MEM_BASE=0x1b000000 | 26 | CONFIG_FLASH_MEM_BASE=0x1b000000 |
| 31 | CONFIG_FLASH_SIZE=0x00080000 | 27 | CONFIG_FLASH_SIZE=0x00080000 |
| 32 | CONFIG_PREEMPT=y | ||
| 33 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 28 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 34 | CONFIG_ZBOOT_ROM_BSS=0x0 | 29 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 35 | CONFIG_ARM_APPENDED_DTB=y | 30 | CONFIG_ARM_APPENDED_DTB=y |
| 31 | # CONFIG_LBDAF is not set | ||
| 32 | # CONFIG_BLK_DEV_BSG is not set | ||
| 33 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 34 | # CONFIG_IOSCHED_CFQ is not set | ||
| 36 | CONFIG_BINFMT_FLAT=y | 35 | CONFIG_BINFMT_FLAT=y |
| 37 | CONFIG_BINFMT_ZFLAT=y | 36 | CONFIG_BINFMT_ZFLAT=y |
| 38 | CONFIG_BINFMT_SHARED_FLAT=y | 37 | CONFIG_BINFMT_SHARED_FLAT=y |
| @@ -69,7 +68,6 @@ CONFIG_BLK_DEV_SD=y | |||
| 69 | # CONFIG_SCSI_LOWLEVEL is not set | 68 | # CONFIG_SCSI_LOWLEVEL is not set |
| 70 | CONFIG_NETDEVICES=y | 69 | CONFIG_NETDEVICES=y |
| 71 | # CONFIG_NET_VENDOR_ARC is not set | 70 | # CONFIG_NET_VENDOR_ARC is not set |
| 72 | # CONFIG_NET_CADENCE is not set | ||
| 73 | # CONFIG_NET_VENDOR_BROADCOM is not set | 71 | # CONFIG_NET_VENDOR_BROADCOM is not set |
| 74 | # CONFIG_NET_VENDOR_CIRRUS is not set | 72 | # CONFIG_NET_VENDOR_CIRRUS is not set |
| 75 | # CONFIG_NET_VENDOR_FARADAY is not set | 73 | # CONFIG_NET_VENDOR_FARADAY is not set |
| @@ -90,7 +88,6 @@ CONFIG_STMMAC_ETH=y | |||
| 90 | CONFIG_SMSC_PHY=y | 88 | CONFIG_SMSC_PHY=y |
| 91 | # CONFIG_USB_NET_DRIVERS is not set | 89 | # CONFIG_USB_NET_DRIVERS is not set |
| 92 | # CONFIG_WLAN is not set | 90 | # CONFIG_WLAN is not set |
| 93 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 94 | CONFIG_INPUT_EVDEV=y | 91 | CONFIG_INPUT_EVDEV=y |
| 95 | # CONFIG_KEYBOARD_ATKBD is not set | 92 | # CONFIG_KEYBOARD_ATKBD is not set |
| 96 | CONFIG_KEYBOARD_GPIO=y | 93 | CONFIG_KEYBOARD_GPIO=y |
| @@ -101,13 +98,11 @@ CONFIG_KEYBOARD_GPIO_POLLED=y | |||
| 101 | # CONFIG_UNIX98_PTYS is not set | 98 | # CONFIG_UNIX98_PTYS is not set |
| 102 | # CONFIG_LEGACY_PTYS is not set | 99 | # CONFIG_LEGACY_PTYS is not set |
| 103 | CONFIG_SERIAL_NONSTANDARD=y | 100 | CONFIG_SERIAL_NONSTANDARD=y |
| 104 | # CONFIG_DEVKMEM is not set | ||
| 105 | CONFIG_SERIAL_8250=y | 101 | CONFIG_SERIAL_8250=y |
| 106 | # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set | 102 | # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set |
| 107 | CONFIG_SERIAL_8250_CONSOLE=y | 103 | CONFIG_SERIAL_8250_CONSOLE=y |
| 108 | CONFIG_SERIAL_OF_PLATFORM=y | 104 | CONFIG_SERIAL_OF_PLATFORM=y |
| 109 | # CONFIG_HW_RANDOM is not set | 105 | # CONFIG_HW_RANDOM is not set |
| 110 | CONFIG_I2C=y | ||
| 111 | CONFIG_I2C_LPC2K=y | 106 | CONFIG_I2C_LPC2K=y |
| 112 | CONFIG_SPI=y | 107 | CONFIG_SPI=y |
| 113 | CONFIG_SPI_PL022=y | 108 | CONFIG_SPI_PL022=y |
| @@ -121,8 +116,10 @@ CONFIG_WATCHDOG=y | |||
| 121 | CONFIG_LPC18XX_WATCHDOG=y | 116 | CONFIG_LPC18XX_WATCHDOG=y |
| 122 | CONFIG_REGULATOR=y | 117 | CONFIG_REGULATOR=y |
| 123 | CONFIG_REGULATOR_FIXED_VOLTAGE=y | 118 | CONFIG_REGULATOR_FIXED_VOLTAGE=y |
| 124 | CONFIG_FB=y | 119 | CONFIG_DRM=y |
| 125 | CONFIG_FB_ARMCLCD=y | 120 | CONFIG_DRM_PL111=y |
| 121 | CONFIG_FB_MODE_HELPERS=y | ||
| 122 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 126 | CONFIG_USB=y | 123 | CONFIG_USB=y |
| 127 | CONFIG_USB_EHCI_HCD=y | 124 | CONFIG_USB_EHCI_HCD=y |
| 128 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 125 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
| @@ -144,15 +141,14 @@ CONFIG_AMBA_PL08X=y | |||
| 144 | CONFIG_LPC18XX_DMAMUX=y | 141 | CONFIG_LPC18XX_DMAMUX=y |
| 145 | CONFIG_MEMORY=y | 142 | CONFIG_MEMORY=y |
| 146 | CONFIG_ARM_PL172_MPMC=y | 143 | CONFIG_ARM_PL172_MPMC=y |
| 147 | CONFIG_PWM=y | ||
| 148 | CONFIG_PWM_LPC18XX_SCT=y | ||
| 149 | CONFIG_IIO=y | 144 | CONFIG_IIO=y |
| 150 | CONFIG_MMA7455_I2C=y | 145 | CONFIG_MMA7455_I2C=y |
| 151 | CONFIG_LPC18XX_ADC=y | 146 | CONFIG_LPC18XX_ADC=y |
| 152 | CONFIG_LPC18XX_DAC=y | 147 | CONFIG_LPC18XX_DAC=y |
| 153 | CONFIG_IIO_SYSFS_TRIGGER=y | 148 | CONFIG_IIO_SYSFS_TRIGGER=y |
| 149 | CONFIG_PWM=y | ||
| 150 | CONFIG_PWM_LPC18XX_SCT=y | ||
| 154 | CONFIG_PHY_LPC18XX_USB_OTG=y | 151 | CONFIG_PHY_LPC18XX_USB_OTG=y |
| 155 | CONFIG_NVMEM=y | ||
| 156 | CONFIG_NVMEM_LPC18XX_EEPROM=y | 152 | CONFIG_NVMEM_LPC18XX_EEPROM=y |
| 157 | CONFIG_EXT2_FS=y | 153 | CONFIG_EXT2_FS=y |
| 158 | # CONFIG_FILE_LOCKING is not set | 154 | # CONFIG_FILE_LOCKING is not set |
| @@ -160,9 +156,10 @@ CONFIG_EXT2_FS=y | |||
| 160 | # CONFIG_INOTIFY_USER is not set | 156 | # CONFIG_INOTIFY_USER is not set |
| 161 | CONFIG_JFFS2_FS=y | 157 | CONFIG_JFFS2_FS=y |
| 162 | # CONFIG_NETWORK_FILESYSTEMS is not set | 158 | # CONFIG_NETWORK_FILESYSTEMS is not set |
| 159 | CONFIG_CRC_ITU_T=y | ||
| 160 | CONFIG_CRC7=y | ||
| 163 | CONFIG_PRINTK_TIME=y | 161 | CONFIG_PRINTK_TIME=y |
| 164 | CONFIG_DEBUG_INFO=y | 162 | CONFIG_DEBUG_INFO=y |
| 165 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 166 | # CONFIG_ENABLE_MUST_CHECK is not set | 163 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 167 | CONFIG_DEBUG_FS=y | 164 | CONFIG_DEBUG_FS=y |
| 168 | CONFIG_MAGIC_SYSRQ=y | 165 | CONFIG_MAGIC_SYSRQ=y |
| @@ -170,5 +167,3 @@ CONFIG_MAGIC_SYSRQ=y | |||
| 170 | # CONFIG_DEBUG_BUGVERBOSE is not set | 167 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 171 | CONFIG_DEBUG_LL=y | 168 | CONFIG_DEBUG_LL=y |
| 172 | CONFIG_EARLY_PRINTK=y | 169 | CONFIG_EARLY_PRINTK=y |
| 173 | CONFIG_CRC_ITU_T=y | ||
| 174 | CONFIG_CRC7=y | ||
diff --git a/arch/arm/configs/lpc32xx_defconfig b/arch/arm/configs/lpc32xx_defconfig index 0b54b4024e51..e752fb704df0 100644 --- a/arch/arm/configs/lpc32xx_defconfig +++ b/arch/arm/configs/lpc32xx_defconfig | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | CONFIG_SYSVIPC=y | 1 | CONFIG_SYSVIPC=y |
| 2 | CONFIG_NO_HZ=y | 2 | CONFIG_NO_HZ=y |
| 3 | CONFIG_HIGH_RES_TIMERS=y | 3 | CONFIG_HIGH_RES_TIMERS=y |
| 4 | CONFIG_PREEMPT=y | ||
| 4 | CONFIG_IKCONFIG=y | 5 | CONFIG_IKCONFIG=y |
| 5 | CONFIG_IKCONFIG_PROC=y | 6 | CONFIG_IKCONFIG_PROC=y |
| 6 | CONFIG_LOG_BUF_SHIFT=16 | 7 | CONFIG_LOG_BUF_SHIFT=16 |
| @@ -11,13 +12,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
| 11 | CONFIG_SYSCTL_SYSCALL=y | 12 | CONFIG_SYSCTL_SYSCALL=y |
| 12 | CONFIG_EMBEDDED=y | 13 | CONFIG_EMBEDDED=y |
| 13 | CONFIG_SLAB=y | 14 | CONFIG_SLAB=y |
| 14 | CONFIG_JUMP_LABEL=y | ||
| 15 | CONFIG_MODULES=y | ||
| 16 | CONFIG_MODULE_UNLOAD=y | ||
| 17 | # CONFIG_BLK_DEV_BSG is not set | ||
| 18 | CONFIG_PARTITION_ADVANCED=y | ||
| 19 | CONFIG_ARCH_LPC32XX=y | 15 | CONFIG_ARCH_LPC32XX=y |
| 20 | CONFIG_PREEMPT=y | ||
| 21 | CONFIG_AEABI=y | 16 | CONFIG_AEABI=y |
| 22 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 17 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 23 | CONFIG_ZBOOT_ROM_BSS=0x0 | 18 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| @@ -26,6 +21,11 @@ CONFIG_ARM_ATAG_DTB_COMPAT=y | |||
| 26 | CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0" | 21 | CONFIG_CMDLINE="console=ttyS0,115200n81 root=/dev/ram0" |
| 27 | CONFIG_CPU_IDLE=y | 22 | CONFIG_CPU_IDLE=y |
| 28 | CONFIG_VFP=y | 23 | CONFIG_VFP=y |
| 24 | CONFIG_JUMP_LABEL=y | ||
| 25 | CONFIG_MODULES=y | ||
| 26 | CONFIG_MODULE_UNLOAD=y | ||
| 27 | # CONFIG_BLK_DEV_BSG is not set | ||
| 28 | CONFIG_PARTITION_ADVANCED=y | ||
| 29 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | 29 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| 30 | CONFIG_NET=y | 30 | CONFIG_NET=y |
| 31 | CONFIG_PACKET=y | 31 | CONFIG_PACKET=y |
| @@ -56,6 +56,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y | |||
| 56 | CONFIG_BLK_DEV_RAM=y | 56 | CONFIG_BLK_DEV_RAM=y |
| 57 | CONFIG_BLK_DEV_RAM_COUNT=1 | 57 | CONFIG_BLK_DEV_RAM_COUNT=1 |
| 58 | CONFIG_BLK_DEV_RAM_SIZE=16384 | 58 | CONFIG_BLK_DEV_RAM_SIZE=16384 |
| 59 | CONFIG_SRAM=y | ||
| 59 | CONFIG_EEPROM_AT24=y | 60 | CONFIG_EEPROM_AT24=y |
| 60 | CONFIG_EEPROM_AT25=y | 61 | CONFIG_EEPROM_AT25=y |
| 61 | CONFIG_SCSI=y | 62 | CONFIG_SCSI=y |
| @@ -75,9 +76,6 @@ CONFIG_LPC_ENET=y | |||
| 75 | # CONFIG_NET_VENDOR_STMICRO is not set | 76 | # CONFIG_NET_VENDOR_STMICRO is not set |
| 76 | CONFIG_SMSC_PHY=y | 77 | CONFIG_SMSC_PHY=y |
| 77 | # CONFIG_WLAN is not set | 78 | # CONFIG_WLAN is not set |
| 78 | # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||
| 79 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=240 | ||
| 80 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 | ||
| 81 | CONFIG_INPUT_EVDEV=y | 79 | CONFIG_INPUT_EVDEV=y |
| 82 | # CONFIG_KEYBOARD_ATKBD is not set | 80 | # CONFIG_KEYBOARD_ATKBD is not set |
| 83 | CONFIG_KEYBOARD_GPIO=y | 81 | CONFIG_KEYBOARD_GPIO=y |
| @@ -92,48 +90,39 @@ CONFIG_SERIAL_8250=y | |||
| 92 | CONFIG_SERIAL_8250_CONSOLE=y | 90 | CONFIG_SERIAL_8250_CONSOLE=y |
| 93 | CONFIG_SERIAL_OF_PLATFORM=y | 91 | CONFIG_SERIAL_OF_PLATFORM=y |
| 94 | CONFIG_SERIAL_HS_LPC32XX=y | 92 | CONFIG_SERIAL_HS_LPC32XX=y |
| 93 | CONFIG_SERIAL_HS_LPC32XX_CONSOLE=y | ||
| 95 | # CONFIG_HW_RANDOM is not set | 94 | # CONFIG_HW_RANDOM is not set |
| 96 | CONFIG_I2C=y | ||
| 97 | CONFIG_I2C_CHARDEV=y | 95 | CONFIG_I2C_CHARDEV=y |
| 98 | CONFIG_I2C_PNX=y | 96 | CONFIG_I2C_PNX=y |
| 99 | CONFIG_SPI=y | 97 | CONFIG_SPI=y |
| 100 | CONFIG_SPI_PL022=y | 98 | CONFIG_SPI_PL022=y |
| 101 | CONFIG_GPIO_SYSFS=y | 99 | CONFIG_GPIO_SYSFS=y |
| 102 | CONFIG_GPIO_EM=y | ||
| 103 | CONFIG_GPIO_GENERIC_PLATFORM=y | 100 | CONFIG_GPIO_GENERIC_PLATFORM=y |
| 104 | CONFIG_GPIO_PL061=y | ||
| 105 | CONFIG_GPIO_ADP5588=y | ||
| 106 | CONFIG_GPIO_ADNP=y | ||
| 107 | CONFIG_GPIO_MAX7300=y | ||
| 108 | CONFIG_GPIO_MAX732X=y | ||
| 109 | CONFIG_GPIO_PCA953X=y | 101 | CONFIG_GPIO_PCA953X=y |
| 110 | CONFIG_GPIO_PCF857X=y | 102 | CONFIG_GPIO_PCF857X=y |
| 111 | CONFIG_GPIO_74X164=y | ||
| 112 | CONFIG_GPIO_MAX7301=y | ||
| 113 | CONFIG_GPIO_MC33880=y | ||
| 114 | CONFIG_PINCTRL_MCP23S08=y | ||
| 115 | CONFIG_PINCTRL_SX150X=y | ||
| 116 | CONFIG_SENSORS_DS620=y | 103 | CONFIG_SENSORS_DS620=y |
| 117 | CONFIG_SENSORS_MAX6639=y | 104 | CONFIG_SENSORS_MAX6639=y |
| 118 | CONFIG_WATCHDOG=y | 105 | CONFIG_WATCHDOG=y |
| 119 | CONFIG_PNX4008_WATCHDOG=y | 106 | CONFIG_PNX4008_WATCHDOG=y |
| 120 | CONFIG_FB=y | 107 | CONFIG_REGULATOR=y |
| 121 | CONFIG_FB_ARMCLCD=y | 108 | CONFIG_REGULATOR_FIXED_VOLTAGE=y |
| 109 | CONFIG_DRM=y | ||
| 110 | CONFIG_DRM_PANEL_SIMPLE=y | ||
| 111 | CONFIG_DRM_PL111=y | ||
| 112 | CONFIG_FB_MODE_HELPERS=y | ||
| 113 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 114 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 122 | CONFIG_FRAMEBUFFER_CONSOLE=y | 115 | CONFIG_FRAMEBUFFER_CONSOLE=y |
| 123 | CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y | ||
| 124 | CONFIG_LOGO=y | 116 | CONFIG_LOGO=y |
| 125 | # CONFIG_LOGO_LINUX_MONO is not set | 117 | # CONFIG_LOGO_LINUX_MONO is not set |
| 126 | # CONFIG_LOGO_LINUX_VGA16 is not set | 118 | # CONFIG_LOGO_LINUX_VGA16 is not set |
| 127 | CONFIG_SOUND=y | 119 | CONFIG_SOUND=y |
| 128 | CONFIG_SND=y | 120 | CONFIG_SND=y |
| 129 | CONFIG_SND_SEQUENCER=y | ||
| 130 | CONFIG_SND_MIXER_OSS=y | ||
| 131 | CONFIG_SND_PCM_OSS=y | ||
| 132 | CONFIG_SND_SEQUENCER_OSS=y | ||
| 133 | # CONFIG_SND_SUPPORT_OLD_API is not set | 121 | # CONFIG_SND_SUPPORT_OLD_API is not set |
| 134 | # CONFIG_SND_VERBOSE_PROCFS is not set | 122 | # CONFIG_SND_VERBOSE_PROCFS is not set |
| 135 | CONFIG_SND_DEBUG=y | 123 | CONFIG_SND_DEBUG=y |
| 136 | CONFIG_SND_DEBUG_VERBOSE=y | 124 | CONFIG_SND_DEBUG_VERBOSE=y |
| 125 | CONFIG_SND_SEQUENCER=y | ||
| 137 | # CONFIG_SND_DRIVERS is not set | 126 | # CONFIG_SND_DRIVERS is not set |
| 138 | # CONFIG_SND_ARM is not set | 127 | # CONFIG_SND_ARM is not set |
| 139 | # CONFIG_SND_SPI is not set | 128 | # CONFIG_SND_SPI is not set |
| @@ -146,7 +135,6 @@ CONFIG_USB_LPC32XX=y | |||
| 146 | CONFIG_USB_MASS_STORAGE=m | 135 | CONFIG_USB_MASS_STORAGE=m |
| 147 | CONFIG_USB_G_SERIAL=m | 136 | CONFIG_USB_G_SERIAL=m |
| 148 | CONFIG_MMC=y | 137 | CONFIG_MMC=y |
| 149 | # CONFIG_MMC_BLOCK_BOUNCE is not set | ||
| 150 | CONFIG_MMC_ARMMMCI=y | 138 | CONFIG_MMC_ARMMMCI=y |
| 151 | CONFIG_MMC_SPI=y | 139 | CONFIG_MMC_SPI=y |
| 152 | CONFIG_NEW_LEDS=y | 140 | CONFIG_NEW_LEDS=y |
| @@ -169,10 +157,10 @@ CONFIG_RTC_DRV_LPC32XX=y | |||
| 169 | CONFIG_DMADEVICES=y | 157 | CONFIG_DMADEVICES=y |
| 170 | CONFIG_AMBA_PL08X=y | 158 | CONFIG_AMBA_PL08X=y |
| 171 | CONFIG_STAGING=y | 159 | CONFIG_STAGING=y |
| 172 | CONFIG_LPC32XX_ADC=y | ||
| 173 | CONFIG_MEMORY=y | 160 | CONFIG_MEMORY=y |
| 174 | CONFIG_ARM_PL172_MPMC=y | 161 | CONFIG_ARM_PL172_MPMC=y |
| 175 | CONFIG_IIO=y | 162 | CONFIG_IIO=y |
| 163 | CONFIG_LPC32XX_ADC=y | ||
| 176 | CONFIG_MAX517=y | 164 | CONFIG_MAX517=y |
| 177 | CONFIG_PWM=y | 165 | CONFIG_PWM=y |
| 178 | CONFIG_PWM_LPC32XX=y | 166 | CONFIG_PWM_LPC32XX=y |
| @@ -186,18 +174,27 @@ CONFIG_JFFS2_FS_WBUF_VERIFY=y | |||
| 186 | CONFIG_UBIFS_FS=y | 174 | CONFIG_UBIFS_FS=y |
| 187 | CONFIG_CRAMFS=y | 175 | CONFIG_CRAMFS=y |
| 188 | CONFIG_NFS_FS=y | 176 | CONFIG_NFS_FS=y |
| 177 | CONFIG_NFS_V4=y | ||
| 178 | CONFIG_NFS_V4_1=y | ||
| 179 | CONFIG_NFS_V4_2=y | ||
| 189 | CONFIG_ROOT_NFS=y | 180 | CONFIG_ROOT_NFS=y |
| 190 | CONFIG_NLS_CODEPAGE_437=y | 181 | CONFIG_NLS_CODEPAGE_437=y |
| 191 | CONFIG_NLS_ASCII=y | 182 | CONFIG_NLS_ASCII=y |
| 192 | CONFIG_NLS_ISO8859_1=y | 183 | CONFIG_NLS_ISO8859_1=y |
| 193 | CONFIG_NLS_UTF8=y | 184 | CONFIG_NLS_UTF8=y |
| 185 | CONFIG_CRYPTO_ANSI_CPRNG=y | ||
| 186 | # CONFIG_CRYPTO_HW is not set | ||
| 187 | CONFIG_CRC_CCITT=y | ||
| 188 | CONFIG_PRINTK_TIME=y | ||
| 189 | CONFIG_DYNAMIC_DEBUG=y | ||
| 194 | CONFIG_DEBUG_INFO=y | 190 | CONFIG_DEBUG_INFO=y |
| 191 | CONFIG_GDB_SCRIPTS=y | ||
| 192 | CONFIG_DEBUG_FS=y | ||
| 193 | CONFIG_MAGIC_SYSRQ=y | ||
| 194 | CONFIG_PANIC_ON_OOPS=y | ||
| 195 | CONFIG_PANIC_TIMEOUT=5 | ||
| 195 | # CONFIG_SCHED_DEBUG is not set | 196 | # CONFIG_SCHED_DEBUG is not set |
| 196 | # CONFIG_DEBUG_PREEMPT is not set | 197 | # CONFIG_DEBUG_PREEMPT is not set |
| 197 | # CONFIG_FTRACE is not set | 198 | # CONFIG_FTRACE is not set |
| 198 | # CONFIG_ARM_UNWIND is not set | ||
| 199 | CONFIG_DEBUG_LL=y | 199 | CONFIG_DEBUG_LL=y |
| 200 | CONFIG_EARLY_PRINTK=y | 200 | CONFIG_EARLY_PRINTK=y |
| 201 | CONFIG_CRYPTO_ANSI_CPRNG=y | ||
| 202 | # CONFIG_CRYPTO_HW is not set | ||
| 203 | CONFIG_CRC_CCITT=y | ||
diff --git a/arch/arm/configs/milbeaut_m10v_defconfig b/arch/arm/configs/milbeaut_m10v_defconfig new file mode 100644 index 000000000000..7c07f9893a0f --- /dev/null +++ b/arch/arm/configs/milbeaut_m10v_defconfig | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | CONFIG_SYSVIPC=y | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_HIGH_RES_TIMERS=y | ||
| 4 | CONFIG_CGROUPS=y | ||
| 5 | CONFIG_BLK_DEV_INITRD=y | ||
| 6 | CONFIG_EMBEDDED=y | ||
| 7 | CONFIG_PERF_EVENTS=y | ||
| 8 | CONFIG_ARCH_MILBEAUT=y | ||
| 9 | CONFIG_ARCH_MILBEAUT_M10V=y | ||
| 10 | CONFIG_ARM_THUMBEE=y | ||
| 11 | # CONFIG_VDSO is not set | ||
| 12 | # CONFIG_CACHE_L2X0 is not set | ||
| 13 | CONFIG_ARM_ERRATA_430973=y | ||
| 14 | CONFIG_ARM_ERRATA_720789=y | ||
| 15 | CONFIG_ARM_ERRATA_754322=y | ||
| 16 | CONFIG_ARM_ERRATA_754327=y | ||
| 17 | CONFIG_ARM_ERRATA_764369=y | ||
| 18 | CONFIG_ARM_ERRATA_775420=y | ||
| 19 | CONFIG_ARM_ERRATA_798181=y | ||
| 20 | CONFIG_SMP=y | ||
| 21 | # CONFIG_SMP_ON_UP is not set | ||
| 22 | # CONFIG_ARM_CPU_TOPOLOGY is not set | ||
| 23 | CONFIG_HAVE_ARM_ARCH_TIMER=y | ||
| 24 | CONFIG_NR_CPUS=16 | ||
| 25 | CONFIG_THUMB2_KERNEL=y | ||
| 26 | # CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 is not set | ||
| 27 | # CONFIG_ARM_PATCH_IDIV is not set | ||
| 28 | CONFIG_HIGHMEM=y | ||
| 29 | CONFIG_FORCE_MAX_ZONEORDER=12 | ||
| 30 | CONFIG_SECCOMP=y | ||
| 31 | CONFIG_KEXEC=y | ||
| 32 | CONFIG_EFI=y | ||
| 33 | CONFIG_CPU_FREQ=y | ||
| 34 | CONFIG_CPU_FREQ_STAT=y | ||
| 35 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
| 36 | CONFIG_CPU_FREQ_GOV_POWERSAVE=m | ||
| 37 | CONFIG_CPU_FREQ_GOV_USERSPACE=m | ||
| 38 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m | ||
| 39 | CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y | ||
| 40 | CONFIG_CPUFREQ_DT=y | ||
| 41 | CONFIG_QORIQ_CPUFREQ=y | ||
| 42 | CONFIG_CPU_IDLE=y | ||
| 43 | CONFIG_ARM_CPUIDLE=y | ||
| 44 | CONFIG_VFP=y | ||
| 45 | CONFIG_NEON=y | ||
| 46 | CONFIG_KERNEL_MODE_NEON=y | ||
| 47 | CONFIG_EFI_VARS=m | ||
| 48 | CONFIG_EFI_CAPSULE_LOADER=m | ||
| 49 | CONFIG_ARM_CRYPTO=y | ||
| 50 | CONFIG_CRYPTO_SHA1_ARM_NEON=m | ||
| 51 | CONFIG_CRYPTO_SHA1_ARM_CE=m | ||
| 52 | CONFIG_CRYPTO_SHA2_ARM_CE=m | ||
| 53 | CONFIG_CRYPTO_SHA512_ARM=m | ||
| 54 | CONFIG_CRYPTO_AES_ARM=m | ||
| 55 | CONFIG_CRYPTO_AES_ARM_BS=m | ||
| 56 | CONFIG_CRYPTO_AES_ARM_CE=m | ||
| 57 | CONFIG_CRYPTO_GHASH_ARM_CE=m | ||
| 58 | CONFIG_CRYPTO_CRC32_ARM_CE=m | ||
| 59 | CONFIG_CRYPTO_CHACHA20_NEON=m | ||
| 60 | CONFIG_MODULES=y | ||
| 61 | CONFIG_MODULE_UNLOAD=y | ||
| 62 | CONFIG_PARTITION_ADVANCED=y | ||
| 63 | CONFIG_CMDLINE_PARTITION=y | ||
| 64 | CONFIG_CMA=y | ||
| 65 | CONFIG_DEVTMPFS=y | ||
| 66 | CONFIG_DEVTMPFS_MOUNT=y | ||
| 67 | CONFIG_DMA_CMA=y | ||
| 68 | CONFIG_CMA_SIZE_MBYTES=64 | ||
| 69 | CONFIG_OF_OVERLAY=y | ||
| 70 | CONFIG_BLK_DEV_LOOP=y | ||
| 71 | CONFIG_BLK_DEV_RAM=y | ||
| 72 | CONFIG_BLK_DEV_RAM_SIZE=65536 | ||
| 73 | CONFIG_SRAM=y | ||
| 74 | CONFIG_INPUT_FF_MEMLESS=m | ||
| 75 | CONFIG_INPUT_MATRIXKMAP=y | ||
| 76 | # CONFIG_INPUT_KEYBOARD is not set | ||
| 77 | # CONFIG_INPUT_MOUSE is not set | ||
| 78 | CONFIG_SERIO_LIBPS2=y | ||
| 79 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
| 80 | CONFIG_SERIAL_DEV_BUS=y | ||
| 81 | # CONFIG_HW_RANDOM is not set | ||
| 82 | CONFIG_GPIOLIB=y | ||
| 83 | CONFIG_GPIO_GENERIC_PLATFORM=y | ||
| 84 | # CONFIG_HWMON is not set | ||
| 85 | CONFIG_MEDIA_SUPPORT=m | ||
| 86 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
| 87 | CONFIG_MEDIA_CONTROLLER=y | ||
| 88 | # CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set | ||
| 89 | # CONFIG_HID is not set | ||
| 90 | # CONFIG_USB_SUPPORT is not set | ||
| 91 | CONFIG_SYNC_FILE=y | ||
| 92 | # CONFIG_VIRTIO_MENU is not set | ||
| 93 | # CONFIG_IOMMU_SUPPORT is not set | ||
| 94 | CONFIG_SOC_BRCMSTB=y | ||
| 95 | CONFIG_MEMORY=y | ||
| 96 | # CONFIG_ARM_PMU is not set | ||
| 97 | CONFIG_EXT4_FS=y | ||
| 98 | CONFIG_AUTOFS4_FS=y | ||
| 99 | CONFIG_MSDOS_FS=y | ||
| 100 | CONFIG_VFAT_FS=y | ||
| 101 | CONFIG_NTFS_FS=y | ||
| 102 | CONFIG_TMPFS=y | ||
| 103 | CONFIG_TMPFS_POSIX_ACL=y | ||
| 104 | CONFIG_CONFIGFS_FS=y | ||
| 105 | # CONFIG_MISC_FILESYSTEMS is not set | ||
| 106 | CONFIG_NLS_CODEPAGE_437=y | ||
| 107 | CONFIG_NLS_ISO8859_1=y | ||
| 108 | CONFIG_NLS_UTF8=y | ||
| 109 | CONFIG_KEYS=y | ||
| 110 | CONFIG_CRYPTO_MANAGER=y | ||
| 111 | # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set | ||
| 112 | CONFIG_CRYPTO_SEQIV=m | ||
| 113 | # CONFIG_CRYPTO_ECHAINIV is not set | ||
| 114 | CONFIG_CRYPTO_AES=y | ||
| 115 | # CONFIG_CRYPTO_HW is not set | ||
| 116 | CONFIG_CRC_CCITT=m | ||
| 117 | CONFIG_CRC_ITU_T=m | ||
| 118 | CONFIG_PRINTK_TIME=y | ||
| 119 | CONFIG_MAGIC_SYSRQ=y | ||
diff --git a/arch/arm/configs/mini2440_defconfig b/arch/arm/configs/mini2440_defconfig index 88ea02e7ba19..d95a8059d30b 100644 --- a/arch/arm/configs/mini2440_defconfig +++ b/arch/arm/configs/mini2440_defconfig | |||
| @@ -298,7 +298,6 @@ CONFIG_NLS_KOI8_R=m | |||
| 298 | CONFIG_NLS_KOI8_U=m | 298 | CONFIG_NLS_KOI8_U=m |
| 299 | CONFIG_NLS_UTF8=m | 299 | CONFIG_NLS_UTF8=m |
| 300 | CONFIG_DEBUG_INFO=y | 300 | CONFIG_DEBUG_INFO=y |
| 301 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 302 | # CONFIG_ENABLE_MUST_CHECK is not set | 301 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 303 | CONFIG_STRIP_ASM_SYMS=y | 302 | CONFIG_STRIP_ASM_SYMS=y |
| 304 | CONFIG_DEBUG_FS=y | 303 | CONFIG_DEBUG_FS=y |
diff --git a/arch/arm/configs/moxart_defconfig b/arch/arm/configs/moxart_defconfig index 2da0d9ee2107..078228a19339 100644 --- a/arch/arm/configs/moxart_defconfig +++ b/arch/arm/configs/moxart_defconfig | |||
| @@ -125,7 +125,6 @@ CONFIG_CONFIGFS_FS=y | |||
| 125 | CONFIG_JFFS2_FS=y | 125 | CONFIG_JFFS2_FS=y |
| 126 | CONFIG_PRINTK_TIME=y | 126 | CONFIG_PRINTK_TIME=y |
| 127 | CONFIG_DEBUG_INFO=y | 127 | CONFIG_DEBUG_INFO=y |
| 128 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 129 | # CONFIG_ENABLE_MUST_CHECK is not set | 128 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 130 | CONFIG_DEBUG_PAGEALLOC=y | 129 | CONFIG_DEBUG_PAGEALLOC=y |
| 131 | CONFIG_DEBUG_OBJECTS=y | 130 | CONFIG_DEBUG_OBJECTS=y |
diff --git a/arch/arm/configs/mps2_defconfig b/arch/arm/configs/mps2_defconfig index 0bcdec7cc169..1d923dbb9928 100644 --- a/arch/arm/configs/mps2_defconfig +++ b/arch/arm/configs/mps2_defconfig | |||
| @@ -100,7 +100,6 @@ CONFIG_ROOT_NFS=y | |||
| 100 | CONFIG_NLS=y | 100 | CONFIG_NLS=y |
| 101 | CONFIG_PRINTK_TIME=y | 101 | CONFIG_PRINTK_TIME=y |
| 102 | CONFIG_DEBUG_INFO=y | 102 | CONFIG_DEBUG_INFO=y |
| 103 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 104 | # CONFIG_ENABLE_MUST_CHECK is not set | 103 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 105 | CONFIG_DEBUG_FS=y | 104 | CONFIG_DEBUG_FS=y |
| 106 | # CONFIG_SCHED_DEBUG is not set | 105 | # CONFIG_SCHED_DEBUG is not set |
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig index 5bee34a7ff2e..c75051b9392c 100644 --- a/arch/arm/configs/multi_v7_defconfig +++ b/arch/arm/configs/multi_v7_defconfig | |||
| @@ -54,6 +54,8 @@ CONFIG_SOC_VF610=y | |||
| 54 | CONFIG_ARCH_KEYSTONE=y | 54 | CONFIG_ARCH_KEYSTONE=y |
| 55 | CONFIG_ARCH_MEDIATEK=y | 55 | CONFIG_ARCH_MEDIATEK=y |
| 56 | CONFIG_ARCH_MESON=y | 56 | CONFIG_ARCH_MESON=y |
| 57 | CONFIG_ARCH_MILBEAUT=y | ||
| 58 | CONFIG_ARCH_MILBEAUT_M10V=y | ||
| 57 | CONFIG_ARCH_MVEBU=y | 59 | CONFIG_ARCH_MVEBU=y |
| 58 | CONFIG_MACH_ARMADA_370=y | 60 | CONFIG_MACH_ARMADA_370=y |
| 59 | CONFIG_MACH_ARMADA_375=y | 61 | CONFIG_MACH_ARMADA_375=y |
| @@ -76,6 +78,7 @@ CONFIG_ARCH_ROCKCHIP=y | |||
| 76 | CONFIG_ARCH_RENESAS=y | 78 | CONFIG_ARCH_RENESAS=y |
| 77 | CONFIG_ARCH_EMEV2=y | 79 | CONFIG_ARCH_EMEV2=y |
| 78 | CONFIG_ARCH_R7S72100=y | 80 | CONFIG_ARCH_R7S72100=y |
| 81 | CONFIG_ARCH_R7S9210=y | ||
| 79 | CONFIG_ARCH_R8A73A4=y | 82 | CONFIG_ARCH_R8A73A4=y |
| 80 | CONFIG_ARCH_R8A7740=y | 83 | CONFIG_ARCH_R8A7740=y |
| 81 | CONFIG_ARCH_R8A7743=y | 84 | CONFIG_ARCH_R8A7743=y |
| @@ -404,6 +407,7 @@ CONFIG_SPI_XILINX=y | |||
| 404 | CONFIG_SPI_SPIDEV=y | 407 | CONFIG_SPI_SPIDEV=y |
| 405 | CONFIG_SPMI=y | 408 | CONFIG_SPMI=y |
| 406 | CONFIG_PINCTRL_AS3722=y | 409 | CONFIG_PINCTRL_AS3722=y |
| 410 | CONFIG_PINCTRL_RZA2=y | ||
| 407 | CONFIG_PINCTRL_PALMAS=y | 411 | CONFIG_PINCTRL_PALMAS=y |
| 408 | CONFIG_PINCTRL_APQ8064=y | 412 | CONFIG_PINCTRL_APQ8064=y |
| 409 | CONFIG_PINCTRL_APQ8084=y | 413 | CONFIG_PINCTRL_APQ8084=y |
| @@ -631,6 +635,7 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m | |||
| 631 | CONFIG_DRM_DUMB_VGA_DAC=m | 635 | CONFIG_DRM_DUMB_VGA_DAC=m |
| 632 | CONFIG_DRM_NXP_PTN3460=m | 636 | CONFIG_DRM_NXP_PTN3460=m |
| 633 | CONFIG_DRM_PARADE_PS8622=m | 637 | CONFIG_DRM_PARADE_PS8622=m |
| 638 | CONFIG_DRM_SII902X=m | ||
| 634 | CONFIG_DRM_SII9234=m | 639 | CONFIG_DRM_SII9234=m |
| 635 | CONFIG_DRM_TOSHIBA_TC358764=m | 640 | CONFIG_DRM_TOSHIBA_TC358764=m |
| 636 | CONFIG_DRM_I2C_ADV7511=m | 641 | CONFIG_DRM_I2C_ADV7511=m |
| @@ -641,7 +646,7 @@ CONFIG_DRM_STM_DSI=m | |||
| 641 | CONFIG_DRM_VC4=m | 646 | CONFIG_DRM_VC4=m |
| 642 | CONFIG_DRM_ETNAVIV=m | 647 | CONFIG_DRM_ETNAVIV=m |
| 643 | CONFIG_DRM_MXSFB=m | 648 | CONFIG_DRM_MXSFB=m |
| 644 | CONFIG_FB_ARMCLCD=y | 649 | CONFIG_DRM_PL111=m |
| 645 | CONFIG_FB_EFI=y | 650 | CONFIG_FB_EFI=y |
| 646 | CONFIG_FB_WM8505=y | 651 | CONFIG_FB_WM8505=y |
| 647 | CONFIG_FB_SH_MOBILE_LCDC=y | 652 | CONFIG_FB_SH_MOBILE_LCDC=y |
| @@ -826,6 +831,7 @@ CONFIG_RTC_DRV_MAX8997=m | |||
| 826 | CONFIG_RTC_DRV_MAX77686=y | 831 | CONFIG_RTC_DRV_MAX77686=y |
| 827 | CONFIG_RTC_DRV_RK808=m | 832 | CONFIG_RTC_DRV_RK808=m |
| 828 | CONFIG_RTC_DRV_RS5C372=m | 833 | CONFIG_RTC_DRV_RS5C372=m |
| 834 | CONFIG_RTC_DRV_PCF85363=m | ||
| 829 | CONFIG_RTC_DRV_BQ32K=m | 835 | CONFIG_RTC_DRV_BQ32K=m |
| 830 | CONFIG_RTC_DRV_TWL4030=y | 836 | CONFIG_RTC_DRV_TWL4030=y |
| 831 | CONFIG_RTC_DRV_PALMAS=y | 837 | CONFIG_RTC_DRV_PALMAS=y |
| @@ -1028,3 +1034,5 @@ CONFIG_CRYPTO_AES_ARM_CE=m | |||
| 1028 | CONFIG_CRYPTO_GHASH_ARM_CE=m | 1034 | CONFIG_CRYPTO_GHASH_ARM_CE=m |
| 1029 | CONFIG_CRYPTO_CRC32_ARM_CE=m | 1035 | CONFIG_CRYPTO_CRC32_ARM_CE=m |
| 1030 | CONFIG_CRYPTO_CHACHA20_NEON=m | 1036 | CONFIG_CRYPTO_CHACHA20_NEON=m |
| 1037 | CONFIG_GCC_PLUGINS=y | ||
| 1038 | CONFIG_GCC_PLUGIN_STRUCTLEAK=y | ||
diff --git a/arch/arm/configs/nhk8815_defconfig b/arch/arm/configs/nhk8815_defconfig index 0ac44acd5bc4..5f4c6aaa07f6 100644 --- a/arch/arm/configs/nhk8815_defconfig +++ b/arch/arm/configs/nhk8815_defconfig | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | CONFIG_SYSVIPC=y | 3 | CONFIG_SYSVIPC=y |
| 4 | CONFIG_NO_HZ_IDLE=y | 4 | CONFIG_NO_HZ_IDLE=y |
| 5 | CONFIG_HIGH_RES_TIMERS=y | 5 | CONFIG_HIGH_RES_TIMERS=y |
| 6 | CONFIG_PREEMPT=y | ||
| 6 | CONFIG_IKCONFIG=y | 7 | CONFIG_IKCONFIG=y |
| 7 | CONFIG_IKCONFIG_PROC=y | 8 | CONFIG_IKCONFIG_PROC=y |
| 8 | CONFIG_LOG_BUF_SHIFT=14 | 9 | CONFIG_LOG_BUF_SHIFT=14 |
| @@ -10,16 +11,16 @@ CONFIG_BLK_DEV_INITRD=y | |||
| 10 | CONFIG_EXPERT=y | 11 | CONFIG_EXPERT=y |
| 11 | CONFIG_KALLSYMS_ALL=y | 12 | CONFIG_KALLSYMS_ALL=y |
| 12 | CONFIG_SLAB=y | 13 | CONFIG_SLAB=y |
| 13 | CONFIG_MODULES=y | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | # CONFIG_BLK_DEV_BSG is not set | ||
| 16 | # CONFIG_ARCH_MULTI_V7 is not set | 14 | # CONFIG_ARCH_MULTI_V7 is not set |
| 17 | CONFIG_ARCH_NOMADIK=y | 15 | CONFIG_ARCH_NOMADIK=y |
| 18 | CONFIG_MACH_NOMADIK_8815NHK=y | 16 | CONFIG_MACH_NOMADIK_8815NHK=y |
| 19 | CONFIG_PREEMPT=y | ||
| 20 | CONFIG_AEABI=y | 17 | CONFIG_AEABI=y |
| 21 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 18 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 22 | CONFIG_ZBOOT_ROM_BSS=0x0 | 19 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 20 | CONFIG_MODULES=y | ||
| 21 | CONFIG_MODULE_UNLOAD=y | ||
| 22 | # CONFIG_BLK_DEV_BSG is not set | ||
| 23 | CONFIG_CMA=y | ||
| 23 | CONFIG_NET=y | 24 | CONFIG_NET=y |
| 24 | CONFIG_PACKET=y | 25 | CONFIG_PACKET=y |
| 25 | CONFIG_UNIX=y | 26 | CONFIG_UNIX=y |
| @@ -49,12 +50,12 @@ CONFIG_MTD=y | |||
| 49 | CONFIG_MTD_TESTS=m | 50 | CONFIG_MTD_TESTS=m |
| 50 | CONFIG_MTD_CMDLINE_PARTS=y | 51 | CONFIG_MTD_CMDLINE_PARTS=y |
| 51 | CONFIG_MTD_BLOCK=y | 52 | CONFIG_MTD_BLOCK=y |
| 52 | CONFIG_MTD_NAND_ECC_SMC=y | ||
| 53 | CONFIG_MTD_NAND=y | ||
| 54 | CONFIG_MTD_NAND_FSMC=y | ||
| 55 | CONFIG_MTD_ONENAND=y | 53 | CONFIG_MTD_ONENAND=y |
| 56 | CONFIG_MTD_ONENAND_VERIFY_WRITE=y | 54 | CONFIG_MTD_ONENAND_VERIFY_WRITE=y |
| 57 | CONFIG_MTD_ONENAND_GENERIC=y | 55 | CONFIG_MTD_ONENAND_GENERIC=y |
| 56 | CONFIG_MTD_NAND_ECC_SMC=y | ||
| 57 | CONFIG_MTD_NAND=y | ||
| 58 | CONFIG_MTD_NAND_FSMC=y | ||
| 58 | CONFIG_BLK_DEV_LOOP=y | 59 | CONFIG_BLK_DEV_LOOP=y |
| 59 | CONFIG_BLK_DEV_CRYPTOLOOP=y | 60 | CONFIG_BLK_DEV_CRYPTOLOOP=y |
| 60 | CONFIG_BLK_DEV_RAM=y | 61 | CONFIG_BLK_DEV_RAM=y |
| @@ -75,7 +76,6 @@ CONFIG_PPP_MPPE=m | |||
| 75 | CONFIG_PPPOE=m | 76 | CONFIG_PPPOE=m |
| 76 | CONFIG_PPP_ASYNC=m | 77 | CONFIG_PPP_ASYNC=m |
| 77 | CONFIG_PPP_SYNC_TTY=m | 78 | CONFIG_PPP_SYNC_TTY=m |
| 78 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 79 | CONFIG_INPUT_EVDEV=y | 79 | CONFIG_INPUT_EVDEV=y |
| 80 | # CONFIG_KEYBOARD_ATKBD is not set | 80 | # CONFIG_KEYBOARD_ATKBD is not set |
| 81 | CONFIG_KEYBOARD_GPIO=y | 81 | CONFIG_KEYBOARD_GPIO=y |
| @@ -88,13 +88,22 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y | |||
| 88 | CONFIG_HW_RANDOM=y | 88 | CONFIG_HW_RANDOM=y |
| 89 | CONFIG_I2C_CHARDEV=y | 89 | CONFIG_I2C_CHARDEV=y |
| 90 | CONFIG_I2C_GPIO=y | 90 | CONFIG_I2C_GPIO=y |
| 91 | CONFIG_DEBUG_GPIO=y | 91 | CONFIG_SPI=y |
| 92 | CONFIG_SPI_GPIO=y | ||
| 92 | CONFIG_GPIO_STMPE=y | 93 | CONFIG_GPIO_STMPE=y |
| 93 | # CONFIG_HWMON is not set | 94 | # CONFIG_HWMON is not set |
| 94 | CONFIG_MFD_STMPE=y | 95 | CONFIG_MFD_STMPE=y |
| 96 | CONFIG_MFD_STW481X=y | ||
| 95 | CONFIG_REGULATOR=y | 97 | CONFIG_REGULATOR=y |
| 98 | CONFIG_DRM=y | ||
| 99 | CONFIG_DRM_PANEL_TPO_TPG110=y | ||
| 100 | CONFIG_DRM_PL111=y | ||
| 101 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 102 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 103 | CONFIG_BACKLIGHT_PWM=y | ||
| 104 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 105 | CONFIG_LOGO=y | ||
| 96 | CONFIG_MMC=y | 106 | CONFIG_MMC=y |
| 97 | # CONFIG_MMC_BLOCK_BOUNCE is not set | ||
| 98 | CONFIG_MMC_ARMMMCI=y | 107 | CONFIG_MMC_ARMMMCI=y |
| 99 | CONFIG_NEW_LEDS=y | 108 | CONFIG_NEW_LEDS=y |
| 100 | CONFIG_LEDS_CLASS=y | 109 | CONFIG_LEDS_CLASS=y |
| @@ -105,6 +114,11 @@ CONFIG_RTC_CLASS=y | |||
| 105 | CONFIG_RTC_DRV_PL031=y | 114 | CONFIG_RTC_DRV_PL031=y |
| 106 | CONFIG_DMADEVICES=y | 115 | CONFIG_DMADEVICES=y |
| 107 | CONFIG_AMBA_PL08X=y | 116 | CONFIG_AMBA_PL08X=y |
| 117 | CONFIG_IIO=y | ||
| 118 | CONFIG_IIO_BUFFER=y | ||
| 119 | CONFIG_IIO_ST_ACCEL_3AXIS=y | ||
| 120 | CONFIG_PWM=y | ||
| 121 | CONFIG_PWM_STMPE=y | ||
| 108 | CONFIG_EXT2_FS=y | 122 | CONFIG_EXT2_FS=y |
| 109 | CONFIG_EXT3_FS=y | 123 | CONFIG_EXT3_FS=y |
| 110 | CONFIG_FUSE_FS=y | 124 | CONFIG_FUSE_FS=y |
| @@ -121,13 +135,12 @@ CONFIG_NLS_CODEPAGE_437=y | |||
| 121 | CONFIG_NLS_ASCII=y | 135 | CONFIG_NLS_ASCII=y |
| 122 | CONFIG_NLS_ISO8859_1=y | 136 | CONFIG_NLS_ISO8859_1=y |
| 123 | CONFIG_NLS_ISO8859_15=y | 137 | CONFIG_NLS_ISO8859_15=y |
| 138 | CONFIG_CRYPTO_MD5=y | ||
| 139 | CONFIG_CRYPTO_SHA1=y | ||
| 140 | CONFIG_CRYPTO_DES=y | ||
| 124 | CONFIG_DEBUG_INFO=y | 141 | CONFIG_DEBUG_INFO=y |
| 125 | # CONFIG_ENABLE_MUST_CHECK is not set | 142 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 126 | CONFIG_DEBUG_FS=y | 143 | CONFIG_DEBUG_FS=y |
| 127 | # CONFIG_SCHED_DEBUG is not set | 144 | # CONFIG_SCHED_DEBUG is not set |
| 128 | # CONFIG_DEBUG_PREEMPT is not set | 145 | # CONFIG_DEBUG_PREEMPT is not set |
| 129 | # CONFIG_DEBUG_BUGVERBOSE is not set | 146 | # CONFIG_DEBUG_BUGVERBOSE is not set |
| 130 | CONFIG_CRYPTO_MD5=y | ||
| 131 | CONFIG_CRYPTO_SHA1=y | ||
| 132 | CONFIG_CRYPTO_DES=y | ||
| 133 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
diff --git a/arch/arm/configs/nuc910_defconfig b/arch/arm/configs/nuc910_defconfig index a72653645f9d..c0d152c02fba 100644 --- a/arch/arm/configs/nuc910_defconfig +++ b/arch/arm/configs/nuc910_defconfig | |||
| @@ -47,7 +47,6 @@ CONFIG_ROMFS_FS=y | |||
| 47 | CONFIG_PARTITION_ADVANCED=y | 47 | CONFIG_PARTITION_ADVANCED=y |
| 48 | CONFIG_NLS_CODEPAGE_437=y | 48 | CONFIG_NLS_CODEPAGE_437=y |
| 49 | CONFIG_NLS_ISO8859_1=y | 49 | CONFIG_NLS_ISO8859_1=y |
| 50 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 51 | # CONFIG_ENABLE_MUST_CHECK is not set | 50 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 52 | CONFIG_DEBUG_FS=y | 51 | CONFIG_DEBUG_FS=y |
| 53 | # CONFIG_CRC32 is not set | 52 | # CONFIG_CRC32 is not set |
diff --git a/arch/arm/configs/nuc950_defconfig b/arch/arm/configs/nuc950_defconfig index 614a0a28d0b4..8dde1186c2ef 100644 --- a/arch/arm/configs/nuc950_defconfig +++ b/arch/arm/configs/nuc950_defconfig | |||
| @@ -64,6 +64,5 @@ CONFIG_ROMFS_FS=y | |||
| 64 | CONFIG_PARTITION_ADVANCED=y | 64 | CONFIG_PARTITION_ADVANCED=y |
| 65 | CONFIG_NLS_CODEPAGE_437=y | 65 | CONFIG_NLS_CODEPAGE_437=y |
| 66 | CONFIG_NLS_ISO8859_1=y | 66 | CONFIG_NLS_ISO8859_1=y |
| 67 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 68 | # CONFIG_ENABLE_MUST_CHECK is not set | 67 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 69 | CONFIG_DEBUG_FS=y | 68 | CONFIG_DEBUG_FS=y |
diff --git a/arch/arm/configs/nuc960_defconfig b/arch/arm/configs/nuc960_defconfig index b84bbd216153..6bb784f8eb5b 100644 --- a/arch/arm/configs/nuc960_defconfig +++ b/arch/arm/configs/nuc960_defconfig | |||
| @@ -53,7 +53,6 @@ CONFIG_ROMFS_FS=y | |||
| 53 | CONFIG_PARTITION_ADVANCED=y | 53 | CONFIG_PARTITION_ADVANCED=y |
| 54 | CONFIG_NLS_CODEPAGE_437=y | 54 | CONFIG_NLS_CODEPAGE_437=y |
| 55 | CONFIG_NLS_ISO8859_1=y | 55 | CONFIG_NLS_ISO8859_1=y |
| 56 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 57 | # CONFIG_ENABLE_MUST_CHECK is not set | 56 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 58 | CONFIG_DEBUG_FS=y | 57 | CONFIG_DEBUG_FS=y |
| 59 | # CONFIG_CRC32 is not set | 58 | # CONFIG_CRC32 is not set |
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig index 9c6f436d1b12..3f03ec6d2644 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig | |||
| @@ -25,16 +25,6 @@ CONFIG_BLK_DEV_INITRD=y | |||
| 25 | CONFIG_EXPERT=y | 25 | CONFIG_EXPERT=y |
| 26 | CONFIG_SLAB=y | 26 | CONFIG_SLAB=y |
| 27 | CONFIG_PROFILING=y | 27 | CONFIG_PROFILING=y |
| 28 | CONFIG_OPROFILE=y | ||
| 29 | CONFIG_KPROBES=y | ||
| 30 | CONFIG_MODULES=y | ||
| 31 | CONFIG_MODULE_FORCE_LOAD=y | ||
| 32 | CONFIG_MODULE_UNLOAD=y | ||
| 33 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 34 | CONFIG_MODVERSIONS=y | ||
| 35 | CONFIG_MODULE_SRCVERSION_ALL=y | ||
| 36 | # CONFIG_BLK_DEV_BSG is not set | ||
| 37 | CONFIG_PARTITION_ADVANCED=y | ||
| 38 | CONFIG_ARCH_MULTI_V6=y | 28 | CONFIG_ARCH_MULTI_V6=y |
| 39 | CONFIG_POWER_AVS_OMAP=y | 29 | CONFIG_POWER_AVS_OMAP=y |
| 40 | CONFIG_POWER_AVS_OMAP_CLASS3=y | 30 | CONFIG_POWER_AVS_OMAP_CLASS3=y |
| @@ -48,15 +38,8 @@ CONFIG_SOC_AM43XX=y | |||
| 48 | CONFIG_SOC_DRA7XX=y | 38 | CONFIG_SOC_DRA7XX=y |
| 49 | CONFIG_ARM_THUMBEE=y | 39 | CONFIG_ARM_THUMBEE=y |
| 50 | CONFIG_ARM_ERRATA_411920=y | 40 | CONFIG_ARM_ERRATA_411920=y |
| 51 | CONFIG_PCI=y | ||
| 52 | CONFIG_PCI_MSI=y | ||
| 53 | CONFIG_PCI_DRA7XX_EP=y | ||
| 54 | CONFIG_PCI_ENDPOINT=y | ||
| 55 | CONFIG_PCI_ENDPOINT_CONFIGFS=y | ||
| 56 | CONFIG_PCI_EPF_TEST=m | ||
| 57 | CONFIG_SMP=y | 41 | CONFIG_SMP=y |
| 58 | CONFIG_NR_CPUS=2 | 42 | CONFIG_NR_CPUS=2 |
| 59 | CONFIG_CMA=y | ||
| 60 | CONFIG_SECCOMP=y | 43 | CONFIG_SECCOMP=y |
| 61 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 44 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 62 | CONFIG_ZBOOT_ROM_BSS=0x0 | 45 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| @@ -74,8 +57,27 @@ CONFIG_CPUFREQ_DT=m | |||
| 74 | CONFIG_ARM_TI_CPUFREQ=y | 57 | CONFIG_ARM_TI_CPUFREQ=y |
| 75 | CONFIG_CPU_IDLE=y | 58 | CONFIG_CPU_IDLE=y |
| 76 | CONFIG_KERNEL_MODE_NEON=y | 59 | CONFIG_KERNEL_MODE_NEON=y |
| 77 | CONFIG_BINFMT_MISC=y | ||
| 78 | CONFIG_PM_DEBUG=y | 60 | CONFIG_PM_DEBUG=y |
| 61 | CONFIG_ARM_CRYPTO=y | ||
| 62 | CONFIG_CRYPTO_SHA1_ARM_NEON=m | ||
| 63 | CONFIG_CRYPTO_SHA256_ARM=m | ||
| 64 | CONFIG_CRYPTO_SHA512_ARM=m | ||
| 65 | CONFIG_CRYPTO_AES_ARM=m | ||
| 66 | CONFIG_CRYPTO_AES_ARM_BS=m | ||
| 67 | CONFIG_CRYPTO_GHASH_ARM_CE=m | ||
| 68 | CONFIG_CRYPTO_CHACHA20_NEON=m | ||
| 69 | CONFIG_OPROFILE=y | ||
| 70 | CONFIG_KPROBES=y | ||
| 71 | CONFIG_MODULES=y | ||
| 72 | CONFIG_MODULE_FORCE_LOAD=y | ||
| 73 | CONFIG_MODULE_UNLOAD=y | ||
| 74 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 75 | CONFIG_MODVERSIONS=y | ||
| 76 | CONFIG_MODULE_SRCVERSION_ALL=y | ||
| 77 | # CONFIG_BLK_DEV_BSG is not set | ||
| 78 | CONFIG_PARTITION_ADVANCED=y | ||
| 79 | CONFIG_BINFMT_MISC=y | ||
| 80 | CONFIG_CMA=y | ||
| 79 | CONFIG_NET=y | 81 | CONFIG_NET=y |
| 80 | CONFIG_PACKET=y | 82 | CONFIG_PACKET=y |
| 81 | CONFIG_UNIX=y | 83 | CONFIG_UNIX=y |
| @@ -118,6 +120,12 @@ CONFIG_AF_RXRPC=m | |||
| 118 | CONFIG_RXKAD=y | 120 | CONFIG_RXKAD=y |
| 119 | CONFIG_CFG80211=m | 121 | CONFIG_CFG80211=m |
| 120 | CONFIG_MAC80211=m | 122 | CONFIG_MAC80211=m |
| 123 | CONFIG_PCI=y | ||
| 124 | CONFIG_PCI_MSI=y | ||
| 125 | CONFIG_PCI_DRA7XX_EP=y | ||
| 126 | CONFIG_PCI_ENDPOINT=y | ||
| 127 | CONFIG_PCI_ENDPOINT_CONFIGFS=y | ||
| 128 | CONFIG_PCI_EPF_TEST=m | ||
| 121 | CONFIG_DEVTMPFS=y | 129 | CONFIG_DEVTMPFS=y |
| 122 | CONFIG_DEVTMPFS_MOUNT=y | 130 | CONFIG_DEVTMPFS_MOUNT=y |
| 123 | CONFIG_DMA_CMA=y | 131 | CONFIG_DMA_CMA=y |
| @@ -132,13 +140,13 @@ CONFIG_MTD_CFI_INTELEXT=y | |||
| 132 | CONFIG_MTD_PHYSMAP=y | 140 | CONFIG_MTD_PHYSMAP=y |
| 133 | CONFIG_MTD_PHYSMAP_OF=y | 141 | CONFIG_MTD_PHYSMAP_OF=y |
| 134 | CONFIG_MTD_M25P80=m | 142 | CONFIG_MTD_M25P80=m |
| 143 | CONFIG_MTD_ONENAND=y | ||
| 144 | CONFIG_MTD_ONENAND_VERIFY_WRITE=y | ||
| 145 | CONFIG_MTD_ONENAND_OMAP2=y | ||
| 135 | CONFIG_MTD_NAND=y | 146 | CONFIG_MTD_NAND=y |
| 136 | CONFIG_MTD_NAND_ECC_BCH=y | 147 | CONFIG_MTD_NAND_ECC_BCH=y |
| 137 | CONFIG_MTD_NAND_OMAP2=y | 148 | CONFIG_MTD_NAND_OMAP2=y |
| 138 | CONFIG_MTD_NAND_OMAP_BCH=y | 149 | CONFIG_MTD_NAND_OMAP_BCH=y |
| 139 | CONFIG_MTD_ONENAND=y | ||
| 140 | CONFIG_MTD_ONENAND_VERIFY_WRITE=y | ||
| 141 | CONFIG_MTD_ONENAND_OMAP2=y | ||
| 142 | CONFIG_MTD_SPI_NOR=m | 150 | CONFIG_MTD_SPI_NOR=m |
| 143 | CONFIG_MTD_UBI=y | 151 | CONFIG_MTD_UBI=y |
| 144 | CONFIG_BLK_DEV_LOOP=y | 152 | CONFIG_BLK_DEV_LOOP=y |
| @@ -155,7 +163,6 @@ CONFIG_SATA_AHCI_PLATFORM=y | |||
| 155 | CONFIG_AHCI_DM816=m | 163 | CONFIG_AHCI_DM816=m |
| 156 | CONFIG_NETDEVICES=y | 164 | CONFIG_NETDEVICES=y |
| 157 | # CONFIG_NET_VENDOR_ARC is not set | 165 | # CONFIG_NET_VENDOR_ARC is not set |
| 158 | # CONFIG_NET_CADENCE is not set | ||
| 159 | # CONFIG_NET_VENDOR_BROADCOM is not set | 166 | # CONFIG_NET_VENDOR_BROADCOM is not set |
| 160 | # CONFIG_NET_VENDOR_CIRRUS is not set | 167 | # CONFIG_NET_VENDOR_CIRRUS is not set |
| 161 | CONFIG_DM9000=y | 168 | CONFIG_DM9000=y |
| @@ -283,11 +290,9 @@ CONFIG_HWMON=m | |||
| 283 | CONFIG_SENSORS_GPIO_FAN=m | 290 | CONFIG_SENSORS_GPIO_FAN=m |
| 284 | CONFIG_SENSORS_LM75=m | 291 | CONFIG_SENSORS_LM75=m |
| 285 | CONFIG_SENSORS_TMP102=m | 292 | CONFIG_SENSORS_TMP102=m |
| 286 | CONFIG_THERMAL=m | ||
| 287 | CONFIG_THERMAL_GOV_FAIR_SHARE=y | 293 | CONFIG_THERMAL_GOV_FAIR_SHARE=y |
| 288 | CONFIG_THERMAL_GOV_USER_SPACE=y | 294 | CONFIG_THERMAL_GOV_USER_SPACE=y |
| 289 | CONFIG_CPU_THERMAL=y | 295 | CONFIG_CPU_THERMAL=y |
| 290 | CONFIG_TI_SOC_THERMAL=m | ||
| 291 | CONFIG_TI_THERMAL=y | 296 | CONFIG_TI_THERMAL=y |
| 292 | CONFIG_OMAP4_THERMAL=y | 297 | CONFIG_OMAP4_THERMAL=y |
| 293 | CONFIG_OMAP5_THERMAL=y | 298 | CONFIG_OMAP5_THERMAL=y |
| @@ -381,13 +386,12 @@ CONFIG_SND_VERBOSE_PRINTK=y | |||
| 381 | CONFIG_SND_DEBUG=y | 386 | CONFIG_SND_DEBUG=y |
| 382 | CONFIG_SND_USB_AUDIO=m | 387 | CONFIG_SND_USB_AUDIO=m |
| 383 | CONFIG_SND_SOC=m | 388 | CONFIG_SND_SOC=m |
| 384 | CONFIG_SND_SOC_TLV320AIC3X=m | ||
| 385 | CONFIG_SND_SOC_DAVINCI_MCASP=m | 389 | CONFIG_SND_SOC_DAVINCI_MCASP=m |
| 386 | CONFIG_SND_SOC_NOKIA_RX51=m | 390 | CONFIG_SND_SOC_NOKIA_RX51=m |
| 387 | CONFIG_SND_SOC_OMAP_HDMI=m | ||
| 388 | CONFIG_SND_SOC_OMAP_ABE_TWL6040=m | ||
| 389 | CONFIG_SND_SOC_OMAP3_PANDORA=m | 391 | CONFIG_SND_SOC_OMAP3_PANDORA=m |
| 390 | CONFIG_SND_SOC_OMAP3_TWL4030=m | 392 | CONFIG_SND_SOC_OMAP3_TWL4030=m |
| 393 | CONFIG_SND_SOC_OMAP_ABE_TWL6040=m | ||
| 394 | CONFIG_SND_SOC_OMAP_HDMI=m | ||
| 391 | CONFIG_SND_SOC_CPCAP=m | 395 | CONFIG_SND_SOC_CPCAP=m |
| 392 | CONFIG_SND_SOC_TLV320AIC23_I2C=m | 396 | CONFIG_SND_SOC_TLV320AIC23_I2C=m |
| 393 | CONFIG_SND_SIMPLE_CARD=m | 397 | CONFIG_SND_SIMPLE_CARD=m |
| @@ -475,8 +479,6 @@ CONFIG_RTC_DRV_PALMAS=m | |||
| 475 | CONFIG_RTC_DRV_OMAP=m | 479 | CONFIG_RTC_DRV_OMAP=m |
| 476 | CONFIG_RTC_DRV_CPCAP=m | 480 | CONFIG_RTC_DRV_CPCAP=m |
| 477 | CONFIG_DMADEVICES=y | 481 | CONFIG_DMADEVICES=y |
| 478 | CONFIG_DMA_OMAP=y | ||
| 479 | CONFIG_TI_EDMA=y | ||
| 480 | CONFIG_OMAP_IOMMU=y | 482 | CONFIG_OMAP_IOMMU=y |
| 481 | CONFIG_REMOTEPROC=m | 483 | CONFIG_REMOTEPROC=m |
| 482 | CONFIG_OMAP_REMOTEPROC=m | 484 | CONFIG_OMAP_REMOTEPROC=m |
| @@ -531,24 +533,8 @@ CONFIG_NFS_V4=y | |||
| 531 | CONFIG_ROOT_NFS=y | 533 | CONFIG_ROOT_NFS=y |
| 532 | CONFIG_NLS_CODEPAGE_437=y | 534 | CONFIG_NLS_CODEPAGE_437=y |
| 533 | CONFIG_NLS_ISO8859_1=y | 535 | CONFIG_NLS_ISO8859_1=y |
| 534 | CONFIG_PRINTK_TIME=y | ||
| 535 | CONFIG_DEBUG_INFO=y | ||
| 536 | CONFIG_DEBUG_INFO_SPLIT=y | ||
| 537 | CONFIG_DEBUG_INFO_DWARF4=y | ||
| 538 | CONFIG_MAGIC_SYSRQ=y | ||
| 539 | CONFIG_SCHEDSTATS=y | ||
| 540 | CONFIG_PROVE_LOCKING=y | ||
| 541 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
| 542 | CONFIG_SECURITY=y | 536 | CONFIG_SECURITY=y |
| 543 | CONFIG_CRYPTO_MICHAEL_MIC=y | 537 | CONFIG_CRYPTO_MICHAEL_MIC=y |
| 544 | CONFIG_ARM_CRYPTO=y | ||
| 545 | CONFIG_CRYPTO_SHA1_ARM_NEON=m | ||
| 546 | CONFIG_CRYPTO_SHA256_ARM=m | ||
| 547 | CONFIG_CRYPTO_SHA512_ARM=m | ||
| 548 | CONFIG_CRYPTO_AES_ARM=m | ||
| 549 | CONFIG_CRYPTO_AES_ARM_BS=m | ||
| 550 | CONFIG_CRYPTO_GHASH_ARM_CE=m | ||
| 551 | CONFIG_CRYPTO_CHACHA20_NEON=m | ||
| 552 | CONFIG_CRC_CCITT=y | 538 | CONFIG_CRC_CCITT=y |
| 553 | CONFIG_CRC_T10DIF=y | 539 | CONFIG_CRC_T10DIF=y |
| 554 | CONFIG_CRC_ITU_T=y | 540 | CONFIG_CRC_ITU_T=y |
| @@ -557,3 +543,10 @@ CONFIG_LIBCRC32C=y | |||
| 557 | CONFIG_FONTS=y | 543 | CONFIG_FONTS=y |
| 558 | CONFIG_FONT_8x8=y | 544 | CONFIG_FONT_8x8=y |
| 559 | CONFIG_FONT_8x16=y | 545 | CONFIG_FONT_8x16=y |
| 546 | CONFIG_PRINTK_TIME=y | ||
| 547 | CONFIG_DEBUG_INFO=y | ||
| 548 | CONFIG_DEBUG_INFO_SPLIT=y | ||
| 549 | CONFIG_DEBUG_INFO_DWARF4=y | ||
| 550 | CONFIG_MAGIC_SYSRQ=y | ||
| 551 | CONFIG_SCHEDSTATS=y | ||
| 552 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
diff --git a/arch/arm/configs/pxa_defconfig b/arch/arm/configs/pxa_defconfig index 6bb506edb1f5..d4654755b09c 100644 --- a/arch/arm/configs/pxa_defconfig +++ b/arch/arm/configs/pxa_defconfig | |||
| @@ -66,9 +66,6 @@ CONFIG_MACH_MIOA701=y | |||
| 66 | CONFIG_PXA_EZX=y | 66 | CONFIG_PXA_EZX=y |
| 67 | CONFIG_MACH_MP900C=y | 67 | CONFIG_MACH_MP900C=y |
| 68 | CONFIG_ARCH_PXA_PALM=y | 68 | CONFIG_ARCH_PXA_PALM=y |
| 69 | CONFIG_MACH_RAUMFELD_RC=y | ||
| 70 | CONFIG_MACH_RAUMFELD_CONNECTOR=y | ||
| 71 | CONFIG_MACH_RAUMFELD_SPEAKER=y | ||
| 72 | CONFIG_PXA_SHARPSL=y | 69 | CONFIG_PXA_SHARPSL=y |
| 73 | CONFIG_MACH_POODLE=y | 70 | CONFIG_MACH_POODLE=y |
| 74 | CONFIG_MACH_CORGI=y | 71 | CONFIG_MACH_CORGI=y |
| @@ -482,7 +479,6 @@ CONFIG_SND_PCM_OSS=m | |||
| 482 | CONFIG_SND_DYNAMIC_MINORS=y | 479 | CONFIG_SND_DYNAMIC_MINORS=y |
| 483 | CONFIG_SND_VERBOSE_PRINTK=y | 480 | CONFIG_SND_VERBOSE_PRINTK=y |
| 484 | CONFIG_SND_DEBUG=y | 481 | CONFIG_SND_DEBUG=y |
| 485 | CONFIG_SND_PXA2XX_AC97=m | ||
| 486 | CONFIG_SND_USB_AUDIO=m | 482 | CONFIG_SND_USB_AUDIO=m |
| 487 | CONFIG_SND_SOC=m | 483 | CONFIG_SND_SOC=m |
| 488 | CONFIG_SND_ATMEL_SOC=m | 484 | CONFIG_SND_ATMEL_SOC=m |
| @@ -498,7 +494,6 @@ CONFIG_SND_PXA2XX_SOC_E800=m | |||
| 498 | CONFIG_SND_PXA2XX_SOC_EM_X270=m | 494 | CONFIG_SND_PXA2XX_SOC_EM_X270=m |
| 499 | CONFIG_SND_PXA2XX_SOC_PALM27X=y | 495 | CONFIG_SND_PXA2XX_SOC_PALM27X=y |
| 500 | CONFIG_SND_SOC_ZYLONITE=m | 496 | CONFIG_SND_SOC_ZYLONITE=m |
| 501 | CONFIG_SND_SOC_RAUMFELD=m | ||
| 502 | CONFIG_SND_PXA2XX_SOC_HX4700=m | 497 | CONFIG_SND_PXA2XX_SOC_HX4700=m |
| 503 | CONFIG_SND_PXA2XX_SOC_MAGICIAN=m | 498 | CONFIG_SND_PXA2XX_SOC_MAGICIAN=m |
| 504 | CONFIG_SND_PXA2XX_SOC_MIOA701=m | 499 | CONFIG_SND_PXA2XX_SOC_MIOA701=m |
diff --git a/arch/arm/configs/raumfeld_defconfig b/arch/arm/configs/raumfeld_defconfig deleted file mode 100644 index 2dd56e9a484e..000000000000 --- a/arch/arm/configs/raumfeld_defconfig +++ /dev/null | |||
| @@ -1,197 +0,0 @@ | |||
| 1 | # CONFIG_LOCALVERSION_AUTO is not set | ||
| 2 | # CONFIG_SWAP is not set | ||
| 3 | CONFIG_MODULES=y | ||
| 4 | CONFIG_MODULE_UNLOAD=y | ||
| 5 | # CONFIG_LBDAF is not set | ||
| 6 | # CONFIG_BLK_DEV_BSG is not set | ||
| 7 | CONFIG_ARCH_PXA=y | ||
| 8 | CONFIG_MACH_RAUMFELD_RC=y | ||
| 9 | CONFIG_MACH_RAUMFELD_CONNECTOR=y | ||
| 10 | CONFIG_MACH_RAUMFELD_SPEAKER=y | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | CONFIG_AEABI=y | ||
| 13 | # CONFIG_OABI_COMPAT is not set | ||
| 14 | CONFIG_CMDLINE="console=ttyS0,115200 rw" | ||
| 15 | CONFIG_CPU_FREQ=y | ||
| 16 | CONFIG_CPU_IDLE=y | ||
| 17 | CONFIG_PM=y | ||
| 18 | CONFIG_APM_EMULATION=y | ||
| 19 | CONFIG_NET=y | ||
| 20 | CONFIG_PACKET=y | ||
| 21 | CONFIG_UNIX=y | ||
| 22 | CONFIG_INET=y | ||
| 23 | CONFIG_IP_MULTICAST=y | ||
| 24 | CONFIG_IP_PNP=y | ||
| 25 | CONFIG_SYN_COOKIES=y | ||
| 26 | CONFIG_IPV6=y | ||
| 27 | CONFIG_CFG80211=y | ||
| 28 | CONFIG_MAC80211=y | ||
| 29 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
| 30 | CONFIG_MTD=y | ||
| 31 | CONFIG_MTD_BLOCK=y | ||
| 32 | CONFIG_NFTL=y | ||
| 33 | CONFIG_NFTL_RW=y | ||
| 34 | CONFIG_MTD_BLOCK2MTD=y | ||
| 35 | CONFIG_MTD_NAND=y | ||
| 36 | CONFIG_MTD_NAND_MARVELL=y | ||
| 37 | CONFIG_MTD_UBI=y | ||
| 38 | CONFIG_BLK_DEV_LOOP=y | ||
| 39 | CONFIG_ISL29003=y | ||
| 40 | CONFIG_IIO=y | ||
| 41 | CONFIG_AD5446=y | ||
| 42 | CONFIG_SCSI=y | ||
| 43 | CONFIG_BLK_DEV_SD=y | ||
| 44 | CONFIG_CHR_DEV_SG=y | ||
| 45 | CONFIG_NETDEVICES=y | ||
| 46 | CONFIG_NET_ETHERNET=y | ||
| 47 | CONFIG_SMSC911X=y | ||
| 48 | CONFIG_LIBERTAS=y | ||
| 49 | CONFIG_LIBERTAS_SDIO=m | ||
| 50 | CONFIG_USB_USBNET=y | ||
| 51 | # CONFIG_USB_NET_AX8817X is not set | ||
| 52 | # CONFIG_USB_NET_NET1080 is not set | ||
| 53 | CONFIG_USB_NET_MCS7830=y | ||
| 54 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
| 55 | # CONFIG_USB_NET_ZAURUS is not set | ||
| 56 | CONFIG_INPUT_EVDEV=y | ||
| 57 | CONFIG_KEYBOARD_GPIO=y | ||
| 58 | # CONFIG_INPUT_MOUSE is not set | ||
| 59 | CONFIG_INPUT_TOUCHSCREEN=y | ||
| 60 | CONFIG_TOUCHSCREEN_EETI=m | ||
| 61 | CONFIG_INPUT_MISC=y | ||
| 62 | CONFIG_INPUT_GPIO_ROTARY_ENCODER=y | ||
| 63 | CONFIG_SERIAL_PXA=y | ||
| 64 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
| 65 | CONFIG_HW_RANDOM=y | ||
| 66 | CONFIG_I2C=y | ||
| 67 | CONFIG_I2C_CHARDEV=y | ||
| 68 | CONFIG_I2C_PXA=y | ||
| 69 | CONFIG_SPI=y | ||
| 70 | CONFIG_SPI_DEBUG=y | ||
| 71 | CONFIG_SPI_GPIO=y | ||
| 72 | CONFIG_SPI_SPIDEV=y | ||
| 73 | CONFIG_DEBUG_GPIO=y | ||
| 74 | CONFIG_W1_MASTER_GPIO=m | ||
| 75 | CONFIG_POWER_SUPPLY=y | ||
| 76 | CONFIG_PDA_POWER=y | ||
| 77 | CONFIG_BATTERY_DS2760=m | ||
| 78 | CONFIG_SENSORS_LIS3_SPI=y | ||
| 79 | CONFIG_REGULATOR=y | ||
| 80 | CONFIG_REGULATOR_DEBUG=y | ||
| 81 | CONFIG_REGULATOR_FIXED_VOLTAGE=y | ||
| 82 | CONFIG_REGULATOR_MAX8660=y | ||
| 83 | CONFIG_FB=y | ||
| 84 | CONFIG_FB_PXA=y | ||
| 85 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 86 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
| 87 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 88 | # CONFIG_BACKLIGHT_GENERIC is not set | ||
| 89 | CONFIG_BACKLIGHT_PWM=y | ||
| 90 | # CONFIG_VGA_CONSOLE is not set | ||
| 91 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 92 | CONFIG_LOGO=y | ||
| 93 | # CONFIG_LOGO_LINUX_MONO is not set | ||
| 94 | # CONFIG_LOGO_LINUX_VGA16 is not set | ||
| 95 | # CONFIG_LOGO_LINUX_CLUT224 is not set | ||
| 96 | CONFIG_SOUND=y | ||
| 97 | CONFIG_SND=y | ||
| 98 | # CONFIG_SND_DRIVERS is not set | ||
| 99 | # CONFIG_SND_USB is not set | ||
| 100 | CONFIG_SND_SOC=y | ||
| 101 | CONFIG_SND_PXA2XX_SOC=y | ||
| 102 | CONFIG_SND_SOC_RAUMFELD=y | ||
| 103 | CONFIG_HID_DRAGONRISE=y | ||
| 104 | CONFIG_HID_GYRATION=y | ||
| 105 | CONFIG_HID_TWINHAN=y | ||
| 106 | CONFIG_HID_NTRIG=y | ||
| 107 | CONFIG_HID_PANTHERLORD=y | ||
| 108 | CONFIG_HID_PETALYNX=y | ||
| 109 | CONFIG_HID_SAMSUNG=y | ||
| 110 | CONFIG_HID_SONY=y | ||
| 111 | CONFIG_HID_SUNPLUS=y | ||
| 112 | CONFIG_HID_GREENASIA=y | ||
| 113 | CONFIG_HID_SMARTJOYPLUS=y | ||
| 114 | CONFIG_HID_TOPSEED=y | ||
| 115 | CONFIG_HID_THRUSTMASTER=y | ||
| 116 | CONFIG_HID_ZEROPLUS=y | ||
| 117 | CONFIG_USB=y | ||
| 118 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | ||
| 119 | CONFIG_USB_MON=y | ||
| 120 | CONFIG_USB_OHCI_HCD=y | ||
| 121 | CONFIG_USB_STORAGE=y | ||
| 122 | CONFIG_USB_STORAGE_FREECOM=y | ||
| 123 | CONFIG_USB_STORAGE_ISD200=y | ||
| 124 | CONFIG_USB_STORAGE_USBAT=y | ||
| 125 | CONFIG_USB_STORAGE_SDDR09=y | ||
| 126 | CONFIG_USB_STORAGE_SDDR55=y | ||
| 127 | CONFIG_MMC=y | ||
| 128 | CONFIG_MMC_PXA=m | ||
| 129 | CONFIG_NEW_LEDS=y | ||
| 130 | CONFIG_LEDS_CLASS=y | ||
| 131 | CONFIG_LEDS_GPIO=y | ||
| 132 | CONFIG_LEDS_LT3593=y | ||
| 133 | CONFIG_LEDS_TRIGGERS=y | ||
| 134 | CONFIG_LEDS_TRIGGER_BACKLIGHT=y | ||
| 135 | CONFIG_RTC_CLASS=y | ||
| 136 | CONFIG_RTC_DRV_PXA=y | ||
| 137 | CONFIG_DMADEVICES=y | ||
| 138 | CONFIG_UIO=y | ||
| 139 | CONFIG_EXT2_FS=y | ||
| 140 | CONFIG_EXT2_FS_XIP=y | ||
| 141 | CONFIG_EXT3_FS=y | ||
| 142 | CONFIG_FSCACHE=y | ||
| 143 | CONFIG_FSCACHE_STATS=y | ||
| 144 | CONFIG_CACHEFILES=y | ||
| 145 | CONFIG_MSDOS_FS=y | ||
| 146 | CONFIG_VFAT_FS=y | ||
| 147 | CONFIG_TMPFS=y | ||
| 148 | CONFIG_UBIFS_FS=y | ||
| 149 | CONFIG_NFS_FS=y | ||
| 150 | CONFIG_NFS_V3=y | ||
| 151 | CONFIG_ROOT_NFS=y | ||
| 152 | CONFIG_NFS_FSCACHE=y | ||
| 153 | CONFIG_NLS_CODEPAGE_437=y | ||
| 154 | CONFIG_NLS_CODEPAGE_737=y | ||
| 155 | CONFIG_NLS_CODEPAGE_775=y | ||
| 156 | CONFIG_NLS_CODEPAGE_850=y | ||
| 157 | CONFIG_NLS_CODEPAGE_852=y | ||
| 158 | CONFIG_NLS_CODEPAGE_855=y | ||
| 159 | CONFIG_NLS_CODEPAGE_857=y | ||
| 160 | CONFIG_NLS_CODEPAGE_860=y | ||
| 161 | CONFIG_NLS_CODEPAGE_861=y | ||
| 162 | CONFIG_NLS_CODEPAGE_862=y | ||
| 163 | CONFIG_NLS_CODEPAGE_863=y | ||
| 164 | CONFIG_NLS_CODEPAGE_864=y | ||
| 165 | CONFIG_NLS_CODEPAGE_865=y | ||
| 166 | CONFIG_NLS_CODEPAGE_866=y | ||
| 167 | CONFIG_NLS_CODEPAGE_869=y | ||
| 168 | CONFIG_NLS_CODEPAGE_936=y | ||
| 169 | CONFIG_NLS_CODEPAGE_950=y | ||
| 170 | CONFIG_NLS_CODEPAGE_932=y | ||
| 171 | CONFIG_NLS_CODEPAGE_949=y | ||
| 172 | CONFIG_NLS_CODEPAGE_874=y | ||
| 173 | CONFIG_NLS_ISO8859_8=y | ||
| 174 | CONFIG_NLS_CODEPAGE_1250=y | ||
| 175 | CONFIG_NLS_CODEPAGE_1251=y | ||
| 176 | CONFIG_NLS_ASCII=y | ||
| 177 | CONFIG_NLS_ISO8859_1=y | ||
| 178 | CONFIG_NLS_ISO8859_2=y | ||
| 179 | CONFIG_NLS_ISO8859_3=y | ||
| 180 | CONFIG_NLS_ISO8859_4=y | ||
| 181 | CONFIG_NLS_ISO8859_5=y | ||
| 182 | CONFIG_NLS_ISO8859_6=y | ||
| 183 | CONFIG_NLS_ISO8859_7=y | ||
| 184 | CONFIG_NLS_ISO8859_9=y | ||
| 185 | CONFIG_NLS_ISO8859_13=y | ||
| 186 | CONFIG_NLS_ISO8859_14=y | ||
| 187 | CONFIG_NLS_ISO8859_15=y | ||
| 188 | CONFIG_NLS_KOI8_R=y | ||
| 189 | CONFIG_NLS_KOI8_U=y | ||
| 190 | CONFIG_NLS_UTF8=y | ||
| 191 | CONFIG_PRINTK_TIME=y | ||
| 192 | CONFIG_DEBUG_KERNEL=y | ||
| 193 | CONFIG_DEBUG_INFO=y | ||
| 194 | CONFIG_DEBUG_USER=y | ||
| 195 | CONFIG_DEBUG_LL=y | ||
| 196 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
| 197 | # CONFIG_CRYPTO_HW is not set | ||
diff --git a/arch/arm/configs/s5pv210_defconfig b/arch/arm/configs/s5pv210_defconfig index a077597369f1..fd4f28aabda6 100644 --- a/arch/arm/configs/s5pv210_defconfig +++ b/arch/arm/configs/s5pv210_defconfig | |||
| @@ -1,24 +1,30 @@ | |||
| 1 | CONFIG_SYSVIPC=y | 1 | CONFIG_SYSVIPC=y |
| 2 | CONFIG_NO_HZ=y | 2 | CONFIG_NO_HZ=y |
| 3 | CONFIG_HIGH_RES_TIMERS=y | 3 | CONFIG_HIGH_RES_TIMERS=y |
| 4 | CONFIG_PREEMPT=y | ||
| 4 | CONFIG_CGROUPS=y | 5 | CONFIG_CGROUPS=y |
| 5 | CONFIG_SYSFS_DEPRECATED=y | 6 | CONFIG_SYSFS_DEPRECATED=y |
| 6 | CONFIG_SYSFS_DEPRECATED_V2=y | 7 | CONFIG_SYSFS_DEPRECATED_V2=y |
| 7 | CONFIG_BLK_DEV_INITRD=y | 8 | CONFIG_BLK_DEV_INITRD=y |
| 8 | CONFIG_KALLSYMS_ALL=y | 9 | CONFIG_KALLSYMS_ALL=y |
| 9 | CONFIG_MODULES=y | ||
| 10 | CONFIG_MODULE_UNLOAD=y | ||
| 11 | # CONFIG_BLK_DEV_BSG is not set | ||
| 12 | CONFIG_PARTITION_ADVANCED=y | ||
| 13 | CONFIG_BSD_DISKLABEL=y | ||
| 14 | CONFIG_SOLARIS_X86_PARTITION=y | ||
| 15 | CONFIG_ARCH_S5PV210=y | 10 | CONFIG_ARCH_S5PV210=y |
| 16 | CONFIG_VMSPLIT_2G=y | 11 | CONFIG_VMSPLIT_2G=y |
| 17 | CONFIG_PREEMPT=y | ||
| 18 | CONFIG_ARM_APPENDED_DTB=y | 12 | CONFIG_ARM_APPENDED_DTB=y |
| 19 | CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc" | 13 | CONFIG_CMDLINE="root=/dev/ram0 rw ramdisk=8192 initrd=0x20800000,8M console=ttySAC1,115200 init=/linuxrc" |
| 14 | CONFIG_CPU_FREQ=y | ||
| 15 | CONFIG_CPU_FREQ_STAT=y | ||
| 16 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | ||
| 17 | CONFIG_CPU_FREQ_GOV_POWERSAVE=m | ||
| 18 | CONFIG_CPU_FREQ_GOV_USERSPACE=m | ||
| 19 | CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m | ||
| 20 | CONFIG_VFP=y | 20 | CONFIG_VFP=y |
| 21 | CONFIG_NEON=y | 21 | CONFIG_NEON=y |
| 22 | CONFIG_MODULES=y | ||
| 23 | CONFIG_MODULE_UNLOAD=y | ||
| 24 | # CONFIG_BLK_DEV_BSG is not set | ||
| 25 | CONFIG_PARTITION_ADVANCED=y | ||
| 26 | CONFIG_BSD_DISKLABEL=y | ||
| 27 | CONFIG_SOLARIS_X86_PARTITION=y | ||
| 22 | CONFIG_NET=y | 28 | CONFIG_NET=y |
| 23 | CONFIG_PACKET=y | 29 | CONFIG_PACKET=y |
| 24 | CONFIG_UNIX=y | 30 | CONFIG_UNIX=y |
| @@ -27,6 +33,11 @@ CONFIG_IP_PNP=y | |||
| 27 | CONFIG_IP_PNP_DHCP=y | 33 | CONFIG_IP_PNP_DHCP=y |
| 28 | CONFIG_IP_PNP_BOOTP=y | 34 | CONFIG_IP_PNP_BOOTP=y |
| 29 | CONFIG_IP_PNP_RARP=y | 35 | CONFIG_IP_PNP_RARP=y |
| 36 | CONFIG_BT=m | ||
| 37 | CONFIG_BT_RFCOMM=y | ||
| 38 | CONFIG_BT_BNEP=y | ||
| 39 | CONFIG_BT_HCIUART=m | ||
| 40 | CONFIG_BT_HCIUART_BCM=y | ||
| 30 | CONFIG_CFG80211=m | 41 | CONFIG_CFG80211=m |
| 31 | CONFIG_MAC80211=m | 42 | CONFIG_MAC80211=m |
| 32 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 43 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| @@ -44,21 +55,35 @@ CONFIG_INPUT_EVDEV=y | |||
| 44 | CONFIG_KEYBOARD_GPIO=y | 55 | CONFIG_KEYBOARD_GPIO=y |
| 45 | # CONFIG_INPUT_MOUSE is not set | 56 | # CONFIG_INPUT_MOUSE is not set |
| 46 | CONFIG_INPUT_TOUCHSCREEN=y | 57 | CONFIG_INPUT_TOUCHSCREEN=y |
| 58 | CONFIG_TOUCHSCREEN_ATMEL_MXT=m | ||
| 59 | CONFIG_INPUT_MISC=y | ||
| 60 | CONFIG_INPUT_PWM_VIBRA=m | ||
| 47 | CONFIG_SERIAL_8250=y | 61 | CONFIG_SERIAL_8250=y |
| 48 | CONFIG_SERIAL_SAMSUNG=y | 62 | CONFIG_SERIAL_SAMSUNG=y |
| 49 | CONFIG_SERIAL_SAMSUNG_CONSOLE=y | 63 | CONFIG_SERIAL_SAMSUNG_CONSOLE=y |
| 64 | CONFIG_SERIAL_DEV_BUS=y | ||
| 50 | CONFIG_HW_RANDOM=y | 65 | CONFIG_HW_RANDOM=y |
| 51 | CONFIG_I2C_GPIO=y | 66 | CONFIG_I2C_GPIO=y |
| 67 | CONFIG_I2C_S3C2410=y | ||
| 68 | CONFIG_POWER_RESET=y | ||
| 69 | CONFIG_POWER_RESET_SYSCON_POWEROFF=y | ||
| 52 | CONFIG_POWER_SUPPLY=y | 70 | CONFIG_POWER_SUPPLY=y |
| 53 | CONFIG_BATTERY_MAX17040=y | 71 | CONFIG_BATTERY_MAX17040=y |
| 54 | # CONFIG_HWMON is not set | 72 | # CONFIG_HWMON is not set |
| 55 | CONFIG_MFD_MAX8998=y | 73 | CONFIG_MFD_MAX8998=y |
| 56 | CONFIG_REGULATOR=y | 74 | CONFIG_REGULATOR=y |
| 75 | CONFIG_REGULATOR_FIXED_VOLTAGE=y | ||
| 57 | CONFIG_REGULATOR_MAX8998=y | 76 | CONFIG_REGULATOR_MAX8998=y |
| 77 | CONFIG_MEDIA_SUPPORT=m | ||
| 78 | CONFIG_MEDIA_CAMERA_SUPPORT=y | ||
| 79 | CONFIG_V4L_MEM2MEM_DRIVERS=y | ||
| 80 | CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m | ||
| 81 | CONFIG_VIDEO_SAMSUNG_S5P_MFC=m | ||
| 58 | CONFIG_DRM=y | 82 | CONFIG_DRM=y |
| 59 | CONFIG_DRM_EXYNOS=y | 83 | CONFIG_DRM_EXYNOS=y |
| 60 | CONFIG_DRM_EXYNOS_FIMD=y | 84 | CONFIG_DRM_EXYNOS_FIMD=y |
| 61 | CONFIG_DRM_EXYNOS_DPI=y | 85 | CONFIG_DRM_EXYNOS_DPI=y |
| 86 | CONFIG_DRM_EXYNOS_ROTATOR=y | ||
| 62 | CONFIG_USB=y | 87 | CONFIG_USB=y |
| 63 | CONFIG_USB_OTG=y | 88 | CONFIG_USB_OTG=y |
| 64 | CONFIG_USB_EHCI_HCD=y | 89 | CONFIG_USB_EHCI_HCD=y |
| @@ -72,6 +97,9 @@ CONFIG_MMC_SDHCI_S3C=y | |||
| 72 | CONFIG_MMC_SDHCI_S3C_DMA=y | 97 | CONFIG_MMC_SDHCI_S3C_DMA=y |
| 73 | CONFIG_RTC_CLASS=y | 98 | CONFIG_RTC_CLASS=y |
| 74 | CONFIG_RTC_DRV_MAX8998=m | 99 | CONFIG_RTC_DRV_MAX8998=m |
| 100 | CONFIG_DMADEVICES=y | ||
| 101 | CONFIG_PWM=y | ||
| 102 | CONFIG_PWM_SAMSUNG=y | ||
| 75 | CONFIG_PHY_SAMSUNG_USB2=m | 103 | CONFIG_PHY_SAMSUNG_USB2=m |
| 76 | CONFIG_PHY_S5PV210_USB2=y | 104 | CONFIG_PHY_S5PV210_USB2=y |
| 77 | CONFIG_EXT2_FS=y | 105 | CONFIG_EXT2_FS=y |
| @@ -87,6 +115,7 @@ CONFIG_NLS_CODEPAGE_437=y | |||
| 87 | CONFIG_NLS_ASCII=y | 115 | CONFIG_NLS_ASCII=y |
| 88 | CONFIG_NLS_ISO8859_1=y | 116 | CONFIG_NLS_ISO8859_1=y |
| 89 | CONFIG_NLS_UTF8=y | 117 | CONFIG_NLS_UTF8=y |
| 118 | CONFIG_CRC_CCITT=y | ||
| 90 | CONFIG_DEBUG_INFO=y | 119 | CONFIG_DEBUG_INFO=y |
| 91 | CONFIG_MAGIC_SYSRQ=y | 120 | CONFIG_MAGIC_SYSRQ=y |
| 92 | CONFIG_DEBUG_KERNEL=y | 121 | CONFIG_DEBUG_KERNEL=y |
| @@ -96,7 +125,3 @@ CONFIG_DEBUG_SPINLOCK=y | |||
| 96 | CONFIG_DEBUG_MUTEXES=y | 125 | CONFIG_DEBUG_MUTEXES=y |
| 97 | CONFIG_DEBUG_ATOMIC_SLEEP=y | 126 | CONFIG_DEBUG_ATOMIC_SLEEP=y |
| 98 | CONFIG_DEBUG_USER=y | 127 | CONFIG_DEBUG_USER=y |
| 99 | CONFIG_DEBUG_LL=y | ||
| 100 | CONFIG_DEBUG_S3C_UART1=y | ||
| 101 | CONFIG_EARLY_PRINTK=y | ||
| 102 | CONFIG_CRC_CCITT=y | ||
diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig index 9e5a5ade6cab..9b0efac101ab 100644 --- a/arch/arm/configs/shmobile_defconfig +++ b/arch/arm/configs/shmobile_defconfig | |||
| @@ -8,29 +8,8 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y | |||
| 8 | CONFIG_PERF_EVENTS=y | 8 | CONFIG_PERF_EVENTS=y |
| 9 | CONFIG_SLAB=y | 9 | CONFIG_SLAB=y |
| 10 | CONFIG_ARCH_RENESAS=y | 10 | CONFIG_ARCH_RENESAS=y |
| 11 | CONFIG_ARCH_EMEV2=y | ||
| 12 | CONFIG_ARCH_R7S72100=y | ||
| 13 | CONFIG_ARCH_R8A73A4=y | ||
| 14 | CONFIG_ARCH_R8A7740=y | ||
| 15 | CONFIG_ARCH_R8A7743=y | ||
| 16 | CONFIG_ARCH_R8A7744=y | ||
| 17 | CONFIG_ARCH_R8A7745=y | ||
| 18 | CONFIG_ARCH_R8A77470=y | ||
| 19 | CONFIG_ARCH_R8A7778=y | ||
| 20 | CONFIG_ARCH_R8A7779=y | ||
| 21 | CONFIG_ARCH_R8A7790=y | ||
| 22 | CONFIG_ARCH_R8A7791=y | ||
| 23 | CONFIG_ARCH_R8A7792=y | ||
| 24 | CONFIG_ARCH_R8A7793=y | ||
| 25 | CONFIG_ARCH_R8A7794=y | ||
| 26 | CONFIG_ARCH_R9A06G032=y | ||
| 27 | CONFIG_ARCH_SH73A0=y | ||
| 28 | CONFIG_PL310_ERRATA_588369=y | 11 | CONFIG_PL310_ERRATA_588369=y |
| 29 | CONFIG_ARM_ERRATA_754322=y | 12 | CONFIG_ARM_ERRATA_754322=y |
| 30 | CONFIG_PCI=y | ||
| 31 | CONFIG_PCI_MSI=y | ||
| 32 | CONFIG_PCI_RCAR_GEN2=y | ||
| 33 | CONFIG_PCIE_RCAR=y | ||
| 34 | CONFIG_SMP=y | 13 | CONFIG_SMP=y |
| 35 | CONFIG_SCHED_MC=y | 14 | CONFIG_SCHED_MC=y |
| 36 | CONFIG_NR_CPUS=8 | 15 | CONFIG_NR_CPUS=8 |
| @@ -58,6 +37,10 @@ CONFIG_IP_PNP=y | |||
| 58 | CONFIG_IP_PNP_DHCP=y | 37 | CONFIG_IP_PNP_DHCP=y |
| 59 | CONFIG_CAN=y | 38 | CONFIG_CAN=y |
| 60 | CONFIG_CAN_RCAR=y | 39 | CONFIG_CAN_RCAR=y |
| 40 | CONFIG_PCI=y | ||
| 41 | CONFIG_PCI_MSI=y | ||
| 42 | CONFIG_PCI_RCAR_GEN2=y | ||
| 43 | CONFIG_PCIE_RCAR=y | ||
| 61 | CONFIG_DEVTMPFS=y | 44 | CONFIG_DEVTMPFS=y |
| 62 | CONFIG_DEVTMPFS_MOUNT=y | 45 | CONFIG_DEVTMPFS_MOUNT=y |
| 63 | CONFIG_DMA_CMA=y | 46 | CONFIG_DMA_CMA=y |
| @@ -91,7 +74,6 @@ CONFIG_SERIAL_8250_DW=y | |||
| 91 | CONFIG_SERIAL_8250_EM=y | 74 | CONFIG_SERIAL_8250_EM=y |
| 92 | CONFIG_SERIAL_SH_SCI=y | 75 | CONFIG_SERIAL_SH_SCI=y |
| 93 | CONFIG_I2C_CHARDEV=y | 76 | CONFIG_I2C_CHARDEV=y |
| 94 | CONFIG_I2C_MUX=y | ||
| 95 | CONFIG_I2C_DEMUX_PINCTRL=y | 77 | CONFIG_I2C_DEMUX_PINCTRL=y |
| 96 | CONFIG_I2C_EMEV2=y | 78 | CONFIG_I2C_EMEV2=y |
| 97 | CONFIG_I2C_GPIO=y | 79 | CONFIG_I2C_GPIO=y |
| @@ -104,6 +86,7 @@ CONFIG_SPI_RSPI=y | |||
| 104 | CONFIG_SPI_SH_MSIOF=y | 86 | CONFIG_SPI_SH_MSIOF=y |
| 105 | CONFIG_SPI_SH_HSPI=y | 87 | CONFIG_SPI_SH_HSPI=y |
| 106 | CONFIG_PINCTRL_RZA1=y | 88 | CONFIG_PINCTRL_RZA1=y |
| 89 | CONFIG_PINCTRL_RZA2=y | ||
| 107 | CONFIG_GPIO_EM=y | 90 | CONFIG_GPIO_EM=y |
| 108 | CONFIG_GPIO_RCAR=y | 91 | CONFIG_GPIO_RCAR=y |
| 109 | CONFIG_GPIO_PCF857X=y | 92 | CONFIG_GPIO_PCF857X=y |
| @@ -177,17 +160,35 @@ CONFIG_LEDS_CLASS=y | |||
| 177 | CONFIG_LEDS_GPIO=y | 160 | CONFIG_LEDS_GPIO=y |
| 178 | CONFIG_RTC_CLASS=y | 161 | CONFIG_RTC_CLASS=y |
| 179 | CONFIG_RTC_DRV_RS5C372=y | 162 | CONFIG_RTC_DRV_RS5C372=y |
| 163 | CONFIG_RTC_DRV_PCF85363=y | ||
| 180 | CONFIG_RTC_DRV_BQ32K=y | 164 | CONFIG_RTC_DRV_BQ32K=y |
| 181 | CONFIG_RTC_DRV_S35390A=y | 165 | CONFIG_RTC_DRV_S35390A=y |
| 182 | CONFIG_RTC_DRV_RX8581=y | 166 | CONFIG_RTC_DRV_RX8581=y |
| 183 | CONFIG_RTC_DRV_DA9063=y | 167 | CONFIG_RTC_DRV_DA9063=y |
| 184 | CONFIG_DMADEVICES=y | 168 | CONFIG_DMADEVICES=y |
| 185 | CONFIG_SH_DMAE=y | ||
| 186 | CONFIG_RCAR_DMAC=y | 169 | CONFIG_RCAR_DMAC=y |
| 187 | CONFIG_RENESAS_USB_DMAC=y | 170 | CONFIG_RENESAS_USB_DMAC=y |
| 188 | CONFIG_STAGING=y | 171 | CONFIG_STAGING=y |
| 189 | CONFIG_STAGING_BOARD=y | 172 | CONFIG_STAGING_BOARD=y |
| 190 | # CONFIG_IOMMU_SUPPORT is not set | 173 | # CONFIG_IOMMU_SUPPORT is not set |
| 174 | CONFIG_ARCH_EMEV2=y | ||
| 175 | CONFIG_ARCH_R7S72100=y | ||
| 176 | CONFIG_ARCH_R7S9210=y | ||
| 177 | CONFIG_ARCH_R8A73A4=y | ||
| 178 | CONFIG_ARCH_R8A7740=y | ||
| 179 | CONFIG_ARCH_R8A7743=y | ||
| 180 | CONFIG_ARCH_R8A7744=y | ||
| 181 | CONFIG_ARCH_R8A7745=y | ||
| 182 | CONFIG_ARCH_R8A77470=y | ||
| 183 | CONFIG_ARCH_R8A7778=y | ||
| 184 | CONFIG_ARCH_R8A7779=y | ||
| 185 | CONFIG_ARCH_R8A7790=y | ||
| 186 | CONFIG_ARCH_R8A7791=y | ||
| 187 | CONFIG_ARCH_R8A7792=y | ||
| 188 | CONFIG_ARCH_R8A7793=y | ||
| 189 | CONFIG_ARCH_R8A7794=y | ||
| 190 | CONFIG_ARCH_R9A06G032=y | ||
| 191 | CONFIG_ARCH_SH73A0=y | ||
| 191 | CONFIG_IIO=y | 192 | CONFIG_IIO=y |
| 192 | CONFIG_AK8975=y | 193 | CONFIG_AK8975=y |
| 193 | CONFIG_PWM=y | 194 | CONFIG_PWM=y |
| @@ -211,4 +212,3 @@ CONFIG_NLS_ISO8859_1=y | |||
| 211 | CONFIG_PRINTK_TIME=y | 212 | CONFIG_PRINTK_TIME=y |
| 212 | # CONFIG_ENABLE_MUST_CHECK is not set | 213 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 213 | CONFIG_DEBUG_KERNEL=y | 214 | CONFIG_DEBUG_KERNEL=y |
| 214 | # CONFIG_ARM_UNWIND is not set | ||
diff --git a/arch/arm/configs/socfpga_defconfig b/arch/arm/configs/socfpga_defconfig index 371fca4e1ab7..08d1b3e11d68 100644 --- a/arch/arm/configs/socfpga_defconfig +++ b/arch/arm/configs/socfpga_defconfig | |||
| @@ -9,27 +9,20 @@ CONFIG_NAMESPACES=y | |||
| 9 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
| 10 | CONFIG_EMBEDDED=y | 10 | CONFIG_EMBEDDED=y |
| 11 | CONFIG_PROFILING=y | 11 | CONFIG_PROFILING=y |
| 12 | CONFIG_OPROFILE=y | ||
| 13 | CONFIG_MODULES=y | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | # CONFIG_LBDAF is not set | ||
| 16 | # CONFIG_BLK_DEV_BSG is not set | ||
| 17 | # CONFIG_IOSCHED_DEADLINE is not set | ||
| 18 | # CONFIG_IOSCHED_CFQ is not set | ||
| 19 | CONFIG_ARCH_SOCFPGA=y | 12 | CONFIG_ARCH_SOCFPGA=y |
| 20 | CONFIG_ARM_THUMBEE=y | 13 | CONFIG_ARM_THUMBEE=y |
| 21 | CONFIG_PCI=y | ||
| 22 | CONFIG_PCI_MSI=y | ||
| 23 | CONFIG_PCIE_ALTERA=y | ||
| 24 | CONFIG_PCIE_ALTERA_MSI=y | ||
| 25 | CONFIG_SMP=y | 14 | CONFIG_SMP=y |
| 26 | CONFIG_NR_CPUS=2 | 15 | CONFIG_NR_CPUS=2 |
| 27 | CONFIG_AEABI=y | ||
| 28 | CONFIG_HIGHMEM=y | 16 | CONFIG_HIGHMEM=y |
| 29 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 17 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 30 | CONFIG_ZBOOT_ROM_BSS=0x0 | 18 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 31 | CONFIG_VFP=y | 19 | CONFIG_VFP=y |
| 32 | CONFIG_NEON=y | 20 | CONFIG_NEON=y |
| 21 | CONFIG_OPROFILE=y | ||
| 22 | CONFIG_MODULES=y | ||
| 23 | CONFIG_MODULE_UNLOAD=y | ||
| 24 | # CONFIG_LBDAF is not set | ||
| 25 | # CONFIG_BLK_DEV_BSG is not set | ||
| 33 | CONFIG_NET=y | 26 | CONFIG_NET=y |
| 34 | CONFIG_PACKET=y | 27 | CONFIG_PACKET=y |
| 35 | CONFIG_UNIX=y | 28 | CONFIG_UNIX=y |
| @@ -48,6 +41,10 @@ CONFIG_CAN=y | |||
| 48 | CONFIG_CAN_C_CAN=y | 41 | CONFIG_CAN_C_CAN=y |
| 49 | CONFIG_CAN_C_CAN_PLATFORM=y | 42 | CONFIG_CAN_C_CAN_PLATFORM=y |
| 50 | CONFIG_CAN_DEBUG_DEVICES=y | 43 | CONFIG_CAN_DEBUG_DEVICES=y |
| 44 | CONFIG_PCI=y | ||
| 45 | CONFIG_PCI_MSI=y | ||
| 46 | CONFIG_PCIE_ALTERA=y | ||
| 47 | CONFIG_PCIE_ALTERA_MSI=y | ||
| 51 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 48 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
| 52 | CONFIG_DEVTMPFS=y | 49 | CONFIG_DEVTMPFS=y |
| 53 | CONFIG_DEVTMPFS_MOUNT=y | 50 | CONFIG_DEVTMPFS_MOUNT=y |
| @@ -60,7 +57,7 @@ CONFIG_MTD_SPI_NOR=y | |||
| 60 | # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set | 57 | # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set |
| 61 | CONFIG_SPI_CADENCE_QUADSPI=y | 58 | CONFIG_SPI_CADENCE_QUADSPI=y |
| 62 | CONFIG_OF_OVERLAY=y | 59 | CONFIG_OF_OVERLAY=y |
| 63 | CONFIG_OF_CONFIGFS=y | 60 | CONFIG_BLK_DEV_LOOP=y |
| 64 | CONFIG_BLK_DEV_RAM=y | 61 | CONFIG_BLK_DEV_RAM=y |
| 65 | CONFIG_BLK_DEV_RAM_COUNT=2 | 62 | CONFIG_BLK_DEV_RAM_COUNT=2 |
| 66 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 63 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
| @@ -131,12 +128,12 @@ CONFIG_DMADEVICES=y | |||
| 131 | CONFIG_PL330_DMA=y | 128 | CONFIG_PL330_DMA=y |
| 132 | CONFIG_DMATEST=m | 129 | CONFIG_DMATEST=m |
| 133 | CONFIG_FPGA=y | 130 | CONFIG_FPGA=y |
| 134 | CONFIG_FPGA_REGION=y | ||
| 135 | CONFIG_FPGA_MGR_SOCFPGA=y | 131 | CONFIG_FPGA_MGR_SOCFPGA=y |
| 136 | CONFIG_FPGA_MGR_SOCFPGA_A10=y | 132 | CONFIG_FPGA_MGR_SOCFPGA_A10=y |
| 137 | CONFIG_FPGA_BRIDGE=y | 133 | CONFIG_FPGA_BRIDGE=y |
| 138 | CONFIG_SOCFPGA_FPGA_BRIDGE=y | 134 | CONFIG_SOCFPGA_FPGA_BRIDGE=y |
| 139 | CONFIG_ALTERA_FREEZE_BRIDGE=y | 135 | CONFIG_ALTERA_FREEZE_BRIDGE=y |
| 136 | CONFIG_FPGA_REGION=y | ||
| 140 | CONFIG_EXT2_FS=y | 137 | CONFIG_EXT2_FS=y |
| 141 | CONFIG_EXT2_FS_XATTR=y | 138 | CONFIG_EXT2_FS_XATTR=y |
| 142 | CONFIG_EXT2_FS_POSIX_ACL=y | 139 | CONFIG_EXT2_FS_POSIX_ACL=y |
diff --git a/arch/arm/configs/spear3xx_defconfig b/arch/arm/configs/spear3xx_defconfig index 2c5e8df33191..f1b52fb3461b 100644 --- a/arch/arm/configs/spear3xx_defconfig +++ b/arch/arm/configs/spear3xx_defconfig | |||
| @@ -52,8 +52,10 @@ CONFIG_GPIO_PL061=y | |||
| 52 | # CONFIG_HWMON is not set | 52 | # CONFIG_HWMON is not set |
| 53 | CONFIG_WATCHDOG=y | 53 | CONFIG_WATCHDOG=y |
| 54 | CONFIG_ARM_SP805_WATCHDOG=y | 54 | CONFIG_ARM_SP805_WATCHDOG=y |
| 55 | CONFIG_FB=y | 55 | CONFIG_DRM=y |
| 56 | CONFIG_FB_ARMCLCD=y | 56 | CONFIG_DRM_PL111=y |
| 57 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 58 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 57 | CONFIG_USB=y | 59 | CONFIG_USB=y |
| 58 | CONFIG_USB_EHCI_HCD=y | 60 | CONFIG_USB_EHCI_HCD=y |
| 59 | CONFIG_USB_OHCI_HCD=y | 61 | CONFIG_USB_OHCI_HCD=y |
diff --git a/arch/arm/configs/stm32_defconfig b/arch/arm/configs/stm32_defconfig index ba805b757a8d..0258ba891376 100644 --- a/arch/arm/configs/stm32_defconfig +++ b/arch/arm/configs/stm32_defconfig | |||
| @@ -80,7 +80,6 @@ CONFIG_EXT3_FS=y | |||
| 80 | CONFIG_NLS=y | 80 | CONFIG_NLS=y |
| 81 | CONFIG_PRINTK_TIME=y | 81 | CONFIG_PRINTK_TIME=y |
| 82 | CONFIG_DEBUG_INFO=y | 82 | CONFIG_DEBUG_INFO=y |
| 83 | # CONFIG_ENABLE_WARN_DEPRECATED is not set | ||
| 84 | # CONFIG_ENABLE_MUST_CHECK is not set | 83 | # CONFIG_ENABLE_MUST_CHECK is not set |
| 85 | CONFIG_MAGIC_SYSRQ=y | 84 | CONFIG_MAGIC_SYSRQ=y |
| 86 | # CONFIG_SCHED_DEBUG is not set | 85 | # CONFIG_SCHED_DEBUG is not set |
diff --git a/arch/arm/crypto/aes-ce-core.S b/arch/arm/crypto/aes-ce-core.S index ba8e6a32fdc9..bc53bcaa772e 100644 --- a/arch/arm/crypto/aes-ce-core.S +++ b/arch/arm/crypto/aes-ce-core.S | |||
| @@ -317,25 +317,27 @@ ENTRY(ce_aes_ctr_encrypt) | |||
| 317 | .Lctrloop: | 317 | .Lctrloop: |
| 318 | vmov q0, q6 | 318 | vmov q0, q6 |
| 319 | bl aes_encrypt | 319 | bl aes_encrypt |
| 320 | subs r4, r4, #1 | ||
| 321 | bmi .Lctrtailblock @ blocks < 0 means tail block | ||
| 322 | vld1.8 {q3}, [r1]! | ||
| 323 | veor q3, q0, q3 | ||
| 324 | vst1.8 {q3}, [r0]! | ||
| 325 | 320 | ||
| 326 | adds r6, r6, #1 @ increment BE ctr | 321 | adds r6, r6, #1 @ increment BE ctr |
| 327 | rev ip, r6 | 322 | rev ip, r6 |
| 328 | vmov s27, ip | 323 | vmov s27, ip |
| 329 | bcs .Lctrcarry | 324 | bcs .Lctrcarry |
| 330 | teq r4, #0 | 325 | |
| 326 | .Lctrcarrydone: | ||
| 327 | subs r4, r4, #1 | ||
| 328 | bmi .Lctrtailblock @ blocks < 0 means tail block | ||
| 329 | vld1.8 {q3}, [r1]! | ||
| 330 | veor q3, q0, q3 | ||
| 331 | vst1.8 {q3}, [r0]! | ||
| 331 | bne .Lctrloop | 332 | bne .Lctrloop |
| 333 | |||
| 332 | .Lctrout: | 334 | .Lctrout: |
| 333 | vst1.8 {q6}, [r5] | 335 | vst1.8 {q6}, [r5] @ return next CTR value |
| 334 | pop {r4-r6, pc} | 336 | pop {r4-r6, pc} |
| 335 | 337 | ||
| 336 | .Lctrtailblock: | 338 | .Lctrtailblock: |
| 337 | vst1.8 {q0}, [r0, :64] @ return just the key stream | 339 | vst1.8 {q0}, [r0, :64] @ return the key stream |
| 338 | pop {r4-r6, pc} | 340 | b .Lctrout |
| 339 | 341 | ||
| 340 | .Lctrcarry: | 342 | .Lctrcarry: |
| 341 | .irp sreg, s26, s25, s24 | 343 | .irp sreg, s26, s25, s24 |
| @@ -344,11 +346,9 @@ ENTRY(ce_aes_ctr_encrypt) | |||
| 344 | adds ip, ip, #1 | 346 | adds ip, ip, #1 |
| 345 | rev ip, ip | 347 | rev ip, ip |
| 346 | vmov \sreg, ip | 348 | vmov \sreg, ip |
| 347 | bcc 0f | 349 | bcc .Lctrcarrydone |
| 348 | .endr | 350 | .endr |
| 349 | 0: teq r4, #0 | 351 | b .Lctrcarrydone |
| 350 | beq .Lctrout | ||
| 351 | b .Lctrloop | ||
| 352 | ENDPROC(ce_aes_ctr_encrypt) | 352 | ENDPROC(ce_aes_ctr_encrypt) |
| 353 | 353 | ||
| 354 | /* | 354 | /* |
diff --git a/arch/arm/crypto/crct10dif-ce-core.S b/arch/arm/crypto/crct10dif-ce-core.S index ce45ba0c0687..86be258a803f 100644 --- a/arch/arm/crypto/crct10dif-ce-core.S +++ b/arch/arm/crypto/crct10dif-ce-core.S | |||
| @@ -2,12 +2,14 @@ | |||
| 2 | // Accelerated CRC-T10DIF using ARM NEON and Crypto Extensions instructions | 2 | // Accelerated CRC-T10DIF using ARM NEON and Crypto Extensions instructions |
| 3 | // | 3 | // |
| 4 | // Copyright (C) 2016 Linaro Ltd <ard.biesheuvel@linaro.org> | 4 | // Copyright (C) 2016 Linaro Ltd <ard.biesheuvel@linaro.org> |
| 5 | // Copyright (C) 2019 Google LLC <ebiggers@google.com> | ||
| 5 | // | 6 | // |
| 6 | // This program is free software; you can redistribute it and/or modify | 7 | // This program is free software; you can redistribute it and/or modify |
| 7 | // it under the terms of the GNU General Public License version 2 as | 8 | // it under the terms of the GNU General Public License version 2 as |
| 8 | // published by the Free Software Foundation. | 9 | // published by the Free Software Foundation. |
| 9 | // | 10 | // |
| 10 | 11 | ||
| 12 | // Derived from the x86 version: | ||
| 11 | // | 13 | // |
| 12 | // Implement fast CRC-T10DIF computation with SSE and PCLMULQDQ instructions | 14 | // Implement fast CRC-T10DIF computation with SSE and PCLMULQDQ instructions |
| 13 | // | 15 | // |
| @@ -54,19 +56,11 @@ | |||
| 54 | // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 56 | // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 55 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 57 | // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 56 | // | 58 | // |
| 57 | // Function API: | ||
| 58 | // UINT16 crc_t10dif_pcl( | ||
| 59 | // UINT16 init_crc, //initial CRC value, 16 bits | ||
| 60 | // const unsigned char *buf, //buffer pointer to calculate CRC on | ||
| 61 | // UINT64 len //buffer length in bytes (64-bit data) | ||
| 62 | // ); | ||
| 63 | // | ||
| 64 | // Reference paper titled "Fast CRC Computation for Generic | 59 | // Reference paper titled "Fast CRC Computation for Generic |
| 65 | // Polynomials Using PCLMULQDQ Instruction" | 60 | // Polynomials Using PCLMULQDQ Instruction" |
| 66 | // URL: http://www.intel.com/content/dam/www/public/us/en/documents | 61 | // URL: http://www.intel.com/content/dam/www/public/us/en/documents |
| 67 | // /white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf | 62 | // /white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf |
| 68 | // | 63 | // |
| 69 | // | ||
| 70 | 64 | ||
| 71 | #include <linux/linkage.h> | 65 | #include <linux/linkage.h> |
| 72 | #include <asm/assembler.h> | 66 | #include <asm/assembler.h> |
| @@ -78,13 +72,14 @@ | |||
| 78 | #endif | 72 | #endif |
| 79 | 73 | ||
| 80 | .text | 74 | .text |
| 75 | .arch armv7-a | ||
| 81 | .fpu crypto-neon-fp-armv8 | 76 | .fpu crypto-neon-fp-armv8 |
| 82 | 77 | ||
| 83 | arg1_low32 .req r0 | 78 | init_crc .req r0 |
| 84 | arg2 .req r1 | 79 | buf .req r1 |
| 85 | arg3 .req r2 | 80 | len .req r2 |
| 86 | 81 | ||
| 87 | qzr .req q13 | 82 | fold_consts_ptr .req ip |
| 88 | 83 | ||
| 89 | q0l .req d0 | 84 | q0l .req d0 |
| 90 | q0h .req d1 | 85 | q0h .req d1 |
| @@ -102,82 +97,35 @@ | |||
| 102 | q6h .req d13 | 97 | q6h .req d13 |
| 103 | q7l .req d14 | 98 | q7l .req d14 |
| 104 | q7h .req d15 | 99 | q7h .req d15 |
| 105 | 100 | q8l .req d16 | |
| 106 | ENTRY(crc_t10dif_pmull) | 101 | q8h .req d17 |
| 107 | vmov.i8 qzr, #0 // init zero register | 102 | q9l .req d18 |
| 108 | 103 | q9h .req d19 | |
| 109 | // adjust the 16-bit initial_crc value, scale it to 32 bits | 104 | q10l .req d20 |
| 110 | lsl arg1_low32, arg1_low32, #16 | 105 | q10h .req d21 |
| 111 | 106 | q11l .req d22 | |
| 112 | // check if smaller than 256 | 107 | q11h .req d23 |
| 113 | cmp arg3, #256 | 108 | q12l .req d24 |
| 114 | 109 | q12h .req d25 | |
| 115 | // for sizes less than 128, we can't fold 64B at a time... | 110 | |
| 116 | blt _less_than_128 | 111 | FOLD_CONSTS .req q10 |
| 117 | 112 | FOLD_CONST_L .req q10l | |
| 118 | // load the initial crc value | 113 | FOLD_CONST_H .req q10h |
| 119 | // crc value does not need to be byte-reflected, but it needs | 114 | |
| 120 | // to be moved to the high part of the register. | 115 | // Fold reg1, reg2 into the next 32 data bytes, storing the result back |
| 121 | // because data will be byte-reflected and will align with | 116 | // into reg1, reg2. |
| 122 | // initial crc at correct place. | 117 | .macro fold_32_bytes, reg1, reg2 |
| 123 | vmov s0, arg1_low32 // initial crc | 118 | vld1.64 {q11-q12}, [buf]! |
| 124 | vext.8 q10, qzr, q0, #4 | 119 | |
| 125 | 120 | vmull.p64 q8, \reg1\()h, FOLD_CONST_H | |
| 126 | // receive the initial 64B data, xor the initial crc value | 121 | vmull.p64 \reg1, \reg1\()l, FOLD_CONST_L |
| 127 | vld1.64 {q0-q1}, [arg2, :128]! | 122 | vmull.p64 q9, \reg2\()h, FOLD_CONST_H |
| 128 | vld1.64 {q2-q3}, [arg2, :128]! | 123 | vmull.p64 \reg2, \reg2\()l, FOLD_CONST_L |
| 129 | vld1.64 {q4-q5}, [arg2, :128]! | 124 | |
| 130 | vld1.64 {q6-q7}, [arg2, :128]! | 125 | CPU_LE( vrev64.8 q11, q11 ) |
| 131 | CPU_LE( vrev64.8 q0, q0 ) | 126 | CPU_LE( vrev64.8 q12, q12 ) |
| 132 | CPU_LE( vrev64.8 q1, q1 ) | 127 | vswp q11l, q11h |
| 133 | CPU_LE( vrev64.8 q2, q2 ) | 128 | vswp q12l, q12h |
| 134 | CPU_LE( vrev64.8 q3, q3 ) | ||
| 135 | CPU_LE( vrev64.8 q4, q4 ) | ||
| 136 | CPU_LE( vrev64.8 q5, q5 ) | ||
| 137 | CPU_LE( vrev64.8 q6, q6 ) | ||
| 138 | CPU_LE( vrev64.8 q7, q7 ) | ||
| 139 | |||
| 140 | vswp d0, d1 | ||
| 141 | vswp d2, d3 | ||
| 142 | vswp d4, d5 | ||
| 143 | vswp d6, d7 | ||
| 144 | vswp d8, d9 | ||
| 145 | vswp d10, d11 | ||
| 146 | vswp d12, d13 | ||
| 147 | vswp d14, d15 | ||
| 148 | |||
| 149 | // XOR the initial_crc value | ||
| 150 | veor.8 q0, q0, q10 | ||
| 151 | |||
| 152 | adr ip, rk3 | ||
| 153 | vld1.64 {q10}, [ip, :128] // xmm10 has rk3 and rk4 | ||
| 154 | |||
| 155 | // | ||
| 156 | // we subtract 256 instead of 128 to save one instruction from the loop | ||
| 157 | // | ||
| 158 | sub arg3, arg3, #256 | ||
| 159 | |||
| 160 | // at this section of the code, there is 64*x+y (0<=y<64) bytes of | ||
| 161 | // buffer. The _fold_64_B_loop will fold 64B at a time | ||
| 162 | // until we have 64+y Bytes of buffer | ||
| 163 | |||
| 164 | |||
| 165 | // fold 64B at a time. This section of the code folds 4 vector | ||
| 166 | // registers in parallel | ||
| 167 | _fold_64_B_loop: | ||
| 168 | |||
| 169 | .macro fold64, reg1, reg2 | ||
| 170 | vld1.64 {q11-q12}, [arg2, :128]! | ||
| 171 | |||
| 172 | vmull.p64 q8, \reg1\()h, d21 | ||
| 173 | vmull.p64 \reg1, \reg1\()l, d20 | ||
| 174 | vmull.p64 q9, \reg2\()h, d21 | ||
| 175 | vmull.p64 \reg2, \reg2\()l, d20 | ||
| 176 | |||
| 177 | CPU_LE( vrev64.8 q11, q11 ) | ||
| 178 | CPU_LE( vrev64.8 q12, q12 ) | ||
| 179 | vswp d22, d23 | ||
| 180 | vswp d24, d25 | ||
| 181 | 129 | ||
| 182 | veor.8 \reg1, \reg1, q8 | 130 | veor.8 \reg1, \reg1, q8 |
| 183 | veor.8 \reg2, \reg2, q9 | 131 | veor.8 \reg2, \reg2, q9 |
| @@ -185,242 +133,248 @@ CPU_LE( vrev64.8 q12, q12 ) | |||
| 185 | veor.8 \reg2, \reg2, q12 | 133 | veor.8 \reg2, \reg2, q12 |
| 186 | .endm | 134 | .endm |
| 187 | 135 | ||
| 188 | fold64 q0, q1 | 136 | // Fold src_reg into dst_reg, optionally loading the next fold constants |
| 189 | fold64 q2, q3 | 137 | .macro fold_16_bytes, src_reg, dst_reg, load_next_consts |
| 190 | fold64 q4, q5 | 138 | vmull.p64 q8, \src_reg\()l, FOLD_CONST_L |
| 191 | fold64 q6, q7 | 139 | vmull.p64 \src_reg, \src_reg\()h, FOLD_CONST_H |
| 192 | 140 | .ifnb \load_next_consts | |
| 193 | subs arg3, arg3, #128 | 141 | vld1.64 {FOLD_CONSTS}, [fold_consts_ptr, :128]! |
| 194 | |||
| 195 | // check if there is another 64B in the buffer to be able to fold | ||
| 196 | bge _fold_64_B_loop | ||
| 197 | |||
| 198 | // at this point, the buffer pointer is pointing at the last y Bytes | ||
| 199 | // of the buffer the 64B of folded data is in 4 of the vector | ||
| 200 | // registers: v0, v1, v2, v3 | ||
| 201 | |||
| 202 | // fold the 8 vector registers to 1 vector register with different | ||
| 203 | // constants | ||
| 204 | |||
| 205 | adr ip, rk9 | ||
| 206 | vld1.64 {q10}, [ip, :128]! | ||
| 207 | |||
| 208 | .macro fold16, reg, rk | ||
| 209 | vmull.p64 q8, \reg\()l, d20 | ||
| 210 | vmull.p64 \reg, \reg\()h, d21 | ||
| 211 | .ifnb \rk | ||
| 212 | vld1.64 {q10}, [ip, :128]! | ||
| 213 | .endif | 142 | .endif |
| 214 | veor.8 q7, q7, q8 | 143 | veor.8 \dst_reg, \dst_reg, q8 |
| 215 | veor.8 q7, q7, \reg | 144 | veor.8 \dst_reg, \dst_reg, \src_reg |
| 216 | .endm | 145 | .endm |
| 217 | 146 | ||
| 218 | fold16 q0, rk11 | 147 | .macro __adrl, out, sym |
| 219 | fold16 q1, rk13 | 148 | movw \out, #:lower16:\sym |
| 220 | fold16 q2, rk15 | 149 | movt \out, #:upper16:\sym |
| 221 | fold16 q3, rk17 | 150 | .endm |
| 222 | fold16 q4, rk19 | ||
| 223 | fold16 q5, rk1 | ||
| 224 | fold16 q6 | ||
| 225 | |||
| 226 | // instead of 64, we add 48 to the loop counter to save 1 instruction | ||
| 227 | // from the loop instead of a cmp instruction, we use the negative | ||
| 228 | // flag with the jl instruction | ||
| 229 | adds arg3, arg3, #(128-16) | ||
| 230 | blt _final_reduction_for_128 | ||
| 231 | |||
| 232 | // now we have 16+y bytes left to reduce. 16 Bytes is in register v7 | ||
| 233 | // and the rest is in memory. We can fold 16 bytes at a time if y>=16 | ||
| 234 | // continue folding 16B at a time | ||
| 235 | |||
| 236 | _16B_reduction_loop: | ||
| 237 | vmull.p64 q8, d14, d20 | ||
| 238 | vmull.p64 q7, d15, d21 | ||
| 239 | veor.8 q7, q7, q8 | ||
| 240 | 151 | ||
| 241 | vld1.64 {q0}, [arg2, :128]! | 152 | // |
| 242 | CPU_LE( vrev64.8 q0, q0 ) | 153 | // u16 crc_t10dif_pmull(u16 init_crc, const u8 *buf, size_t len); |
| 243 | vswp d0, d1 | 154 | // |
| 244 | veor.8 q7, q7, q0 | 155 | // Assumes len >= 16. |
| 245 | subs arg3, arg3, #16 | 156 | // |
| 246 | 157 | ENTRY(crc_t10dif_pmull) | |
| 247 | // instead of a cmp instruction, we utilize the flags with the | 158 | |
| 248 | // jge instruction equivalent of: cmp arg3, 16-16 | 159 | // For sizes less than 256 bytes, we can't fold 128 bytes at a time. |
| 249 | // check if there is any more 16B in the buffer to be able to fold | 160 | cmp len, #256 |
| 250 | bge _16B_reduction_loop | 161 | blt .Lless_than_256_bytes |
| 251 | 162 | ||
| 252 | // now we have 16+z bytes left to reduce, where 0<= z < 16. | 163 | __adrl fold_consts_ptr, .Lfold_across_128_bytes_consts |
| 253 | // first, we reduce the data in the xmm7 register | 164 | |
| 254 | 165 | // Load the first 128 data bytes. Byte swapping is necessary to make | |
| 255 | _final_reduction_for_128: | 166 | // the bit order match the polynomial coefficient order. |
| 256 | // check if any more data to fold. If not, compute the CRC of | 167 | vld1.64 {q0-q1}, [buf]! |
| 257 | // the final 128 bits | 168 | vld1.64 {q2-q3}, [buf]! |
| 258 | adds arg3, arg3, #16 | 169 | vld1.64 {q4-q5}, [buf]! |
| 259 | beq _128_done | 170 | vld1.64 {q6-q7}, [buf]! |
| 260 | 171 | CPU_LE( vrev64.8 q0, q0 ) | |
| 261 | // here we are getting data that is less than 16 bytes. | 172 | CPU_LE( vrev64.8 q1, q1 ) |
| 262 | // since we know that there was data before the pointer, we can | 173 | CPU_LE( vrev64.8 q2, q2 ) |
| 263 | // offset the input pointer before the actual point, to receive | 174 | CPU_LE( vrev64.8 q3, q3 ) |
| 264 | // exactly 16 bytes. after that the registers need to be adjusted. | 175 | CPU_LE( vrev64.8 q4, q4 ) |
| 265 | _get_last_two_regs: | 176 | CPU_LE( vrev64.8 q5, q5 ) |
| 266 | add arg2, arg2, arg3 | 177 | CPU_LE( vrev64.8 q6, q6 ) |
| 267 | sub arg2, arg2, #16 | 178 | CPU_LE( vrev64.8 q7, q7 ) |
| 268 | vld1.64 {q1}, [arg2] | 179 | vswp q0l, q0h |
| 269 | CPU_LE( vrev64.8 q1, q1 ) | 180 | vswp q1l, q1h |
| 270 | vswp d2, d3 | 181 | vswp q2l, q2h |
| 271 | 182 | vswp q3l, q3h | |
| 272 | // get rid of the extra data that was loaded before | 183 | vswp q4l, q4h |
| 273 | // load the shift constant | 184 | vswp q5l, q5h |
| 274 | adr ip, tbl_shf_table + 16 | 185 | vswp q6l, q6h |
| 275 | sub ip, ip, arg3 | 186 | vswp q7l, q7h |
| 276 | vld1.8 {q0}, [ip] | 187 | |
| 277 | 188 | // XOR the first 16 data *bits* with the initial CRC value. | |
| 278 | // shift v2 to the left by arg3 bytes | 189 | vmov.i8 q8h, #0 |
| 279 | vtbl.8 d4, {d14-d15}, d0 | 190 | vmov.u16 q8h[3], init_crc |
| 280 | vtbl.8 d5, {d14-d15}, d1 | 191 | veor q0h, q0h, q8h |
| 281 | 192 | ||
| 282 | // shift v7 to the right by 16-arg3 bytes | 193 | // Load the constants for folding across 128 bytes. |
| 283 | vmov.i8 q9, #0x80 | 194 | vld1.64 {FOLD_CONSTS}, [fold_consts_ptr, :128]! |
| 284 | veor.8 q0, q0, q9 | 195 | |
| 285 | vtbl.8 d18, {d14-d15}, d0 | 196 | // Subtract 128 for the 128 data bytes just consumed. Subtract another |
| 286 | vtbl.8 d19, {d14-d15}, d1 | 197 | // 128 to simplify the termination condition of the following loop. |
| 287 | 198 | sub len, len, #256 | |
| 288 | // blend | 199 | |
| 289 | vshr.s8 q0, q0, #7 // convert to 8-bit mask | 200 | // While >= 128 data bytes remain (not counting q0-q7), fold the 128 |
| 290 | vbsl.8 q0, q2, q1 | 201 | // bytes q0-q7 into them, storing the result back into q0-q7. |
| 291 | 202 | .Lfold_128_bytes_loop: | |
| 292 | // fold 16 Bytes | 203 | fold_32_bytes q0, q1 |
| 293 | vmull.p64 q8, d18, d20 | 204 | fold_32_bytes q2, q3 |
| 294 | vmull.p64 q7, d19, d21 | 205 | fold_32_bytes q4, q5 |
| 206 | fold_32_bytes q6, q7 | ||
| 207 | subs len, len, #128 | ||
| 208 | bge .Lfold_128_bytes_loop | ||
| 209 | |||
| 210 | // Now fold the 112 bytes in q0-q6 into the 16 bytes in q7. | ||
| 211 | |||
| 212 | // Fold across 64 bytes. | ||
| 213 | vld1.64 {FOLD_CONSTS}, [fold_consts_ptr, :128]! | ||
| 214 | fold_16_bytes q0, q4 | ||
| 215 | fold_16_bytes q1, q5 | ||
| 216 | fold_16_bytes q2, q6 | ||
| 217 | fold_16_bytes q3, q7, 1 | ||
| 218 | // Fold across 32 bytes. | ||
| 219 | fold_16_bytes q4, q6 | ||
| 220 | fold_16_bytes q5, q7, 1 | ||
| 221 | // Fold across 16 bytes. | ||
| 222 | fold_16_bytes q6, q7 | ||
| 223 | |||
| 224 | // Add 128 to get the correct number of data bytes remaining in 0...127 | ||
| 225 | // (not counting q7), following the previous extra subtraction by 128. | ||
| 226 | // Then subtract 16 to simplify the termination condition of the | ||
| 227 | // following loop. | ||
| 228 | adds len, len, #(128-16) | ||
| 229 | |||
| 230 | // While >= 16 data bytes remain (not counting q7), fold the 16 bytes q7 | ||
| 231 | // into them, storing the result back into q7. | ||
| 232 | blt .Lfold_16_bytes_loop_done | ||
| 233 | .Lfold_16_bytes_loop: | ||
| 234 | vmull.p64 q8, q7l, FOLD_CONST_L | ||
| 235 | vmull.p64 q7, q7h, FOLD_CONST_H | ||
| 295 | veor.8 q7, q7, q8 | 236 | veor.8 q7, q7, q8 |
| 237 | vld1.64 {q0}, [buf]! | ||
| 238 | CPU_LE( vrev64.8 q0, q0 ) | ||
| 239 | vswp q0l, q0h | ||
| 296 | veor.8 q7, q7, q0 | 240 | veor.8 q7, q7, q0 |
| 297 | 241 | subs len, len, #16 | |
| 298 | _128_done: | 242 | bge .Lfold_16_bytes_loop |
| 299 | // compute crc of a 128-bit value | 243 | |
| 300 | vldr d20, rk5 | 244 | .Lfold_16_bytes_loop_done: |
| 301 | vldr d21, rk6 // rk5 and rk6 in xmm10 | 245 | // Add 16 to get the correct number of data bytes remaining in 0...15 |
| 302 | 246 | // (not counting q7), following the previous extra subtraction by 16. | |
| 303 | // 64b fold | 247 | adds len, len, #16 |
| 304 | vext.8 q0, qzr, q7, #8 | 248 | beq .Lreduce_final_16_bytes |
| 305 | vmull.p64 q7, d15, d20 | 249 | |
| 250 | .Lhandle_partial_segment: | ||
| 251 | // Reduce the last '16 + len' bytes where 1 <= len <= 15 and the first | ||
| 252 | // 16 bytes are in q7 and the rest are the remaining data in 'buf'. To | ||
| 253 | // do this without needing a fold constant for each possible 'len', | ||
| 254 | // redivide the bytes into a first chunk of 'len' bytes and a second | ||
| 255 | // chunk of 16 bytes, then fold the first chunk into the second. | ||
| 256 | |||
| 257 | // q0 = last 16 original data bytes | ||
| 258 | add buf, buf, len | ||
| 259 | sub buf, buf, #16 | ||
| 260 | vld1.64 {q0}, [buf] | ||
| 261 | CPU_LE( vrev64.8 q0, q0 ) | ||
| 262 | vswp q0l, q0h | ||
| 263 | |||
| 264 | // q1 = high order part of second chunk: q7 left-shifted by 'len' bytes. | ||
| 265 | __adrl r3, .Lbyteshift_table + 16 | ||
| 266 | sub r3, r3, len | ||
| 267 | vld1.8 {q2}, [r3] | ||
| 268 | vtbl.8 q1l, {q7l-q7h}, q2l | ||
| 269 | vtbl.8 q1h, {q7l-q7h}, q2h | ||
| 270 | |||
| 271 | // q3 = first chunk: q7 right-shifted by '16-len' bytes. | ||
| 272 | vmov.i8 q3, #0x80 | ||
| 273 | veor.8 q2, q2, q3 | ||
| 274 | vtbl.8 q3l, {q7l-q7h}, q2l | ||
| 275 | vtbl.8 q3h, {q7l-q7h}, q2h | ||
| 276 | |||
| 277 | // Convert to 8-bit masks: 'len' 0x00 bytes, then '16-len' 0xff bytes. | ||
| 278 | vshr.s8 q2, q2, #7 | ||
| 279 | |||
| 280 | // q2 = second chunk: 'len' bytes from q0 (low-order bytes), | ||
| 281 | // then '16-len' bytes from q1 (high-order bytes). | ||
| 282 | vbsl.8 q2, q1, q0 | ||
| 283 | |||
| 284 | // Fold the first chunk into the second chunk, storing the result in q7. | ||
| 285 | vmull.p64 q0, q3l, FOLD_CONST_L | ||
| 286 | vmull.p64 q7, q3h, FOLD_CONST_H | ||
| 306 | veor.8 q7, q7, q0 | 287 | veor.8 q7, q7, q0 |
| 288 | veor.8 q7, q7, q2 | ||
| 289 | |||
| 290 | .Lreduce_final_16_bytes: | ||
| 291 | // Reduce the 128-bit value M(x), stored in q7, to the final 16-bit CRC. | ||
| 292 | |||
| 293 | // Load 'x^48 * (x^48 mod G(x))' and 'x^48 * (x^80 mod G(x))'. | ||
| 294 | vld1.64 {FOLD_CONSTS}, [fold_consts_ptr, :128]! | ||
| 295 | |||
| 296 | // Fold the high 64 bits into the low 64 bits, while also multiplying by | ||
| 297 | // x^64. This produces a 128-bit value congruent to x^64 * M(x) and | ||
| 298 | // whose low 48 bits are 0. | ||
| 299 | vmull.p64 q0, q7h, FOLD_CONST_H // high bits * x^48 * (x^80 mod G(x)) | ||
| 300 | veor.8 q0h, q0h, q7l // + low bits * x^64 | ||
| 301 | |||
| 302 | // Fold the high 32 bits into the low 96 bits. This produces a 96-bit | ||
| 303 | // value congruent to x^64 * M(x) and whose low 48 bits are 0. | ||
| 304 | vmov.i8 q1, #0 | ||
| 305 | vmov s4, s3 // extract high 32 bits | ||
| 306 | vmov s3, s5 // zero high 32 bits | ||
| 307 | vmull.p64 q1, q1l, FOLD_CONST_L // high 32 bits * x^48 * (x^48 mod G(x)) | ||
| 308 | veor.8 q0, q0, q1 // + low bits | ||
| 309 | |||
| 310 | // Load G(x) and floor(x^48 / G(x)). | ||
| 311 | vld1.64 {FOLD_CONSTS}, [fold_consts_ptr, :128] | ||
| 312 | |||
| 313 | // Use Barrett reduction to compute the final CRC value. | ||
| 314 | vmull.p64 q1, q0h, FOLD_CONST_H // high 32 bits * floor(x^48 / G(x)) | ||
| 315 | vshr.u64 q1l, q1l, #32 // /= x^32 | ||
| 316 | vmull.p64 q1, q1l, FOLD_CONST_L // *= G(x) | ||
| 317 | vshr.u64 q0l, q0l, #48 | ||
| 318 | veor.8 q0l, q0l, q1l // + low 16 nonzero bits | ||
| 319 | // Final CRC value (x^16 * M(x)) mod G(x) is in low 16 bits of q0. | ||
| 320 | |||
| 321 | vmov.u16 r0, q0l[0] | ||
| 322 | bx lr | ||
| 307 | 323 | ||
| 308 | // 32b fold | 324 | .Lless_than_256_bytes: |
| 309 | vext.8 q0, q7, qzr, #12 | 325 | // Checksumming a buffer of length 16...255 bytes |
| 310 | vmov s31, s3 | ||
| 311 | vmull.p64 q0, d0, d21 | ||
| 312 | veor.8 q7, q0, q7 | ||
| 313 | |||
| 314 | // barrett reduction | ||
| 315 | _barrett: | ||
| 316 | vldr d20, rk7 | ||
| 317 | vldr d21, rk8 | ||
| 318 | |||
| 319 | vmull.p64 q0, d15, d20 | ||
| 320 | vext.8 q0, qzr, q0, #12 | ||
| 321 | vmull.p64 q0, d1, d21 | ||
| 322 | vext.8 q0, qzr, q0, #12 | ||
| 323 | veor.8 q7, q7, q0 | ||
| 324 | vmov r0, s29 | ||
| 325 | 326 | ||
| 326 | _cleanup: | 327 | __adrl fold_consts_ptr, .Lfold_across_16_bytes_consts |
| 327 | // scale the result back to 16 bits | ||
| 328 | lsr r0, r0, #16 | ||
| 329 | bx lr | ||
| 330 | 328 | ||
| 331 | _less_than_128: | 329 | // Load the first 16 data bytes. |
| 332 | teq arg3, #0 | 330 | vld1.64 {q7}, [buf]! |
| 333 | beq _cleanup | 331 | CPU_LE( vrev64.8 q7, q7 ) |
| 332 | vswp q7l, q7h | ||
| 334 | 333 | ||
| 335 | vmov.i8 q0, #0 | 334 | // XOR the first 16 data *bits* with the initial CRC value. |
| 336 | vmov s3, arg1_low32 // get the initial crc value | 335 | vmov.i8 q0h, #0 |
| 336 | vmov.u16 q0h[3], init_crc | ||
| 337 | veor.8 q7h, q7h, q0h | ||
| 337 | 338 | ||
| 338 | vld1.64 {q7}, [arg2, :128]! | 339 | // Load the fold-across-16-bytes constants. |
| 339 | CPU_LE( vrev64.8 q7, q7 ) | 340 | vld1.64 {FOLD_CONSTS}, [fold_consts_ptr, :128]! |
| 340 | vswp d14, d15 | ||
| 341 | veor.8 q7, q7, q0 | ||
| 342 | 341 | ||
| 343 | cmp arg3, #16 | 342 | cmp len, #16 |
| 344 | beq _128_done // exactly 16 left | 343 | beq .Lreduce_final_16_bytes // len == 16 |
| 345 | blt _less_than_16_left | 344 | subs len, len, #32 |
| 346 | 345 | addlt len, len, #16 | |
| 347 | // now if there is, load the constants | 346 | blt .Lhandle_partial_segment // 17 <= len <= 31 |
| 348 | vldr d20, rk1 | 347 | b .Lfold_16_bytes_loop // 32 <= len <= 255 |
| 349 | vldr d21, rk2 // rk1 and rk2 in xmm10 | ||
| 350 | |||
| 351 | // check if there is enough buffer to be able to fold 16B at a time | ||
| 352 | subs arg3, arg3, #32 | ||
| 353 | addlt arg3, arg3, #16 | ||
| 354 | blt _get_last_two_regs | ||
| 355 | b _16B_reduction_loop | ||
| 356 | |||
| 357 | _less_than_16_left: | ||
| 358 | // shl r9, 4 | ||
| 359 | adr ip, tbl_shf_table + 16 | ||
| 360 | sub ip, ip, arg3 | ||
| 361 | vld1.8 {q0}, [ip] | ||
| 362 | vmov.i8 q9, #0x80 | ||
| 363 | veor.8 q0, q0, q9 | ||
| 364 | vtbl.8 d18, {d14-d15}, d0 | ||
| 365 | vtbl.8 d15, {d14-d15}, d1 | ||
| 366 | vmov d14, d18 | ||
| 367 | b _128_done | ||
| 368 | ENDPROC(crc_t10dif_pmull) | 348 | ENDPROC(crc_t10dif_pmull) |
| 369 | 349 | ||
| 370 | // precomputed constants | 350 | .section ".rodata", "a" |
| 371 | // these constants are precomputed from the poly: | ||
| 372 | // 0x8bb70000 (0x8bb7 scaled to 32 bits) | ||
| 373 | .align 4 | 351 | .align 4 |
| 374 | // Q = 0x18BB70000 | ||
| 375 | // rk1 = 2^(32*3) mod Q << 32 | ||
| 376 | // rk2 = 2^(32*5) mod Q << 32 | ||
| 377 | // rk3 = 2^(32*15) mod Q << 32 | ||
| 378 | // rk4 = 2^(32*17) mod Q << 32 | ||
| 379 | // rk5 = 2^(32*3) mod Q << 32 | ||
| 380 | // rk6 = 2^(32*2) mod Q << 32 | ||
| 381 | // rk7 = floor(2^64/Q) | ||
| 382 | // rk8 = Q | ||
| 383 | |||
| 384 | rk3: .quad 0x9d9d000000000000 | ||
| 385 | rk4: .quad 0x7cf5000000000000 | ||
| 386 | rk5: .quad 0x2d56000000000000 | ||
| 387 | rk6: .quad 0x1368000000000000 | ||
| 388 | rk7: .quad 0x00000001f65a57f8 | ||
| 389 | rk8: .quad 0x000000018bb70000 | ||
| 390 | rk9: .quad 0xceae000000000000 | ||
| 391 | rk10: .quad 0xbfd6000000000000 | ||
| 392 | rk11: .quad 0x1e16000000000000 | ||
| 393 | rk12: .quad 0x713c000000000000 | ||
| 394 | rk13: .quad 0xf7f9000000000000 | ||
| 395 | rk14: .quad 0x80a6000000000000 | ||
| 396 | rk15: .quad 0x044c000000000000 | ||
| 397 | rk16: .quad 0xe658000000000000 | ||
| 398 | rk17: .quad 0xad18000000000000 | ||
| 399 | rk18: .quad 0xa497000000000000 | ||
| 400 | rk19: .quad 0x6ee3000000000000 | ||
| 401 | rk20: .quad 0xe7b5000000000000 | ||
| 402 | rk1: .quad 0x2d56000000000000 | ||
| 403 | rk2: .quad 0x06df000000000000 | ||
| 404 | |||
| 405 | tbl_shf_table: | ||
| 406 | // use these values for shift constants for the tbl/tbx instruction | ||
| 407 | // different alignments result in values as shown: | ||
| 408 | // DDQ 0x008f8e8d8c8b8a898887868584838281 # shl 15 (16-1) / shr1 | ||
| 409 | // DDQ 0x01008f8e8d8c8b8a8988878685848382 # shl 14 (16-3) / shr2 | ||
| 410 | // DDQ 0x0201008f8e8d8c8b8a89888786858483 # shl 13 (16-4) / shr3 | ||
| 411 | // DDQ 0x030201008f8e8d8c8b8a898887868584 # shl 12 (16-4) / shr4 | ||
| 412 | // DDQ 0x04030201008f8e8d8c8b8a8988878685 # shl 11 (16-5) / shr5 | ||
| 413 | // DDQ 0x0504030201008f8e8d8c8b8a89888786 # shl 10 (16-6) / shr6 | ||
| 414 | // DDQ 0x060504030201008f8e8d8c8b8a898887 # shl 9 (16-7) / shr7 | ||
| 415 | // DDQ 0x07060504030201008f8e8d8c8b8a8988 # shl 8 (16-8) / shr8 | ||
| 416 | // DDQ 0x0807060504030201008f8e8d8c8b8a89 # shl 7 (16-9) / shr9 | ||
| 417 | // DDQ 0x090807060504030201008f8e8d8c8b8a # shl 6 (16-10) / shr10 | ||
| 418 | // DDQ 0x0a090807060504030201008f8e8d8c8b # shl 5 (16-11) / shr11 | ||
| 419 | // DDQ 0x0b0a090807060504030201008f8e8d8c # shl 4 (16-12) / shr12 | ||
| 420 | // DDQ 0x0c0b0a090807060504030201008f8e8d # shl 3 (16-13) / shr13 | ||
| 421 | // DDQ 0x0d0c0b0a090807060504030201008f8e # shl 2 (16-14) / shr14 | ||
| 422 | // DDQ 0x0e0d0c0b0a090807060504030201008f # shl 1 (16-15) / shr15 | ||
| 423 | 352 | ||
| 353 | // Fold constants precomputed from the polynomial 0x18bb7 | ||
| 354 | // G(x) = x^16 + x^15 + x^11 + x^9 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + x^0 | ||
| 355 | .Lfold_across_128_bytes_consts: | ||
| 356 | .quad 0x0000000000006123 // x^(8*128) mod G(x) | ||
| 357 | .quad 0x0000000000002295 // x^(8*128+64) mod G(x) | ||
| 358 | // .Lfold_across_64_bytes_consts: | ||
| 359 | .quad 0x0000000000001069 // x^(4*128) mod G(x) | ||
| 360 | .quad 0x000000000000dd31 // x^(4*128+64) mod G(x) | ||
| 361 | // .Lfold_across_32_bytes_consts: | ||
| 362 | .quad 0x000000000000857d // x^(2*128) mod G(x) | ||
| 363 | .quad 0x0000000000007acc // x^(2*128+64) mod G(x) | ||
| 364 | .Lfold_across_16_bytes_consts: | ||
| 365 | .quad 0x000000000000a010 // x^(1*128) mod G(x) | ||
| 366 | .quad 0x0000000000001faa // x^(1*128+64) mod G(x) | ||
| 367 | // .Lfinal_fold_consts: | ||
| 368 | .quad 0x1368000000000000 // x^48 * (x^48 mod G(x)) | ||
| 369 | .quad 0x2d56000000000000 // x^48 * (x^80 mod G(x)) | ||
| 370 | // .Lbarrett_reduction_consts: | ||
| 371 | .quad 0x0000000000018bb7 // G(x) | ||
| 372 | .quad 0x00000001f65a57f8 // floor(x^48 / G(x)) | ||
| 373 | |||
| 374 | // For 1 <= len <= 15, the 16-byte vector beginning at &byteshift_table[16 - | ||
| 375 | // len] is the index vector to shift left by 'len' bytes, and is also {0x80, | ||
| 376 | // ..., 0x80} XOR the index vector to shift right by '16 - len' bytes. | ||
| 377 | .Lbyteshift_table: | ||
| 424 | .byte 0x0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 | 378 | .byte 0x0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87 |
| 425 | .byte 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f | 379 | .byte 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f |
| 426 | .byte 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7 | 380 | .byte 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7 |
diff --git a/arch/arm/crypto/crct10dif-ce-glue.c b/arch/arm/crypto/crct10dif-ce-glue.c index d428355cf38d..3d6b800b8396 100644 --- a/arch/arm/crypto/crct10dif-ce-glue.c +++ b/arch/arm/crypto/crct10dif-ce-glue.c | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | #define CRC_T10DIF_PMULL_CHUNK_SIZE 16U | 22 | #define CRC_T10DIF_PMULL_CHUNK_SIZE 16U |
| 23 | 23 | ||
| 24 | asmlinkage u16 crc_t10dif_pmull(u16 init_crc, const u8 buf[], u32 len); | 24 | asmlinkage u16 crc_t10dif_pmull(u16 init_crc, const u8 *buf, size_t len); |
| 25 | 25 | ||
| 26 | static int crct10dif_init(struct shash_desc *desc) | 26 | static int crct10dif_init(struct shash_desc *desc) |
| 27 | { | 27 | { |
| @@ -35,26 +35,15 @@ static int crct10dif_update(struct shash_desc *desc, const u8 *data, | |||
| 35 | unsigned int length) | 35 | unsigned int length) |
| 36 | { | 36 | { |
| 37 | u16 *crc = shash_desc_ctx(desc); | 37 | u16 *crc = shash_desc_ctx(desc); |
| 38 | unsigned int l; | ||
| 39 | 38 | ||
| 40 | if (!may_use_simd()) { | 39 | if (length >= CRC_T10DIF_PMULL_CHUNK_SIZE && may_use_simd()) { |
| 41 | *crc = crc_t10dif_generic(*crc, data, length); | 40 | kernel_neon_begin(); |
| 41 | *crc = crc_t10dif_pmull(*crc, data, length); | ||
| 42 | kernel_neon_end(); | ||
| 42 | } else { | 43 | } else { |
| 43 | if (unlikely((u32)data % CRC_T10DIF_PMULL_CHUNK_SIZE)) { | 44 | *crc = crc_t10dif_generic(*crc, data, length); |
| 44 | l = min_t(u32, length, CRC_T10DIF_PMULL_CHUNK_SIZE - | ||
| 45 | ((u32)data % CRC_T10DIF_PMULL_CHUNK_SIZE)); | ||
| 46 | |||
| 47 | *crc = crc_t10dif_generic(*crc, data, l); | ||
| 48 | |||
| 49 | length -= l; | ||
| 50 | data += l; | ||
| 51 | } | ||
| 52 | if (length > 0) { | ||
| 53 | kernel_neon_begin(); | ||
| 54 | *crc = crc_t10dif_pmull(*crc, data, length); | ||
| 55 | kernel_neon_end(); | ||
| 56 | } | ||
| 57 | } | 45 | } |
| 46 | |||
| 58 | return 0; | 47 | return 0; |
| 59 | } | 48 | } |
| 60 | 49 | ||
diff --git a/arch/arm/crypto/sha256-armv4.pl b/arch/arm/crypto/sha256-armv4.pl index b9ec44060ed3..a03cf4dfb781 100644 --- a/arch/arm/crypto/sha256-armv4.pl +++ b/arch/arm/crypto/sha256-armv4.pl | |||
| @@ -212,10 +212,11 @@ K256: | |||
| 212 | .global sha256_block_data_order | 212 | .global sha256_block_data_order |
| 213 | .type sha256_block_data_order,%function | 213 | .type sha256_block_data_order,%function |
| 214 | sha256_block_data_order: | 214 | sha256_block_data_order: |
| 215 | .Lsha256_block_data_order: | ||
| 215 | #if __ARM_ARCH__<7 | 216 | #if __ARM_ARCH__<7 |
| 216 | sub r3,pc,#8 @ sha256_block_data_order | 217 | sub r3,pc,#8 @ sha256_block_data_order |
| 217 | #else | 218 | #else |
| 218 | adr r3,sha256_block_data_order | 219 | adr r3,.Lsha256_block_data_order |
| 219 | #endif | 220 | #endif |
| 220 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 221 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 221 | ldr r12,.LOPENSSL_armcap | 222 | ldr r12,.LOPENSSL_armcap |
diff --git a/arch/arm/crypto/sha256-core.S_shipped b/arch/arm/crypto/sha256-core.S_shipped index 3b58300d611c..054aae0edfce 100644 --- a/arch/arm/crypto/sha256-core.S_shipped +++ b/arch/arm/crypto/sha256-core.S_shipped | |||
| @@ -93,10 +93,11 @@ K256: | |||
| 93 | .global sha256_block_data_order | 93 | .global sha256_block_data_order |
| 94 | .type sha256_block_data_order,%function | 94 | .type sha256_block_data_order,%function |
| 95 | sha256_block_data_order: | 95 | sha256_block_data_order: |
| 96 | .Lsha256_block_data_order: | ||
| 96 | #if __ARM_ARCH__<7 | 97 | #if __ARM_ARCH__<7 |
| 97 | sub r3,pc,#8 @ sha256_block_data_order | 98 | sub r3,pc,#8 @ sha256_block_data_order |
| 98 | #else | 99 | #else |
| 99 | adr r3,sha256_block_data_order | 100 | adr r3,.Lsha256_block_data_order |
| 100 | #endif | 101 | #endif |
| 101 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 102 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 102 | ldr r12,.LOPENSSL_armcap | 103 | ldr r12,.LOPENSSL_armcap |
diff --git a/arch/arm/crypto/sha512-armv4.pl b/arch/arm/crypto/sha512-armv4.pl index fb5d15048c0b..788c17b56ecc 100644 --- a/arch/arm/crypto/sha512-armv4.pl +++ b/arch/arm/crypto/sha512-armv4.pl | |||
| @@ -274,10 +274,11 @@ WORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) | |||
| 274 | .global sha512_block_data_order | 274 | .global sha512_block_data_order |
| 275 | .type sha512_block_data_order,%function | 275 | .type sha512_block_data_order,%function |
| 276 | sha512_block_data_order: | 276 | sha512_block_data_order: |
| 277 | .Lsha512_block_data_order: | ||
| 277 | #if __ARM_ARCH__<7 | 278 | #if __ARM_ARCH__<7 |
| 278 | sub r3,pc,#8 @ sha512_block_data_order | 279 | sub r3,pc,#8 @ sha512_block_data_order |
| 279 | #else | 280 | #else |
| 280 | adr r3,sha512_block_data_order | 281 | adr r3,.Lsha512_block_data_order |
| 281 | #endif | 282 | #endif |
| 282 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 283 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 283 | ldr r12,.LOPENSSL_armcap | 284 | ldr r12,.LOPENSSL_armcap |
diff --git a/arch/arm/crypto/sha512-core.S_shipped b/arch/arm/crypto/sha512-core.S_shipped index b1c334a49cda..710ea309769e 100644 --- a/arch/arm/crypto/sha512-core.S_shipped +++ b/arch/arm/crypto/sha512-core.S_shipped | |||
| @@ -141,10 +141,11 @@ WORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) | |||
| 141 | .global sha512_block_data_order | 141 | .global sha512_block_data_order |
| 142 | .type sha512_block_data_order,%function | 142 | .type sha512_block_data_order,%function |
| 143 | sha512_block_data_order: | 143 | sha512_block_data_order: |
| 144 | .Lsha512_block_data_order: | ||
| 144 | #if __ARM_ARCH__<7 | 145 | #if __ARM_ARCH__<7 |
| 145 | sub r3,pc,#8 @ sha512_block_data_order | 146 | sub r3,pc,#8 @ sha512_block_data_order |
| 146 | #else | 147 | #else |
| 147 | adr r3,sha512_block_data_order | 148 | adr r3,.Lsha512_block_data_order |
| 148 | #endif | 149 | #endif |
| 149 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) | 150 | #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__) |
| 150 | ldr r12,.LOPENSSL_armcap | 151 | ldr r12,.LOPENSSL_armcap |
diff --git a/arch/arm/include/asm/arch_gicv3.h b/arch/arm/include/asm/arch_gicv3.h index 0bd530702118..d15b8c99f1b3 100644 --- a/arch/arm/include/asm/arch_gicv3.h +++ b/arch/arm/include/asm/arch_gicv3.h | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #define ICC_SRE __ACCESS_CP15(c12, 0, c12, 5) | 34 | #define ICC_SRE __ACCESS_CP15(c12, 0, c12, 5) |
| 35 | #define ICC_IGRPEN1 __ACCESS_CP15(c12, 0, c12, 7) | 35 | #define ICC_IGRPEN1 __ACCESS_CP15(c12, 0, c12, 7) |
| 36 | #define ICC_BPR1 __ACCESS_CP15(c12, 0, c12, 3) | 36 | #define ICC_BPR1 __ACCESS_CP15(c12, 0, c12, 3) |
| 37 | #define ICC_RPR __ACCESS_CP15(c12, 0, c11, 3) | ||
| 37 | 38 | ||
| 38 | #define __ICC_AP0Rx(x) __ACCESS_CP15(c12, 0, c8, 4 | x) | 39 | #define __ICC_AP0Rx(x) __ACCESS_CP15(c12, 0, c8, 4 | x) |
| 39 | #define ICC_AP0R0 __ICC_AP0Rx(0) | 40 | #define ICC_AP0R0 __ICC_AP0Rx(0) |
| @@ -54,7 +55,7 @@ | |||
| 54 | #define ICH_VTR __ACCESS_CP15(c12, 4, c11, 1) | 55 | #define ICH_VTR __ACCESS_CP15(c12, 4, c11, 1) |
| 55 | #define ICH_MISR __ACCESS_CP15(c12, 4, c11, 2) | 56 | #define ICH_MISR __ACCESS_CP15(c12, 4, c11, 2) |
| 56 | #define ICH_EISR __ACCESS_CP15(c12, 4, c11, 3) | 57 | #define ICH_EISR __ACCESS_CP15(c12, 4, c11, 3) |
| 57 | #define ICH_ELSR __ACCESS_CP15(c12, 4, c11, 5) | 58 | #define ICH_ELRSR __ACCESS_CP15(c12, 4, c11, 5) |
| 58 | #define ICH_VMCR __ACCESS_CP15(c12, 4, c11, 7) | 59 | #define ICH_VMCR __ACCESS_CP15(c12, 4, c11, 7) |
| 59 | 60 | ||
| 60 | #define __LR0(x) __ACCESS_CP15(c12, 4, c12, x) | 61 | #define __LR0(x) __ACCESS_CP15(c12, 4, c12, x) |
| @@ -151,7 +152,7 @@ CPUIF_MAP(ICH_HCR, ICH_HCR_EL2) | |||
| 151 | CPUIF_MAP(ICH_VTR, ICH_VTR_EL2) | 152 | CPUIF_MAP(ICH_VTR, ICH_VTR_EL2) |
| 152 | CPUIF_MAP(ICH_MISR, ICH_MISR_EL2) | 153 | CPUIF_MAP(ICH_MISR, ICH_MISR_EL2) |
| 153 | CPUIF_MAP(ICH_EISR, ICH_EISR_EL2) | 154 | CPUIF_MAP(ICH_EISR, ICH_EISR_EL2) |
| 154 | CPUIF_MAP(ICH_ELSR, ICH_ELSR_EL2) | 155 | CPUIF_MAP(ICH_ELRSR, ICH_ELRSR_EL2) |
| 155 | CPUIF_MAP(ICH_VMCR, ICH_VMCR_EL2) | 156 | CPUIF_MAP(ICH_VMCR, ICH_VMCR_EL2) |
| 156 | CPUIF_MAP(ICH_AP0R3, ICH_AP0R3_EL2) | 157 | CPUIF_MAP(ICH_AP0R3, ICH_AP0R3_EL2) |
| 157 | CPUIF_MAP(ICH_AP0R2, ICH_AP0R2_EL2) | 158 | CPUIF_MAP(ICH_AP0R2, ICH_AP0R2_EL2) |
| @@ -245,6 +246,21 @@ static inline void gic_write_bpr1(u32 val) | |||
| 245 | write_sysreg(val, ICC_BPR1); | 246 | write_sysreg(val, ICC_BPR1); |
| 246 | } | 247 | } |
| 247 | 248 | ||
| 249 | static inline u32 gic_read_pmr(void) | ||
| 250 | { | ||
| 251 | return read_sysreg(ICC_PMR); | ||
| 252 | } | ||
| 253 | |||
| 254 | static inline void gic_write_pmr(u32 val) | ||
| 255 | { | ||
| 256 | write_sysreg(val, ICC_PMR); | ||
| 257 | } | ||
| 258 | |||
| 259 | static inline u32 gic_read_rpr(void) | ||
| 260 | { | ||
| 261 | return read_sysreg(ICC_RPR); | ||
| 262 | } | ||
| 263 | |||
| 248 | /* | 264 | /* |
| 249 | * Even in 32bit systems that use LPAE, there is no guarantee that the I/O | 265 | * Even in 32bit systems that use LPAE, there is no guarantee that the I/O |
| 250 | * interface provides true 64bit atomic accesses, so using strd/ldrd doesn't | 266 | * interface provides true 64bit atomic accesses, so using strd/ldrd doesn't |
| @@ -347,5 +363,22 @@ static inline void gits_write_vpendbaser(u64 val, void * __iomem addr) | |||
| 347 | 363 | ||
| 348 | #define gits_read_vpendbaser(c) __gic_readq_nonatomic(c) | 364 | #define gits_read_vpendbaser(c) __gic_readq_nonatomic(c) |
| 349 | 365 | ||
| 366 | static inline bool gic_prio_masking_enabled(void) | ||
| 367 | { | ||
| 368 | return false; | ||
| 369 | } | ||
| 370 | |||
| 371 | static inline void gic_pmr_mask_irqs(void) | ||
| 372 | { | ||
| 373 | /* Should not get called. */ | ||
| 374 | WARN_ON_ONCE(true); | ||
| 375 | } | ||
| 376 | |||
| 377 | static inline void gic_arch_enable_irqs(void) | ||
| 378 | { | ||
| 379 | /* Should not get called. */ | ||
| 380 | WARN_ON_ONCE(true); | ||
| 381 | } | ||
| 382 | |||
| 350 | #endif /* !__ASSEMBLY__ */ | 383 | #endif /* !__ASSEMBLY__ */ |
| 351 | #endif /* !__ASM_ARCH_GICV3_H */ | 384 | #endif /* !__ASM_ARCH_GICV3_H */ |
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 28a48e0d4cca..b59921a560da 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h | |||
| @@ -376,9 +376,9 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) | |||
| 376 | .macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=TUSER() | 376 | .macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=TUSER() |
| 377 | 9999: | 377 | 9999: |
| 378 | .if \inc == 1 | 378 | .if \inc == 1 |
| 379 | \instr\cond\()b\()\t\().w \reg, [\ptr, #\off] | 379 | \instr\()b\t\cond\().w \reg, [\ptr, #\off] |
| 380 | .elseif \inc == 4 | 380 | .elseif \inc == 4 |
| 381 | \instr\cond\()\t\().w \reg, [\ptr, #\off] | 381 | \instr\t\cond\().w \reg, [\ptr, #\off] |
| 382 | .else | 382 | .else |
| 383 | .error "Unsupported inc macro argument" | 383 | .error "Unsupported inc macro argument" |
| 384 | .endif | 384 | .endif |
| @@ -417,9 +417,9 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) | |||
| 417 | .rept \rept | 417 | .rept \rept |
| 418 | 9999: | 418 | 9999: |
| 419 | .if \inc == 1 | 419 | .if \inc == 1 |
| 420 | \instr\cond\()b\()\t \reg, [\ptr], #\inc | 420 | \instr\()b\t\cond \reg, [\ptr], #\inc |
| 421 | .elseif \inc == 4 | 421 | .elseif \inc == 4 |
| 422 | \instr\cond\()\t \reg, [\ptr], #\inc | 422 | \instr\t\cond \reg, [\ptr], #\inc |
| 423 | .else | 423 | .else |
| 424 | .error "Unsupported inc macro argument" | 424 | .error "Unsupported inc macro argument" |
| 425 | .endif | 425 | .endif |
| @@ -460,7 +460,7 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) | |||
| 460 | .macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req | 460 | .macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req |
| 461 | #ifndef CONFIG_CPU_USE_DOMAINS | 461 | #ifndef CONFIG_CPU_USE_DOMAINS |
| 462 | adds \tmp, \addr, #\size - 1 | 462 | adds \tmp, \addr, #\size - 1 |
| 463 | sbcccs \tmp, \tmp, \limit | 463 | sbcscc \tmp, \tmp, \limit |
| 464 | bcs \bad | 464 | bcs \bad |
| 465 | #ifdef CONFIG_CPU_SPECTRE | 465 | #ifdef CONFIG_CPU_SPECTRE |
| 466 | movcs \addr, #0 | 466 | movcs \addr, #0 |
| @@ -474,7 +474,7 @@ THUMB( orr \reg , \reg , #PSR_T_BIT ) | |||
| 474 | sub \tmp, \limit, #1 | 474 | sub \tmp, \limit, #1 |
| 475 | subs \tmp, \tmp, \addr @ tmp = limit - 1 - addr | 475 | subs \tmp, \tmp, \addr @ tmp = limit - 1 - addr |
| 476 | addhs \tmp, \tmp, #1 @ if (tmp >= 0) { | 476 | addhs \tmp, \tmp, #1 @ if (tmp >= 0) { |
| 477 | subhss \tmp, \tmp, \size @ tmp = limit - (addr + size) } | 477 | subshs \tmp, \tmp, \size @ tmp = limit - (addr + size) } |
| 478 | movlo \addr, #0 @ if (tmp < 0) addr = NULL | 478 | movlo \addr, #0 @ if (tmp < 0) addr = NULL |
| 479 | csdb | 479 | csdb |
| 480 | #endif | 480 | #endif |
diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h index 69772e742a0a..83ae97c049d9 100644 --- a/arch/arm/include/asm/barrier.h +++ b/arch/arm/include/asm/barrier.h | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | #define sev() __asm__ __volatile__ ("sev" : : : "memory") | 11 | #define sev() __asm__ __volatile__ ("sev" : : : "memory") |
| 12 | #define wfe() __asm__ __volatile__ ("wfe" : : : "memory") | 12 | #define wfe() __asm__ __volatile__ ("wfe" : : : "memory") |
| 13 | #define wfi() __asm__ __volatile__ ("wfi" : : : "memory") | 13 | #define wfi() __asm__ __volatile__ ("wfi" : : : "memory") |
| 14 | #else | ||
| 15 | #define wfe() do { } while (0) | ||
| 14 | #endif | 16 | #endif |
| 15 | 17 | ||
| 16 | #if __LINUX_ARM_ARCH__ >= 7 | 18 | #if __LINUX_ARM_ARCH__ >= 7 |
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index 31d3b96f0f4b..03ba90ffc0f8 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
| @@ -96,15 +96,6 @@ static inline unsigned long dma_max_pfn(struct device *dev) | |||
| 96 | } | 96 | } |
| 97 | #define dma_max_pfn(dev) dma_max_pfn(dev) | 97 | #define dma_max_pfn(dev) dma_max_pfn(dev) |
| 98 | 98 | ||
| 99 | #define arch_setup_dma_ops arch_setup_dma_ops | ||
| 100 | extern void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, | ||
| 101 | const struct iommu_ops *iommu, bool coherent); | ||
| 102 | |||
| 103 | #ifdef CONFIG_MMU | ||
| 104 | #define arch_teardown_dma_ops arch_teardown_dma_ops | ||
| 105 | extern void arch_teardown_dma_ops(struct device *dev); | ||
| 106 | #endif | ||
| 107 | |||
| 108 | /* do not use this function in a driver */ | 99 | /* do not use this function in a driver */ |
| 109 | static inline bool is_device_dma_coherent(struct device *dev) | 100 | static inline bool is_device_dma_coherent(struct device *dev) |
| 110 | { | 101 | { |
diff --git a/arch/arm/include/asm/hardware/entry-macro-iomd.S b/arch/arm/include/asm/hardware/entry-macro-iomd.S index 8c215acd9b57..f7692731e514 100644 --- a/arch/arm/include/asm/hardware/entry-macro-iomd.S +++ b/arch/arm/include/asm/hardware/entry-macro-iomd.S | |||
| @@ -16,25 +16,25 @@ | |||
| 16 | ldr \tmp, =irq_prio_h | 16 | ldr \tmp, =irq_prio_h |
| 17 | teq \irqstat, #0 | 17 | teq \irqstat, #0 |
| 18 | #ifdef IOMD_BASE | 18 | #ifdef IOMD_BASE |
| 19 | ldreqb \irqstat, [\base, #IOMD_DMAREQ] @ get dma | 19 | ldrbeq \irqstat, [\base, #IOMD_DMAREQ] @ get dma |
| 20 | addeq \tmp, \tmp, #256 @ irq_prio_h table size | 20 | addeq \tmp, \tmp, #256 @ irq_prio_h table size |
| 21 | teqeq \irqstat, #0 | 21 | teqeq \irqstat, #0 |
| 22 | bne 2406f | 22 | bne 2406f |
| 23 | #endif | 23 | #endif |
| 24 | ldreqb \irqstat, [\base, #IOMD_IRQREQA] @ get low priority | 24 | ldrbeq \irqstat, [\base, #IOMD_IRQREQA] @ get low priority |
| 25 | addeq \tmp, \tmp, #256 @ irq_prio_d table size | 25 | addeq \tmp, \tmp, #256 @ irq_prio_d table size |
| 26 | teqeq \irqstat, #0 | 26 | teqeq \irqstat, #0 |
| 27 | #ifdef IOMD_IRQREQC | 27 | #ifdef IOMD_IRQREQC |
| 28 | ldreqb \irqstat, [\base, #IOMD_IRQREQC] | 28 | ldrbeq \irqstat, [\base, #IOMD_IRQREQC] |
| 29 | addeq \tmp, \tmp, #256 @ irq_prio_l table size | 29 | addeq \tmp, \tmp, #256 @ irq_prio_l table size |
| 30 | teqeq \irqstat, #0 | 30 | teqeq \irqstat, #0 |
| 31 | #endif | 31 | #endif |
| 32 | #ifdef IOMD_IRQREQD | 32 | #ifdef IOMD_IRQREQD |
| 33 | ldreqb \irqstat, [\base, #IOMD_IRQREQD] | 33 | ldrbeq \irqstat, [\base, #IOMD_IRQREQD] |
| 34 | addeq \tmp, \tmp, #256 @ irq_prio_lc table size | 34 | addeq \tmp, \tmp, #256 @ irq_prio_lc table size |
| 35 | teqeq \irqstat, #0 | 35 | teqeq \irqstat, #0 |
| 36 | #endif | 36 | #endif |
| 37 | 2406: ldrneb \irqnr, [\tmp, \irqstat] @ get IRQ number | 37 | 2406: ldrbne \irqnr, [\tmp, \irqstat] @ get IRQ number |
| 38 | .endm | 38 | .endm |
| 39 | 39 | ||
| 40 | /* | 40 | /* |
diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h index c883fcbe93b6..46d41140df27 100644 --- a/arch/arm/include/asm/irq.h +++ b/arch/arm/include/asm/irq.h | |||
| @@ -25,7 +25,6 @@ | |||
| 25 | #ifndef __ASSEMBLY__ | 25 | #ifndef __ASSEMBLY__ |
| 26 | struct irqaction; | 26 | struct irqaction; |
| 27 | struct pt_regs; | 27 | struct pt_regs; |
| 28 | extern void migrate_irqs(void); | ||
| 29 | 28 | ||
| 30 | extern void asm_do_IRQ(unsigned int, struct pt_regs *); | 29 | extern void asm_do_IRQ(unsigned int, struct pt_regs *); |
| 31 | void handle_IRQ(unsigned int, struct pt_regs *); | 30 | void handle_IRQ(unsigned int, struct pt_regs *); |
diff --git a/arch/arm/include/asm/kvm_emulate.h b/arch/arm/include/asm/kvm_emulate.h index 77121b713bef..8927cae7c966 100644 --- a/arch/arm/include/asm/kvm_emulate.h +++ b/arch/arm/include/asm/kvm_emulate.h | |||
| @@ -265,6 +265,14 @@ static inline bool kvm_vcpu_dabt_isextabt(struct kvm_vcpu *vcpu) | |||
| 265 | } | 265 | } |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | static inline bool kvm_is_write_fault(struct kvm_vcpu *vcpu) | ||
| 269 | { | ||
| 270 | if (kvm_vcpu_trap_is_iabt(vcpu)) | ||
| 271 | return false; | ||
| 272 | |||
| 273 | return kvm_vcpu_dabt_iswrite(vcpu); | ||
| 274 | } | ||
| 275 | |||
| 268 | static inline u32 kvm_vcpu_hvc_get_imm(struct kvm_vcpu *vcpu) | 276 | static inline u32 kvm_vcpu_hvc_get_imm(struct kvm_vcpu *vcpu) |
| 269 | { | 277 | { |
| 270 | return kvm_vcpu_get_hsr(vcpu) & HSR_HVC_IMM_MASK; | 278 | return kvm_vcpu_get_hsr(vcpu) & HSR_HVC_IMM_MASK; |
diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h index ca56537b61bc..770d73257ad9 100644 --- a/arch/arm/include/asm/kvm_host.h +++ b/arch/arm/include/asm/kvm_host.h | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <asm/kvm_asm.h> | 26 | #include <asm/kvm_asm.h> |
| 27 | #include <asm/kvm_mmio.h> | 27 | #include <asm/kvm_mmio.h> |
| 28 | #include <asm/fpstate.h> | 28 | #include <asm/fpstate.h> |
| 29 | #include <asm/smp_plat.h> | ||
| 29 | #include <kvm/arm_arch_timer.h> | 30 | #include <kvm/arm_arch_timer.h> |
| 30 | 31 | ||
| 31 | #define __KVM_HAVE_ARCH_INTC_INITIALIZED | 32 | #define __KVM_HAVE_ARCH_INTC_INITIALIZED |
| @@ -48,6 +49,7 @@ | |||
| 48 | #define KVM_REQ_SLEEP \ | 49 | #define KVM_REQ_SLEEP \ |
| 49 | KVM_ARCH_REQ_FLAGS(0, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) | 50 | KVM_ARCH_REQ_FLAGS(0, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) |
| 50 | #define KVM_REQ_IRQ_PENDING KVM_ARCH_REQ(1) | 51 | #define KVM_REQ_IRQ_PENDING KVM_ARCH_REQ(1) |
| 52 | #define KVM_REQ_VCPU_RESET KVM_ARCH_REQ(2) | ||
| 51 | 53 | ||
| 52 | DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use); | 54 | DECLARE_STATIC_KEY_FALSE(userspace_irqchip_in_use); |
| 53 | 55 | ||
| @@ -56,10 +58,13 @@ int __attribute_const__ kvm_target_cpu(void); | |||
| 56 | int kvm_reset_vcpu(struct kvm_vcpu *vcpu); | 58 | int kvm_reset_vcpu(struct kvm_vcpu *vcpu); |
| 57 | void kvm_reset_coprocs(struct kvm_vcpu *vcpu); | 59 | void kvm_reset_coprocs(struct kvm_vcpu *vcpu); |
| 58 | 60 | ||
| 59 | struct kvm_arch { | 61 | struct kvm_vmid { |
| 60 | /* VTTBR value associated with below pgd and vmid */ | 62 | /* The VMID generation used for the virt. memory system */ |
| 61 | u64 vttbr; | 63 | u64 vmid_gen; |
| 64 | u32 vmid; | ||
| 65 | }; | ||
| 62 | 66 | ||
| 67 | struct kvm_arch { | ||
| 63 | /* The last vcpu id that ran on each physical CPU */ | 68 | /* The last vcpu id that ran on each physical CPU */ |
| 64 | int __percpu *last_vcpu_ran; | 69 | int __percpu *last_vcpu_ran; |
| 65 | 70 | ||
| @@ -69,11 +74,11 @@ struct kvm_arch { | |||
| 69 | */ | 74 | */ |
| 70 | 75 | ||
| 71 | /* The VMID generation used for the virt. memory system */ | 76 | /* The VMID generation used for the virt. memory system */ |
| 72 | u64 vmid_gen; | 77 | struct kvm_vmid vmid; |
| 73 | u32 vmid; | ||
| 74 | 78 | ||
| 75 | /* Stage-2 page table */ | 79 | /* Stage-2 page table */ |
| 76 | pgd_t *pgd; | 80 | pgd_t *pgd; |
| 81 | phys_addr_t pgd_phys; | ||
| 77 | 82 | ||
| 78 | /* Interrupt controller */ | 83 | /* Interrupt controller */ |
| 79 | struct vgic_dist vgic; | 84 | struct vgic_dist vgic; |
| @@ -147,6 +152,20 @@ struct kvm_cpu_context { | |||
| 147 | 152 | ||
| 148 | typedef struct kvm_cpu_context kvm_cpu_context_t; | 153 | typedef struct kvm_cpu_context kvm_cpu_context_t; |
| 149 | 154 | ||
| 155 | static inline void kvm_init_host_cpu_context(kvm_cpu_context_t *cpu_ctxt, | ||
| 156 | int cpu) | ||
| 157 | { | ||
| 158 | /* The host's MPIDR is immutable, so let's set it up at boot time */ | ||
| 159 | cpu_ctxt->cp15[c0_MPIDR] = cpu_logical_map(cpu); | ||
| 160 | } | ||
| 161 | |||
| 162 | struct vcpu_reset_state { | ||
| 163 | unsigned long pc; | ||
| 164 | unsigned long r0; | ||
| 165 | bool be; | ||
| 166 | bool reset; | ||
| 167 | }; | ||
| 168 | |||
| 150 | struct kvm_vcpu_arch { | 169 | struct kvm_vcpu_arch { |
| 151 | struct kvm_cpu_context ctxt; | 170 | struct kvm_cpu_context ctxt; |
| 152 | 171 | ||
| @@ -186,6 +205,8 @@ struct kvm_vcpu_arch { | |||
| 186 | /* Cache some mmu pages needed inside spinlock regions */ | 205 | /* Cache some mmu pages needed inside spinlock regions */ |
| 187 | struct kvm_mmu_memory_cache mmu_page_cache; | 206 | struct kvm_mmu_memory_cache mmu_page_cache; |
| 188 | 207 | ||
| 208 | struct vcpu_reset_state reset_state; | ||
| 209 | |||
| 189 | /* Detect first run of a vcpu */ | 210 | /* Detect first run of a vcpu */ |
| 190 | bool has_run_once; | 211 | bool has_run_once; |
| 191 | }; | 212 | }; |
| @@ -214,7 +235,35 @@ unsigned long kvm_arm_num_regs(struct kvm_vcpu *vcpu); | |||
| 214 | int kvm_arm_copy_reg_indices(struct kvm_vcpu *vcpu, u64 __user *indices); | 235 | int kvm_arm_copy_reg_indices(struct kvm_vcpu *vcpu, u64 __user *indices); |
| 215 | int kvm_arm_get_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg); | 236 | int kvm_arm_get_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg); |
| 216 | int kvm_arm_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg); | 237 | int kvm_arm_set_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg); |
| 217 | unsigned long kvm_call_hyp(void *hypfn, ...); | 238 | |
| 239 | unsigned long __kvm_call_hyp(void *hypfn, ...); | ||
| 240 | |||
| 241 | /* | ||
| 242 | * The has_vhe() part doesn't get emitted, but is used for type-checking. | ||
| 243 | */ | ||
| 244 | #define kvm_call_hyp(f, ...) \ | ||
| 245 | do { \ | ||
| 246 | if (has_vhe()) { \ | ||
| 247 | f(__VA_ARGS__); \ | ||
| 248 | } else { \ | ||
| 249 | __kvm_call_hyp(kvm_ksym_ref(f), ##__VA_ARGS__); \ | ||
| 250 | } \ | ||
| 251 | } while(0) | ||
| 252 | |||
| 253 | #define kvm_call_hyp_ret(f, ...) \ | ||
| 254 | ({ \ | ||
| 255 | typeof(f(__VA_ARGS__)) ret; \ | ||
| 256 | \ | ||
| 257 | if (has_vhe()) { \ | ||
| 258 | ret = f(__VA_ARGS__); \ | ||
| 259 | } else { \ | ||
| 260 | ret = __kvm_call_hyp(kvm_ksym_ref(f), \ | ||
| 261 | ##__VA_ARGS__); \ | ||
| 262 | } \ | ||
| 263 | \ | ||
| 264 | ret; \ | ||
| 265 | }) | ||
| 266 | |||
| 218 | void force_vm_exit(const cpumask_t *mask); | 267 | void force_vm_exit(const cpumask_t *mask); |
| 219 | int __kvm_arm_vcpu_get_events(struct kvm_vcpu *vcpu, | 268 | int __kvm_arm_vcpu_get_events(struct kvm_vcpu *vcpu, |
| 220 | struct kvm_vcpu_events *events); | 269 | struct kvm_vcpu_events *events); |
| @@ -265,7 +314,7 @@ static inline void __cpu_init_hyp_mode(phys_addr_t pgd_ptr, | |||
| 265 | * compliant with the PCS!). | 314 | * compliant with the PCS!). |
| 266 | */ | 315 | */ |
| 267 | 316 | ||
| 268 | kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr); | 317 | __kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr); |
| 269 | } | 318 | } |
| 270 | 319 | ||
| 271 | static inline void __cpu_init_stage2(void) | 320 | static inline void __cpu_init_stage2(void) |
diff --git a/arch/arm/include/asm/kvm_hyp.h b/arch/arm/include/asm/kvm_hyp.h index e93a0cac9add..87bcd18df8d5 100644 --- a/arch/arm/include/asm/kvm_hyp.h +++ b/arch/arm/include/asm/kvm_hyp.h | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | #define TTBR1 __ACCESS_CP15_64(1, c2) | 40 | #define TTBR1 __ACCESS_CP15_64(1, c2) |
| 41 | #define VTTBR __ACCESS_CP15_64(6, c2) | 41 | #define VTTBR __ACCESS_CP15_64(6, c2) |
| 42 | #define PAR __ACCESS_CP15_64(0, c7) | 42 | #define PAR __ACCESS_CP15_64(0, c7) |
| 43 | #define CNTP_CVAL __ACCESS_CP15_64(2, c14) | ||
| 43 | #define CNTV_CVAL __ACCESS_CP15_64(3, c14) | 44 | #define CNTV_CVAL __ACCESS_CP15_64(3, c14) |
| 44 | #define CNTVOFF __ACCESS_CP15_64(4, c14) | 45 | #define CNTVOFF __ACCESS_CP15_64(4, c14) |
| 45 | 46 | ||
| @@ -85,6 +86,7 @@ | |||
| 85 | #define TID_PRIV __ACCESS_CP15(c13, 0, c0, 4) | 86 | #define TID_PRIV __ACCESS_CP15(c13, 0, c0, 4) |
| 86 | #define HTPIDR __ACCESS_CP15(c13, 4, c0, 2) | 87 | #define HTPIDR __ACCESS_CP15(c13, 4, c0, 2) |
| 87 | #define CNTKCTL __ACCESS_CP15(c14, 0, c1, 0) | 88 | #define CNTKCTL __ACCESS_CP15(c14, 0, c1, 0) |
| 89 | #define CNTP_CTL __ACCESS_CP15(c14, 0, c2, 1) | ||
| 88 | #define CNTV_CTL __ACCESS_CP15(c14, 0, c3, 1) | 90 | #define CNTV_CTL __ACCESS_CP15(c14, 0, c3, 1) |
| 89 | #define CNTHCTL __ACCESS_CP15(c14, 4, c1, 0) | 91 | #define CNTHCTL __ACCESS_CP15(c14, 4, c1, 0) |
| 90 | 92 | ||
| @@ -94,6 +96,8 @@ | |||
| 94 | #define read_sysreg_el0(r) read_sysreg(r##_el0) | 96 | #define read_sysreg_el0(r) read_sysreg(r##_el0) |
| 95 | #define write_sysreg_el0(v, r) write_sysreg(v, r##_el0) | 97 | #define write_sysreg_el0(v, r) write_sysreg(v, r##_el0) |
| 96 | 98 | ||
| 99 | #define cntp_ctl_el0 CNTP_CTL | ||
| 100 | #define cntp_cval_el0 CNTP_CVAL | ||
| 97 | #define cntv_ctl_el0 CNTV_CTL | 101 | #define cntv_ctl_el0 CNTV_CTL |
| 98 | #define cntv_cval_el0 CNTV_CVAL | 102 | #define cntv_cval_el0 CNTV_CVAL |
| 99 | #define cntvoff_el2 CNTVOFF | 103 | #define cntvoff_el2 CNTVOFF |
diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h index 3a875fc1b63c..2de96a180166 100644 --- a/arch/arm/include/asm/kvm_mmu.h +++ b/arch/arm/include/asm/kvm_mmu.h | |||
| @@ -421,9 +421,14 @@ static inline int hyp_map_aux_data(void) | |||
| 421 | 421 | ||
| 422 | static inline void kvm_set_ipa_limit(void) {} | 422 | static inline void kvm_set_ipa_limit(void) {} |
| 423 | 423 | ||
| 424 | static inline bool kvm_cpu_has_cnp(void) | 424 | static __always_inline u64 kvm_get_vttbr(struct kvm *kvm) |
| 425 | { | 425 | { |
| 426 | return false; | 426 | struct kvm_vmid *vmid = &kvm->arch.vmid; |
| 427 | u64 vmid_field, baddr; | ||
| 428 | |||
| 429 | baddr = kvm->arch.pgd_phys; | ||
| 430 | vmid_field = (u64)vmid->vmid << VTTBR_VMID_SHIFT; | ||
| 431 | return kvm_phys_to_vttbr(baddr) | vmid_field; | ||
| 427 | } | 432 | } |
| 428 | 433 | ||
| 429 | #endif /* !__ASSEMBLY__ */ | 434 | #endif /* !__ASSEMBLY__ */ |
diff --git a/arch/arm/include/asm/kvm_ras.h b/arch/arm/include/asm/kvm_ras.h new file mode 100644 index 000000000000..e9577292dfe4 --- /dev/null +++ b/arch/arm/include/asm/kvm_ras.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
| 2 | /* Copyright (C) 2018 - Arm Ltd */ | ||
| 3 | |||
| 4 | #ifndef __ARM_KVM_RAS_H__ | ||
| 5 | #define __ARM_KVM_RAS_H__ | ||
| 6 | |||
| 7 | #include <linux/types.h> | ||
| 8 | |||
| 9 | static inline int kvm_handle_guest_sea(phys_addr_t addr, unsigned int esr) | ||
| 10 | { | ||
| 11 | return -1; | ||
| 12 | } | ||
| 13 | |||
| 14 | #endif /* __ARM_KVM_RAS_H__ */ | ||
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index a757401129f9..48ce1b19069b 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
| @@ -125,6 +125,9 @@ extern pgprot_t pgprot_s2_device; | |||
| 125 | #define pgprot_stronglyordered(prot) \ | 125 | #define pgprot_stronglyordered(prot) \ |
| 126 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED) | 126 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED) |
| 127 | 127 | ||
| 128 | #define pgprot_device(prot) \ | ||
| 129 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_DEV_SHARED | L_PTE_SHARED | L_PTE_DIRTY | L_PTE_XN) | ||
| 130 | |||
| 128 | #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE | 131 | #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE |
| 129 | #define pgprot_dmacoherent(prot) \ | 132 | #define pgprot_dmacoherent(prot) \ |
| 130 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE | L_PTE_XN) | 133 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE | L_PTE_XN) |
diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h index 120f4c9bbfde..57fe73ea0f72 100644 --- a/arch/arm/include/asm/processor.h +++ b/arch/arm/include/asm/processor.h | |||
| @@ -89,7 +89,11 @@ extern void release_thread(struct task_struct *); | |||
| 89 | unsigned long get_wchan(struct task_struct *p); | 89 | unsigned long get_wchan(struct task_struct *p); |
| 90 | 90 | ||
| 91 | #if __LINUX_ARM_ARCH__ == 6 || defined(CONFIG_ARM_ERRATA_754327) | 91 | #if __LINUX_ARM_ARCH__ == 6 || defined(CONFIG_ARM_ERRATA_754327) |
| 92 | #define cpu_relax() smp_mb() | 92 | #define cpu_relax() \ |
| 93 | do { \ | ||
| 94 | smp_mb(); \ | ||
| 95 | __asm__ __volatile__("nop; nop; nop; nop; nop; nop; nop; nop; nop; nop;"); \ | ||
| 96 | } while (0) | ||
| 93 | #else | 97 | #else |
| 94 | #define cpu_relax() barrier() | 98 | #define cpu_relax() barrier() |
| 95 | #endif | 99 | #endif |
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h index 709a55989cb0..451ae684aaf4 100644 --- a/arch/arm/include/asm/smp.h +++ b/arch/arm/include/asm/smp.h | |||
| @@ -67,7 +67,6 @@ struct secondary_data { | |||
| 67 | void *stack; | 67 | void *stack; |
| 68 | }; | 68 | }; |
| 69 | extern struct secondary_data secondary_data; | 69 | extern struct secondary_data secondary_data; |
| 70 | extern volatile int pen_release; | ||
| 71 | extern void secondary_startup(void); | 70 | extern void secondary_startup(void); |
| 72 | extern void secondary_startup_arm(void); | 71 | extern void secondary_startup_arm(void); |
| 73 | 72 | ||
diff --git a/arch/arm/include/asm/smp_twd.h b/arch/arm/include/asm/smp_twd.h index 312784ee9936..c729d2113a24 100644 --- a/arch/arm/include/asm/smp_twd.h +++ b/arch/arm/include/asm/smp_twd.h | |||
| @@ -19,20 +19,4 @@ | |||
| 19 | #define TWD_TIMER_CONTROL_PERIODIC (1 << 1) | 19 | #define TWD_TIMER_CONTROL_PERIODIC (1 << 1) |
| 20 | #define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2) | 20 | #define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2) |
| 21 | 21 | ||
| 22 | #include <linux/ioport.h> | ||
| 23 | |||
| 24 | struct twd_local_timer { | ||
| 25 | struct resource res[2]; | ||
| 26 | }; | ||
| 27 | |||
| 28 | #define DEFINE_TWD_LOCAL_TIMER(name,base,irq) \ | ||
| 29 | struct twd_local_timer name __initdata = { \ | ||
| 30 | .res = { \ | ||
| 31 | DEFINE_RES_MEM(base, 0x10), \ | ||
| 32 | DEFINE_RES_IRQ(irq), \ | ||
| 33 | }, \ | ||
| 34 | }; | ||
| 35 | |||
| 36 | int twd_local_timer_register(struct twd_local_timer *); | ||
| 37 | |||
| 38 | #endif | 22 | #endif |
diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h index 099c78fcf62d..8f009e788ad4 100644 --- a/arch/arm/include/asm/spinlock.h +++ b/arch/arm/include/asm/spinlock.h | |||
| @@ -210,11 +210,12 @@ static inline void arch_read_lock(arch_rwlock_t *rw) | |||
| 210 | 210 | ||
| 211 | prefetchw(&rw->lock); | 211 | prefetchw(&rw->lock); |
| 212 | __asm__ __volatile__( | 212 | __asm__ __volatile__( |
| 213 | " .syntax unified\n" | ||
| 213 | "1: ldrex %0, [%2]\n" | 214 | "1: ldrex %0, [%2]\n" |
| 214 | " adds %0, %0, #1\n" | 215 | " adds %0, %0, #1\n" |
| 215 | " strexpl %1, %0, [%2]\n" | 216 | " strexpl %1, %0, [%2]\n" |
| 216 | WFE("mi") | 217 | WFE("mi") |
| 217 | " rsbpls %0, %1, #0\n" | 218 | " rsbspl %0, %1, #0\n" |
| 218 | " bmi 1b" | 219 | " bmi 1b" |
| 219 | : "=&r" (tmp), "=&r" (tmp2) | 220 | : "=&r" (tmp), "=&r" (tmp2) |
| 220 | : "r" (&rw->lock) | 221 | : "r" (&rw->lock) |
diff --git a/arch/arm/include/asm/stage2_pgtable.h b/arch/arm/include/asm/stage2_pgtable.h index c4b1d4fb1797..de2089501b8b 100644 --- a/arch/arm/include/asm/stage2_pgtable.h +++ b/arch/arm/include/asm/stage2_pgtable.h | |||
| @@ -76,4 +76,9 @@ static inline bool kvm_stage2_has_pud(struct kvm *kvm) | |||
| 76 | #define S2_PMD_MASK PMD_MASK | 76 | #define S2_PMD_MASK PMD_MASK |
| 77 | #define S2_PMD_SIZE PMD_SIZE | 77 | #define S2_PMD_SIZE PMD_SIZE |
| 78 | 78 | ||
| 79 | static inline bool kvm_stage2_has_pmd(struct kvm *kvm) | ||
| 80 | { | ||
| 81 | return true; | ||
| 82 | } | ||
| 83 | |||
| 79 | #endif /* __ARM_S2_PGTABLE_H_ */ | 84 | #endif /* __ARM_S2_PGTABLE_H_ */ |
diff --git a/arch/arm/include/asm/suspend.h b/arch/arm/include/asm/suspend.h index 452bbdcbcc83..506314265c6f 100644 --- a/arch/arm/include/asm/suspend.h +++ b/arch/arm/include/asm/suspend.h | |||
| @@ -10,6 +10,7 @@ struct sleep_save_sp { | |||
| 10 | }; | 10 | }; |
| 11 | 11 | ||
| 12 | extern void cpu_resume(void); | 12 | extern void cpu_resume(void); |
| 13 | extern void cpu_resume_no_hyp(void); | ||
| 13 | extern void cpu_resume_arm(void); | 14 | extern void cpu_resume_arm(void); |
| 14 | extern int cpu_suspend(unsigned long, int (*)(unsigned long)); | 15 | extern int cpu_suspend(unsigned long, int (*)(unsigned long)); |
| 15 | 16 | ||
diff --git a/arch/arm/include/asm/system_misc.h b/arch/arm/include/asm/system_misc.h index 8e76db83c498..66f6a3ae68d2 100644 --- a/arch/arm/include/asm/system_misc.h +++ b/arch/arm/include/asm/system_misc.h | |||
| @@ -38,11 +38,6 @@ static inline void harden_branch_predictor(void) | |||
| 38 | 38 | ||
| 39 | extern unsigned int user_debug; | 39 | extern unsigned int user_debug; |
| 40 | 40 | ||
| 41 | static inline int handle_guest_sea(phys_addr_t addr, unsigned int esr) | ||
| 42 | { | ||
| 43 | return -1; | ||
| 44 | } | ||
| 45 | |||
| 46 | #endif /* !__ASSEMBLY__ */ | 41 | #endif /* !__ASSEMBLY__ */ |
| 47 | 42 | ||
| 48 | #endif /* __ASM_ARM_SYSTEM_MISC_H */ | 43 | #endif /* __ASM_ARM_SYSTEM_MISC_H */ |
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index 42aa4a22803c..dff49845eb87 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h | |||
| @@ -59,7 +59,6 @@ extern int __put_user_bad(void); | |||
| 59 | * Note that this is actually 0x1,0000,0000 | 59 | * Note that this is actually 0x1,0000,0000 |
| 60 | */ | 60 | */ |
| 61 | #define KERNEL_DS 0x00000000 | 61 | #define KERNEL_DS 0x00000000 |
| 62 | #define get_ds() (KERNEL_DS) | ||
| 63 | 62 | ||
| 64 | #ifdef CONFIG_MMU | 63 | #ifdef CONFIG_MMU |
| 65 | 64 | ||
| @@ -86,7 +85,8 @@ static inline void set_fs(mm_segment_t fs) | |||
| 86 | #define __range_ok(addr, size) ({ \ | 85 | #define __range_ok(addr, size) ({ \ |
| 87 | unsigned long flag, roksum; \ | 86 | unsigned long flag, roksum; \ |
| 88 | __chk_user_ptr(addr); \ | 87 | __chk_user_ptr(addr); \ |
| 89 | __asm__("adds %1, %2, %3; sbcccs %1, %1, %0; movcc %0, #0" \ | 88 | __asm__(".syntax unified\n" \ |
| 89 | "adds %1, %2, %3; sbcscc %1, %1, %0; movcc %0, #0" \ | ||
| 90 | : "=&r" (flag), "=&r" (roksum) \ | 90 | : "=&r" (flag), "=&r" (roksum) \ |
| 91 | : "r" (addr), "Ir" (size), "0" (current_thread_info()->addr_limit) \ | 91 | : "r" (addr), "Ir" (size), "0" (current_thread_info()->addr_limit) \ |
| 92 | : "cc"); \ | 92 | : "cc"); \ |
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index 88ef2ce1f69a..7a39e77984ef 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h | |||
| @@ -26,10 +26,10 @@ | |||
| 26 | #define __ARCH_WANT_SYS_SIGPROCMASK | 26 | #define __ARCH_WANT_SYS_SIGPROCMASK |
| 27 | #define __ARCH_WANT_SYS_OLD_MMAP | 27 | #define __ARCH_WANT_SYS_OLD_MMAP |
| 28 | #define __ARCH_WANT_SYS_OLD_SELECT | 28 | #define __ARCH_WANT_SYS_OLD_SELECT |
| 29 | #define __ARCH_WANT_SYS_UTIME | 29 | #define __ARCH_WANT_SYS_UTIME32 |
| 30 | 30 | ||
| 31 | #if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT) | 31 | #if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT) |
| 32 | #define __ARCH_WANT_SYS_TIME | 32 | #define __ARCH_WANT_SYS_TIME32 |
| 33 | #define __ARCH_WANT_SYS_IPC | 33 | #define __ARCH_WANT_SYS_IPC |
| 34 | #define __ARCH_WANT_SYS_OLDUMOUNT | 34 | #define __ARCH_WANT_SYS_OLDUMOUNT |
| 35 | #define __ARCH_WANT_SYS_ALARM | 35 | #define __ARCH_WANT_SYS_ALARM |
| @@ -45,7 +45,6 @@ | |||
| 45 | * Unimplemented (or alternatively implemented) syscalls | 45 | * Unimplemented (or alternatively implemented) syscalls |
| 46 | */ | 46 | */ |
| 47 | #define __IGNORE_fadvise64_64 | 47 | #define __IGNORE_fadvise64_64 |
| 48 | #define __IGNORE_migrate_pages | ||
| 49 | 48 | ||
| 50 | #ifdef __ARM_EABI__ | 49 | #ifdef __ARM_EABI__ |
| 51 | /* | 50 | /* |
diff --git a/arch/arm/include/asm/v7m.h b/arch/arm/include/asm/v7m.h index 187ccf6496ad..2cb00d15831b 100644 --- a/arch/arm/include/asm/v7m.h +++ b/arch/arm/include/asm/v7m.h | |||
| @@ -49,7 +49,7 @@ | |||
| 49 | * (0 -> msp; 1 -> psp). Bits [1:0] are fixed to 0b01. | 49 | * (0 -> msp; 1 -> psp). Bits [1:0] are fixed to 0b01. |
| 50 | */ | 50 | */ |
| 51 | #define EXC_RET_STACK_MASK 0x00000004 | 51 | #define EXC_RET_STACK_MASK 0x00000004 |
| 52 | #define EXC_RET_THREADMODE_PROCESSSTACK 0xfffffffd | 52 | #define EXC_RET_THREADMODE_PROCESSSTACK (3 << 2) |
| 53 | 53 | ||
| 54 | /* Cache related definitions */ | 54 | /* Cache related definitions */ |
| 55 | 55 | ||
diff --git a/arch/arm/include/asm/vfpmacros.h b/arch/arm/include/asm/vfpmacros.h index ef5dfedacd8d..628c336e8e3b 100644 --- a/arch/arm/include/asm/vfpmacros.h +++ b/arch/arm/include/asm/vfpmacros.h | |||
| @@ -29,13 +29,13 @@ | |||
| 29 | ldr \tmp, =elf_hwcap @ may not have MVFR regs | 29 | ldr \tmp, =elf_hwcap @ may not have MVFR regs |
| 30 | ldr \tmp, [\tmp, #0] | 30 | ldr \tmp, [\tmp, #0] |
| 31 | tst \tmp, #HWCAP_VFPD32 | 31 | tst \tmp, #HWCAP_VFPD32 |
| 32 | ldcnel p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31} | 32 | ldclne p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31} |
| 33 | addeq \base, \base, #32*4 @ step over unused register space | 33 | addeq \base, \base, #32*4 @ step over unused register space |
| 34 | #else | 34 | #else |
| 35 | VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0 | 35 | VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0 |
| 36 | and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field | 36 | and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field |
| 37 | cmp \tmp, #2 @ 32 x 64bit registers? | 37 | cmp \tmp, #2 @ 32 x 64bit registers? |
| 38 | ldceql p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31} | 38 | ldcleq p11, cr0, [\base],#32*4 @ FLDMIAD \base!, {d16-d31} |
| 39 | addne \base, \base, #32*4 @ step over unused register space | 39 | addne \base, \base, #32*4 @ step over unused register space |
| 40 | #endif | 40 | #endif |
| 41 | #endif | 41 | #endif |
| @@ -53,13 +53,13 @@ | |||
| 53 | ldr \tmp, =elf_hwcap @ may not have MVFR regs | 53 | ldr \tmp, =elf_hwcap @ may not have MVFR regs |
| 54 | ldr \tmp, [\tmp, #0] | 54 | ldr \tmp, [\tmp, #0] |
| 55 | tst \tmp, #HWCAP_VFPD32 | 55 | tst \tmp, #HWCAP_VFPD32 |
| 56 | stcnel p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31} | 56 | stclne p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31} |
| 57 | addeq \base, \base, #32*4 @ step over unused register space | 57 | addeq \base, \base, #32*4 @ step over unused register space |
| 58 | #else | 58 | #else |
| 59 | VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0 | 59 | VFPFMRX \tmp, MVFR0 @ Media and VFP Feature Register 0 |
| 60 | and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field | 60 | and \tmp, \tmp, #MVFR0_A_SIMD_MASK @ A_SIMD field |
| 61 | cmp \tmp, #2 @ 32 x 64bit registers? | 61 | cmp \tmp, #2 @ 32 x 64bit registers? |
| 62 | stceql p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31} | 62 | stcleq p11, cr0, [\base],#32*4 @ FSTMIAD \base!, {d16-d31} |
| 63 | addne \base, \base, #32*4 @ step over unused register space | 63 | addne \base, \base, #32*4 @ step over unused register space |
| 64 | #endif | 64 | #endif |
| 65 | #endif | 65 | #endif |
diff --git a/arch/arm/include/asm/xen/page-coherent.h b/arch/arm/include/asm/xen/page-coherent.h index b3ef061d8b74..2c403e7c782d 100644 --- a/arch/arm/include/asm/xen/page-coherent.h +++ b/arch/arm/include/asm/xen/page-coherent.h | |||
| @@ -1 +1,95 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
| 2 | #ifndef _ASM_ARM_XEN_PAGE_COHERENT_H | ||
| 3 | #define _ASM_ARM_XEN_PAGE_COHERENT_H | ||
| 4 | |||
| 5 | #include <linux/dma-mapping.h> | ||
| 6 | #include <asm/page.h> | ||
| 1 | #include <xen/arm/page-coherent.h> | 7 | #include <xen/arm/page-coherent.h> |
| 8 | |||
| 9 | static inline const struct dma_map_ops *xen_get_dma_ops(struct device *dev) | ||
| 10 | { | ||
| 11 | if (dev && dev->archdata.dev_dma_ops) | ||
| 12 | return dev->archdata.dev_dma_ops; | ||
| 13 | return get_arch_dma_ops(NULL); | ||
| 14 | } | ||
| 15 | |||
| 16 | static inline void *xen_alloc_coherent_pages(struct device *hwdev, size_t size, | ||
| 17 | dma_addr_t *dma_handle, gfp_t flags, unsigned long attrs) | ||
| 18 | { | ||
| 19 | return xen_get_dma_ops(hwdev)->alloc(hwdev, size, dma_handle, flags, attrs); | ||
| 20 | } | ||
| 21 | |||
| 22 | static inline void xen_free_coherent_pages(struct device *hwdev, size_t size, | ||
| 23 | void *cpu_addr, dma_addr_t dma_handle, unsigned long attrs) | ||
| 24 | { | ||
| 25 | xen_get_dma_ops(hwdev)->free(hwdev, size, cpu_addr, dma_handle, attrs); | ||
| 26 | } | ||
| 27 | |||
| 28 | static inline void xen_dma_map_page(struct device *hwdev, struct page *page, | ||
| 29 | dma_addr_t dev_addr, unsigned long offset, size_t size, | ||
| 30 | enum dma_data_direction dir, unsigned long attrs) | ||
| 31 | { | ||
| 32 | unsigned long page_pfn = page_to_xen_pfn(page); | ||
| 33 | unsigned long dev_pfn = XEN_PFN_DOWN(dev_addr); | ||
| 34 | unsigned long compound_pages = | ||
| 35 | (1<<compound_order(page)) * XEN_PFN_PER_PAGE; | ||
| 36 | bool local = (page_pfn <= dev_pfn) && | ||
| 37 | (dev_pfn - page_pfn < compound_pages); | ||
| 38 | |||
| 39 | /* | ||
| 40 | * Dom0 is mapped 1:1, while the Linux page can span across | ||
| 41 | * multiple Xen pages, it's not possible for it to contain a | ||
| 42 | * mix of local and foreign Xen pages. So if the first xen_pfn | ||
| 43 | * == mfn the page is local otherwise it's a foreign page | ||
| 44 | * grant-mapped in dom0. If the page is local we can safely | ||
| 45 | * call the native dma_ops function, otherwise we call the xen | ||
| 46 | * specific function. | ||
| 47 | */ | ||
| 48 | if (local) | ||
| 49 | xen_get_dma_ops(hwdev)->map_page(hwdev, page, offset, size, dir, attrs); | ||
| 50 | else | ||
| 51 | __xen_dma_map_page(hwdev, page, dev_addr, offset, size, dir, attrs); | ||
| 52 | } | ||
| 53 | |||
| 54 | static inline void xen_dma_unmap_page(struct device *hwdev, dma_addr_t handle, | ||
| 55 | size_t size, enum dma_data_direction dir, unsigned long attrs) | ||
| 56 | { | ||
| 57 | unsigned long pfn = PFN_DOWN(handle); | ||
| 58 | /* | ||
| 59 | * Dom0 is mapped 1:1, while the Linux page can be spanned accross | ||
| 60 | * multiple Xen page, it's not possible to have a mix of local and | ||
| 61 | * foreign Xen page. Dom0 is mapped 1:1, so calling pfn_valid on a | ||
| 62 | * foreign mfn will always return false. If the page is local we can | ||
| 63 | * safely call the native dma_ops function, otherwise we call the xen | ||
| 64 | * specific function. | ||
| 65 | */ | ||
| 66 | if (pfn_valid(pfn)) { | ||
| 67 | if (xen_get_dma_ops(hwdev)->unmap_page) | ||
| 68 | xen_get_dma_ops(hwdev)->unmap_page(hwdev, handle, size, dir, attrs); | ||
| 69 | } else | ||
| 70 | __xen_dma_unmap_page(hwdev, handle, size, dir, attrs); | ||
| 71 | } | ||
| 72 | |||
| 73 | static inline void xen_dma_sync_single_for_cpu(struct device *hwdev, | ||
| 74 | dma_addr_t handle, size_t size, enum dma_data_direction dir) | ||
| 75 | { | ||
| 76 | unsigned long pfn = PFN_DOWN(handle); | ||
| 77 | if (pfn_valid(pfn)) { | ||
| 78 | if (xen_get_dma_ops(hwdev)->sync_single_for_cpu) | ||
| 79 | xen_get_dma_ops(hwdev)->sync_single_for_cpu(hwdev, handle, size, dir); | ||
| 80 | } else | ||
| 81 | __xen_dma_sync_single_for_cpu(hwdev, handle, size, dir); | ||
| 82 | } | ||
| 83 | |||
| 84 | static inline void xen_dma_sync_single_for_device(struct device *hwdev, | ||
| 85 | dma_addr_t handle, size_t size, enum dma_data_direction dir) | ||
| 86 | { | ||
| 87 | unsigned long pfn = PFN_DOWN(handle); | ||
| 88 | if (pfn_valid(pfn)) { | ||
| 89 | if (xen_get_dma_ops(hwdev)->sync_single_for_device) | ||
| 90 | xen_get_dma_ops(hwdev)->sync_single_for_device(hwdev, handle, size, dir); | ||
| 91 | } else | ||
| 92 | __xen_dma_sync_single_for_device(hwdev, handle, size, dir); | ||
| 93 | } | ||
| 94 | |||
| 95 | #endif /* _ASM_ARM_XEN_PAGE_COHERENT_H */ | ||
diff --git a/arch/arm/include/debug/tegra.S b/arch/arm/include/debug/tegra.S index 3bc80599c022..4a5a645c76e2 100644 --- a/arch/arm/include/debug/tegra.S +++ b/arch/arm/include/debug/tegra.S | |||
| @@ -173,7 +173,7 @@ | |||
| 173 | 173 | ||
| 174 | .macro senduart, rd, rx | 174 | .macro senduart, rd, rx |
| 175 | cmp \rx, #0 | 175 | cmp \rx, #0 |
| 176 | strneb \rd, [\rx, #UART_TX << UART_SHIFT] | 176 | strbne \rd, [\rx, #UART_TX << UART_SHIFT] |
| 177 | 1001: | 177 | 1001: |
| 178 | .endm | 178 | .endm |
| 179 | 179 | ||
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index b795dc2408c0..b9f94e03d916 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S | |||
| @@ -86,7 +86,7 @@ hexbuf_rel: .long hexbuf_addr - . | |||
| 86 | ENTRY(printascii) | 86 | ENTRY(printascii) |
| 87 | addruart_current r3, r1, r2 | 87 | addruart_current r3, r1, r2 |
| 88 | 1: teq r0, #0 | 88 | 1: teq r0, #0 |
| 89 | ldrneb r1, [r0], #1 | 89 | ldrbne r1, [r0], #1 |
| 90 | teqne r1, #0 | 90 | teqne r1, #0 |
| 91 | reteq lr | 91 | reteq lr |
| 92 | 2: teq r1, #'\n' | 92 | 2: teq r1, #'\n' |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e85a3af9ddeb..ce4aea57130a 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
| @@ -636,7 +636,7 @@ call_fpe: | |||
| 636 | @ Test if we need to give access to iWMMXt coprocessors | 636 | @ Test if we need to give access to iWMMXt coprocessors |
| 637 | ldr r5, [r10, #TI_FLAGS] | 637 | ldr r5, [r10, #TI_FLAGS] |
| 638 | rsbs r7, r8, #(1 << 8) @ CP 0 or 1 only | 638 | rsbs r7, r8, #(1 << 8) @ CP 0 or 1 only |
| 639 | movcss r7, r5, lsr #(TIF_USING_IWMMXT + 1) | 639 | movscs r7, r5, lsr #(TIF_USING_IWMMXT + 1) |
| 640 | bcs iwmmxt_task_enable | 640 | bcs iwmmxt_task_enable |
| 641 | #endif | 641 | #endif |
| 642 | ARM( add pc, pc, r8, lsr #6 ) | 642 | ARM( add pc, pc, r8, lsr #6 ) |
| @@ -872,7 +872,7 @@ __kuser_cmpxchg64: @ 0xffff0f60 | |||
| 872 | smp_dmb arm | 872 | smp_dmb arm |
| 873 | 1: ldrexd r0, r1, [r2] @ load current val | 873 | 1: ldrexd r0, r1, [r2] @ load current val |
| 874 | eors r3, r0, r4 @ compare with oldval (1) | 874 | eors r3, r0, r4 @ compare with oldval (1) |
| 875 | eoreqs r3, r1, r5 @ compare with oldval (2) | 875 | eorseq r3, r1, r5 @ compare with oldval (2) |
| 876 | strexdeq r3, r6, r7, [r2] @ store newval if eq | 876 | strexdeq r3, r6, r7, [r2] @ store newval if eq |
| 877 | teqeq r3, #1 @ success? | 877 | teqeq r3, #1 @ success? |
| 878 | beq 1b @ if no then retry | 878 | beq 1b @ if no then retry |
| @@ -896,8 +896,8 @@ __kuser_cmpxchg64: @ 0xffff0f60 | |||
| 896 | ldmia r1, {r6, lr} @ load new val | 896 | ldmia r1, {r6, lr} @ load new val |
| 897 | 1: ldmia r2, {r0, r1} @ load current val | 897 | 1: ldmia r2, {r0, r1} @ load current val |
| 898 | eors r3, r0, r4 @ compare with oldval (1) | 898 | eors r3, r0, r4 @ compare with oldval (1) |
| 899 | eoreqs r3, r1, r5 @ compare with oldval (2) | 899 | eorseq r3, r1, r5 @ compare with oldval (2) |
| 900 | 2: stmeqia r2, {r6, lr} @ store newval if eq | 900 | 2: stmiaeq r2, {r6, lr} @ store newval if eq |
| 901 | rsbs r0, r3, #0 @ set return val and C flag | 901 | rsbs r0, r3, #0 @ set return val and C flag |
| 902 | ldmfd sp!, {r4, r5, r6, pc} | 902 | ldmfd sp!, {r4, r5, r6, pc} |
| 903 | 903 | ||
| @@ -911,7 +911,7 @@ kuser_cmpxchg64_fixup: | |||
| 911 | mov r7, #0xffff0fff | 911 | mov r7, #0xffff0fff |
| 912 | sub r7, r7, #(0xffff0fff - (0xffff0f60 + (1b - __kuser_cmpxchg64))) | 912 | sub r7, r7, #(0xffff0fff - (0xffff0f60 + (1b - __kuser_cmpxchg64))) |
| 913 | subs r8, r4, r7 | 913 | subs r8, r4, r7 |
| 914 | rsbcss r8, r8, #(2b - 1b) | 914 | rsbscs r8, r8, #(2b - 1b) |
| 915 | strcs r7, [sp, #S_PC] | 915 | strcs r7, [sp, #S_PC] |
| 916 | #if __LINUX_ARM_ARCH__ < 6 | 916 | #if __LINUX_ARM_ARCH__ < 6 |
| 917 | bcc kuser_cmpxchg32_fixup | 917 | bcc kuser_cmpxchg32_fixup |
| @@ -969,7 +969,7 @@ kuser_cmpxchg32_fixup: | |||
| 969 | mov r7, #0xffff0fff | 969 | mov r7, #0xffff0fff |
| 970 | sub r7, r7, #(0xffff0fff - (0xffff0fc0 + (1b - __kuser_cmpxchg))) | 970 | sub r7, r7, #(0xffff0fff - (0xffff0fc0 + (1b - __kuser_cmpxchg))) |
| 971 | subs r8, r4, r7 | 971 | subs r8, r4, r7 |
| 972 | rsbcss r8, r8, #(2b - 1b) | 972 | rsbscs r8, r8, #(2b - 1b) |
| 973 | strcs r7, [sp, #S_PC] | 973 | strcs r7, [sp, #S_PC] |
| 974 | ret lr | 974 | ret lr |
| 975 | .previous | 975 | .previous |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 0465d65d23de..f7649adef505 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -373,7 +373,7 @@ sys_syscall: | |||
| 373 | movhs scno, #0 | 373 | movhs scno, #0 |
| 374 | csdb | 374 | csdb |
| 375 | #endif | 375 | #endif |
| 376 | stmloia sp, {r5, r6} @ shuffle args | 376 | stmialo sp, {r5, r6} @ shuffle args |
| 377 | movlo r0, r1 | 377 | movlo r0, r1 |
| 378 | movlo r1, r2 | 378 | movlo r1, r2 |
| 379 | movlo r2, r3 | 379 | movlo r2, r3 |
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index 773424843d6e..32051ec5b33f 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
| @@ -127,7 +127,8 @@ | |||
| 127 | */ | 127 | */ |
| 128 | .macro v7m_exception_slow_exit ret_r0 | 128 | .macro v7m_exception_slow_exit ret_r0 |
| 129 | cpsid i | 129 | cpsid i |
| 130 | ldr lr, =EXC_RET_THREADMODE_PROCESSSTACK | 130 | ldr lr, =exc_ret |
| 131 | ldr lr, [lr] | ||
| 131 | 132 | ||
| 132 | @ read original r12, sp, lr, pc and xPSR | 133 | @ read original r12, sp, lr, pc and xPSR |
| 133 | add r12, sp, #S_IP | 134 | add r12, sp, #S_IP |
| @@ -387,8 +388,8 @@ | |||
| 387 | badr lr, \ret @ return address | 388 | badr lr, \ret @ return address |
| 388 | .if \reload | 389 | .if \reload |
| 389 | add r1, sp, #S_R0 + S_OFF @ pointer to regs | 390 | add r1, sp, #S_R0 + S_OFF @ pointer to regs |
| 390 | ldmccia r1, {r0 - r6} @ reload r0-r6 | 391 | ldmiacc r1, {r0 - r6} @ reload r0-r6 |
| 391 | stmccia sp, {r4, r5} @ update stack arguments | 392 | stmiacc sp, {r4, r5} @ update stack arguments |
| 392 | .endif | 393 | .endif |
| 393 | ldrcc pc, [\table, \tmp, lsl #2] @ call sys_* routine | 394 | ldrcc pc, [\table, \tmp, lsl #2] @ call sys_* routine |
| 394 | #else | 395 | #else |
| @@ -396,8 +397,8 @@ | |||
| 396 | badr lr, \ret @ return address | 397 | badr lr, \ret @ return address |
| 397 | .if \reload | 398 | .if \reload |
| 398 | add r1, sp, #S_R0 + S_OFF @ pointer to regs | 399 | add r1, sp, #S_R0 + S_OFF @ pointer to regs |
| 399 | ldmccia r1, {r0 - r6} @ reload r0-r6 | 400 | ldmiacc r1, {r0 - r6} @ reload r0-r6 |
| 400 | stmccia sp, {r4, r5} @ update stack arguments | 401 | stmiacc sp, {r4, r5} @ update stack arguments |
| 401 | .endif | 402 | .endif |
| 402 | ldrcc pc, [\table, \nr, lsl #2] @ call sys_* routine | 403 | ldrcc pc, [\table, \nr, lsl #2] @ call sys_* routine |
| 403 | #endif | 404 | #endif |
diff --git a/arch/arm/kernel/entry-v7m.S b/arch/arm/kernel/entry-v7m.S index abcf47848525..19d2dcd6530d 100644 --- a/arch/arm/kernel/entry-v7m.S +++ b/arch/arm/kernel/entry-v7m.S | |||
| @@ -146,3 +146,7 @@ ENTRY(vector_table) | |||
| 146 | .rept CONFIG_CPU_V7M_NUM_IRQ | 146 | .rept CONFIG_CPU_V7M_NUM_IRQ |
| 147 | .long __irq_entry @ External Interrupts | 147 | .long __irq_entry @ External Interrupts |
| 148 | .endr | 148 | .endr |
| 149 | .align 2 | ||
| 150 | .globl exc_ret | ||
| 151 | exc_ret: | ||
| 152 | .space 4 | ||
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S index ec29de250076..c08d2d890f7b 100644 --- a/arch/arm/kernel/head-nommu.S +++ b/arch/arm/kernel/head-nommu.S | |||
| @@ -439,8 +439,8 @@ M_CLASS(str r6, [r12, #PMSAv8_RLAR_A(3)]) | |||
| 439 | str r5, [r12, #PMSAv8_RBAR_A(0)] | 439 | str r5, [r12, #PMSAv8_RBAR_A(0)] |
| 440 | str r6, [r12, #PMSAv8_RLAR_A(0)] | 440 | str r6, [r12, #PMSAv8_RLAR_A(0)] |
| 441 | #else | 441 | #else |
| 442 | mcr p15, 0, r5, c6, c10, 1 @ PRBAR4 | 442 | mcr p15, 0, r5, c6, c10, 0 @ PRBAR4 |
| 443 | mcr p15, 0, r6, c6, c10, 2 @ PRLAR4 | 443 | mcr p15, 0, r6, c6, c10, 1 @ PRLAR4 |
| 444 | #endif | 444 | #endif |
| 445 | #endif | 445 | #endif |
| 446 | ret lr | 446 | ret lr |
diff --git a/arch/arm/kernel/hyp-stub.S b/arch/arm/kernel/hyp-stub.S index 60146e32619a..82a942894fc0 100644 --- a/arch/arm/kernel/hyp-stub.S +++ b/arch/arm/kernel/hyp-stub.S | |||
| @@ -180,8 +180,8 @@ ARM_BE8(orr r7, r7, #(1 << 25)) @ HSCTLR.EE | |||
| 180 | @ Check whether GICv3 system registers are available | 180 | @ Check whether GICv3 system registers are available |
| 181 | mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1 | 181 | mrc p15, 0, r7, c0, c1, 1 @ ID_PFR1 |
| 182 | ubfx r7, r7, #28, #4 | 182 | ubfx r7, r7, #28, #4 |
| 183 | cmp r7, #1 | 183 | teq r7, #0 |
| 184 | bne 2f | 184 | beq 2f |
| 185 | 185 | ||
| 186 | @ Enable system register accesses | 186 | @ Enable system register accesses |
| 187 | mrc p15, 4, r7, c12, c9, 5 @ ICC_HSRE | 187 | mrc p15, 4, r7, c12, c9, 5 @ ICC_HSRE |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index 9908dacf9229..844861368cd5 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
| @@ -31,7 +31,6 @@ | |||
| 31 | #include <linux/smp.h> | 31 | #include <linux/smp.h> |
| 32 | #include <linux/init.h> | 32 | #include <linux/init.h> |
| 33 | #include <linux/seq_file.h> | 33 | #include <linux/seq_file.h> |
| 34 | #include <linux/ratelimit.h> | ||
| 35 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
| 36 | #include <linux/list.h> | 35 | #include <linux/list.h> |
| 37 | #include <linux/kallsyms.h> | 36 | #include <linux/kallsyms.h> |
| @@ -109,64 +108,3 @@ int __init arch_probe_nr_irqs(void) | |||
| 109 | return nr_irqs; | 108 | return nr_irqs; |
| 110 | } | 109 | } |
| 111 | #endif | 110 | #endif |
| 112 | |||
| 113 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 114 | static bool migrate_one_irq(struct irq_desc *desc) | ||
| 115 | { | ||
| 116 | struct irq_data *d = irq_desc_get_irq_data(desc); | ||
| 117 | const struct cpumask *affinity = irq_data_get_affinity_mask(d); | ||
| 118 | struct irq_chip *c; | ||
| 119 | bool ret = false; | ||
| 120 | |||
| 121 | /* | ||
| 122 | * If this is a per-CPU interrupt, or the affinity does not | ||
| 123 | * include this CPU, then we have nothing to do. | ||
| 124 | */ | ||
| 125 | if (irqd_is_per_cpu(d) || !cpumask_test_cpu(smp_processor_id(), affinity)) | ||
| 126 | return false; | ||
| 127 | |||
| 128 | if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) { | ||
| 129 | affinity = cpu_online_mask; | ||
| 130 | ret = true; | ||
| 131 | } | ||
| 132 | |||
| 133 | c = irq_data_get_irq_chip(d); | ||
| 134 | if (!c->irq_set_affinity) | ||
| 135 | pr_debug("IRQ%u: unable to set affinity\n", d->irq); | ||
| 136 | else if (c->irq_set_affinity(d, affinity, false) == IRQ_SET_MASK_OK && ret) | ||
| 137 | cpumask_copy(irq_data_get_affinity_mask(d), affinity); | ||
| 138 | |||
| 139 | return ret; | ||
| 140 | } | ||
| 141 | |||
| 142 | /* | ||
| 143 | * The current CPU has been marked offline. Migrate IRQs off this CPU. | ||
| 144 | * If the affinity settings do not allow other CPUs, force them onto any | ||
| 145 | * available CPU. | ||
| 146 | * | ||
| 147 | * Note: we must iterate over all IRQs, whether they have an attached | ||
| 148 | * action structure or not, as we need to get chained interrupts too. | ||
| 149 | */ | ||
| 150 | void migrate_irqs(void) | ||
| 151 | { | ||
| 152 | unsigned int i; | ||
| 153 | struct irq_desc *desc; | ||
| 154 | unsigned long flags; | ||
| 155 | |||
| 156 | local_irq_save(flags); | ||
| 157 | |||
| 158 | for_each_irq_desc(i, desc) { | ||
| 159 | bool affinity_broken; | ||
| 160 | |||
| 161 | raw_spin_lock(&desc->lock); | ||
| 162 | affinity_broken = migrate_one_irq(desc); | ||
| 163 | raw_spin_unlock(&desc->lock); | ||
| 164 | |||
| 165 | if (affinity_broken) | ||
| 166 | pr_warn_ratelimited("IRQ%u no longer affine to CPU%u\n", | ||
| 167 | i, smp_processor_id()); | ||
| 168 | } | ||
| 169 | |||
| 170 | local_irq_restore(flags); | ||
| 171 | } | ||
| 172 | #endif /* CONFIG_HOTPLUG_CPU */ | ||
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c index dd2eb5f76b9f..76300f3813e8 100644 --- a/arch/arm/kernel/machine_kexec.c +++ b/arch/arm/kernel/machine_kexec.c | |||
| @@ -91,8 +91,11 @@ void machine_crash_nonpanic_core(void *unused) | |||
| 91 | 91 | ||
| 92 | set_cpu_online(smp_processor_id(), false); | 92 | set_cpu_online(smp_processor_id(), false); |
| 93 | atomic_dec(&waiting_for_crash_ipi); | 93 | atomic_dec(&waiting_for_crash_ipi); |
| 94 | while (1) | 94 | |
| 95 | while (1) { | ||
| 95 | cpu_relax(); | 96 | cpu_relax(); |
| 97 | wfe(); | ||
| 98 | } | ||
| 96 | } | 99 | } |
| 97 | 100 | ||
| 98 | void crash_smp_send_stop(void) | 101 | void crash_smp_send_stop(void) |
diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c index a50dc00d79a2..d0a05a3bdb96 100644 --- a/arch/arm/kernel/patch.c +++ b/arch/arm/kernel/patch.c | |||
| @@ -16,7 +16,7 @@ struct patch { | |||
| 16 | unsigned int insn; | 16 | unsigned int insn; |
| 17 | }; | 17 | }; |
| 18 | 18 | ||
| 19 | static DEFINE_SPINLOCK(patch_lock); | 19 | static DEFINE_RAW_SPINLOCK(patch_lock); |
| 20 | 20 | ||
| 21 | static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) | 21 | static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) |
| 22 | __acquires(&patch_lock) | 22 | __acquires(&patch_lock) |
| @@ -33,7 +33,7 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags) | |||
| 33 | return addr; | 33 | return addr; |
| 34 | 34 | ||
| 35 | if (flags) | 35 | if (flags) |
| 36 | spin_lock_irqsave(&patch_lock, *flags); | 36 | raw_spin_lock_irqsave(&patch_lock, *flags); |
| 37 | else | 37 | else |
| 38 | __acquire(&patch_lock); | 38 | __acquire(&patch_lock); |
| 39 | 39 | ||
| @@ -48,7 +48,7 @@ static void __kprobes patch_unmap(int fixmap, unsigned long *flags) | |||
| 48 | clear_fixmap(fixmap); | 48 | clear_fixmap(fixmap); |
| 49 | 49 | ||
| 50 | if (flags) | 50 | if (flags) |
| 51 | spin_unlock_irqrestore(&patch_lock, *flags); | 51 | raw_spin_unlock_irqrestore(&patch_lock, *flags); |
| 52 | else | 52 | else |
| 53 | __release(&patch_lock); | 53 | __release(&patch_lock); |
| 54 | } | 54 | } |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 16601d1442d1..72cc0862a30e 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
| @@ -150,7 +150,7 @@ void __show_regs(struct pt_regs *regs) | |||
| 150 | if ((domain & domain_mask(DOMAIN_USER)) == | 150 | if ((domain & domain_mask(DOMAIN_USER)) == |
| 151 | domain_val(DOMAIN_USER, DOMAIN_NOACCESS)) | 151 | domain_val(DOMAIN_USER, DOMAIN_NOACCESS)) |
| 152 | segment = "none"; | 152 | segment = "none"; |
| 153 | else if (fs == get_ds()) | 153 | else if (fs == KERNEL_DS) |
| 154 | segment = "kernel"; | 154 | segment = "kernel"; |
| 155 | else | 155 | else |
| 156 | segment = "user"; | 156 | segment = "user"; |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 375b13f7e780..5d78b6ac0429 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
| @@ -867,6 +867,9 @@ static void __init request_standard_resources(const struct machine_desc *mdesc) | |||
| 867 | boot_alias_start = phys_to_idmap(start); | 867 | boot_alias_start = phys_to_idmap(start); |
| 868 | if (arm_has_idmap_alias() && boot_alias_start != IDMAP_INVALID_ADDR) { | 868 | if (arm_has_idmap_alias() && boot_alias_start != IDMAP_INVALID_ADDR) { |
| 869 | res = memblock_alloc(sizeof(*res), SMP_CACHE_BYTES); | 869 | res = memblock_alloc(sizeof(*res), SMP_CACHE_BYTES); |
| 870 | if (!res) | ||
| 871 | panic("%s: Failed to allocate %zu bytes\n", | ||
| 872 | __func__, sizeof(*res)); | ||
| 870 | res->name = "System RAM (boot alias)"; | 873 | res->name = "System RAM (boot alias)"; |
| 871 | res->start = boot_alias_start; | 874 | res->start = boot_alias_start; |
| 872 | res->end = phys_to_idmap(end); | 875 | res->end = phys_to_idmap(end); |
| @@ -875,6 +878,9 @@ static void __init request_standard_resources(const struct machine_desc *mdesc) | |||
| 875 | } | 878 | } |
| 876 | 879 | ||
| 877 | res = memblock_alloc(sizeof(*res), SMP_CACHE_BYTES); | 880 | res = memblock_alloc(sizeof(*res), SMP_CACHE_BYTES); |
| 881 | if (!res) | ||
| 882 | panic("%s: Failed to allocate %zu bytes\n", __func__, | ||
| 883 | sizeof(*res)); | ||
| 878 | res->name = "System RAM"; | 884 | res->name = "System RAM"; |
| 879 | res->start = start; | 885 | res->start = start; |
| 880 | res->end = end; | 886 | res->end = end; |
diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S index a8257fc9cf2a..5dc8b80bb693 100644 --- a/arch/arm/kernel/sleep.S +++ b/arch/arm/kernel/sleep.S | |||
| @@ -120,6 +120,14 @@ ENDPROC(cpu_resume_after_mmu) | |||
| 120 | .text | 120 | .text |
| 121 | .align | 121 | .align |
| 122 | 122 | ||
| 123 | #ifdef CONFIG_MCPM | ||
| 124 | .arm | ||
| 125 | THUMB( .thumb ) | ||
| 126 | ENTRY(cpu_resume_no_hyp) | ||
| 127 | ARM_BE8(setend be) @ ensure we are in BE mode | ||
| 128 | b no_hyp | ||
| 129 | #endif | ||
| 130 | |||
| 123 | #ifdef CONFIG_MMU | 131 | #ifdef CONFIG_MMU |
| 124 | .arm | 132 | .arm |
| 125 | ENTRY(cpu_resume_arm) | 133 | ENTRY(cpu_resume_arm) |
| @@ -135,6 +143,7 @@ ARM_BE8(setend be) @ ensure we are in BE mode | |||
| 135 | bl __hyp_stub_install_secondary | 143 | bl __hyp_stub_install_secondary |
| 136 | #endif | 144 | #endif |
| 137 | safe_svcmode_maskall r1 | 145 | safe_svcmode_maskall r1 |
| 146 | no_hyp: | ||
| 138 | mov r1, #0 | 147 | mov r1, #0 |
| 139 | ALT_SMP(mrc p15, 0, r0, c0, c0, 5) | 148 | ALT_SMP(mrc p15, 0, r0, c0, c0, 5) |
| 140 | ALT_UP_B(1f) | 149 | ALT_UP_B(1f) |
| @@ -164,6 +173,9 @@ ENDPROC(cpu_resume) | |||
| 164 | #ifdef CONFIG_MMU | 173 | #ifdef CONFIG_MMU |
| 165 | ENDPROC(cpu_resume_arm) | 174 | ENDPROC(cpu_resume_arm) |
| 166 | #endif | 175 | #endif |
| 176 | #ifdef CONFIG_MCPM | ||
| 177 | ENDPROC(cpu_resume_no_hyp) | ||
| 178 | #endif | ||
| 167 | 179 | ||
| 168 | .align 2 | 180 | .align 2 |
| 169 | _sleep_save_sp: | 181 | _sleep_save_sp: |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 3bf82232b1be..facd4240ca02 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
| @@ -62,12 +62,6 @@ | |||
| 62 | */ | 62 | */ |
| 63 | struct secondary_data secondary_data; | 63 | struct secondary_data secondary_data; |
| 64 | 64 | ||
| 65 | /* | ||
| 66 | * control for which core is the next to come out of the secondary | ||
| 67 | * boot "holding pen" | ||
| 68 | */ | ||
| 69 | volatile int pen_release = -1; | ||
| 70 | |||
| 71 | enum ipi_msg_type { | 65 | enum ipi_msg_type { |
| 72 | IPI_WAKEUP, | 66 | IPI_WAKEUP, |
| 73 | IPI_TIMER, | 67 | IPI_TIMER, |
| @@ -254,7 +248,7 @@ int __cpu_disable(void) | |||
| 254 | /* | 248 | /* |
| 255 | * OK - migrate IRQs away from this CPU | 249 | * OK - migrate IRQs away from this CPU |
| 256 | */ | 250 | */ |
| 257 | migrate_irqs(); | 251 | irq_migrate_all_off_this_cpu(); |
| 258 | 252 | ||
| 259 | /* | 253 | /* |
| 260 | * Flush user cache and TLB mappings, and then remove this CPU | 254 | * Flush user cache and TLB mappings, and then remove this CPU |
| @@ -604,8 +598,10 @@ static void ipi_cpu_stop(unsigned int cpu) | |||
| 604 | local_fiq_disable(); | 598 | local_fiq_disable(); |
| 605 | local_irq_disable(); | 599 | local_irq_disable(); |
| 606 | 600 | ||
| 607 | while (1) | 601 | while (1) { |
| 608 | cpu_relax(); | 602 | cpu_relax(); |
| 603 | wfe(); | ||
| 604 | } | ||
| 609 | } | 605 | } |
| 610 | 606 | ||
| 611 | static DEFINE_PER_CPU(struct completion *, cpu_completion); | 607 | static DEFINE_PER_CPU(struct completion *, cpu_completion); |
diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c index b30eafeef096..3cdc399b9fc3 100644 --- a/arch/arm/kernel/smp_twd.c +++ b/arch/arm/kernel/smp_twd.c | |||
| @@ -100,8 +100,6 @@ static void twd_timer_stop(void) | |||
| 100 | disable_percpu_irq(clk->irq); | 100 | disable_percpu_irq(clk->irq); |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | #ifdef CONFIG_COMMON_CLK | ||
| 104 | |||
| 105 | /* | 103 | /* |
| 106 | * Updates clockevent frequency when the cpu frequency changes. | 104 | * Updates clockevent frequency when the cpu frequency changes. |
| 107 | * Called on the cpu that is changing frequency with interrupts disabled. | 105 | * Called on the cpu that is changing frequency with interrupts disabled. |
| @@ -143,54 +141,6 @@ static int twd_clk_init(void) | |||
| 143 | } | 141 | } |
| 144 | core_initcall(twd_clk_init); | 142 | core_initcall(twd_clk_init); |
| 145 | 143 | ||
| 146 | #elif defined (CONFIG_CPU_FREQ) | ||
| 147 | |||
| 148 | #include <linux/cpufreq.h> | ||
| 149 | |||
| 150 | /* | ||
| 151 | * Updates clockevent frequency when the cpu frequency changes. | ||
| 152 | * Called on the cpu that is changing frequency with interrupts disabled. | ||
| 153 | */ | ||
| 154 | static void twd_update_frequency(void *data) | ||
| 155 | { | ||
| 156 | twd_timer_rate = clk_get_rate(twd_clk); | ||
| 157 | |||
| 158 | clockevents_update_freq(raw_cpu_ptr(twd_evt), twd_timer_rate); | ||
| 159 | } | ||
| 160 | |||
| 161 | static int twd_cpufreq_transition(struct notifier_block *nb, | ||
| 162 | unsigned long state, void *data) | ||
| 163 | { | ||
| 164 | struct cpufreq_freqs *freqs = data; | ||
| 165 | |||
| 166 | /* | ||
| 167 | * The twd clock events must be reprogrammed to account for the new | ||
| 168 | * frequency. The timer is local to a cpu, so cross-call to the | ||
| 169 | * changing cpu. | ||
| 170 | */ | ||
| 171 | if (state == CPUFREQ_POSTCHANGE) | ||
| 172 | smp_call_function_single(freqs->cpu, twd_update_frequency, | ||
| 173 | NULL, 1); | ||
| 174 | |||
| 175 | return NOTIFY_OK; | ||
| 176 | } | ||
| 177 | |||
| 178 | static struct notifier_block twd_cpufreq_nb = { | ||
| 179 | .notifier_call = twd_cpufreq_transition, | ||
| 180 | }; | ||
| 181 | |||
| 182 | static int twd_cpufreq_init(void) | ||
| 183 | { | ||
| 184 | if (twd_evt && raw_cpu_ptr(twd_evt) && !IS_ERR(twd_clk)) | ||
| 185 | return cpufreq_register_notifier(&twd_cpufreq_nb, | ||
| 186 | CPUFREQ_TRANSITION_NOTIFIER); | ||
| 187 | |||
| 188 | return 0; | ||
| 189 | } | ||
| 190 | core_initcall(twd_cpufreq_init); | ||
| 191 | |||
| 192 | #endif | ||
| 193 | |||
| 194 | static void twd_calibrate_rate(void) | 144 | static void twd_calibrate_rate(void) |
| 195 | { | 145 | { |
| 196 | unsigned long count; | 146 | unsigned long count; |
| @@ -366,21 +316,6 @@ out_free: | |||
| 366 | return err; | 316 | return err; |
| 367 | } | 317 | } |
| 368 | 318 | ||
| 369 | int __init twd_local_timer_register(struct twd_local_timer *tlt) | ||
| 370 | { | ||
| 371 | if (twd_base || twd_evt) | ||
| 372 | return -EBUSY; | ||
| 373 | |||
| 374 | twd_ppi = tlt->res[1].start; | ||
| 375 | |||
| 376 | twd_base = ioremap(tlt->res[0].start, resource_size(&tlt->res[0])); | ||
| 377 | if (!twd_base) | ||
| 378 | return -ENOMEM; | ||
| 379 | |||
| 380 | return twd_local_timer_common_register(NULL); | ||
| 381 | } | ||
| 382 | |||
| 383 | #ifdef CONFIG_OF | ||
| 384 | static int __init twd_local_timer_of_register(struct device_node *np) | 319 | static int __init twd_local_timer_of_register(struct device_node *np) |
| 385 | { | 320 | { |
| 386 | int err; | 321 | int err; |
| @@ -406,4 +341,3 @@ out: | |||
| 406 | TIMER_OF_DECLARE(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register); | 341 | TIMER_OF_DECLARE(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register); |
| 407 | TIMER_OF_DECLARE(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register); | 342 | TIMER_OF_DECLARE(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register); |
| 408 | TIMER_OF_DECLARE(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register); | 343 | TIMER_OF_DECLARE(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register); |
| 409 | #endif | ||
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 92ab36f38795..acd054a42ba2 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
| @@ -317,10 +317,10 @@ struct oabi_sembuf { | |||
| 317 | asmlinkage long sys_oabi_semtimedop(int semid, | 317 | asmlinkage long sys_oabi_semtimedop(int semid, |
| 318 | struct oabi_sembuf __user *tsops, | 318 | struct oabi_sembuf __user *tsops, |
| 319 | unsigned nsops, | 319 | unsigned nsops, |
| 320 | const struct timespec __user *timeout) | 320 | const struct old_timespec32 __user *timeout) |
| 321 | { | 321 | { |
| 322 | struct sembuf *sops; | 322 | struct sembuf *sops; |
| 323 | struct timespec local_timeout; | 323 | struct old_timespec32 local_timeout; |
| 324 | long err; | 324 | long err; |
| 325 | int i; | 325 | int i; |
| 326 | 326 | ||
| @@ -350,7 +350,7 @@ asmlinkage long sys_oabi_semtimedop(int semid, | |||
| 350 | } else { | 350 | } else { |
| 351 | mm_segment_t fs = get_fs(); | 351 | mm_segment_t fs = get_fs(); |
| 352 | set_fs(KERNEL_DS); | 352 | set_fs(KERNEL_DS); |
| 353 | err = sys_semtimedop(semid, sops, nsops, timeout); | 353 | err = sys_semtimedop_time32(semid, sops, nsops, timeout); |
| 354 | set_fs(fs); | 354 | set_fs(fs); |
| 355 | } | 355 | } |
| 356 | kfree(sops); | 356 | kfree(sops); |
| @@ -375,7 +375,7 @@ asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third, | |||
| 375 | return sys_oabi_semtimedop(first, | 375 | return sys_oabi_semtimedop(first, |
| 376 | (struct oabi_sembuf __user *)ptr, | 376 | (struct oabi_sembuf __user *)ptr, |
| 377 | second, | 377 | second, |
| 378 | (const struct timespec __user *)fifth); | 378 | (const struct old_timespec32 __user *)fifth); |
| 379 | default: | 379 | default: |
| 380 | return sys_ipc(call, first, second, third, ptr, fifth); | 380 | return sys_ipc(call, first, second, third, ptr, fifth); |
| 381 | } | 381 | } |
diff --git a/arch/arm/kernel/unwind.c b/arch/arm/kernel/unwind.c index 0bee233fef9a..314cfb232a63 100644 --- a/arch/arm/kernel/unwind.c +++ b/arch/arm/kernel/unwind.c | |||
| @@ -93,7 +93,7 @@ extern const struct unwind_idx __start_unwind_idx[]; | |||
| 93 | static const struct unwind_idx *__origin_unwind_idx; | 93 | static const struct unwind_idx *__origin_unwind_idx; |
| 94 | extern const struct unwind_idx __stop_unwind_idx[]; | 94 | extern const struct unwind_idx __stop_unwind_idx[]; |
| 95 | 95 | ||
| 96 | static DEFINE_SPINLOCK(unwind_lock); | 96 | static DEFINE_RAW_SPINLOCK(unwind_lock); |
| 97 | static LIST_HEAD(unwind_tables); | 97 | static LIST_HEAD(unwind_tables); |
| 98 | 98 | ||
| 99 | /* Convert a prel31 symbol to an absolute address */ | 99 | /* Convert a prel31 symbol to an absolute address */ |
| @@ -201,7 +201,7 @@ static const struct unwind_idx *unwind_find_idx(unsigned long addr) | |||
| 201 | /* module unwind tables */ | 201 | /* module unwind tables */ |
| 202 | struct unwind_table *table; | 202 | struct unwind_table *table; |
| 203 | 203 | ||
| 204 | spin_lock_irqsave(&unwind_lock, flags); | 204 | raw_spin_lock_irqsave(&unwind_lock, flags); |
| 205 | list_for_each_entry(table, &unwind_tables, list) { | 205 | list_for_each_entry(table, &unwind_tables, list) { |
| 206 | if (addr >= table->begin_addr && | 206 | if (addr >= table->begin_addr && |
| 207 | addr < table->end_addr) { | 207 | addr < table->end_addr) { |
| @@ -213,7 +213,7 @@ static const struct unwind_idx *unwind_find_idx(unsigned long addr) | |||
| 213 | break; | 213 | break; |
| 214 | } | 214 | } |
| 215 | } | 215 | } |
| 216 | spin_unlock_irqrestore(&unwind_lock, flags); | 216 | raw_spin_unlock_irqrestore(&unwind_lock, flags); |
| 217 | } | 217 | } |
| 218 | 218 | ||
| 219 | pr_debug("%s: idx = %p\n", __func__, idx); | 219 | pr_debug("%s: idx = %p\n", __func__, idx); |
| @@ -529,9 +529,9 @@ struct unwind_table *unwind_table_add(unsigned long start, unsigned long size, | |||
| 529 | tab->begin_addr = text_addr; | 529 | tab->begin_addr = text_addr; |
| 530 | tab->end_addr = text_addr + text_size; | 530 | tab->end_addr = text_addr + text_size; |
| 531 | 531 | ||
| 532 | spin_lock_irqsave(&unwind_lock, flags); | 532 | raw_spin_lock_irqsave(&unwind_lock, flags); |
| 533 | list_add_tail(&tab->list, &unwind_tables); | 533 | list_add_tail(&tab->list, &unwind_tables); |
| 534 | spin_unlock_irqrestore(&unwind_lock, flags); | 534 | raw_spin_unlock_irqrestore(&unwind_lock, flags); |
| 535 | 535 | ||
| 536 | return tab; | 536 | return tab; |
| 537 | } | 537 | } |
| @@ -543,9 +543,9 @@ void unwind_table_del(struct unwind_table *tab) | |||
| 543 | if (!tab) | 543 | if (!tab) |
| 544 | return; | 544 | return; |
| 545 | 545 | ||
| 546 | spin_lock_irqsave(&unwind_lock, flags); | 546 | raw_spin_lock_irqsave(&unwind_lock, flags); |
| 547 | list_del(&tab->list); | 547 | list_del(&tab->list); |
| 548 | spin_unlock_irqrestore(&unwind_lock, flags); | 548 | raw_spin_unlock_irqrestore(&unwind_lock, flags); |
| 549 | 549 | ||
| 550 | kfree(tab); | 550 | kfree(tab); |
| 551 | } | 551 | } |
diff --git a/arch/arm/kvm/Makefile b/arch/arm/kvm/Makefile index 48de846f2246..531e59f5be9c 100644 --- a/arch/arm/kvm/Makefile +++ b/arch/arm/kvm/Makefile | |||
| @@ -8,9 +8,8 @@ ifeq ($(plus_virt),+virt) | |||
| 8 | plus_virt_def := -DREQUIRES_VIRT=1 | 8 | plus_virt_def := -DREQUIRES_VIRT=1 |
| 9 | endif | 9 | endif |
| 10 | 10 | ||
| 11 | ccflags-y += -Iarch/arm/kvm -Ivirt/kvm/arm/vgic | 11 | ccflags-y += -I $(srctree)/$(src) -I $(srctree)/virt/kvm/arm/vgic |
| 12 | CFLAGS_arm.o := -I. $(plus_virt_def) | 12 | CFLAGS_arm.o := $(plus_virt_def) |
| 13 | CFLAGS_mmu.o := -I. | ||
| 14 | 13 | ||
| 15 | AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt) | 14 | AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt) |
| 16 | AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt) | 15 | AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt) |
diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c index 222c1635bc7a..14915c78bd99 100644 --- a/arch/arm/kvm/coproc.c +++ b/arch/arm/kvm/coproc.c | |||
| @@ -293,15 +293,16 @@ static bool access_cntp_tval(struct kvm_vcpu *vcpu, | |||
| 293 | const struct coproc_params *p, | 293 | const struct coproc_params *p, |
| 294 | const struct coproc_reg *r) | 294 | const struct coproc_reg *r) |
| 295 | { | 295 | { |
| 296 | u64 now = kvm_phys_timer_read(); | 296 | u32 val; |
| 297 | u64 val; | ||
| 298 | 297 | ||
| 299 | if (p->is_write) { | 298 | if (p->is_write) { |
| 300 | val = *vcpu_reg(vcpu, p->Rt1); | 299 | val = *vcpu_reg(vcpu, p->Rt1); |
| 301 | kvm_arm_timer_set_reg(vcpu, KVM_REG_ARM_PTIMER_CVAL, val + now); | 300 | kvm_arm_timer_write_sysreg(vcpu, |
| 301 | TIMER_PTIMER, TIMER_REG_TVAL, val); | ||
| 302 | } else { | 302 | } else { |
| 303 | val = kvm_arm_timer_get_reg(vcpu, KVM_REG_ARM_PTIMER_CVAL); | 303 | val = kvm_arm_timer_read_sysreg(vcpu, |
| 304 | *vcpu_reg(vcpu, p->Rt1) = val - now; | 304 | TIMER_PTIMER, TIMER_REG_TVAL); |
| 305 | *vcpu_reg(vcpu, p->Rt1) = val; | ||
| 305 | } | 306 | } |
| 306 | 307 | ||
| 307 | return true; | 308 | return true; |
| @@ -315,9 +316,11 @@ static bool access_cntp_ctl(struct kvm_vcpu *vcpu, | |||
| 315 | 316 | ||
| 316 | if (p->is_write) { | 317 | if (p->is_write) { |
| 317 | val = *vcpu_reg(vcpu, p->Rt1); | 318 | val = *vcpu_reg(vcpu, p->Rt1); |
| 318 | kvm_arm_timer_set_reg(vcpu, KVM_REG_ARM_PTIMER_CTL, val); | 319 | kvm_arm_timer_write_sysreg(vcpu, |
| 320 | TIMER_PTIMER, TIMER_REG_CTL, val); | ||
| 319 | } else { | 321 | } else { |
| 320 | val = kvm_arm_timer_get_reg(vcpu, KVM_REG_ARM_PTIMER_CTL); | 322 | val = kvm_arm_timer_read_sysreg(vcpu, |
| 323 | TIMER_PTIMER, TIMER_REG_CTL); | ||
| 321 | *vcpu_reg(vcpu, p->Rt1) = val; | 324 | *vcpu_reg(vcpu, p->Rt1) = val; |
| 322 | } | 325 | } |
| 323 | 326 | ||
| @@ -333,9 +336,11 @@ static bool access_cntp_cval(struct kvm_vcpu *vcpu, | |||
| 333 | if (p->is_write) { | 336 | if (p->is_write) { |
| 334 | val = (u64)*vcpu_reg(vcpu, p->Rt2) << 32; | 337 | val = (u64)*vcpu_reg(vcpu, p->Rt2) << 32; |
| 335 | val |= *vcpu_reg(vcpu, p->Rt1); | 338 | val |= *vcpu_reg(vcpu, p->Rt1); |
| 336 | kvm_arm_timer_set_reg(vcpu, KVM_REG_ARM_PTIMER_CVAL, val); | 339 | kvm_arm_timer_write_sysreg(vcpu, |
| 340 | TIMER_PTIMER, TIMER_REG_CVAL, val); | ||
| 337 | } else { | 341 | } else { |
| 338 | val = kvm_arm_timer_get_reg(vcpu, KVM_REG_ARM_PTIMER_CVAL); | 342 | val = kvm_arm_timer_read_sysreg(vcpu, |
| 343 | TIMER_PTIMER, TIMER_REG_CVAL); | ||
| 339 | *vcpu_reg(vcpu, p->Rt1) = val; | 344 | *vcpu_reg(vcpu, p->Rt1) = val; |
| 340 | *vcpu_reg(vcpu, p->Rt2) = val >> 32; | 345 | *vcpu_reg(vcpu, p->Rt2) = val >> 32; |
| 341 | } | 346 | } |
| @@ -1450,6 +1455,6 @@ void kvm_reset_coprocs(struct kvm_vcpu *vcpu) | |||
| 1450 | reset_coproc_regs(vcpu, table, num); | 1455 | reset_coproc_regs(vcpu, table, num); |
| 1451 | 1456 | ||
| 1452 | for (num = 1; num < NR_CP15_REGS; num++) | 1457 | for (num = 1; num < NR_CP15_REGS; num++) |
| 1453 | if (vcpu_cp15(vcpu, num) == 0x42424242) | 1458 | WARN(vcpu_cp15(vcpu, num) == 0x42424242, |
| 1454 | panic("Didn't reset vcpu_cp15(vcpu, %zi)", num); | 1459 | "Didn't reset vcpu_cp15(vcpu, %zi)", num); |
| 1455 | } | 1460 | } |
diff --git a/arch/arm/kvm/hyp/cp15-sr.c b/arch/arm/kvm/hyp/cp15-sr.c index c4782812714c..8bf895ec6e04 100644 --- a/arch/arm/kvm/hyp/cp15-sr.c +++ b/arch/arm/kvm/hyp/cp15-sr.c | |||
| @@ -27,7 +27,6 @@ static u64 *cp15_64(struct kvm_cpu_context *ctxt, int idx) | |||
| 27 | 27 | ||
| 28 | void __hyp_text __sysreg_save_state(struct kvm_cpu_context *ctxt) | 28 | void __hyp_text __sysreg_save_state(struct kvm_cpu_context *ctxt) |
| 29 | { | 29 | { |
| 30 | ctxt->cp15[c0_MPIDR] = read_sysreg(VMPIDR); | ||
| 31 | ctxt->cp15[c0_CSSELR] = read_sysreg(CSSELR); | 30 | ctxt->cp15[c0_CSSELR] = read_sysreg(CSSELR); |
| 32 | ctxt->cp15[c1_SCTLR] = read_sysreg(SCTLR); | 31 | ctxt->cp15[c1_SCTLR] = read_sysreg(SCTLR); |
| 33 | ctxt->cp15[c1_CPACR] = read_sysreg(CPACR); | 32 | ctxt->cp15[c1_CPACR] = read_sysreg(CPACR); |
diff --git a/arch/arm/kvm/hyp/hyp-entry.S b/arch/arm/kvm/hyp/hyp-entry.S index aa3f9a9837ac..6ed3cf23fe89 100644 --- a/arch/arm/kvm/hyp/hyp-entry.S +++ b/arch/arm/kvm/hyp/hyp-entry.S | |||
| @@ -176,7 +176,7 @@ THUMB( orr lr, lr, #PSR_T_BIT ) | |||
| 176 | msr spsr_cxsf, lr | 176 | msr spsr_cxsf, lr |
| 177 | ldr lr, =panic | 177 | ldr lr, =panic |
| 178 | msr ELR_hyp, lr | 178 | msr ELR_hyp, lr |
| 179 | ldr lr, =kvm_call_hyp | 179 | ldr lr, =__kvm_call_hyp |
| 180 | clrex | 180 | clrex |
| 181 | eret | 181 | eret |
| 182 | ENDPROC(__hyp_do_panic) | 182 | ENDPROC(__hyp_do_panic) |
diff --git a/arch/arm/kvm/hyp/switch.c b/arch/arm/kvm/hyp/switch.c index acf1c37fa49c..3b058a5d7c5f 100644 --- a/arch/arm/kvm/hyp/switch.c +++ b/arch/arm/kvm/hyp/switch.c | |||
| @@ -77,7 +77,7 @@ static void __hyp_text __deactivate_traps(struct kvm_vcpu *vcpu) | |||
| 77 | static void __hyp_text __activate_vm(struct kvm_vcpu *vcpu) | 77 | static void __hyp_text __activate_vm(struct kvm_vcpu *vcpu) |
| 78 | { | 78 | { |
| 79 | struct kvm *kvm = kern_hyp_va(vcpu->kvm); | 79 | struct kvm *kvm = kern_hyp_va(vcpu->kvm); |
| 80 | write_sysreg(kvm->arch.vttbr, VTTBR); | 80 | write_sysreg(kvm_get_vttbr(kvm), VTTBR); |
| 81 | write_sysreg(vcpu->arch.midr, VPIDR); | 81 | write_sysreg(vcpu->arch.midr, VPIDR); |
| 82 | } | 82 | } |
| 83 | 83 | ||
diff --git a/arch/arm/kvm/hyp/tlb.c b/arch/arm/kvm/hyp/tlb.c index c0edd450e104..8e4afba73635 100644 --- a/arch/arm/kvm/hyp/tlb.c +++ b/arch/arm/kvm/hyp/tlb.c | |||
| @@ -41,7 +41,7 @@ void __hyp_text __kvm_tlb_flush_vmid(struct kvm *kvm) | |||
| 41 | 41 | ||
| 42 | /* Switch to requested VMID */ | 42 | /* Switch to requested VMID */ |
| 43 | kvm = kern_hyp_va(kvm); | 43 | kvm = kern_hyp_va(kvm); |
| 44 | write_sysreg(kvm->arch.vttbr, VTTBR); | 44 | write_sysreg(kvm_get_vttbr(kvm), VTTBR); |
| 45 | isb(); | 45 | isb(); |
| 46 | 46 | ||
| 47 | write_sysreg(0, TLBIALLIS); | 47 | write_sysreg(0, TLBIALLIS); |
| @@ -61,7 +61,7 @@ void __hyp_text __kvm_tlb_flush_local_vmid(struct kvm_vcpu *vcpu) | |||
| 61 | struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm); | 61 | struct kvm *kvm = kern_hyp_va(kern_hyp_va(vcpu)->kvm); |
| 62 | 62 | ||
| 63 | /* Switch to requested VMID */ | 63 | /* Switch to requested VMID */ |
| 64 | write_sysreg(kvm->arch.vttbr, VTTBR); | 64 | write_sysreg(kvm_get_vttbr(kvm), VTTBR); |
| 65 | isb(); | 65 | isb(); |
| 66 | 66 | ||
| 67 | write_sysreg(0, TLBIALL); | 67 | write_sysreg(0, TLBIALL); |
diff --git a/arch/arm/kvm/interrupts.S b/arch/arm/kvm/interrupts.S index 80a1d6cd261c..a08e6419ebe9 100644 --- a/arch/arm/kvm/interrupts.S +++ b/arch/arm/kvm/interrupts.S | |||
| @@ -42,7 +42,7 @@ | |||
| 42 | * r12: caller save | 42 | * r12: caller save |
| 43 | * rest: callee save | 43 | * rest: callee save |
| 44 | */ | 44 | */ |
| 45 | ENTRY(kvm_call_hyp) | 45 | ENTRY(__kvm_call_hyp) |
| 46 | hvc #0 | 46 | hvc #0 |
| 47 | bx lr | 47 | bx lr |
| 48 | ENDPROC(kvm_call_hyp) | 48 | ENDPROC(__kvm_call_hyp) |
diff --git a/arch/arm/kvm/reset.c b/arch/arm/kvm/reset.c index 5ed0c3ee33d6..e53327912adc 100644 --- a/arch/arm/kvm/reset.c +++ b/arch/arm/kvm/reset.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <asm/cputype.h> | 26 | #include <asm/cputype.h> |
| 27 | #include <asm/kvm_arm.h> | 27 | #include <asm/kvm_arm.h> |
| 28 | #include <asm/kvm_coproc.h> | 28 | #include <asm/kvm_coproc.h> |
| 29 | #include <asm/kvm_emulate.h> | ||
| 29 | 30 | ||
| 30 | #include <kvm/arm_arch_timer.h> | 31 | #include <kvm/arm_arch_timer.h> |
| 31 | 32 | ||
| @@ -69,6 +70,29 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu) | |||
| 69 | /* Reset CP15 registers */ | 70 | /* Reset CP15 registers */ |
| 70 | kvm_reset_coprocs(vcpu); | 71 | kvm_reset_coprocs(vcpu); |
| 71 | 72 | ||
| 73 | /* | ||
| 74 | * Additional reset state handling that PSCI may have imposed on us. | ||
| 75 | * Must be done after all the sys_reg reset. | ||
| 76 | */ | ||
| 77 | if (READ_ONCE(vcpu->arch.reset_state.reset)) { | ||
| 78 | unsigned long target_pc = vcpu->arch.reset_state.pc; | ||
| 79 | |||
| 80 | /* Gracefully handle Thumb2 entry point */ | ||
| 81 | if (target_pc & 1) { | ||
| 82 | target_pc &= ~1UL; | ||
| 83 | vcpu_set_thumb(vcpu); | ||
| 84 | } | ||
| 85 | |||
| 86 | /* Propagate caller endianness */ | ||
| 87 | if (vcpu->arch.reset_state.be) | ||
| 88 | kvm_vcpu_set_be(vcpu); | ||
| 89 | |||
| 90 | *vcpu_pc(vcpu) = target_pc; | ||
| 91 | vcpu_set_reg(vcpu, 0, vcpu->arch.reset_state.r0); | ||
| 92 | |||
| 93 | vcpu->arch.reset_state.reset = false; | ||
| 94 | } | ||
| 95 | |||
| 72 | /* Reset arch_timer context */ | 96 | /* Reset arch_timer context */ |
| 73 | return kvm_timer_vcpu_reset(vcpu); | 97 | return kvm_timer_vcpu_reset(vcpu); |
| 74 | } | 98 | } |
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index ad25fd1872c7..0bff0176db2c 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile | |||
| @@ -39,7 +39,7 @@ $(obj)/csumpartialcopy.o: $(obj)/csumpartialcopygeneric.S | |||
| 39 | $(obj)/csumpartialcopyuser.o: $(obj)/csumpartialcopygeneric.S | 39 | $(obj)/csumpartialcopyuser.o: $(obj)/csumpartialcopygeneric.S |
| 40 | 40 | ||
| 41 | ifeq ($(CONFIG_KERNEL_MODE_NEON),y) | 41 | ifeq ($(CONFIG_KERNEL_MODE_NEON),y) |
| 42 | NEON_FLAGS := -mfloat-abi=softfp -mfpu=neon | 42 | NEON_FLAGS := -march=armv7-a -mfloat-abi=softfp -mfpu=neon |
| 43 | CFLAGS_xor-neon.o += $(NEON_FLAGS) | 43 | CFLAGS_xor-neon.o += $(NEON_FLAGS) |
| 44 | obj-$(CONFIG_XOR_BLOCKS) += xor-neon.o | 44 | obj-$(CONFIG_XOR_BLOCKS) += xor-neon.o |
| 45 | endif | 45 | endif |
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h index 93cddab73072..95bd35991288 100644 --- a/arch/arm/lib/bitops.h +++ b/arch/arm/lib/bitops.h | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | ENTRY( \name ) | 7 | ENTRY( \name ) |
| 8 | UNWIND( .fnstart ) | 8 | UNWIND( .fnstart ) |
| 9 | ands ip, r1, #3 | 9 | ands ip, r1, #3 |
| 10 | strneb r1, [ip] @ assert word-aligned | 10 | strbne r1, [ip] @ assert word-aligned |
| 11 | mov r2, #1 | 11 | mov r2, #1 |
| 12 | and r3, r0, #31 @ Get bit offset | 12 | and r3, r0, #31 @ Get bit offset |
| 13 | mov r0, r0, lsr #5 | 13 | mov r0, r0, lsr #5 |
| @@ -32,7 +32,7 @@ ENDPROC(\name ) | |||
| 32 | ENTRY( \name ) | 32 | ENTRY( \name ) |
| 33 | UNWIND( .fnstart ) | 33 | UNWIND( .fnstart ) |
| 34 | ands ip, r1, #3 | 34 | ands ip, r1, #3 |
| 35 | strneb r1, [ip] @ assert word-aligned | 35 | strbne r1, [ip] @ assert word-aligned |
| 36 | mov r2, #1 | 36 | mov r2, #1 |
| 37 | and r3, r0, #31 @ Get bit offset | 37 | and r3, r0, #31 @ Get bit offset |
| 38 | mov r0, r0, lsr #5 | 38 | mov r0, r0, lsr #5 |
| @@ -62,7 +62,7 @@ ENDPROC(\name ) | |||
| 62 | ENTRY( \name ) | 62 | ENTRY( \name ) |
| 63 | UNWIND( .fnstart ) | 63 | UNWIND( .fnstart ) |
| 64 | ands ip, r1, #3 | 64 | ands ip, r1, #3 |
| 65 | strneb r1, [ip] @ assert word-aligned | 65 | strbne r1, [ip] @ assert word-aligned |
| 66 | and r2, r0, #31 | 66 | and r2, r0, #31 |
| 67 | mov r0, r0, lsr #5 | 67 | mov r0, r0, lsr #5 |
| 68 | mov r3, #1 | 68 | mov r3, #1 |
| @@ -89,7 +89,7 @@ ENDPROC(\name ) | |||
| 89 | ENTRY( \name ) | 89 | ENTRY( \name ) |
| 90 | UNWIND( .fnstart ) | 90 | UNWIND( .fnstart ) |
| 91 | ands ip, r1, #3 | 91 | ands ip, r1, #3 |
| 92 | strneb r1, [ip] @ assert word-aligned | 92 | strbne r1, [ip] @ assert word-aligned |
| 93 | and r3, r0, #31 | 93 | and r3, r0, #31 |
| 94 | mov r0, r0, lsr #5 | 94 | mov r0, r0, lsr #5 |
| 95 | save_and_disable_irqs ip | 95 | save_and_disable_irqs ip |
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S index e936352ccb00..55946e3fa2ba 100644 --- a/arch/arm/lib/clear_user.S +++ b/arch/arm/lib/clear_user.S | |||
| @@ -44,7 +44,7 @@ UNWIND(.save {r1, lr}) | |||
| 44 | strusr r2, r0, 1, ne, rept=2 | 44 | strusr r2, r0, 1, ne, rept=2 |
| 45 | tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 | 45 | tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 |
| 46 | it ne @ explicit IT needed for the label | 46 | it ne @ explicit IT needed for the label |
| 47 | USER( strnebt r2, [r0]) | 47 | USER( strbtne r2, [r0]) |
| 48 | mov r0, #0 | 48 | mov r0, #0 |
| 49 | ldmfd sp!, {r1, pc} | 49 | ldmfd sp!, {r1, pc} |
| 50 | UNWIND(.fnend) | 50 | UNWIND(.fnend) |
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S index 0d4c189c7f4f..6a3419e2c6d8 100644 --- a/arch/arm/lib/copy_from_user.S +++ b/arch/arm/lib/copy_from_user.S | |||
| @@ -91,7 +91,7 @@ | |||
| 91 | .endm | 91 | .endm |
| 92 | 92 | ||
| 93 | .macro str1b ptr reg cond=al abort | 93 | .macro str1b ptr reg cond=al abort |
| 94 | str\cond\()b \reg, [\ptr], #1 | 94 | strb\cond \reg, [\ptr], #1 |
| 95 | .endm | 95 | .endm |
| 96 | 96 | ||
| 97 | .macro enter reg1 reg2 | 97 | .macro enter reg1 reg2 |
diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S index 6ee2f6706f86..b84ce1792043 100644 --- a/arch/arm/lib/copy_page.S +++ b/arch/arm/lib/copy_page.S | |||
| @@ -39,9 +39,9 @@ ENTRY(copy_page) | |||
| 39 | .endr | 39 | .endr |
| 40 | subs r2, r2, #1 @ 1 | 40 | subs r2, r2, #1 @ 1 |
| 41 | stmia r0!, {r3, r4, ip, lr} @ 4 | 41 | stmia r0!, {r3, r4, ip, lr} @ 4 |
| 42 | ldmgtia r1!, {r3, r4, ip, lr} @ 4 | 42 | ldmiagt r1!, {r3, r4, ip, lr} @ 4 |
| 43 | bgt 1b @ 1 | 43 | bgt 1b @ 1 |
| 44 | PLD( ldmeqia r1!, {r3, r4, ip, lr} ) | 44 | PLD( ldmiaeq r1!, {r3, r4, ip, lr} ) |
| 45 | PLD( beq 2b ) | 45 | PLD( beq 2b ) |
| 46 | ldmfd sp!, {r4, pc} @ 3 | 46 | ldmfd sp!, {r4, pc} @ 3 |
| 47 | ENDPROC(copy_page) | 47 | ENDPROC(copy_page) |
diff --git a/arch/arm/lib/copy_template.S b/arch/arm/lib/copy_template.S index 652e4d98cd47..a11f2c25e03a 100644 --- a/arch/arm/lib/copy_template.S +++ b/arch/arm/lib/copy_template.S | |||
| @@ -99,7 +99,7 @@ | |||
| 99 | 99 | ||
| 100 | CALGN( ands ip, r0, #31 ) | 100 | CALGN( ands ip, r0, #31 ) |
| 101 | CALGN( rsb r3, ip, #32 ) | 101 | CALGN( rsb r3, ip, #32 ) |
| 102 | CALGN( sbcnes r4, r3, r2 ) @ C is always set here | 102 | CALGN( sbcsne r4, r3, r2 ) @ C is always set here |
| 103 | CALGN( bcs 2f ) | 103 | CALGN( bcs 2f ) |
| 104 | CALGN( adr r4, 6f ) | 104 | CALGN( adr r4, 6f ) |
| 105 | CALGN( subs r2, r2, r3 ) @ C gets set | 105 | CALGN( subs r2, r2, r3 ) @ C gets set |
| @@ -204,7 +204,7 @@ | |||
| 204 | 204 | ||
| 205 | CALGN( ands ip, r0, #31 ) | 205 | CALGN( ands ip, r0, #31 ) |
| 206 | CALGN( rsb ip, ip, #32 ) | 206 | CALGN( rsb ip, ip, #32 ) |
| 207 | CALGN( sbcnes r4, ip, r2 ) @ C is always set here | 207 | CALGN( sbcsne r4, ip, r2 ) @ C is always set here |
| 208 | CALGN( subcc r2, r2, ip ) | 208 | CALGN( subcc r2, r2, ip ) |
| 209 | CALGN( bcc 15f ) | 209 | CALGN( bcc 15f ) |
| 210 | 210 | ||
| @@ -241,7 +241,7 @@ | |||
| 241 | orr r9, r9, ip, lspush #\push | 241 | orr r9, r9, ip, lspush #\push |
| 242 | mov ip, ip, lspull #\pull | 242 | mov ip, ip, lspull #\pull |
| 243 | orr ip, ip, lr, lspush #\push | 243 | orr ip, ip, lr, lspush #\push |
| 244 | str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f | 244 | str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, abort=19f |
| 245 | bge 12b | 245 | bge 12b |
| 246 | PLD( cmn r2, #96 ) | 246 | PLD( cmn r2, #96 ) |
| 247 | PLD( bge 13b ) | 247 | PLD( bge 13b ) |
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S index 97a6ff4b7e3c..c7d08096e354 100644 --- a/arch/arm/lib/copy_to_user.S +++ b/arch/arm/lib/copy_to_user.S | |||
| @@ -49,7 +49,7 @@ | |||
| 49 | .endm | 49 | .endm |
| 50 | 50 | ||
| 51 | .macro ldr1b ptr reg cond=al abort | 51 | .macro ldr1b ptr reg cond=al abort |
| 52 | ldr\cond\()b \reg, [\ptr], #1 | 52 | ldrb\cond \reg, [\ptr], #1 |
| 53 | .endm | 53 | .endm |
| 54 | 54 | ||
| 55 | #ifdef CONFIG_CPU_USE_DOMAINS | 55 | #ifdef CONFIG_CPU_USE_DOMAINS |
diff --git a/arch/arm/lib/csumpartial.S b/arch/arm/lib/csumpartial.S index 984e0f29d548..bd84e2db353b 100644 --- a/arch/arm/lib/csumpartial.S +++ b/arch/arm/lib/csumpartial.S | |||
| @@ -40,9 +40,9 @@ td3 .req lr | |||
| 40 | /* we must have at least one byte. */ | 40 | /* we must have at least one byte. */ |
| 41 | tst buf, #1 @ odd address? | 41 | tst buf, #1 @ odd address? |
| 42 | movne sum, sum, ror #8 | 42 | movne sum, sum, ror #8 |
| 43 | ldrneb td0, [buf], #1 | 43 | ldrbne td0, [buf], #1 |
| 44 | subne len, len, #1 | 44 | subne len, len, #1 |
| 45 | adcnes sum, sum, td0, put_byte_1 | 45 | adcsne sum, sum, td0, put_byte_1 |
| 46 | 46 | ||
| 47 | .Lless4: tst len, #6 | 47 | .Lless4: tst len, #6 |
| 48 | beq .Lless8_byte | 48 | beq .Lless8_byte |
| @@ -68,8 +68,8 @@ td3 .req lr | |||
| 68 | bne .Lless8_wordlp | 68 | bne .Lless8_wordlp |
| 69 | 69 | ||
| 70 | .Lless8_byte: tst len, #1 @ odd number of bytes | 70 | .Lless8_byte: tst len, #1 @ odd number of bytes |
| 71 | ldrneb td0, [buf], #1 @ include last byte | 71 | ldrbne td0, [buf], #1 @ include last byte |
| 72 | adcnes sum, sum, td0, put_byte_0 @ update checksum | 72 | adcsne sum, sum, td0, put_byte_0 @ update checksum |
| 73 | 73 | ||
| 74 | .Ldone: adc r0, sum, #0 @ collect up the last carry | 74 | .Ldone: adc r0, sum, #0 @ collect up the last carry |
| 75 | ldr td0, [sp], #4 | 75 | ldr td0, [sp], #4 |
| @@ -78,17 +78,17 @@ td3 .req lr | |||
| 78 | ldr pc, [sp], #4 @ return | 78 | ldr pc, [sp], #4 @ return |
| 79 | 79 | ||
| 80 | .Lnot_aligned: tst buf, #1 @ odd address | 80 | .Lnot_aligned: tst buf, #1 @ odd address |
| 81 | ldrneb td0, [buf], #1 @ make even | 81 | ldrbne td0, [buf], #1 @ make even |
| 82 | subne len, len, #1 | 82 | subne len, len, #1 |
| 83 | adcnes sum, sum, td0, put_byte_1 @ update checksum | 83 | adcsne sum, sum, td0, put_byte_1 @ update checksum |
| 84 | 84 | ||
| 85 | tst buf, #2 @ 32-bit aligned? | 85 | tst buf, #2 @ 32-bit aligned? |
| 86 | #if __LINUX_ARM_ARCH__ >= 4 | 86 | #if __LINUX_ARM_ARCH__ >= 4 |
| 87 | ldrneh td0, [buf], #2 @ make 32-bit aligned | 87 | ldrhne td0, [buf], #2 @ make 32-bit aligned |
| 88 | subne len, len, #2 | 88 | subne len, len, #2 |
| 89 | #else | 89 | #else |
| 90 | ldrneb td0, [buf], #1 | 90 | ldrbne td0, [buf], #1 |
| 91 | ldrneb ip, [buf], #1 | 91 | ldrbne ip, [buf], #1 |
| 92 | subne len, len, #2 | 92 | subne len, len, #2 |
| 93 | #ifndef __ARMEB__ | 93 | #ifndef __ARMEB__ |
| 94 | orrne td0, td0, ip, lsl #8 | 94 | orrne td0, td0, ip, lsl #8 |
| @@ -96,7 +96,7 @@ td3 .req lr | |||
| 96 | orrne td0, ip, td0, lsl #8 | 96 | orrne td0, ip, td0, lsl #8 |
| 97 | #endif | 97 | #endif |
| 98 | #endif | 98 | #endif |
| 99 | adcnes sum, sum, td0 @ update checksum | 99 | adcsne sum, sum, td0 @ update checksum |
| 100 | ret lr | 100 | ret lr |
| 101 | 101 | ||
| 102 | ENTRY(csum_partial) | 102 | ENTRY(csum_partial) |
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S index 10b45909610c..08e17758cbea 100644 --- a/arch/arm/lib/csumpartialcopygeneric.S +++ b/arch/arm/lib/csumpartialcopygeneric.S | |||
| @@ -148,9 +148,9 @@ FN_ENTRY | |||
| 148 | strb r5, [dst], #1 | 148 | strb r5, [dst], #1 |
| 149 | mov r5, r4, get_byte_2 | 149 | mov r5, r4, get_byte_2 |
| 150 | .Lexit: tst len, #1 | 150 | .Lexit: tst len, #1 |
| 151 | strneb r5, [dst], #1 | 151 | strbne r5, [dst], #1 |
| 152 | andne r5, r5, #255 | 152 | andne r5, r5, #255 |
| 153 | adcnes sum, sum, r5, put_byte_0 | 153 | adcsne sum, sum, r5, put_byte_0 |
| 154 | 154 | ||
| 155 | /* | 155 | /* |
| 156 | * If the dst pointer was not 16-bit aligned, we | 156 | * If the dst pointer was not 16-bit aligned, we |
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S index b83fdc06286a..f4716d98e0b4 100644 --- a/arch/arm/lib/csumpartialcopyuser.S +++ b/arch/arm/lib/csumpartialcopyuser.S | |||
| @@ -95,7 +95,7 @@ | |||
| 95 | add r2, r2, r1 | 95 | add r2, r2, r1 |
| 96 | mov r0, #0 @ zero the buffer | 96 | mov r0, #0 @ zero the buffer |
| 97 | 9002: teq r2, r1 | 97 | 9002: teq r2, r1 |
| 98 | strneb r0, [r1], #1 | 98 | strbne r0, [r1], #1 |
| 99 | bne 9002b | 99 | bne 9002b |
| 100 | load_regs | 100 | load_regs |
| 101 | .popsection | 101 | .popsection |
diff --git a/arch/arm/lib/div64.S b/arch/arm/lib/div64.S index a9eafe4981eb..4d80f690c48b 100644 --- a/arch/arm/lib/div64.S +++ b/arch/arm/lib/div64.S | |||
| @@ -88,8 +88,8 @@ UNWIND(.fnstart) | |||
| 88 | @ Break out early if dividend reaches 0. | 88 | @ Break out early if dividend reaches 0. |
| 89 | 2: cmp xh, yl | 89 | 2: cmp xh, yl |
| 90 | orrcs yh, yh, ip | 90 | orrcs yh, yh, ip |
| 91 | subcss xh, xh, yl | 91 | subscs xh, xh, yl |
| 92 | movnes ip, ip, lsr #1 | 92 | movsne ip, ip, lsr #1 |
| 93 | mov yl, yl, lsr #1 | 93 | mov yl, yl, lsr #1 |
| 94 | bne 2b | 94 | bne 2b |
| 95 | 95 | ||
diff --git a/arch/arm/lib/floppydma.S b/arch/arm/lib/floppydma.S index 617150b1baef..de68d3b343e3 100644 --- a/arch/arm/lib/floppydma.S +++ b/arch/arm/lib/floppydma.S | |||
| @@ -14,8 +14,8 @@ | |||
| 14 | .global floppy_fiqin_end | 14 | .global floppy_fiqin_end |
| 15 | ENTRY(floppy_fiqin_start) | 15 | ENTRY(floppy_fiqin_start) |
| 16 | subs r9, r9, #1 | 16 | subs r9, r9, #1 |
| 17 | ldrgtb r12, [r11, #-4] | 17 | ldrbgt r12, [r11, #-4] |
| 18 | ldrleb r12, [r11], #0 | 18 | ldrble r12, [r11], #0 |
| 19 | strb r12, [r10], #1 | 19 | strb r12, [r10], #1 |
| 20 | subs pc, lr, #4 | 20 | subs pc, lr, #4 |
| 21 | floppy_fiqin_end: | 21 | floppy_fiqin_end: |
| @@ -23,10 +23,10 @@ floppy_fiqin_end: | |||
| 23 | .global floppy_fiqout_end | 23 | .global floppy_fiqout_end |
| 24 | ENTRY(floppy_fiqout_start) | 24 | ENTRY(floppy_fiqout_start) |
| 25 | subs r9, r9, #1 | 25 | subs r9, r9, #1 |
| 26 | ldrgeb r12, [r10], #1 | 26 | ldrbge r12, [r10], #1 |
| 27 | movlt r12, #0 | 27 | movlt r12, #0 |
| 28 | strleb r12, [r11], #0 | 28 | strble r12, [r11], #0 |
| 29 | subles pc, lr, #4 | 29 | subsle pc, lr, #4 |
| 30 | strb r12, [r11, #-4] | 30 | strb r12, [r11, #-4] |
| 31 | subs pc, lr, #4 | 31 | subs pc, lr, #4 |
| 32 | floppy_fiqout_end: | 32 | floppy_fiqout_end: |
diff --git a/arch/arm/lib/io-readsb.S b/arch/arm/lib/io-readsb.S index c31b2f3153f1..91038a0a77b5 100644 --- a/arch/arm/lib/io-readsb.S +++ b/arch/arm/lib/io-readsb.S | |||
| @@ -16,10 +16,10 @@ | |||
| 16 | cmp ip, #2 | 16 | cmp ip, #2 |
| 17 | ldrb r3, [r0] | 17 | ldrb r3, [r0] |
| 18 | strb r3, [r1], #1 | 18 | strb r3, [r1], #1 |
| 19 | ldrgeb r3, [r0] | 19 | ldrbge r3, [r0] |
| 20 | strgeb r3, [r1], #1 | 20 | strbge r3, [r1], #1 |
| 21 | ldrgtb r3, [r0] | 21 | ldrbgt r3, [r0] |
| 22 | strgtb r3, [r1], #1 | 22 | strbgt r3, [r1], #1 |
| 23 | subs r2, r2, ip | 23 | subs r2, r2, ip |
| 24 | bne .Linsb_aligned | 24 | bne .Linsb_aligned |
| 25 | 25 | ||
| @@ -72,7 +72,7 @@ ENTRY(__raw_readsb) | |||
| 72 | bpl .Linsb_16_lp | 72 | bpl .Linsb_16_lp |
| 73 | 73 | ||
| 74 | tst r2, #15 | 74 | tst r2, #15 |
| 75 | ldmeqfd sp!, {r4 - r6, pc} | 75 | ldmfdeq sp!, {r4 - r6, pc} |
| 76 | 76 | ||
| 77 | .Linsb_no_16: tst r2, #8 | 77 | .Linsb_no_16: tst r2, #8 |
| 78 | beq .Linsb_no_8 | 78 | beq .Linsb_no_8 |
| @@ -109,15 +109,15 @@ ENTRY(__raw_readsb) | |||
| 109 | str r3, [r1], #4 | 109 | str r3, [r1], #4 |
| 110 | 110 | ||
| 111 | .Linsb_no_4: ands r2, r2, #3 | 111 | .Linsb_no_4: ands r2, r2, #3 |
| 112 | ldmeqfd sp!, {r4 - r6, pc} | 112 | ldmfdeq sp!, {r4 - r6, pc} |
| 113 | 113 | ||
| 114 | cmp r2, #2 | 114 | cmp r2, #2 |
| 115 | ldrb r3, [r0] | 115 | ldrb r3, [r0] |
| 116 | strb r3, [r1], #1 | 116 | strb r3, [r1], #1 |
| 117 | ldrgeb r3, [r0] | 117 | ldrbge r3, [r0] |
| 118 | strgeb r3, [r1], #1 | 118 | strbge r3, [r1], #1 |
| 119 | ldrgtb r3, [r0] | 119 | ldrbgt r3, [r0] |
| 120 | strgtb r3, [r1] | 120 | strbgt r3, [r1] |
| 121 | 121 | ||
| 122 | ldmfd sp!, {r4 - r6, pc} | 122 | ldmfd sp!, {r4 - r6, pc} |
| 123 | ENDPROC(__raw_readsb) | 123 | ENDPROC(__raw_readsb) |
diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S index 2ed86fa5465f..f2e2064318d2 100644 --- a/arch/arm/lib/io-readsl.S +++ b/arch/arm/lib/io-readsl.S | |||
| @@ -30,7 +30,7 @@ ENTRY(__raw_readsl) | |||
| 30 | 2: movs r2, r2, lsl #31 | 30 | 2: movs r2, r2, lsl #31 |
| 31 | ldrcs r3, [r0, #0] | 31 | ldrcs r3, [r0, #0] |
| 32 | ldrcs ip, [r0, #0] | 32 | ldrcs ip, [r0, #0] |
| 33 | stmcsia r1!, {r3, ip} | 33 | stmiacs r1!, {r3, ip} |
| 34 | ldrne r3, [r0, #0] | 34 | ldrne r3, [r0, #0] |
| 35 | strne r3, [r1, #0] | 35 | strne r3, [r1, #0] |
| 36 | ret lr | 36 | ret lr |
diff --git a/arch/arm/lib/io-readsw-armv3.S b/arch/arm/lib/io-readsw-armv3.S index 413da9914529..8b25b69c516e 100644 --- a/arch/arm/lib/io-readsw-armv3.S +++ b/arch/arm/lib/io-readsw-armv3.S | |||
| @@ -68,7 +68,7 @@ ENTRY(__raw_readsw) | |||
| 68 | bpl .Linsw_8_lp | 68 | bpl .Linsw_8_lp |
| 69 | 69 | ||
| 70 | tst r2, #7 | 70 | tst r2, #7 |
| 71 | ldmeqfd sp!, {r4, r5, r6, pc} | 71 | ldmfdeq sp!, {r4, r5, r6, pc} |
| 72 | 72 | ||
| 73 | .Lno_insw_8: tst r2, #4 | 73 | .Lno_insw_8: tst r2, #4 |
| 74 | beq .Lno_insw_4 | 74 | beq .Lno_insw_4 |
| @@ -97,9 +97,9 @@ ENTRY(__raw_readsw) | |||
| 97 | 97 | ||
| 98 | .Lno_insw_2: tst r2, #1 | 98 | .Lno_insw_2: tst r2, #1 |
| 99 | ldrne r3, [r0] | 99 | ldrne r3, [r0] |
| 100 | strneb r3, [r1], #1 | 100 | strbne r3, [r1], #1 |
| 101 | movne r3, r3, lsr #8 | 101 | movne r3, r3, lsr #8 |
| 102 | strneb r3, [r1] | 102 | strbne r3, [r1] |
| 103 | 103 | ||
| 104 | ldmfd sp!, {r4, r5, r6, pc} | 104 | ldmfd sp!, {r4, r5, r6, pc} |
| 105 | 105 | ||
diff --git a/arch/arm/lib/io-readsw-armv4.S b/arch/arm/lib/io-readsw-armv4.S index d9a45e9692ae..5efdd66f5dcd 100644 --- a/arch/arm/lib/io-readsw-armv4.S +++ b/arch/arm/lib/io-readsw-armv4.S | |||
| @@ -76,8 +76,8 @@ ENTRY(__raw_readsw) | |||
| 76 | pack r3, r3, ip | 76 | pack r3, r3, ip |
| 77 | str r3, [r1], #4 | 77 | str r3, [r1], #4 |
| 78 | 78 | ||
| 79 | .Lno_insw_2: ldrneh r3, [r0] | 79 | .Lno_insw_2: ldrhne r3, [r0] |
| 80 | strneh r3, [r1] | 80 | strhne r3, [r1] |
| 81 | 81 | ||
| 82 | ldmfd sp!, {r4, r5, pc} | 82 | ldmfd sp!, {r4, r5, pc} |
| 83 | 83 | ||
| @@ -94,7 +94,7 @@ ENTRY(__raw_readsw) | |||
| 94 | #endif | 94 | #endif |
| 95 | 95 | ||
| 96 | .Linsw_noalign: stmfd sp!, {r4, lr} | 96 | .Linsw_noalign: stmfd sp!, {r4, lr} |
| 97 | ldrccb ip, [r1, #-1]! | 97 | ldrbcc ip, [r1, #-1]! |
| 98 | bcc 1f | 98 | bcc 1f |
| 99 | 99 | ||
| 100 | ldrh ip, [r0] | 100 | ldrh ip, [r0] |
| @@ -121,11 +121,11 @@ ENTRY(__raw_readsw) | |||
| 121 | 121 | ||
| 122 | 3: tst r2, #1 | 122 | 3: tst r2, #1 |
| 123 | strb ip, [r1], #1 | 123 | strb ip, [r1], #1 |
| 124 | ldrneh ip, [r0] | 124 | ldrhne ip, [r0] |
| 125 | _BE_ONLY_( movne ip, ip, ror #8 ) | 125 | _BE_ONLY_( movne ip, ip, ror #8 ) |
| 126 | strneb ip, [r1], #1 | 126 | strbne ip, [r1], #1 |
| 127 | _LE_ONLY_( movne ip, ip, lsr #8 ) | 127 | _LE_ONLY_( movne ip, ip, lsr #8 ) |
| 128 | _BE_ONLY_( movne ip, ip, lsr #24 ) | 128 | _BE_ONLY_( movne ip, ip, lsr #24 ) |
| 129 | strneb ip, [r1] | 129 | strbne ip, [r1] |
| 130 | ldmfd sp!, {r4, pc} | 130 | ldmfd sp!, {r4, pc} |
| 131 | ENDPROC(__raw_readsw) | 131 | ENDPROC(__raw_readsw) |
diff --git a/arch/arm/lib/io-writesb.S b/arch/arm/lib/io-writesb.S index a46bbc9b168b..7d2881a2381e 100644 --- a/arch/arm/lib/io-writesb.S +++ b/arch/arm/lib/io-writesb.S | |||
| @@ -36,10 +36,10 @@ | |||
| 36 | cmp ip, #2 | 36 | cmp ip, #2 |
| 37 | ldrb r3, [r1], #1 | 37 | ldrb r3, [r1], #1 |
| 38 | strb r3, [r0] | 38 | strb r3, [r0] |
| 39 | ldrgeb r3, [r1], #1 | 39 | ldrbge r3, [r1], #1 |
| 40 | strgeb r3, [r0] | 40 | strbge r3, [r0] |
| 41 | ldrgtb r3, [r1], #1 | 41 | ldrbgt r3, [r1], #1 |
| 42 | strgtb r3, [r0] | 42 | strbgt r3, [r0] |
| 43 | subs r2, r2, ip | 43 | subs r2, r2, ip |
| 44 | bne .Loutsb_aligned | 44 | bne .Loutsb_aligned |
| 45 | 45 | ||
| @@ -64,7 +64,7 @@ ENTRY(__raw_writesb) | |||
| 64 | bpl .Loutsb_16_lp | 64 | bpl .Loutsb_16_lp |
| 65 | 65 | ||
| 66 | tst r2, #15 | 66 | tst r2, #15 |
| 67 | ldmeqfd sp!, {r4, r5, pc} | 67 | ldmfdeq sp!, {r4, r5, pc} |
| 68 | 68 | ||
| 69 | .Loutsb_no_16: tst r2, #8 | 69 | .Loutsb_no_16: tst r2, #8 |
| 70 | beq .Loutsb_no_8 | 70 | beq .Loutsb_no_8 |
| @@ -80,15 +80,15 @@ ENTRY(__raw_writesb) | |||
| 80 | outword r3 | 80 | outword r3 |
| 81 | 81 | ||
| 82 | .Loutsb_no_4: ands r2, r2, #3 | 82 | .Loutsb_no_4: ands r2, r2, #3 |
| 83 | ldmeqfd sp!, {r4, r5, pc} | 83 | ldmfdeq sp!, {r4, r5, pc} |
| 84 | 84 | ||
| 85 | cmp r2, #2 | 85 | cmp r2, #2 |
| 86 | ldrb r3, [r1], #1 | 86 | ldrb r3, [r1], #1 |
| 87 | strb r3, [r0] | 87 | strb r3, [r0] |
| 88 | ldrgeb r3, [r1], #1 | 88 | ldrbge r3, [r1], #1 |
| 89 | strgeb r3, [r0] | 89 | strbge r3, [r0] |
| 90 | ldrgtb r3, [r1] | 90 | ldrbgt r3, [r1] |
| 91 | strgtb r3, [r0] | 91 | strbgt r3, [r0] |
| 92 | 92 | ||
| 93 | ldmfd sp!, {r4, r5, pc} | 93 | ldmfd sp!, {r4, r5, pc} |
| 94 | ENDPROC(__raw_writesb) | 94 | ENDPROC(__raw_writesb) |
diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S index 4ea2435988c1..7596ac0c90b0 100644 --- a/arch/arm/lib/io-writesl.S +++ b/arch/arm/lib/io-writesl.S | |||
| @@ -28,7 +28,7 @@ ENTRY(__raw_writesl) | |||
| 28 | bpl 1b | 28 | bpl 1b |
| 29 | ldmfd sp!, {r4, lr} | 29 | ldmfd sp!, {r4, lr} |
| 30 | 2: movs r2, r2, lsl #31 | 30 | 2: movs r2, r2, lsl #31 |
| 31 | ldmcsia r1!, {r3, ip} | 31 | ldmiacs r1!, {r3, ip} |
| 32 | strcs r3, [r0, #0] | 32 | strcs r3, [r0, #0] |
| 33 | ldrne r3, [r1, #0] | 33 | ldrne r3, [r1, #0] |
| 34 | strcs ip, [r0, #0] | 34 | strcs ip, [r0, #0] |
diff --git a/arch/arm/lib/io-writesw-armv3.S b/arch/arm/lib/io-writesw-armv3.S index 121789eb6802..cb94b9b49405 100644 --- a/arch/arm/lib/io-writesw-armv3.S +++ b/arch/arm/lib/io-writesw-armv3.S | |||
| @@ -79,7 +79,7 @@ ENTRY(__raw_writesw) | |||
| 79 | bpl .Loutsw_8_lp | 79 | bpl .Loutsw_8_lp |
| 80 | 80 | ||
| 81 | tst r2, #7 | 81 | tst r2, #7 |
| 82 | ldmeqfd sp!, {r4, r5, r6, pc} | 82 | ldmfdeq sp!, {r4, r5, r6, pc} |
| 83 | 83 | ||
| 84 | .Lno_outsw_8: tst r2, #4 | 84 | .Lno_outsw_8: tst r2, #4 |
| 85 | beq .Lno_outsw_4 | 85 | beq .Lno_outsw_4 |
diff --git a/arch/arm/lib/io-writesw-armv4.S b/arch/arm/lib/io-writesw-armv4.S index 269f90c51ad2..e6645b2f249e 100644 --- a/arch/arm/lib/io-writesw-armv4.S +++ b/arch/arm/lib/io-writesw-armv4.S | |||
| @@ -61,8 +61,8 @@ ENTRY(__raw_writesw) | |||
| 61 | ldr r3, [r1], #4 | 61 | ldr r3, [r1], #4 |
| 62 | outword r3 | 62 | outword r3 |
| 63 | 63 | ||
| 64 | .Lno_outsw_2: ldrneh r3, [r1] | 64 | .Lno_outsw_2: ldrhne r3, [r1] |
| 65 | strneh r3, [r0] | 65 | strhne r3, [r0] |
| 66 | 66 | ||
| 67 | ldmfd sp!, {r4, r5, pc} | 67 | ldmfd sp!, {r4, r5, pc} |
| 68 | 68 | ||
| @@ -95,6 +95,6 @@ ENTRY(__raw_writesw) | |||
| 95 | 95 | ||
| 96 | tst r2, #1 | 96 | tst r2, #1 |
| 97 | 3: movne ip, r3, lsr #8 | 97 | 3: movne ip, r3, lsr #8 |
| 98 | strneh ip, [r0] | 98 | strhne ip, [r0] |
| 99 | ret lr | 99 | ret lr |
| 100 | ENDPROC(__raw_writesw) | 100 | ENDPROC(__raw_writesw) |
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S index 9397b2e532af..c23f9d9e2970 100644 --- a/arch/arm/lib/lib1funcs.S +++ b/arch/arm/lib/lib1funcs.S | |||
| @@ -96,7 +96,7 @@ Boston, MA 02111-1307, USA. */ | |||
| 96 | subhs \dividend, \dividend, \divisor, lsr #3 | 96 | subhs \dividend, \dividend, \divisor, lsr #3 |
| 97 | orrhs \result, \result, \curbit, lsr #3 | 97 | orrhs \result, \result, \curbit, lsr #3 |
| 98 | cmp \dividend, #0 @ Early termination? | 98 | cmp \dividend, #0 @ Early termination? |
| 99 | movnes \curbit, \curbit, lsr #4 @ No, any more bits to do? | 99 | movsne \curbit, \curbit, lsr #4 @ No, any more bits to do? |
| 100 | movne \divisor, \divisor, lsr #4 | 100 | movne \divisor, \divisor, lsr #4 |
| 101 | bne 1b | 101 | bne 1b |
| 102 | 102 | ||
| @@ -182,7 +182,7 @@ Boston, MA 02111-1307, USA. */ | |||
| 182 | subhs \dividend, \dividend, \divisor, lsr #3 | 182 | subhs \dividend, \dividend, \divisor, lsr #3 |
| 183 | cmp \dividend, #1 | 183 | cmp \dividend, #1 |
| 184 | mov \divisor, \divisor, lsr #4 | 184 | mov \divisor, \divisor, lsr #4 |
| 185 | subges \order, \order, #4 | 185 | subsge \order, \order, #4 |
| 186 | bge 1b | 186 | bge 1b |
| 187 | 187 | ||
| 188 | tst \order, #3 | 188 | tst \order, #3 |
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S index 64111bd4440b..4a6997bb4404 100644 --- a/arch/arm/lib/memcpy.S +++ b/arch/arm/lib/memcpy.S | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | .endm | 30 | .endm |
| 31 | 31 | ||
| 32 | .macro ldr1b ptr reg cond=al abort | 32 | .macro ldr1b ptr reg cond=al abort |
| 33 | ldr\cond\()b \reg, [\ptr], #1 | 33 | ldrb\cond \reg, [\ptr], #1 |
| 34 | .endm | 34 | .endm |
| 35 | 35 | ||
| 36 | .macro str1w ptr reg abort | 36 | .macro str1w ptr reg abort |
| @@ -42,7 +42,7 @@ | |||
| 42 | .endm | 42 | .endm |
| 43 | 43 | ||
| 44 | .macro str1b ptr reg cond=al abort | 44 | .macro str1b ptr reg cond=al abort |
| 45 | str\cond\()b \reg, [\ptr], #1 | 45 | strb\cond \reg, [\ptr], #1 |
| 46 | .endm | 46 | .endm |
| 47 | 47 | ||
| 48 | .macro enter reg1 reg2 | 48 | .macro enter reg1 reg2 |
diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S index 69a9d47fc5ab..d70304cb2cd0 100644 --- a/arch/arm/lib/memmove.S +++ b/arch/arm/lib/memmove.S | |||
| @@ -59,7 +59,7 @@ ENTRY(memmove) | |||
| 59 | blt 5f | 59 | blt 5f |
| 60 | 60 | ||
| 61 | CALGN( ands ip, r0, #31 ) | 61 | CALGN( ands ip, r0, #31 ) |
| 62 | CALGN( sbcnes r4, ip, r2 ) @ C is always set here | 62 | CALGN( sbcsne r4, ip, r2 ) @ C is always set here |
| 63 | CALGN( bcs 2f ) | 63 | CALGN( bcs 2f ) |
| 64 | CALGN( adr r4, 6f ) | 64 | CALGN( adr r4, 6f ) |
| 65 | CALGN( subs r2, r2, ip ) @ C is set here | 65 | CALGN( subs r2, r2, ip ) @ C is set here |
| @@ -114,20 +114,20 @@ ENTRY(memmove) | |||
| 114 | UNWIND( .save {r0, r4, lr} ) @ still in first stmfd block | 114 | UNWIND( .save {r0, r4, lr} ) @ still in first stmfd block |
| 115 | 115 | ||
| 116 | 8: movs r2, r2, lsl #31 | 116 | 8: movs r2, r2, lsl #31 |
| 117 | ldrneb r3, [r1, #-1]! | 117 | ldrbne r3, [r1, #-1]! |
| 118 | ldrcsb r4, [r1, #-1]! | 118 | ldrbcs r4, [r1, #-1]! |
| 119 | ldrcsb ip, [r1, #-1] | 119 | ldrbcs ip, [r1, #-1] |
| 120 | strneb r3, [r0, #-1]! | 120 | strbne r3, [r0, #-1]! |
| 121 | strcsb r4, [r0, #-1]! | 121 | strbcs r4, [r0, #-1]! |
| 122 | strcsb ip, [r0, #-1] | 122 | strbcs ip, [r0, #-1] |
| 123 | ldmfd sp!, {r0, r4, pc} | 123 | ldmfd sp!, {r0, r4, pc} |
| 124 | 124 | ||
| 125 | 9: cmp ip, #2 | 125 | 9: cmp ip, #2 |
| 126 | ldrgtb r3, [r1, #-1]! | 126 | ldrbgt r3, [r1, #-1]! |
| 127 | ldrgeb r4, [r1, #-1]! | 127 | ldrbge r4, [r1, #-1]! |
| 128 | ldrb lr, [r1, #-1]! | 128 | ldrb lr, [r1, #-1]! |
| 129 | strgtb r3, [r0, #-1]! | 129 | strbgt r3, [r0, #-1]! |
| 130 | strgeb r4, [r0, #-1]! | 130 | strbge r4, [r0, #-1]! |
| 131 | subs r2, r2, ip | 131 | subs r2, r2, ip |
| 132 | strb lr, [r0, #-1]! | 132 | strb lr, [r0, #-1]! |
| 133 | blt 8b | 133 | blt 8b |
| @@ -150,7 +150,7 @@ ENTRY(memmove) | |||
| 150 | blt 14f | 150 | blt 14f |
| 151 | 151 | ||
| 152 | CALGN( ands ip, r0, #31 ) | 152 | CALGN( ands ip, r0, #31 ) |
| 153 | CALGN( sbcnes r4, ip, r2 ) @ C is always set here | 153 | CALGN( sbcsne r4, ip, r2 ) @ C is always set here |
| 154 | CALGN( subcc r2, r2, ip ) | 154 | CALGN( subcc r2, r2, ip ) |
| 155 | CALGN( bcc 15f ) | 155 | CALGN( bcc 15f ) |
| 156 | 156 | ||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index ed6d35d9cdb5..5593a45e0a8c 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S | |||
| @@ -44,20 +44,20 @@ UNWIND( .save {r8, lr} ) | |||
| 44 | mov lr, r3 | 44 | mov lr, r3 |
| 45 | 45 | ||
| 46 | 2: subs r2, r2, #64 | 46 | 2: subs r2, r2, #64 |
| 47 | stmgeia ip!, {r1, r3, r8, lr} @ 64 bytes at a time. | 47 | stmiage ip!, {r1, r3, r8, lr} @ 64 bytes at a time. |
| 48 | stmgeia ip!, {r1, r3, r8, lr} | 48 | stmiage ip!, {r1, r3, r8, lr} |
| 49 | stmgeia ip!, {r1, r3, r8, lr} | 49 | stmiage ip!, {r1, r3, r8, lr} |
| 50 | stmgeia ip!, {r1, r3, r8, lr} | 50 | stmiage ip!, {r1, r3, r8, lr} |
| 51 | bgt 2b | 51 | bgt 2b |
| 52 | ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go. | 52 | ldmfdeq sp!, {r8, pc} @ Now <64 bytes to go. |
| 53 | /* | 53 | /* |
| 54 | * No need to correct the count; we're only testing bits from now on | 54 | * No need to correct the count; we're only testing bits from now on |
| 55 | */ | 55 | */ |
| 56 | tst r2, #32 | 56 | tst r2, #32 |
| 57 | stmneia ip!, {r1, r3, r8, lr} | 57 | stmiane ip!, {r1, r3, r8, lr} |
| 58 | stmneia ip!, {r1, r3, r8, lr} | 58 | stmiane ip!, {r1, r3, r8, lr} |
| 59 | tst r2, #16 | 59 | tst r2, #16 |
| 60 | stmneia ip!, {r1, r3, r8, lr} | 60 | stmiane ip!, {r1, r3, r8, lr} |
| 61 | ldmfd sp!, {r8, lr} | 61 | ldmfd sp!, {r8, lr} |
| 62 | UNWIND( .fnend ) | 62 | UNWIND( .fnend ) |
| 63 | 63 | ||
| @@ -87,22 +87,22 @@ UNWIND( .save {r4-r8, lr} ) | |||
| 87 | rsb r8, r8, #32 | 87 | rsb r8, r8, #32 |
| 88 | sub r2, r2, r8 | 88 | sub r2, r2, r8 |
| 89 | movs r8, r8, lsl #(32 - 4) | 89 | movs r8, r8, lsl #(32 - 4) |
| 90 | stmcsia ip!, {r4, r5, r6, r7} | 90 | stmiacs ip!, {r4, r5, r6, r7} |
| 91 | stmmiia ip!, {r4, r5} | 91 | stmiami ip!, {r4, r5} |
| 92 | tst r8, #(1 << 30) | 92 | tst r8, #(1 << 30) |
| 93 | mov r8, r1 | 93 | mov r8, r1 |
| 94 | strne r1, [ip], #4 | 94 | strne r1, [ip], #4 |
| 95 | 95 | ||
| 96 | 3: subs r2, r2, #64 | 96 | 3: subs r2, r2, #64 |
| 97 | stmgeia ip!, {r1, r3-r8, lr} | 97 | stmiage ip!, {r1, r3-r8, lr} |
| 98 | stmgeia ip!, {r1, r3-r8, lr} | 98 | stmiage ip!, {r1, r3-r8, lr} |
| 99 | bgt 3b | 99 | bgt 3b |
| 100 | ldmeqfd sp!, {r4-r8, pc} | 100 | ldmfdeq sp!, {r4-r8, pc} |
| 101 | 101 | ||
| 102 | tst r2, #32 | 102 | tst r2, #32 |
| 103 | stmneia ip!, {r1, r3-r8, lr} | 103 | stmiane ip!, {r1, r3-r8, lr} |
| 104 | tst r2, #16 | 104 | tst r2, #16 |
| 105 | stmneia ip!, {r4-r7} | 105 | stmiane ip!, {r4-r7} |
| 106 | ldmfd sp!, {r4-r8, lr} | 106 | ldmfd sp!, {r4-r8, lr} |
| 107 | UNWIND( .fnend ) | 107 | UNWIND( .fnend ) |
| 108 | 108 | ||
| @@ -110,7 +110,7 @@ UNWIND( .fnend ) | |||
| 110 | 110 | ||
| 111 | UNWIND( .fnstart ) | 111 | UNWIND( .fnstart ) |
| 112 | 4: tst r2, #8 | 112 | 4: tst r2, #8 |
| 113 | stmneia ip!, {r1, r3} | 113 | stmiane ip!, {r1, r3} |
| 114 | tst r2, #4 | 114 | tst r2, #4 |
| 115 | strne r1, [ip], #4 | 115 | strne r1, [ip], #4 |
| 116 | /* | 116 | /* |
| @@ -118,17 +118,17 @@ UNWIND( .fnstart ) | |||
| 118 | * may have an unaligned pointer as well. | 118 | * may have an unaligned pointer as well. |
| 119 | */ | 119 | */ |
| 120 | 5: tst r2, #2 | 120 | 5: tst r2, #2 |
| 121 | strneb r1, [ip], #1 | 121 | strbne r1, [ip], #1 |
| 122 | strneb r1, [ip], #1 | 122 | strbne r1, [ip], #1 |
| 123 | tst r2, #1 | 123 | tst r2, #1 |
| 124 | strneb r1, [ip], #1 | 124 | strbne r1, [ip], #1 |
| 125 | ret lr | 125 | ret lr |
| 126 | 126 | ||
| 127 | 6: subs r2, r2, #4 @ 1 do we have enough | 127 | 6: subs r2, r2, #4 @ 1 do we have enough |
| 128 | blt 5b @ 1 bytes to align with? | 128 | blt 5b @ 1 bytes to align with? |
| 129 | cmp r3, #2 @ 1 | 129 | cmp r3, #2 @ 1 |
| 130 | strltb r1, [ip], #1 @ 1 | 130 | strblt r1, [ip], #1 @ 1 |
| 131 | strleb r1, [ip], #1 @ 1 | 131 | strble r1, [ip], #1 @ 1 |
| 132 | strb r1, [ip], #1 @ 1 | 132 | strb r1, [ip], #1 @ 1 |
| 133 | add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) | 133 | add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) |
| 134 | b 1b | 134 | b 1b |
diff --git a/arch/arm/lib/xor-neon.c b/arch/arm/lib/xor-neon.c index 2c40aeab3eaa..c691b901092f 100644 --- a/arch/arm/lib/xor-neon.c +++ b/arch/arm/lib/xor-neon.c | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | MODULE_LICENSE("GPL"); | 14 | MODULE_LICENSE("GPL"); |
| 15 | 15 | ||
| 16 | #ifndef __ARM_NEON__ | 16 | #ifndef __ARM_NEON__ |
| 17 | #error You should compile this file with '-mfloat-abi=softfp -mfpu=neon' | 17 | #error You should compile this file with '-march=armv7-a -mfloat-abi=softfp -mfpu=neon' |
| 18 | #endif | 18 | #endif |
| 19 | 19 | ||
| 20 | /* | 20 | /* |
diff --git a/arch/arm/mach-actions/platsmp.c b/arch/arm/mach-actions/platsmp.c index 3efaa10efc43..4fd479c948e6 100644 --- a/arch/arm/mach-actions/platsmp.c +++ b/arch/arm/mach-actions/platsmp.c | |||
| @@ -39,10 +39,6 @@ static void __iomem *sps_base_addr; | |||
| 39 | static void __iomem *timer_base_addr; | 39 | static void __iomem *timer_base_addr; |
| 40 | static int ncores; | 40 | static int ncores; |
| 41 | 41 | ||
| 42 | static DEFINE_SPINLOCK(boot_lock); | ||
| 43 | |||
| 44 | void owl_secondary_startup(void); | ||
| 45 | |||
| 46 | static int s500_wakeup_secondary(unsigned int cpu) | 42 | static int s500_wakeup_secondary(unsigned int cpu) |
| 47 | { | 43 | { |
| 48 | int ret; | 44 | int ret; |
| @@ -84,7 +80,6 @@ static int s500_wakeup_secondary(unsigned int cpu) | |||
| 84 | 80 | ||
| 85 | static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle) | 81 | static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle) |
| 86 | { | 82 | { |
| 87 | unsigned long timeout; | ||
| 88 | int ret; | 83 | int ret; |
| 89 | 84 | ||
| 90 | ret = s500_wakeup_secondary(cpu); | 85 | ret = s500_wakeup_secondary(cpu); |
| @@ -93,21 +88,11 @@ static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 93 | 88 | ||
| 94 | udelay(10); | 89 | udelay(10); |
| 95 | 90 | ||
| 96 | spin_lock(&boot_lock); | ||
| 97 | |||
| 98 | smp_send_reschedule(cpu); | 91 | smp_send_reschedule(cpu); |
| 99 | 92 | ||
| 100 | timeout = jiffies + (1 * HZ); | ||
| 101 | while (time_before(jiffies, timeout)) { | ||
| 102 | if (pen_release == -1) | ||
| 103 | break; | ||
| 104 | } | ||
| 105 | |||
| 106 | writel(0, timer_base_addr + OWL_CPU1_ADDR + (cpu - 1) * 4); | 93 | writel(0, timer_base_addr + OWL_CPU1_ADDR + (cpu - 1) * 4); |
| 107 | writel(0, timer_base_addr + OWL_CPU1_FLAG + (cpu - 1) * 4); | 94 | writel(0, timer_base_addr + OWL_CPU1_FLAG + (cpu - 1) * 4); |
| 108 | 95 | ||
| 109 | spin_unlock(&boot_lock); | ||
| 110 | |||
| 111 | return 0; | 96 | return 0; |
| 112 | } | 97 | } |
| 113 | 98 | ||
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index a067adf9f1ee..4ef1e55f4a0b 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig | |||
| @@ -167,6 +167,7 @@ config ARCH_BCM2835 | |||
| 167 | select BCM2835_TIMER | 167 | select BCM2835_TIMER |
| 168 | select PINCTRL | 168 | select PINCTRL |
| 169 | select PINCTRL_BCM2835 | 169 | select PINCTRL_BCM2835 |
| 170 | select MFD_CORE | ||
| 170 | help | 171 | help |
| 171 | This enables support for the Broadcom BCM2835 and BCM2836 SoCs. | 172 | This enables support for the Broadcom BCM2835 and BCM2836 SoCs. |
| 172 | This SoC is used in the Raspberry Pi and Roku 2 devices. | 173 | This SoC is used in the Raspberry Pi and Roku 2 devices. |
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c index 318394ed5c7a..95a11d5b3587 100644 --- a/arch/arm/mach-cns3xxx/pcie.c +++ b/arch/arm/mach-cns3xxx/pcie.c | |||
| @@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus(struct pci_bus *bus, | |||
| 83 | } else /* remote PCI bus */ | 83 | } else /* remote PCI bus */ |
| 84 | base = cnspci->cfg1_regs + ((busno & 0xf) << 20); | 84 | base = cnspci->cfg1_regs + ((busno & 0xf) << 20); |
| 85 | 85 | ||
| 86 | return base + (where & 0xffc) + (devfn << 12); | 86 | return base + where + (devfn << 12); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, | 89 | static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, |
| @@ -93,7 +93,7 @@ static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn, | |||
| 93 | u32 mask = (0x1ull << (size * 8)) - 1; | 93 | u32 mask = (0x1ull << (size * 8)) - 1; |
| 94 | int shift = (where % 4) * 8; | 94 | int shift = (where % 4) * 8; |
| 95 | 95 | ||
| 96 | ret = pci_generic_config_read32(bus, devfn, where, size, val); | 96 | ret = pci_generic_config_read(bus, devfn, where, size, val); |
| 97 | 97 | ||
| 98 | if (ret == PCIBIOS_SUCCESSFUL && !bus->number && !devfn && | 98 | if (ret == PCIBIOS_SUCCESSFUL && !bus->number && !devfn && |
| 99 | (where & 0xffc) == PCI_CLASS_REVISION) | 99 | (where & 0xffc) == PCI_CLASS_REVISION) |
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig index da8a039d65f9..5a59cebc7d0a 100644 --- a/arch/arm/mach-davinci/Kconfig +++ b/arch/arm/mach-davinci/Kconfig | |||
| @@ -1,13 +1,6 @@ | |||
| 1 | # SPDX-License-Identifier: GPL-2.0 | 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | if ARCH_DAVINCI | 2 | if ARCH_DAVINCI |
| 3 | 3 | ||
| 4 | config AINTC | ||
| 5 | bool | ||
| 6 | |||
| 7 | config CP_INTC | ||
| 8 | bool | ||
| 9 | select IRQ_DOMAIN | ||
| 10 | |||
| 11 | config ARCH_DAVINCI_DMx | 4 | config ARCH_DAVINCI_DMx |
| 12 | bool | 5 | bool |
| 13 | 6 | ||
| @@ -17,17 +10,17 @@ comment "DaVinci Core Type" | |||
| 17 | 10 | ||
| 18 | config ARCH_DAVINCI_DM644x | 11 | config ARCH_DAVINCI_DM644x |
| 19 | bool "DaVinci 644x based system" | 12 | bool "DaVinci 644x based system" |
| 20 | select AINTC | 13 | select DAVINCI_AINTC |
| 21 | select ARCH_DAVINCI_DMx | 14 | select ARCH_DAVINCI_DMx |
| 22 | 15 | ||
| 23 | config ARCH_DAVINCI_DM355 | 16 | config ARCH_DAVINCI_DM355 |
| 24 | bool "DaVinci 355 based system" | 17 | bool "DaVinci 355 based system" |
| 25 | select AINTC | 18 | select DAVINCI_AINTC |
| 26 | select ARCH_DAVINCI_DMx | 19 | select ARCH_DAVINCI_DMx |
| 27 | 20 | ||
| 28 | config ARCH_DAVINCI_DM646x | 21 | config ARCH_DAVINCI_DM646x |
| 29 | bool "DaVinci 646x based system" | 22 | bool "DaVinci 646x based system" |
| 30 | select AINTC | 23 | select DAVINCI_AINTC |
| 31 | select ARCH_DAVINCI_DMx | 24 | select ARCH_DAVINCI_DMx |
| 32 | 25 | ||
| 33 | config ARCH_DAVINCI_DA830 | 26 | config ARCH_DAVINCI_DA830 |
| @@ -36,20 +29,20 @@ config ARCH_DAVINCI_DA830 | |||
| 36 | select ARCH_DAVINCI_DA8XX | 29 | select ARCH_DAVINCI_DA8XX |
| 37 | # needed on silicon revs 1.0, 1.1: | 30 | # needed on silicon revs 1.0, 1.1: |
| 38 | select CPU_DCACHE_WRITETHROUGH if !CPU_DCACHE_DISABLE | 31 | select CPU_DCACHE_WRITETHROUGH if !CPU_DCACHE_DISABLE |
| 39 | select CP_INTC | 32 | select DAVINCI_CP_INTC |
| 40 | 33 | ||
| 41 | config ARCH_DAVINCI_DA850 | 34 | config ARCH_DAVINCI_DA850 |
| 42 | bool "DA850/OMAP-L138/AM18x based system" | 35 | bool "DA850/OMAP-L138/AM18x based system" |
| 43 | depends on !ARCH_DAVINCI_DMx || (AUTO_ZRELADDR && ARM_PATCH_PHYS_VIRT) | 36 | depends on !ARCH_DAVINCI_DMx || (AUTO_ZRELADDR && ARM_PATCH_PHYS_VIRT) |
| 44 | select ARCH_DAVINCI_DA8XX | 37 | select ARCH_DAVINCI_DA8XX |
| 45 | select CP_INTC | 38 | select DAVINCI_CP_INTC |
| 46 | 39 | ||
| 47 | config ARCH_DAVINCI_DA8XX | 40 | config ARCH_DAVINCI_DA8XX |
| 48 | bool | 41 | bool |
| 49 | 42 | ||
| 50 | config ARCH_DAVINCI_DM365 | 43 | config ARCH_DAVINCI_DM365 |
| 51 | bool "DaVinci 365 based system" | 44 | bool "DaVinci 365 based system" |
| 52 | select AINTC | 45 | select DAVINCI_AINTC |
| 53 | select ARCH_DAVINCI_DMx | 46 | select ARCH_DAVINCI_DMx |
| 54 | 47 | ||
| 55 | comment "DaVinci Board Type" | 48 | comment "DaVinci Board Type" |
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile index 93d271b4d84b..f76a8482784f 100644 --- a/arch/arm/mach-davinci/Makefile +++ b/arch/arm/mach-davinci/Makefile | |||
| @@ -18,9 +18,6 @@ obj-$(CONFIG_ARCH_DAVINCI_DM365) += dm365.o devices.o | |||
| 18 | obj-$(CONFIG_ARCH_DAVINCI_DA830) += da830.o devices-da8xx.o usb-da8xx.o | 18 | obj-$(CONFIG_ARCH_DAVINCI_DA830) += da830.o devices-da8xx.o usb-da8xx.o |
| 19 | obj-$(CONFIG_ARCH_DAVINCI_DA850) += da850.o devices-da8xx.o usb-da8xx.o | 19 | obj-$(CONFIG_ARCH_DAVINCI_DA850) += da850.o devices-da8xx.o usb-da8xx.o |
| 20 | 20 | ||
| 21 | obj-$(CONFIG_AINTC) += irq.o | ||
| 22 | obj-$(CONFIG_CP_INTC) += cp_intc.o | ||
| 23 | |||
| 24 | # Board specific | 21 | # Board specific |
| 25 | obj-$(CONFIG_MACH_DA8XX_DT) += da8xx-dt.o pdata-quirks.o | 22 | obj-$(CONFIG_MACH_DA8XX_DT) += da8xx-dt.o pdata-quirks.o |
| 26 | obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o | 23 | obj-$(CONFIG_MACH_DAVINCI_EVM) += board-dm644x-evm.o |
diff --git a/arch/arm/mach-davinci/asp.h b/arch/arm/mach-davinci/asp.h index 495aa6907cbc..d0ecd1d0f084 100644 --- a/arch/arm/mach-davinci/asp.h +++ b/arch/arm/mach-davinci/asp.h | |||
| @@ -49,9 +49,9 @@ | |||
| 49 | #define DAVINCI_DA830_DMA_MCASP2_AXEVT 5 | 49 | #define DAVINCI_DA830_DMA_MCASP2_AXEVT 5 |
| 50 | 50 | ||
| 51 | /* Interrupts */ | 51 | /* Interrupts */ |
| 52 | #define DAVINCI_ASP0_RX_INT IRQ_MBRINT | 52 | #define DAVINCI_ASP0_RX_INT DAVINCI_INTC_IRQ(IRQ_MBRINT) |
| 53 | #define DAVINCI_ASP0_TX_INT IRQ_MBXINT | 53 | #define DAVINCI_ASP0_TX_INT DAVINCI_INTC_IRQ(IRQ_MBXINT) |
| 54 | #define DAVINCI_ASP1_RX_INT IRQ_MBRINT | 54 | #define DAVINCI_ASP1_RX_INT DAVINCI_INTC_IRQ(IRQ_MBRINT) |
| 55 | #define DAVINCI_ASP1_TX_INT IRQ_MBXINT | 55 | #define DAVINCI_ASP1_TX_INT DAVINCI_INTC_IRQ(IRQ_MBXINT) |
| 56 | 56 | ||
| 57 | #endif /* __ASM_ARCH_DAVINCI_ASP_H */ | 57 | #endif /* __ASM_ARCH_DAVINCI_ASP_H */ |
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c index e52ec1619b70..ff097ecfa451 100644 --- a/arch/arm/mach-davinci/board-da830-evm.c +++ b/arch/arm/mach-davinci/board-da830-evm.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
| 19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
| 20 | #include <linux/platform_data/pcf857x.h> | 20 | #include <linux/platform_data/pcf857x.h> |
| 21 | #include <linux/platform_data/at24.h> | 21 | #include <linux/property.h> |
| 22 | #include <linux/mtd/mtd.h> | 22 | #include <linux/mtd/mtd.h> |
| 23 | #include <linux/mtd/partitions.h> | 23 | #include <linux/mtd/partitions.h> |
| 24 | #include <linux/spi/spi.h> | 24 | #include <linux/spi/spi.h> |
| @@ -36,10 +36,11 @@ | |||
| 36 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
| 37 | 37 | ||
| 38 | #include <mach/common.h> | 38 | #include <mach/common.h> |
| 39 | #include "cp_intc.h" | ||
| 40 | #include <mach/mux.h> | 39 | #include <mach/mux.h> |
| 41 | #include <mach/da8xx.h> | 40 | #include <mach/da8xx.h> |
| 42 | 41 | ||
| 42 | #include "irqs.h" | ||
| 43 | |||
| 43 | #define DA830_EVM_PHY_ID "" | 44 | #define DA830_EVM_PHY_ID "" |
| 44 | /* | 45 | /* |
| 45 | * USB1 VBUS is controlled by GPIO1[15], over-current is reported on GPIO2[4]. | 46 | * USB1 VBUS is controlled by GPIO1[15], over-current is reported on GPIO2[4]. |
| @@ -52,62 +53,19 @@ static const short da830_evm_usb11_pins[] = { | |||
| 52 | -1 | 53 | -1 |
| 53 | }; | 54 | }; |
| 54 | 55 | ||
| 55 | static da8xx_ocic_handler_t da830_evm_usb_ocic_handler; | 56 | static struct gpiod_lookup_table da830_evm_usb_gpio_lookup = { |
| 56 | 57 | .dev_id = "ohci-da8xx", | |
| 57 | static int da830_evm_usb_set_power(unsigned port, int on) | 58 | .table = { |
| 58 | { | 59 | GPIO_LOOKUP("davinci_gpio", ON_BD_USB_DRV, "vbus", 0), |
| 59 | gpio_set_value(ON_BD_USB_DRV, on); | 60 | GPIO_LOOKUP("davinci_gpio", ON_BD_USB_OVC, "oc", 0), |
| 60 | return 0; | 61 | }, |
| 61 | } | 62 | }; |
| 62 | |||
| 63 | static int da830_evm_usb_get_power(unsigned port) | ||
| 64 | { | ||
| 65 | return gpio_get_value(ON_BD_USB_DRV); | ||
| 66 | } | ||
| 67 | |||
| 68 | static int da830_evm_usb_get_oci(unsigned port) | ||
| 69 | { | ||
| 70 | return !gpio_get_value(ON_BD_USB_OVC); | ||
| 71 | } | ||
| 72 | |||
| 73 | static irqreturn_t da830_evm_usb_ocic_irq(int, void *); | ||
| 74 | |||
| 75 | static int da830_evm_usb_ocic_notify(da8xx_ocic_handler_t handler) | ||
| 76 | { | ||
| 77 | int irq = gpio_to_irq(ON_BD_USB_OVC); | ||
| 78 | int error = 0; | ||
| 79 | |||
| 80 | if (handler != NULL) { | ||
| 81 | da830_evm_usb_ocic_handler = handler; | ||
| 82 | |||
| 83 | error = request_irq(irq, da830_evm_usb_ocic_irq, | ||
| 84 | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, | ||
| 85 | "OHCI over-current indicator", NULL); | ||
| 86 | if (error) | ||
| 87 | pr_err("%s: could not request IRQ to watch over-current indicator changes\n", | ||
| 88 | __func__); | ||
| 89 | } else | ||
| 90 | free_irq(irq, NULL); | ||
| 91 | |||
| 92 | return error; | ||
| 93 | } | ||
| 94 | 63 | ||
| 95 | static struct da8xx_ohci_root_hub da830_evm_usb11_pdata = { | 64 | static struct da8xx_ohci_root_hub da830_evm_usb11_pdata = { |
| 96 | .set_power = da830_evm_usb_set_power, | ||
| 97 | .get_power = da830_evm_usb_get_power, | ||
| 98 | .get_oci = da830_evm_usb_get_oci, | ||
| 99 | .ocic_notify = da830_evm_usb_ocic_notify, | ||
| 100 | |||
| 101 | /* TPS2065 switch @ 5V */ | 65 | /* TPS2065 switch @ 5V */ |
| 102 | .potpgt = (3 + 1) / 2, /* 3 ms max */ | 66 | .potpgt = (3 + 1) / 2, /* 3 ms max */ |
| 103 | }; | 67 | }; |
| 104 | 68 | ||
| 105 | static irqreturn_t da830_evm_usb_ocic_irq(int irq, void *dev_id) | ||
| 106 | { | ||
| 107 | da830_evm_usb_ocic_handler(&da830_evm_usb11_pdata, 1); | ||
| 108 | return IRQ_HANDLED; | ||
| 109 | } | ||
| 110 | |||
| 111 | static __init void da830_evm_usb_init(void) | 69 | static __init void da830_evm_usb_init(void) |
| 112 | { | 70 | { |
| 113 | int ret; | 71 | int ret; |
| @@ -142,21 +100,7 @@ static __init void da830_evm_usb_init(void) | |||
| 142 | return; | 100 | return; |
| 143 | } | 101 | } |
| 144 | 102 | ||
| 145 | ret = gpio_request(ON_BD_USB_DRV, "ON_BD_USB_DRV"); | 103 | gpiod_add_lookup_table(&da830_evm_usb_gpio_lookup); |
| 146 | if (ret) { | ||
| 147 | pr_err("%s: failed to request GPIO for USB 1.1 port power control: %d\n", | ||
| 148 | __func__, ret); | ||
| 149 | return; | ||
| 150 | } | ||
| 151 | gpio_direction_output(ON_BD_USB_DRV, 0); | ||
| 152 | |||
| 153 | ret = gpio_request(ON_BD_USB_OVC, "ON_BD_USB_OVC"); | ||
| 154 | if (ret) { | ||
| 155 | pr_err("%s: failed to request GPIO for USB 1.1 port over-current indicator: %d\n", | ||
| 156 | __func__, ret); | ||
| 157 | return; | ||
| 158 | } | ||
| 159 | gpio_direction_input(ON_BD_USB_OVC); | ||
| 160 | 104 | ||
| 161 | ret = da8xx_register_usb11(&da830_evm_usb11_pdata); | 105 | ret = da8xx_register_usb11(&da830_evm_usb11_pdata); |
| 162 | if (ret) | 106 | if (ret) |
| @@ -208,9 +152,9 @@ static struct gpiod_lookup_table mmc_gpios_table = { | |||
| 208 | .dev_id = "da830-mmc.0", | 152 | .dev_id = "da830-mmc.0", |
| 209 | .table = { | 153 | .table = { |
| 210 | /* gpio chip 1 contains gpio range 32-63 */ | 154 | /* gpio chip 1 contains gpio range 32-63 */ |
| 211 | GPIO_LOOKUP("davinci_gpio.0", DA830_MMCSD_CD_PIN, "cd", | 155 | GPIO_LOOKUP("davinci_gpio", DA830_MMCSD_CD_PIN, "cd", |
| 212 | GPIO_ACTIVE_LOW), | 156 | GPIO_ACTIVE_LOW), |
| 213 | GPIO_LOOKUP("davinci_gpio.0", DA830_MMCSD_WP_PIN, "wp", | 157 | GPIO_LOOKUP("davinci_gpio", DA830_MMCSD_WP_PIN, "wp", |
| 214 | GPIO_ACTIVE_LOW), | 158 | GPIO_ACTIVE_LOW), |
| 215 | }, | 159 | }, |
| 216 | }; | 160 | }; |
| @@ -457,12 +401,9 @@ static struct nvmem_cell_lookup da830_evm_nvmem_cell_lookup = { | |||
| 457 | .con_id = "mac-address", | 401 | .con_id = "mac-address", |
| 458 | }; | 402 | }; |
| 459 | 403 | ||
| 460 | static struct at24_platform_data da830_evm_i2c_eeprom_info = { | 404 | static const struct property_entry da830_evm_i2c_eeprom_properties[] = { |
| 461 | .byte_len = SZ_256K / 8, | 405 | PROPERTY_ENTRY_U32("pagesize", 64), |
| 462 | .page_size = 64, | 406 | { } |
| 463 | .flags = AT24_FLAG_ADDR16, | ||
| 464 | .setup = davinci_get_mac_addr, | ||
| 465 | .context = (void *)0x7f00, | ||
| 466 | }; | 407 | }; |
| 467 | 408 | ||
| 468 | static int __init da830_evm_ui_expander_setup(struct i2c_client *client, | 409 | static int __init da830_evm_ui_expander_setup(struct i2c_client *client, |
| @@ -496,7 +437,7 @@ static struct pcf857x_platform_data __initdata da830_evm_ui_expander_info = { | |||
| 496 | static struct i2c_board_info __initdata da830_evm_i2c_devices[] = { | 437 | static struct i2c_board_info __initdata da830_evm_i2c_devices[] = { |
| 497 | { | 438 | { |
| 498 | I2C_BOARD_INFO("24c256", 0x50), | 439 | I2C_BOARD_INFO("24c256", 0x50), |
| 499 | .platform_data = &da830_evm_i2c_eeprom_info, | 440 | .properties = da830_evm_i2c_eeprom_properties, |
| 500 | }, | 441 | }, |
| 501 | { | 442 | { |
| 502 | I2C_BOARD_INFO("tlv320aic3x", 0x18), | 443 | I2C_BOARD_INFO("tlv320aic3x", 0x18), |
| @@ -693,7 +634,7 @@ static void __init da830_evm_map_io(void) | |||
| 693 | MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") | 634 | MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") |
| 694 | .atag_offset = 0x100, | 635 | .atag_offset = 0x100, |
| 695 | .map_io = da830_evm_map_io, | 636 | .map_io = da830_evm_map_io, |
| 696 | .init_irq = cp_intc_init, | 637 | .init_irq = da830_init_irq, |
| 697 | .init_time = da830_init_time, | 638 | .init_time = da830_init_time, |
| 698 | .init_machine = da830_evm_init, | 639 | .init_machine = da830_evm_init, |
| 699 | .init_late = davinci_init_late, | 640 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 6a29baf0a289..1fdc9283a8c5 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
| @@ -43,9 +43,10 @@ | |||
| 43 | #include <linux/spi/flash.h> | 43 | #include <linux/spi/flash.h> |
| 44 | 44 | ||
| 45 | #include <mach/common.h> | 45 | #include <mach/common.h> |
| 46 | #include "cp_intc.h" | ||
| 47 | #include <mach/da8xx.h> | 46 | #include <mach/da8xx.h> |
| 48 | #include <mach/mux.h> | 47 | #include <mach/mux.h> |
| 48 | |||
| 49 | #include "irqs.h" | ||
| 49 | #include "sram.h" | 50 | #include "sram.h" |
| 50 | 51 | ||
| 51 | #include <asm/mach-types.h> | 52 | #include <asm/mach-types.h> |
| @@ -150,32 +151,6 @@ static struct spi_board_info da850evm_spi_info[] = { | |||
| 150 | }, | 151 | }, |
| 151 | }; | 152 | }; |
| 152 | 153 | ||
| 153 | #ifdef CONFIG_MTD | ||
| 154 | static void da850_evm_m25p80_notify_add(struct mtd_info *mtd) | ||
| 155 | { | ||
| 156 | char *mac_addr = davinci_soc_info.emac_pdata->mac_addr; | ||
| 157 | size_t retlen; | ||
| 158 | |||
| 159 | if (!strcmp(mtd->name, "MAC-Address")) { | ||
| 160 | mtd_read(mtd, 0, ETH_ALEN, &retlen, mac_addr); | ||
| 161 | if (retlen == ETH_ALEN) | ||
| 162 | pr_info("Read MAC addr from SPI Flash: %pM\n", | ||
| 163 | mac_addr); | ||
| 164 | } | ||
| 165 | } | ||
| 166 | |||
| 167 | static struct mtd_notifier da850evm_spi_notifier = { | ||
| 168 | .add = da850_evm_m25p80_notify_add, | ||
| 169 | }; | ||
| 170 | |||
| 171 | static void da850_evm_setup_mac_addr(void) | ||
| 172 | { | ||
| 173 | register_mtd_user(&da850evm_spi_notifier); | ||
| 174 | } | ||
| 175 | #else | ||
| 176 | static void da850_evm_setup_mac_addr(void) { } | ||
| 177 | #endif | ||
| 178 | |||
| 179 | static struct mtd_partition da850_evm_norflash_partition[] = { | 154 | static struct mtd_partition da850_evm_norflash_partition[] = { |
| 180 | { | 155 | { |
| 181 | .name = "bootloaders + env", | 156 | .name = "bootloaders + env", |
| @@ -805,9 +780,9 @@ static struct gpiod_lookup_table mmc_gpios_table = { | |||
| 805 | .dev_id = "da830-mmc.0", | 780 | .dev_id = "da830-mmc.0", |
| 806 | .table = { | 781 | .table = { |
| 807 | /* gpio chip 2 contains gpio range 64-95 */ | 782 | /* gpio chip 2 contains gpio range 64-95 */ |
| 808 | GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_CD_PIN, "cd", | 783 | GPIO_LOOKUP("davinci_gpio", DA850_MMCSD_CD_PIN, "cd", |
| 809 | GPIO_ACTIVE_LOW), | 784 | GPIO_ACTIVE_LOW), |
| 810 | GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_WP_PIN, "wp", | 785 | GPIO_LOOKUP("davinci_gpio", DA850_MMCSD_WP_PIN, "wp", |
| 811 | GPIO_ACTIVE_HIGH), | 786 | GPIO_ACTIVE_HIGH), |
| 812 | }, | 787 | }, |
| 813 | }; | 788 | }; |
| @@ -1064,6 +1039,17 @@ static const short da850_evm_rmii_pins[] = { | |||
| 1064 | -1 | 1039 | -1 |
| 1065 | }; | 1040 | }; |
| 1066 | 1041 | ||
| 1042 | static struct gpiod_hog da850_evm_emac_gpio_hogs[] = { | ||
| 1043 | { | ||
| 1044 | .chip_label = "davinci_gpio", | ||
| 1045 | .chip_hwnum = DA850_MII_MDIO_CLKEN_PIN, | ||
| 1046 | .line_name = "mdio_clk_en", | ||
| 1047 | .lflags = 0, | ||
| 1048 | /* dflags set in da850_evm_config_emac() */ | ||
| 1049 | }, | ||
| 1050 | { } | ||
| 1051 | }; | ||
| 1052 | |||
| 1067 | static int __init da850_evm_config_emac(void) | 1053 | static int __init da850_evm_config_emac(void) |
| 1068 | { | 1054 | { |
| 1069 | void __iomem *cfg_chip3_base; | 1055 | void __iomem *cfg_chip3_base; |
| @@ -1102,14 +1088,9 @@ static int __init da850_evm_config_emac(void) | |||
| 1102 | if (ret) | 1088 | if (ret) |
| 1103 | pr_warn("%s:GPIO(2,6) mux setup failed\n", __func__); | 1089 | pr_warn("%s:GPIO(2,6) mux setup failed\n", __func__); |
| 1104 | 1090 | ||
| 1105 | ret = gpio_request(DA850_MII_MDIO_CLKEN_PIN, "mdio_clk_en"); | 1091 | da850_evm_emac_gpio_hogs[0].dflags = rmii_en ? GPIOD_OUT_HIGH |
| 1106 | if (ret) { | 1092 | : GPIOD_OUT_LOW; |
| 1107 | pr_warn("Cannot open GPIO %d\n", DA850_MII_MDIO_CLKEN_PIN); | 1093 | gpiod_add_hogs(da850_evm_emac_gpio_hogs); |
| 1108 | return ret; | ||
| 1109 | } | ||
| 1110 | |||
| 1111 | /* Enable/Disable MII MDIO clock */ | ||
| 1112 | gpio_direction_output(DA850_MII_MDIO_CLKEN_PIN, rmii_en); | ||
| 1113 | 1094 | ||
| 1114 | soc_info->emac_pdata->phy_id = DA850_EVM_PHY_ID; | 1095 | soc_info->emac_pdata->phy_id = DA850_EVM_PHY_ID; |
| 1115 | 1096 | ||
| @@ -1494,8 +1475,6 @@ static __init void da850_evm_init(void) | |||
| 1494 | if (ret) | 1475 | if (ret) |
| 1495 | pr_warn("%s: SATA registration failed: %d\n", __func__, ret); | 1476 | pr_warn("%s: SATA registration failed: %d\n", __func__, ret); |
| 1496 | 1477 | ||
| 1497 | da850_evm_setup_mac_addr(); | ||
| 1498 | |||
| 1499 | ret = da8xx_register_rproc(); | 1478 | ret = da8xx_register_rproc(); |
| 1500 | if (ret) | 1479 | if (ret) |
| 1501 | pr_warn("%s: dsp/rproc registration failed: %d\n", | 1480 | pr_warn("%s: dsp/rproc registration failed: %d\n", |
| @@ -1521,7 +1500,7 @@ static void __init da850_evm_map_io(void) | |||
| 1521 | MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") | 1500 | MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") |
| 1522 | .atag_offset = 0x100, | 1501 | .atag_offset = 0x100, |
| 1523 | .map_io = da850_evm_map_io, | 1502 | .map_io = da850_evm_map_io, |
| 1524 | .init_irq = cp_intc_init, | 1503 | .init_irq = da850_init_irq, |
| 1525 | .init_time = da850_init_time, | 1504 | .init_time = da850_init_time, |
| 1526 | .init_machine = da850_evm_init, | 1505 | .init_machine = da850_evm_init, |
| 1527 | .init_late = davinci_init_late, | 1506 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index f53a461a606f..64d81fc86f14 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
| @@ -117,9 +117,9 @@ static struct platform_device davinci_nand_device = { | |||
| 117 | static struct gpiod_lookup_table i2c_recovery_gpiod_table = { | 117 | static struct gpiod_lookup_table i2c_recovery_gpiod_table = { |
| 118 | .dev_id = "i2c_davinci.1", | 118 | .dev_id = "i2c_davinci.1", |
| 119 | .table = { | 119 | .table = { |
| 120 | GPIO_LOOKUP("davinci_gpio.0", DM355_I2C_SDA_PIN, "sda", | 120 | GPIO_LOOKUP("davinci_gpio", DM355_I2C_SDA_PIN, "sda", |
| 121 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), | 121 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), |
| 122 | GPIO_LOOKUP("davinci_gpio.0", DM355_I2C_SCL_PIN, "scl", | 122 | GPIO_LOOKUP("davinci_gpio", DM355_I2C_SCL_PIN, "scl", |
| 123 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), | 123 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), |
| 124 | }, | 124 | }, |
| 125 | }; | 125 | }; |
| @@ -438,7 +438,7 @@ static __init void dm355_evm_init(void) | |||
| 438 | MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") | 438 | MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") |
| 439 | .atag_offset = 0x100, | 439 | .atag_offset = 0x100, |
| 440 | .map_io = dm355_evm_map_io, | 440 | .map_io = dm355_evm_map_io, |
| 441 | .init_irq = davinci_irq_init, | 441 | .init_irq = dm355_init_irq, |
| 442 | .init_time = dm355_init_time, | 442 | .init_time = dm355_init_time, |
| 443 | .init_machine = dm355_evm_init, | 443 | .init_machine = dm355_evm_init, |
| 444 | .init_late = davinci_init_late, | 444 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c index 0fdf1d03eb11..b9e9950dd300 100644 --- a/arch/arm/mach-davinci/board-dm355-leopard.c +++ b/arch/arm/mach-davinci/board-dm355-leopard.c | |||
| @@ -273,7 +273,7 @@ static __init void dm355_leopard_init(void) | |||
| 273 | MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") | 273 | MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") |
| 274 | .atag_offset = 0x100, | 274 | .atag_offset = 0x100, |
| 275 | .map_io = dm355_leopard_map_io, | 275 | .map_io = dm355_leopard_map_io, |
| 276 | .init_irq = davinci_irq_init, | 276 | .init_irq = dm355_init_irq, |
| 277 | .init_time = dm355_init_time, | 277 | .init_time = dm355_init_time, |
| 278 | .init_machine = dm355_leopard_init, | 278 | .init_machine = dm355_leopard_init, |
| 279 | .init_late = davinci_init_late, | 279 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index e3b0b701e395..150a36f333df 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | #include <linux/i2c.h> | 18 | #include <linux/i2c.h> |
| 19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
| 20 | #include <linux/clk.h> | 20 | #include <linux/clk.h> |
| 21 | #include <linux/platform_data/at24.h> | 21 | #include <linux/property.h> |
| 22 | #include <linux/leds.h> | 22 | #include <linux/leds.h> |
| 23 | #include <linux/mtd/mtd.h> | 23 | #include <linux/mtd/mtd.h> |
| 24 | #include <linux/mtd/partitions.h> | 24 | #include <linux/mtd/partitions.h> |
| @@ -225,18 +225,15 @@ static struct nvmem_cell_lookup davinci_nvmem_cell_lookup = { | |||
| 225 | .con_id = "mac-address", | 225 | .con_id = "mac-address", |
| 226 | }; | 226 | }; |
| 227 | 227 | ||
| 228 | static struct at24_platform_data eeprom_info = { | 228 | static const struct property_entry eeprom_properties[] = { |
| 229 | .byte_len = (256*1024) / 8, | 229 | PROPERTY_ENTRY_U32("pagesize", 64), |
| 230 | .page_size = 64, | 230 | { } |
| 231 | .flags = AT24_FLAG_ADDR16, | ||
| 232 | .setup = davinci_get_mac_addr, | ||
| 233 | .context = (void *)0x7f00, | ||
| 234 | }; | 231 | }; |
| 235 | 232 | ||
| 236 | static struct i2c_board_info i2c_info[] = { | 233 | static struct i2c_board_info i2c_info[] = { |
| 237 | { | 234 | { |
| 238 | I2C_BOARD_INFO("24c256", 0x50), | 235 | I2C_BOARD_INFO("24c256", 0x50), |
| 239 | .platform_data = &eeprom_info, | 236 | .properties = eeprom_properties, |
| 240 | }, | 237 | }, |
| 241 | { | 238 | { |
| 242 | I2C_BOARD_INFO("tlv320aic3x", 0x18), | 239 | I2C_BOARD_INFO("tlv320aic3x", 0x18), |
| @@ -834,7 +831,7 @@ static __init void dm365_evm_init(void) | |||
| 834 | MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") | 831 | MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") |
| 835 | .atag_offset = 0x100, | 832 | .atag_offset = 0x100, |
| 836 | .map_io = dm365_evm_map_io, | 833 | .map_io = dm365_evm_map_io, |
| 837 | .init_irq = davinci_irq_init, | 834 | .init_irq = dm365_init_irq, |
| 838 | .init_time = dm365_init_time, | 835 | .init_time = dm365_init_time, |
| 839 | .init_machine = dm365_evm_init, | 836 | .init_machine = dm365_evm_init, |
| 840 | .init_late = davinci_init_late, | 837 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index e1428115067f..de15f782816e 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
| @@ -16,8 +16,8 @@ | |||
| 16 | #include <linux/gpio/machine.h> | 16 | #include <linux/gpio/machine.h> |
| 17 | #include <linux/i2c.h> | 17 | #include <linux/i2c.h> |
| 18 | #include <linux/platform_data/pcf857x.h> | 18 | #include <linux/platform_data/pcf857x.h> |
| 19 | #include <linux/platform_data/at24.h> | ||
| 20 | #include <linux/platform_data/gpio-davinci.h> | 19 | #include <linux/platform_data/gpio-davinci.h> |
| 20 | #include <linux/property.h> | ||
| 21 | #include <linux/mtd/mtd.h> | 21 | #include <linux/mtd/mtd.h> |
| 22 | #include <linux/mtd/rawnand.h> | 22 | #include <linux/mtd/rawnand.h> |
| 23 | #include <linux/mtd/partitions.h> | 23 | #include <linux/mtd/partitions.h> |
| @@ -36,9 +36,10 @@ | |||
| 36 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
| 37 | 37 | ||
| 38 | #include <mach/common.h> | 38 | #include <mach/common.h> |
| 39 | #include <linux/platform_data/i2c-davinci.h> | ||
| 40 | #include <mach/serial.h> | ||
| 41 | #include <mach/mux.h> | 39 | #include <mach/mux.h> |
| 40 | #include <mach/serial.h> | ||
| 41 | |||
| 42 | #include <linux/platform_data/i2c-davinci.h> | ||
| 42 | #include <linux/platform_data/mtd-davinci.h> | 43 | #include <linux/platform_data/mtd-davinci.h> |
| 43 | #include <linux/platform_data/mmc-davinci.h> | 44 | #include <linux/platform_data/mmc-davinci.h> |
| 44 | #include <linux/platform_data/usb-davinci.h> | 45 | #include <linux/platform_data/usb-davinci.h> |
| @@ -46,6 +47,7 @@ | |||
| 46 | #include <linux/platform_data/ti-aemif.h> | 47 | #include <linux/platform_data/ti-aemif.h> |
| 47 | 48 | ||
| 48 | #include "davinci.h" | 49 | #include "davinci.h" |
| 50 | #include "irqs.h" | ||
| 49 | 51 | ||
| 50 | #define DM644X_EVM_PHY_ID "davinci_mdio-0:01" | 52 | #define DM644X_EVM_PHY_ID "davinci_mdio-0:01" |
| 51 | #define LXT971_PHY_ID (0x001378e2) | 53 | #define LXT971_PHY_ID (0x001378e2) |
| @@ -532,12 +534,9 @@ static struct nvmem_cell_lookup dm644evm_nvmem_cell_lookup = { | |||
| 532 | .con_id = "mac-address", | 534 | .con_id = "mac-address", |
| 533 | }; | 535 | }; |
| 534 | 536 | ||
| 535 | static struct at24_platform_data eeprom_info = { | 537 | static const struct property_entry eeprom_properties[] = { |
| 536 | .byte_len = (256*1024) / 8, | 538 | PROPERTY_ENTRY_U32("pagesize", 64), |
| 537 | .page_size = 64, | 539 | { } |
| 538 | .flags = AT24_FLAG_ADDR16, | ||
| 539 | .setup = davinci_get_mac_addr, | ||
| 540 | .context = (void *)0x7f00, | ||
| 541 | }; | 540 | }; |
| 542 | 541 | ||
| 543 | /* | 542 | /* |
| @@ -647,7 +646,7 @@ static struct i2c_board_info __initdata i2c_info[] = { | |||
| 647 | }, | 646 | }, |
| 648 | { | 647 | { |
| 649 | I2C_BOARD_INFO("24c256", 0x50), | 648 | I2C_BOARD_INFO("24c256", 0x50), |
| 650 | .platform_data = &eeprom_info, | 649 | .properties = eeprom_properties, |
| 651 | }, | 650 | }, |
| 652 | { | 651 | { |
| 653 | I2C_BOARD_INFO("tlv320aic33", 0x1b), | 652 | I2C_BOARD_INFO("tlv320aic33", 0x1b), |
| @@ -660,9 +659,9 @@ static struct i2c_board_info __initdata i2c_info[] = { | |||
| 660 | static struct gpiod_lookup_table i2c_recovery_gpiod_table = { | 659 | static struct gpiod_lookup_table i2c_recovery_gpiod_table = { |
| 661 | .dev_id = "i2c_davinci.1", | 660 | .dev_id = "i2c_davinci.1", |
| 662 | .table = { | 661 | .table = { |
| 663 | GPIO_LOOKUP("davinci_gpio.0", DM644X_I2C_SDA_PIN, "sda", | 662 | GPIO_LOOKUP("davinci_gpio", DM644X_I2C_SDA_PIN, "sda", |
| 664 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), | 663 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), |
| 665 | GPIO_LOOKUP("davinci_gpio.0", DM644X_I2C_SCL_PIN, "scl", | 664 | GPIO_LOOKUP("davinci_gpio", DM644X_I2C_SCL_PIN, "scl", |
| 666 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), | 665 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), |
| 667 | }, | 666 | }, |
| 668 | }; | 667 | }; |
| @@ -889,7 +888,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") | |||
| 889 | /* Maintainer: MontaVista Software <source@mvista.com> */ | 888 | /* Maintainer: MontaVista Software <source@mvista.com> */ |
| 890 | .atag_offset = 0x100, | 889 | .atag_offset = 0x100, |
| 891 | .map_io = davinci_evm_map_io, | 890 | .map_io = davinci_evm_map_io, |
| 892 | .init_irq = davinci_irq_init, | 891 | .init_irq = dm644x_init_irq, |
| 893 | .init_time = dm644x_init_time, | 892 | .init_time = dm644x_init_time, |
| 894 | .init_machine = davinci_evm_init, | 893 | .init_machine = davinci_evm_init, |
| 895 | .init_late = davinci_init_late, | 894 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 8d5be6dd2019..4600b617f9b4 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | #include <linux/gpio.h> | 22 | #include <linux/gpio.h> |
| 23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
| 24 | #include <linux/i2c.h> | 24 | #include <linux/i2c.h> |
| 25 | #include <linux/platform_data/at24.h> | 25 | #include <linux/property.h> |
| 26 | #include <linux/platform_data/pcf857x.h> | 26 | #include <linux/platform_data/pcf857x.h> |
| 27 | #include <linux/platform_data/ti-aemif.h> | 27 | #include <linux/platform_data/ti-aemif.h> |
| 28 | 28 | ||
| @@ -44,10 +44,10 @@ | |||
| 44 | #include <asm/mach/arch.h> | 44 | #include <asm/mach/arch.h> |
| 45 | 45 | ||
| 46 | #include <mach/common.h> | 46 | #include <mach/common.h> |
| 47 | #include <mach/irqs.h> | ||
| 48 | #include <mach/serial.h> | 47 | #include <mach/serial.h> |
| 49 | 48 | ||
| 50 | #include "davinci.h" | 49 | #include "davinci.h" |
| 50 | #include "irqs.h" | ||
| 51 | 51 | ||
| 52 | #define NAND_BLOCK_SIZE SZ_128K | 52 | #define NAND_BLOCK_SIZE SZ_128K |
| 53 | 53 | ||
| @@ -364,12 +364,9 @@ static struct nvmem_cell_lookup dm646x_evm_nvmem_cell_lookup = { | |||
| 364 | .con_id = "mac-address", | 364 | .con_id = "mac-address", |
| 365 | }; | 365 | }; |
| 366 | 366 | ||
| 367 | static struct at24_platform_data eeprom_info = { | 367 | static const struct property_entry eeprom_properties[] = { |
| 368 | .byte_len = (256*1024) / 8, | 368 | PROPERTY_ENTRY_U32("pagesize", 64), |
| 369 | .page_size = 64, | 369 | { } |
| 370 | .flags = AT24_FLAG_ADDR16, | ||
| 371 | .setup = davinci_get_mac_addr, | ||
| 372 | .context = (void *)0x7f00, | ||
| 373 | }; | 370 | }; |
| 374 | #endif | 371 | #endif |
| 375 | 372 | ||
| @@ -440,7 +437,7 @@ static void evm_init_cpld(void) | |||
| 440 | static struct i2c_board_info __initdata i2c_info[] = { | 437 | static struct i2c_board_info __initdata i2c_info[] = { |
| 441 | { | 438 | { |
| 442 | I2C_BOARD_INFO("24c256", 0x50), | 439 | I2C_BOARD_INFO("24c256", 0x50), |
| 443 | .platform_data = &eeprom_info, | 440 | .properties = eeprom_properties, |
| 444 | }, | 441 | }, |
| 445 | { | 442 | { |
| 446 | I2C_BOARD_INFO("pcf8574a", 0x38), | 443 | I2C_BOARD_INFO("pcf8574a", 0x38), |
| @@ -863,7 +860,7 @@ static __init void evm_init(void) | |||
| 863 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | 860 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") |
| 864 | .atag_offset = 0x100, | 861 | .atag_offset = 0x100, |
| 865 | .map_io = davinci_map_io, | 862 | .map_io = davinci_map_io, |
| 866 | .init_irq = davinci_irq_init, | 863 | .init_irq = dm646x_init_irq, |
| 867 | .init_time = dm646x_evm_init_time, | 864 | .init_time = dm646x_evm_init_time, |
| 868 | .init_machine = evm_init, | 865 | .init_machine = evm_init, |
| 869 | .init_late = davinci_init_late, | 866 | .init_late = davinci_init_late, |
| @@ -873,7 +870,7 @@ MACHINE_END | |||
| 873 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | 870 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") |
| 874 | .atag_offset = 0x100, | 871 | .atag_offset = 0x100, |
| 875 | .map_io = davinci_map_io, | 872 | .map_io = davinci_map_io, |
| 876 | .init_irq = davinci_irq_init, | 873 | .init_irq = dm646x_init_irq, |
| 877 | .init_time = dm6467t_evm_init_time, | 874 | .init_time = dm6467t_evm_init_time, |
| 878 | .init_machine = evm_init, | 875 | .init_machine = evm_init, |
| 879 | .init_late = davinci_init_late, | 876 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-mityomapl138.c b/arch/arm/mach-davinci/board-mityomapl138.c index 8df16e81b69e..dfce421c0579 100644 --- a/arch/arm/mach-davinci/board-mityomapl138.c +++ b/arch/arm/mach-davinci/board-mityomapl138.c | |||
| @@ -14,11 +14,13 @@ | |||
| 14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
| 15 | #include <linux/console.h> | 15 | #include <linux/console.h> |
| 16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
| 17 | #include <linux/property.h> | ||
| 17 | #include <linux/mtd/partitions.h> | 18 | #include <linux/mtd/partitions.h> |
| 19 | #include <linux/notifier.h> | ||
| 20 | #include <linux/nvmem-consumer.h> | ||
| 18 | #include <linux/nvmem-provider.h> | 21 | #include <linux/nvmem-provider.h> |
| 19 | #include <linux/regulator/machine.h> | 22 | #include <linux/regulator/machine.h> |
| 20 | #include <linux/i2c.h> | 23 | #include <linux/i2c.h> |
| 21 | #include <linux/platform_data/at24.h> | ||
| 22 | #include <linux/etherdevice.h> | 24 | #include <linux/etherdevice.h> |
| 23 | #include <linux/spi/spi.h> | 25 | #include <linux/spi/spi.h> |
| 24 | #include <linux/spi/flash.h> | 26 | #include <linux/spi/flash.h> |
| @@ -27,7 +29,6 @@ | |||
| 27 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
| 28 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
| 29 | #include <mach/common.h> | 31 | #include <mach/common.h> |
| 30 | #include "cp_intc.h" | ||
| 31 | #include <mach/da8xx.h> | 32 | #include <mach/da8xx.h> |
| 32 | #include <linux/platform_data/mtd-davinci.h> | 33 | #include <linux/platform_data/mtd-davinci.h> |
| 33 | #include <linux/platform_data/mtd-davinci-aemif.h> | 34 | #include <linux/platform_data/mtd-davinci-aemif.h> |
| @@ -117,11 +118,15 @@ static void mityomapl138_cpufreq_init(const char *partnum) | |||
| 117 | static void mityomapl138_cpufreq_init(const char *partnum) { } | 118 | static void mityomapl138_cpufreq_init(const char *partnum) { } |
| 118 | #endif | 119 | #endif |
| 119 | 120 | ||
| 120 | static void read_factory_config(struct nvmem_device *nvmem, void *context) | 121 | static int read_factory_config(struct notifier_block *nb, |
| 122 | unsigned long event, void *data) | ||
| 121 | { | 123 | { |
| 122 | int ret; | 124 | int ret; |
| 123 | const char *partnum = NULL; | 125 | const char *partnum = NULL; |
| 124 | struct davinci_soc_info *soc_info = &davinci_soc_info; | 126 | struct nvmem_device *nvmem = data; |
| 127 | |||
| 128 | if (strcmp(nvmem_dev_name(nvmem), "1-00500") != 0) | ||
| 129 | return NOTIFY_DONE; | ||
| 125 | 130 | ||
| 126 | if (!IS_BUILTIN(CONFIG_NVMEM)) { | 131 | if (!IS_BUILTIN(CONFIG_NVMEM)) { |
| 127 | pr_warn("Factory Config not available without CONFIG_NVMEM\n"); | 132 | pr_warn("Factory Config not available without CONFIG_NVMEM\n"); |
| @@ -147,21 +152,20 @@ static void read_factory_config(struct nvmem_device *nvmem, void *context) | |||
| 147 | goto bad_config; | 152 | goto bad_config; |
| 148 | } | 153 | } |
| 149 | 154 | ||
| 150 | pr_info("Found MAC = %pM\n", factory_config.mac); | ||
| 151 | if (is_valid_ether_addr(factory_config.mac)) | ||
| 152 | memcpy(soc_info->emac_pdata->mac_addr, | ||
| 153 | factory_config.mac, ETH_ALEN); | ||
| 154 | else | ||
| 155 | pr_warn("Invalid MAC found in factory config block\n"); | ||
| 156 | |||
| 157 | partnum = factory_config.partnum; | 155 | partnum = factory_config.partnum; |
| 158 | pr_info("Part Number = %s\n", partnum); | 156 | pr_info("Part Number = %s\n", partnum); |
| 159 | 157 | ||
| 160 | bad_config: | 158 | bad_config: |
| 161 | /* default maximum speed is valid for all platforms */ | 159 | /* default maximum speed is valid for all platforms */ |
| 162 | mityomapl138_cpufreq_init(partnum); | 160 | mityomapl138_cpufreq_init(partnum); |
| 161 | |||
| 162 | return NOTIFY_STOP; | ||
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | static struct notifier_block mityomapl138_nvmem_notifier = { | ||
| 166 | .notifier_call = read_factory_config, | ||
| 167 | }; | ||
| 168 | |||
| 165 | /* | 169 | /* |
| 166 | * We don't define a cell for factory config as it will be accessed from the | 170 | * We don't define a cell for factory config as it will be accessed from the |
| 167 | * board file using the nvmem notifier chain. | 171 | * board file using the nvmem notifier chain. |
| @@ -187,12 +191,10 @@ static struct nvmem_cell_lookup mityomapl138_nvmem_cell_lookup = { | |||
| 187 | .con_id = "mac-address", | 191 | .con_id = "mac-address", |
| 188 | }; | 192 | }; |
| 189 | 193 | ||
| 190 | static struct at24_platform_data mityomapl138_fd_chip = { | 194 | static const struct property_entry mityomapl138_fd_chip_properties[] = { |
| 191 | .byte_len = 256, | 195 | PROPERTY_ENTRY_U32("pagesize", 8), |
| 192 | .page_size = 8, | 196 | PROPERTY_ENTRY_BOOL("read-only"), |
| 193 | .flags = AT24_FLAG_READONLY | AT24_FLAG_IRUGO, | 197 | { } |
| 194 | .setup = read_factory_config, | ||
| 195 | .context = NULL, | ||
| 196 | }; | 198 | }; |
| 197 | 199 | ||
| 198 | static struct davinci_i2c_platform_data mityomap_i2c_0_pdata = { | 200 | static struct davinci_i2c_platform_data mityomap_i2c_0_pdata = { |
| @@ -321,7 +323,7 @@ static struct i2c_board_info __initdata mityomap_tps65023_info[] = { | |||
| 321 | }, | 323 | }, |
| 322 | { | 324 | { |
| 323 | I2C_BOARD_INFO("24c02", 0x50), | 325 | I2C_BOARD_INFO("24c02", 0x50), |
| 324 | .platform_data = &mityomapl138_fd_chip, | 326 | .properties = mityomapl138_fd_chip_properties, |
| 325 | }, | 327 | }, |
| 326 | }; | 328 | }; |
| 327 | 329 | ||
| @@ -569,6 +571,7 @@ static void __init mityomapl138_init(void) | |||
| 569 | 571 | ||
| 570 | davinci_serial_init(da8xx_serial_device); | 572 | davinci_serial_init(da8xx_serial_device); |
| 571 | 573 | ||
| 574 | nvmem_register_notifier(&mityomapl138_nvmem_notifier); | ||
| 572 | nvmem_add_cell_table(&mityomapl138_nvmem_cell_table); | 575 | nvmem_add_cell_table(&mityomapl138_nvmem_cell_table); |
| 573 | nvmem_add_cell_lookups(&mityomapl138_nvmem_cell_lookup, 1); | 576 | nvmem_add_cell_lookups(&mityomapl138_nvmem_cell_lookup, 1); |
| 574 | 577 | ||
| @@ -624,7 +627,7 @@ static void __init mityomapl138_map_io(void) | |||
| 624 | MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") | 627 | MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") |
| 625 | .atag_offset = 0x100, | 628 | .atag_offset = 0x100, |
| 626 | .map_io = mityomapl138_map_io, | 629 | .map_io = mityomapl138_map_io, |
| 627 | .init_irq = cp_intc_init, | 630 | .init_irq = da850_init_irq, |
| 628 | .init_time = da850_init_time, | 631 | .init_time = da850_init_time, |
| 629 | .init_machine = mityomapl138_init, | 632 | .init_machine = mityomapl138_init, |
| 630 | .init_late = davinci_init_late, | 633 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c index efdaa27241c5..ce99f782811a 100644 --- a/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/arch/arm/mach-davinci/board-neuros-osd2.c | |||
| @@ -231,7 +231,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2") | |||
| 231 | /* Maintainer: Neuros Technologies <neuros@groups.google.com> */ | 231 | /* Maintainer: Neuros Technologies <neuros@groups.google.com> */ |
| 232 | .atag_offset = 0x100, | 232 | .atag_offset = 0x100, |
| 233 | .map_io = davinci_ntosd2_map_io, | 233 | .map_io = davinci_ntosd2_map_io, |
| 234 | .init_irq = davinci_irq_init, | 234 | .init_irq = dm644x_init_irq, |
| 235 | .init_time = dm644x_init_time, | 235 | .init_time = dm644x_init_time, |
| 236 | .init_machine = davinci_ntosd2_init, | 236 | .init_machine = davinci_ntosd2_init, |
| 237 | .init_late = davinci_init_late, | 237 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index 8e8d51f4a276..0896af2bed24 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | #include <asm/mach/arch.h> | 27 | #include <asm/mach/arch.h> |
| 28 | 28 | ||
| 29 | #include <mach/common.h> | 29 | #include <mach/common.h> |
| 30 | #include "cp_intc.h" | ||
| 31 | #include <mach/da8xx.h> | 30 | #include <mach/da8xx.h> |
| 32 | #include <mach/mux.h> | 31 | #include <mach/mux.h> |
| 33 | 32 | ||
| @@ -134,9 +133,9 @@ static const short hawk_mmcsd0_pins[] = { | |||
| 134 | static struct gpiod_lookup_table mmc_gpios_table = { | 133 | static struct gpiod_lookup_table mmc_gpios_table = { |
| 135 | .dev_id = "da830-mmc.0", | 134 | .dev_id = "da830-mmc.0", |
| 136 | .table = { | 135 | .table = { |
| 137 | GPIO_LOOKUP("davinci_gpio.0", DA850_HAWK_MMCSD_CD_PIN, "cd", | 136 | GPIO_LOOKUP("davinci_gpio", DA850_HAWK_MMCSD_CD_PIN, "cd", |
| 138 | GPIO_ACTIVE_LOW), | 137 | GPIO_ACTIVE_LOW), |
| 139 | GPIO_LOOKUP("davinci_gpio.0", DA850_HAWK_MMCSD_WP_PIN, "wp", | 138 | GPIO_LOOKUP("davinci_gpio", DA850_HAWK_MMCSD_WP_PIN, "wp", |
| 140 | GPIO_ACTIVE_LOW), | 139 | GPIO_ACTIVE_LOW), |
| 141 | }, | 140 | }, |
| 142 | }; | 141 | }; |
| @@ -294,66 +293,24 @@ static int omapl138_hawk_register_aemif(void) | |||
| 294 | return platform_device_register(&omapl138_hawk_aemif_device); | 293 | return platform_device_register(&omapl138_hawk_aemif_device); |
| 295 | } | 294 | } |
| 296 | 295 | ||
| 297 | static irqreturn_t omapl138_hawk_usb_ocic_irq(int irq, void *dev_id); | ||
| 298 | static da8xx_ocic_handler_t hawk_usb_ocic_handler; | ||
| 299 | |||
| 300 | static const short da850_hawk_usb11_pins[] = { | 296 | static const short da850_hawk_usb11_pins[] = { |
| 301 | DA850_GPIO2_4, DA850_GPIO6_13, | 297 | DA850_GPIO2_4, DA850_GPIO6_13, |
| 302 | -1 | 298 | -1 |
| 303 | }; | 299 | }; |
| 304 | 300 | ||
| 305 | static int hawk_usb_set_power(unsigned port, int on) | 301 | static struct gpiod_lookup_table hawk_usb_gpio_lookup = { |
| 306 | { | 302 | .dev_id = "ohci-da8xx", |
| 307 | gpio_set_value(DA850_USB1_VBUS_PIN, on); | 303 | .table = { |
| 308 | return 0; | 304 | GPIO_LOOKUP("davinci_gpio", DA850_USB1_VBUS_PIN, "vbus", 0), |
| 309 | } | 305 | GPIO_LOOKUP("davinci_gpio", DA850_USB1_OC_PIN, "oc", 0), |
| 310 | 306 | }, | |
| 311 | static int hawk_usb_get_power(unsigned port) | 307 | }; |
| 312 | { | ||
| 313 | return gpio_get_value(DA850_USB1_VBUS_PIN); | ||
| 314 | } | ||
| 315 | |||
| 316 | static int hawk_usb_get_oci(unsigned port) | ||
| 317 | { | ||
| 318 | return !gpio_get_value(DA850_USB1_OC_PIN); | ||
| 319 | } | ||
| 320 | |||
| 321 | static int hawk_usb_ocic_notify(da8xx_ocic_handler_t handler) | ||
| 322 | { | ||
| 323 | int irq = gpio_to_irq(DA850_USB1_OC_PIN); | ||
| 324 | int error = 0; | ||
| 325 | |||
| 326 | if (handler != NULL) { | ||
| 327 | hawk_usb_ocic_handler = handler; | ||
| 328 | |||
| 329 | error = request_irq(irq, omapl138_hawk_usb_ocic_irq, | ||
| 330 | IRQF_TRIGGER_RISING | | ||
| 331 | IRQF_TRIGGER_FALLING, | ||
| 332 | "OHCI over-current indicator", NULL); | ||
| 333 | if (error) | ||
| 334 | pr_err("%s: could not request IRQ to watch " | ||
| 335 | "over-current indicator changes\n", __func__); | ||
| 336 | } else { | ||
| 337 | free_irq(irq, NULL); | ||
| 338 | } | ||
| 339 | return error; | ||
| 340 | } | ||
| 341 | 308 | ||
| 342 | static struct da8xx_ohci_root_hub omapl138_hawk_usb11_pdata = { | 309 | static struct da8xx_ohci_root_hub omapl138_hawk_usb11_pdata = { |
| 343 | .set_power = hawk_usb_set_power, | ||
| 344 | .get_power = hawk_usb_get_power, | ||
| 345 | .get_oci = hawk_usb_get_oci, | ||
| 346 | .ocic_notify = hawk_usb_ocic_notify, | ||
| 347 | /* TPS2087 switch @ 5V */ | 310 | /* TPS2087 switch @ 5V */ |
| 348 | .potpgt = (3 + 1) / 2, /* 3 ms max */ | 311 | .potpgt = (3 + 1) / 2, /* 3 ms max */ |
| 349 | }; | 312 | }; |
| 350 | 313 | ||
| 351 | static irqreturn_t omapl138_hawk_usb_ocic_irq(int irq, void *dev_id) | ||
| 352 | { | ||
| 353 | hawk_usb_ocic_handler(&omapl138_hawk_usb11_pdata, 1); | ||
| 354 | return IRQ_HANDLED; | ||
| 355 | } | ||
| 356 | |||
| 357 | static __init void omapl138_hawk_usb_init(void) | 314 | static __init void omapl138_hawk_usb_init(void) |
| 358 | { | 315 | { |
| 359 | int ret; | 316 | int ret; |
| @@ -374,34 +331,13 @@ static __init void omapl138_hawk_usb_init(void) | |||
| 374 | pr_warn("%s: USB PHY registration failed: %d\n", | 331 | pr_warn("%s: USB PHY registration failed: %d\n", |
| 375 | __func__, ret); | 332 | __func__, ret); |
| 376 | 333 | ||
| 377 | ret = gpio_request_one(DA850_USB1_VBUS_PIN, | 334 | gpiod_add_lookup_table(&hawk_usb_gpio_lookup); |
| 378 | GPIOF_DIR_OUT, "USB1 VBUS"); | ||
| 379 | if (ret < 0) { | ||
| 380 | pr_err("%s: failed to request GPIO for USB 1.1 port " | ||
| 381 | "power control: %d\n", __func__, ret); | ||
| 382 | return; | ||
| 383 | } | ||
| 384 | |||
| 385 | ret = gpio_request_one(DA850_USB1_OC_PIN, | ||
| 386 | GPIOF_DIR_IN, "USB1 OC"); | ||
| 387 | if (ret < 0) { | ||
| 388 | pr_err("%s: failed to request GPIO for USB 1.1 port " | ||
| 389 | "over-current indicator: %d\n", __func__, ret); | ||
| 390 | goto usb11_setup_oc_fail; | ||
| 391 | } | ||
| 392 | 335 | ||
| 393 | ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata); | 336 | ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata); |
| 394 | if (ret) { | 337 | if (ret) |
| 395 | pr_warn("%s: USB 1.1 registration failed: %d\n", __func__, ret); | 338 | pr_warn("%s: USB 1.1 registration failed: %d\n", __func__, ret); |
| 396 | goto usb11_setup_fail; | ||
| 397 | } | ||
| 398 | 339 | ||
| 399 | return; | 340 | return; |
| 400 | |||
| 401 | usb11_setup_fail: | ||
| 402 | gpio_free(DA850_USB1_OC_PIN); | ||
| 403 | usb11_setup_oc_fail: | ||
| 404 | gpio_free(DA850_USB1_VBUS_PIN); | ||
| 405 | } | 341 | } |
| 406 | 342 | ||
| 407 | static __init void omapl138_hawk_init(void) | 343 | static __init void omapl138_hawk_init(void) |
| @@ -462,7 +398,7 @@ static void __init omapl138_hawk_map_io(void) | |||
| 462 | MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") | 398 | MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") |
| 463 | .atag_offset = 0x100, | 399 | .atag_offset = 0x100, |
| 464 | .map_io = omapl138_hawk_map_io, | 400 | .map_io = omapl138_hawk_map_io, |
| 465 | .init_irq = cp_intc_init, | 401 | .init_irq = da850_init_irq, |
| 466 | .init_time = da850_init_time, | 402 | .init_time = da850_init_time, |
| 467 | .init_machine = omapl138_hawk_init, | 403 | .init_machine = omapl138_hawk_init, |
| 468 | .init_late = davinci_init_late, | 404 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c index 792bb84d5011..bcdefde2f401 100644 --- a/arch/arm/mach-davinci/board-sffsdr.c +++ b/arch/arm/mach-davinci/board-sffsdr.c | |||
| @@ -26,7 +26,7 @@ | |||
| 26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
| 27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
| 28 | #include <linux/i2c.h> | 28 | #include <linux/i2c.h> |
| 29 | #include <linux/platform_data/at24.h> | 29 | #include <linux/property.h> |
| 30 | #include <linux/mtd/mtd.h> | 30 | #include <linux/mtd/mtd.h> |
| 31 | #include <linux/mtd/rawnand.h> | 31 | #include <linux/mtd/rawnand.h> |
| 32 | #include <linux/mtd/partitions.h> | 32 | #include <linux/mtd/partitions.h> |
| @@ -92,16 +92,15 @@ static struct platform_device davinci_sffsdr_nandflash_device = { | |||
| 92 | .resource = davinci_sffsdr_nandflash_resource, | 92 | .resource = davinci_sffsdr_nandflash_resource, |
| 93 | }; | 93 | }; |
| 94 | 94 | ||
| 95 | static struct at24_platform_data eeprom_info = { | 95 | static const struct property_entry eeprom_properties[] = { |
| 96 | .byte_len = (64*1024) / 8, | 96 | PROPERTY_ENTRY_U32("pagesize", 32), |
| 97 | .page_size = 32, | 97 | { } |
| 98 | .flags = AT24_FLAG_ADDR16, | ||
| 99 | }; | 98 | }; |
| 100 | 99 | ||
| 101 | static struct i2c_board_info __initdata i2c_info[] = { | 100 | static struct i2c_board_info __initdata i2c_info[] = { |
| 102 | { | 101 | { |
| 103 | I2C_BOARD_INFO("24lc64", 0x50), | 102 | I2C_BOARD_INFO("24c64", 0x50), |
| 104 | .platform_data = &eeprom_info, | 103 | .properties = eeprom_properties, |
| 105 | }, | 104 | }, |
| 106 | /* Other I2C devices: | 105 | /* Other I2C devices: |
| 107 | * MSP430, addr 0x23 (not used) | 106 | * MSP430, addr 0x23 (not used) |
| @@ -153,7 +152,7 @@ static __init void davinci_sffsdr_init(void) | |||
| 153 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") | 152 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") |
| 154 | .atag_offset = 0x100, | 153 | .atag_offset = 0x100, |
| 155 | .map_io = davinci_sffsdr_map_io, | 154 | .map_io = davinci_sffsdr_map_io, |
| 156 | .init_irq = davinci_irq_init, | 155 | .init_irq = dm644x_init_irq, |
| 157 | .init_time = dm644x_init_time, | 156 | .init_time = dm644x_init_time, |
| 158 | .init_machine = davinci_sffsdr_init, | 157 | .init_machine = davinci_sffsdr_init, |
| 159 | .init_late = davinci_init_late, | 158 | .init_late = davinci_init_late, |
diff --git a/arch/arm/mach-davinci/common.c b/arch/arm/mach-davinci/common.c index e1d0f0d841ff..ae61d19f9b3a 100644 --- a/arch/arm/mach-davinci/common.c +++ b/arch/arm/mach-davinci/common.c | |||
| @@ -23,24 +23,6 @@ | |||
| 23 | struct davinci_soc_info davinci_soc_info; | 23 | struct davinci_soc_info davinci_soc_info; |
| 24 | EXPORT_SYMBOL(davinci_soc_info); | 24 | EXPORT_SYMBOL(davinci_soc_info); |
| 25 | 25 | ||
| 26 | void __iomem *davinci_intc_base; | ||
| 27 | int davinci_intc_type; | ||
| 28 | |||
| 29 | void davinci_get_mac_addr(struct nvmem_device *nvmem, void *context) | ||
| 30 | { | ||
| 31 | char *mac_addr = davinci_soc_info.emac_pdata->mac_addr; | ||
| 32 | off_t offset = (off_t)context; | ||
| 33 | |||
| 34 | if (!IS_BUILTIN(CONFIG_NVMEM)) { | ||
| 35 | pr_warn("Cannot read MAC addr from EEPROM without CONFIG_NVMEM\n"); | ||
| 36 | return; | ||
| 37 | } | ||
| 38 | |||
| 39 | /* Read MAC addr from EEPROM */ | ||
| 40 | if (nvmem_device_read(nvmem, offset, ETH_ALEN, mac_addr) == ETH_ALEN) | ||
| 41 | pr_info("Read MAC addr from EEPROM: %pM\n", mac_addr); | ||
| 42 | } | ||
| 43 | |||
| 44 | static int __init davinci_init_id(struct davinci_soc_info *soc_info) | 26 | static int __init davinci_init_id(struct davinci_soc_info *soc_info) |
| 45 | { | 27 | { |
| 46 | int i; | 28 | int i; |
diff --git a/arch/arm/mach-davinci/cp_intc.c b/arch/arm/mach-davinci/cp_intc.c deleted file mode 100644 index 94085d21018e..000000000000 --- a/arch/arm/mach-davinci/cp_intc.c +++ /dev/null | |||
| @@ -1,215 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * TI Common Platform Interrupt Controller (cp_intc) driver | ||
| 3 | * | ||
| 4 | * Author: Steve Chen <schen@mvista.com> | ||
| 5 | * Copyright (C) 2008-2009, MontaVista Software, Inc. <source@mvista.com> | ||
| 6 | * | ||
| 7 | * This file is licensed under the terms of the GNU General Public License | ||
| 8 | * version 2. This program is licensed "as is" without any warranty of any | ||
| 9 | * kind, whether express or implied. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #include <linux/export.h> | ||
| 13 | #include <linux/init.h> | ||
| 14 | #include <linux/irq.h> | ||
| 15 | #include <linux/irqchip.h> | ||
| 16 | #include <linux/irqdomain.h> | ||
| 17 | #include <linux/io.h> | ||
| 18 | #include <linux/of.h> | ||
| 19 | #include <linux/of_address.h> | ||
| 20 | #include <linux/of_irq.h> | ||
| 21 | |||
| 22 | #include <mach/common.h> | ||
| 23 | #include "cp_intc.h" | ||
| 24 | |||
| 25 | static inline unsigned int cp_intc_read(unsigned offset) | ||
| 26 | { | ||
| 27 | return __raw_readl(davinci_intc_base + offset); | ||
| 28 | } | ||
| 29 | |||
| 30 | static inline void cp_intc_write(unsigned long value, unsigned offset) | ||
| 31 | { | ||
| 32 | __raw_writel(value, davinci_intc_base + offset); | ||
| 33 | } | ||
| 34 | |||
| 35 | static void cp_intc_ack_irq(struct irq_data *d) | ||
| 36 | { | ||
| 37 | cp_intc_write(d->hwirq, CP_INTC_SYS_STAT_IDX_CLR); | ||
| 38 | } | ||
| 39 | |||
| 40 | /* Disable interrupt */ | ||
| 41 | static void cp_intc_mask_irq(struct irq_data *d) | ||
| 42 | { | ||
| 43 | /* XXX don't know why we need to disable nIRQ here... */ | ||
| 44 | cp_intc_write(1, CP_INTC_HOST_ENABLE_IDX_CLR); | ||
| 45 | cp_intc_write(d->hwirq, CP_INTC_SYS_ENABLE_IDX_CLR); | ||
| 46 | cp_intc_write(1, CP_INTC_HOST_ENABLE_IDX_SET); | ||
| 47 | } | ||
| 48 | |||
| 49 | /* Enable interrupt */ | ||
| 50 | static void cp_intc_unmask_irq(struct irq_data *d) | ||
| 51 | { | ||
| 52 | cp_intc_write(d->hwirq, CP_INTC_SYS_ENABLE_IDX_SET); | ||
| 53 | } | ||
| 54 | |||
| 55 | static int cp_intc_set_irq_type(struct irq_data *d, unsigned int flow_type) | ||
| 56 | { | ||
| 57 | unsigned reg = BIT_WORD(d->hwirq); | ||
| 58 | unsigned mask = BIT_MASK(d->hwirq); | ||
| 59 | unsigned polarity = cp_intc_read(CP_INTC_SYS_POLARITY(reg)); | ||
| 60 | unsigned type = cp_intc_read(CP_INTC_SYS_TYPE(reg)); | ||
| 61 | |||
| 62 | switch (flow_type) { | ||
| 63 | case IRQ_TYPE_EDGE_RISING: | ||
| 64 | polarity |= mask; | ||
| 65 | type |= mask; | ||
| 66 | break; | ||
| 67 | case IRQ_TYPE_EDGE_FALLING: | ||
| 68 | polarity &= ~mask; | ||
| 69 | type |= mask; | ||
| 70 | break; | ||
| 71 | case IRQ_TYPE_LEVEL_HIGH: | ||
| 72 | polarity |= mask; | ||
| 73 | type &= ~mask; | ||
| 74 | break; | ||
| 75 | case IRQ_TYPE_LEVEL_LOW: | ||
| 76 | polarity &= ~mask; | ||
| 77 | type &= ~mask; | ||
| 78 | break; | ||
| 79 | default: | ||
| 80 | return -EINVAL; | ||
| 81 | } | ||
| 82 | |||
| 83 | cp_intc_write(polarity, CP_INTC_SYS_POLARITY(reg)); | ||
| 84 | cp_intc_write(type, CP_INTC_SYS_TYPE(reg)); | ||
| 85 | |||
| 86 | return 0; | ||
| 87 | } | ||
| 88 | |||
| 89 | static struct irq_chip cp_intc_irq_chip = { | ||
| 90 | .name = "cp_intc", | ||
| 91 | .irq_ack = cp_intc_ack_irq, | ||
| 92 | .irq_mask = cp_intc_mask_irq, | ||
| 93 | .irq_unmask = cp_intc_unmask_irq, | ||
| 94 | .irq_set_type = cp_intc_set_irq_type, | ||
| 95 | .flags = IRQCHIP_SKIP_SET_WAKE, | ||
| 96 | }; | ||
| 97 | |||
| 98 | static struct irq_domain *cp_intc_domain; | ||
| 99 | |||
| 100 | static int cp_intc_host_map(struct irq_domain *h, unsigned int virq, | ||
| 101 | irq_hw_number_t hw) | ||
| 102 | { | ||
| 103 | pr_debug("cp_intc_host_map(%d, 0x%lx)\n", virq, hw); | ||
| 104 | |||
| 105 | irq_set_chip(virq, &cp_intc_irq_chip); | ||
| 106 | irq_set_probe(virq); | ||
| 107 | irq_set_handler(virq, handle_edge_irq); | ||
| 108 | return 0; | ||
| 109 | } | ||
| 110 | |||
| 111 | static const struct irq_domain_ops cp_intc_host_ops = { | ||
| 112 | .map = cp_intc_host_map, | ||
| 113 | .xlate = irq_domain_xlate_onetwocell, | ||
| 114 | }; | ||
| 115 | |||
| 116 | int __init cp_intc_of_init(struct device_node *node, struct device_node *parent) | ||
| 117 | { | ||
| 118 | u32 num_irq = davinci_soc_info.intc_irq_num; | ||
| 119 | u8 *irq_prio = davinci_soc_info.intc_irq_prios; | ||
| 120 | u32 *host_map = davinci_soc_info.intc_host_map; | ||
| 121 | unsigned num_reg = BITS_TO_LONGS(num_irq); | ||
| 122 | int i, irq_base; | ||
| 123 | |||
| 124 | davinci_intc_type = DAVINCI_INTC_TYPE_CP_INTC; | ||
| 125 | if (node) { | ||
| 126 | davinci_intc_base = of_iomap(node, 0); | ||
| 127 | if (of_property_read_u32(node, "ti,intc-size", &num_irq)) | ||
| 128 | pr_warn("unable to get intc-size, default to %d\n", | ||
| 129 | num_irq); | ||
| 130 | } else { | ||
| 131 | davinci_intc_base = ioremap(davinci_soc_info.intc_base, SZ_8K); | ||
| 132 | } | ||
| 133 | if (WARN_ON(!davinci_intc_base)) | ||
| 134 | return -EINVAL; | ||
| 135 | |||
| 136 | cp_intc_write(0, CP_INTC_GLOBAL_ENABLE); | ||
| 137 | |||
| 138 | /* Disable all host interrupts */ | ||
| 139 | cp_intc_write(0, CP_INTC_HOST_ENABLE(0)); | ||
| 140 | |||
| 141 | /* Disable system interrupts */ | ||
| 142 | for (i = 0; i < num_reg; i++) | ||
| 143 | cp_intc_write(~0, CP_INTC_SYS_ENABLE_CLR(i)); | ||
| 144 | |||
| 145 | /* Set to normal mode, no nesting, no priority hold */ | ||
| 146 | cp_intc_write(0, CP_INTC_CTRL); | ||
| 147 | cp_intc_write(0, CP_INTC_HOST_CTRL); | ||
| 148 | |||
| 149 | /* Clear system interrupt status */ | ||
| 150 | for (i = 0; i < num_reg; i++) | ||
| 151 | cp_intc_write(~0, CP_INTC_SYS_STAT_CLR(i)); | ||
| 152 | |||
| 153 | /* Enable nIRQ (what about nFIQ?) */ | ||
| 154 | cp_intc_write(1, CP_INTC_HOST_ENABLE_IDX_SET); | ||
| 155 | |||
| 156 | /* | ||
| 157 | * Priority is determined by host channel: lower channel number has | ||
| 158 | * higher priority i.e. channel 0 has highest priority and channel 31 | ||
| 159 | * had the lowest priority. | ||
| 160 | */ | ||
| 161 | num_reg = (num_irq + 3) >> 2; /* 4 channels per register */ | ||
| 162 | if (irq_prio) { | ||
| 163 | unsigned j, k; | ||
| 164 | u32 val; | ||
| 165 | |||
| 166 | for (k = i = 0; i < num_reg; i++) { | ||
| 167 | for (val = j = 0; j < 4; j++, k++) { | ||
| 168 | val >>= 8; | ||
| 169 | if (k < num_irq) | ||
| 170 | val |= irq_prio[k] << 24; | ||
| 171 | } | ||
| 172 | |||
| 173 | cp_intc_write(val, CP_INTC_CHAN_MAP(i)); | ||
| 174 | } | ||
| 175 | } else { | ||
| 176 | /* | ||
| 177 | * Default everything to channel 15 if priority not specified. | ||
| 178 | * Note that channel 0-1 are mapped to nFIQ and channels 2-31 | ||
| 179 | * are mapped to nIRQ. | ||
| 180 | */ | ||
| 181 | for (i = 0; i < num_reg; i++) | ||
| 182 | cp_intc_write(0x0f0f0f0f, CP_INTC_CHAN_MAP(i)); | ||
| 183 | } | ||
| 184 | |||
| 185 | if (host_map) | ||
| 186 | for (i = 0; host_map[i] != -1; i++) | ||
| 187 | cp_intc_write(host_map[i], CP_INTC_HOST_MAP(i)); | ||
| 188 | |||
| 189 | irq_base = irq_alloc_descs(-1, 0, num_irq, 0); | ||
| 190 | if (irq_base < 0) { | ||
| 191 | pr_warn("Couldn't allocate IRQ numbers\n"); | ||
| 192 | irq_base = 0; | ||
| 193 | } | ||
| 194 | |||
| 195 | /* create a legacy host */ | ||
| 196 | cp_intc_domain = irq_domain_add_legacy(node, num_irq, | ||
| 197 | irq_base, 0, &cp_intc_host_ops, NULL); | ||
| 198 | |||
| 199 | if (!cp_intc_domain) { | ||
| 200 | pr_err("cp_intc: failed to allocate irq host!\n"); | ||
| 201 | return -EINVAL; | ||
| 202 | } | ||
| 203 | |||
| 204 | /* Enable global interrupt */ | ||
| 205 | cp_intc_write(1, CP_INTC_GLOBAL_ENABLE); | ||
| 206 | |||
| 207 | return 0; | ||
| 208 | } | ||
| 209 | |||
| 210 | void __init cp_intc_init(void) | ||
| 211 | { | ||
| 212 | cp_intc_of_init(NULL, NULL); | ||
| 213 | } | ||
| 214 | |||
| 215 | IRQCHIP_DECLARE(cp_intc, "ti,cp-intc", cp_intc_of_init); | ||
diff --git a/arch/arm/mach-davinci/cp_intc.h b/arch/arm/mach-davinci/cp_intc.h deleted file mode 100644 index 827bbe9baed4..000000000000 --- a/arch/arm/mach-davinci/cp_intc.h +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * TI Common Platform Interrupt Controller (cp_intc) definitions | ||
| 3 | * | ||
| 4 | * Author: Steve Chen <schen@mvista.com> | ||
| 5 | * Copyright (C) 2008-2009, MontaVista Software, Inc. <source@mvista.com> | ||
| 6 | * | ||
| 7 | * This file is licensed under the terms of the GNU General Public License | ||
| 8 | * version 2. This program is licensed "as is" without any warranty of any | ||
| 9 | * kind, whether express or implied. | ||
| 10 | */ | ||
| 11 | #ifndef __ASM_HARDWARE_CP_INTC_H | ||
| 12 | #define __ASM_HARDWARE_CP_INTC_H | ||
| 13 | |||
| 14 | #define CP_INTC_REV 0x00 | ||
| 15 | #define CP_INTC_CTRL 0x04 | ||
| 16 | #define CP_INTC_HOST_CTRL 0x0C | ||
| 17 | #define CP_INTC_GLOBAL_ENABLE 0x10 | ||
| 18 | #define CP_INTC_GLOBAL_NESTING_LEVEL 0x1C | ||
| 19 | #define CP_INTC_SYS_STAT_IDX_SET 0x20 | ||
| 20 | #define CP_INTC_SYS_STAT_IDX_CLR 0x24 | ||
| 21 | #define CP_INTC_SYS_ENABLE_IDX_SET 0x28 | ||
| 22 | #define CP_INTC_SYS_ENABLE_IDX_CLR 0x2C | ||
| 23 | #define CP_INTC_GLOBAL_WAKEUP_ENABLE 0x30 | ||
| 24 | #define CP_INTC_HOST_ENABLE_IDX_SET 0x34 | ||
| 25 | #define CP_INTC_HOST_ENABLE_IDX_CLR 0x38 | ||
| 26 | #define CP_INTC_PACING_PRESCALE 0x40 | ||
| 27 | #define CP_INTC_VECTOR_BASE 0x50 | ||
| 28 | #define CP_INTC_VECTOR_SIZE 0x54 | ||
| 29 | #define CP_INTC_VECTOR_NULL 0x58 | ||
| 30 | #define CP_INTC_PRIO_IDX 0x80 | ||
| 31 | #define CP_INTC_PRIO_VECTOR 0x84 | ||
| 32 | #define CP_INTC_SECURE_ENABLE 0x90 | ||
| 33 | #define CP_INTC_SECURE_PRIO_IDX 0x94 | ||
| 34 | #define CP_INTC_PACING_PARAM(n) (0x0100 + (n << 4)) | ||
| 35 | #define CP_INTC_PACING_DEC(n) (0x0104 + (n << 4)) | ||
| 36 | #define CP_INTC_PACING_MAP(n) (0x0108 + (n << 4)) | ||
| 37 | #define CP_INTC_SYS_RAW_STAT(n) (0x0200 + (n << 2)) | ||
| 38 | #define CP_INTC_SYS_STAT_CLR(n) (0x0280 + (n << 2)) | ||
| 39 | #define CP_INTC_SYS_ENABLE_SET(n) (0x0300 + (n << 2)) | ||
| 40 | #define CP_INTC_SYS_ENABLE_CLR(n) (0x0380 + (n << 2)) | ||
| 41 | #define CP_INTC_CHAN_MAP(n) (0x0400 + (n << 2)) | ||
| 42 | #define CP_INTC_HOST_MAP(n) (0x0800 + (n << 2)) | ||
| 43 | #define CP_INTC_HOST_PRIO_IDX(n) (0x0900 + (n << 2)) | ||
| 44 | #define CP_INTC_SYS_POLARITY(n) (0x0D00 + (n << 2)) | ||
| 45 | #define CP_INTC_SYS_TYPE(n) (0x0D80 + (n << 2)) | ||
| 46 | #define CP_INTC_WAKEUP_ENABLE(n) (0x0E00 + (n << 2)) | ||
| 47 | #define CP_INTC_DEBUG_SELECT(n) (0x0F00 + (n << 2)) | ||
| 48 | #define CP_INTC_SYS_SECURE_ENABLE(n) (0x1000 + (n << 2)) | ||
| 49 | #define CP_INTC_HOST_NESTING_LEVEL(n) (0x1100 + (n << 2)) | ||
| 50 | #define CP_INTC_HOST_ENABLE(n) (0x1500 + (n << 2)) | ||
| 51 | #define CP_INTC_HOST_PRIO_VECTOR(n) (0x1600 + (n << 2)) | ||
| 52 | #define CP_INTC_VECTOR_ADDR(n) (0x2000 + (n << 2)) | ||
| 53 | |||
| 54 | void cp_intc_init(void); | ||
| 55 | int cp_intc_of_init(struct device_node *, struct device_node *); | ||
| 56 | |||
| 57 | #endif /* __ASM_HARDWARE_CP_INTC_H */ | ||
diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c index 2cc9fe4c3a91..63511f638ce4 100644 --- a/arch/arm/mach-davinci/da830.c +++ b/arch/arm/mach-davinci/da830.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <linux/clk/davinci.h> | 12 | #include <linux/clk/davinci.h> |
| 13 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
| 14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
| 15 | #include <linux/irqchip/irq-davinci-cp-intc.h> | ||
| 15 | #include <linux/platform_data/gpio-davinci.h> | 16 | #include <linux/platform_data/gpio-davinci.h> |
| 16 | 17 | ||
| 17 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
| @@ -19,9 +20,9 @@ | |||
| 19 | #include <mach/common.h> | 20 | #include <mach/common.h> |
| 20 | #include <mach/cputype.h> | 21 | #include <mach/cputype.h> |
| 21 | #include <mach/da8xx.h> | 22 | #include <mach/da8xx.h> |
| 22 | #include <mach/irqs.h> | ||
| 23 | #include <mach/time.h> | 23 | #include <mach/time.h> |
| 24 | 24 | ||
| 25 | #include "irqs.h" | ||
| 25 | #include "mux.h" | 26 | #include "mux.h" |
| 26 | 27 | ||
| 27 | /* Offsets of the 8 compare registers on the da830 */ | 28 | /* Offsets of the 8 compare registers on the da830 */ |
| @@ -623,101 +624,6 @@ const short da830_eqep1_pins[] __initconst = { | |||
| 623 | -1 | 624 | -1 |
| 624 | }; | 625 | }; |
| 625 | 626 | ||
| 626 | /* FIQ are pri 0-1; otherwise 2-7, with 7 lowest priority */ | ||
| 627 | static u8 da830_default_priorities[DA830_N_CP_INTC_IRQ] = { | ||
| 628 | [IRQ_DA8XX_COMMTX] = 7, | ||
| 629 | [IRQ_DA8XX_COMMRX] = 7, | ||
| 630 | [IRQ_DA8XX_NINT] = 7, | ||
| 631 | [IRQ_DA8XX_EVTOUT0] = 7, | ||
| 632 | [IRQ_DA8XX_EVTOUT1] = 7, | ||
| 633 | [IRQ_DA8XX_EVTOUT2] = 7, | ||
| 634 | [IRQ_DA8XX_EVTOUT3] = 7, | ||
| 635 | [IRQ_DA8XX_EVTOUT4] = 7, | ||
| 636 | [IRQ_DA8XX_EVTOUT5] = 7, | ||
| 637 | [IRQ_DA8XX_EVTOUT6] = 7, | ||
| 638 | [IRQ_DA8XX_EVTOUT7] = 7, | ||
| 639 | [IRQ_DA8XX_CCINT0] = 7, | ||
| 640 | [IRQ_DA8XX_CCERRINT] = 7, | ||
| 641 | [IRQ_DA8XX_TCERRINT0] = 7, | ||
| 642 | [IRQ_DA8XX_AEMIFINT] = 7, | ||
| 643 | [IRQ_DA8XX_I2CINT0] = 7, | ||
| 644 | [IRQ_DA8XX_MMCSDINT0] = 7, | ||
| 645 | [IRQ_DA8XX_MMCSDINT1] = 7, | ||
| 646 | [IRQ_DA8XX_ALLINT0] = 7, | ||
| 647 | [IRQ_DA8XX_RTC] = 7, | ||
| 648 | [IRQ_DA8XX_SPINT0] = 7, | ||
| 649 | [IRQ_DA8XX_TINT12_0] = 7, | ||
| 650 | [IRQ_DA8XX_TINT34_0] = 7, | ||
| 651 | [IRQ_DA8XX_TINT12_1] = 7, | ||
| 652 | [IRQ_DA8XX_TINT34_1] = 7, | ||
| 653 | [IRQ_DA8XX_UARTINT0] = 7, | ||
| 654 | [IRQ_DA8XX_KEYMGRINT] = 7, | ||
| 655 | [IRQ_DA830_MPUERR] = 7, | ||
| 656 | [IRQ_DA8XX_CHIPINT0] = 7, | ||
| 657 | [IRQ_DA8XX_CHIPINT1] = 7, | ||
| 658 | [IRQ_DA8XX_CHIPINT2] = 7, | ||
| 659 | [IRQ_DA8XX_CHIPINT3] = 7, | ||
| 660 | [IRQ_DA8XX_TCERRINT1] = 7, | ||
| 661 | [IRQ_DA8XX_C0_RX_THRESH_PULSE] = 7, | ||
| 662 | [IRQ_DA8XX_C0_RX_PULSE] = 7, | ||
| 663 | [IRQ_DA8XX_C0_TX_PULSE] = 7, | ||
| 664 | [IRQ_DA8XX_C0_MISC_PULSE] = 7, | ||
| 665 | [IRQ_DA8XX_C1_RX_THRESH_PULSE] = 7, | ||
| 666 | [IRQ_DA8XX_C1_RX_PULSE] = 7, | ||
| 667 | [IRQ_DA8XX_C1_TX_PULSE] = 7, | ||
| 668 | [IRQ_DA8XX_C1_MISC_PULSE] = 7, | ||
| 669 | [IRQ_DA8XX_MEMERR] = 7, | ||
| 670 | [IRQ_DA8XX_GPIO0] = 7, | ||
| 671 | [IRQ_DA8XX_GPIO1] = 7, | ||
| 672 | [IRQ_DA8XX_GPIO2] = 7, | ||
| 673 | [IRQ_DA8XX_GPIO3] = 7, | ||
| 674 | [IRQ_DA8XX_GPIO4] = 7, | ||
| 675 | [IRQ_DA8XX_GPIO5] = 7, | ||
| 676 | [IRQ_DA8XX_GPIO6] = 7, | ||
| 677 | [IRQ_DA8XX_GPIO7] = 7, | ||
| 678 | [IRQ_DA8XX_GPIO8] = 7, | ||
| 679 | [IRQ_DA8XX_I2CINT1] = 7, | ||
| 680 | [IRQ_DA8XX_LCDINT] = 7, | ||
| 681 | [IRQ_DA8XX_UARTINT1] = 7, | ||
| 682 | [IRQ_DA8XX_MCASPINT] = 7, | ||
| 683 | [IRQ_DA8XX_ALLINT1] = 7, | ||
| 684 | [IRQ_DA8XX_SPINT1] = 7, | ||
| 685 | [IRQ_DA8XX_UHPI_INT1] = 7, | ||
| 686 | [IRQ_DA8XX_USB_INT] = 7, | ||
| 687 | [IRQ_DA8XX_IRQN] = 7, | ||
| 688 | [IRQ_DA8XX_RWAKEUP] = 7, | ||
| 689 | [IRQ_DA8XX_UARTINT2] = 7, | ||
| 690 | [IRQ_DA8XX_DFTSSINT] = 7, | ||
| 691 | [IRQ_DA8XX_EHRPWM0] = 7, | ||
| 692 | [IRQ_DA8XX_EHRPWM0TZ] = 7, | ||
| 693 | [IRQ_DA8XX_EHRPWM1] = 7, | ||
| 694 | [IRQ_DA8XX_EHRPWM1TZ] = 7, | ||
| 695 | [IRQ_DA830_EHRPWM2] = 7, | ||
| 696 | [IRQ_DA830_EHRPWM2TZ] = 7, | ||
| 697 | [IRQ_DA8XX_ECAP0] = 7, | ||
| 698 | [IRQ_DA8XX_ECAP1] = 7, | ||
| 699 | [IRQ_DA8XX_ECAP2] = 7, | ||
| 700 | [IRQ_DA830_EQEP0] = 7, | ||
| 701 | [IRQ_DA830_EQEP1] = 7, | ||
| 702 | [IRQ_DA830_T12CMPINT0_0] = 7, | ||
| 703 | [IRQ_DA830_T12CMPINT1_0] = 7, | ||
| 704 | [IRQ_DA830_T12CMPINT2_0] = 7, | ||
| 705 | [IRQ_DA830_T12CMPINT3_0] = 7, | ||
| 706 | [IRQ_DA830_T12CMPINT4_0] = 7, | ||
| 707 | [IRQ_DA830_T12CMPINT5_0] = 7, | ||
| 708 | [IRQ_DA830_T12CMPINT6_0] = 7, | ||
| 709 | [IRQ_DA830_T12CMPINT7_0] = 7, | ||
| 710 | [IRQ_DA830_T12CMPINT0_1] = 7, | ||
| 711 | [IRQ_DA830_T12CMPINT1_1] = 7, | ||
| 712 | [IRQ_DA830_T12CMPINT2_1] = 7, | ||
| 713 | [IRQ_DA830_T12CMPINT3_1] = 7, | ||
| 714 | [IRQ_DA830_T12CMPINT4_1] = 7, | ||
| 715 | [IRQ_DA830_T12CMPINT5_1] = 7, | ||
| 716 | [IRQ_DA830_T12CMPINT6_1] = 7, | ||
| 717 | [IRQ_DA830_T12CMPINT7_1] = 7, | ||
| 718 | [IRQ_DA8XX_ARMCLKSTOPREQ] = 7, | ||
| 719 | }; | ||
| 720 | |||
| 721 | static struct map_desc da830_io_desc[] = { | 627 | static struct map_desc da830_io_desc[] = { |
| 722 | { | 628 | { |
| 723 | .virtual = IO_VIRT, | 629 | .virtual = IO_VIRT, |
| @@ -772,17 +678,17 @@ int __init da830_register_gpio(void) | |||
| 772 | static struct davinci_timer_instance da830_timer_instance[2] = { | 678 | static struct davinci_timer_instance da830_timer_instance[2] = { |
| 773 | { | 679 | { |
| 774 | .base = DA8XX_TIMER64P0_BASE, | 680 | .base = DA8XX_TIMER64P0_BASE, |
| 775 | .bottom_irq = IRQ_DA8XX_TINT12_0, | 681 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT12_0), |
| 776 | .top_irq = IRQ_DA8XX_TINT34_0, | 682 | .top_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT34_0), |
| 777 | .cmp_off = DA830_CMP12_0, | 683 | .cmp_off = DA830_CMP12_0, |
| 778 | .cmp_irq = IRQ_DA830_T12CMPINT0_0, | 684 | .cmp_irq = DAVINCI_INTC_IRQ(IRQ_DA830_T12CMPINT0_0), |
| 779 | }, | 685 | }, |
| 780 | { | 686 | { |
| 781 | .base = DA8XX_TIMER64P1_BASE, | 687 | .base = DA8XX_TIMER64P1_BASE, |
| 782 | .bottom_irq = IRQ_DA8XX_TINT12_1, | 688 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT12_1), |
| 783 | .top_irq = IRQ_DA8XX_TINT34_1, | 689 | .top_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT34_1), |
| 784 | .cmp_off = DA830_CMP12_0, | 690 | .cmp_off = DA830_CMP12_0, |
| 785 | .cmp_irq = IRQ_DA830_T12CMPINT0_1, | 691 | .cmp_irq = DAVINCI_INTC_IRQ(IRQ_DA830_T12CMPINT0_1), |
| 786 | }, | 692 | }, |
| 787 | }; | 693 | }; |
| 788 | 694 | ||
| @@ -806,10 +712,6 @@ static const struct davinci_soc_info davinci_soc_info_da830 = { | |||
| 806 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, | 712 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, |
| 807 | .pinmux_pins = da830_pins, | 713 | .pinmux_pins = da830_pins, |
| 808 | .pinmux_pins_num = ARRAY_SIZE(da830_pins), | 714 | .pinmux_pins_num = ARRAY_SIZE(da830_pins), |
| 809 | .intc_base = DA8XX_CP_INTC_BASE, | ||
| 810 | .intc_type = DAVINCI_INTC_TYPE_CP_INTC, | ||
| 811 | .intc_irq_prios = da830_default_priorities, | ||
| 812 | .intc_irq_num = DA830_N_CP_INTC_IRQ, | ||
| 813 | .timer_info = &da830_timer_info, | 715 | .timer_info = &da830_timer_info, |
| 814 | .emac_pdata = &da8xx_emac_pdata, | 716 | .emac_pdata = &da8xx_emac_pdata, |
| 815 | }; | 717 | }; |
| @@ -822,6 +724,20 @@ void __init da830_init(void) | |||
| 822 | WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"); | 724 | WARN(!da8xx_syscfg0_base, "Unable to map syscfg0 module"); |
| 823 | } | 725 | } |
| 824 | 726 | ||
| 727 | static const struct davinci_cp_intc_config da830_cp_intc_config = { | ||
| 728 | .reg = { | ||
| 729 | .start = DA8XX_CP_INTC_BASE, | ||
| 730 | .end = DA8XX_CP_INTC_BASE + SZ_8K - 1, | ||
| 731 | .flags = IORESOURCE_MEM, | ||
| 732 | }, | ||
| 733 | .num_irqs = DA830_N_CP_INTC_IRQ, | ||
| 734 | }; | ||
| 735 | |||
| 736 | void __init da830_init_irq(void) | ||
| 737 | { | ||
| 738 | davinci_cp_intc_init(&da830_cp_intc_config); | ||
| 739 | } | ||
| 740 | |||
| 825 | void __init da830_init_time(void) | 741 | void __init da830_init_time(void) |
| 826 | { | 742 | { |
| 827 | void __iomem *pll; | 743 | void __iomem *pll; |
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index e7b78df2bfef..67ab71ba3ad3 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c | |||
| @@ -18,9 +18,11 @@ | |||
| 18 | #include <linux/cpufreq.h> | 18 | #include <linux/cpufreq.h> |
| 19 | #include <linux/gpio.h> | 19 | #include <linux/gpio.h> |
| 20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
| 21 | #include <linux/irqchip/irq-davinci-cp-intc.h> | ||
| 21 | #include <linux/mfd/da8xx-cfgchip.h> | 22 | #include <linux/mfd/da8xx-cfgchip.h> |
| 22 | #include <linux/platform_data/clk-da8xx-cfgchip.h> | 23 | #include <linux/platform_data/clk-da8xx-cfgchip.h> |
| 23 | #include <linux/platform_data/clk-davinci-pll.h> | 24 | #include <linux/platform_data/clk-davinci-pll.h> |
| 25 | #include <linux/platform_data/davinci-cpufreq.h> | ||
| 24 | #include <linux/platform_data/gpio-davinci.h> | 26 | #include <linux/platform_data/gpio-davinci.h> |
| 25 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
| 26 | #include <linux/regmap.h> | 28 | #include <linux/regmap.h> |
| @@ -29,13 +31,12 @@ | |||
| 29 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
| 30 | 32 | ||
| 31 | #include <mach/common.h> | 33 | #include <mach/common.h> |
| 32 | #include <mach/cpufreq.h> | ||
| 33 | #include <mach/cputype.h> | 34 | #include <mach/cputype.h> |
| 34 | #include <mach/da8xx.h> | 35 | #include <mach/da8xx.h> |
| 35 | #include <mach/irqs.h> | ||
| 36 | #include <mach/pm.h> | 36 | #include <mach/pm.h> |
| 37 | #include <mach/time.h> | 37 | #include <mach/time.h> |
| 38 | 38 | ||
| 39 | #include "irqs.h" | ||
| 39 | #include "mux.h" | 40 | #include "mux.h" |
| 40 | 41 | ||
| 41 | #define DA850_PLL1_BASE 0x01e1a000 | 42 | #define DA850_PLL1_BASE 0x01e1a000 |
| @@ -298,111 +299,6 @@ const short da850_vpif_display_pins[] __initconst = { | |||
| 298 | -1 | 299 | -1 |
| 299 | }; | 300 | }; |
| 300 | 301 | ||
| 301 | /* FIQ are pri 0-1; otherwise 2-7, with 7 lowest priority */ | ||
| 302 | static u8 da850_default_priorities[DA850_N_CP_INTC_IRQ] = { | ||
| 303 | [IRQ_DA8XX_COMMTX] = 7, | ||
| 304 | [IRQ_DA8XX_COMMRX] = 7, | ||
| 305 | [IRQ_DA8XX_NINT] = 7, | ||
| 306 | [IRQ_DA8XX_EVTOUT0] = 7, | ||
| 307 | [IRQ_DA8XX_EVTOUT1] = 7, | ||
| 308 | [IRQ_DA8XX_EVTOUT2] = 7, | ||
| 309 | [IRQ_DA8XX_EVTOUT3] = 7, | ||
| 310 | [IRQ_DA8XX_EVTOUT4] = 7, | ||
| 311 | [IRQ_DA8XX_EVTOUT5] = 7, | ||
| 312 | [IRQ_DA8XX_EVTOUT6] = 7, | ||
| 313 | [IRQ_DA8XX_EVTOUT7] = 7, | ||
| 314 | [IRQ_DA8XX_CCINT0] = 7, | ||
| 315 | [IRQ_DA8XX_CCERRINT] = 7, | ||
| 316 | [IRQ_DA8XX_TCERRINT0] = 7, | ||
| 317 | [IRQ_DA8XX_AEMIFINT] = 7, | ||
| 318 | [IRQ_DA8XX_I2CINT0] = 7, | ||
| 319 | [IRQ_DA8XX_MMCSDINT0] = 7, | ||
| 320 | [IRQ_DA8XX_MMCSDINT1] = 7, | ||
| 321 | [IRQ_DA8XX_ALLINT0] = 7, | ||
| 322 | [IRQ_DA8XX_RTC] = 7, | ||
| 323 | [IRQ_DA8XX_SPINT0] = 7, | ||
| 324 | [IRQ_DA8XX_TINT12_0] = 7, | ||
| 325 | [IRQ_DA8XX_TINT34_0] = 7, | ||
| 326 | [IRQ_DA8XX_TINT12_1] = 7, | ||
| 327 | [IRQ_DA8XX_TINT34_1] = 7, | ||
| 328 | [IRQ_DA8XX_UARTINT0] = 7, | ||
| 329 | [IRQ_DA8XX_KEYMGRINT] = 7, | ||
| 330 | [IRQ_DA850_MPUADDRERR0] = 7, | ||
| 331 | [IRQ_DA8XX_CHIPINT0] = 7, | ||
| 332 | [IRQ_DA8XX_CHIPINT1] = 7, | ||
| 333 | [IRQ_DA8XX_CHIPINT2] = 7, | ||
| 334 | [IRQ_DA8XX_CHIPINT3] = 7, | ||
| 335 | [IRQ_DA8XX_TCERRINT1] = 7, | ||
| 336 | [IRQ_DA8XX_C0_RX_THRESH_PULSE] = 7, | ||
| 337 | [IRQ_DA8XX_C0_RX_PULSE] = 7, | ||
| 338 | [IRQ_DA8XX_C0_TX_PULSE] = 7, | ||
| 339 | [IRQ_DA8XX_C0_MISC_PULSE] = 7, | ||
| 340 | [IRQ_DA8XX_C1_RX_THRESH_PULSE] = 7, | ||
| 341 | [IRQ_DA8XX_C1_RX_PULSE] = 7, | ||
| 342 | [IRQ_DA8XX_C1_TX_PULSE] = 7, | ||
| 343 | [IRQ_DA8XX_C1_MISC_PULSE] = 7, | ||
| 344 | [IRQ_DA8XX_MEMERR] = 7, | ||
| 345 | [IRQ_DA8XX_GPIO0] = 7, | ||
| 346 | [IRQ_DA8XX_GPIO1] = 7, | ||
| 347 | [IRQ_DA8XX_GPIO2] = 7, | ||
| 348 | [IRQ_DA8XX_GPIO3] = 7, | ||
| 349 | [IRQ_DA8XX_GPIO4] = 7, | ||
| 350 | [IRQ_DA8XX_GPIO5] = 7, | ||
| 351 | [IRQ_DA8XX_GPIO6] = 7, | ||
| 352 | [IRQ_DA8XX_GPIO7] = 7, | ||
| 353 | [IRQ_DA8XX_GPIO8] = 7, | ||
| 354 | [IRQ_DA8XX_I2CINT1] = 7, | ||
| 355 | [IRQ_DA8XX_LCDINT] = 7, | ||
| 356 | [IRQ_DA8XX_UARTINT1] = 7, | ||
| 357 | [IRQ_DA8XX_MCASPINT] = 7, | ||
| 358 | [IRQ_DA8XX_ALLINT1] = 7, | ||
| 359 | [IRQ_DA8XX_SPINT1] = 7, | ||
| 360 | [IRQ_DA8XX_UHPI_INT1] = 7, | ||
| 361 | [IRQ_DA8XX_USB_INT] = 7, | ||
| 362 | [IRQ_DA8XX_IRQN] = 7, | ||
| 363 | [IRQ_DA8XX_RWAKEUP] = 7, | ||
| 364 | [IRQ_DA8XX_UARTINT2] = 7, | ||
| 365 | [IRQ_DA8XX_DFTSSINT] = 7, | ||
| 366 | [IRQ_DA8XX_EHRPWM0] = 7, | ||
| 367 | [IRQ_DA8XX_EHRPWM0TZ] = 7, | ||
| 368 | [IRQ_DA8XX_EHRPWM1] = 7, | ||
| 369 | [IRQ_DA8XX_EHRPWM1TZ] = 7, | ||
| 370 | [IRQ_DA850_SATAINT] = 7, | ||
| 371 | [IRQ_DA850_TINTALL_2] = 7, | ||
| 372 | [IRQ_DA8XX_ECAP0] = 7, | ||
| 373 | [IRQ_DA8XX_ECAP1] = 7, | ||
| 374 | [IRQ_DA8XX_ECAP2] = 7, | ||
| 375 | [IRQ_DA850_MMCSDINT0_1] = 7, | ||
| 376 | [IRQ_DA850_MMCSDINT1_1] = 7, | ||
| 377 | [IRQ_DA850_T12CMPINT0_2] = 7, | ||
| 378 | [IRQ_DA850_T12CMPINT1_2] = 7, | ||
| 379 | [IRQ_DA850_T12CMPINT2_2] = 7, | ||
| 380 | [IRQ_DA850_T12CMPINT3_2] = 7, | ||
| 381 | [IRQ_DA850_T12CMPINT4_2] = 7, | ||
| 382 | [IRQ_DA850_T12CMPINT5_2] = 7, | ||
| 383 | [IRQ_DA850_T12CMPINT6_2] = 7, | ||
| 384 | [IRQ_DA850_T12CMPINT7_2] = 7, | ||
| 385 | [IRQ_DA850_T12CMPINT0_3] = 7, | ||
| 386 | [IRQ_DA850_T12CMPINT1_3] = 7, | ||
| 387 | [IRQ_DA850_T12CMPINT2_3] = 7, | ||
| 388 | [IRQ_DA850_T12CMPINT3_3] = 7, | ||
| 389 | [IRQ_DA850_T12CMPINT4_3] = 7, | ||
| 390 | [IRQ_DA850_T12CMPINT5_3] = 7, | ||
| 391 | [IRQ_DA850_T12CMPINT6_3] = 7, | ||
| 392 | [IRQ_DA850_T12CMPINT7_3] = 7, | ||
| 393 | [IRQ_DA850_RPIINT] = 7, | ||
| 394 | [IRQ_DA850_VPIFINT] = 7, | ||
| 395 | [IRQ_DA850_CCINT1] = 7, | ||
| 396 | [IRQ_DA850_CCERRINT1] = 7, | ||
| 397 | [IRQ_DA850_TCERRINT2] = 7, | ||
| 398 | [IRQ_DA850_TINTALL_3] = 7, | ||
| 399 | [IRQ_DA850_MCBSP0RINT] = 7, | ||
| 400 | [IRQ_DA850_MCBSP0XINT] = 7, | ||
| 401 | [IRQ_DA850_MCBSP1RINT] = 7, | ||
| 402 | [IRQ_DA850_MCBSP1XINT] = 7, | ||
| 403 | [IRQ_DA8XX_ARMCLKSTOPREQ] = 7, | ||
| 404 | }; | ||
| 405 | |||
| 406 | static struct map_desc da850_io_desc[] = { | 302 | static struct map_desc da850_io_desc[] = { |
| 407 | { | 303 | { |
| 408 | .virtual = IO_VIRT, | 304 | .virtual = IO_VIRT, |
| @@ -439,23 +335,23 @@ static struct davinci_id da850_ids[] = { | |||
| 439 | static struct davinci_timer_instance da850_timer_instance[4] = { | 335 | static struct davinci_timer_instance da850_timer_instance[4] = { |
| 440 | { | 336 | { |
| 441 | .base = DA8XX_TIMER64P0_BASE, | 337 | .base = DA8XX_TIMER64P0_BASE, |
| 442 | .bottom_irq = IRQ_DA8XX_TINT12_0, | 338 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT12_0), |
| 443 | .top_irq = IRQ_DA8XX_TINT34_0, | 339 | .top_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT34_0), |
| 444 | }, | 340 | }, |
| 445 | { | 341 | { |
| 446 | .base = DA8XX_TIMER64P1_BASE, | 342 | .base = DA8XX_TIMER64P1_BASE, |
| 447 | .bottom_irq = IRQ_DA8XX_TINT12_1, | 343 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT12_1), |
| 448 | .top_irq = IRQ_DA8XX_TINT34_1, | 344 | .top_irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_TINT34_1), |
| 449 | }, | 345 | }, |
| 450 | { | 346 | { |
| 451 | .base = DA850_TIMER64P2_BASE, | 347 | .base = DA850_TIMER64P2_BASE, |
| 452 | .bottom_irq = IRQ_DA850_TINT12_2, | 348 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_DA850_TINT12_2), |
| 453 | .top_irq = IRQ_DA850_TINT34_2, | 349 | .top_irq = DAVINCI_INTC_IRQ(IRQ_DA850_TINT34_2), |
| 454 | }, | 350 | }, |
| 455 | { | 351 | { |
| 456 | .base = DA850_TIMER64P3_BASE, | 352 | .base = DA850_TIMER64P3_BASE, |
| 457 | .bottom_irq = IRQ_DA850_TINT12_3, | 353 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_DA850_TINT12_3), |
| 458 | .top_irq = IRQ_DA850_TINT34_3, | 354 | .top_irq = DAVINCI_INTC_IRQ(IRQ_DA850_TINT34_3), |
| 459 | }, | 355 | }, |
| 460 | }; | 356 | }; |
| 461 | 357 | ||
| @@ -658,8 +554,8 @@ static struct platform_device da850_vpif_dev = { | |||
| 658 | 554 | ||
| 659 | static struct resource da850_vpif_display_resource[] = { | 555 | static struct resource da850_vpif_display_resource[] = { |
| 660 | { | 556 | { |
| 661 | .start = IRQ_DA850_VPIFINT, | 557 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_VPIFINT), |
| 662 | .end = IRQ_DA850_VPIFINT, | 558 | .end = DAVINCI_INTC_IRQ(IRQ_DA850_VPIFINT), |
| 663 | .flags = IORESOURCE_IRQ, | 559 | .flags = IORESOURCE_IRQ, |
| 664 | }, | 560 | }, |
| 665 | }; | 561 | }; |
| @@ -677,13 +573,13 @@ static struct platform_device da850_vpif_display_dev = { | |||
| 677 | 573 | ||
| 678 | static struct resource da850_vpif_capture_resource[] = { | 574 | static struct resource da850_vpif_capture_resource[] = { |
| 679 | { | 575 | { |
| 680 | .start = IRQ_DA850_VPIFINT, | 576 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_VPIFINT), |
| 681 | .end = IRQ_DA850_VPIFINT, | 577 | .end = DAVINCI_INTC_IRQ(IRQ_DA850_VPIFINT), |
| 682 | .flags = IORESOURCE_IRQ, | 578 | .flags = IORESOURCE_IRQ, |
| 683 | }, | 579 | }, |
| 684 | { | 580 | { |
| 685 | .start = IRQ_DA850_VPIFINT, | 581 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_VPIFINT), |
| 686 | .end = IRQ_DA850_VPIFINT, | 582 | .end = DAVINCI_INTC_IRQ(IRQ_DA850_VPIFINT), |
| 687 | .flags = IORESOURCE_IRQ, | 583 | .flags = IORESOURCE_IRQ, |
| 688 | }, | 584 | }, |
| 689 | }; | 585 | }; |
| @@ -738,10 +634,6 @@ static const struct davinci_soc_info davinci_soc_info_da850 = { | |||
| 738 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, | 634 | .pinmux_base = DA8XX_SYSCFG0_BASE + 0x120, |
| 739 | .pinmux_pins = da850_pins, | 635 | .pinmux_pins = da850_pins, |
| 740 | .pinmux_pins_num = ARRAY_SIZE(da850_pins), | 636 | .pinmux_pins_num = ARRAY_SIZE(da850_pins), |
| 741 | .intc_base = DA8XX_CP_INTC_BASE, | ||
| 742 | .intc_type = DAVINCI_INTC_TYPE_CP_INTC, | ||
| 743 | .intc_irq_prios = da850_default_priorities, | ||
| 744 | .intc_irq_num = DA850_N_CP_INTC_IRQ, | ||
| 745 | .timer_info = &da850_timer_info, | 637 | .timer_info = &da850_timer_info, |
| 746 | .emac_pdata = &da8xx_emac_pdata, | 638 | .emac_pdata = &da8xx_emac_pdata, |
| 747 | .sram_dma = DA8XX_SHARED_RAM_BASE, | 639 | .sram_dma = DA8XX_SHARED_RAM_BASE, |
| @@ -760,6 +652,20 @@ void __init da850_init(void) | |||
| 760 | WARN(!da8xx_syscfg1_base, "Unable to map syscfg1 module"); | 652 | WARN(!da8xx_syscfg1_base, "Unable to map syscfg1 module"); |
| 761 | } | 653 | } |
| 762 | 654 | ||
| 655 | static const struct davinci_cp_intc_config da850_cp_intc_config = { | ||
| 656 | .reg = { | ||
| 657 | .start = DA8XX_CP_INTC_BASE, | ||
| 658 | .end = DA8XX_CP_INTC_BASE + SZ_8K - 1, | ||
| 659 | .flags = IORESOURCE_MEM, | ||
| 660 | }, | ||
| 661 | .num_irqs = DA850_N_CP_INTC_IRQ, | ||
| 662 | }; | ||
| 663 | |||
| 664 | void __init da850_init_irq(void) | ||
| 665 | { | ||
| 666 | davinci_cp_intc_init(&da850_cp_intc_config); | ||
| 667 | } | ||
| 668 | |||
| 763 | void __init da850_init_time(void) | 669 | void __init da850_init_time(void) |
| 764 | { | 670 | { |
| 765 | void __iomem *pll0; | 671 | void __iomem *pll0; |
diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h index db4c95ef4d5c..56c1835c42e5 100644 --- a/arch/arm/mach-davinci/davinci.h +++ b/arch/arm/mach-davinci/davinci.h | |||
| @@ -88,6 +88,7 @@ int davinci_init_wdt(void); | |||
| 88 | /* DM355 function declarations */ | 88 | /* DM355 function declarations */ |
| 89 | void dm355_init(void); | 89 | void dm355_init(void); |
| 90 | void dm355_init_time(void); | 90 | void dm355_init_time(void); |
| 91 | void dm355_init_irq(void); | ||
| 91 | void dm355_register_clocks(void); | 92 | void dm355_register_clocks(void); |
| 92 | void dm355_init_spi0(unsigned chipselect_mask, | 93 | void dm355_init_spi0(unsigned chipselect_mask, |
| 93 | const struct spi_board_info *info, unsigned len); | 94 | const struct spi_board_info *info, unsigned len); |
| @@ -97,6 +98,7 @@ int dm355_gpio_register(void); | |||
| 97 | 98 | ||
| 98 | /* DM365 function declarations */ | 99 | /* DM365 function declarations */ |
| 99 | void dm365_init(void); | 100 | void dm365_init(void); |
| 101 | void dm365_init_irq(void); | ||
| 100 | void dm365_init_time(void); | 102 | void dm365_init_time(void); |
| 101 | void dm365_register_clocks(void); | 103 | void dm365_register_clocks(void); |
| 102 | void dm365_init_asp(void); | 104 | void dm365_init_asp(void); |
| @@ -110,6 +112,7 @@ int dm365_gpio_register(void); | |||
| 110 | 112 | ||
| 111 | /* DM644x function declarations */ | 113 | /* DM644x function declarations */ |
| 112 | void dm644x_init(void); | 114 | void dm644x_init(void); |
| 115 | void dm644x_init_irq(void); | ||
| 113 | void dm644x_init_devices(void); | 116 | void dm644x_init_devices(void); |
| 114 | void dm644x_init_time(void); | 117 | void dm644x_init_time(void); |
| 115 | void dm644x_register_clocks(void); | 118 | void dm644x_register_clocks(void); |
| @@ -119,6 +122,7 @@ int dm644x_gpio_register(void); | |||
| 119 | 122 | ||
| 120 | /* DM646x function declarations */ | 123 | /* DM646x function declarations */ |
| 121 | void dm646x_init(void); | 124 | void dm646x_init(void); |
| 125 | void dm646x_init_irq(void); | ||
| 122 | void dm646x_init_time(unsigned long ref_clk_rate, unsigned long aux_clkin_rate); | 126 | void dm646x_init_time(unsigned long ref_clk_rate, unsigned long aux_clkin_rate); |
| 123 | void dm646x_register_clocks(void); | 127 | void dm646x_register_clocks(void); |
| 124 | void dm646x_init_mcasp0(struct snd_platform_data *pdata); | 128 | void dm646x_init_mcasp0(struct snd_platform_data *pdata); |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index cf78da5ab054..b8dc674e06bc 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | #include "asp.h" | 29 | #include "asp.h" |
| 30 | #include "cpuidle.h" | 30 | #include "cpuidle.h" |
| 31 | #include "irqs.h" | ||
| 31 | #include "sram.h" | 32 | #include "sram.h" |
| 32 | 33 | ||
| 33 | #define DA8XX_TPCC_BASE 0x01c00000 | 34 | #define DA8XX_TPCC_BASE 0x01c00000 |
| @@ -64,7 +65,7 @@ void __iomem *da8xx_syscfg1_base; | |||
| 64 | static struct plat_serial8250_port da8xx_serial0_pdata[] = { | 65 | static struct plat_serial8250_port da8xx_serial0_pdata[] = { |
| 65 | { | 66 | { |
| 66 | .mapbase = DA8XX_UART0_BASE, | 67 | .mapbase = DA8XX_UART0_BASE, |
| 67 | .irq = IRQ_DA8XX_UARTINT0, | 68 | .irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_UARTINT0), |
| 68 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 69 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 69 | UPF_IOREMAP, | 70 | UPF_IOREMAP, |
| 70 | .iotype = UPIO_MEM, | 71 | .iotype = UPIO_MEM, |
| @@ -77,7 +78,7 @@ static struct plat_serial8250_port da8xx_serial0_pdata[] = { | |||
| 77 | static struct plat_serial8250_port da8xx_serial1_pdata[] = { | 78 | static struct plat_serial8250_port da8xx_serial1_pdata[] = { |
| 78 | { | 79 | { |
| 79 | .mapbase = DA8XX_UART1_BASE, | 80 | .mapbase = DA8XX_UART1_BASE, |
| 80 | .irq = IRQ_DA8XX_UARTINT1, | 81 | .irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_UARTINT1), |
| 81 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 82 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 82 | UPF_IOREMAP, | 83 | UPF_IOREMAP, |
| 83 | .iotype = UPIO_MEM, | 84 | .iotype = UPIO_MEM, |
| @@ -90,7 +91,7 @@ static struct plat_serial8250_port da8xx_serial1_pdata[] = { | |||
| 90 | static struct plat_serial8250_port da8xx_serial2_pdata[] = { | 91 | static struct plat_serial8250_port da8xx_serial2_pdata[] = { |
| 91 | { | 92 | { |
| 92 | .mapbase = DA8XX_UART2_BASE, | 93 | .mapbase = DA8XX_UART2_BASE, |
| 93 | .irq = IRQ_DA8XX_UARTINT2, | 94 | .irq = DAVINCI_INTC_IRQ(IRQ_DA8XX_UARTINT2), |
| 94 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 95 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 95 | UPF_IOREMAP, | 96 | UPF_IOREMAP, |
| 96 | .iotype = UPIO_MEM, | 97 | .iotype = UPIO_MEM, |
| @@ -171,12 +172,12 @@ static struct resource da8xx_edma0_resources[] = { | |||
| 171 | }, | 172 | }, |
| 172 | { | 173 | { |
| 173 | .name = "edma3_ccint", | 174 | .name = "edma3_ccint", |
| 174 | .start = IRQ_DA8XX_CCINT0, | 175 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_CCINT0), |
| 175 | .flags = IORESOURCE_IRQ, | 176 | .flags = IORESOURCE_IRQ, |
| 176 | }, | 177 | }, |
| 177 | { | 178 | { |
| 178 | .name = "edma3_ccerrint", | 179 | .name = "edma3_ccerrint", |
| 179 | .start = IRQ_DA8XX_CCERRINT, | 180 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_CCERRINT), |
| 180 | .flags = IORESOURCE_IRQ, | 181 | .flags = IORESOURCE_IRQ, |
| 181 | }, | 182 | }, |
| 182 | }; | 183 | }; |
| @@ -196,12 +197,12 @@ static struct resource da850_edma1_resources[] = { | |||
| 196 | }, | 197 | }, |
| 197 | { | 198 | { |
| 198 | .name = "edma3_ccint", | 199 | .name = "edma3_ccint", |
| 199 | .start = IRQ_DA850_CCINT1, | 200 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_CCINT1), |
| 200 | .flags = IORESOURCE_IRQ, | 201 | .flags = IORESOURCE_IRQ, |
| 201 | }, | 202 | }, |
| 202 | { | 203 | { |
| 203 | .name = "edma3_ccerrint", | 204 | .name = "edma3_ccerrint", |
| 204 | .start = IRQ_DA850_CCERRINT1, | 205 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_CCERRINT1), |
| 205 | .flags = IORESOURCE_IRQ, | 206 | .flags = IORESOURCE_IRQ, |
| 206 | }, | 207 | }, |
| 207 | }; | 208 | }; |
| @@ -306,8 +307,8 @@ static struct resource da8xx_i2c_resources0[] = { | |||
| 306 | .flags = IORESOURCE_MEM, | 307 | .flags = IORESOURCE_MEM, |
| 307 | }, | 308 | }, |
| 308 | { | 309 | { |
| 309 | .start = IRQ_DA8XX_I2CINT0, | 310 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_I2CINT0), |
| 310 | .end = IRQ_DA8XX_I2CINT0, | 311 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_I2CINT0), |
| 311 | .flags = IORESOURCE_IRQ, | 312 | .flags = IORESOURCE_IRQ, |
| 312 | }, | 313 | }, |
| 313 | }; | 314 | }; |
| @@ -326,8 +327,8 @@ static struct resource da8xx_i2c_resources1[] = { | |||
| 326 | .flags = IORESOURCE_MEM, | 327 | .flags = IORESOURCE_MEM, |
| 327 | }, | 328 | }, |
| 328 | { | 329 | { |
| 329 | .start = IRQ_DA8XX_I2CINT1, | 330 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_I2CINT1), |
| 330 | .end = IRQ_DA8XX_I2CINT1, | 331 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_I2CINT1), |
| 331 | .flags = IORESOURCE_IRQ, | 332 | .flags = IORESOURCE_IRQ, |
| 332 | }, | 333 | }, |
| 333 | }; | 334 | }; |
| @@ -382,23 +383,23 @@ static struct resource da8xx_emac_resources[] = { | |||
| 382 | .flags = IORESOURCE_MEM, | 383 | .flags = IORESOURCE_MEM, |
| 383 | }, | 384 | }, |
| 384 | { | 385 | { |
| 385 | .start = IRQ_DA8XX_C0_RX_THRESH_PULSE, | 386 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_RX_THRESH_PULSE), |
| 386 | .end = IRQ_DA8XX_C0_RX_THRESH_PULSE, | 387 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_RX_THRESH_PULSE), |
| 387 | .flags = IORESOURCE_IRQ, | 388 | .flags = IORESOURCE_IRQ, |
| 388 | }, | 389 | }, |
| 389 | { | 390 | { |
| 390 | .start = IRQ_DA8XX_C0_RX_PULSE, | 391 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_RX_PULSE), |
| 391 | .end = IRQ_DA8XX_C0_RX_PULSE, | 392 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_RX_PULSE), |
| 392 | .flags = IORESOURCE_IRQ, | 393 | .flags = IORESOURCE_IRQ, |
| 393 | }, | 394 | }, |
| 394 | { | 395 | { |
| 395 | .start = IRQ_DA8XX_C0_TX_PULSE, | 396 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_TX_PULSE), |
| 396 | .end = IRQ_DA8XX_C0_TX_PULSE, | 397 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_TX_PULSE), |
| 397 | .flags = IORESOURCE_IRQ, | 398 | .flags = IORESOURCE_IRQ, |
| 398 | }, | 399 | }, |
| 399 | { | 400 | { |
| 400 | .start = IRQ_DA8XX_C0_MISC_PULSE, | 401 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_MISC_PULSE), |
| 401 | .end = IRQ_DA8XX_C0_MISC_PULSE, | 402 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_C0_MISC_PULSE), |
| 402 | .flags = IORESOURCE_IRQ, | 403 | .flags = IORESOURCE_IRQ, |
| 403 | }, | 404 | }, |
| 404 | }; | 405 | }; |
| @@ -470,7 +471,7 @@ static struct resource da830_mcasp1_resources[] = { | |||
| 470 | }, | 471 | }, |
| 471 | { | 472 | { |
| 472 | .name = "common", | 473 | .name = "common", |
| 473 | .start = IRQ_DA8XX_MCASPINT, | 474 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_MCASPINT), |
| 474 | .flags = IORESOURCE_IRQ, | 475 | .flags = IORESOURCE_IRQ, |
| 475 | }, | 476 | }, |
| 476 | }; | 477 | }; |
| @@ -505,7 +506,7 @@ static struct resource da830_mcasp2_resources[] = { | |||
| 505 | }, | 506 | }, |
| 506 | { | 507 | { |
| 507 | .name = "common", | 508 | .name = "common", |
| 508 | .start = IRQ_DA8XX_MCASPINT, | 509 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_MCASPINT), |
| 509 | .flags = IORESOURCE_IRQ, | 510 | .flags = IORESOURCE_IRQ, |
| 510 | }, | 511 | }, |
| 511 | }; | 512 | }; |
| @@ -540,7 +541,7 @@ static struct resource da850_mcasp_resources[] = { | |||
| 540 | }, | 541 | }, |
| 541 | { | 542 | { |
| 542 | .name = "common", | 543 | .name = "common", |
| 543 | .start = IRQ_DA8XX_MCASPINT, | 544 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_MCASPINT), |
| 544 | .flags = IORESOURCE_IRQ, | 545 | .flags = IORESOURCE_IRQ, |
| 545 | }, | 546 | }, |
| 546 | }; | 547 | }; |
| @@ -588,43 +589,43 @@ static struct resource da8xx_pruss_resources[] = { | |||
| 588 | .flags = IORESOURCE_MEM, | 589 | .flags = IORESOURCE_MEM, |
| 589 | }, | 590 | }, |
| 590 | { | 591 | { |
| 591 | .start = IRQ_DA8XX_EVTOUT0, | 592 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT0), |
| 592 | .end = IRQ_DA8XX_EVTOUT0, | 593 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT0), |
| 593 | .flags = IORESOURCE_IRQ, | 594 | .flags = IORESOURCE_IRQ, |
| 594 | }, | 595 | }, |
| 595 | { | 596 | { |
| 596 | .start = IRQ_DA8XX_EVTOUT1, | 597 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT1), |
| 597 | .end = IRQ_DA8XX_EVTOUT1, | 598 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT1), |
| 598 | .flags = IORESOURCE_IRQ, | 599 | .flags = IORESOURCE_IRQ, |
| 599 | }, | 600 | }, |
| 600 | { | 601 | { |
| 601 | .start = IRQ_DA8XX_EVTOUT2, | 602 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT2), |
| 602 | .end = IRQ_DA8XX_EVTOUT2, | 603 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT2), |
| 603 | .flags = IORESOURCE_IRQ, | 604 | .flags = IORESOURCE_IRQ, |
| 604 | }, | 605 | }, |
| 605 | { | 606 | { |
| 606 | .start = IRQ_DA8XX_EVTOUT3, | 607 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT3), |
| 607 | .end = IRQ_DA8XX_EVTOUT3, | 608 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT3), |
| 608 | .flags = IORESOURCE_IRQ, | 609 | .flags = IORESOURCE_IRQ, |
| 609 | }, | 610 | }, |
| 610 | { | 611 | { |
| 611 | .start = IRQ_DA8XX_EVTOUT4, | 612 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT4), |
| 612 | .end = IRQ_DA8XX_EVTOUT4, | 613 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT4), |
| 613 | .flags = IORESOURCE_IRQ, | 614 | .flags = IORESOURCE_IRQ, |
| 614 | }, | 615 | }, |
| 615 | { | 616 | { |
| 616 | .start = IRQ_DA8XX_EVTOUT5, | 617 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT5), |
| 617 | .end = IRQ_DA8XX_EVTOUT5, | 618 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT5), |
| 618 | .flags = IORESOURCE_IRQ, | 619 | .flags = IORESOURCE_IRQ, |
| 619 | }, | 620 | }, |
| 620 | { | 621 | { |
| 621 | .start = IRQ_DA8XX_EVTOUT6, | 622 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT6), |
| 622 | .end = IRQ_DA8XX_EVTOUT6, | 623 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT6), |
| 623 | .flags = IORESOURCE_IRQ, | 624 | .flags = IORESOURCE_IRQ, |
| 624 | }, | 625 | }, |
| 625 | { | 626 | { |
| 626 | .start = IRQ_DA8XX_EVTOUT7, | 627 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT7), |
| 627 | .end = IRQ_DA8XX_EVTOUT7, | 628 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_EVTOUT7), |
| 628 | .flags = IORESOURCE_IRQ, | 629 | .flags = IORESOURCE_IRQ, |
| 629 | }, | 630 | }, |
| 630 | }; | 631 | }; |
| @@ -674,8 +675,8 @@ static struct resource da8xx_lcdc_resources[] = { | |||
| 674 | .flags = IORESOURCE_MEM, | 675 | .flags = IORESOURCE_MEM, |
| 675 | }, | 676 | }, |
| 676 | [1] = { /* interrupt */ | 677 | [1] = { /* interrupt */ |
| 677 | .start = IRQ_DA8XX_LCDINT, | 678 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_LCDINT), |
| 678 | .end = IRQ_DA8XX_LCDINT, | 679 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_LCDINT), |
| 679 | .flags = IORESOURCE_IRQ, | 680 | .flags = IORESOURCE_IRQ, |
| 680 | }, | 681 | }, |
| 681 | }; | 682 | }; |
| @@ -700,48 +701,48 @@ static struct resource da8xx_gpio_resources[] = { | |||
| 700 | .flags = IORESOURCE_MEM, | 701 | .flags = IORESOURCE_MEM, |
| 701 | }, | 702 | }, |
| 702 | { /* interrupt */ | 703 | { /* interrupt */ |
| 703 | .start = IRQ_DA8XX_GPIO0, | 704 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO0), |
| 704 | .end = IRQ_DA8XX_GPIO0, | 705 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO0), |
| 705 | .flags = IORESOURCE_IRQ, | 706 | .flags = IORESOURCE_IRQ, |
| 706 | }, | 707 | }, |
| 707 | { | 708 | { |
| 708 | .start = IRQ_DA8XX_GPIO1, | 709 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO1), |
| 709 | .end = IRQ_DA8XX_GPIO1, | 710 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO1), |
| 710 | .flags = IORESOURCE_IRQ, | 711 | .flags = IORESOURCE_IRQ, |
| 711 | }, | 712 | }, |
| 712 | { | 713 | { |
| 713 | .start = IRQ_DA8XX_GPIO2, | 714 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO2), |
| 714 | .end = IRQ_DA8XX_GPIO2, | 715 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO2), |
| 715 | .flags = IORESOURCE_IRQ, | 716 | .flags = IORESOURCE_IRQ, |
| 716 | }, | 717 | }, |
| 717 | { | 718 | { |
| 718 | .start = IRQ_DA8XX_GPIO3, | 719 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO3), |
| 719 | .end = IRQ_DA8XX_GPIO3, | 720 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO3), |
| 720 | .flags = IORESOURCE_IRQ, | 721 | .flags = IORESOURCE_IRQ, |
| 721 | }, | 722 | }, |
| 722 | { | 723 | { |
| 723 | .start = IRQ_DA8XX_GPIO4, | 724 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO4), |
| 724 | .end = IRQ_DA8XX_GPIO4, | 725 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO4), |
| 725 | .flags = IORESOURCE_IRQ, | 726 | .flags = IORESOURCE_IRQ, |
| 726 | }, | 727 | }, |
| 727 | { | 728 | { |
| 728 | .start = IRQ_DA8XX_GPIO5, | 729 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO5), |
| 729 | .end = IRQ_DA8XX_GPIO5, | 730 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO5), |
| 730 | .flags = IORESOURCE_IRQ, | 731 | .flags = IORESOURCE_IRQ, |
| 731 | }, | 732 | }, |
| 732 | { | 733 | { |
| 733 | .start = IRQ_DA8XX_GPIO6, | 734 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO6), |
| 734 | .end = IRQ_DA8XX_GPIO6, | 735 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO6), |
| 735 | .flags = IORESOURCE_IRQ, | 736 | .flags = IORESOURCE_IRQ, |
| 736 | }, | 737 | }, |
| 737 | { | 738 | { |
| 738 | .start = IRQ_DA8XX_GPIO7, | 739 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO7), |
| 739 | .end = IRQ_DA8XX_GPIO7, | 740 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO7), |
| 740 | .flags = IORESOURCE_IRQ, | 741 | .flags = IORESOURCE_IRQ, |
| 741 | }, | 742 | }, |
| 742 | { | 743 | { |
| 743 | .start = IRQ_DA8XX_GPIO8, | 744 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO8), |
| 744 | .end = IRQ_DA8XX_GPIO8, | 745 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_GPIO8), |
| 745 | .flags = IORESOURCE_IRQ, | 746 | .flags = IORESOURCE_IRQ, |
| 746 | }, | 747 | }, |
| 747 | }; | 748 | }; |
| @@ -766,8 +767,8 @@ static struct resource da8xx_mmcsd0_resources[] = { | |||
| 766 | .flags = IORESOURCE_MEM, | 767 | .flags = IORESOURCE_MEM, |
| 767 | }, | 768 | }, |
| 768 | { /* interrupt */ | 769 | { /* interrupt */ |
| 769 | .start = IRQ_DA8XX_MMCSDINT0, | 770 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_MMCSDINT0), |
| 770 | .end = IRQ_DA8XX_MMCSDINT0, | 771 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_MMCSDINT0), |
| 771 | .flags = IORESOURCE_IRQ, | 772 | .flags = IORESOURCE_IRQ, |
| 772 | }, | 773 | }, |
| 773 | }; | 774 | }; |
| @@ -793,8 +794,8 @@ static struct resource da850_mmcsd1_resources[] = { | |||
| 793 | .flags = IORESOURCE_MEM, | 794 | .flags = IORESOURCE_MEM, |
| 794 | }, | 795 | }, |
| 795 | { /* interrupt */ | 796 | { /* interrupt */ |
| 796 | .start = IRQ_DA850_MMCSDINT0_1, | 797 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_MMCSDINT0_1), |
| 797 | .end = IRQ_DA850_MMCSDINT0_1, | 798 | .end = DAVINCI_INTC_IRQ(IRQ_DA850_MMCSDINT0_1), |
| 798 | .flags = IORESOURCE_IRQ, | 799 | .flags = IORESOURCE_IRQ, |
| 799 | }, | 800 | }, |
| 800 | }; | 801 | }; |
| @@ -845,8 +846,8 @@ static struct resource da8xx_rproc_resources[] = { | |||
| 845 | .flags = IORESOURCE_MEM, | 846 | .flags = IORESOURCE_MEM, |
| 846 | }, | 847 | }, |
| 847 | { /* dsp irq */ | 848 | { /* dsp irq */ |
| 848 | .start = IRQ_DA8XX_CHIPINT0, | 849 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_CHIPINT0), |
| 849 | .end = IRQ_DA8XX_CHIPINT0, | 850 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_CHIPINT0), |
| 850 | .flags = IORESOURCE_IRQ, | 851 | .flags = IORESOURCE_IRQ, |
| 851 | }, | 852 | }, |
| 852 | }; | 853 | }; |
| @@ -936,13 +937,13 @@ static struct resource da8xx_rtc_resources[] = { | |||
| 936 | .flags = IORESOURCE_MEM, | 937 | .flags = IORESOURCE_MEM, |
| 937 | }, | 938 | }, |
| 938 | { /* timer irq */ | 939 | { /* timer irq */ |
| 939 | .start = IRQ_DA8XX_RTC, | 940 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_RTC), |
| 940 | .end = IRQ_DA8XX_RTC, | 941 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_RTC), |
| 941 | .flags = IORESOURCE_IRQ, | 942 | .flags = IORESOURCE_IRQ, |
| 942 | }, | 943 | }, |
| 943 | { /* alarm irq */ | 944 | { /* alarm irq */ |
| 944 | .start = IRQ_DA8XX_RTC, | 945 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_RTC), |
| 945 | .end = IRQ_DA8XX_RTC, | 946 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_RTC), |
| 946 | .flags = IORESOURCE_IRQ, | 947 | .flags = IORESOURCE_IRQ, |
| 947 | }, | 948 | }, |
| 948 | }; | 949 | }; |
| @@ -1009,8 +1010,8 @@ static struct resource da8xx_spi0_resources[] = { | |||
| 1009 | .flags = IORESOURCE_MEM, | 1010 | .flags = IORESOURCE_MEM, |
| 1010 | }, | 1011 | }, |
| 1011 | [1] = { | 1012 | [1] = { |
| 1012 | .start = IRQ_DA8XX_SPINT0, | 1013 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_SPINT0), |
| 1013 | .end = IRQ_DA8XX_SPINT0, | 1014 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_SPINT0), |
| 1014 | .flags = IORESOURCE_IRQ, | 1015 | .flags = IORESOURCE_IRQ, |
| 1015 | }, | 1016 | }, |
| 1016 | }; | 1017 | }; |
| @@ -1022,8 +1023,8 @@ static struct resource da8xx_spi1_resources[] = { | |||
| 1022 | .flags = IORESOURCE_MEM, | 1023 | .flags = IORESOURCE_MEM, |
| 1023 | }, | 1024 | }, |
| 1024 | [1] = { | 1025 | [1] = { |
| 1025 | .start = IRQ_DA8XX_SPINT1, | 1026 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_SPINT1), |
| 1026 | .end = IRQ_DA8XX_SPINT1, | 1027 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_SPINT1), |
| 1027 | .flags = IORESOURCE_IRQ, | 1028 | .flags = IORESOURCE_IRQ, |
| 1028 | }, | 1029 | }, |
| 1029 | }; | 1030 | }; |
| @@ -1103,7 +1104,7 @@ static struct resource da850_sata_resources[] = { | |||
| 1103 | .flags = IORESOURCE_MEM, | 1104 | .flags = IORESOURCE_MEM, |
| 1104 | }, | 1105 | }, |
| 1105 | { | 1106 | { |
| 1106 | .start = IRQ_DA850_SATAINT, | 1107 | .start = DAVINCI_INTC_IRQ(IRQ_DA850_SATAINT), |
| 1107 | .flags = IORESOURCE_IRQ, | 1108 | .flags = IORESOURCE_IRQ, |
| 1108 | }, | 1109 | }, |
| 1109 | }; | 1110 | }; |
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c index e8dbbb7479ab..40bd8029e457 100644 --- a/arch/arm/mach-davinci/devices.c +++ b/arch/arm/mach-davinci/devices.c | |||
| @@ -11,21 +11,20 @@ | |||
| 11 | 11 | ||
| 12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
| 13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 14 | #include <linux/platform_data/i2c-davinci.h> | ||
| 15 | #include <linux/platform_data/mmc-davinci.h> | ||
| 16 | #include <linux/platform_data/edma.h> | ||
| 14 | #include <linux/dma-mapping.h> | 17 | #include <linux/dma-mapping.h> |
| 15 | #include <linux/io.h> | 18 | #include <linux/io.h> |
| 16 | #include <linux/reboot.h> | 19 | #include <linux/reboot.h> |
| 17 | 20 | ||
| 18 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
| 19 | #include <linux/platform_data/i2c-davinci.h> | ||
| 20 | #include <mach/irqs.h> | ||
| 21 | #include <mach/cputype.h> | 22 | #include <mach/cputype.h> |
| 22 | #include <mach/mux.h> | 23 | #include <mach/mux.h> |
| 23 | #include <linux/platform_data/mmc-davinci.h> | ||
| 24 | #include <mach/time.h> | 24 | #include <mach/time.h> |
| 25 | #include <linux/platform_data/edma.h> | ||
| 26 | |||
| 27 | 25 | ||
| 28 | #include "davinci.h" | 26 | #include "davinci.h" |
| 27 | #include "irqs.h" | ||
| 29 | 28 | ||
| 30 | #define DAVINCI_I2C_BASE 0x01C21000 | 29 | #define DAVINCI_I2C_BASE 0x01C21000 |
| 31 | #define DAVINCI_ATA_BASE 0x01C66000 | 30 | #define DAVINCI_ATA_BASE 0x01C66000 |
| @@ -56,7 +55,7 @@ static struct resource i2c_resources[] = { | |||
| 56 | .flags = IORESOURCE_MEM, | 55 | .flags = IORESOURCE_MEM, |
| 57 | }, | 56 | }, |
| 58 | { | 57 | { |
| 59 | .start = IRQ_I2C, | 58 | .start = DAVINCI_INTC_IRQ(IRQ_I2C), |
| 60 | .flags = IORESOURCE_IRQ, | 59 | .flags = IORESOURCE_IRQ, |
| 61 | }, | 60 | }, |
| 62 | }; | 61 | }; |
| @@ -84,8 +83,8 @@ static struct resource ide_resources[] = { | |||
| 84 | .flags = IORESOURCE_MEM, | 83 | .flags = IORESOURCE_MEM, |
| 85 | }, | 84 | }, |
| 86 | { | 85 | { |
| 87 | .start = IRQ_IDE, | 86 | .start = DAVINCI_INTC_IRQ(IRQ_IDE), |
| 88 | .end = IRQ_IDE, | 87 | .end = DAVINCI_INTC_IRQ(IRQ_IDE), |
| 89 | .flags = IORESOURCE_IRQ, | 88 | .flags = IORESOURCE_IRQ, |
| 90 | }, | 89 | }, |
| 91 | }; | 90 | }; |
| @@ -133,11 +132,11 @@ static struct resource mmcsd0_resources[] = { | |||
| 133 | }, | 132 | }, |
| 134 | /* IRQs: MMC/SD, then SDIO */ | 133 | /* IRQs: MMC/SD, then SDIO */ |
| 135 | { | 134 | { |
| 136 | .start = IRQ_MMCINT, | 135 | .start = DAVINCI_INTC_IRQ(IRQ_MMCINT), |
| 137 | .flags = IORESOURCE_IRQ, | 136 | .flags = IORESOURCE_IRQ, |
| 138 | }, { | 137 | }, { |
| 139 | /* different on dm355 */ | 138 | /* different on dm355 */ |
| 140 | .start = IRQ_SDIOINT, | 139 | .start = DAVINCI_INTC_IRQ(IRQ_SDIOINT), |
| 141 | .flags = IORESOURCE_IRQ, | 140 | .flags = IORESOURCE_IRQ, |
| 142 | }, | 141 | }, |
| 143 | }; | 142 | }; |
| @@ -163,10 +162,10 @@ static struct resource mmcsd1_resources[] = { | |||
| 163 | }, | 162 | }, |
| 164 | /* IRQs: MMC/SD, then SDIO */ | 163 | /* IRQs: MMC/SD, then SDIO */ |
| 165 | { | 164 | { |
| 166 | .start = IRQ_DM355_MMCINT1, | 165 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_MMCINT1), |
| 167 | .flags = IORESOURCE_IRQ, | 166 | .flags = IORESOURCE_IRQ, |
| 168 | }, { | 167 | }, { |
| 169 | .start = IRQ_DM355_SDIOINT1, | 168 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_SDIOINT1), |
| 170 | .flags = IORESOURCE_IRQ, | 169 | .flags = IORESOURCE_IRQ, |
| 171 | }, | 170 | }, |
| 172 | }; | 171 | }; |
| @@ -219,7 +218,8 @@ void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config) | |||
| 219 | mmcsd1_resources[0].start = DM365_MMCSD1_BASE; | 218 | mmcsd1_resources[0].start = DM365_MMCSD1_BASE; |
| 220 | mmcsd1_resources[0].end = DM365_MMCSD1_BASE + | 219 | mmcsd1_resources[0].end = DM365_MMCSD1_BASE + |
| 221 | SZ_4K - 1; | 220 | SZ_4K - 1; |
| 222 | mmcsd1_resources[2].start = IRQ_DM365_SDIOINT1; | 221 | mmcsd1_resources[2].start = DAVINCI_INTC_IRQ( |
| 222 | IRQ_DM365_SDIOINT1); | ||
| 223 | davinci_mmcsd1_device.name = "da830-mmc"; | 223 | davinci_mmcsd1_device.name = "da830-mmc"; |
| 224 | } else | 224 | } else |
| 225 | break; | 225 | break; |
| @@ -230,7 +230,8 @@ void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config) | |||
| 230 | if (cpu_is_davinci_dm355()) { | 230 | if (cpu_is_davinci_dm355()) { |
| 231 | mmcsd0_resources[0].start = DM355_MMCSD0_BASE; | 231 | mmcsd0_resources[0].start = DM355_MMCSD0_BASE; |
| 232 | mmcsd0_resources[0].end = DM355_MMCSD0_BASE + SZ_4K - 1; | 232 | mmcsd0_resources[0].end = DM355_MMCSD0_BASE + SZ_4K - 1; |
| 233 | mmcsd0_resources[2].start = IRQ_DM355_SDIOINT0; | 233 | mmcsd0_resources[2].start = DAVINCI_INTC_IRQ( |
| 234 | IRQ_DM355_SDIOINT0); | ||
| 234 | 235 | ||
| 235 | /* expose all 6 MMC0 signals: CLK, CMD, DATA[0..3] */ | 236 | /* expose all 6 MMC0 signals: CLK, CMD, DATA[0..3] */ |
| 236 | davinci_cfg_reg(DM355_MMCSD0); | 237 | davinci_cfg_reg(DM355_MMCSD0); |
| @@ -241,7 +242,8 @@ void __init davinci_setup_mmc(int module, struct davinci_mmc_config *config) | |||
| 241 | mmcsd0_resources[0].start = DM365_MMCSD0_BASE; | 242 | mmcsd0_resources[0].start = DM365_MMCSD0_BASE; |
| 242 | mmcsd0_resources[0].end = DM365_MMCSD0_BASE + | 243 | mmcsd0_resources[0].end = DM365_MMCSD0_BASE + |
| 243 | SZ_4K - 1; | 244 | SZ_4K - 1; |
| 244 | mmcsd0_resources[2].start = IRQ_DM365_SDIOINT0; | 245 | mmcsd0_resources[2].start = DAVINCI_INTC_IRQ( |
| 246 | IRQ_DM365_SDIOINT0); | ||
| 245 | davinci_mmcsd0_device.name = "da830-mmc"; | 247 | davinci_mmcsd0_device.name = "da830-mmc"; |
| 246 | } else if (cpu_is_davinci_dm644x()) { | 248 | } else if (cpu_is_davinci_dm644x()) { |
| 247 | /* REVISIT: should this be in board-init code? */ | 249 | /* REVISIT: should this be in board-init code? */ |
| @@ -313,13 +315,13 @@ int davinci_gpio_register(struct resource *res, int size, void *pdata) | |||
| 313 | struct davinci_timer_instance davinci_timer_instance[2] = { | 315 | struct davinci_timer_instance davinci_timer_instance[2] = { |
| 314 | { | 316 | { |
| 315 | .base = DAVINCI_TIMER0_BASE, | 317 | .base = DAVINCI_TIMER0_BASE, |
| 316 | .bottom_irq = IRQ_TINT0_TINT12, | 318 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_TINT0_TINT12), |
| 317 | .top_irq = IRQ_TINT0_TINT34, | 319 | .top_irq = DAVINCI_INTC_IRQ(IRQ_TINT0_TINT34), |
| 318 | }, | 320 | }, |
| 319 | { | 321 | { |
| 320 | .base = DAVINCI_TIMER1_BASE, | 322 | .base = DAVINCI_TIMER1_BASE, |
| 321 | .bottom_irq = IRQ_TINT1_TINT12, | 323 | .bottom_irq = DAVINCI_INTC_IRQ(IRQ_TINT1_TINT12), |
| 322 | .top_irq = IRQ_TINT1_TINT34, | 324 | .top_irq = DAVINCI_INTC_IRQ(IRQ_TINT1_TINT34), |
| 323 | }, | 325 | }, |
| 324 | }; | 326 | }; |
| 325 | 327 | ||
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index 4c6e0bef4509..4a482445b9a2 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/dma-mapping.h> | 15 | #include <linux/dma-mapping.h> |
| 16 | #include <linux/dmaengine.h> | 16 | #include <linux/dmaengine.h> |
| 17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
| 18 | #include <linux/irqchip/irq-davinci-aintc.h> | ||
| 18 | #include <linux/platform_data/edma.h> | 19 | #include <linux/platform_data/edma.h> |
| 19 | #include <linux/platform_data/gpio-davinci.h> | 20 | #include <linux/platform_data/gpio-davinci.h> |
| 20 | #include <linux/platform_data/spi-davinci.h> | 21 | #include <linux/platform_data/spi-davinci.h> |
| @@ -26,13 +27,13 @@ | |||
| 26 | 27 | ||
| 27 | #include <mach/common.h> | 28 | #include <mach/common.h> |
| 28 | #include <mach/cputype.h> | 29 | #include <mach/cputype.h> |
| 29 | #include <mach/irqs.h> | ||
| 30 | #include <mach/mux.h> | 30 | #include <mach/mux.h> |
| 31 | #include <mach/serial.h> | 31 | #include <mach/serial.h> |
| 32 | #include <mach/time.h> | 32 | #include <mach/time.h> |
| 33 | 33 | ||
| 34 | #include "asp.h" | 34 | #include "asp.h" |
| 35 | #include "davinci.h" | 35 | #include "davinci.h" |
| 36 | #include "irqs.h" | ||
| 36 | #include "mux.h" | 37 | #include "mux.h" |
| 37 | 38 | ||
| 38 | #define DM355_UART2_BASE (IO_PHYS + 0x206000) | 39 | #define DM355_UART2_BASE (IO_PHYS + 0x206000) |
| @@ -53,7 +54,7 @@ static struct resource dm355_spi0_resources[] = { | |||
| 53 | .flags = IORESOURCE_MEM, | 54 | .flags = IORESOURCE_MEM, |
| 54 | }, | 55 | }, |
| 55 | { | 56 | { |
| 56 | .start = IRQ_DM355_SPINT0_0, | 57 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_SPINT0_0), |
| 57 | .flags = IORESOURCE_IRQ, | 58 | .flags = IORESOURCE_IRQ, |
| 58 | }, | 59 | }, |
| 59 | }; | 60 | }; |
| @@ -273,12 +274,12 @@ static struct resource edma_resources[] = { | |||
| 273 | }, | 274 | }, |
| 274 | { | 275 | { |
| 275 | .name = "edma3_ccint", | 276 | .name = "edma3_ccint", |
| 276 | .start = IRQ_CCINT0, | 277 | .start = DAVINCI_INTC_IRQ(IRQ_CCINT0), |
| 277 | .flags = IORESOURCE_IRQ, | 278 | .flags = IORESOURCE_IRQ, |
| 278 | }, | 279 | }, |
| 279 | { | 280 | { |
| 280 | .name = "edma3_ccerrint", | 281 | .name = "edma3_ccerrint", |
| 281 | .start = IRQ_CCERRINT, | 282 | .start = DAVINCI_INTC_IRQ(IRQ_CCERRINT), |
| 282 | .flags = IORESOURCE_IRQ, | 283 | .flags = IORESOURCE_IRQ, |
| 283 | }, | 284 | }, |
| 284 | /* not using (or muxing) TC*_ERR */ | 285 | /* not using (or muxing) TC*_ERR */ |
| @@ -358,13 +359,13 @@ static struct platform_device dm355_vpss_device = { | |||
| 358 | 359 | ||
| 359 | static struct resource vpfe_resources[] = { | 360 | static struct resource vpfe_resources[] = { |
| 360 | { | 361 | { |
| 361 | .start = IRQ_VDINT0, | 362 | .start = DAVINCI_INTC_IRQ(IRQ_VDINT0), |
| 362 | .end = IRQ_VDINT0, | 363 | .end = DAVINCI_INTC_IRQ(IRQ_VDINT0), |
| 363 | .flags = IORESOURCE_IRQ, | 364 | .flags = IORESOURCE_IRQ, |
| 364 | }, | 365 | }, |
| 365 | { | 366 | { |
| 366 | .start = IRQ_VDINT1, | 367 | .start = DAVINCI_INTC_IRQ(IRQ_VDINT1), |
| 367 | .end = IRQ_VDINT1, | 368 | .end = DAVINCI_INTC_IRQ(IRQ_VDINT1), |
| 368 | .flags = IORESOURCE_IRQ, | 369 | .flags = IORESOURCE_IRQ, |
| 369 | }, | 370 | }, |
| 370 | }; | 371 | }; |
| @@ -422,8 +423,8 @@ static struct platform_device dm355_osd_dev = { | |||
| 422 | 423 | ||
| 423 | static struct resource dm355_venc_resources[] = { | 424 | static struct resource dm355_venc_resources[] = { |
| 424 | { | 425 | { |
| 425 | .start = IRQ_VENCINT, | 426 | .start = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 426 | .end = IRQ_VENCINT, | 427 | .end = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 427 | .flags = IORESOURCE_IRQ, | 428 | .flags = IORESOURCE_IRQ, |
| 428 | }, | 429 | }, |
| 429 | /* venc registers io space */ | 430 | /* venc registers io space */ |
| @@ -442,8 +443,8 @@ static struct resource dm355_venc_resources[] = { | |||
| 442 | 443 | ||
| 443 | static struct resource dm355_v4l2_disp_resources[] = { | 444 | static struct resource dm355_v4l2_disp_resources[] = { |
| 444 | { | 445 | { |
| 445 | .start = IRQ_VENCINT, | 446 | .start = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 446 | .end = IRQ_VENCINT, | 447 | .end = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 447 | .flags = IORESOURCE_IRQ, | 448 | .flags = IORESOURCE_IRQ, |
| 448 | }, | 449 | }, |
| 449 | /* venc registers io space */ | 450 | /* venc registers io space */ |
| @@ -547,38 +548,38 @@ static struct resource dm355_gpio_resources[] = { | |||
| 547 | .flags = IORESOURCE_MEM, | 548 | .flags = IORESOURCE_MEM, |
| 548 | }, | 549 | }, |
| 549 | { /* interrupt */ | 550 | { /* interrupt */ |
| 550 | .start = IRQ_DM355_GPIOBNK0, | 551 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK0), |
| 551 | .end = IRQ_DM355_GPIOBNK0, | 552 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK0), |
| 552 | .flags = IORESOURCE_IRQ, | 553 | .flags = IORESOURCE_IRQ, |
| 553 | }, | 554 | }, |
| 554 | { | 555 | { |
| 555 | .start = IRQ_DM355_GPIOBNK1, | 556 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK1), |
| 556 | .end = IRQ_DM355_GPIOBNK1, | 557 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK1), |
| 557 | .flags = IORESOURCE_IRQ, | 558 | .flags = IORESOURCE_IRQ, |
| 558 | }, | 559 | }, |
| 559 | { | 560 | { |
| 560 | .start = IRQ_DM355_GPIOBNK2, | 561 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK2), |
| 561 | .end = IRQ_DM355_GPIOBNK2, | 562 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK2), |
| 562 | .flags = IORESOURCE_IRQ, | 563 | .flags = IORESOURCE_IRQ, |
| 563 | }, | 564 | }, |
| 564 | { | 565 | { |
| 565 | .start = IRQ_DM355_GPIOBNK3, | 566 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK3), |
| 566 | .end = IRQ_DM355_GPIOBNK3, | 567 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK3), |
| 567 | .flags = IORESOURCE_IRQ, | 568 | .flags = IORESOURCE_IRQ, |
| 568 | }, | 569 | }, |
| 569 | { | 570 | { |
| 570 | .start = IRQ_DM355_GPIOBNK4, | 571 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK4), |
| 571 | .end = IRQ_DM355_GPIOBNK4, | 572 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK4), |
| 572 | .flags = IORESOURCE_IRQ, | 573 | .flags = IORESOURCE_IRQ, |
| 573 | }, | 574 | }, |
| 574 | { | 575 | { |
| 575 | .start = IRQ_DM355_GPIOBNK5, | 576 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK5), |
| 576 | .end = IRQ_DM355_GPIOBNK5, | 577 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK5), |
| 577 | .flags = IORESOURCE_IRQ, | 578 | .flags = IORESOURCE_IRQ, |
| 578 | }, | 579 | }, |
| 579 | { | 580 | { |
| 580 | .start = IRQ_DM355_GPIOBNK6, | 581 | .start = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK6), |
| 581 | .end = IRQ_DM355_GPIOBNK6, | 582 | .end = DAVINCI_INTC_IRQ(IRQ_DM355_GPIOBNK6), |
| 582 | .flags = IORESOURCE_IRQ, | 583 | .flags = IORESOURCE_IRQ, |
| 583 | }, | 584 | }, |
| 584 | }; | 585 | }; |
| @@ -632,7 +633,7 @@ static struct davinci_timer_info dm355_timer_info = { | |||
| 632 | static struct plat_serial8250_port dm355_serial0_platform_data[] = { | 633 | static struct plat_serial8250_port dm355_serial0_platform_data[] = { |
| 633 | { | 634 | { |
| 634 | .mapbase = DAVINCI_UART0_BASE, | 635 | .mapbase = DAVINCI_UART0_BASE, |
| 635 | .irq = IRQ_UARTINT0, | 636 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT0), |
| 636 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 637 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 637 | UPF_IOREMAP, | 638 | UPF_IOREMAP, |
| 638 | .iotype = UPIO_MEM, | 639 | .iotype = UPIO_MEM, |
| @@ -645,7 +646,7 @@ static struct plat_serial8250_port dm355_serial0_platform_data[] = { | |||
| 645 | static struct plat_serial8250_port dm355_serial1_platform_data[] = { | 646 | static struct plat_serial8250_port dm355_serial1_platform_data[] = { |
| 646 | { | 647 | { |
| 647 | .mapbase = DAVINCI_UART1_BASE, | 648 | .mapbase = DAVINCI_UART1_BASE, |
| 648 | .irq = IRQ_UARTINT1, | 649 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT1), |
| 649 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 650 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 650 | UPF_IOREMAP, | 651 | UPF_IOREMAP, |
| 651 | .iotype = UPIO_MEM, | 652 | .iotype = UPIO_MEM, |
| @@ -658,7 +659,7 @@ static struct plat_serial8250_port dm355_serial1_platform_data[] = { | |||
| 658 | static struct plat_serial8250_port dm355_serial2_platform_data[] = { | 659 | static struct plat_serial8250_port dm355_serial2_platform_data[] = { |
| 659 | { | 660 | { |
| 660 | .mapbase = DM355_UART2_BASE, | 661 | .mapbase = DM355_UART2_BASE, |
| 661 | .irq = IRQ_DM355_UARTINT2, | 662 | .irq = DAVINCI_INTC_IRQ(IRQ_DM355_UARTINT2), |
| 662 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 663 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 663 | UPF_IOREMAP, | 664 | UPF_IOREMAP, |
| 664 | .iotype = UPIO_MEM, | 665 | .iotype = UPIO_MEM, |
| @@ -704,10 +705,6 @@ static const struct davinci_soc_info davinci_soc_info_dm355 = { | |||
| 704 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 705 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
| 705 | .pinmux_pins = dm355_pins, | 706 | .pinmux_pins = dm355_pins, |
| 706 | .pinmux_pins_num = ARRAY_SIZE(dm355_pins), | 707 | .pinmux_pins_num = ARRAY_SIZE(dm355_pins), |
| 707 | .intc_base = DAVINCI_ARM_INTC_BASE, | ||
| 708 | .intc_type = DAVINCI_INTC_TYPE_AINTC, | ||
| 709 | .intc_irq_prios = dm355_default_priorities, | ||
| 710 | .intc_irq_num = DAVINCI_N_AINTC_IRQ, | ||
| 711 | .timer_info = &dm355_timer_info, | 708 | .timer_info = &dm355_timer_info, |
| 712 | .sram_dma = 0x00010000, | 709 | .sram_dma = 0x00010000, |
| 713 | .sram_len = SZ_32K, | 710 | .sram_len = SZ_32K, |
| @@ -793,6 +790,21 @@ int __init dm355_init_video(struct vpfe_config *vpfe_cfg, | |||
| 793 | return 0; | 790 | return 0; |
| 794 | } | 791 | } |
| 795 | 792 | ||
| 793 | static const struct davinci_aintc_config dm355_aintc_config = { | ||
| 794 | .reg = { | ||
| 795 | .start = DAVINCI_ARM_INTC_BASE, | ||
| 796 | .end = DAVINCI_ARM_INTC_BASE + SZ_4K - 1, | ||
| 797 | .flags = IORESOURCE_MEM, | ||
| 798 | }, | ||
| 799 | .num_irqs = 64, | ||
| 800 | .prios = dm355_default_priorities, | ||
| 801 | }; | ||
| 802 | |||
| 803 | void __init dm355_init_irq(void) | ||
| 804 | { | ||
| 805 | davinci_aintc_init(&dm355_aintc_config); | ||
| 806 | } | ||
| 807 | |||
| 796 | static int __init dm355_init_devices(void) | 808 | static int __init dm355_init_devices(void) |
| 797 | { | 809 | { |
| 798 | struct platform_device *edma_pdev; | 810 | struct platform_device *edma_pdev; |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 01fb2b0c82de..8e0a77315add 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/dma-mapping.h> | 19 | #include <linux/dma-mapping.h> |
| 20 | #include <linux/dmaengine.h> | 20 | #include <linux/dmaengine.h> |
| 21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
| 22 | #include <linux/irqchip/irq-davinci-aintc.h> | ||
| 22 | #include <linux/platform_data/edma.h> | 23 | #include <linux/platform_data/edma.h> |
| 23 | #include <linux/platform_data/gpio-davinci.h> | 24 | #include <linux/platform_data/gpio-davinci.h> |
| 24 | #include <linux/platform_data/keyscan-davinci.h> | 25 | #include <linux/platform_data/keyscan-davinci.h> |
| @@ -31,13 +32,13 @@ | |||
| 31 | 32 | ||
| 32 | #include <mach/common.h> | 33 | #include <mach/common.h> |
| 33 | #include <mach/cputype.h> | 34 | #include <mach/cputype.h> |
| 34 | #include <mach/irqs.h> | ||
| 35 | #include <mach/mux.h> | 35 | #include <mach/mux.h> |
| 36 | #include <mach/serial.h> | 36 | #include <mach/serial.h> |
| 37 | #include <mach/time.h> | 37 | #include <mach/time.h> |
| 38 | 38 | ||
| 39 | #include "asp.h" | 39 | #include "asp.h" |
| 40 | #include "davinci.h" | 40 | #include "davinci.h" |
| 41 | #include "irqs.h" | ||
| 41 | #include "mux.h" | 42 | #include "mux.h" |
| 42 | 43 | ||
| 43 | #define DM365_REF_FREQ 24000000 /* 24 MHz on the DM365 EVM */ | 44 | #define DM365_REF_FREQ 24000000 /* 24 MHz on the DM365 EVM */ |
| @@ -224,7 +225,7 @@ static struct resource dm365_spi0_resources[] = { | |||
| 224 | .flags = IORESOURCE_MEM, | 225 | .flags = IORESOURCE_MEM, |
| 225 | }, | 226 | }, |
| 226 | { | 227 | { |
| 227 | .start = IRQ_DM365_SPIINT0_0, | 228 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_SPIINT0_0), |
| 228 | .flags = IORESOURCE_IRQ, | 229 | .flags = IORESOURCE_IRQ, |
| 229 | }, | 230 | }, |
| 230 | }; | 231 | }; |
| @@ -266,43 +267,43 @@ static struct resource dm365_gpio_resources[] = { | |||
| 266 | .flags = IORESOURCE_MEM, | 267 | .flags = IORESOURCE_MEM, |
| 267 | }, | 268 | }, |
| 268 | { /* interrupt */ | 269 | { /* interrupt */ |
| 269 | .start = IRQ_DM365_GPIO0, | 270 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO0), |
| 270 | .end = IRQ_DM365_GPIO0, | 271 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO0), |
| 271 | .flags = IORESOURCE_IRQ, | 272 | .flags = IORESOURCE_IRQ, |
| 272 | }, | 273 | }, |
| 273 | { | 274 | { |
| 274 | .start = IRQ_DM365_GPIO1, | 275 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO1), |
| 275 | .end = IRQ_DM365_GPIO1, | 276 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO1), |
| 276 | .flags = IORESOURCE_IRQ, | 277 | .flags = IORESOURCE_IRQ, |
| 277 | }, | 278 | }, |
| 278 | { | 279 | { |
| 279 | .start = IRQ_DM365_GPIO2, | 280 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO2), |
| 280 | .end = IRQ_DM365_GPIO2, | 281 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO2), |
| 281 | .flags = IORESOURCE_IRQ, | 282 | .flags = IORESOURCE_IRQ, |
| 282 | }, | 283 | }, |
| 283 | { | 284 | { |
| 284 | .start = IRQ_DM365_GPIO3, | 285 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO3), |
| 285 | .end = IRQ_DM365_GPIO3, | 286 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO3), |
| 286 | .flags = IORESOURCE_IRQ, | 287 | .flags = IORESOURCE_IRQ, |
| 287 | }, | 288 | }, |
| 288 | { | 289 | { |
| 289 | .start = IRQ_DM365_GPIO4, | 290 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO4), |
| 290 | .end = IRQ_DM365_GPIO4, | 291 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO4), |
| 291 | .flags = IORESOURCE_IRQ, | 292 | .flags = IORESOURCE_IRQ, |
| 292 | }, | 293 | }, |
| 293 | { | 294 | { |
| 294 | .start = IRQ_DM365_GPIO5, | 295 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO5), |
| 295 | .end = IRQ_DM365_GPIO5, | 296 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO5), |
| 296 | .flags = IORESOURCE_IRQ, | 297 | .flags = IORESOURCE_IRQ, |
| 297 | }, | 298 | }, |
| 298 | { | 299 | { |
| 299 | .start = IRQ_DM365_GPIO6, | 300 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO6), |
| 300 | .end = IRQ_DM365_GPIO6, | 301 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO6), |
| 301 | .flags = IORESOURCE_IRQ, | 302 | .flags = IORESOURCE_IRQ, |
| 302 | }, | 303 | }, |
| 303 | { | 304 | { |
| 304 | .start = IRQ_DM365_GPIO7, | 305 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO7), |
| 305 | .end = IRQ_DM365_GPIO7, | 306 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_GPIO7), |
| 306 | .flags = IORESOURCE_IRQ, | 307 | .flags = IORESOURCE_IRQ, |
| 307 | }, | 308 | }, |
| 308 | }; | 309 | }; |
| @@ -336,23 +337,23 @@ static struct resource dm365_emac_resources[] = { | |||
| 336 | .flags = IORESOURCE_MEM, | 337 | .flags = IORESOURCE_MEM, |
| 337 | }, | 338 | }, |
| 338 | { | 339 | { |
| 339 | .start = IRQ_DM365_EMAC_RXTHRESH, | 340 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_RXTHRESH), |
| 340 | .end = IRQ_DM365_EMAC_RXTHRESH, | 341 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_RXTHRESH), |
| 341 | .flags = IORESOURCE_IRQ, | 342 | .flags = IORESOURCE_IRQ, |
| 342 | }, | 343 | }, |
| 343 | { | 344 | { |
| 344 | .start = IRQ_DM365_EMAC_RXPULSE, | 345 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_RXPULSE), |
| 345 | .end = IRQ_DM365_EMAC_RXPULSE, | 346 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_RXPULSE), |
| 346 | .flags = IORESOURCE_IRQ, | 347 | .flags = IORESOURCE_IRQ, |
| 347 | }, | 348 | }, |
| 348 | { | 349 | { |
| 349 | .start = IRQ_DM365_EMAC_TXPULSE, | 350 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_TXPULSE), |
| 350 | .end = IRQ_DM365_EMAC_TXPULSE, | 351 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_TXPULSE), |
| 351 | .flags = IORESOURCE_IRQ, | 352 | .flags = IORESOURCE_IRQ, |
| 352 | }, | 353 | }, |
| 353 | { | 354 | { |
| 354 | .start = IRQ_DM365_EMAC_MISCPULSE, | 355 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_MISCPULSE), |
| 355 | .end = IRQ_DM365_EMAC_MISCPULSE, | 356 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_EMAC_MISCPULSE), |
| 356 | .flags = IORESOURCE_IRQ, | 357 | .flags = IORESOURCE_IRQ, |
| 357 | }, | 358 | }, |
| 358 | }; | 359 | }; |
| @@ -518,12 +519,12 @@ static struct resource edma_resources[] = { | |||
| 518 | }, | 519 | }, |
| 519 | { | 520 | { |
| 520 | .name = "edma3_ccint", | 521 | .name = "edma3_ccint", |
| 521 | .start = IRQ_CCINT0, | 522 | .start = DAVINCI_INTC_IRQ(IRQ_CCINT0), |
| 522 | .flags = IORESOURCE_IRQ, | 523 | .flags = IORESOURCE_IRQ, |
| 523 | }, | 524 | }, |
| 524 | { | 525 | { |
| 525 | .name = "edma3_ccerrint", | 526 | .name = "edma3_ccerrint", |
| 526 | .start = IRQ_CCERRINT, | 527 | .start = DAVINCI_INTC_IRQ(IRQ_CCERRINT), |
| 527 | .flags = IORESOURCE_IRQ, | 528 | .flags = IORESOURCE_IRQ, |
| 528 | }, | 529 | }, |
| 529 | /* not using TC*_ERR */ | 530 | /* not using TC*_ERR */ |
| @@ -597,7 +598,7 @@ static struct resource dm365_rtc_resources[] = { | |||
| 597 | .flags = IORESOURCE_MEM, | 598 | .flags = IORESOURCE_MEM, |
| 598 | }, | 599 | }, |
| 599 | { | 600 | { |
| 600 | .start = IRQ_DM365_RTCINT, | 601 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_RTCINT), |
| 601 | .flags = IORESOURCE_IRQ, | 602 | .flags = IORESOURCE_IRQ, |
| 602 | }, | 603 | }, |
| 603 | }; | 604 | }; |
| @@ -627,8 +628,8 @@ static struct resource dm365_ks_resources[] = { | |||
| 627 | }, | 628 | }, |
| 628 | { | 629 | { |
| 629 | /* interrupt */ | 630 | /* interrupt */ |
| 630 | .start = IRQ_DM365_KEYINT, | 631 | .start = DAVINCI_INTC_IRQ(IRQ_DM365_KEYINT), |
| 631 | .end = IRQ_DM365_KEYINT, | 632 | .end = DAVINCI_INTC_IRQ(IRQ_DM365_KEYINT), |
| 632 | .flags = IORESOURCE_IRQ, | 633 | .flags = IORESOURCE_IRQ, |
| 633 | }, | 634 | }, |
| 634 | }; | 635 | }; |
| @@ -669,7 +670,7 @@ static struct davinci_timer_info dm365_timer_info = { | |||
| 669 | static struct plat_serial8250_port dm365_serial0_platform_data[] = { | 670 | static struct plat_serial8250_port dm365_serial0_platform_data[] = { |
| 670 | { | 671 | { |
| 671 | .mapbase = DAVINCI_UART0_BASE, | 672 | .mapbase = DAVINCI_UART0_BASE, |
| 672 | .irq = IRQ_UARTINT0, | 673 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT0), |
| 673 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 674 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 674 | UPF_IOREMAP, | 675 | UPF_IOREMAP, |
| 675 | .iotype = UPIO_MEM, | 676 | .iotype = UPIO_MEM, |
| @@ -682,7 +683,7 @@ static struct plat_serial8250_port dm365_serial0_platform_data[] = { | |||
| 682 | static struct plat_serial8250_port dm365_serial1_platform_data[] = { | 683 | static struct plat_serial8250_port dm365_serial1_platform_data[] = { |
| 683 | { | 684 | { |
| 684 | .mapbase = DM365_UART1_BASE, | 685 | .mapbase = DM365_UART1_BASE, |
| 685 | .irq = IRQ_UARTINT1, | 686 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT1), |
| 686 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 687 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 687 | UPF_IOREMAP, | 688 | UPF_IOREMAP, |
| 688 | .iotype = UPIO_MEM, | 689 | .iotype = UPIO_MEM, |
| @@ -721,10 +722,6 @@ static const struct davinci_soc_info davinci_soc_info_dm365 = { | |||
| 721 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 722 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
| 722 | .pinmux_pins = dm365_pins, | 723 | .pinmux_pins = dm365_pins, |
| 723 | .pinmux_pins_num = ARRAY_SIZE(dm365_pins), | 724 | .pinmux_pins_num = ARRAY_SIZE(dm365_pins), |
| 724 | .intc_base = DAVINCI_ARM_INTC_BASE, | ||
| 725 | .intc_type = DAVINCI_INTC_TYPE_AINTC, | ||
| 726 | .intc_irq_prios = dm365_default_priorities, | ||
| 727 | .intc_irq_num = DAVINCI_N_AINTC_IRQ, | ||
| 728 | .timer_info = &dm365_timer_info, | 725 | .timer_info = &dm365_timer_info, |
| 729 | .emac_pdata = &dm365_emac_pdata, | 726 | .emac_pdata = &dm365_emac_pdata, |
| 730 | .sram_dma = 0x00010000, | 727 | .sram_dma = 0x00010000, |
| @@ -822,13 +819,13 @@ static struct platform_device dm365_vpss_device = { | |||
| 822 | 819 | ||
| 823 | static struct resource vpfe_resources[] = { | 820 | static struct resource vpfe_resources[] = { |
| 824 | { | 821 | { |
| 825 | .start = IRQ_VDINT0, | 822 | .start = DAVINCI_INTC_IRQ(IRQ_VDINT0), |
| 826 | .end = IRQ_VDINT0, | 823 | .end = DAVINCI_INTC_IRQ(IRQ_VDINT0), |
| 827 | .flags = IORESOURCE_IRQ, | 824 | .flags = IORESOURCE_IRQ, |
| 828 | }, | 825 | }, |
| 829 | { | 826 | { |
| 830 | .start = IRQ_VDINT1, | 827 | .start = DAVINCI_INTC_IRQ(IRQ_VDINT1), |
| 831 | .end = IRQ_VDINT1, | 828 | .end = DAVINCI_INTC_IRQ(IRQ_VDINT1), |
| 832 | .flags = IORESOURCE_IRQ, | 829 | .flags = IORESOURCE_IRQ, |
| 833 | }, | 830 | }, |
| 834 | }; | 831 | }; |
| @@ -909,8 +906,8 @@ static struct platform_device dm365_osd_dev = { | |||
| 909 | 906 | ||
| 910 | static struct resource dm365_venc_resources[] = { | 907 | static struct resource dm365_venc_resources[] = { |
| 911 | { | 908 | { |
| 912 | .start = IRQ_VENCINT, | 909 | .start = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 913 | .end = IRQ_VENCINT, | 910 | .end = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 914 | .flags = IORESOURCE_IRQ, | 911 | .flags = IORESOURCE_IRQ, |
| 915 | }, | 912 | }, |
| 916 | /* venc registers io space */ | 913 | /* venc registers io space */ |
| @@ -929,8 +926,8 @@ static struct resource dm365_venc_resources[] = { | |||
| 929 | 926 | ||
| 930 | static struct resource dm365_v4l2_disp_resources[] = { | 927 | static struct resource dm365_v4l2_disp_resources[] = { |
| 931 | { | 928 | { |
| 932 | .start = IRQ_VENCINT, | 929 | .start = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 933 | .end = IRQ_VENCINT, | 930 | .end = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 934 | .flags = IORESOURCE_IRQ, | 931 | .flags = IORESOURCE_IRQ, |
| 935 | }, | 932 | }, |
| 936 | /* venc registers io space */ | 933 | /* venc registers io space */ |
| @@ -1052,6 +1049,21 @@ int __init dm365_init_video(struct vpfe_config *vpfe_cfg, | |||
| 1052 | return 0; | 1049 | return 0; |
| 1053 | } | 1050 | } |
| 1054 | 1051 | ||
| 1052 | static const struct davinci_aintc_config dm365_aintc_config = { | ||
| 1053 | .reg = { | ||
| 1054 | .start = DAVINCI_ARM_INTC_BASE, | ||
| 1055 | .end = DAVINCI_ARM_INTC_BASE + SZ_4K - 1, | ||
| 1056 | .flags = IORESOURCE_MEM, | ||
| 1057 | }, | ||
| 1058 | .num_irqs = 64, | ||
| 1059 | .prios = dm365_default_priorities, | ||
| 1060 | }; | ||
| 1061 | |||
| 1062 | void __init dm365_init_irq(void) | ||
| 1063 | { | ||
| 1064 | davinci_aintc_init(&dm365_aintc_config); | ||
| 1065 | } | ||
| 1066 | |||
| 1055 | static int __init dm365_init_devices(void) | 1067 | static int __init dm365_init_devices(void) |
| 1056 | { | 1068 | { |
| 1057 | struct platform_device *edma_pdev; | 1069 | struct platform_device *edma_pdev; |
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 38f92b7d413e..cecc7ceb8d34 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/clkdev.h> | 14 | #include <linux/clkdev.h> |
| 15 | #include <linux/dmaengine.h> | 15 | #include <linux/dmaengine.h> |
| 16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
| 17 | #include <linux/irqchip/irq-davinci-aintc.h> | ||
| 17 | #include <linux/platform_data/edma.h> | 18 | #include <linux/platform_data/edma.h> |
| 18 | #include <linux/platform_data/gpio-davinci.h> | 19 | #include <linux/platform_data/gpio-davinci.h> |
| 19 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
| @@ -23,13 +24,13 @@ | |||
| 23 | 24 | ||
| 24 | #include <mach/common.h> | 25 | #include <mach/common.h> |
| 25 | #include <mach/cputype.h> | 26 | #include <mach/cputype.h> |
| 26 | #include <mach/irqs.h> | ||
| 27 | #include <mach/mux.h> | 27 | #include <mach/mux.h> |
| 28 | #include <mach/serial.h> | 28 | #include <mach/serial.h> |
| 29 | #include <mach/time.h> | 29 | #include <mach/time.h> |
| 30 | 30 | ||
| 31 | #include "asp.h" | 31 | #include "asp.h" |
| 32 | #include "davinci.h" | 32 | #include "davinci.h" |
| 33 | #include "irqs.h" | ||
| 33 | #include "mux.h" | 34 | #include "mux.h" |
| 34 | 35 | ||
| 35 | /* | 36 | /* |
| @@ -59,8 +60,8 @@ static struct resource dm644x_emac_resources[] = { | |||
| 59 | .flags = IORESOURCE_MEM, | 60 | .flags = IORESOURCE_MEM, |
| 60 | }, | 61 | }, |
| 61 | { | 62 | { |
| 62 | .start = IRQ_EMACINT, | 63 | .start = DAVINCI_INTC_IRQ(IRQ_EMACINT), |
| 63 | .end = IRQ_EMACINT, | 64 | .end = DAVINCI_INTC_IRQ(IRQ_EMACINT), |
| 64 | .flags = IORESOURCE_IRQ, | 65 | .flags = IORESOURCE_IRQ, |
| 65 | }, | 66 | }, |
| 66 | }; | 67 | }; |
| @@ -260,12 +261,12 @@ static struct resource edma_resources[] = { | |||
| 260 | }, | 261 | }, |
| 261 | { | 262 | { |
| 262 | .name = "edma3_ccint", | 263 | .name = "edma3_ccint", |
| 263 | .start = IRQ_CCINT0, | 264 | .start = DAVINCI_INTC_IRQ(IRQ_CCINT0), |
| 264 | .flags = IORESOURCE_IRQ, | 265 | .flags = IORESOURCE_IRQ, |
| 265 | }, | 266 | }, |
| 266 | { | 267 | { |
| 267 | .name = "edma3_ccerrint", | 268 | .name = "edma3_ccerrint", |
| 268 | .start = IRQ_CCERRINT, | 269 | .start = DAVINCI_INTC_IRQ(IRQ_CCERRINT), |
| 269 | .flags = IORESOURCE_IRQ, | 270 | .flags = IORESOURCE_IRQ, |
| 270 | }, | 271 | }, |
| 271 | /* not using TC*_ERR */ | 272 | /* not using TC*_ERR */ |
| @@ -330,13 +331,13 @@ static struct platform_device dm644x_vpss_device = { | |||
| 330 | 331 | ||
| 331 | static struct resource dm644x_vpfe_resources[] = { | 332 | static struct resource dm644x_vpfe_resources[] = { |
| 332 | { | 333 | { |
| 333 | .start = IRQ_VDINT0, | 334 | .start = DAVINCI_INTC_IRQ(IRQ_VDINT0), |
| 334 | .end = IRQ_VDINT0, | 335 | .end = DAVINCI_INTC_IRQ(IRQ_VDINT0), |
| 335 | .flags = IORESOURCE_IRQ, | 336 | .flags = IORESOURCE_IRQ, |
| 336 | }, | 337 | }, |
| 337 | { | 338 | { |
| 338 | .start = IRQ_VDINT1, | 339 | .start = DAVINCI_INTC_IRQ(IRQ_VDINT1), |
| 339 | .end = IRQ_VDINT1, | 340 | .end = DAVINCI_INTC_IRQ(IRQ_VDINT1), |
| 340 | .flags = IORESOURCE_IRQ, | 341 | .flags = IORESOURCE_IRQ, |
| 341 | }, | 342 | }, |
| 342 | }; | 343 | }; |
| @@ -442,8 +443,8 @@ static int dm644x_venc_setup_clock(enum vpbe_enc_timings_type type, | |||
| 442 | 443 | ||
| 443 | static struct resource dm644x_v4l2_disp_resources[] = { | 444 | static struct resource dm644x_v4l2_disp_resources[] = { |
| 444 | { | 445 | { |
| 445 | .start = IRQ_VENCINT, | 446 | .start = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 446 | .end = IRQ_VENCINT, | 447 | .end = DAVINCI_INTC_IRQ(IRQ_VENCINT), |
| 447 | .flags = IORESOURCE_IRQ, | 448 | .flags = IORESOURCE_IRQ, |
| 448 | }, | 449 | }, |
| 449 | }; | 450 | }; |
| @@ -491,28 +492,28 @@ static struct resource dm644_gpio_resources[] = { | |||
| 491 | .flags = IORESOURCE_MEM, | 492 | .flags = IORESOURCE_MEM, |
| 492 | }, | 493 | }, |
| 493 | { /* interrupt */ | 494 | { /* interrupt */ |
| 494 | .start = IRQ_GPIOBNK0, | 495 | .start = DAVINCI_INTC_IRQ(IRQ_GPIOBNK0), |
| 495 | .end = IRQ_GPIOBNK0, | 496 | .end = DAVINCI_INTC_IRQ(IRQ_GPIOBNK0), |
| 496 | .flags = IORESOURCE_IRQ, | 497 | .flags = IORESOURCE_IRQ, |
| 497 | }, | 498 | }, |
| 498 | { | 499 | { |
| 499 | .start = IRQ_GPIOBNK1, | 500 | .start = DAVINCI_INTC_IRQ(IRQ_GPIOBNK1), |
| 500 | .end = IRQ_GPIOBNK1, | 501 | .end = DAVINCI_INTC_IRQ(IRQ_GPIOBNK1), |
| 501 | .flags = IORESOURCE_IRQ, | 502 | .flags = IORESOURCE_IRQ, |
| 502 | }, | 503 | }, |
| 503 | { | 504 | { |
| 504 | .start = IRQ_GPIOBNK2, | 505 | .start = DAVINCI_INTC_IRQ(IRQ_GPIOBNK2), |
| 505 | .end = IRQ_GPIOBNK2, | 506 | .end = DAVINCI_INTC_IRQ(IRQ_GPIOBNK2), |
| 506 | .flags = IORESOURCE_IRQ, | 507 | .flags = IORESOURCE_IRQ, |
| 507 | }, | 508 | }, |
| 508 | { | 509 | { |
| 509 | .start = IRQ_GPIOBNK3, | 510 | .start = DAVINCI_INTC_IRQ(IRQ_GPIOBNK3), |
| 510 | .end = IRQ_GPIOBNK3, | 511 | .end = DAVINCI_INTC_IRQ(IRQ_GPIOBNK3), |
| 511 | .flags = IORESOURCE_IRQ, | 512 | .flags = IORESOURCE_IRQ, |
| 512 | }, | 513 | }, |
| 513 | { | 514 | { |
| 514 | .start = IRQ_GPIOBNK4, | 515 | .start = DAVINCI_INTC_IRQ(IRQ_GPIOBNK4), |
| 515 | .end = IRQ_GPIOBNK4, | 516 | .end = DAVINCI_INTC_IRQ(IRQ_GPIOBNK4), |
| 516 | .flags = IORESOURCE_IRQ, | 517 | .flags = IORESOURCE_IRQ, |
| 517 | }, | 518 | }, |
| 518 | }; | 519 | }; |
| @@ -573,7 +574,7 @@ static struct davinci_timer_info dm644x_timer_info = { | |||
| 573 | static struct plat_serial8250_port dm644x_serial0_platform_data[] = { | 574 | static struct plat_serial8250_port dm644x_serial0_platform_data[] = { |
| 574 | { | 575 | { |
| 575 | .mapbase = DAVINCI_UART0_BASE, | 576 | .mapbase = DAVINCI_UART0_BASE, |
| 576 | .irq = IRQ_UARTINT0, | 577 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT0), |
| 577 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 578 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 578 | UPF_IOREMAP, | 579 | UPF_IOREMAP, |
| 579 | .iotype = UPIO_MEM, | 580 | .iotype = UPIO_MEM, |
| @@ -586,7 +587,7 @@ static struct plat_serial8250_port dm644x_serial0_platform_data[] = { | |||
| 586 | static struct plat_serial8250_port dm644x_serial1_platform_data[] = { | 587 | static struct plat_serial8250_port dm644x_serial1_platform_data[] = { |
| 587 | { | 588 | { |
| 588 | .mapbase = DAVINCI_UART1_BASE, | 589 | .mapbase = DAVINCI_UART1_BASE, |
| 589 | .irq = IRQ_UARTINT1, | 590 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT1), |
| 590 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 591 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 591 | UPF_IOREMAP, | 592 | UPF_IOREMAP, |
| 592 | .iotype = UPIO_MEM, | 593 | .iotype = UPIO_MEM, |
| @@ -599,7 +600,7 @@ static struct plat_serial8250_port dm644x_serial1_platform_data[] = { | |||
| 599 | static struct plat_serial8250_port dm644x_serial2_platform_data[] = { | 600 | static struct plat_serial8250_port dm644x_serial2_platform_data[] = { |
| 600 | { | 601 | { |
| 601 | .mapbase = DAVINCI_UART2_BASE, | 602 | .mapbase = DAVINCI_UART2_BASE, |
| 602 | .irq = IRQ_UARTINT2, | 603 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT2), |
| 603 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 604 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 604 | UPF_IOREMAP, | 605 | UPF_IOREMAP, |
| 605 | .iotype = UPIO_MEM, | 606 | .iotype = UPIO_MEM, |
| @@ -645,10 +646,6 @@ static const struct davinci_soc_info davinci_soc_info_dm644x = { | |||
| 645 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 646 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
| 646 | .pinmux_pins = dm644x_pins, | 647 | .pinmux_pins = dm644x_pins, |
| 647 | .pinmux_pins_num = ARRAY_SIZE(dm644x_pins), | 648 | .pinmux_pins_num = ARRAY_SIZE(dm644x_pins), |
| 648 | .intc_base = DAVINCI_ARM_INTC_BASE, | ||
| 649 | .intc_type = DAVINCI_INTC_TYPE_AINTC, | ||
| 650 | .intc_irq_prios = dm644x_default_priorities, | ||
| 651 | .intc_irq_num = DAVINCI_N_AINTC_IRQ, | ||
| 652 | .timer_info = &dm644x_timer_info, | 649 | .timer_info = &dm644x_timer_info, |
| 653 | .emac_pdata = &dm644x_emac_pdata, | 650 | .emac_pdata = &dm644x_emac_pdata, |
| 654 | .sram_dma = 0x00008000, | 651 | .sram_dma = 0x00008000, |
| @@ -729,6 +726,21 @@ int __init dm644x_init_video(struct vpfe_config *vpfe_cfg, | |||
| 729 | return 0; | 726 | return 0; |
| 730 | } | 727 | } |
| 731 | 728 | ||
| 729 | static const struct davinci_aintc_config dm644x_aintc_config = { | ||
| 730 | .reg = { | ||
| 731 | .start = DAVINCI_ARM_INTC_BASE, | ||
| 732 | .end = DAVINCI_ARM_INTC_BASE + SZ_4K - 1, | ||
| 733 | .flags = IORESOURCE_MEM, | ||
| 734 | }, | ||
| 735 | .num_irqs = 64, | ||
| 736 | .prios = dm644x_default_priorities, | ||
| 737 | }; | ||
| 738 | |||
| 739 | void __init dm644x_init_irq(void) | ||
| 740 | { | ||
| 741 | davinci_aintc_init(&dm644x_aintc_config); | ||
| 742 | } | ||
| 743 | |||
| 732 | void __init dm644x_init_devices(void) | 744 | void __init dm644x_init_devices(void) |
| 733 | { | 745 | { |
| 734 | struct platform_device *edma_pdev; | 746 | struct platform_device *edma_pdev; |
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index 7dc54b2a610f..f33392f77a03 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/dma-mapping.h> | 15 | #include <linux/dma-mapping.h> |
| 16 | #include <linux/dmaengine.h> | 16 | #include <linux/dmaengine.h> |
| 17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
| 18 | #include <linux/irqchip/irq-davinci-aintc.h> | ||
| 18 | #include <linux/platform_data/edma.h> | 19 | #include <linux/platform_data/edma.h> |
| 19 | #include <linux/platform_data/gpio-davinci.h> | 20 | #include <linux/platform_data/gpio-davinci.h> |
| 20 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
| @@ -24,13 +25,13 @@ | |||
| 24 | 25 | ||
| 25 | #include <mach/common.h> | 26 | #include <mach/common.h> |
| 26 | #include <mach/cputype.h> | 27 | #include <mach/cputype.h> |
| 27 | #include <mach/irqs.h> | ||
| 28 | #include <mach/mux.h> | 28 | #include <mach/mux.h> |
| 29 | #include <mach/serial.h> | 29 | #include <mach/serial.h> |
| 30 | #include <mach/time.h> | 30 | #include <mach/time.h> |
| 31 | 31 | ||
| 32 | #include "asp.h" | 32 | #include "asp.h" |
| 33 | #include "davinci.h" | 33 | #include "davinci.h" |
| 34 | #include "irqs.h" | ||
| 34 | #include "mux.h" | 35 | #include "mux.h" |
| 35 | 36 | ||
| 36 | #define DAVINCI_VPIF_BASE (0x01C12000) | 37 | #define DAVINCI_VPIF_BASE (0x01C12000) |
| @@ -62,23 +63,23 @@ static struct resource dm646x_emac_resources[] = { | |||
| 62 | .flags = IORESOURCE_MEM, | 63 | .flags = IORESOURCE_MEM, |
| 63 | }, | 64 | }, |
| 64 | { | 65 | { |
| 65 | .start = IRQ_DM646X_EMACRXTHINT, | 66 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACRXTHINT), |
| 66 | .end = IRQ_DM646X_EMACRXTHINT, | 67 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACRXTHINT), |
| 67 | .flags = IORESOURCE_IRQ, | 68 | .flags = IORESOURCE_IRQ, |
| 68 | }, | 69 | }, |
| 69 | { | 70 | { |
| 70 | .start = IRQ_DM646X_EMACRXINT, | 71 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACRXINT), |
| 71 | .end = IRQ_DM646X_EMACRXINT, | 72 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACRXINT), |
| 72 | .flags = IORESOURCE_IRQ, | 73 | .flags = IORESOURCE_IRQ, |
| 73 | }, | 74 | }, |
| 74 | { | 75 | { |
| 75 | .start = IRQ_DM646X_EMACTXINT, | 76 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACTXINT), |
| 76 | .end = IRQ_DM646X_EMACTXINT, | 77 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACTXINT), |
| 77 | .flags = IORESOURCE_IRQ, | 78 | .flags = IORESOURCE_IRQ, |
| 78 | }, | 79 | }, |
| 79 | { | 80 | { |
| 80 | .start = IRQ_DM646X_EMACMISCINT, | 81 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACMISCINT), |
| 81 | .end = IRQ_DM646X_EMACMISCINT, | 82 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_EMACMISCINT), |
| 82 | .flags = IORESOURCE_IRQ, | 83 | .flags = IORESOURCE_IRQ, |
| 83 | }, | 84 | }, |
| 84 | }; | 85 | }; |
| @@ -273,12 +274,12 @@ static struct resource edma_resources[] = { | |||
| 273 | }, | 274 | }, |
| 274 | { | 275 | { |
| 275 | .name = "edma3_ccint", | 276 | .name = "edma3_ccint", |
| 276 | .start = IRQ_CCINT0, | 277 | .start = DAVINCI_INTC_IRQ(IRQ_CCINT0), |
| 277 | .flags = IORESOURCE_IRQ, | 278 | .flags = IORESOURCE_IRQ, |
| 278 | }, | 279 | }, |
| 279 | { | 280 | { |
| 280 | .name = "edma3_ccerrint", | 281 | .name = "edma3_ccerrint", |
| 281 | .start = IRQ_CCERRINT, | 282 | .start = DAVINCI_INTC_IRQ(IRQ_CCERRINT), |
| 282 | .flags = IORESOURCE_IRQ, | 283 | .flags = IORESOURCE_IRQ, |
| 283 | }, | 284 | }, |
| 284 | /* not using TC*_ERR */ | 285 | /* not using TC*_ERR */ |
| @@ -315,12 +316,12 @@ static struct resource dm646x_mcasp0_resources[] = { | |||
| 315 | }, | 316 | }, |
| 316 | { | 317 | { |
| 317 | .name = "tx", | 318 | .name = "tx", |
| 318 | .start = IRQ_DM646X_MCASP0TXINT, | 319 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_MCASP0TXINT), |
| 319 | .flags = IORESOURCE_IRQ, | 320 | .flags = IORESOURCE_IRQ, |
| 320 | }, | 321 | }, |
| 321 | { | 322 | { |
| 322 | .name = "rx", | 323 | .name = "rx", |
| 323 | .start = IRQ_DM646X_MCASP0RXINT, | 324 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_MCASP0RXINT), |
| 324 | .flags = IORESOURCE_IRQ, | 325 | .flags = IORESOURCE_IRQ, |
| 325 | }, | 326 | }, |
| 326 | }; | 327 | }; |
| @@ -341,7 +342,7 @@ static struct resource dm646x_mcasp1_resources[] = { | |||
| 341 | }, | 342 | }, |
| 342 | { | 343 | { |
| 343 | .name = "tx", | 344 | .name = "tx", |
| 344 | .start = IRQ_DM646X_MCASP1TXINT, | 345 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_MCASP1TXINT), |
| 345 | .flags = IORESOURCE_IRQ, | 346 | .flags = IORESOURCE_IRQ, |
| 346 | }, | 347 | }, |
| 347 | }; | 348 | }; |
| @@ -388,13 +389,13 @@ static struct platform_device vpif_dev = { | |||
| 388 | 389 | ||
| 389 | static struct resource vpif_display_resource[] = { | 390 | static struct resource vpif_display_resource[] = { |
| 390 | { | 391 | { |
| 391 | .start = IRQ_DM646X_VP_VERTINT2, | 392 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT2), |
| 392 | .end = IRQ_DM646X_VP_VERTINT2, | 393 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT2), |
| 393 | .flags = IORESOURCE_IRQ, | 394 | .flags = IORESOURCE_IRQ, |
| 394 | }, | 395 | }, |
| 395 | { | 396 | { |
| 396 | .start = IRQ_DM646X_VP_VERTINT3, | 397 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT3), |
| 397 | .end = IRQ_DM646X_VP_VERTINT3, | 398 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT3), |
| 398 | .flags = IORESOURCE_IRQ, | 399 | .flags = IORESOURCE_IRQ, |
| 399 | }, | 400 | }, |
| 400 | }; | 401 | }; |
| @@ -412,13 +413,13 @@ static struct platform_device vpif_display_dev = { | |||
| 412 | 413 | ||
| 413 | static struct resource vpif_capture_resource[] = { | 414 | static struct resource vpif_capture_resource[] = { |
| 414 | { | 415 | { |
| 415 | .start = IRQ_DM646X_VP_VERTINT0, | 416 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT0), |
| 416 | .end = IRQ_DM646X_VP_VERTINT0, | 417 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT0), |
| 417 | .flags = IORESOURCE_IRQ, | 418 | .flags = IORESOURCE_IRQ, |
| 418 | }, | 419 | }, |
| 419 | { | 420 | { |
| 420 | .start = IRQ_DM646X_VP_VERTINT1, | 421 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT1), |
| 421 | .end = IRQ_DM646X_VP_VERTINT1, | 422 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_VP_VERTINT1), |
| 422 | .flags = IORESOURCE_IRQ, | 423 | .flags = IORESOURCE_IRQ, |
| 423 | }, | 424 | }, |
| 424 | }; | 425 | }; |
| @@ -441,18 +442,18 @@ static struct resource dm646x_gpio_resources[] = { | |||
| 441 | .flags = IORESOURCE_MEM, | 442 | .flags = IORESOURCE_MEM, |
| 442 | }, | 443 | }, |
| 443 | { /* interrupt */ | 444 | { /* interrupt */ |
| 444 | .start = IRQ_DM646X_GPIOBNK0, | 445 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_GPIOBNK0), |
| 445 | .end = IRQ_DM646X_GPIOBNK0, | 446 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_GPIOBNK0), |
| 446 | .flags = IORESOURCE_IRQ, | 447 | .flags = IORESOURCE_IRQ, |
| 447 | }, | 448 | }, |
| 448 | { | 449 | { |
| 449 | .start = IRQ_DM646X_GPIOBNK1, | 450 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_GPIOBNK1), |
| 450 | .end = IRQ_DM646X_GPIOBNK1, | 451 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_GPIOBNK1), |
| 451 | .flags = IORESOURCE_IRQ, | 452 | .flags = IORESOURCE_IRQ, |
| 452 | }, | 453 | }, |
| 453 | { | 454 | { |
| 454 | .start = IRQ_DM646X_GPIOBNK2, | 455 | .start = DAVINCI_INTC_IRQ(IRQ_DM646X_GPIOBNK2), |
| 455 | .end = IRQ_DM646X_GPIOBNK2, | 456 | .end = DAVINCI_INTC_IRQ(IRQ_DM646X_GPIOBNK2), |
| 456 | .flags = IORESOURCE_IRQ, | 457 | .flags = IORESOURCE_IRQ, |
| 457 | }, | 458 | }, |
| 458 | }; | 459 | }; |
| @@ -513,7 +514,7 @@ static struct davinci_timer_info dm646x_timer_info = { | |||
| 513 | static struct plat_serial8250_port dm646x_serial0_platform_data[] = { | 514 | static struct plat_serial8250_port dm646x_serial0_platform_data[] = { |
| 514 | { | 515 | { |
| 515 | .mapbase = DAVINCI_UART0_BASE, | 516 | .mapbase = DAVINCI_UART0_BASE, |
| 516 | .irq = IRQ_UARTINT0, | 517 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT0), |
| 517 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 518 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 518 | UPF_IOREMAP, | 519 | UPF_IOREMAP, |
| 519 | .iotype = UPIO_MEM32, | 520 | .iotype = UPIO_MEM32, |
| @@ -526,7 +527,7 @@ static struct plat_serial8250_port dm646x_serial0_platform_data[] = { | |||
| 526 | static struct plat_serial8250_port dm646x_serial1_platform_data[] = { | 527 | static struct plat_serial8250_port dm646x_serial1_platform_data[] = { |
| 527 | { | 528 | { |
| 528 | .mapbase = DAVINCI_UART1_BASE, | 529 | .mapbase = DAVINCI_UART1_BASE, |
| 529 | .irq = IRQ_UARTINT1, | 530 | .irq = DAVINCI_INTC_IRQ(IRQ_UARTINT1), |
| 530 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 531 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 531 | UPF_IOREMAP, | 532 | UPF_IOREMAP, |
| 532 | .iotype = UPIO_MEM32, | 533 | .iotype = UPIO_MEM32, |
| @@ -539,7 +540,7 @@ static struct plat_serial8250_port dm646x_serial1_platform_data[] = { | |||
| 539 | static struct plat_serial8250_port dm646x_serial2_platform_data[] = { | 540 | static struct plat_serial8250_port dm646x_serial2_platform_data[] = { |
| 540 | { | 541 | { |
| 541 | .mapbase = DAVINCI_UART2_BASE, | 542 | .mapbase = DAVINCI_UART2_BASE, |
| 542 | .irq = IRQ_DM646X_UARTINT2, | 543 | .irq = DAVINCI_INTC_IRQ(IRQ_DM646X_UARTINT2), |
| 543 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | | 544 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | |
| 544 | UPF_IOREMAP, | 545 | UPF_IOREMAP, |
| 545 | .iotype = UPIO_MEM32, | 546 | .iotype = UPIO_MEM32, |
| @@ -585,10 +586,6 @@ static const struct davinci_soc_info davinci_soc_info_dm646x = { | |||
| 585 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, | 586 | .pinmux_base = DAVINCI_SYSTEM_MODULE_BASE, |
| 586 | .pinmux_pins = dm646x_pins, | 587 | .pinmux_pins = dm646x_pins, |
| 587 | .pinmux_pins_num = ARRAY_SIZE(dm646x_pins), | 588 | .pinmux_pins_num = ARRAY_SIZE(dm646x_pins), |
| 588 | .intc_base = DAVINCI_ARM_INTC_BASE, | ||
| 589 | .intc_type = DAVINCI_INTC_TYPE_AINTC, | ||
| 590 | .intc_irq_prios = dm646x_default_priorities, | ||
| 591 | .intc_irq_num = DAVINCI_N_AINTC_IRQ, | ||
| 592 | .timer_info = &dm646x_timer_info, | 589 | .timer_info = &dm646x_timer_info, |
| 593 | .emac_pdata = &dm646x_emac_pdata, | 590 | .emac_pdata = &dm646x_emac_pdata, |
| 594 | .sram_dma = 0x10010000, | 591 | .sram_dma = 0x10010000, |
| @@ -690,6 +687,21 @@ void __init dm646x_register_clocks(void) | |||
| 690 | platform_device_register(&dm646x_pll2_device); | 687 | platform_device_register(&dm646x_pll2_device); |
| 691 | } | 688 | } |
| 692 | 689 | ||
| 690 | static const struct davinci_aintc_config dm646x_aintc_config = { | ||
| 691 | .reg = { | ||
| 692 | .start = DAVINCI_ARM_INTC_BASE, | ||
| 693 | .end = DAVINCI_ARM_INTC_BASE + SZ_4K - 1, | ||
| 694 | .flags = IORESOURCE_MEM, | ||
| 695 | }, | ||
| 696 | .num_irqs = 64, | ||
| 697 | .prios = dm646x_default_priorities, | ||
| 698 | }; | ||
| 699 | |||
| 700 | void __init dm646x_init_irq(void) | ||
| 701 | { | ||
| 702 | davinci_aintc_init(&dm646x_aintc_config); | ||
| 703 | } | ||
| 704 | |||
| 693 | static int __init dm646x_init_devices(void) | 705 | static int __init dm646x_init_devices(void) |
| 694 | { | 706 | { |
| 695 | int ret = 0; | 707 | int ret = 0; |
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h index b577e13a9c23..9526e5da0d33 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h | |||
| @@ -17,11 +17,12 @@ | |||
| 17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
| 18 | #include <linux/reboot.h> | 18 | #include <linux/reboot.h> |
| 19 | 19 | ||
| 20 | void davinci_timer_init(struct clk *clk); | 20 | #include <asm/irq.h> |
| 21 | |||
| 22 | #define DAVINCI_INTC_START NR_IRQS | ||
| 23 | #define DAVINCI_INTC_IRQ(_irqnum) (DAVINCI_INTC_START + (_irqnum)) | ||
| 21 | 24 | ||
| 22 | extern void davinci_irq_init(void); | 25 | void davinci_timer_init(struct clk *clk); |
| 23 | extern void __iomem *davinci_intc_base; | ||
| 24 | extern int davinci_intc_type; | ||
| 25 | 26 | ||
| 26 | struct davinci_timer_instance { | 27 | struct davinci_timer_instance { |
| 27 | u32 base; | 28 | u32 base; |
| @@ -57,11 +58,6 @@ struct davinci_soc_info { | |||
| 57 | u32 pinmux_base; | 58 | u32 pinmux_base; |
| 58 | const struct mux_config *pinmux_pins; | 59 | const struct mux_config *pinmux_pins; |
| 59 | unsigned long pinmux_pins_num; | 60 | unsigned long pinmux_pins_num; |
| 60 | u32 intc_base; | ||
| 61 | int intc_type; | ||
| 62 | u8 *intc_irq_prios; | ||
| 63 | unsigned long intc_irq_num; | ||
| 64 | u32 *intc_host_map; | ||
| 65 | struct davinci_timer_info *timer_info; | 61 | struct davinci_timer_info *timer_info; |
| 66 | int gpio_type; | 62 | int gpio_type; |
| 67 | u32 gpio_base; | 63 | u32 gpio_base; |
diff --git a/arch/arm/mach-davinci/include/mach/cpufreq.h b/arch/arm/mach-davinci/include/mach/cpufreq.h deleted file mode 100644 index 3c089cfb6cd6..000000000000 --- a/arch/arm/mach-davinci/include/mach/cpufreq.h +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * TI DaVinci CPUFreq platform support. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2009 Texas Instruments, Inc. http://www.ti.com/ | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public License as | ||
| 8 | * published by the Free Software Foundation version 2. | ||
| 9 | * | ||
| 10 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
| 11 | * kind, whether express or implied; without even the implied warranty | ||
| 12 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | * GNU General Public License for more details. | ||
| 14 | */ | ||
| 15 | #ifndef _MACH_DAVINCI_CPUFREQ_H | ||
| 16 | #define _MACH_DAVINCI_CPUFREQ_H | ||
| 17 | |||
| 18 | #include <linux/cpufreq.h> | ||
| 19 | |||
| 20 | struct davinci_cpufreq_config { | ||
| 21 | struct cpufreq_frequency_table *freq_table; | ||
| 22 | int (*set_voltage) (unsigned int index); | ||
| 23 | int (*init) (void); | ||
| 24 | }; | ||
| 25 | |||
| 26 | #endif | ||
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index ab4a57f433f4..1618b30661a9 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h | |||
| @@ -88,10 +88,12 @@ extern unsigned int da850_max_speed; | |||
| 88 | #define DA8XX_ARM_RAM_BASE 0xffff0000 | 88 | #define DA8XX_ARM_RAM_BASE 0xffff0000 |
| 89 | 89 | ||
| 90 | void da830_init(void); | 90 | void da830_init(void); |
| 91 | void da830_init_irq(void); | ||
| 91 | void da830_init_time(void); | 92 | void da830_init_time(void); |
| 92 | void da830_register_clocks(void); | 93 | void da830_register_clocks(void); |
| 93 | 94 | ||
| 94 | void da850_init(void); | 95 | void da850_init(void); |
| 96 | void da850_init_irq(void); | ||
| 95 | void da850_init_time(void); | 97 | void da850_init_time(void); |
| 96 | void da850_register_clocks(void); | 98 | void da850_register_clocks(void); |
| 97 | 99 | ||
diff --git a/arch/arm/mach-davinci/include/mach/entry-macro.S b/arch/arm/mach-davinci/include/mach/entry-macro.S deleted file mode 100644 index cf5f573eb5fd..000000000000 --- a/arch/arm/mach-davinci/include/mach/entry-macro.S +++ /dev/null | |||
| @@ -1,39 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Low-level IRQ helper macros for TI DaVinci-based platforms | ||
| 3 | * | ||
| 4 | * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com> | ||
| 5 | * | ||
| 6 | * 2007 (c) MontaVista Software, Inc. This file is licensed under | ||
| 7 | * the terms of the GNU General Public License version 2. This program | ||
| 8 | * is licensed "as is" without any warranty of any kind, whether express | ||
| 9 | * or implied. | ||
| 10 | */ | ||
| 11 | #include <mach/irqs.h> | ||
| 12 | |||
| 13 | .macro get_irqnr_preamble, base, tmp | ||
| 14 | ldr \base, =davinci_intc_base | ||
| 15 | ldr \base, [\base] | ||
| 16 | .endm | ||
| 17 | |||
| 18 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
| 19 | #if defined(CONFIG_AINTC) && defined(CONFIG_CP_INTC) | ||
| 20 | ldr \tmp, =davinci_intc_type | ||
| 21 | ldr \tmp, [\tmp] | ||
| 22 | cmp \tmp, #DAVINCI_INTC_TYPE_CP_INTC | ||
| 23 | beq 1001f | ||
| 24 | #endif | ||
| 25 | #if defined(CONFIG_AINTC) | ||
| 26 | ldr \tmp, [\base, #0x14] | ||
| 27 | movs \tmp, \tmp, lsr #2 | ||
| 28 | sub \irqnr, \tmp, #1 | ||
| 29 | b 1002f | ||
| 30 | #endif | ||
| 31 | #if defined(CONFIG_CP_INTC) | ||
| 32 | 1001: ldr \irqnr, [\base, #0x80] /* get irq number */ | ||
| 33 | mov \tmp, \irqnr, lsr #31 | ||
| 34 | and \irqnr, \irqnr, #0xff /* irq is in bits 0-9 */ | ||
| 35 | and \tmp, \tmp, #0x1 | ||
| 36 | cmp \tmp, #0x1 | ||
| 37 | #endif | ||
| 38 | 1002: | ||
| 39 | .endm | ||
diff --git a/arch/arm/mach-davinci/irq.c b/arch/arm/mach-davinci/irq.c deleted file mode 100644 index 952dc126c390..000000000000 --- a/arch/arm/mach-davinci/irq.c +++ /dev/null | |||
| @@ -1,117 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Interrupt handler for DaVinci boards. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2006 Texas Instruments. | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope that it will be useful, | ||
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | * GNU General Public License for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License | ||
| 17 | * along with this program; if not, write to the Free Software | ||
| 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
| 19 | * | ||
| 20 | */ | ||
| 21 | #include <linux/kernel.h> | ||
| 22 | #include <linux/init.h> | ||
| 23 | #include <linux/interrupt.h> | ||
| 24 | #include <linux/irq.h> | ||
| 25 | #include <linux/io.h> | ||
| 26 | |||
| 27 | #include <mach/hardware.h> | ||
| 28 | #include <mach/cputype.h> | ||
| 29 | #include <mach/common.h> | ||
| 30 | #include <asm/mach/irq.h> | ||
| 31 | |||
| 32 | #define FIQ_REG0_OFFSET 0x0000 | ||
| 33 | #define FIQ_REG1_OFFSET 0x0004 | ||
| 34 | #define IRQ_REG0_OFFSET 0x0008 | ||
| 35 | #define IRQ_REG1_OFFSET 0x000C | ||
| 36 | #define IRQ_ENT_REG0_OFFSET 0x0018 | ||
| 37 | #define IRQ_ENT_REG1_OFFSET 0x001C | ||
| 38 | #define IRQ_INCTL_REG_OFFSET 0x0020 | ||
| 39 | #define IRQ_EABASE_REG_OFFSET 0x0024 | ||
| 40 | #define IRQ_INTPRI0_REG_OFFSET 0x0030 | ||
| 41 | #define IRQ_INTPRI7_REG_OFFSET 0x004C | ||
| 42 | |||
| 43 | static inline void davinci_irq_writel(unsigned long value, int offset) | ||
| 44 | { | ||
| 45 | __raw_writel(value, davinci_intc_base + offset); | ||
| 46 | } | ||
| 47 | |||
| 48 | static __init void | ||
| 49 | davinci_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num) | ||
| 50 | { | ||
| 51 | struct irq_chip_generic *gc; | ||
| 52 | struct irq_chip_type *ct; | ||
| 53 | |||
| 54 | gc = irq_alloc_generic_chip("AINTC", 1, irq_start, base, handle_edge_irq); | ||
| 55 | if (!gc) { | ||
| 56 | pr_err("%s: irq_alloc_generic_chip for IRQ %u failed\n", | ||
| 57 | __func__, irq_start); | ||
| 58 | return; | ||
| 59 | } | ||
| 60 | |||
| 61 | ct = gc->chip_types; | ||
| 62 | ct->chip.irq_ack = irq_gc_ack_set_bit; | ||
| 63 | ct->chip.irq_mask = irq_gc_mask_clr_bit; | ||
| 64 | ct->chip.irq_unmask = irq_gc_mask_set_bit; | ||
| 65 | |||
| 66 | ct->regs.ack = IRQ_REG0_OFFSET; | ||
| 67 | ct->regs.mask = IRQ_ENT_REG0_OFFSET; | ||
| 68 | irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE, | ||
| 69 | IRQ_NOREQUEST | IRQ_NOPROBE, 0); | ||
| 70 | } | ||
| 71 | |||
| 72 | /* ARM Interrupt Controller Initialization */ | ||
| 73 | void __init davinci_irq_init(void) | ||
| 74 | { | ||
| 75 | unsigned i, j; | ||
| 76 | const u8 *davinci_def_priorities = davinci_soc_info.intc_irq_prios; | ||
| 77 | |||
| 78 | davinci_intc_type = DAVINCI_INTC_TYPE_AINTC; | ||
| 79 | davinci_intc_base = ioremap(davinci_soc_info.intc_base, SZ_4K); | ||
| 80 | if (WARN_ON(!davinci_intc_base)) | ||
| 81 | return; | ||
| 82 | |||
| 83 | /* Clear all interrupt requests */ | ||
| 84 | davinci_irq_writel(~0x0, FIQ_REG0_OFFSET); | ||
| 85 | davinci_irq_writel(~0x0, FIQ_REG1_OFFSET); | ||
| 86 | davinci_irq_writel(~0x0, IRQ_REG0_OFFSET); | ||
| 87 | davinci_irq_writel(~0x0, IRQ_REG1_OFFSET); | ||
| 88 | |||
| 89 | /* Disable all interrupts */ | ||
| 90 | davinci_irq_writel(0x0, IRQ_ENT_REG0_OFFSET); | ||
| 91 | davinci_irq_writel(0x0, IRQ_ENT_REG1_OFFSET); | ||
| 92 | |||
| 93 | /* Interrupts disabled immediately, IRQ entry reflects all */ | ||
| 94 | davinci_irq_writel(0x0, IRQ_INCTL_REG_OFFSET); | ||
| 95 | |||
| 96 | /* we don't use the hardware vector table, just its entry addresses */ | ||
| 97 | davinci_irq_writel(0, IRQ_EABASE_REG_OFFSET); | ||
| 98 | |||
| 99 | /* Clear all interrupt requests */ | ||
| 100 | davinci_irq_writel(~0x0, FIQ_REG0_OFFSET); | ||
| 101 | davinci_irq_writel(~0x0, FIQ_REG1_OFFSET); | ||
| 102 | davinci_irq_writel(~0x0, IRQ_REG0_OFFSET); | ||
| 103 | davinci_irq_writel(~0x0, IRQ_REG1_OFFSET); | ||
| 104 | |||
| 105 | for (i = IRQ_INTPRI0_REG_OFFSET; i <= IRQ_INTPRI7_REG_OFFSET; i += 4) { | ||
| 106 | u32 pri; | ||
| 107 | |||
| 108 | for (j = 0, pri = 0; j < 32; j += 4, davinci_def_priorities++) | ||
| 109 | pri |= (*davinci_def_priorities & 0x07) << j; | ||
| 110 | davinci_irq_writel(pri, i); | ||
| 111 | } | ||
| 112 | |||
| 113 | for (i = 0, j = 0; i < davinci_soc_info.intc_irq_num; i += 32, j += 0x04) | ||
| 114 | davinci_alloc_gc(davinci_intc_base + j, i, 32); | ||
| 115 | |||
| 116 | irq_set_handler(IRQ_TINT1_TINT34, handle_level_irq); | ||
| 117 | } | ||
diff --git a/arch/arm/mach-davinci/include/mach/irqs.h b/arch/arm/mach-davinci/irqs.h index edb2ca62321a..8f9fc7a56ce8 100644 --- a/arch/arm/mach-davinci/include/mach/irqs.h +++ b/arch/arm/mach-davinci/irqs.h | |||
| @@ -30,9 +30,6 @@ | |||
| 30 | /* Base address */ | 30 | /* Base address */ |
| 31 | #define DAVINCI_ARM_INTC_BASE 0x01C48000 | 31 | #define DAVINCI_ARM_INTC_BASE 0x01C48000 |
| 32 | 32 | ||
| 33 | #define DAVINCI_INTC_TYPE_AINTC 0 | ||
| 34 | #define DAVINCI_INTC_TYPE_CP_INTC 1 | ||
| 35 | |||
| 36 | /* Interrupt lines */ | 33 | /* Interrupt lines */ |
| 37 | #define IRQ_VDINT0 0 | 34 | #define IRQ_VDINT0 0 |
| 38 | #define IRQ_VDINT1 1 | 35 | #define IRQ_VDINT1 1 |
| @@ -404,6 +401,5 @@ | |||
| 404 | /* da850 currently has the most gpio pins (144) */ | 401 | /* da850 currently has the most gpio pins (144) */ |
| 405 | #define DAVINCI_N_GPIO 144 | 402 | #define DAVINCI_N_GPIO 144 |
| 406 | /* da850 currently has the most irqs so use DA850_N_CP_INTC_IRQ */ | 403 | /* da850 currently has the most irqs so use DA850_N_CP_INTC_IRQ */ |
| 407 | #define NR_IRQS (DA850_N_CP_INTC_IRQ + DAVINCI_N_GPIO) | ||
| 408 | 404 | ||
| 409 | #endif /* __ASM_ARCH_IRQS_H */ | 405 | #endif /* __ASM_ARCH_IRQS_H */ |
diff --git a/arch/arm/mach-davinci/usb-da8xx.c b/arch/arm/mach-davinci/usb-da8xx.c index c17ce66a3d95..25f21ee86f1a 100644 --- a/arch/arm/mach-davinci/usb-da8xx.c +++ b/arch/arm/mach-davinci/usb-da8xx.c | |||
| @@ -18,7 +18,8 @@ | |||
| 18 | #include <mach/common.h> | 18 | #include <mach/common.h> |
| 19 | #include <mach/cputype.h> | 19 | #include <mach/cputype.h> |
| 20 | #include <mach/da8xx.h> | 20 | #include <mach/da8xx.h> |
| 21 | #include <mach/irqs.h> | 21 | |
| 22 | #include "irqs.h" | ||
| 22 | 23 | ||
| 23 | #define DA8XX_USB0_BASE 0x01e00000 | 24 | #define DA8XX_USB0_BASE 0x01e00000 |
| 24 | #define DA8XX_USB1_BASE 0x01e25000 | 25 | #define DA8XX_USB1_BASE 0x01e25000 |
| @@ -70,7 +71,7 @@ static struct resource da8xx_usb20_resources[] = { | |||
| 70 | .flags = IORESOURCE_MEM, | 71 | .flags = IORESOURCE_MEM, |
| 71 | }, | 72 | }, |
| 72 | { | 73 | { |
| 73 | .start = IRQ_DA8XX_USB_INT, | 74 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_USB_INT), |
| 74 | .flags = IORESOURCE_IRQ, | 75 | .flags = IORESOURCE_IRQ, |
| 75 | .name = "mc", | 76 | .name = "mc", |
| 76 | }, | 77 | }, |
| @@ -105,8 +106,8 @@ static struct resource da8xx_usb11_resources[] = { | |||
| 105 | .flags = IORESOURCE_MEM, | 106 | .flags = IORESOURCE_MEM, |
| 106 | }, | 107 | }, |
| 107 | [1] = { | 108 | [1] = { |
| 108 | .start = IRQ_DA8XX_IRQN, | 109 | .start = DAVINCI_INTC_IRQ(IRQ_DA8XX_IRQN), |
| 109 | .end = IRQ_DA8XX_IRQN, | 110 | .end = DAVINCI_INTC_IRQ(IRQ_DA8XX_IRQN), |
| 110 | .flags = IORESOURCE_IRQ, | 111 | .flags = IORESOURCE_IRQ, |
| 111 | }, | 112 | }, |
| 112 | }; | 113 | }; |
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c index 31ed7aa47227..dd8db61cdd1c 100644 --- a/arch/arm/mach-davinci/usb.c +++ b/arch/arm/mach-davinci/usb.c | |||
| @@ -2,16 +2,16 @@ | |||
| 2 | /* | 2 | /* |
| 3 | * USB | 3 | * USB |
| 4 | */ | 4 | */ |
| 5 | #include <linux/dma-mapping.h> | ||
| 5 | #include <linux/init.h> | 6 | #include <linux/init.h> |
| 6 | #include <linux/platform_device.h> | 7 | #include <linux/platform_device.h> |
| 7 | #include <linux/dma-mapping.h> | 8 | #include <linux/platform_data/usb-davinci.h> |
| 8 | |||
| 9 | #include <linux/usb/musb.h> | 9 | #include <linux/usb/musb.h> |
| 10 | 10 | ||
| 11 | #include <mach/common.h> | 11 | #include <mach/common.h> |
| 12 | #include <mach/irqs.h> | ||
| 13 | #include <mach/cputype.h> | 12 | #include <mach/cputype.h> |
| 14 | #include <linux/platform_data/usb-davinci.h> | 13 | |
| 14 | #include "irqs.h" | ||
| 15 | 15 | ||
| 16 | #define DAVINCI_USB_OTG_BASE 0x01c64000 | 16 | #define DAVINCI_USB_OTG_BASE 0x01c64000 |
| 17 | 17 | ||
| @@ -38,7 +38,7 @@ static struct resource usb_resources[] = { | |||
| 38 | .flags = IORESOURCE_MEM, | 38 | .flags = IORESOURCE_MEM, |
| 39 | }, | 39 | }, |
| 40 | { | 40 | { |
| 41 | .start = IRQ_USBINT, | 41 | .start = DAVINCI_INTC_IRQ(IRQ_USBINT), |
| 42 | .flags = IORESOURCE_IRQ, | 42 | .flags = IORESOURCE_IRQ, |
| 43 | .name = "mc" | 43 | .name = "mc" |
| 44 | }, | 44 | }, |
| @@ -70,8 +70,9 @@ void __init davinci_setup_usb(unsigned mA, unsigned potpgt_ms) | |||
| 70 | 70 | ||
| 71 | if (cpu_is_davinci_dm646x()) { | 71 | if (cpu_is_davinci_dm646x()) { |
| 72 | /* Override the defaults as DM6467 uses different IRQs. */ | 72 | /* Override the defaults as DM6467 uses different IRQs. */ |
| 73 | usb_dev.resource[1].start = IRQ_DM646X_USBINT; | 73 | usb_dev.resource[1].start = DAVINCI_INTC_IRQ(IRQ_DM646X_USBINT); |
| 74 | usb_dev.resource[2].start = IRQ_DM646X_USBDMAINT; | 74 | usb_dev.resource[2].start = DAVINCI_INTC_IRQ( |
| 75 | IRQ_DM646X_USBDMAINT); | ||
| 75 | } else /* other devices don't have dedicated CPPI IRQ */ | 76 | } else /* other devices don't have dedicated CPPI IRQ */ |
| 76 | usb_dev.num_resources = 2; | 77 | usb_dev.num_resources = 2; |
| 77 | 78 | ||
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index c6a533699b00..85b74ac943f0 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
| @@ -26,7 +26,6 @@ | |||
| 26 | #include <mach/gpio-ep93xx.h> | 26 | #include <mach/gpio-ep93xx.h> |
| 27 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
| 28 | #include <mach/irqs.h> | 28 | #include <mach/irqs.h> |
| 29 | #include <mach/gpio-ep93xx.h> | ||
| 30 | 29 | ||
| 31 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
| 32 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
diff --git a/arch/arm/mach-exynos/headsmp.S b/arch/arm/mach-exynos/headsmp.S index 005695c9bf40..0ac2cb9a7355 100644 --- a/arch/arm/mach-exynos/headsmp.S +++ b/arch/arm/mach-exynos/headsmp.S | |||
| @@ -36,4 +36,4 @@ ENDPROC(exynos4_secondary_startup) | |||
| 36 | 36 | ||
| 37 | .align 2 | 37 | .align 2 |
| 38 | 1: .long . | 38 | 1: .long . |
| 39 | .long pen_release | 39 | .long exynos_pen_release |
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c index c39ffd2e2fe6..abcac6164233 100644 --- a/arch/arm/mach-exynos/platsmp.c +++ b/arch/arm/mach-exynos/platsmp.c | |||
| @@ -28,6 +28,9 @@ | |||
| 28 | 28 | ||
| 29 | extern void exynos4_secondary_startup(void); | 29 | extern void exynos4_secondary_startup(void); |
| 30 | 30 | ||
| 31 | /* XXX exynos_pen_release is cargo culted code - DO NOT COPY XXX */ | ||
| 32 | volatile int exynos_pen_release = -1; | ||
| 33 | |||
| 31 | #ifdef CONFIG_HOTPLUG_CPU | 34 | #ifdef CONFIG_HOTPLUG_CPU |
| 32 | static inline void cpu_leave_lowpower(u32 core_id) | 35 | static inline void cpu_leave_lowpower(u32 core_id) |
| 33 | { | 36 | { |
| @@ -57,7 +60,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious) | |||
| 57 | 60 | ||
| 58 | wfi(); | 61 | wfi(); |
| 59 | 62 | ||
| 60 | if (pen_release == core_id) { | 63 | if (exynos_pen_release == core_id) { |
| 61 | /* | 64 | /* |
| 62 | * OK, proper wakeup, we're done | 65 | * OK, proper wakeup, we're done |
| 63 | */ | 66 | */ |
| @@ -228,15 +231,17 @@ void exynos_core_restart(u32 core_id) | |||
| 228 | } | 231 | } |
| 229 | 232 | ||
| 230 | /* | 233 | /* |
| 231 | * Write pen_release in a way that is guaranteed to be visible to all | 234 | * XXX CARGO CULTED CODE - DO NOT COPY XXX |
| 232 | * observers, irrespective of whether they're taking part in coherency | 235 | * |
| 236 | * Write exynos_pen_release in a way that is guaranteed to be visible to | ||
| 237 | * all observers, irrespective of whether they're taking part in coherency | ||
| 233 | * or not. This is necessary for the hotplug code to work reliably. | 238 | * or not. This is necessary for the hotplug code to work reliably. |
| 234 | */ | 239 | */ |
| 235 | static void write_pen_release(int val) | 240 | static void exynos_write_pen_release(int val) |
| 236 | { | 241 | { |
| 237 | pen_release = val; | 242 | exynos_pen_release = val; |
| 238 | smp_wmb(); | 243 | smp_wmb(); |
| 239 | sync_cache_w(&pen_release); | 244 | sync_cache_w(&exynos_pen_release); |
| 240 | } | 245 | } |
| 241 | 246 | ||
| 242 | static DEFINE_SPINLOCK(boot_lock); | 247 | static DEFINE_SPINLOCK(boot_lock); |
| @@ -247,7 +252,7 @@ static void exynos_secondary_init(unsigned int cpu) | |||
| 247 | * let the primary processor know we're out of the | 252 | * let the primary processor know we're out of the |
| 248 | * pen, then head off into the C entry point | 253 | * pen, then head off into the C entry point |
| 249 | */ | 254 | */ |
| 250 | write_pen_release(-1); | 255 | exynos_write_pen_release(-1); |
| 251 | 256 | ||
| 252 | /* | 257 | /* |
| 253 | * Synchronise with the boot thread. | 258 | * Synchronise with the boot thread. |
| @@ -322,12 +327,12 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 322 | /* | 327 | /* |
| 323 | * The secondary processor is waiting to be released from | 328 | * The secondary processor is waiting to be released from |
| 324 | * the holding pen - release it, then wait for it to flag | 329 | * the holding pen - release it, then wait for it to flag |
| 325 | * that it has been released by resetting pen_release. | 330 | * that it has been released by resetting exynos_pen_release. |
| 326 | * | 331 | * |
| 327 | * Note that "pen_release" is the hardware CPU core ID, whereas | 332 | * Note that "exynos_pen_release" is the hardware CPU core ID, whereas |
| 328 | * "cpu" is Linux's internal ID. | 333 | * "cpu" is Linux's internal ID. |
| 329 | */ | 334 | */ |
| 330 | write_pen_release(core_id); | 335 | exynos_write_pen_release(core_id); |
| 331 | 336 | ||
| 332 | if (!exynos_cpu_power_state(core_id)) { | 337 | if (!exynos_cpu_power_state(core_id)) { |
| 333 | exynos_cpu_power_up(core_id); | 338 | exynos_cpu_power_up(core_id); |
| @@ -336,9 +341,9 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 336 | /* wait max 10 ms until cpu1 is on */ | 341 | /* wait max 10 ms until cpu1 is on */ |
| 337 | while (exynos_cpu_power_state(core_id) | 342 | while (exynos_cpu_power_state(core_id) |
| 338 | != S5P_CORE_LOCAL_PWR_EN) { | 343 | != S5P_CORE_LOCAL_PWR_EN) { |
| 339 | if (timeout-- == 0) | 344 | if (timeout == 0) |
| 340 | break; | 345 | break; |
| 341 | 346 | timeout--; | |
| 342 | mdelay(1); | 347 | mdelay(1); |
| 343 | } | 348 | } |
| 344 | 349 | ||
| @@ -376,13 +381,13 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 376 | else | 381 | else |
| 377 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); | 382 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
| 378 | 383 | ||
| 379 | if (pen_release == -1) | 384 | if (exynos_pen_release == -1) |
| 380 | break; | 385 | break; |
| 381 | 386 | ||
| 382 | udelay(10); | 387 | udelay(10); |
| 383 | } | 388 | } |
| 384 | 389 | ||
| 385 | if (pen_release != -1) | 390 | if (exynos_pen_release != -1) |
| 386 | ret = -ETIMEDOUT; | 391 | ret = -ETIMEDOUT; |
| 387 | 392 | ||
| 388 | /* | 393 | /* |
| @@ -392,7 +397,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 392 | fail: | 397 | fail: |
| 393 | spin_unlock(&boot_lock); | 398 | spin_unlock(&boot_lock); |
| 394 | 399 | ||
| 395 | return pen_release != -1 ? ret : 0; | 400 | return exynos_pen_release != -1 ? ret : 0; |
| 396 | } | 401 | } |
| 397 | 402 | ||
| 398 | static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) | 403 | static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) |
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 8af2f7e91d13..35ff620537e6 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
| @@ -29,9 +29,10 @@ obj-$(CONFIG_SOC_IMX6SL) += cpuidle-imx6sl.o | |||
| 29 | obj-$(CONFIG_SOC_IMX6SLL) += cpuidle-imx6sx.o | 29 | obj-$(CONFIG_SOC_IMX6SLL) += cpuidle-imx6sx.o |
| 30 | obj-$(CONFIG_SOC_IMX6SX) += cpuidle-imx6sx.o | 30 | obj-$(CONFIG_SOC_IMX6SX) += cpuidle-imx6sx.o |
| 31 | obj-$(CONFIG_SOC_IMX6UL) += cpuidle-imx6sx.o | 31 | obj-$(CONFIG_SOC_IMX6UL) += cpuidle-imx6sx.o |
| 32 | obj-$(CONFIG_SOC_IMX7ULP) += cpuidle-imx7ulp.o | ||
| 32 | endif | 33 | endif |
| 33 | 34 | ||
| 34 | ifdef CONFIG_SND_IMX_SOC | 35 | ifdef CONFIG_SND_SOC_IMX_PCM_FIQ |
| 35 | obj-y += ssi-fiq.o | 36 | obj-y += ssi-fiq.o |
| 36 | obj-y += ssi-fiq-ksym.o | 37 | obj-y += ssi-fiq-ksym.o |
| 37 | endif | 38 | endif |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index bc915e5b4d56..c51764a85fd7 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
| @@ -72,6 +72,15 @@ enum mxc_cpu_pwr_mode { | |||
| 72 | STOP_POWER_OFF, /* STOP + SRPG */ | 72 | STOP_POWER_OFF, /* STOP + SRPG */ |
| 73 | }; | 73 | }; |
| 74 | 74 | ||
| 75 | enum ulp_cpu_pwr_mode { | ||
| 76 | ULP_PM_HSRUN, /* High speed run mode */ | ||
| 77 | ULP_PM_RUN, /* Run mode */ | ||
| 78 | ULP_PM_WAIT, /* Wait mode */ | ||
| 79 | ULP_PM_STOP, /* Stop mode */ | ||
| 80 | ULP_PM_VLPS, /* Very low power stop mode */ | ||
| 81 | ULP_PM_VLLS, /* very low leakage stop mode */ | ||
| 82 | }; | ||
| 83 | |||
| 75 | void imx_enable_cpu(int cpu, bool enable); | 84 | void imx_enable_cpu(int cpu, bool enable); |
| 76 | void imx_set_cpu_jump(int cpu, void *jump_addr); | 85 | void imx_set_cpu_jump(int cpu, void *jump_addr); |
| 77 | u32 imx_get_cpu_arg(int cpu); | 86 | u32 imx_get_cpu_arg(int cpu); |
| @@ -98,6 +107,7 @@ int imx6_set_lpm(enum mxc_cpu_pwr_mode mode); | |||
| 98 | void imx6_set_int_mem_clk_lpm(bool enable); | 107 | void imx6_set_int_mem_clk_lpm(bool enable); |
| 99 | void imx6sl_set_wait_clk(bool enter); | 108 | void imx6sl_set_wait_clk(bool enter); |
| 100 | int imx_mmdc_get_ddr_type(void); | 109 | int imx_mmdc_get_ddr_type(void); |
| 110 | int imx7ulp_set_lpm(enum ulp_cpu_pwr_mode mode); | ||
| 101 | 111 | ||
| 102 | void imx_cpu_die(unsigned int cpu); | 112 | void imx_cpu_die(unsigned int cpu); |
| 103 | int imx_cpu_kill(unsigned int cpu); | 113 | int imx_cpu_kill(unsigned int cpu); |
diff --git a/arch/arm/mach-imx/cpuidle-imx7ulp.c b/arch/arm/mach-imx/cpuidle-imx7ulp.c new file mode 100644 index 000000000000..ca86c967d19e --- /dev/null +++ b/arch/arm/mach-imx/cpuidle-imx7ulp.c | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0+ | ||
| 2 | /* | ||
| 3 | * Copyright (C) 2016 Freescale Semiconductor, Inc. | ||
| 4 | * Copyright 2017-2018 NXP | ||
| 5 | * Anson Huang <Anson.Huang@nxp.com> | ||
| 6 | */ | ||
| 7 | |||
| 8 | #include <linux/cpuidle.h> | ||
| 9 | #include <linux/module.h> | ||
| 10 | #include <asm/cpuidle.h> | ||
| 11 | |||
| 12 | #include "common.h" | ||
| 13 | #include "cpuidle.h" | ||
| 14 | |||
| 15 | static int imx7ulp_enter_wait(struct cpuidle_device *dev, | ||
| 16 | struct cpuidle_driver *drv, int index) | ||
| 17 | { | ||
| 18 | if (index == 1) | ||
| 19 | imx7ulp_set_lpm(ULP_PM_WAIT); | ||
| 20 | else | ||
| 21 | imx7ulp_set_lpm(ULP_PM_STOP); | ||
| 22 | |||
| 23 | cpu_do_idle(); | ||
| 24 | |||
| 25 | imx7ulp_set_lpm(ULP_PM_RUN); | ||
| 26 | |||
| 27 | return index; | ||
| 28 | } | ||
| 29 | |||
| 30 | static struct cpuidle_driver imx7ulp_cpuidle_driver = { | ||
| 31 | .name = "imx7ulp_cpuidle", | ||
| 32 | .owner = THIS_MODULE, | ||
| 33 | .states = { | ||
| 34 | /* WFI */ | ||
| 35 | ARM_CPUIDLE_WFI_STATE, | ||
| 36 | /* WAIT */ | ||
| 37 | { | ||
| 38 | .exit_latency = 50, | ||
| 39 | .target_residency = 75, | ||
| 40 | .enter = imx7ulp_enter_wait, | ||
| 41 | .name = "WAIT", | ||
| 42 | .desc = "PSTOP2", | ||
| 43 | }, | ||
| 44 | /* STOP */ | ||
| 45 | { | ||
| 46 | .exit_latency = 100, | ||
| 47 | .target_residency = 150, | ||
| 48 | .enter = imx7ulp_enter_wait, | ||
| 49 | .name = "STOP", | ||
| 50 | .desc = "PSTOP1", | ||
| 51 | }, | ||
| 52 | }, | ||
| 53 | .state_count = 3, | ||
| 54 | .safe_state_index = 0, | ||
| 55 | }; | ||
| 56 | |||
| 57 | int __init imx7ulp_cpuidle_init(void) | ||
| 58 | { | ||
| 59 | return cpuidle_register(&imx7ulp_cpuidle_driver, NULL); | ||
| 60 | } | ||
diff --git a/arch/arm/mach-imx/cpuidle.h b/arch/arm/mach-imx/cpuidle.h index f9140128ba05..7694c8f810a4 100644 --- a/arch/arm/mach-imx/cpuidle.h +++ b/arch/arm/mach-imx/cpuidle.h | |||
| @@ -15,6 +15,7 @@ extern int imx5_cpuidle_init(void); | |||
| 15 | extern int imx6q_cpuidle_init(void); | 15 | extern int imx6q_cpuidle_init(void); |
| 16 | extern int imx6sl_cpuidle_init(void); | 16 | extern int imx6sl_cpuidle_init(void); |
| 17 | extern int imx6sx_cpuidle_init(void); | 17 | extern int imx6sx_cpuidle_init(void); |
| 18 | extern int imx7ulp_cpuidle_init(void); | ||
| 18 | #else | 19 | #else |
| 19 | static inline int imx5_cpuidle_init(void) | 20 | static inline int imx5_cpuidle_init(void) |
| 20 | { | 21 | { |
| @@ -32,4 +33,8 @@ static inline int imx6sx_cpuidle_init(void) | |||
| 32 | { | 33 | { |
| 33 | return 0; | 34 | return 0; |
| 34 | } | 35 | } |
| 36 | static inline int imx7ulp_cpuidle_init(void) | ||
| 37 | { | ||
| 38 | return 0; | ||
| 39 | } | ||
| 35 | #endif | 40 | #endif |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 5169dfba9718..07d4fcfe5c2e 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
| @@ -258,8 +258,7 @@ static void __init visstrim_analog_camera_init(void) | |||
| 258 | return; | 258 | return; |
| 259 | 259 | ||
| 260 | dma_declare_coherent_memory(&pdev->dev, mx2_camera_base, | 260 | dma_declare_coherent_memory(&pdev->dev, mx2_camera_base, |
| 261 | mx2_camera_base, MX2_CAMERA_BUF_SIZE, | 261 | mx2_camera_base, MX2_CAMERA_BUF_SIZE); |
| 262 | DMA_MEMORY_EXCLUSIVE); | ||
| 263 | } | 262 | } |
| 264 | 263 | ||
| 265 | static void __init visstrim_reserve(void) | 264 | static void __init visstrim_reserve(void) |
| @@ -445,8 +444,7 @@ static void __init visstrim_coda_init(void) | |||
| 445 | dma_declare_coherent_memory(&pdev->dev, | 444 | dma_declare_coherent_memory(&pdev->dev, |
| 446 | mx2_camera_base + MX2_CAMERA_BUF_SIZE, | 445 | mx2_camera_base + MX2_CAMERA_BUF_SIZE, |
| 447 | mx2_camera_base + MX2_CAMERA_BUF_SIZE, | 446 | mx2_camera_base + MX2_CAMERA_BUF_SIZE, |
| 448 | MX2_CAMERA_BUF_SIZE, | 447 | MX2_CAMERA_BUF_SIZE); |
| 449 | DMA_MEMORY_EXCLUSIVE); | ||
| 450 | } | 448 | } |
| 451 | 449 | ||
| 452 | /* DMA deinterlace */ | 450 | /* DMA deinterlace */ |
| @@ -465,8 +463,7 @@ static void __init visstrim_deinterlace_init(void) | |||
| 465 | dma_declare_coherent_memory(&pdev->dev, | 463 | dma_declare_coherent_memory(&pdev->dev, |
| 466 | mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE, | 464 | mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE, |
| 467 | mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE, | 465 | mx2_camera_base + 2 * MX2_CAMERA_BUF_SIZE, |
| 468 | MX2_CAMERA_BUF_SIZE, | 466 | MX2_CAMERA_BUF_SIZE); |
| 469 | DMA_MEMORY_EXCLUSIVE); | ||
| 470 | } | 467 | } |
| 471 | 468 | ||
| 472 | /* Emma-PrP for format conversion */ | 469 | /* Emma-PrP for format conversion */ |
| @@ -485,8 +482,7 @@ static void __init visstrim_emmaprp_init(void) | |||
| 485 | */ | 482 | */ |
| 486 | ret = dma_declare_coherent_memory(&pdev->dev, | 483 | ret = dma_declare_coherent_memory(&pdev->dev, |
| 487 | mx2_camera_base, mx2_camera_base, | 484 | mx2_camera_base, mx2_camera_base, |
| 488 | MX2_CAMERA_BUF_SIZE, | 485 | MX2_CAMERA_BUF_SIZE); |
| 489 | DMA_MEMORY_EXCLUSIVE); | ||
| 490 | if (ret) | 486 | if (ret) |
| 491 | pr_err("Failed to declare memory for emmaprp\n"); | 487 | pr_err("Failed to declare memory for emmaprp\n"); |
| 492 | } | 488 | } |
diff --git a/arch/arm/mach-imx/mach-imx7ulp.c b/arch/arm/mach-imx/mach-imx7ulp.c index 33937ebf66b5..11ac71aaf965 100644 --- a/arch/arm/mach-imx/mach-imx7ulp.c +++ b/arch/arm/mach-imx/mach-imx7ulp.c | |||
| @@ -6,17 +6,57 @@ | |||
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | #include <linux/irqchip.h> | 8 | #include <linux/irqchip.h> |
| 9 | #include <linux/mfd/syscon.h> | ||
| 9 | #include <linux/of_platform.h> | 10 | #include <linux/of_platform.h> |
| 11 | #include <linux/regmap.h> | ||
| 10 | #include <asm/mach/arch.h> | 12 | #include <asm/mach/arch.h> |
| 11 | 13 | ||
| 12 | #include "common.h" | 14 | #include "common.h" |
| 15 | #include "cpuidle.h" | ||
| 13 | #include "hardware.h" | 16 | #include "hardware.h" |
| 14 | 17 | ||
| 18 | #define SIM_JTAG_ID_REG 0x8c | ||
| 19 | |||
| 20 | static void __init imx7ulp_set_revision(void) | ||
| 21 | { | ||
| 22 | struct regmap *sim; | ||
| 23 | u32 revision; | ||
| 24 | |||
| 25 | sim = syscon_regmap_lookup_by_compatible("fsl,imx7ulp-sim"); | ||
| 26 | if (IS_ERR(sim)) { | ||
| 27 | pr_warn("failed to find fsl,imx7ulp-sim regmap!\n"); | ||
| 28 | return; | ||
| 29 | } | ||
| 30 | |||
| 31 | if (regmap_read(sim, SIM_JTAG_ID_REG, &revision)) { | ||
| 32 | pr_warn("failed to read sim regmap!\n"); | ||
| 33 | return; | ||
| 34 | } | ||
| 35 | |||
| 36 | /* | ||
| 37 | * bit[31:28] of JTAG_ID register defines revision as below from B0: | ||
| 38 | * 0001 B0 | ||
| 39 | * 0010 B1 | ||
| 40 | */ | ||
| 41 | switch (revision >> 28) { | ||
| 42 | case 1: | ||
| 43 | imx_set_soc_revision(IMX_CHIP_REVISION_2_0); | ||
| 44 | break; | ||
| 45 | case 2: | ||
| 46 | imx_set_soc_revision(IMX_CHIP_REVISION_2_1); | ||
| 47 | break; | ||
| 48 | default: | ||
| 49 | imx_set_soc_revision(IMX_CHIP_REVISION_1_0); | ||
| 50 | break; | ||
| 51 | } | ||
| 52 | } | ||
| 53 | |||
| 15 | static void __init imx7ulp_init_machine(void) | 54 | static void __init imx7ulp_init_machine(void) |
| 16 | { | 55 | { |
| 17 | imx7ulp_pm_init(); | 56 | imx7ulp_pm_init(); |
| 18 | 57 | ||
| 19 | mxc_set_cpu_type(MXC_CPU_IMX7ULP); | 58 | mxc_set_cpu_type(MXC_CPU_IMX7ULP); |
| 59 | imx7ulp_set_revision(); | ||
| 20 | of_platform_default_populate(NULL, NULL, imx_soc_device_init()); | 60 | of_platform_default_populate(NULL, NULL, imx_soc_device_init()); |
| 21 | } | 61 | } |
| 22 | 62 | ||
| @@ -25,7 +65,13 @@ static const char *const imx7ulp_dt_compat[] __initconst = { | |||
| 25 | NULL, | 65 | NULL, |
| 26 | }; | 66 | }; |
| 27 | 67 | ||
| 68 | static void __init imx7ulp_init_late(void) | ||
| 69 | { | ||
| 70 | imx7ulp_cpuidle_init(); | ||
| 71 | } | ||
| 72 | |||
| 28 | DT_MACHINE_START(IMX7ulp, "Freescale i.MX7ULP (Device Tree)") | 73 | DT_MACHINE_START(IMX7ulp, "Freescale i.MX7ULP (Device Tree)") |
| 29 | .init_machine = imx7ulp_init_machine, | 74 | .init_machine = imx7ulp_init_machine, |
| 30 | .dt_compat = imx7ulp_dt_compat, | 75 | .dt_compat = imx7ulp_dt_compat, |
| 76 | .init_late = imx7ulp_init_late, | ||
| 31 | MACHINE_END | 77 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c index 2e1e540f2e5a..d278fb672d40 100644 --- a/arch/arm/mach-imx/mach-mx21ads.c +++ b/arch/arm/mach-imx/mach-mx21ads.c | |||
| @@ -205,7 +205,6 @@ static struct regulator_init_data mx21ads_lcd_regulator_init_data = { | |||
| 205 | static struct fixed_voltage_config mx21ads_lcd_regulator_pdata = { | 205 | static struct fixed_voltage_config mx21ads_lcd_regulator_pdata = { |
| 206 | .supply_name = "LCD", | 206 | .supply_name = "LCD", |
| 207 | .microvolts = 3300000, | 207 | .microvolts = 3300000, |
| 208 | .enable_high = 1, | ||
| 209 | .init_data = &mx21ads_lcd_regulator_init_data, | 208 | .init_data = &mx21ads_lcd_regulator_init_data, |
| 210 | }; | 209 | }; |
| 211 | 210 | ||
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index f5e04047ed13..6dd7f57c332f 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c | |||
| @@ -237,7 +237,7 @@ static struct fixed_voltage_config mx27ads_lcd_regulator_pdata = { | |||
| 237 | static struct gpiod_lookup_table mx27ads_lcd_regulator_gpiod_table = { | 237 | static struct gpiod_lookup_table mx27ads_lcd_regulator_gpiod_table = { |
| 238 | .dev_id = "reg-fixed-voltage.0", /* Let's hope ID 0 is what we get */ | 238 | .dev_id = "reg-fixed-voltage.0", /* Let's hope ID 0 is what we get */ |
| 239 | .table = { | 239 | .table = { |
| 240 | GPIO_LOOKUP("LCD", 0, NULL, GPIO_ACTIVE_HIGH), | 240 | GPIO_LOOKUP("LCD", 0, NULL, GPIO_ACTIVE_LOW), |
| 241 | { }, | 241 | { }, |
| 242 | }, | 242 | }, |
| 243 | }; | 243 | }; |
diff --git a/arch/arm/mach-imx/mach-mx31moboard.c b/arch/arm/mach-imx/mach-mx31moboard.c index 643a3d749703..fe50f4cf00a7 100644 --- a/arch/arm/mach-imx/mach-mx31moboard.c +++ b/arch/arm/mach-imx/mach-mx31moboard.c | |||
| @@ -475,8 +475,7 @@ static int __init mx31moboard_init_cam(void) | |||
| 475 | 475 | ||
| 476 | ret = dma_declare_coherent_memory(&pdev->dev, | 476 | ret = dma_declare_coherent_memory(&pdev->dev, |
| 477 | mx3_camera_base, mx3_camera_base, | 477 | mx3_camera_base, mx3_camera_base, |
| 478 | MX3_CAMERA_BUF_SIZE, | 478 | MX3_CAMERA_BUF_SIZE); |
| 479 | DMA_MEMORY_EXCLUSIVE); | ||
| 480 | if (ret) | 479 | if (ret) |
| 481 | goto err; | 480 | goto err; |
| 482 | 481 | ||
diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index e49e06834516..fce4b426c379 100644 --- a/arch/arm/mach-imx/mmdc.c +++ b/arch/arm/mach-imx/mmdc.c | |||
| @@ -294,13 +294,7 @@ static int mmdc_pmu_event_init(struct perf_event *event) | |||
| 294 | return -EOPNOTSUPP; | 294 | return -EOPNOTSUPP; |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | if (event->attr.exclude_user || | 297 | if (event->attr.sample_period) |
| 298 | event->attr.exclude_kernel || | ||
| 299 | event->attr.exclude_hv || | ||
| 300 | event->attr.exclude_idle || | ||
| 301 | event->attr.exclude_host || | ||
| 302 | event->attr.exclude_guest || | ||
| 303 | event->attr.sample_period) | ||
| 304 | return -EINVAL; | 298 | return -EINVAL; |
| 305 | 299 | ||
| 306 | if (cfg < 0 || cfg >= MMDC_NUM_COUNTERS) | 300 | if (cfg < 0 || cfg >= MMDC_NUM_COUNTERS) |
| @@ -456,6 +450,7 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc, | |||
| 456 | .start = mmdc_pmu_event_start, | 450 | .start = mmdc_pmu_event_start, |
| 457 | .stop = mmdc_pmu_event_stop, | 451 | .stop = mmdc_pmu_event_stop, |
| 458 | .read = mmdc_pmu_event_update, | 452 | .read = mmdc_pmu_event_update, |
| 453 | .capabilities = PERF_PMU_CAP_NO_EXCLUDE, | ||
| 459 | }, | 454 | }, |
| 460 | .mmdc_base = mmdc_base, | 455 | .mmdc_base = mmdc_base, |
| 461 | .dev = dev, | 456 | .dev = dev, |
diff --git a/arch/arm/mach-imx/pm-imx7ulp.c b/arch/arm/mach-imx/pm-imx7ulp.c index cf6a380c2b8d..7b2f7387e662 100644 --- a/arch/arm/mach-imx/pm-imx7ulp.c +++ b/arch/arm/mach-imx/pm-imx7ulp.c | |||
| @@ -9,21 +9,60 @@ | |||
| 9 | #include <linux/of.h> | 9 | #include <linux/of.h> |
| 10 | #include <linux/of_address.h> | 10 | #include <linux/of_address.h> |
| 11 | 11 | ||
| 12 | #include "common.h" | ||
| 13 | |||
| 12 | #define SMC_PMCTRL 0x10 | 14 | #define SMC_PMCTRL 0x10 |
| 13 | #define BP_PMCTRL_PSTOPO 16 | 15 | #define BP_PMCTRL_PSTOPO 16 |
| 14 | #define PSTOPO_PSTOP3 0x3 | 16 | #define PSTOPO_PSTOP3 0x3 |
| 17 | #define PSTOPO_PSTOP2 0x2 | ||
| 18 | #define PSTOPO_PSTOP1 0x1 | ||
| 19 | #define BP_PMCTRL_RUNM 8 | ||
| 20 | #define RUNM_RUN 0 | ||
| 21 | #define BP_PMCTRL_STOPM 0 | ||
| 22 | #define STOPM_STOP 0 | ||
| 23 | |||
| 24 | #define BM_PMCTRL_PSTOPO (3 << BP_PMCTRL_PSTOPO) | ||
| 25 | #define BM_PMCTRL_RUNM (3 << BP_PMCTRL_RUNM) | ||
| 26 | #define BM_PMCTRL_STOPM (7 << BP_PMCTRL_STOPM) | ||
| 27 | |||
| 28 | static void __iomem *smc1_base; | ||
| 29 | |||
| 30 | int imx7ulp_set_lpm(enum ulp_cpu_pwr_mode mode) | ||
| 31 | { | ||
| 32 | u32 val = readl_relaxed(smc1_base + SMC_PMCTRL); | ||
| 33 | |||
| 34 | /* clear all */ | ||
| 35 | val &= ~(BM_PMCTRL_RUNM | BM_PMCTRL_STOPM | BM_PMCTRL_PSTOPO); | ||
| 36 | |||
| 37 | switch (mode) { | ||
| 38 | case ULP_PM_RUN: | ||
| 39 | /* system/bus clock enabled */ | ||
| 40 | val |= PSTOPO_PSTOP3 << BP_PMCTRL_PSTOPO; | ||
| 41 | break; | ||
| 42 | case ULP_PM_WAIT: | ||
| 43 | /* system clock disabled, bus clock enabled */ | ||
| 44 | val |= PSTOPO_PSTOP2 << BP_PMCTRL_PSTOPO; | ||
| 45 | break; | ||
| 46 | case ULP_PM_STOP: | ||
| 47 | /* system/bus clock disabled */ | ||
| 48 | val |= PSTOPO_PSTOP1 << BP_PMCTRL_PSTOPO; | ||
| 49 | break; | ||
| 50 | default: | ||
| 51 | return -EINVAL; | ||
| 52 | } | ||
| 53 | |||
| 54 | writel_relaxed(val, smc1_base + SMC_PMCTRL); | ||
| 55 | |||
| 56 | return 0; | ||
| 57 | } | ||
| 15 | 58 | ||
| 16 | void __init imx7ulp_pm_init(void) | 59 | void __init imx7ulp_pm_init(void) |
| 17 | { | 60 | { |
| 18 | struct device_node *np; | 61 | struct device_node *np; |
| 19 | void __iomem *smc1_base; | ||
| 20 | 62 | ||
| 21 | np = of_find_compatible_node(NULL, NULL, "fsl,imx7ulp-smc1"); | 63 | np = of_find_compatible_node(NULL, NULL, "fsl,imx7ulp-smc1"); |
| 22 | smc1_base = of_iomap(np, 0); | 64 | smc1_base = of_iomap(np, 0); |
| 23 | WARN_ON(!smc1_base); | 65 | WARN_ON(!smc1_base); |
| 24 | 66 | ||
| 25 | /* Partial Stop mode 3 with system/bus clock enabled */ | 67 | imx7ulp_set_lpm(ULP_PM_RUN); |
| 26 | writel_relaxed(PSTOPO_PSTOP3 << BP_PMCTRL_PSTOPO, | ||
| 27 | smc1_base + SMC_PMCTRL); | ||
| 28 | iounmap(smc1_base); | ||
| 29 | } | 68 | } |
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c index a109f6482413..8dfad012dfae 100644 --- a/arch/arm/mach-integrator/impd1.c +++ b/arch/arm/mach-integrator/impd1.c | |||
| @@ -390,10 +390,14 @@ static int __ref impd1_probe(struct lm_device *dev) | |||
| 390 | char *mmciname; | 390 | char *mmciname; |
| 391 | 391 | ||
| 392 | lookup = devm_kzalloc(&dev->dev, | 392 | lookup = devm_kzalloc(&dev->dev, |
| 393 | sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup), | 393 | struct_size(lookup, table, 3), |
| 394 | GFP_KERNEL); | 394 | GFP_KERNEL); |
| 395 | chipname = devm_kstrdup(&dev->dev, devname, GFP_KERNEL); | 395 | chipname = devm_kstrdup(&dev->dev, devname, GFP_KERNEL); |
| 396 | mmciname = kasprintf(GFP_KERNEL, "lm%x:00700", dev->id); | 396 | mmciname = devm_kasprintf(&dev->dev, GFP_KERNEL, |
| 397 | "lm%x:00700", dev->id); | ||
| 398 | if (!lookup || !chipname || !mmciname) | ||
| 399 | return -ENOMEM; | ||
| 400 | |||
| 397 | lookup->dev_id = mmciname; | 401 | lookup->dev_id = mmciname; |
| 398 | /* | 402 | /* |
| 399 | * Offsets on GPIO block 1: | 403 | * Offsets on GPIO block 1: |
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c index 3b73813c6b04..23e8c93515d4 100644 --- a/arch/arm/mach-iop32x/n2100.c +++ b/arch/arm/mach-iop32x/n2100.c | |||
| @@ -75,8 +75,7 @@ void __init n2100_map_io(void) | |||
| 75 | /* | 75 | /* |
| 76 | * N2100 PCI. | 76 | * N2100 PCI. |
| 77 | */ | 77 | */ |
| 78 | static int __init | 78 | static int n2100_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
| 79 | n2100_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | ||
| 80 | { | 79 | { |
| 81 | int irq; | 80 | int irq; |
| 82 | 81 | ||
diff --git a/arch/arm/mach-ks8695/include/mach/entry-macro.S b/arch/arm/mach-ks8695/include/mach/entry-macro.S index 8315b34f32ff..7ff812cb010b 100644 --- a/arch/arm/mach-ks8695/include/mach/entry-macro.S +++ b/arch/arm/mach-ks8695/include/mach/entry-macro.S | |||
| @@ -42,6 +42,6 @@ | |||
| 42 | moveq \irqstat, \irqstat, lsr #2 | 42 | moveq \irqstat, \irqstat, lsr #2 |
| 43 | addeq \irqnr, \irqnr, #2 | 43 | addeq \irqnr, \irqnr, #2 |
| 44 | tst \irqstat, #0x01 | 44 | tst \irqstat, #0x01 |
| 45 | addeqs \irqnr, \irqnr, #1 | 45 | addseq \irqnr, \irqnr, #1 |
| 46 | 1001: | 46 | 1001: |
| 47 | .endm | 47 | .endm |
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c index e48cc06c2aec..b3be60a8e467 100644 --- a/arch/arm/mach-lpc32xx/phy3250.c +++ b/arch/arm/mach-lpc32xx/phy3250.c | |||
| @@ -45,73 +45,6 @@ | |||
| 45 | #include <mach/board.h> | 45 | #include <mach/board.h> |
| 46 | #include "common.h" | 46 | #include "common.h" |
| 47 | 47 | ||
| 48 | /* | ||
| 49 | * AMBA LCD controller | ||
| 50 | */ | ||
| 51 | static struct clcd_panel conn_lcd_panel = { | ||
| 52 | .mode = { | ||
| 53 | .name = "QVGA portrait", | ||
| 54 | .refresh = 60, | ||
| 55 | .xres = 240, | ||
| 56 | .yres = 320, | ||
| 57 | .pixclock = 191828, | ||
| 58 | .left_margin = 22, | ||
| 59 | .right_margin = 11, | ||
| 60 | .upper_margin = 2, | ||
| 61 | .lower_margin = 1, | ||
| 62 | .hsync_len = 5, | ||
| 63 | .vsync_len = 2, | ||
| 64 | .sync = 0, | ||
| 65 | .vmode = FB_VMODE_NONINTERLACED, | ||
| 66 | }, | ||
| 67 | .width = -1, | ||
| 68 | .height = -1, | ||
| 69 | .tim2 = (TIM2_IVS | TIM2_IHS), | ||
| 70 | .cntl = (CNTL_BGR | CNTL_LCDTFT | CNTL_LCDVCOMP(1) | | ||
| 71 | CNTL_LCDBPP16_565), | ||
| 72 | .bpp = 16, | ||
| 73 | }; | ||
| 74 | #define PANEL_SIZE (3 * SZ_64K) | ||
| 75 | |||
| 76 | static int lpc32xx_clcd_setup(struct clcd_fb *fb) | ||
| 77 | { | ||
| 78 | dma_addr_t dma; | ||
| 79 | |||
| 80 | fb->fb.screen_base = dma_alloc_wc(&fb->dev->dev, PANEL_SIZE, &dma, | ||
| 81 | GFP_KERNEL); | ||
| 82 | if (!fb->fb.screen_base) { | ||
| 83 | printk(KERN_ERR "CLCD: unable to map framebuffer\n"); | ||
| 84 | return -ENOMEM; | ||
| 85 | } | ||
| 86 | |||
| 87 | fb->fb.fix.smem_start = dma; | ||
| 88 | fb->fb.fix.smem_len = PANEL_SIZE; | ||
| 89 | fb->panel = &conn_lcd_panel; | ||
| 90 | |||
| 91 | return 0; | ||
| 92 | } | ||
| 93 | |||
| 94 | static int lpc32xx_clcd_mmap(struct clcd_fb *fb, struct vm_area_struct *vma) | ||
| 95 | { | ||
| 96 | return dma_mmap_wc(&fb->dev->dev, vma, fb->fb.screen_base, | ||
| 97 | fb->fb.fix.smem_start, fb->fb.fix.smem_len); | ||
| 98 | } | ||
| 99 | |||
| 100 | static void lpc32xx_clcd_remove(struct clcd_fb *fb) | ||
| 101 | { | ||
| 102 | dma_free_wc(&fb->dev->dev, fb->fb.fix.smem_len, fb->fb.screen_base, | ||
| 103 | fb->fb.fix.smem_start); | ||
| 104 | } | ||
| 105 | |||
| 106 | static struct clcd_board lpc32xx_clcd_data = { | ||
| 107 | .name = "Phytec LCD", | ||
| 108 | .check = clcdfb_check, | ||
| 109 | .decode = clcdfb_decode, | ||
| 110 | .setup = lpc32xx_clcd_setup, | ||
| 111 | .mmap = lpc32xx_clcd_mmap, | ||
| 112 | .remove = lpc32xx_clcd_remove, | ||
| 113 | }; | ||
| 114 | |||
| 115 | static struct pl08x_channel_data pl08x_slave_channels[] = { | 48 | static struct pl08x_channel_data pl08x_slave_channels[] = { |
| 116 | { | 49 | { |
| 117 | .bus_id = "nand-slc", | 50 | .bus_id = "nand-slc", |
| @@ -148,11 +81,6 @@ static struct pl08x_platform_data pl08x_pd = { | |||
| 148 | .mem_buses = PL08X_AHB1, | 81 | .mem_buses = PL08X_AHB1, |
| 149 | }; | 82 | }; |
| 150 | 83 | ||
| 151 | static struct mmci_platform_data lpc32xx_mmci_data = { | ||
| 152 | .ocr_mask = MMC_VDD_30_31 | MMC_VDD_31_32 | | ||
| 153 | MMC_VDD_32_33 | MMC_VDD_33_34, | ||
| 154 | }; | ||
| 155 | |||
| 156 | static struct lpc32xx_slc_platform_data lpc32xx_slc_data = { | 84 | static struct lpc32xx_slc_platform_data lpc32xx_slc_data = { |
| 157 | .dma_filter = pl08x_filter_id, | 85 | .dma_filter = pl08x_filter_id, |
| 158 | }; | 86 | }; |
| @@ -164,10 +92,7 @@ static struct lpc32xx_mlc_platform_data lpc32xx_mlc_data = { | |||
| 164 | static const struct of_dev_auxdata lpc32xx_auxdata_lookup[] __initconst = { | 92 | static const struct of_dev_auxdata lpc32xx_auxdata_lookup[] __initconst = { |
| 165 | OF_DEV_AUXDATA("arm,pl022", 0x20084000, "dev:ssp0", NULL), | 93 | OF_DEV_AUXDATA("arm,pl022", 0x20084000, "dev:ssp0", NULL), |
| 166 | OF_DEV_AUXDATA("arm,pl022", 0x2008C000, "dev:ssp1", NULL), | 94 | OF_DEV_AUXDATA("arm,pl022", 0x2008C000, "dev:ssp1", NULL), |
| 167 | OF_DEV_AUXDATA("arm,pl110", 0x31040000, "dev:clcd", &lpc32xx_clcd_data), | ||
| 168 | OF_DEV_AUXDATA("arm,pl080", 0x31000000, "pl08xdmac", &pl08x_pd), | 95 | OF_DEV_AUXDATA("arm,pl080", 0x31000000, "pl08xdmac", &pl08x_pd), |
| 169 | OF_DEV_AUXDATA("arm,pl18x", 0x20098000, "20098000.sd", | ||
| 170 | &lpc32xx_mmci_data), | ||
| 171 | OF_DEV_AUXDATA("nxp,lpc3220-slc", 0x20020000, "20020000.flash", | 96 | OF_DEV_AUXDATA("nxp,lpc3220-slc", 0x20020000, "20020000.flash", |
| 172 | &lpc32xx_slc_data), | 97 | &lpc32xx_slc_data), |
| 173 | OF_DEV_AUXDATA("nxp,lpc3220-mlc", 0x200a8000, "200a8000.flash", | 98 | OF_DEV_AUXDATA("nxp,lpc3220-mlc", 0x200a8000, "200a8000.flash", |
| @@ -177,15 +102,6 @@ static const struct of_dev_auxdata lpc32xx_auxdata_lookup[] __initconst = { | |||
| 177 | 102 | ||
| 178 | static void __init lpc3250_machine_init(void) | 103 | static void __init lpc3250_machine_init(void) |
| 179 | { | 104 | { |
| 180 | u32 tmp; | ||
| 181 | |||
| 182 | /* Setup LCD muxing to RGB565 */ | ||
| 183 | tmp = __raw_readl(LPC32XX_CLKPWR_LCDCLK_CTRL) & | ||
| 184 | ~(LPC32XX_CLKPWR_LCDCTRL_LCDTYPE_MSK | | ||
| 185 | LPC32XX_CLKPWR_LCDCTRL_PSCALE_MSK); | ||
| 186 | tmp |= LPC32XX_CLKPWR_LCDCTRL_LCDTYPE_TFT16; | ||
| 187 | __raw_writel(tmp, LPC32XX_CLKPWR_LCDCLK_CTRL); | ||
| 188 | |||
| 189 | lpc32xx_serial_init(); | 105 | lpc32xx_serial_init(); |
| 190 | 106 | ||
| 191 | /* Test clock needed for UDA1380 initial init */ | 107 | /* Test clock needed for UDA1380 initial init */ |
diff --git a/arch/arm/mach-lpc32xx/pm.c b/arch/arm/mach-lpc32xx/pm.c index 62471570d586..32bca351a73b 100644 --- a/arch/arm/mach-lpc32xx/pm.c +++ b/arch/arm/mach-lpc32xx/pm.c | |||
| @@ -86,17 +86,10 @@ static int lpc32xx_pm_enter(suspend_state_t state) | |||
| 86 | void *iram_swap_area; | 86 | void *iram_swap_area; |
| 87 | 87 | ||
| 88 | /* Allocate some space for temporary IRAM storage */ | 88 | /* Allocate some space for temporary IRAM storage */ |
| 89 | iram_swap_area = kmalloc(lpc32xx_sys_suspend_sz, GFP_KERNEL); | 89 | iram_swap_area = kmemdup((void *)TEMP_IRAM_AREA, |
| 90 | if (!iram_swap_area) { | 90 | lpc32xx_sys_suspend_sz, GFP_KERNEL); |
| 91 | printk(KERN_ERR | 91 | if (!iram_swap_area) |
| 92 | "PM Suspend: cannot allocate memory to save portion " | ||
| 93 | "of SRAM\n"); | ||
| 94 | return -ENOMEM; | 92 | return -ENOMEM; |
| 95 | } | ||
| 96 | |||
| 97 | /* Backup a small area of IRAM used for the suspend code */ | ||
| 98 | memcpy(iram_swap_area, (void *) TEMP_IRAM_AREA, | ||
| 99 | lpc32xx_sys_suspend_sz); | ||
| 100 | 93 | ||
| 101 | /* | 94 | /* |
| 102 | * Copy code to suspend system into IRAM. The suspend code | 95 | * Copy code to suspend system into IRAM. The suspend code |
diff --git a/arch/arm/mach-mediatek/Kconfig b/arch/arm/mach-mediatek/Kconfig index 91cc461f7b04..11ed264f0731 100644 --- a/arch/arm/mach-mediatek/Kconfig +++ b/arch/arm/mach-mediatek/Kconfig | |||
| @@ -26,6 +26,10 @@ config MACH_MT7623 | |||
| 26 | bool "MediaTek MT7623 SoCs support" | 26 | bool "MediaTek MT7623 SoCs support" |
| 27 | default ARCH_MEDIATEK | 27 | default ARCH_MEDIATEK |
| 28 | 28 | ||
| 29 | config MACH_MT7629 | ||
| 30 | bool "MediaTek MT7629 SoCs support" | ||
| 31 | default ARCH_MEDIATEK | ||
| 32 | |||
| 29 | config MACH_MT8127 | 33 | config MACH_MT8127 |
| 30 | bool "MediaTek MT8127 SoCs support" | 34 | bool "MediaTek MT8127 SoCs support" |
| 31 | default ARCH_MEDIATEK | 35 | default ARCH_MEDIATEK |
diff --git a/arch/arm/mach-mediatek/mediatek.c b/arch/arm/mach-mediatek/mediatek.c index 6910b4e0d913..b6a81ba1ce32 100644 --- a/arch/arm/mach-mediatek/mediatek.c +++ b/arch/arm/mach-mediatek/mediatek.c | |||
| @@ -30,7 +30,6 @@ static void __init mediatek_timer_init(void) | |||
| 30 | 30 | ||
| 31 | if (of_machine_is_compatible("mediatek,mt6589") || | 31 | if (of_machine_is_compatible("mediatek,mt6589") || |
| 32 | of_machine_is_compatible("mediatek,mt7623") || | 32 | of_machine_is_compatible("mediatek,mt7623") || |
| 33 | of_machine_is_compatible("mediatek,mt7623a") || | ||
| 34 | of_machine_is_compatible("mediatek,mt8135") || | 33 | of_machine_is_compatible("mediatek,mt8135") || |
| 35 | of_machine_is_compatible("mediatek,mt8127")) { | 34 | of_machine_is_compatible("mediatek,mt8127")) { |
| 36 | /* turn on GPT6 which ungates arch timer clocks */ | 35 | /* turn on GPT6 which ungates arch timer clocks */ |
| @@ -50,7 +49,7 @@ static const char * const mediatek_board_dt_compat[] = { | |||
| 50 | "mediatek,mt6589", | 49 | "mediatek,mt6589", |
| 51 | "mediatek,mt6592", | 50 | "mediatek,mt6592", |
| 52 | "mediatek,mt7623", | 51 | "mediatek,mt7623", |
| 53 | "mediatek,mt7623a", | 52 | "mediatek,mt7629", |
| 54 | "mediatek,mt8127", | 53 | "mediatek,mt8127", |
| 55 | "mediatek,mt8135", | 54 | "mediatek,mt8135", |
| 56 | NULL, | 55 | NULL, |
diff --git a/arch/arm/mach-mediatek/platsmp.c b/arch/arm/mach-mediatek/platsmp.c index 6882ff07aaa6..c9d7c0458452 100644 --- a/arch/arm/mach-mediatek/platsmp.c +++ b/arch/arm/mach-mediatek/platsmp.c | |||
| @@ -60,7 +60,7 @@ static const struct of_device_id mtk_tz_smp_boot_infos[] __initconst = { | |||
| 60 | static const struct of_device_id mtk_smp_boot_infos[] __initconst = { | 60 | static const struct of_device_id mtk_smp_boot_infos[] __initconst = { |
| 61 | { .compatible = "mediatek,mt6589", .data = &mtk_mt6589_boot }, | 61 | { .compatible = "mediatek,mt6589", .data = &mtk_mt6589_boot }, |
| 62 | { .compatible = "mediatek,mt7623", .data = &mtk_mt7623_boot }, | 62 | { .compatible = "mediatek,mt7623", .data = &mtk_mt7623_boot }, |
| 63 | { .compatible = "mediatek,mt7623a", .data = &mtk_mt7623_boot }, | 63 | { .compatible = "mediatek,mt7629", .data = &mtk_mt7623_boot }, |
| 64 | {}, | 64 | {}, |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
diff --git a/arch/arm/mach-meson/Kconfig b/arch/arm/mach-meson/Kconfig index b16831697183..15e9cb75738e 100644 --- a/arch/arm/mach-meson/Kconfig +++ b/arch/arm/mach-meson/Kconfig | |||
| @@ -9,7 +9,6 @@ menuconfig ARCH_MESON | |||
| 9 | select PINCTRL | 9 | select PINCTRL |
| 10 | select PINCTRL_MESON | 10 | select PINCTRL_MESON |
| 11 | select COMMON_CLK | 11 | select COMMON_CLK |
| 12 | select COMMON_CLK_AMLOGIC | ||
| 13 | select HAVE_ARM_SCU if SMP | 12 | select HAVE_ARM_SCU if SMP |
| 14 | select HAVE_ARM_TWD if SMP | 13 | select HAVE_ARM_TWD if SMP |
| 15 | 14 | ||
diff --git a/arch/arm/mach-milbeaut/Kconfig b/arch/arm/mach-milbeaut/Kconfig new file mode 100644 index 000000000000..6a576fd8521e --- /dev/null +++ b/arch/arm/mach-milbeaut/Kconfig | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | # SPDX-License-Identifier: GPL-2.0 | ||
| 2 | menuconfig ARCH_MILBEAUT | ||
| 3 | bool "Socionext Milbeaut SoCs" | ||
| 4 | depends on ARCH_MULTI_V7 | ||
| 5 | select ARM_GIC | ||
| 6 | help | ||
| 7 | This enables support for Socionext Milbeaut SoCs | ||
| 8 | |||
| 9 | if ARCH_MILBEAUT | ||
| 10 | |||
| 11 | config ARCH_MILBEAUT_M10V | ||
| 12 | bool "Milbeaut SC2000/M10V platform" | ||
| 13 | select ARM_ARCH_TIMER | ||
| 14 | select MILBEAUT_TIMER | ||
| 15 | select PINCTRL | ||
| 16 | select PINCTRL_MILBEAUT | ||
| 17 | help | ||
| 18 | Support for Socionext's MILBEAUT M10V based systems | ||
| 19 | |||
| 20 | endif | ||
diff --git a/arch/arm/mach-milbeaut/Makefile b/arch/arm/mach-milbeaut/Makefile new file mode 100644 index 000000000000..ce5ea062047a --- /dev/null +++ b/arch/arm/mach-milbeaut/Makefile | |||
| @@ -0,0 +1 @@ | |||
| obj-$(CONFIG_SMP) += platsmp.o | |||
diff --git a/arch/arm/mach-milbeaut/platsmp.c b/arch/arm/mach-milbeaut/platsmp.c new file mode 100644 index 000000000000..591543c81399 --- /dev/null +++ b/arch/arm/mach-milbeaut/platsmp.c | |||
| @@ -0,0 +1,143 @@ | |||
| 1 | // SPDX-License-Identifier: GPL-2.0 | ||
| 2 | /* | ||
| 3 | * Copyright: (C) 2018 Socionext Inc. | ||
| 4 | * Copyright: (C) 2015 Linaro Ltd. | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <linux/cpu_pm.h> | ||
| 8 | #include <linux/irqchip/arm-gic.h> | ||
| 9 | #include <linux/of_address.h> | ||
| 10 | #include <linux/suspend.h> | ||
| 11 | |||
| 12 | #include <asm/cacheflush.h> | ||
| 13 | #include <asm/cp15.h> | ||
| 14 | #include <asm/idmap.h> | ||
| 15 | #include <asm/smp_plat.h> | ||
| 16 | #include <asm/suspend.h> | ||
| 17 | |||
| 18 | #define M10V_MAX_CPU 4 | ||
| 19 | #define KERNEL_UNBOOT_FLAG 0x12345678 | ||
| 20 | |||
| 21 | static void __iomem *m10v_smp_base; | ||
| 22 | |||
| 23 | static int m10v_boot_secondary(unsigned int l_cpu, struct task_struct *idle) | ||
| 24 | { | ||
| 25 | unsigned int mpidr, cpu, cluster; | ||
| 26 | |||
| 27 | if (!m10v_smp_base) | ||
| 28 | return -ENXIO; | ||
| 29 | |||
| 30 | mpidr = cpu_logical_map(l_cpu); | ||
| 31 | cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); | ||
| 32 | cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); | ||
| 33 | |||
| 34 | if (cpu >= M10V_MAX_CPU) | ||
| 35 | return -EINVAL; | ||
| 36 | |||
| 37 | pr_info("%s: cpu %u l_cpu %u cluster %u\n", | ||
| 38 | __func__, cpu, l_cpu, cluster); | ||
| 39 | |||
| 40 | writel(__pa_symbol(secondary_startup), m10v_smp_base + cpu * 4); | ||
| 41 | arch_send_wakeup_ipi_mask(cpumask_of(l_cpu)); | ||
| 42 | |||
| 43 | return 0; | ||
| 44 | } | ||
| 45 | |||
| 46 | static void m10v_smp_init(unsigned int max_cpus) | ||
| 47 | { | ||
| 48 | unsigned int mpidr, cpu, cluster; | ||
| 49 | struct device_node *np; | ||
| 50 | |||
| 51 | np = of_find_compatible_node(NULL, NULL, "socionext,milbeaut-smp-sram"); | ||
| 52 | if (!np) | ||
| 53 | return; | ||
| 54 | |||
| 55 | m10v_smp_base = of_iomap(np, 0); | ||
| 56 | if (!m10v_smp_base) | ||
| 57 | return; | ||
| 58 | |||
| 59 | mpidr = read_cpuid_mpidr(); | ||
| 60 | cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); | ||
| 61 | cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); | ||
| 62 | pr_info("MCPM boot on cpu_%u cluster_%u\n", cpu, cluster); | ||
| 63 | |||
| 64 | for (cpu = 0; cpu < M10V_MAX_CPU; cpu++) | ||
| 65 | writel(KERNEL_UNBOOT_FLAG, m10v_smp_base + cpu * 4); | ||
| 66 | } | ||
| 67 | |||
| 68 | static void m10v_cpu_die(unsigned int l_cpu) | ||
| 69 | { | ||
| 70 | gic_cpu_if_down(0); | ||
| 71 | v7_exit_coherency_flush(louis); | ||
| 72 | wfi(); | ||
| 73 | } | ||
| 74 | |||
| 75 | static int m10v_cpu_kill(unsigned int l_cpu) | ||
| 76 | { | ||
| 77 | unsigned int mpidr, cpu; | ||
| 78 | |||
| 79 | mpidr = cpu_logical_map(l_cpu); | ||
| 80 | cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); | ||
| 81 | |||
| 82 | writel(KERNEL_UNBOOT_FLAG, m10v_smp_base + cpu * 4); | ||
| 83 | |||
| 84 | return 1; | ||
| 85 | } | ||
| 86 | |||
| 87 | static struct smp_operations m10v_smp_ops __initdata = { | ||
| 88 | .smp_prepare_cpus = m10v_smp_init, | ||
| 89 | .smp_boot_secondary = m10v_boot_secondary, | ||
| 90 | .cpu_die = m10v_cpu_die, | ||
| 91 | .cpu_kill = m10v_cpu_kill, | ||
| 92 | }; | ||
| 93 | CPU_METHOD_OF_DECLARE(m10v_smp, "socionext,milbeaut-m10v-smp", &m10v_smp_ops); | ||
| 94 | |||
| 95 | static int m10v_pm_valid(suspend_state_t state) | ||
| 96 | { | ||
| 97 | return (state == PM_SUSPEND_STANDBY) || (state == PM_SUSPEND_MEM); | ||
| 98 | } | ||
| 99 | |||
| 100 | typedef void (*phys_reset_t)(unsigned long); | ||
| 101 | static phys_reset_t phys_reset; | ||
| 102 | |||
| 103 | static int m10v_die(unsigned long arg) | ||
| 104 | { | ||
| 105 | setup_mm_for_reboot(); | ||
| 106 | asm("wfi"); | ||
| 107 | /* Boot just like a secondary */ | ||
| 108 | phys_reset = (phys_reset_t)(unsigned long)virt_to_phys(cpu_reset); | ||
| 109 | phys_reset(virt_to_phys(cpu_resume)); | ||
| 110 | |||
| 111 | return 0; | ||
| 112 | } | ||
| 113 | |||
| 114 | static int m10v_pm_enter(suspend_state_t state) | ||
| 115 | { | ||
| 116 | switch (state) { | ||
| 117 | case PM_SUSPEND_STANDBY: | ||
| 118 | asm("wfi"); | ||
| 119 | break; | ||
| 120 | case PM_SUSPEND_MEM: | ||
| 121 | cpu_pm_enter(); | ||
| 122 | cpu_suspend(0, m10v_die); | ||
| 123 | cpu_pm_exit(); | ||
| 124 | break; | ||
| 125 | } | ||
| 126 | return 0; | ||
| 127 | } | ||
| 128 | |||
| 129 | static const struct platform_suspend_ops m10v_pm_ops = { | ||
| 130 | .valid = m10v_pm_valid, | ||
| 131 | .enter = m10v_pm_enter, | ||
| 132 | }; | ||
| 133 | |||
| 134 | struct clk *m10v_clclk_register(struct device *cpu_dev); | ||
| 135 | |||
| 136 | static int __init m10v_pm_init(void) | ||
| 137 | { | ||
| 138 | if (of_machine_is_compatible("socionext,milbeaut-evb")) | ||
| 139 | suspend_set_ops(&m10v_pm_ops); | ||
| 140 | |||
| 141 | return 0; | ||
| 142 | } | ||
| 143 | late_initcall(m10v_pm_init); | ||
diff --git a/arch/arm/mach-mmp/brownstone.c b/arch/arm/mach-mmp/brownstone.c index a04e249c654b..d2560fb1e835 100644 --- a/arch/arm/mach-mmp/brownstone.c +++ b/arch/arm/mach-mmp/brownstone.c | |||
| @@ -149,7 +149,6 @@ static struct regulator_init_data brownstone_v_5vp_data = { | |||
| 149 | static struct fixed_voltage_config brownstone_v_5vp = { | 149 | static struct fixed_voltage_config brownstone_v_5vp = { |
| 150 | .supply_name = "v_5vp", | 150 | .supply_name = "v_5vp", |
| 151 | .microvolts = 5000000, | 151 | .microvolts = 5000000, |
| 152 | .enable_high = 1, | ||
| 153 | .enabled_at_boot = 1, | 152 | .enabled_at_boot = 1, |
| 154 | .init_data = &brownstone_v_5vp_data, | 153 | .init_data = &brownstone_v_5vp_data, |
| 155 | }; | 154 | }; |
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index c4c0a8ea11e4..be30c3c061b4 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
| @@ -267,7 +267,6 @@ static struct fixed_voltage_config modem_nreset_config = { | |||
| 267 | .supply_name = "modem_nreset", | 267 | .supply_name = "modem_nreset", |
| 268 | .microvolts = 3300000, | 268 | .microvolts = 3300000, |
| 269 | .startup_delay = 25000, | 269 | .startup_delay = 25000, |
| 270 | .enable_high = 1, | ||
| 271 | .enabled_at_boot = 1, | 270 | .enabled_at_boot = 1, |
| 272 | .init_data = &modem_nreset_data, | 271 | .init_data = &modem_nreset_data, |
| 273 | }; | 272 | }; |
| @@ -533,7 +532,6 @@ static struct regulator_init_data keybrd_pwr_initdata = { | |||
| 533 | static struct fixed_voltage_config keybrd_pwr_config = { | 532 | static struct fixed_voltage_config keybrd_pwr_config = { |
| 534 | .supply_name = "keybrd_pwr", | 533 | .supply_name = "keybrd_pwr", |
| 535 | .microvolts = 5000000, | 534 | .microvolts = 5000000, |
| 536 | .enable_high = 1, | ||
| 537 | .init_data = &keybrd_pwr_initdata, | 535 | .init_data = &keybrd_pwr_initdata, |
| 538 | }; | 536 | }; |
| 539 | 537 | ||
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index eb41db78cd47..10848f573d37 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/clkdev.h> | 10 | #include <linux/clkdev.h> |
| 11 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
| 12 | #include <linux/gpio.h> | 12 | #include <linux/gpio.h> |
| 13 | #include <linux/gpio/machine.h> | ||
| 13 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
| 14 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 15 | #include <linux/mutex.h> | 16 | #include <linux/mutex.h> |
| @@ -25,7 +26,6 @@ | |||
| 25 | #include <linux/platform_data/keypad-omap.h> | 26 | #include <linux/platform_data/keypad-omap.h> |
| 26 | #include <linux/platform_data/lcd-mipid.h> | 27 | #include <linux/platform_data/lcd-mipid.h> |
| 27 | #include <linux/platform_data/gpio-omap.h> | 28 | #include <linux/platform_data/gpio-omap.h> |
| 28 | #include <linux/platform_data/i2c-cbus-gpio.h> | ||
| 29 | 29 | ||
| 30 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
| 31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
| @@ -217,18 +217,19 @@ static inline void nokia770_mmc_init(void) | |||
| 217 | #endif | 217 | #endif |
| 218 | 218 | ||
| 219 | #if IS_ENABLED(CONFIG_I2C_CBUS_GPIO) | 219 | #if IS_ENABLED(CONFIG_I2C_CBUS_GPIO) |
| 220 | static struct i2c_cbus_platform_data nokia770_cbus_data = { | 220 | static struct gpiod_lookup_table nokia770_cbus_gpio_table = { |
| 221 | .clk_gpio = OMAP_MPUIO(9), | 221 | .dev_id = "i2c-cbus-gpio.2", |
| 222 | .dat_gpio = OMAP_MPUIO(10), | 222 | .table = { |
| 223 | .sel_gpio = OMAP_MPUIO(11), | 223 | GPIO_LOOKUP_IDX("mpuio", 9, NULL, 0, 0), /* clk */ |
| 224 | GPIO_LOOKUP_IDX("mpuio", 10, NULL, 1, 0), /* dat */ | ||
| 225 | GPIO_LOOKUP_IDX("mpuio", 11, NULL, 2, 0), /* sel */ | ||
| 226 | { }, | ||
| 227 | }, | ||
| 224 | }; | 228 | }; |
| 225 | 229 | ||
| 226 | static struct platform_device nokia770_cbus_device = { | 230 | static struct platform_device nokia770_cbus_device = { |
| 227 | .name = "i2c-cbus-gpio", | 231 | .name = "i2c-cbus-gpio", |
| 228 | .id = 2, | 232 | .id = 2, |
| 229 | .dev = { | ||
| 230 | .platform_data = &nokia770_cbus_data, | ||
| 231 | }, | ||
| 232 | }; | 233 | }; |
| 233 | 234 | ||
| 234 | static struct i2c_board_info nokia770_i2c_board_info_2[] __initdata = { | 235 | static struct i2c_board_info nokia770_i2c_board_info_2[] __initdata = { |
| @@ -257,6 +258,7 @@ static void __init nokia770_cbus_init(void) | |||
| 257 | nokia770_i2c_board_info_2[1].irq = gpio_to_irq(tahvo_irq_gpio); | 258 | nokia770_i2c_board_info_2[1].irq = gpio_to_irq(tahvo_irq_gpio); |
| 258 | i2c_register_board_info(2, nokia770_i2c_board_info_2, | 259 | i2c_register_board_info(2, nokia770_i2c_board_info_2, |
| 259 | ARRAY_SIZE(nokia770_i2c_board_info_2)); | 260 | ARRAY_SIZE(nokia770_i2c_board_info_2)); |
| 261 | gpiod_add_lookup_table(&nokia770_cbus_gpio_table); | ||
| 260 | platform_device_register(&nokia770_cbus_device); | 262 | platform_device_register(&nokia770_cbus_device); |
| 261 | } | 263 | } |
| 262 | #else /* CONFIG_I2C_CBUS_GPIO */ | 264 | #else /* CONFIG_I2C_CBUS_GPIO */ |
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c index a8b291f00109..dae514c8276a 100644 --- a/arch/arm/mach-omap2/cpuidle44xx.c +++ b/arch/arm/mach-omap2/cpuidle44xx.c | |||
| @@ -152,6 +152,10 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev, | |||
| 152 | mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && | 152 | mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && |
| 153 | (cx->mpu_logic_state == PWRDM_POWER_OFF); | 153 | (cx->mpu_logic_state == PWRDM_POWER_OFF); |
| 154 | 154 | ||
| 155 | /* Enter broadcast mode for periodic timers */ | ||
| 156 | tick_broadcast_enable(); | ||
| 157 | |||
| 158 | /* Enter broadcast mode for one-shot timers */ | ||
| 155 | tick_broadcast_enter(); | 159 | tick_broadcast_enter(); |
| 156 | 160 | ||
| 157 | /* | 161 | /* |
| @@ -218,15 +222,6 @@ fail: | |||
| 218 | return index; | 222 | return index; |
| 219 | } | 223 | } |
| 220 | 224 | ||
| 221 | /* | ||
| 222 | * For each cpu, setup the broadcast timer because local timers | ||
| 223 | * stops for the states above C1. | ||
| 224 | */ | ||
| 225 | static void omap_setup_broadcast_timer(void *arg) | ||
| 226 | { | ||
| 227 | tick_broadcast_enable(); | ||
| 228 | } | ||
| 229 | |||
| 230 | static struct cpuidle_driver omap4_idle_driver = { | 225 | static struct cpuidle_driver omap4_idle_driver = { |
| 231 | .name = "omap4_idle", | 226 | .name = "omap4_idle", |
| 232 | .owner = THIS_MODULE, | 227 | .owner = THIS_MODULE, |
| @@ -319,8 +314,5 @@ int __init omap4_idle_init(void) | |||
| 319 | if (!cpu_clkdm[0] || !cpu_clkdm[1]) | 314 | if (!cpu_clkdm[0] || !cpu_clkdm[1]) |
| 320 | return -ENODEV; | 315 | return -ENODEV; |
| 321 | 316 | ||
| 322 | /* Configure the broadcast timer on each cpu */ | ||
| 323 | on_each_cpu(omap_setup_broadcast_timer, NULL, 1); | ||
| 324 | |||
| 325 | return cpuidle_register(idle_driver, cpu_online_mask); | 317 | return cpuidle_register(idle_driver, cpu_online_mask); |
| 326 | } | 318 | } |
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index f86b72d1d59e..1444b4b4bd9f 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
| @@ -83,6 +83,7 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | |||
| 83 | u32 enable_mask, enable_shift; | 83 | u32 enable_mask, enable_shift; |
| 84 | u32 pipd_mask, pipd_shift; | 84 | u32 pipd_mask, pipd_shift; |
| 85 | u32 reg; | 85 | u32 reg; |
| 86 | int ret; | ||
| 86 | 87 | ||
| 87 | if (dsi_id == 0) { | 88 | if (dsi_id == 0) { |
| 88 | enable_mask = OMAP4_DSI1_LANEENABLE_MASK; | 89 | enable_mask = OMAP4_DSI1_LANEENABLE_MASK; |
| @@ -98,7 +99,11 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | |||
| 98 | return -ENODEV; | 99 | return -ENODEV; |
| 99 | } | 100 | } |
| 100 | 101 | ||
| 101 | regmap_read(omap4_dsi_mux_syscon, OMAP4_DSIPHY_SYSCON_OFFSET, ®); | 102 | ret = regmap_read(omap4_dsi_mux_syscon, |
| 103 | OMAP4_DSIPHY_SYSCON_OFFSET, | ||
| 104 | ®); | ||
| 105 | if (ret) | ||
| 106 | return ret; | ||
| 102 | 107 | ||
| 103 | reg &= ~enable_mask; | 108 | reg &= ~enable_mask; |
| 104 | reg &= ~pipd_mask; | 109 | reg &= ~pipd_mask; |
diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c index fc5fb776a710..17558be4bf0a 100644 --- a/arch/arm/mach-omap2/omap-wakeupgen.c +++ b/arch/arm/mach-omap2/omap-wakeupgen.c | |||
| @@ -50,6 +50,9 @@ | |||
| 50 | #define OMAP4_NR_BANKS 4 | 50 | #define OMAP4_NR_BANKS 4 |
| 51 | #define OMAP4_NR_IRQS 128 | 51 | #define OMAP4_NR_IRQS 128 |
| 52 | 52 | ||
| 53 | #define SYS_NIRQ1_EXT_SYS_IRQ_1 7 | ||
| 54 | #define SYS_NIRQ2_EXT_SYS_IRQ_2 119 | ||
| 55 | |||
| 53 | static void __iomem *wakeupgen_base; | 56 | static void __iomem *wakeupgen_base; |
| 54 | static void __iomem *sar_base; | 57 | static void __iomem *sar_base; |
| 55 | static DEFINE_RAW_SPINLOCK(wakeupgen_lock); | 58 | static DEFINE_RAW_SPINLOCK(wakeupgen_lock); |
| @@ -153,6 +156,37 @@ static void wakeupgen_unmask(struct irq_data *d) | |||
| 153 | irq_chip_unmask_parent(d); | 156 | irq_chip_unmask_parent(d); |
| 154 | } | 157 | } |
| 155 | 158 | ||
| 159 | /* | ||
| 160 | * The sys_nirq pins bypass peripheral modules and are wired directly | ||
| 161 | * to MPUSS wakeupgen. They get automatically inverted for GIC. | ||
| 162 | */ | ||
| 163 | static int wakeupgen_irq_set_type(struct irq_data *d, unsigned int type) | ||
| 164 | { | ||
| 165 | bool inverted = false; | ||
| 166 | |||
| 167 | switch (type) { | ||
| 168 | case IRQ_TYPE_LEVEL_LOW: | ||
| 169 | type &= ~IRQ_TYPE_LEVEL_MASK; | ||
| 170 | type |= IRQ_TYPE_LEVEL_HIGH; | ||
| 171 | inverted = true; | ||
| 172 | break; | ||
| 173 | case IRQ_TYPE_EDGE_FALLING: | ||
| 174 | type &= ~IRQ_TYPE_EDGE_BOTH; | ||
| 175 | type |= IRQ_TYPE_EDGE_RISING; | ||
| 176 | inverted = true; | ||
| 177 | break; | ||
| 178 | default: | ||
| 179 | break; | ||
| 180 | } | ||
| 181 | |||
| 182 | if (inverted && d->hwirq != SYS_NIRQ1_EXT_SYS_IRQ_1 && | ||
| 183 | d->hwirq != SYS_NIRQ2_EXT_SYS_IRQ_2) | ||
| 184 | pr_warn("wakeupgen: irq%li polarity inverted in dts\n", | ||
| 185 | d->hwirq); | ||
| 186 | |||
| 187 | return irq_chip_set_type_parent(d, type); | ||
| 188 | } | ||
| 189 | |||
| 156 | #ifdef CONFIG_HOTPLUG_CPU | 190 | #ifdef CONFIG_HOTPLUG_CPU |
| 157 | static DEFINE_PER_CPU(u32 [MAX_NR_REG_BANKS], irqmasks); | 191 | static DEFINE_PER_CPU(u32 [MAX_NR_REG_BANKS], irqmasks); |
| 158 | 192 | ||
| @@ -446,7 +480,7 @@ static struct irq_chip wakeupgen_chip = { | |||
| 446 | .irq_mask = wakeupgen_mask, | 480 | .irq_mask = wakeupgen_mask, |
| 447 | .irq_unmask = wakeupgen_unmask, | 481 | .irq_unmask = wakeupgen_unmask, |
| 448 | .irq_retrigger = irq_chip_retrigger_hierarchy, | 482 | .irq_retrigger = irq_chip_retrigger_hierarchy, |
| 449 | .irq_set_type = irq_chip_set_type_parent, | 483 | .irq_set_type = wakeupgen_irq_set_type, |
| 450 | .flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND, | 484 | .flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND, |
| 451 | #ifdef CONFIG_SMP | 485 | #ifdef CONFIG_SMP |
| 452 | .irq_set_affinity = irq_chip_set_affinity_parent, | 486 | .irq_set_affinity = irq_chip_set_affinity_parent, |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index b5531dd3ae9c..3a04c73ac03c 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
| @@ -1002,8 +1002,10 @@ static int _enable_clocks(struct omap_hwmod *oh) | |||
| 1002 | clk_enable(oh->_clk); | 1002 | clk_enable(oh->_clk); |
| 1003 | 1003 | ||
| 1004 | list_for_each_entry(os, &oh->slave_ports, node) { | 1004 | list_for_each_entry(os, &oh->slave_ports, node) { |
| 1005 | if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE)) | 1005 | if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE)) { |
| 1006 | omap2_clk_deny_idle(os->_clk); | ||
| 1006 | clk_enable(os->_clk); | 1007 | clk_enable(os->_clk); |
| 1008 | } | ||
| 1007 | } | 1009 | } |
| 1008 | 1010 | ||
| 1009 | /* The opt clocks are controlled by the device driver. */ | 1011 | /* The opt clocks are controlled by the device driver. */ |
| @@ -1055,8 +1057,10 @@ static int _disable_clocks(struct omap_hwmod *oh) | |||
| 1055 | clk_disable(oh->_clk); | 1057 | clk_disable(oh->_clk); |
| 1056 | 1058 | ||
| 1057 | list_for_each_entry(os, &oh->slave_ports, node) { | 1059 | list_for_each_entry(os, &oh->slave_ports, node) { |
| 1058 | if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE)) | 1060 | if (os->_clk && (os->flags & OCPIF_SWSUP_IDLE)) { |
| 1059 | clk_disable(os->_clk); | 1061 | clk_disable(os->_clk); |
| 1062 | omap2_clk_allow_idle(os->_clk); | ||
| 1063 | } | ||
| 1060 | } | 1064 | } |
| 1061 | 1065 | ||
| 1062 | if (oh->flags & HWMOD_OPT_CLKS_NEEDED) | 1066 | if (oh->flags & HWMOD_OPT_CLKS_NEEDED) |
| @@ -2436,9 +2440,13 @@ static void _setup_iclk_autoidle(struct omap_hwmod *oh) | |||
| 2436 | continue; | 2440 | continue; |
| 2437 | 2441 | ||
| 2438 | if (os->flags & OCPIF_SWSUP_IDLE) { | 2442 | if (os->flags & OCPIF_SWSUP_IDLE) { |
| 2439 | /* XXX omap_iclk_deny_idle(c); */ | 2443 | /* |
| 2444 | * we might have multiple users of one iclk with | ||
| 2445 | * different requirements, disable autoidle when | ||
| 2446 | * the module is enabled, e.g. dss iclk | ||
| 2447 | */ | ||
| 2440 | } else { | 2448 | } else { |
| 2441 | /* XXX omap_iclk_allow_idle(c); */ | 2449 | /* we are enabling autoidle afterwards anyways */ |
| 2442 | clk_enable(os->_clk); | 2450 | clk_enable(os->_clk); |
| 2443 | } | 2451 | } |
| 2444 | } | 2452 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c index 8e44e2728620..debcd88ab971 100644 --- a/arch/arm/mach-omap2/omap_hwmod_81xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_81xx_data.c | |||
| @@ -432,6 +432,13 @@ static struct omap_hwmod dm81xx_i2c2_hwmod = { | |||
| 432 | .class = &i2c_class, | 432 | .class = &i2c_class, |
| 433 | }; | 433 | }; |
| 434 | 434 | ||
| 435 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__i2c2 = { | ||
| 436 | .master = &dm81xx_l4_ls_hwmod, | ||
| 437 | .slave = &dm81xx_i2c2_hwmod, | ||
| 438 | .clk = "sysclk6_ck", | ||
| 439 | .user = OCP_USER_MPU, | ||
| 440 | }; | ||
| 441 | |||
| 435 | static struct omap_hwmod_class_sysconfig dm81xx_elm_sysc = { | 442 | static struct omap_hwmod_class_sysconfig dm81xx_elm_sysc = { |
| 436 | .rev_offs = 0x0000, | 443 | .rev_offs = 0x0000, |
| 437 | .sysc_offs = 0x0010, | 444 | .sysc_offs = 0x0010, |
| @@ -443,13 +450,6 @@ static struct omap_hwmod_class_sysconfig dm81xx_elm_sysc = { | |||
| 443 | .sysc_fields = &omap_hwmod_sysc_type1, | 450 | .sysc_fields = &omap_hwmod_sysc_type1, |
| 444 | }; | 451 | }; |
| 445 | 452 | ||
| 446 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__i2c2 = { | ||
| 447 | .master = &dm81xx_l4_ls_hwmod, | ||
| 448 | .slave = &dm81xx_i2c2_hwmod, | ||
| 449 | .clk = "sysclk6_ck", | ||
| 450 | .user = OCP_USER_MPU, | ||
| 451 | }; | ||
| 452 | |||
| 453 | static struct omap_hwmod_class dm81xx_elm_hwmod_class = { | 453 | static struct omap_hwmod_class dm81xx_elm_hwmod_class = { |
| 454 | .name = "elm", | 454 | .name = "elm", |
| 455 | .sysc = &dm81xx_elm_sysc, | 455 | .sysc = &dm81xx_elm_sysc, |
| @@ -539,6 +539,58 @@ static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio2 = { | |||
| 539 | .user = OCP_USER_MPU, | 539 | .user = OCP_USER_MPU, |
| 540 | }; | 540 | }; |
| 541 | 541 | ||
| 542 | static struct omap_hwmod_opt_clk gpio3_opt_clks[] = { | ||
| 543 | { .role = "dbclk", .clk = "sysclk18_ck" }, | ||
| 544 | }; | ||
| 545 | |||
| 546 | static struct omap_hwmod dm81xx_gpio3_hwmod = { | ||
| 547 | .name = "gpio3", | ||
| 548 | .clkdm_name = "alwon_l3s_clkdm", | ||
| 549 | .class = &dm81xx_gpio_hwmod_class, | ||
| 550 | .main_clk = "sysclk6_ck", | ||
| 551 | .prcm = { | ||
| 552 | .omap4 = { | ||
| 553 | .clkctrl_offs = DM81XX_CM_ALWON_GPIO_1_CLKCTRL, | ||
| 554 | .modulemode = MODULEMODE_SWCTRL, | ||
| 555 | }, | ||
| 556 | }, | ||
| 557 | .opt_clks = gpio3_opt_clks, | ||
| 558 | .opt_clks_cnt = ARRAY_SIZE(gpio3_opt_clks), | ||
| 559 | }; | ||
| 560 | |||
| 561 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio3 = { | ||
| 562 | .master = &dm81xx_l4_ls_hwmod, | ||
| 563 | .slave = &dm81xx_gpio3_hwmod, | ||
| 564 | .clk = "sysclk6_ck", | ||
| 565 | .user = OCP_USER_MPU, | ||
| 566 | }; | ||
| 567 | |||
| 568 | static struct omap_hwmod_opt_clk gpio4_opt_clks[] = { | ||
| 569 | { .role = "dbclk", .clk = "sysclk18_ck" }, | ||
| 570 | }; | ||
| 571 | |||
| 572 | static struct omap_hwmod dm81xx_gpio4_hwmod = { | ||
| 573 | .name = "gpio4", | ||
| 574 | .clkdm_name = "alwon_l3s_clkdm", | ||
| 575 | .class = &dm81xx_gpio_hwmod_class, | ||
| 576 | .main_clk = "sysclk6_ck", | ||
| 577 | .prcm = { | ||
| 578 | .omap4 = { | ||
| 579 | .clkctrl_offs = DM81XX_CM_ALWON_GPIO_1_CLKCTRL, | ||
| 580 | .modulemode = MODULEMODE_SWCTRL, | ||
| 581 | }, | ||
| 582 | }, | ||
| 583 | .opt_clks = gpio4_opt_clks, | ||
| 584 | .opt_clks_cnt = ARRAY_SIZE(gpio4_opt_clks), | ||
| 585 | }; | ||
| 586 | |||
| 587 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__gpio4 = { | ||
| 588 | .master = &dm81xx_l4_ls_hwmod, | ||
| 589 | .slave = &dm81xx_gpio4_hwmod, | ||
| 590 | .clk = "sysclk6_ck", | ||
| 591 | .user = OCP_USER_MPU, | ||
| 592 | }; | ||
| 593 | |||
| 542 | static struct omap_hwmod_class_sysconfig dm81xx_gpmc_sysc = { | 594 | static struct omap_hwmod_class_sysconfig dm81xx_gpmc_sysc = { |
| 543 | .rev_offs = 0x0, | 595 | .rev_offs = 0x0, |
| 544 | .sysc_offs = 0x10, | 596 | .sysc_offs = 0x10, |
| @@ -1133,6 +1185,45 @@ static struct omap_hwmod dm81xx_mcspi1_hwmod = { | |||
| 1133 | .class = &dm816x_mcspi_class, | 1185 | .class = &dm816x_mcspi_class, |
| 1134 | }; | 1186 | }; |
| 1135 | 1187 | ||
| 1188 | static struct omap_hwmod dm81xx_mcspi2_hwmod = { | ||
| 1189 | .name = "mcspi2", | ||
| 1190 | .clkdm_name = "alwon_l3s_clkdm", | ||
| 1191 | .main_clk = "sysclk10_ck", | ||
| 1192 | .prcm = { | ||
| 1193 | .omap4 = { | ||
| 1194 | .clkctrl_offs = DM81XX_CM_ALWON_SPI_CLKCTRL, | ||
| 1195 | .modulemode = MODULEMODE_SWCTRL, | ||
| 1196 | }, | ||
| 1197 | }, | ||
| 1198 | .class = &dm816x_mcspi_class, | ||
| 1199 | }; | ||
| 1200 | |||
| 1201 | static struct omap_hwmod dm81xx_mcspi3_hwmod = { | ||
| 1202 | .name = "mcspi3", | ||
| 1203 | .clkdm_name = "alwon_l3s_clkdm", | ||
| 1204 | .main_clk = "sysclk10_ck", | ||
| 1205 | .prcm = { | ||
| 1206 | .omap4 = { | ||
| 1207 | .clkctrl_offs = DM81XX_CM_ALWON_SPI_CLKCTRL, | ||
| 1208 | .modulemode = MODULEMODE_SWCTRL, | ||
| 1209 | }, | ||
| 1210 | }, | ||
| 1211 | .class = &dm816x_mcspi_class, | ||
| 1212 | }; | ||
| 1213 | |||
| 1214 | static struct omap_hwmod dm81xx_mcspi4_hwmod = { | ||
| 1215 | .name = "mcspi4", | ||
| 1216 | .clkdm_name = "alwon_l3s_clkdm", | ||
| 1217 | .main_clk = "sysclk10_ck", | ||
| 1218 | .prcm = { | ||
| 1219 | .omap4 = { | ||
| 1220 | .clkctrl_offs = DM81XX_CM_ALWON_SPI_CLKCTRL, | ||
| 1221 | .modulemode = MODULEMODE_SWCTRL, | ||
| 1222 | }, | ||
| 1223 | }, | ||
| 1224 | .class = &dm816x_mcspi_class, | ||
| 1225 | }; | ||
| 1226 | |||
| 1136 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi1 = { | 1227 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi1 = { |
| 1137 | .master = &dm81xx_l4_ls_hwmod, | 1228 | .master = &dm81xx_l4_ls_hwmod, |
| 1138 | .slave = &dm81xx_mcspi1_hwmod, | 1229 | .slave = &dm81xx_mcspi1_hwmod, |
| @@ -1140,6 +1231,27 @@ static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi1 = { | |||
| 1140 | .user = OCP_USER_MPU, | 1231 | .user = OCP_USER_MPU, |
| 1141 | }; | 1232 | }; |
| 1142 | 1233 | ||
| 1234 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi2 = { | ||
| 1235 | .master = &dm81xx_l4_ls_hwmod, | ||
| 1236 | .slave = &dm81xx_mcspi2_hwmod, | ||
| 1237 | .clk = "sysclk6_ck", | ||
| 1238 | .user = OCP_USER_MPU, | ||
| 1239 | }; | ||
| 1240 | |||
| 1241 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi3 = { | ||
| 1242 | .master = &dm81xx_l4_ls_hwmod, | ||
| 1243 | .slave = &dm81xx_mcspi3_hwmod, | ||
| 1244 | .clk = "sysclk6_ck", | ||
| 1245 | .user = OCP_USER_MPU, | ||
| 1246 | }; | ||
| 1247 | |||
| 1248 | static struct omap_hwmod_ocp_if dm81xx_l4_ls__mcspi4 = { | ||
| 1249 | .master = &dm81xx_l4_ls_hwmod, | ||
| 1250 | .slave = &dm81xx_mcspi4_hwmod, | ||
| 1251 | .clk = "sysclk6_ck", | ||
| 1252 | .user = OCP_USER_MPU, | ||
| 1253 | }; | ||
| 1254 | |||
| 1143 | static struct omap_hwmod_class_sysconfig dm81xx_mailbox_sysc = { | 1255 | static struct omap_hwmod_class_sysconfig dm81xx_mailbox_sysc = { |
| 1144 | .rev_offs = 0x000, | 1256 | .rev_offs = 0x000, |
| 1145 | .sysc_offs = 0x010, | 1257 | .sysc_offs = 0x010, |
| @@ -1378,8 +1490,13 @@ static struct omap_hwmod_ocp_if *dm814x_hwmod_ocp_ifs[] __initdata = { | |||
| 1378 | &dm81xx_l4_ls__i2c2, | 1490 | &dm81xx_l4_ls__i2c2, |
| 1379 | &dm81xx_l4_ls__gpio1, | 1491 | &dm81xx_l4_ls__gpio1, |
| 1380 | &dm81xx_l4_ls__gpio2, | 1492 | &dm81xx_l4_ls__gpio2, |
| 1493 | &dm81xx_l4_ls__gpio3, | ||
| 1494 | &dm81xx_l4_ls__gpio4, | ||
| 1381 | &dm81xx_l4_ls__elm, | 1495 | &dm81xx_l4_ls__elm, |
| 1382 | &dm81xx_l4_ls__mcspi1, | 1496 | &dm81xx_l4_ls__mcspi1, |
| 1497 | &dm81xx_l4_ls__mcspi2, | ||
| 1498 | &dm81xx_l4_ls__mcspi3, | ||
| 1499 | &dm81xx_l4_ls__mcspi4, | ||
| 1383 | &dm814x_l4_ls__mmc1, | 1500 | &dm814x_l4_ls__mmc1, |
| 1384 | &dm814x_l4_ls__mmc2, | 1501 | &dm814x_l4_ls__mmc2, |
| 1385 | &ti81xx_l4_ls__rtc, | 1502 | &ti81xx_l4_ls__rtc, |
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index 8a5b6ed4ec36..a2ecc5e69abb 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
| @@ -330,7 +330,6 @@ static struct fixed_voltage_config pandora_vwlan = { | |||
| 330 | .supply_name = "vwlan", | 330 | .supply_name = "vwlan", |
| 331 | .microvolts = 1800000, /* 1.8V */ | 331 | .microvolts = 1800000, /* 1.8V */ |
| 332 | .startup_delay = 50000, /* 50ms */ | 332 | .startup_delay = 50000, /* 50ms */ |
| 333 | .enable_high = 1, | ||
| 334 | .init_data = &pandora_vmmc3, | 333 | .init_data = &pandora_vmmc3, |
| 335 | }; | 334 | }; |
| 336 | 335 | ||
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index 058a37e6d11c..fd6e0671f957 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c | |||
| @@ -523,8 +523,10 @@ void omap_prm_reset_system(void) | |||
| 523 | 523 | ||
| 524 | prm_ll_data->reset_system(); | 524 | prm_ll_data->reset_system(); |
| 525 | 525 | ||
| 526 | while (1) | 526 | while (1) { |
| 527 | cpu_relax(); | 527 | cpu_relax(); |
| 528 | wfe(); | ||
| 529 | } | ||
| 528 | } | 530 | } |
| 529 | 531 | ||
| 530 | /** | 532 | /** |
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 83a7ec4c16d0..c67f92bfa30e 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
| @@ -20,7 +20,7 @@ | |||
| 20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
| 21 | #include <linux/clk-provider.h> | 21 | #include <linux/clk-provider.h> |
| 22 | #include <linux/cpu.h> | 22 | #include <linux/cpu.h> |
| 23 | #include <net/dsa.h> | 23 | #include <linux/platform_data/dsa.h> |
| 24 | #include <asm/page.h> | 24 | #include <asm/page.h> |
| 25 | #include <asm/setup.h> | 25 | #include <asm/setup.h> |
| 26 | #include <asm/system_misc.h> | 26 | #include <asm/system_misc.h> |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c index a3c1336d30c9..c65ab7db36ad 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include <linux/mtd/physmap.h> | 16 | #include <linux/mtd/physmap.h> |
| 17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
| 18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
| 19 | #include <net/dsa.h> | 19 | #include <linux/platform_data/dsa.h> |
| 20 | #include <asm/mach-types.h> | 20 | #include <asm/mach-types.h> |
| 21 | #include <asm/mach/arch.h> | 21 | #include <asm/mach/arch.h> |
| 22 | #include <asm/mach/pci.h> | 22 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c index 252efe29bd1a..76b8138d9d79 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | |||
| @@ -17,7 +17,7 @@ | |||
| 17 | #include <linux/mv643xx_eth.h> | 17 | #include <linux/mv643xx_eth.h> |
| 18 | #include <linux/ethtool.h> | 18 | #include <linux/ethtool.h> |
| 19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
| 20 | #include <net/dsa.h> | 20 | #include <linux/platform_data/dsa.h> |
| 21 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
| 22 | #include <asm/mach/arch.h> | 22 | #include <asm/mach/arch.h> |
| 23 | #include <asm/mach/pci.h> | 23 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c index f4f1dbe1d91d..5f388a1ed1e4 100644 --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | #include <linux/spi/spi.h> | 18 | #include <linux/spi/spi.h> |
| 19 | #include <linux/spi/flash.h> | 19 | #include <linux/spi/flash.h> |
| 20 | #include <linux/ethtool.h> | 20 | #include <linux/ethtool.h> |
| 21 | #include <net/dsa.h> | 21 | #include <linux/platform_data/dsa.h> |
| 22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
| 23 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
| 24 | #include <asm/mach/pci.h> | 24 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-orion5x/wnr854t-setup.c b/arch/arm/mach-orion5x/wnr854t-setup.c index d162d4c7f85d..83589a28a491 100644 --- a/arch/arm/mach-orion5x/wnr854t-setup.c +++ b/arch/arm/mach-orion5x/wnr854t-setup.c | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | #include <linux/mtd/physmap.h> | 15 | #include <linux/mtd/physmap.h> |
| 16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
| 17 | #include <linux/ethtool.h> | 17 | #include <linux/ethtool.h> |
| 18 | #include <net/dsa.h> | 18 | #include <linux/platform_data/dsa.h> |
| 19 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
| 20 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
| 21 | #include <asm/mach/pci.h> | 21 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index 9250bb2e429c..cea08d4a2597 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | #include <linux/leds.h> | 18 | #include <linux/leds.h> |
| 19 | #include <linux/gpio_keys.h> | 19 | #include <linux/gpio_keys.h> |
| 20 | #include <linux/input.h> | 20 | #include <linux/input.h> |
| 21 | #include <net/dsa.h> | 21 | #include <linux/platform_data/dsa.h> |
| 22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
| 23 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
| 24 | #include <asm/mach/pci.h> | 24 | #include <asm/mach/pci.h> |
diff --git a/arch/arm/mach-oxnas/Makefile b/arch/arm/mach-oxnas/Makefile index b625906a9970..61a34e1c0f22 100644 --- a/arch/arm/mach-oxnas/Makefile +++ b/arch/arm/mach-oxnas/Makefile | |||
| @@ -1,2 +1 @@ | |||
| 1 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | |
| 2 | obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | ||
diff --git a/arch/arm/mach-oxnas/hotplug.c b/arch/arm/mach-oxnas/hotplug.c deleted file mode 100644 index 854f29b8cba6..000000000000 --- a/arch/arm/mach-oxnas/hotplug.c +++ /dev/null | |||
| @@ -1,109 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2002 ARM Ltd. | ||
| 3 | * All Rights Reserved | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License version 2 as | ||
| 7 | * published by the Free Software Foundation. | ||
| 8 | */ | ||
| 9 | #include <linux/kernel.h> | ||
| 10 | #include <linux/errno.h> | ||
| 11 | #include <linux/smp.h> | ||
| 12 | |||
| 13 | #include <asm/cp15.h> | ||
| 14 | #include <asm/smp_plat.h> | ||
| 15 | |||
| 16 | static inline void cpu_enter_lowpower(void) | ||
| 17 | { | ||
| 18 | unsigned int v; | ||
| 19 | |||
| 20 | asm volatile( | ||
| 21 | " mcr p15, 0, %1, c7, c5, 0\n" | ||
| 22 | " mcr p15, 0, %1, c7, c10, 4\n" | ||
| 23 | /* | ||
| 24 | * Turn off coherency | ||
| 25 | */ | ||
| 26 | " mrc p15, 0, %0, c1, c0, 1\n" | ||
| 27 | " bic %0, %0, #0x20\n" | ||
| 28 | " mcr p15, 0, %0, c1, c0, 1\n" | ||
| 29 | " mrc p15, 0, %0, c1, c0, 0\n" | ||
| 30 | " bic %0, %0, %2\n" | ||
| 31 | " mcr p15, 0, %0, c1, c0, 0\n" | ||
| 32 | : "=&r" (v) | ||
| 33 | : "r" (0), "Ir" (CR_C) | ||
| 34 | : "cc"); | ||
| 35 | } | ||
| 36 | |||
| 37 | static inline void cpu_leave_lowpower(void) | ||
| 38 | { | ||
| 39 | unsigned int v; | ||
| 40 | |||
| 41 | asm volatile( "mrc p15, 0, %0, c1, c0, 0\n" | ||
| 42 | " orr %0, %0, %1\n" | ||
| 43 | " mcr p15, 0, %0, c1, c0, 0\n" | ||
| 44 | " mrc p15, 0, %0, c1, c0, 1\n" | ||
| 45 | " orr %0, %0, #0x20\n" | ||
| 46 | " mcr p15, 0, %0, c1, c0, 1\n" | ||
| 47 | : "=&r" (v) | ||
| 48 | : "Ir" (CR_C) | ||
| 49 | : "cc"); | ||
| 50 | } | ||
| 51 | |||
| 52 | static inline void platform_do_lowpower(unsigned int cpu, int *spurious) | ||
| 53 | { | ||
| 54 | /* | ||
| 55 | * there is no power-control hardware on this platform, so all | ||
| 56 | * we can do is put the core into WFI; this is safe as the calling | ||
| 57 | * code will have already disabled interrupts | ||
| 58 | */ | ||
| 59 | for (;;) { | ||
| 60 | /* | ||
| 61 | * here's the WFI | ||
| 62 | */ | ||
| 63 | asm(".word 0xe320f003\n" | ||
| 64 | : | ||
| 65 | : | ||
| 66 | : "memory", "cc"); | ||
| 67 | |||
| 68 | if (pen_release == cpu_logical_map(cpu)) { | ||
| 69 | /* | ||
| 70 | * OK, proper wakeup, we're done | ||
| 71 | */ | ||
| 72 | break; | ||
| 73 | } | ||
| 74 | |||
| 75 | /* | ||
| 76 | * Getting here, means that we have come out of WFI without | ||
| 77 | * having been woken up - this shouldn't happen | ||
| 78 | * | ||
| 79 | * Just note it happening - when we're woken, we can report | ||
| 80 | * its occurrence. | ||
| 81 | */ | ||
| 82 | (*spurious)++; | ||
| 83 | } | ||
| 84 | } | ||
| 85 | |||
| 86 | /* | ||
| 87 | * platform-specific code to shutdown a CPU | ||
| 88 | * | ||
| 89 | * Called with IRQs disabled | ||
| 90 | */ | ||
| 91 | void ox820_cpu_die(unsigned int cpu) | ||
| 92 | { | ||
| 93 | int spurious = 0; | ||
| 94 | |||
| 95 | /* | ||
| 96 | * we're ready for shutdown now, so do it | ||
| 97 | */ | ||
| 98 | cpu_enter_lowpower(); | ||
| 99 | platform_do_lowpower(cpu, &spurious); | ||
| 100 | |||
| 101 | /* | ||
| 102 | * bring this CPU back into the world of cache | ||
| 103 | * coherency, and then restore interrupts | ||
| 104 | */ | ||
| 105 | cpu_leave_lowpower(); | ||
| 106 | |||
| 107 | if (spurious) | ||
| 108 | pr_warn("CPU%u: %u spurious wakeup calls\n", cpu, spurious); | ||
| 109 | } | ||
diff --git a/arch/arm/mach-oxnas/platsmp.c b/arch/arm/mach-oxnas/platsmp.c index 442cc8a2f7dc..735141c0e3a3 100644 --- a/arch/arm/mach-oxnas/platsmp.c +++ b/arch/arm/mach-oxnas/platsmp.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | #include <asm/smp_scu.h> | 19 | #include <asm/smp_scu.h> |
| 20 | 20 | ||
| 21 | extern void ox820_secondary_startup(void); | 21 | extern void ox820_secondary_startup(void); |
| 22 | extern void ox820_cpu_die(unsigned int cpu); | ||
| 23 | 22 | ||
| 24 | static void __iomem *cpu_ctrl; | 23 | static void __iomem *cpu_ctrl; |
| 25 | static void __iomem *gic_cpu_ctrl; | 24 | static void __iomem *gic_cpu_ctrl; |
| @@ -94,9 +93,6 @@ unmap_scu: | |||
| 94 | static const struct smp_operations ox820_smp_ops __initconst = { | 93 | static const struct smp_operations ox820_smp_ops __initconst = { |
| 95 | .smp_prepare_cpus = ox820_smp_prepare_cpus, | 94 | .smp_prepare_cpus = ox820_smp_prepare_cpus, |
| 96 | .smp_boot_secondary = ox820_boot_secondary, | 95 | .smp_boot_secondary = ox820_boot_secondary, |
| 97 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 98 | .cpu_die = ox820_cpu_die, | ||
| 99 | #endif | ||
| 100 | }; | 96 | }; |
| 101 | 97 | ||
| 102 | CPU_METHOD_OF_DECLARE(ox820_smp, "oxsemi,ox820-smp", &ox820_smp_ops); | 98 | CPU_METHOD_OF_DECLARE(ox820_smp, "oxsemi,ox820-smp", &ox820_smp_ops); |
diff --git a/arch/arm/mach-prima2/common.h b/arch/arm/mach-prima2/common.h index 6d77b622d168..457eb7b18160 100644 --- a/arch/arm/mach-prima2/common.h +++ b/arch/arm/mach-prima2/common.h | |||
| @@ -15,6 +15,8 @@ | |||
| 15 | #include <asm/mach/time.h> | 15 | #include <asm/mach/time.h> |
| 16 | #include <asm/exception.h> | 16 | #include <asm/exception.h> |
| 17 | 17 | ||
| 18 | extern volatile int prima2_pen_release; | ||
| 19 | |||
| 18 | extern const struct smp_operations sirfsoc_smp_ops; | 20 | extern const struct smp_operations sirfsoc_smp_ops; |
| 19 | extern void sirfsoc_secondary_startup(void); | 21 | extern void sirfsoc_secondary_startup(void); |
| 20 | extern void sirfsoc_cpu_die(unsigned int cpu); | 22 | extern void sirfsoc_cpu_die(unsigned int cpu); |
diff --git a/arch/arm/mach-prima2/headsmp.S b/arch/arm/mach-prima2/headsmp.S index 209d9fc5c16c..6cf4fc60347b 100644 --- a/arch/arm/mach-prima2/headsmp.S +++ b/arch/arm/mach-prima2/headsmp.S | |||
| @@ -34,4 +34,4 @@ ENDPROC(sirfsoc_secondary_startup) | |||
| 34 | 34 | ||
| 35 | .align | 35 | .align |
| 36 | 1: .long . | 36 | 1: .long . |
| 37 | .long pen_release | 37 | .long prima2_pen_release |
diff --git a/arch/arm/mach-prima2/hotplug.c b/arch/arm/mach-prima2/hotplug.c index a728c78b996f..b6cf1527e330 100644 --- a/arch/arm/mach-prima2/hotplug.c +++ b/arch/arm/mach-prima2/hotplug.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
| 12 | 12 | ||
| 13 | #include <asm/smp_plat.h> | 13 | #include <asm/smp_plat.h> |
| 14 | #include "common.h" | ||
| 14 | 15 | ||
| 15 | static inline void platform_do_lowpower(unsigned int cpu) | 16 | static inline void platform_do_lowpower(unsigned int cpu) |
| 16 | { | 17 | { |
| @@ -18,7 +19,7 @@ static inline void platform_do_lowpower(unsigned int cpu) | |||
| 18 | for (;;) { | 19 | for (;;) { |
| 19 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" | 20 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" |
| 20 | : : : "memory"); | 21 | : : : "memory"); |
| 21 | if (pen_release == cpu_logical_map(cpu)) { | 22 | if (prima2_pen_release == cpu_logical_map(cpu)) { |
| 22 | /* | 23 | /* |
| 23 | * OK, proper wakeup, we're done | 24 | * OK, proper wakeup, we're done |
| 24 | */ | 25 | */ |
diff --git a/arch/arm/mach-prima2/platsmp.c b/arch/arm/mach-prima2/platsmp.c index 75ef5d4be554..d1f8b5168083 100644 --- a/arch/arm/mach-prima2/platsmp.c +++ b/arch/arm/mach-prima2/platsmp.c | |||
| @@ -24,13 +24,16 @@ static void __iomem *clk_base; | |||
| 24 | 24 | ||
| 25 | static DEFINE_SPINLOCK(boot_lock); | 25 | static DEFINE_SPINLOCK(boot_lock); |
| 26 | 26 | ||
| 27 | /* XXX prima2_pen_release is cargo culted code - DO NOT COPY XXX */ | ||
| 28 | volatile int prima2_pen_release = -1; | ||
| 29 | |||
| 27 | static void sirfsoc_secondary_init(unsigned int cpu) | 30 | static void sirfsoc_secondary_init(unsigned int cpu) |
| 28 | { | 31 | { |
| 29 | /* | 32 | /* |
| 30 | * let the primary processor know we're out of the | 33 | * let the primary processor know we're out of the |
| 31 | * pen, then head off into the C entry point | 34 | * pen, then head off into the C entry point |
| 32 | */ | 35 | */ |
| 33 | pen_release = -1; | 36 | prima2_pen_release = -1; |
| 34 | smp_wmb(); | 37 | smp_wmb(); |
| 35 | 38 | ||
| 36 | /* | 39 | /* |
| @@ -80,13 +83,13 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 80 | /* | 83 | /* |
| 81 | * The secondary processor is waiting to be released from | 84 | * The secondary processor is waiting to be released from |
| 82 | * the holding pen - release it, then wait for it to flag | 85 | * the holding pen - release it, then wait for it to flag |
| 83 | * that it has been released by resetting pen_release. | 86 | * that it has been released by resetting prima2_pen_release. |
| 84 | * | 87 | * |
| 85 | * Note that "pen_release" is the hardware CPU ID, whereas | 88 | * Note that "prima2_pen_release" is the hardware CPU ID, whereas |
| 86 | * "cpu" is Linux's internal ID. | 89 | * "cpu" is Linux's internal ID. |
| 87 | */ | 90 | */ |
| 88 | pen_release = cpu_logical_map(cpu); | 91 | prima2_pen_release = cpu_logical_map(cpu); |
| 89 | sync_cache_w(&pen_release); | 92 | sync_cache_w(&prima2_pen_release); |
| 90 | 93 | ||
| 91 | /* | 94 | /* |
| 92 | * Send the secondary CPU SEV, thereby causing the boot monitor to read | 95 | * Send the secondary CPU SEV, thereby causing the boot monitor to read |
| @@ -97,7 +100,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 97 | timeout = jiffies + (1 * HZ); | 100 | timeout = jiffies + (1 * HZ); |
| 98 | while (time_before(jiffies, timeout)) { | 101 | while (time_before(jiffies, timeout)) { |
| 99 | smp_rmb(); | 102 | smp_rmb(); |
| 100 | if (pen_release == -1) | 103 | if (prima2_pen_release == -1) |
| 101 | break; | 104 | break; |
| 102 | 105 | ||
| 103 | udelay(10); | 106 | udelay(10); |
| @@ -109,7 +112,7 @@ static int sirfsoc_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 109 | */ | 112 | */ |
| 110 | spin_unlock(&boot_lock); | 113 | spin_unlock(&boot_lock); |
| 111 | 114 | ||
| 112 | return pen_release != -1 ? -ENOSYS : 0; | 115 | return prima2_pen_release != -1 ? -ENOSYS : 0; |
| 113 | } | 116 | } |
| 114 | 117 | ||
| 115 | const struct smp_operations sirfsoc_smp_ops __initconst = { | 118 | const struct smp_operations sirfsoc_smp_ops __initconst = { |
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index dc8e4f4b7ade..8839c72fdee3 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
| @@ -454,24 +454,6 @@ config MACH_TREO680 | |||
| 454 | Say Y here if you intend to run this kernel on Palm Treo 680 | 454 | Say Y here if you intend to run this kernel on Palm Treo 680 |
| 455 | smartphone. | 455 | smartphone. |
| 456 | 456 | ||
| 457 | config MACH_RAUMFELD_RC | ||
| 458 | bool "Raumfeld Controller" | ||
| 459 | select CPU_PXA300 | ||
| 460 | select POWER_SUPPLY | ||
| 461 | select PXA3xx | ||
| 462 | |||
| 463 | config MACH_RAUMFELD_CONNECTOR | ||
| 464 | bool "Raumfeld Connector" | ||
| 465 | select CPU_PXA300 | ||
| 466 | select POWER_SUPPLY | ||
| 467 | select PXA3xx | ||
| 468 | |||
| 469 | config MACH_RAUMFELD_SPEAKER | ||
| 470 | bool "Raumfeld Speaker" | ||
| 471 | select CPU_PXA300 | ||
| 472 | select POWER_SUPPLY | ||
| 473 | select PXA3xx | ||
| 474 | |||
| 475 | config PXA_SHARPSL | 457 | config PXA_SHARPSL |
| 476 | bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models" | 458 | bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models" |
| 477 | select SHARP_PARAM | 459 | select SHARP_PARAM |
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile index 0a8e9611052f..f70728930c4f 100644 --- a/arch/arm/mach-pxa/Makefile +++ b/arch/arm/mach-pxa/Makefile | |||
| @@ -86,9 +86,6 @@ obj-$(CONFIG_MACH_POODLE) += poodle.o | |||
| 86 | obj-$(CONFIG_MACH_TOSA) += tosa.o | 86 | obj-$(CONFIG_MACH_TOSA) += tosa.o |
| 87 | obj-$(CONFIG_MACH_ICONTROL) += icontrol.o mxm8x10.o | 87 | obj-$(CONFIG_MACH_ICONTROL) += icontrol.o mxm8x10.o |
| 88 | obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o | 88 | obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o |
| 89 | obj-$(CONFIG_MACH_RAUMFELD_RC) += raumfeld.o | ||
| 90 | obj-$(CONFIG_MACH_RAUMFELD_CONNECTOR) += raumfeld.o | ||
| 91 | obj-$(CONFIG_MACH_RAUMFELD_SPEAKER) += raumfeld.o | ||
| 92 | obj-$(CONFIG_MACH_ZIPIT2) += z2.o | 89 | obj-$(CONFIG_MACH_ZIPIT2) += z2.o |
| 93 | 90 | ||
| 94 | obj-$(CONFIG_PXA_SYSTEMS_CPLDS) += pxa_cplds_irqs.o | 91 | obj-$(CONFIG_PXA_SYSTEMS_CPLDS) += pxa_cplds_irqs.o |
diff --git a/arch/arm/mach-pxa/cm-x255.c b/arch/arm/mach-pxa/cm-x255.c index fa8e7dd4d898..4401dfcd7e68 100644 --- a/arch/arm/mach-pxa/cm-x255.c +++ b/arch/arm/mach-pxa/cm-x255.c | |||
| @@ -98,7 +98,7 @@ static unsigned long cmx255_pin_config[] = { | |||
| 98 | }; | 98 | }; |
| 99 | 99 | ||
| 100 | #if defined(CONFIG_SPI_PXA2XX) | 100 | #if defined(CONFIG_SPI_PXA2XX) |
| 101 | static struct pxa2xx_spi_master pxa_ssp_master_info = { | 101 | static struct pxa2xx_spi_controller pxa_ssp_master_info = { |
| 102 | .num_chipselect = 1, | 102 | .num_chipselect = 1, |
| 103 | }; | 103 | }; |
| 104 | 104 | ||
diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c index f7081a50dc67..279eeca7add0 100644 --- a/arch/arm/mach-pxa/cm-x270.c +++ b/arch/arm/mach-pxa/cm-x270.c | |||
| @@ -313,7 +313,7 @@ static inline void cmx270_init_mmc(void) {} | |||
| 313 | #endif | 313 | #endif |
| 314 | 314 | ||
| 315 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) | 315 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) |
| 316 | static struct pxa2xx_spi_master cm_x270_spi_info = { | 316 | static struct pxa2xx_spi_controller cm_x270_spi_info = { |
| 317 | .num_chipselect = 1, | 317 | .num_chipselect = 1, |
| 318 | .enable_dma = 1, | 318 | .enable_dma = 1, |
| 319 | }; | 319 | }; |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index c9732cace5e3..7ecf559bd71c 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
| @@ -530,7 +530,7 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = { | |||
| 530 | }; | 530 | }; |
| 531 | 531 | ||
| 532 | #if IS_ENABLED(CONFIG_SPI_PXA2XX) | 532 | #if IS_ENABLED(CONFIG_SPI_PXA2XX) |
| 533 | static struct pxa2xx_spi_master corgi_spi_info = { | 533 | static struct pxa2xx_spi_controller corgi_spi_info = { |
| 534 | .num_chipselect = 3, | 534 | .num_chipselect = 3, |
| 535 | }; | 535 | }; |
| 536 | 536 | ||
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c index a24783a03827..524d6093e0c7 100644 --- a/arch/arm/mach-pxa/devices.c +++ b/arch/arm/mach-pxa/devices.c | |||
| @@ -1065,7 +1065,7 @@ struct platform_device pxa93x_device_gpio = { | |||
| 1065 | 1065 | ||
| 1066 | /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. | 1066 | /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1. |
| 1067 | * See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */ | 1067 | * See comment in arch/arm/mach-pxa/ssp.c::ssp_probe() */ |
| 1068 | void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info) | 1068 | void __init pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_controller *info) |
| 1069 | { | 1069 | { |
| 1070 | struct platform_device *pd; | 1070 | struct platform_device *pd; |
| 1071 | 1071 | ||
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index 32c1edeb3f14..fa3adb073a0f 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
| @@ -689,7 +689,7 @@ static inline void em_x270_init_lcd(void) {} | |||
| 689 | #endif | 689 | #endif |
| 690 | 690 | ||
| 691 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) | 691 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) |
| 692 | static struct pxa2xx_spi_master em_x270_spi_info = { | 692 | static struct pxa2xx_spi_controller em_x270_spi_info = { |
| 693 | .num_chipselect = 1, | 693 | .num_chipselect = 1, |
| 694 | }; | 694 | }; |
| 695 | 695 | ||
| @@ -703,7 +703,7 @@ static struct tdo24m_platform_data em_x270_tdo24m_pdata = { | |||
| 703 | .model = TDO35S, | 703 | .model = TDO35S, |
| 704 | }; | 704 | }; |
| 705 | 705 | ||
| 706 | static struct pxa2xx_spi_master em_x270_spi_2_info = { | 706 | static struct pxa2xx_spi_controller em_x270_spi_2_info = { |
| 707 | .num_chipselect = 1, | 707 | .num_chipselect = 1, |
| 708 | .enable_dma = 1, | 708 | .enable_dma = 1, |
| 709 | }; | 709 | }; |
| @@ -976,7 +976,6 @@ static struct fixed_voltage_config camera_dummy_config = { | |||
| 976 | .supply_name = "camera_vdd", | 976 | .supply_name = "camera_vdd", |
| 977 | .input_supply = "vcc cam", | 977 | .input_supply = "vcc cam", |
| 978 | .microvolts = 2800000, | 978 | .microvolts = 2800000, |
| 979 | .enable_high = 0, | ||
| 980 | .init_data = &camera_dummy_initdata, | 979 | .init_data = &camera_dummy_initdata, |
| 981 | }; | 980 | }; |
| 982 | 981 | ||
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c index 565965e9acc7..5e110e70ce5a 100644 --- a/arch/arm/mach-pxa/ezx.c +++ b/arch/arm/mach-pxa/ezx.c | |||
| @@ -714,7 +714,6 @@ static struct regulator_init_data camera_regulator_initdata = { | |||
| 714 | static struct fixed_voltage_config camera_regulator_config = { | 714 | static struct fixed_voltage_config camera_regulator_config = { |
| 715 | .supply_name = "camera_vdd", | 715 | .supply_name = "camera_vdd", |
| 716 | .microvolts = 2800000, | 716 | .microvolts = 2800000, |
| 717 | .enable_high = 0, | ||
| 718 | .init_data = &camera_regulator_initdata, | 717 | .init_data = &camera_regulator_initdata, |
| 719 | }; | 718 | }; |
| 720 | 719 | ||
| @@ -730,7 +729,7 @@ static struct gpiod_lookup_table camera_supply_gpiod_table = { | |||
| 730 | .dev_id = "reg-fixed-voltage.1", | 729 | .dev_id = "reg-fixed-voltage.1", |
| 731 | .table = { | 730 | .table = { |
| 732 | GPIO_LOOKUP("gpio-pxa", GPIO50_nCAM_EN, | 731 | GPIO_LOOKUP("gpio-pxa", GPIO50_nCAM_EN, |
| 733 | NULL, GPIO_ACTIVE_HIGH), | 732 | NULL, GPIO_ACTIVE_LOW), |
| 734 | { }, | 733 | { }, |
| 735 | }, | 734 | }, |
| 736 | }; | 735 | }; |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index b79b757fdd41..1d6b1d2fb6a9 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
| 20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
| 21 | #include <linux/fb.h> | 21 | #include <linux/fb.h> |
| 22 | #include <linux/gpio/machine.h> | ||
| 22 | #include <linux/gpio.h> | 23 | #include <linux/gpio.h> |
| 23 | #include <linux/gpio_keys.h> | 24 | #include <linux/gpio_keys.h> |
| 24 | #include <linux/input.h> | 25 | #include <linux/input.h> |
| @@ -629,7 +630,7 @@ static struct spi_board_info tsc2046_board_info[] __initdata = { | |||
| 629 | }, | 630 | }, |
| 630 | }; | 631 | }; |
| 631 | 632 | ||
| 632 | static struct pxa2xx_spi_master pxa_ssp2_master_info = { | 633 | static struct pxa2xx_spi_controller pxa_ssp2_master_info = { |
| 633 | .num_chipselect = 1, | 634 | .num_chipselect = 1, |
| 634 | .enable_dma = 1, | 635 | .enable_dma = 1, |
| 635 | }; | 636 | }; |
| @@ -702,9 +703,7 @@ static struct regulator_init_data bq24022_init_data = { | |||
| 702 | .consumer_supplies = bq24022_consumers, | 703 | .consumer_supplies = bq24022_consumers, |
| 703 | }; | 704 | }; |
| 704 | 705 | ||
| 705 | static struct gpio bq24022_gpios[] = { | 706 | static enum gpiod_flags bq24022_gpiod_gflags[] = { GPIOD_OUT_LOW }; |
| 706 | { GPIO96_HX4700_BQ24022_ISET2, GPIOF_OUT_INIT_LOW, "bq24022_iset2" }, | ||
| 707 | }; | ||
| 708 | 707 | ||
| 709 | static struct gpio_regulator_state bq24022_states[] = { | 708 | static struct gpio_regulator_state bq24022_states[] = { |
| 710 | { .value = 100000, .gpios = (0 << 0) }, | 709 | { .value = 100000, .gpios = (0 << 0) }, |
| @@ -714,12 +713,10 @@ static struct gpio_regulator_state bq24022_states[] = { | |||
| 714 | static struct gpio_regulator_config bq24022_info = { | 713 | static struct gpio_regulator_config bq24022_info = { |
| 715 | .supply_name = "bq24022", | 714 | .supply_name = "bq24022", |
| 716 | 715 | ||
| 717 | .enable_gpio = GPIO72_HX4700_BQ24022_nCHARGE_EN, | ||
| 718 | .enable_high = 0, | ||
| 719 | .enabled_at_boot = 0, | 716 | .enabled_at_boot = 0, |
| 720 | 717 | ||
| 721 | .gpios = bq24022_gpios, | 718 | .gflags = bq24022_gpiod_gflags, |
| 722 | .nr_gpios = ARRAY_SIZE(bq24022_gpios), | 719 | .ngpios = ARRAY_SIZE(bq24022_gpiod_gflags), |
| 723 | 720 | ||
| 724 | .states = bq24022_states, | 721 | .states = bq24022_states, |
| 725 | .nr_states = ARRAY_SIZE(bq24022_states), | 722 | .nr_states = ARRAY_SIZE(bq24022_states), |
| @@ -736,6 +733,17 @@ static struct platform_device bq24022 = { | |||
| 736 | }, | 733 | }, |
| 737 | }; | 734 | }; |
| 738 | 735 | ||
| 736 | static struct gpiod_lookup_table bq24022_gpiod_table = { | ||
| 737 | .dev_id = "gpio-regulator", | ||
| 738 | .table = { | ||
| 739 | GPIO_LOOKUP("gpio-pxa", GPIO96_HX4700_BQ24022_ISET2, | ||
| 740 | NULL, GPIO_ACTIVE_HIGH), | ||
| 741 | GPIO_LOOKUP("gpio-pxa", GPIO72_HX4700_BQ24022_nCHARGE_EN, | ||
| 742 | "enable", GPIO_ACTIVE_LOW), | ||
| 743 | { }, | ||
| 744 | }, | ||
| 745 | }; | ||
| 746 | |||
| 739 | /* | 747 | /* |
| 740 | * StrataFlash | 748 | * StrataFlash |
| 741 | */ | 749 | */ |
| @@ -878,6 +886,7 @@ static void __init hx4700_init(void) | |||
| 878 | pxa_set_btuart_info(NULL); | 886 | pxa_set_btuart_info(NULL); |
| 879 | pxa_set_stuart_info(NULL); | 887 | pxa_set_stuart_info(NULL); |
| 880 | 888 | ||
| 889 | gpiod_add_lookup_table(&bq24022_gpiod_table); | ||
| 881 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 890 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
| 882 | pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup)); | 891 | pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup)); |
| 883 | 892 | ||
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c index cbaf4f6edcda..7e30452e3840 100644 --- a/arch/arm/mach-pxa/icontrol.c +++ b/arch/arm/mach-pxa/icontrol.c | |||
| @@ -115,12 +115,12 @@ static struct spi_board_info mcp251x_board_info[] = { | |||
| 115 | } | 115 | } |
| 116 | }; | 116 | }; |
| 117 | 117 | ||
| 118 | static struct pxa2xx_spi_master pxa_ssp3_spi_master_info = { | 118 | static struct pxa2xx_spi_controller pxa_ssp3_spi_master_info = { |
| 119 | .num_chipselect = 2, | 119 | .num_chipselect = 2, |
| 120 | .enable_dma = 1 | 120 | .enable_dma = 1 |
| 121 | }; | 121 | }; |
| 122 | 122 | ||
| 123 | static struct pxa2xx_spi_master pxa_ssp4_spi_master_info = { | 123 | static struct pxa2xx_spi_controller pxa_ssp4_spi_master_info = { |
| 124 | .num_chipselect = 2, | 124 | .num_chipselect = 2, |
| 125 | .enable_dma = 1 | 125 | .enable_dma = 1 |
| 126 | }; | 126 | }; |
diff --git a/arch/arm/mach-pxa/include/mach/pxa25x-udc.h b/arch/arm/mach-pxa/include/mach/pxa25x-udc.h deleted file mode 100644 index e69de29bb2d1..000000000000 --- a/arch/arm/mach-pxa/include/mach/pxa25x-udc.h +++ /dev/null | |||
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c index 39db4898dc4a..464b8bd2bcb9 100644 --- a/arch/arm/mach-pxa/littleton.c +++ b/arch/arm/mach-pxa/littleton.c | |||
| @@ -191,7 +191,7 @@ static inline void littleton_init_lcd(void) {}; | |||
| 191 | #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ | 191 | #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ |
| 192 | 192 | ||
| 193 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) | 193 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) |
| 194 | static struct pxa2xx_spi_master littleton_spi_info = { | 194 | static struct pxa2xx_spi_controller littleton_spi_info = { |
| 195 | .num_chipselect = 1, | 195 | .num_chipselect = 1, |
| 196 | }; | 196 | }; |
| 197 | 197 | ||
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index a1391e113ef4..c1bd0d544981 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c | |||
| @@ -197,7 +197,7 @@ static struct platform_device sa1111_device = { | |||
| 197 | * (to J5) and poking board registers (as done below). Else it's only useful | 197 | * (to J5) and poking board registers (as done below). Else it's only useful |
| 198 | * for the temperature sensors. | 198 | * for the temperature sensors. |
| 199 | */ | 199 | */ |
| 200 | static struct pxa2xx_spi_master pxa_ssp_master_info = { | 200 | static struct pxa2xx_spi_controller pxa_ssp_master_info = { |
| 201 | .num_chipselect = 1, | 201 | .num_chipselect = 1, |
| 202 | }; | 202 | }; |
| 203 | 203 | ||
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 08b079653c3f..75abc21083eb 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
| @@ -645,9 +645,8 @@ static struct regulator_init_data bq24022_init_data = { | |||
| 645 | .consumer_supplies = bq24022_consumers, | 645 | .consumer_supplies = bq24022_consumers, |
| 646 | }; | 646 | }; |
| 647 | 647 | ||
| 648 | static struct gpio bq24022_gpios[] = { | 648 | |
| 649 | { EGPIO_MAGICIAN_BQ24022_ISET2, GPIOF_OUT_INIT_LOW, "bq24022_iset2" }, | 649 | static enum gpiod_flags bq24022_gpiod_gflags[] = { GPIOD_OUT_LOW }; |
| 650 | }; | ||
| 651 | 650 | ||
| 652 | static struct gpio_regulator_state bq24022_states[] = { | 651 | static struct gpio_regulator_state bq24022_states[] = { |
| 653 | { .value = 100000, .gpios = (0 << 0) }, | 652 | { .value = 100000, .gpios = (0 << 0) }, |
| @@ -657,12 +656,10 @@ static struct gpio_regulator_state bq24022_states[] = { | |||
| 657 | static struct gpio_regulator_config bq24022_info = { | 656 | static struct gpio_regulator_config bq24022_info = { |
| 658 | .supply_name = "bq24022", | 657 | .supply_name = "bq24022", |
| 659 | 658 | ||
| 660 | .enable_gpio = GPIO30_MAGICIAN_BQ24022_nCHARGE_EN, | ||
| 661 | .enable_high = 0, | ||
| 662 | .enabled_at_boot = 1, | 659 | .enabled_at_boot = 1, |
| 663 | 660 | ||
| 664 | .gpios = bq24022_gpios, | 661 | .gflags = bq24022_gpiod_gflags, |
| 665 | .nr_gpios = ARRAY_SIZE(bq24022_gpios), | 662 | .ngpios = ARRAY_SIZE(bq24022_gpiod_gflags), |
| 666 | 663 | ||
| 667 | .states = bq24022_states, | 664 | .states = bq24022_states, |
| 668 | .nr_states = ARRAY_SIZE(bq24022_states), | 665 | .nr_states = ARRAY_SIZE(bq24022_states), |
| @@ -679,6 +676,17 @@ static struct platform_device bq24022 = { | |||
| 679 | }, | 676 | }, |
| 680 | }; | 677 | }; |
| 681 | 678 | ||
| 679 | static struct gpiod_lookup_table bq24022_gpiod_table = { | ||
| 680 | .dev_id = "gpio-regulator", | ||
| 681 | .table = { | ||
| 682 | GPIO_LOOKUP("gpio-pxa", EGPIO_MAGICIAN_BQ24022_ISET2, | ||
| 683 | NULL, GPIO_ACTIVE_HIGH), | ||
| 684 | GPIO_LOOKUP("gpio-pxa", GPIO30_MAGICIAN_BQ24022_nCHARGE_EN, | ||
| 685 | "enable", GPIO_ACTIVE_LOW), | ||
| 686 | { }, | ||
| 687 | }, | ||
| 688 | }; | ||
| 689 | |||
| 682 | /* | 690 | /* |
| 683 | * fixed regulator for ads7846 | 691 | * fixed regulator for ads7846 |
| 684 | */ | 692 | */ |
| @@ -932,7 +940,7 @@ struct pxa2xx_spi_chip tsc2046_chip_info = { | |||
| 932 | .gpio_cs = GPIO14_MAGICIAN_TSC2046_CS, | 940 | .gpio_cs = GPIO14_MAGICIAN_TSC2046_CS, |
| 933 | }; | 941 | }; |
| 934 | 942 | ||
| 935 | static struct pxa2xx_spi_master magician_spi_info = { | 943 | static struct pxa2xx_spi_controller magician_spi_info = { |
| 936 | .num_chipselect = 1, | 944 | .num_chipselect = 1, |
| 937 | .enable_dma = 1, | 945 | .enable_dma = 1, |
| 938 | }; | 946 | }; |
| @@ -1027,6 +1035,7 @@ static void __init magician_init(void) | |||
| 1027 | regulator_register_always_on(0, "power", pwm_backlight_supply, | 1035 | regulator_register_always_on(0, "power", pwm_backlight_supply, |
| 1028 | ARRAY_SIZE(pwm_backlight_supply), 5000000); | 1036 | ARRAY_SIZE(pwm_backlight_supply), 5000000); |
| 1029 | 1037 | ||
| 1038 | gpiod_add_lookup_table(&bq24022_gpiod_table); | ||
| 1030 | platform_add_devices(ARRAY_AND_SIZE(devices)); | 1039 | platform_add_devices(ARRAY_AND_SIZE(devices)); |
| 1031 | } | 1040 | } |
| 1032 | 1041 | ||
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c index ccca9f7575c3..e2e613449660 100644 --- a/arch/arm/mach-pxa/pcm027.c +++ b/arch/arm/mach-pxa/pcm027.c | |||
| @@ -132,7 +132,7 @@ static struct platform_device smc91x_device = { | |||
| 132 | /* | 132 | /* |
| 133 | * SPI host and devices | 133 | * SPI host and devices |
| 134 | */ | 134 | */ |
| 135 | static struct pxa2xx_spi_master pxa_ssp_master_info = { | 135 | static struct pxa2xx_spi_controller pxa_ssp_master_info = { |
| 136 | .num_chipselect = 1, | 136 | .num_chipselect = 1, |
| 137 | }; | 137 | }; |
| 138 | 138 | ||
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index c2a43d4cfd3e..9450a523cd0b 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
| @@ -196,7 +196,7 @@ struct platform_device poodle_locomo_device = { | |||
| 196 | EXPORT_SYMBOL(poodle_locomo_device); | 196 | EXPORT_SYMBOL(poodle_locomo_device); |
| 197 | 197 | ||
| 198 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) | 198 | #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) |
| 199 | static struct pxa2xx_spi_master poodle_spi_info = { | 199 | static struct pxa2xx_spi_controller poodle_spi_info = { |
| 200 | .num_chipselect = 1, | 200 | .num_chipselect = 1, |
| 201 | }; | 201 | }; |
| 202 | 202 | ||
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c deleted file mode 100644 index e1db072756f2..000000000000 --- a/arch/arm/mach-pxa/raumfeld.c +++ /dev/null | |||
| @@ -1,1187 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * arch/arm/mach-pxa/raumfeld.c | ||
| 3 | * | ||
| 4 | * Support for the following Raumfeld devices: | ||
| 5 | * | ||
| 6 | * * Controller | ||
| 7 | * * Connector | ||
| 8 | * * Speaker S/M | ||
| 9 | * | ||
| 10 | * See http://www.raumfeld.com for details. | ||
| 11 | * | ||
| 12 | * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de> | ||
| 13 | * | ||
| 14 | * This program is free software; you can redistribute it and/or modify | ||
| 15 | * it under the terms of the GNU General Public License version 2 as | ||
| 16 | * published by the Free Software Foundation. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #include <linux/init.h> | ||
| 20 | #include <linux/kernel.h> | ||
| 21 | #include <linux/property.h> | ||
| 22 | #include <linux/platform_device.h> | ||
| 23 | #include <linux/interrupt.h> | ||
| 24 | #include <linux/gpio.h> | ||
| 25 | #include <linux/gpio/machine.h> | ||
| 26 | #include <linux/smsc911x.h> | ||
| 27 | #include <linux/input.h> | ||
| 28 | #include <linux/gpio_keys.h> | ||
| 29 | #include <linux/leds.h> | ||
| 30 | #include <linux/w1-gpio.h> | ||
| 31 | #include <linux/sched.h> | ||
| 32 | #include <linux/pwm.h> | ||
| 33 | #include <linux/pwm_backlight.h> | ||
| 34 | #include <linux/i2c.h> | ||
| 35 | #include <linux/platform_data/i2c-pxa.h> | ||
| 36 | #include <linux/spi/spi.h> | ||
| 37 | #include <linux/spi/spi_gpio.h> | ||
| 38 | #include <linux/lis3lv02d.h> | ||
| 39 | #include <linux/pda_power.h> | ||
| 40 | #include <linux/power_supply.h> | ||
| 41 | #include <linux/regulator/max8660.h> | ||
| 42 | #include <linux/regulator/machine.h> | ||
| 43 | #include <linux/regulator/fixed.h> | ||
| 44 | #include <linux/regulator/consumer.h> | ||
| 45 | #include <linux/delay.h> | ||
| 46 | |||
| 47 | #include <asm/system_info.h> | ||
| 48 | |||
| 49 | #include <asm/mach-types.h> | ||
| 50 | #include <asm/mach/arch.h> | ||
| 51 | |||
| 52 | #include "pxa300.h" | ||
| 53 | #include <linux/platform_data/usb-ohci-pxa27x.h> | ||
| 54 | #include <linux/platform_data/video-pxafb.h> | ||
| 55 | #include <linux/platform_data/mmc-pxamci.h> | ||
| 56 | #include <linux/platform_data/mtd-nand-pxa3xx.h> | ||
| 57 | |||
| 58 | #include "generic.h" | ||
| 59 | #include "devices.h" | ||
| 60 | |||
| 61 | /* common GPIO definitions */ | ||
| 62 | |||
| 63 | /* inputs */ | ||
| 64 | #define GPIO_ON_OFF (14) | ||
| 65 | #define GPIO_VOLENC_A (19) | ||
| 66 | #define GPIO_VOLENC_B (20) | ||
| 67 | #define GPIO_CHARGE_DONE (23) | ||
| 68 | #define GPIO_CHARGE_IND (27) | ||
| 69 | #define GPIO_TOUCH_IRQ (32) | ||
| 70 | #define GPIO_ETH_IRQ (40) | ||
| 71 | #define GPIO_SPI_MISO (98) | ||
| 72 | #define GPIO_ACCEL_IRQ (104) | ||
| 73 | #define GPIO_RESCUE_BOOT (115) | ||
| 74 | #define GPIO_DOCK_DETECT (116) | ||
| 75 | #define GPIO_KEY1 (117) | ||
| 76 | #define GPIO_KEY2 (118) | ||
| 77 | #define GPIO_KEY3 (119) | ||
| 78 | #define GPIO_CHARGE_USB_OK (112) | ||
| 79 | #define GPIO_CHARGE_DC_OK (101) | ||
| 80 | #define GPIO_CHARGE_USB_SUSP (102) | ||
| 81 | |||
| 82 | /* outputs */ | ||
| 83 | #define GPIO_SHUTDOWN_SUPPLY (16) | ||
| 84 | #define GPIO_SHUTDOWN_BATT (18) | ||
| 85 | #define GPIO_CHRG_PEN2 (31) | ||
| 86 | #define GPIO_TFT_VA_EN (33) | ||
| 87 | #define GPIO_SPDIF_CS (34) | ||
| 88 | #define GPIO_LED2 (35) | ||
| 89 | #define GPIO_LED1 (36) | ||
| 90 | #define GPIO_SPDIF_RESET (38) | ||
| 91 | #define GPIO_SPI_CLK (95) | ||
| 92 | #define GPIO_MCLK_DAC_CS (96) | ||
| 93 | #define GPIO_SPI_MOSI (97) | ||
| 94 | #define GPIO_W1_PULLUP_ENABLE (105) | ||
| 95 | #define GPIO_DISPLAY_ENABLE (106) | ||
| 96 | #define GPIO_MCLK_RESET (111) | ||
| 97 | #define GPIO_W2W_RESET (113) | ||
| 98 | #define GPIO_W2W_PDN (114) | ||
| 99 | #define GPIO_CODEC_RESET (120) | ||
| 100 | #define GPIO_AUDIO_VA_ENABLE (124) | ||
| 101 | #define GPIO_ACCEL_CS (125) | ||
| 102 | #define GPIO_ONE_WIRE (126) | ||
| 103 | |||
| 104 | /* | ||
| 105 | * GPIO configurations | ||
| 106 | */ | ||
| 107 | static mfp_cfg_t raumfeld_controller_pin_config[] __initdata = { | ||
| 108 | /* UART1 */ | ||
| 109 | GPIO77_UART1_RXD, | ||
| 110 | GPIO78_UART1_TXD, | ||
| 111 | GPIO79_UART1_CTS, | ||
| 112 | GPIO81_UART1_DSR, | ||
| 113 | GPIO83_UART1_DTR, | ||
| 114 | GPIO84_UART1_RTS, | ||
| 115 | |||
| 116 | /* UART3 */ | ||
| 117 | GPIO110_UART3_RXD, | ||
| 118 | |||
| 119 | /* USB Host */ | ||
| 120 | GPIO0_2_USBH_PEN, | ||
| 121 | GPIO1_2_USBH_PWR, | ||
| 122 | |||
| 123 | /* I2C */ | ||
| 124 | GPIO21_I2C_SCL | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 125 | GPIO22_I2C_SDA | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 126 | |||
| 127 | /* SPI */ | ||
| 128 | GPIO34_GPIO, /* SPDIF_CS */ | ||
| 129 | GPIO96_GPIO, /* MCLK_CS */ | ||
| 130 | GPIO125_GPIO, /* ACCEL_CS */ | ||
| 131 | |||
| 132 | /* MMC */ | ||
| 133 | GPIO3_MMC1_DAT0, | ||
| 134 | GPIO4_MMC1_DAT1, | ||
| 135 | GPIO5_MMC1_DAT2, | ||
| 136 | GPIO6_MMC1_DAT3, | ||
| 137 | GPIO7_MMC1_CLK, | ||
| 138 | GPIO8_MMC1_CMD, | ||
| 139 | |||
| 140 | /* One-wire */ | ||
| 141 | GPIO126_GPIO | MFP_LPM_FLOAT, | ||
| 142 | GPIO105_GPIO | MFP_PULL_LOW | MFP_LPM_PULL_LOW, | ||
| 143 | |||
| 144 | /* CHRG_USB_OK */ | ||
| 145 | GPIO101_GPIO | MFP_PULL_HIGH, | ||
| 146 | /* CHRG_USB_OK */ | ||
| 147 | GPIO112_GPIO | MFP_PULL_HIGH, | ||
| 148 | /* CHRG_USB_SUSP */ | ||
| 149 | GPIO102_GPIO, | ||
| 150 | /* DISPLAY_ENABLE */ | ||
| 151 | GPIO106_GPIO, | ||
| 152 | /* DOCK_DETECT */ | ||
| 153 | GPIO116_GPIO | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 154 | |||
| 155 | /* LCD */ | ||
| 156 | GPIO54_LCD_LDD_0, | ||
| 157 | GPIO55_LCD_LDD_1, | ||
| 158 | GPIO56_LCD_LDD_2, | ||
| 159 | GPIO57_LCD_LDD_3, | ||
| 160 | GPIO58_LCD_LDD_4, | ||
| 161 | GPIO59_LCD_LDD_5, | ||
| 162 | GPIO60_LCD_LDD_6, | ||
| 163 | GPIO61_LCD_LDD_7, | ||
| 164 | GPIO62_LCD_LDD_8, | ||
| 165 | GPIO63_LCD_LDD_9, | ||
| 166 | GPIO64_LCD_LDD_10, | ||
| 167 | GPIO65_LCD_LDD_11, | ||
| 168 | GPIO66_LCD_LDD_12, | ||
| 169 | GPIO67_LCD_LDD_13, | ||
| 170 | GPIO68_LCD_LDD_14, | ||
| 171 | GPIO69_LCD_LDD_15, | ||
| 172 | GPIO70_LCD_LDD_16, | ||
| 173 | GPIO71_LCD_LDD_17, | ||
| 174 | GPIO72_LCD_FCLK, | ||
| 175 | GPIO73_LCD_LCLK, | ||
| 176 | GPIO74_LCD_PCLK, | ||
| 177 | GPIO75_LCD_BIAS, | ||
| 178 | }; | ||
| 179 | |||
| 180 | static mfp_cfg_t raumfeld_connector_pin_config[] __initdata = { | ||
| 181 | /* UART1 */ | ||
| 182 | GPIO77_UART1_RXD, | ||
| 183 | GPIO78_UART1_TXD, | ||
| 184 | GPIO79_UART1_CTS, | ||
| 185 | GPIO81_UART1_DSR, | ||
| 186 | GPIO83_UART1_DTR, | ||
| 187 | GPIO84_UART1_RTS, | ||
| 188 | |||
| 189 | /* UART3 */ | ||
| 190 | GPIO110_UART3_RXD, | ||
| 191 | |||
| 192 | /* USB Host */ | ||
| 193 | GPIO0_2_USBH_PEN, | ||
| 194 | GPIO1_2_USBH_PWR, | ||
| 195 | |||
| 196 | /* I2C */ | ||
| 197 | GPIO21_I2C_SCL | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 198 | GPIO22_I2C_SDA | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 199 | |||
| 200 | /* SPI */ | ||
| 201 | GPIO34_GPIO, /* SPDIF_CS */ | ||
| 202 | GPIO96_GPIO, /* MCLK_CS */ | ||
| 203 | GPIO125_GPIO, /* ACCEL_CS */ | ||
| 204 | |||
| 205 | /* MMC */ | ||
| 206 | GPIO3_MMC1_DAT0, | ||
| 207 | GPIO4_MMC1_DAT1, | ||
| 208 | GPIO5_MMC1_DAT2, | ||
| 209 | GPIO6_MMC1_DAT3, | ||
| 210 | GPIO7_MMC1_CLK, | ||
| 211 | GPIO8_MMC1_CMD, | ||
| 212 | |||
| 213 | /* Ethernet */ | ||
| 214 | GPIO1_nCS2, /* CS */ | ||
| 215 | GPIO40_GPIO | MFP_PULL_HIGH, /* IRQ */ | ||
| 216 | |||
| 217 | /* SSP for I2S */ | ||
| 218 | GPIO85_SSP1_SCLK, | ||
| 219 | GPIO89_SSP1_EXTCLK, | ||
| 220 | GPIO86_SSP1_FRM, | ||
| 221 | GPIO87_SSP1_TXD, | ||
| 222 | GPIO88_SSP1_RXD, | ||
| 223 | GPIO90_SSP1_SYSCLK, | ||
| 224 | |||
| 225 | /* SSP2 for S/PDIF */ | ||
| 226 | GPIO25_SSP2_SCLK, | ||
| 227 | GPIO26_SSP2_FRM, | ||
| 228 | GPIO27_SSP2_TXD, | ||
| 229 | GPIO29_SSP2_EXTCLK, | ||
| 230 | |||
| 231 | /* LEDs */ | ||
| 232 | GPIO35_GPIO | MFP_LPM_PULL_LOW, | ||
| 233 | GPIO36_GPIO | MFP_LPM_DRIVE_HIGH, | ||
| 234 | }; | ||
| 235 | |||
| 236 | static mfp_cfg_t raumfeld_speaker_pin_config[] __initdata = { | ||
| 237 | /* UART1 */ | ||
| 238 | GPIO77_UART1_RXD, | ||
| 239 | GPIO78_UART1_TXD, | ||
| 240 | GPIO79_UART1_CTS, | ||
| 241 | GPIO81_UART1_DSR, | ||
| 242 | GPIO83_UART1_DTR, | ||
| 243 | GPIO84_UART1_RTS, | ||
| 244 | |||
| 245 | /* UART3 */ | ||
| 246 | GPIO110_UART3_RXD, | ||
| 247 | |||
| 248 | /* USB Host */ | ||
| 249 | GPIO0_2_USBH_PEN, | ||
| 250 | GPIO1_2_USBH_PWR, | ||
| 251 | |||
| 252 | /* I2C */ | ||
| 253 | GPIO21_I2C_SCL | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 254 | GPIO22_I2C_SDA | MFP_LPM_FLOAT | MFP_PULL_FLOAT, | ||
| 255 | |||
| 256 | /* SPI */ | ||
| 257 | GPIO34_GPIO, /* SPDIF_CS */ | ||
| 258 | GPIO96_GPIO, /* MCLK_CS */ | ||
| 259 | GPIO125_GPIO, /* ACCEL_CS */ | ||
| 260 | |||
| 261 | /* MMC */ | ||
| 262 | GPIO3_MMC1_DAT0, | ||
| 263 | GPIO4_MMC1_DAT1, | ||
| 264 | GPIO5_MMC1_DAT2, | ||
| 265 | GPIO6_MMC1_DAT3, | ||
| 266 | GPIO7_MMC1_CLK, | ||
| 267 | GPIO8_MMC1_CMD, | ||
| 268 | |||
| 269 | /* Ethernet */ | ||
| 270 | GPIO1_nCS2, /* CS */ | ||
| 271 | GPIO40_GPIO | MFP_PULL_HIGH, /* IRQ */ | ||
| 272 | |||
| 273 | /* SSP for I2S */ | ||
| 274 | GPIO85_SSP1_SCLK, | ||
| 275 | GPIO89_SSP1_EXTCLK, | ||
| 276 | GPIO86_SSP1_FRM, | ||
| 277 | GPIO87_SSP1_TXD, | ||
| 278 | GPIO88_SSP1_RXD, | ||
| 279 | GPIO90_SSP1_SYSCLK, | ||
| 280 | |||
| 281 | /* LEDs */ | ||
| 282 | GPIO35_GPIO | MFP_LPM_PULL_LOW, | ||
| 283 | GPIO36_GPIO | MFP_LPM_DRIVE_HIGH, | ||
| 284 | }; | ||
| 285 | |||
| 286 | /* | ||
| 287 | * SMSC LAN9220 Ethernet | ||
| 288 | */ | ||
| 289 | |||
| 290 | static struct resource smc91x_resources[] = { | ||
| 291 | { | ||
| 292 | .start = PXA3xx_CS2_PHYS, | ||
| 293 | .end = PXA3xx_CS2_PHYS + 0xfffff, | ||
| 294 | .flags = IORESOURCE_MEM, | ||
| 295 | }, | ||
| 296 | { | ||
| 297 | .start = PXA_GPIO_TO_IRQ(GPIO_ETH_IRQ), | ||
| 298 | .end = PXA_GPIO_TO_IRQ(GPIO_ETH_IRQ), | ||
| 299 | .flags = IORESOURCE_IRQ | IRQF_TRIGGER_FALLING, | ||
| 300 | } | ||
| 301 | }; | ||
| 302 | |||
| 303 | static struct smsc911x_platform_config raumfeld_smsc911x_config = { | ||
| 304 | .phy_interface = PHY_INTERFACE_MODE_MII, | ||
| 305 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
| 306 | .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, | ||
| 307 | .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS, | ||
| 308 | }; | ||
| 309 | |||
| 310 | static struct platform_device smc91x_device = { | ||
| 311 | .name = "smsc911x", | ||
| 312 | .id = -1, | ||
| 313 | .num_resources = ARRAY_SIZE(smc91x_resources), | ||
| 314 | .resource = smc91x_resources, | ||
| 315 | .dev = { | ||
| 316 | .platform_data = &raumfeld_smsc911x_config, | ||
| 317 | } | ||
| 318 | }; | ||
| 319 | |||
| 320 | /** | ||
| 321 | * NAND | ||
| 322 | */ | ||
| 323 | |||
| 324 | static struct mtd_partition raumfeld_nand_partitions[] = { | ||
| 325 | { | ||
| 326 | .name = "Bootloader", | ||
| 327 | .offset = 0, | ||
| 328 | .size = 0xa0000, | ||
| 329 | .mask_flags = MTD_WRITEABLE, /* force read-only */ | ||
| 330 | }, | ||
| 331 | { | ||
| 332 | .name = "BootloaderEnvironment", | ||
| 333 | .offset = 0xa0000, | ||
| 334 | .size = 0x20000, | ||
| 335 | }, | ||
| 336 | { | ||
| 337 | .name = "BootloaderSplashScreen", | ||
| 338 | .offset = 0xc0000, | ||
| 339 | .size = 0x60000, | ||
| 340 | }, | ||
| 341 | { | ||
| 342 | .name = "UBI", | ||
| 343 | .offset = 0x120000, | ||
| 344 | .size = MTDPART_SIZ_FULL, | ||
| 345 | }, | ||
| 346 | }; | ||
| 347 | |||
| 348 | static struct pxa3xx_nand_platform_data raumfeld_nand_info = { | ||
| 349 | .keep_config = 1, | ||
| 350 | .parts = raumfeld_nand_partitions, | ||
| 351 | .nr_parts = ARRAY_SIZE(raumfeld_nand_partitions), | ||
| 352 | }; | ||
| 353 | |||
| 354 | /** | ||
| 355 | * USB (OHCI) support | ||
| 356 | */ | ||
| 357 | |||
| 358 | static struct pxaohci_platform_data raumfeld_ohci_info = { | ||
| 359 | .port_mode = PMM_GLOBAL_MODE, | ||
| 360 | .flags = ENABLE_PORT1, | ||
| 361 | }; | ||
| 362 | |||
| 363 | /** | ||
| 364 | * Rotary encoder input device | ||
| 365 | */ | ||
| 366 | |||
| 367 | static struct gpiod_lookup_table raumfeld_rotary_gpios_table = { | ||
| 368 | .dev_id = "rotary-encoder.0", | ||
| 369 | .table = { | ||
| 370 | GPIO_LOOKUP_IDX("gpio-0", | ||
| 371 | GPIO_VOLENC_A, NULL, 0, GPIO_ACTIVE_LOW), | ||
| 372 | GPIO_LOOKUP_IDX("gpio-0", | ||
| 373 | GPIO_VOLENC_B, NULL, 1, GPIO_ACTIVE_HIGH), | ||
| 374 | { }, | ||
| 375 | }, | ||
| 376 | }; | ||
| 377 | |||
| 378 | static const struct property_entry raumfeld_rotary_properties[] __initconst = { | ||
| 379 | PROPERTY_ENTRY_U32("rotary-encoder,steps-per-period", 24), | ||
| 380 | PROPERTY_ENTRY_U32("linux,axis", REL_X), | ||
| 381 | PROPERTY_ENTRY_U32("rotary-encoder,relative_axis", 1), | ||
| 382 | { }, | ||
| 383 | }; | ||
| 384 | |||
| 385 | static struct platform_device rotary_encoder_device = { | ||
| 386 | .name = "rotary-encoder", | ||
| 387 | .id = 0, | ||
| 388 | }; | ||
| 389 | |||
| 390 | /** | ||
| 391 | * GPIO buttons | ||
| 392 | */ | ||
| 393 | |||
| 394 | static struct gpio_keys_button gpio_keys_button[] = { | ||
| 395 | { | ||
| 396 | .code = KEY_F1, | ||
| 397 | .type = EV_KEY, | ||
| 398 | .gpio = GPIO_KEY1, | ||
| 399 | .active_low = 1, | ||
| 400 | .wakeup = 0, | ||
| 401 | .debounce_interval = 5, /* ms */ | ||
| 402 | .desc = "Button 1", | ||
| 403 | }, | ||
| 404 | { | ||
| 405 | .code = KEY_F2, | ||
| 406 | .type = EV_KEY, | ||
| 407 | .gpio = GPIO_KEY2, | ||
| 408 | .active_low = 1, | ||
| 409 | .wakeup = 0, | ||
| 410 | .debounce_interval = 5, /* ms */ | ||
| 411 | .desc = "Button 2", | ||
| 412 | }, | ||
| 413 | { | ||
| 414 | .code = KEY_F3, | ||
| 415 | .type = EV_KEY, | ||
| 416 | .gpio = GPIO_KEY3, | ||
| 417 | .active_low = 1, | ||
| 418 | .wakeup = 0, | ||
| 419 | .debounce_interval = 5, /* ms */ | ||
| 420 | .desc = "Button 3", | ||
| 421 | }, | ||
| 422 | { | ||
| 423 | .code = KEY_F4, | ||
| 424 | .type = EV_KEY, | ||
| 425 | .gpio = GPIO_RESCUE_BOOT, | ||
| 426 | .active_low = 0, | ||
| 427 | .wakeup = 0, | ||
| 428 | .debounce_interval = 5, /* ms */ | ||
| 429 | .desc = "rescue boot button", | ||
| 430 | }, | ||
| 431 | { | ||
| 432 | .code = KEY_F5, | ||
| 433 | .type = EV_KEY, | ||
| 434 | .gpio = GPIO_DOCK_DETECT, | ||
| 435 | .active_low = 1, | ||
| 436 | .wakeup = 0, | ||
| 437 | .debounce_interval = 5, /* ms */ | ||
| 438 | .desc = "dock detect", | ||
| 439 | }, | ||
| 440 | { | ||
| 441 | .code = KEY_F6, | ||
| 442 | .type = EV_KEY, | ||
| 443 | .gpio = GPIO_ON_OFF, | ||
| 444 | .active_low = 0, | ||
| 445 | .wakeup = 0, | ||
| 446 | .debounce_interval = 5, /* ms */ | ||
| 447 | .desc = "on_off button", | ||
| 448 | }, | ||
| 449 | }; | ||
| 450 | |||
| 451 | static struct gpio_keys_platform_data gpio_keys_platform_data = { | ||
| 452 | .buttons = gpio_keys_button, | ||
| 453 | .nbuttons = ARRAY_SIZE(gpio_keys_button), | ||
| 454 | .rep = 0, | ||
| 455 | }; | ||
| 456 | |||
| 457 | static struct platform_device raumfeld_gpio_keys_device = { | ||
| 458 | .name = "gpio-keys", | ||
| 459 | .id = -1, | ||
| 460 | .dev = { | ||
| 461 | .platform_data = &gpio_keys_platform_data, | ||
| 462 | } | ||
| 463 | }; | ||
| 464 | |||
| 465 | /** | ||
| 466 | * GPIO LEDs | ||
| 467 | */ | ||
| 468 | |||
| 469 | static struct gpio_led raumfeld_leds[] = { | ||
| 470 | { | ||
| 471 | .name = "raumfeld:1", | ||
| 472 | .gpio = GPIO_LED1, | ||
| 473 | .active_low = 1, | ||
| 474 | .default_state = LEDS_GPIO_DEFSTATE_ON, | ||
| 475 | }, | ||
| 476 | { | ||
| 477 | .name = "raumfeld:2", | ||
| 478 | .gpio = GPIO_LED2, | ||
| 479 | .active_low = 0, | ||
| 480 | .default_state = LEDS_GPIO_DEFSTATE_OFF, | ||
| 481 | } | ||
| 482 | }; | ||
| 483 | |||
| 484 | static struct gpio_led_platform_data raumfeld_led_platform_data = { | ||
| 485 | .leds = raumfeld_leds, | ||
| 486 | .num_leds = ARRAY_SIZE(raumfeld_leds), | ||
| 487 | }; | ||
| 488 | |||
| 489 | static struct platform_device raumfeld_led_device = { | ||
| 490 | .name = "leds-gpio", | ||
| 491 | .id = -1, | ||
| 492 | .dev = { | ||
| 493 | .platform_data = &raumfeld_led_platform_data, | ||
| 494 | }, | ||
| 495 | }; | ||
| 496 | |||
| 497 | /** | ||
| 498 | * One-wire (W1 bus) support | ||
| 499 | */ | ||
| 500 | |||
| 501 | static void w1_enable_external_pullup(int enable) | ||
| 502 | { | ||
| 503 | gpio_set_value(GPIO_W1_PULLUP_ENABLE, enable); | ||
| 504 | msleep(100); | ||
| 505 | } | ||
| 506 | |||
| 507 | static struct gpiod_lookup_table raumfeld_w1_gpiod_table = { | ||
| 508 | .dev_id = "w1-gpio", | ||
| 509 | .table = { | ||
| 510 | GPIO_LOOKUP_IDX("gpio-pxa", GPIO_ONE_WIRE, NULL, 0, | ||
| 511 | GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), | ||
| 512 | }, | ||
| 513 | }; | ||
| 514 | |||
| 515 | static struct w1_gpio_platform_data w1_gpio_platform_data = { | ||
| 516 | .enable_external_pullup = w1_enable_external_pullup, | ||
| 517 | }; | ||
| 518 | |||
| 519 | static struct platform_device raumfeld_w1_gpio_device = { | ||
| 520 | .name = "w1-gpio", | ||
| 521 | .dev = { | ||
| 522 | .platform_data = &w1_gpio_platform_data | ||
| 523 | } | ||
| 524 | }; | ||
| 525 | |||
| 526 | static void __init raumfeld_w1_init(void) | ||
| 527 | { | ||
| 528 | int ret = gpio_request(GPIO_W1_PULLUP_ENABLE, | ||
| 529 | "W1 external pullup enable"); | ||
| 530 | |||
| 531 | if (ret < 0) | ||
| 532 | pr_warn("Unable to request GPIO_W1_PULLUP_ENABLE\n"); | ||
| 533 | else | ||
| 534 | gpio_direction_output(GPIO_W1_PULLUP_ENABLE, 0); | ||
| 535 | |||
| 536 | gpiod_add_lookup_table(&raumfeld_w1_gpiod_table); | ||
| 537 | platform_device_register(&raumfeld_w1_gpio_device); | ||
| 538 | } | ||
| 539 | |||
| 540 | /** | ||
| 541 | * Framebuffer device | ||
| 542 | */ | ||
| 543 | |||
| 544 | static struct pwm_lookup raumfeld_pwm_lookup[] = { | ||
| 545 | PWM_LOOKUP("pxa27x-pwm.0", 0, "pwm-backlight", NULL, 10000, | ||
| 546 | PWM_POLARITY_NORMAL), | ||
| 547 | }; | ||
| 548 | |||
| 549 | /* PWM controlled backlight */ | ||
| 550 | static struct platform_pwm_backlight_data raumfeld_pwm_backlight_data = { | ||
| 551 | .max_brightness = 100, | ||
| 552 | .dft_brightness = 100, | ||
| 553 | .enable_gpio = -1, | ||
| 554 | }; | ||
| 555 | |||
| 556 | static struct platform_device raumfeld_pwm_backlight_device = { | ||
| 557 | .name = "pwm-backlight", | ||
| 558 | .dev = { | ||
| 559 | .parent = &pxa27x_device_pwm0.dev, | ||
| 560 | .platform_data = &raumfeld_pwm_backlight_data, | ||
| 561 | } | ||
| 562 | }; | ||
| 563 | |||
| 564 | /* LT3593 controlled backlight */ | ||
| 565 | static struct gpio_led raumfeld_lt3593_led = { | ||
| 566 | .name = "backlight", | ||
| 567 | .gpio = mfp_to_gpio(MFP_PIN_GPIO17), | ||
| 568 | .default_state = LEDS_GPIO_DEFSTATE_ON, | ||
| 569 | }; | ||
| 570 | |||
| 571 | static struct gpio_led_platform_data raumfeld_lt3593_platform_data = { | ||
| 572 | .leds = &raumfeld_lt3593_led, | ||
| 573 | .num_leds = 1, | ||
| 574 | }; | ||
| 575 | |||
| 576 | static struct platform_device raumfeld_lt3593_device = { | ||
| 577 | .name = "leds-lt3593", | ||
| 578 | .id = -1, | ||
| 579 | .dev = { | ||
| 580 | .platform_data = &raumfeld_lt3593_platform_data, | ||
| 581 | }, | ||
| 582 | }; | ||
| 583 | |||
| 584 | static struct pxafb_mode_info sharp_lq043t3dx02_mode = { | ||
| 585 | .pixclock = 111000, | ||
| 586 | .xres = 480, | ||
| 587 | .yres = 272, | ||
| 588 | .bpp = 16, | ||
| 589 | .hsync_len = 41, | ||
| 590 | .left_margin = 2, | ||
| 591 | .right_margin = 1, | ||
| 592 | .vsync_len = 10, | ||
| 593 | .upper_margin = 3, | ||
| 594 | .lower_margin = 1, | ||
| 595 | .sync = 0, | ||
| 596 | }; | ||
| 597 | |||
| 598 | static struct pxafb_mach_info raumfeld_sharp_lcd_info = { | ||
| 599 | .modes = &sharp_lq043t3dx02_mode, | ||
| 600 | .num_modes = 1, | ||
| 601 | .video_mem_size = 0x400000, | ||
| 602 | .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL, | ||
| 603 | #ifdef CONFIG_PXA3XX_GCU | ||
| 604 | .acceleration_enabled = 1, | ||
| 605 | #endif | ||
| 606 | }; | ||
| 607 | |||
| 608 | static void __init raumfeld_lcd_init(void) | ||
| 609 | { | ||
| 610 | int ret; | ||
| 611 | |||
| 612 | ret = gpio_request(GPIO_TFT_VA_EN, "display VA enable"); | ||
| 613 | if (ret < 0) | ||
| 614 | pr_warn("Unable to request GPIO_TFT_VA_EN\n"); | ||
| 615 | else | ||
| 616 | gpio_direction_output(GPIO_TFT_VA_EN, 1); | ||
| 617 | |||
| 618 | msleep(100); | ||
| 619 | |||
| 620 | ret = gpio_request(GPIO_DISPLAY_ENABLE, "display enable"); | ||
| 621 | if (ret < 0) | ||
| 622 | pr_warn("Unable to request GPIO_DISPLAY_ENABLE\n"); | ||
| 623 | else | ||
| 624 | gpio_direction_output(GPIO_DISPLAY_ENABLE, 1); | ||
| 625 | |||
| 626 | /* Hardware revision 2 has the backlight regulator controlled | ||
| 627 | * by an LT3593, earlier and later devices use PWM for that. */ | ||
| 628 | if ((system_rev & 0xff) == 2) { | ||
| 629 | platform_device_register(&raumfeld_lt3593_device); | ||
| 630 | } else { | ||
| 631 | mfp_cfg_t raumfeld_pwm_pin_config = GPIO17_PWM0_OUT; | ||
| 632 | pxa3xx_mfp_config(&raumfeld_pwm_pin_config, 1); | ||
| 633 | pwm_add_table(raumfeld_pwm_lookup, | ||
| 634 | ARRAY_SIZE(raumfeld_pwm_lookup)); | ||
| 635 | platform_device_register(&raumfeld_pwm_backlight_device); | ||
| 636 | } | ||
| 637 | |||
| 638 | pxa_set_fb_info(NULL, &raumfeld_sharp_lcd_info); | ||
| 639 | platform_device_register(&pxa3xx_device_gcu); | ||
| 640 | } | ||
| 641 | |||
| 642 | /** | ||
| 643 | * SPI devices | ||
| 644 | */ | ||
| 645 | |||
| 646 | static struct spi_gpio_platform_data raumfeld_spi_platform_data = { | ||
| 647 | .num_chipselect = 3, | ||
| 648 | }; | ||
| 649 | |||
| 650 | static struct platform_device raumfeld_spi_device = { | ||
| 651 | .name = "spi_gpio", | ||
| 652 | .id = 0, | ||
| 653 | .dev = { | ||
| 654 | .platform_data = &raumfeld_spi_platform_data, | ||
| 655 | } | ||
| 656 | }; | ||
| 657 | |||
| 658 | static struct gpiod_lookup_table raumfeld_spi_gpiod_table = { | ||
| 659 | .dev_id = "spi_gpio", | ||
| 660 | .table = { | ||
| 661 | GPIO_LOOKUP("gpio-0", GPIO_SPI_CLK, | ||
| 662 | "sck", GPIO_ACTIVE_HIGH), | ||
| 663 | GPIO_LOOKUP("gpio-0", GPIO_SPI_MOSI, | ||
| 664 | "mosi", GPIO_ACTIVE_HIGH), | ||
| 665 | GPIO_LOOKUP("gpio-0", GPIO_SPI_MISO, | ||
| 666 | "miso", GPIO_ACTIVE_HIGH), | ||
| 667 | GPIO_LOOKUP_IDX("gpio-0", GPIO_SPDIF_CS, | ||
| 668 | "cs", 0, GPIO_ACTIVE_HIGH), | ||
| 669 | GPIO_LOOKUP_IDX("gpio-0", GPIO_ACCEL_CS, | ||
| 670 | "cs", 1, GPIO_ACTIVE_HIGH), | ||
| 671 | GPIO_LOOKUP_IDX("gpio-0", GPIO_MCLK_DAC_CS, | ||
| 672 | "cs", 2, GPIO_ACTIVE_HIGH), | ||
| 673 | { }, | ||
| 674 | }, | ||
| 675 | }; | ||
| 676 | |||
| 677 | static struct lis3lv02d_platform_data lis3_pdata = { | ||
| 678 | .click_flags = LIS3_CLICK_SINGLE_X | | ||
| 679 | LIS3_CLICK_SINGLE_Y | | ||
| 680 | LIS3_CLICK_SINGLE_Z, | ||
| 681 | .irq_cfg = LIS3_IRQ1_CLICK | LIS3_IRQ2_CLICK, | ||
| 682 | .wakeup_flags = LIS3_WAKEUP_X_LO | LIS3_WAKEUP_X_HI | | ||
| 683 | LIS3_WAKEUP_Y_LO | LIS3_WAKEUP_Y_HI | | ||
| 684 | LIS3_WAKEUP_Z_LO | LIS3_WAKEUP_Z_HI, | ||
| 685 | .wakeup_thresh = 10, | ||
| 686 | .click_thresh_x = 10, | ||
| 687 | .click_thresh_y = 10, | ||
| 688 | .click_thresh_z = 10, | ||
| 689 | }; | ||
| 690 | |||
| 691 | #define SPI_AK4104 \ | ||
| 692 | { \ | ||
| 693 | .modalias = "ak4104-codec", \ | ||
| 694 | .max_speed_hz = 10000, \ | ||
| 695 | .bus_num = 0, \ | ||
| 696 | .chip_select = 0, \ | ||
| 697 | } | ||
| 698 | |||
| 699 | #define SPI_LIS3 \ | ||
| 700 | { \ | ||
| 701 | .modalias = "lis3lv02d_spi", \ | ||
| 702 | .max_speed_hz = 1000000, \ | ||
| 703 | .bus_num = 0, \ | ||
| 704 | .chip_select = 1, \ | ||
| 705 | .platform_data = &lis3_pdata, \ | ||
| 706 | .irq = PXA_GPIO_TO_IRQ(GPIO_ACCEL_IRQ), \ | ||
| 707 | } | ||
| 708 | |||
| 709 | #define SPI_DAC7512 \ | ||
| 710 | { \ | ||
| 711 | .modalias = "dac7512", \ | ||
| 712 | .max_speed_hz = 1000000, \ | ||
| 713 | .bus_num = 0, \ | ||
| 714 | .chip_select = 2, \ | ||
| 715 | } | ||
| 716 | |||
| 717 | static struct spi_board_info connector_spi_devices[] __initdata = { | ||
| 718 | SPI_AK4104, | ||
| 719 | SPI_DAC7512, | ||
| 720 | }; | ||
| 721 | |||
| 722 | static struct spi_board_info speaker_spi_devices[] __initdata = { | ||
| 723 | SPI_DAC7512, | ||
| 724 | }; | ||
| 725 | |||
| 726 | static struct spi_board_info controller_spi_devices[] __initdata = { | ||
| 727 | SPI_LIS3, | ||
| 728 | }; | ||
| 729 | |||
| 730 | /** | ||
| 731 | * MMC for Marvell Libertas 8688 via SDIO | ||
| 732 | */ | ||
| 733 | |||
| 734 | static int raumfeld_mci_init(struct device *dev, irq_handler_t isr, void *data) | ||
| 735 | { | ||
| 736 | gpio_set_value(GPIO_W2W_RESET, 1); | ||
| 737 | gpio_set_value(GPIO_W2W_PDN, 1); | ||
| 738 | |||
| 739 | return 0; | ||
| 740 | } | ||
| 741 | |||
| 742 | static void raumfeld_mci_exit(struct device *dev, void *data) | ||
| 743 | { | ||
| 744 | gpio_set_value(GPIO_W2W_RESET, 0); | ||
| 745 | gpio_set_value(GPIO_W2W_PDN, 0); | ||
| 746 | } | ||
| 747 | |||
| 748 | static struct pxamci_platform_data raumfeld_mci_platform_data = { | ||
| 749 | .init = raumfeld_mci_init, | ||
| 750 | .exit = raumfeld_mci_exit, | ||
| 751 | .detect_delay_ms = 200, | ||
| 752 | }; | ||
| 753 | |||
| 754 | /* | ||
| 755 | * External power / charge logic | ||
| 756 | */ | ||
| 757 | |||
| 758 | static int power_supply_init(struct device *dev) | ||
| 759 | { | ||
| 760 | return 0; | ||
| 761 | } | ||
| 762 | |||
| 763 | static void power_supply_exit(struct device *dev) | ||
| 764 | { | ||
| 765 | } | ||
| 766 | |||
| 767 | static int raumfeld_is_ac_online(void) | ||
| 768 | { | ||
| 769 | return !gpio_get_value(GPIO_CHARGE_DC_OK); | ||
| 770 | } | ||
| 771 | |||
| 772 | static int raumfeld_is_usb_online(void) | ||
| 773 | { | ||
| 774 | return 0; | ||
| 775 | } | ||
| 776 | |||
| 777 | static char *raumfeld_power_supplicants[] = { "ds2760-battery.0" }; | ||
| 778 | |||
| 779 | static void raumfeld_power_signal_charged(void) | ||
| 780 | { | ||
| 781 | struct power_supply *psy = | ||
| 782 | power_supply_get_by_name(raumfeld_power_supplicants[0]); | ||
| 783 | |||
| 784 | if (psy) { | ||
| 785 | power_supply_set_battery_charged(psy); | ||
| 786 | power_supply_put(psy); | ||
| 787 | } | ||
| 788 | } | ||
| 789 | |||
| 790 | static int raumfeld_power_resume(void) | ||
| 791 | { | ||
| 792 | /* check if GPIO_CHARGE_DONE went low while we were sleeping */ | ||
| 793 | if (!gpio_get_value(GPIO_CHARGE_DONE)) | ||
| 794 | raumfeld_power_signal_charged(); | ||
| 795 | |||
| 796 | return 0; | ||
| 797 | } | ||
| 798 | |||
| 799 | static struct pda_power_pdata power_supply_info = { | ||
| 800 | .init = power_supply_init, | ||
| 801 | .is_ac_online = raumfeld_is_ac_online, | ||
| 802 | .is_usb_online = raumfeld_is_usb_online, | ||
| 803 | .exit = power_supply_exit, | ||
| 804 | .supplied_to = raumfeld_power_supplicants, | ||
| 805 | .num_supplicants = ARRAY_SIZE(raumfeld_power_supplicants), | ||
| 806 | .resume = raumfeld_power_resume, | ||
| 807 | }; | ||
| 808 | |||
| 809 | static struct resource power_supply_resources[] = { | ||
| 810 | { | ||
| 811 | .name = "ac", | ||
| 812 | .flags = IORESOURCE_IRQ | | ||
| 813 | IORESOURCE_IRQ_HIGHEDGE | IORESOURCE_IRQ_LOWEDGE, | ||
| 814 | .start = GPIO_CHARGE_DC_OK, | ||
| 815 | .end = GPIO_CHARGE_DC_OK, | ||
| 816 | }, | ||
| 817 | }; | ||
| 818 | |||
| 819 | static irqreturn_t charge_done_irq(int irq, void *dev_id) | ||
| 820 | { | ||
| 821 | raumfeld_power_signal_charged(); | ||
| 822 | return IRQ_HANDLED; | ||
| 823 | } | ||
| 824 | |||
| 825 | static struct platform_device raumfeld_power_supply = { | ||
| 826 | .name = "pda-power", | ||
| 827 | .id = -1, | ||
| 828 | .dev = { | ||
| 829 | .platform_data = &power_supply_info, | ||
| 830 | }, | ||
| 831 | .resource = power_supply_resources, | ||
| 832 | .num_resources = ARRAY_SIZE(power_supply_resources), | ||
| 833 | }; | ||
| 834 | |||
| 835 | static void __init raumfeld_power_init(void) | ||
| 836 | { | ||
| 837 | int ret; | ||
| 838 | |||
| 839 | /* Set PEN2 high to enable maximum charge current */ | ||
| 840 | ret = gpio_request(GPIO_CHRG_PEN2, "CHRG_PEN2"); | ||
| 841 | if (ret < 0) | ||
| 842 | pr_warn("Unable to request GPIO_CHRG_PEN2\n"); | ||
| 843 | else | ||
| 844 | gpio_direction_output(GPIO_CHRG_PEN2, 1); | ||
| 845 | |||
| 846 | ret = gpio_request(GPIO_CHARGE_DC_OK, "CABLE_DC_OK"); | ||
| 847 | if (ret < 0) | ||
| 848 | pr_warn("Unable to request GPIO_CHARGE_DC_OK\n"); | ||
| 849 | |||
| 850 | ret = gpio_request(GPIO_CHARGE_USB_SUSP, "CHARGE_USB_SUSP"); | ||
| 851 | if (ret < 0) | ||
| 852 | pr_warn("Unable to request GPIO_CHARGE_USB_SUSP\n"); | ||
| 853 | else | ||
| 854 | gpio_direction_output(GPIO_CHARGE_USB_SUSP, 0); | ||
| 855 | |||
| 856 | power_supply_resources[0].start = gpio_to_irq(GPIO_CHARGE_DC_OK); | ||
| 857 | power_supply_resources[0].end = gpio_to_irq(GPIO_CHARGE_DC_OK); | ||
| 858 | |||
| 859 | ret = request_irq(gpio_to_irq(GPIO_CHARGE_DONE), | ||
| 860 | &charge_done_irq, IORESOURCE_IRQ_LOWEDGE, | ||
| 861 | "charge_done", NULL); | ||
| 862 | |||
| 863 | if (ret < 0) | ||
| 864 | printk(KERN_ERR "%s: unable to register irq %d\n", __func__, | ||
| 865 | GPIO_CHARGE_DONE); | ||
| 866 | else | ||
| 867 | platform_device_register(&raumfeld_power_supply); | ||
| 868 | } | ||
| 869 | |||
| 870 | /* Fixed regulator for AUDIO_VA, 0-0048 maps to the cs4270 codec device */ | ||
| 871 | |||
| 872 | static struct regulator_consumer_supply audio_va_consumer_supply = | ||
| 873 | REGULATOR_SUPPLY("va", "0-0048"); | ||
| 874 | |||
| 875 | static struct regulator_init_data audio_va_initdata = { | ||
| 876 | .consumer_supplies = &audio_va_consumer_supply, | ||
| 877 | .num_consumer_supplies = 1, | ||
| 878 | .constraints = { | ||
| 879 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
| 880 | }, | ||
| 881 | }; | ||
| 882 | |||
| 883 | static struct fixed_voltage_config audio_va_config = { | ||
| 884 | .supply_name = "audio_va", | ||
| 885 | .microvolts = 5000000, | ||
| 886 | .enable_high = 1, | ||
| 887 | .enabled_at_boot = 0, | ||
| 888 | .init_data = &audio_va_initdata, | ||
| 889 | }; | ||
| 890 | |||
| 891 | static struct platform_device audio_va_device = { | ||
| 892 | .name = "reg-fixed-voltage", | ||
| 893 | .id = 0, | ||
| 894 | .dev = { | ||
| 895 | .platform_data = &audio_va_config, | ||
| 896 | }, | ||
| 897 | }; | ||
| 898 | |||
| 899 | static struct gpiod_lookup_table audio_va_gpiod_table = { | ||
| 900 | .dev_id = "reg-fixed-voltage.0", | ||
| 901 | .table = { | ||
| 902 | GPIO_LOOKUP("gpio-pxa", GPIO_AUDIO_VA_ENABLE, | ||
| 903 | NULL, GPIO_ACTIVE_HIGH), | ||
| 904 | { }, | ||
| 905 | }, | ||
| 906 | }; | ||
| 907 | |||
| 908 | /* Dummy supplies for Codec's VD/VLC */ | ||
| 909 | |||
| 910 | static struct regulator_consumer_supply audio_dummy_supplies[] = { | ||
| 911 | REGULATOR_SUPPLY("vd", "0-0048"), | ||
| 912 | REGULATOR_SUPPLY("vlc", "0-0048"), | ||
| 913 | }; | ||
| 914 | |||
| 915 | static struct regulator_init_data audio_dummy_initdata = { | ||
| 916 | .consumer_supplies = audio_dummy_supplies, | ||
| 917 | .num_consumer_supplies = ARRAY_SIZE(audio_dummy_supplies), | ||
| 918 | .constraints = { | ||
| 919 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
| 920 | }, | ||
| 921 | }; | ||
| 922 | |||
| 923 | static struct fixed_voltage_config audio_dummy_config = { | ||
| 924 | .supply_name = "audio_vd", | ||
| 925 | .microvolts = 3300000, | ||
| 926 | .init_data = &audio_dummy_initdata, | ||
| 927 | }; | ||
| 928 | |||
| 929 | static struct platform_device audio_supply_dummy_device = { | ||
| 930 | .name = "reg-fixed-voltage", | ||
| 931 | .id = 1, | ||
| 932 | .dev = { | ||
| 933 | .platform_data = &audio_dummy_config, | ||
| 934 | }, | ||
| 935 | }; | ||
| 936 | |||
| 937 | static struct platform_device *audio_regulator_devices[] = { | ||
| 938 | &audio_va_device, | ||
| 939 | &audio_supply_dummy_device, | ||
| 940 | }; | ||
| 941 | |||
| 942 | /** | ||
| 943 | * Regulator support via MAX8660 | ||
| 944 | */ | ||
| 945 | |||
| 946 | static struct regulator_consumer_supply vcc_mmc_supply = | ||
| 947 | REGULATOR_SUPPLY("vmmc", "pxa2xx-mci.0"); | ||
| 948 | |||
| 949 | static struct regulator_init_data vcc_mmc_init_data = { | ||
| 950 | .constraints = { | ||
| 951 | .min_uV = 3300000, | ||
| 952 | .max_uV = 3300000, | ||
| 953 | .valid_modes_mask = REGULATOR_MODE_NORMAL, | ||
| 954 | .valid_ops_mask = REGULATOR_CHANGE_STATUS | | ||
| 955 | REGULATOR_CHANGE_VOLTAGE | | ||
| 956 | REGULATOR_CHANGE_MODE, | ||
| 957 | }, | ||
| 958 | .consumer_supplies = &vcc_mmc_supply, | ||
| 959 | .num_consumer_supplies = 1, | ||
| 960 | }; | ||
| 961 | |||
| 962 | static struct max8660_subdev_data max8660_v6_subdev_data = { | ||
| 963 | .id = MAX8660_V6, | ||
| 964 | .name = "vmmc", | ||
| 965 | .platform_data = &vcc_mmc_init_data, | ||
| 966 | }; | ||
| 967 | |||
| 968 | static struct max8660_platform_data max8660_pdata = { | ||
| 969 | .subdevs = &max8660_v6_subdev_data, | ||
| 970 | .num_subdevs = 1, | ||
| 971 | }; | ||
| 972 | |||
| 973 | /** | ||
| 974 | * I2C devices | ||
| 975 | */ | ||
| 976 | |||
| 977 | static struct i2c_board_info raumfeld_pwri2c_board_info = { | ||
| 978 | .type = "max8660", | ||
| 979 | .addr = 0x34, | ||
| 980 | .platform_data = &max8660_pdata, | ||
| 981 | }; | ||
| 982 | |||
| 983 | static struct i2c_board_info raumfeld_connector_i2c_board_info __initdata = { | ||
| 984 | .type = "cs4270", | ||
| 985 | .addr = 0x48, | ||
| 986 | }; | ||
| 987 | |||
| 988 | static struct gpiod_lookup_table raumfeld_controller_gpios_table = { | ||
| 989 | .dev_id = "0-000a", | ||
| 990 | .table = { | ||
| 991 | GPIO_LOOKUP("gpio-pxa", | ||
| 992 | GPIO_TOUCH_IRQ, "attn", GPIO_ACTIVE_HIGH), | ||
| 993 | { }, | ||
| 994 | }, | ||
| 995 | }; | ||
| 996 | |||
| 997 | static const struct resource raumfeld_controller_resources[] __initconst = { | ||
| 998 | { | ||
| 999 | .start = PXA_GPIO_TO_IRQ(GPIO_TOUCH_IRQ), | ||
| 1000 | .end = PXA_GPIO_TO_IRQ(GPIO_TOUCH_IRQ), | ||
| 1001 | .flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH, | ||
| 1002 | }, | ||
| 1003 | }; | ||
| 1004 | |||
| 1005 | static struct i2c_board_info raumfeld_controller_i2c_board_info __initdata = { | ||
| 1006 | .type = "eeti_ts", | ||
| 1007 | .addr = 0x0a, | ||
| 1008 | .resources = raumfeld_controller_resources, | ||
| 1009 | .num_resources = ARRAY_SIZE(raumfeld_controller_resources), | ||
| 1010 | }; | ||
| 1011 | |||
| 1012 | static struct platform_device *raumfeld_common_devices[] = { | ||
| 1013 | &raumfeld_gpio_keys_device, | ||
| 1014 | &raumfeld_led_device, | ||
| 1015 | &raumfeld_spi_device, | ||
| 1016 | }; | ||
| 1017 | |||
| 1018 | static void __init raumfeld_audio_init(void) | ||
| 1019 | { | ||
| 1020 | int ret; | ||
| 1021 | |||
| 1022 | ret = gpio_request(GPIO_CODEC_RESET, "cs4270 reset"); | ||
| 1023 | if (ret < 0) | ||
| 1024 | pr_warn("unable to request GPIO_CODEC_RESET\n"); | ||
| 1025 | else | ||
| 1026 | gpio_direction_output(GPIO_CODEC_RESET, 1); | ||
| 1027 | |||
| 1028 | ret = gpio_request(GPIO_SPDIF_RESET, "ak4104 s/pdif reset"); | ||
| 1029 | if (ret < 0) | ||
| 1030 | pr_warn("unable to request GPIO_SPDIF_RESET\n"); | ||
| 1031 | else | ||
| 1032 | gpio_direction_output(GPIO_SPDIF_RESET, 1); | ||
| 1033 | |||
| 1034 | ret = gpio_request(GPIO_MCLK_RESET, "MCLK reset"); | ||
| 1035 | if (ret < 0) | ||
| 1036 | pr_warn("unable to request GPIO_MCLK_RESET\n"); | ||
| 1037 | else | ||
| 1038 | gpio_direction_output(GPIO_MCLK_RESET, 1); | ||
| 1039 | |||
| 1040 | gpiod_add_lookup_table(&audio_va_gpiod_table); | ||
| 1041 | platform_add_devices(ARRAY_AND_SIZE(audio_regulator_devices)); | ||
| 1042 | } | ||
| 1043 | |||
| 1044 | static void __init raumfeld_common_init(void) | ||
| 1045 | { | ||
| 1046 | int ret; | ||
| 1047 | |||
| 1048 | /* The on/off button polarity has changed after revision 1 */ | ||
| 1049 | if ((system_rev & 0xff) > 1) { | ||
| 1050 | int i; | ||
| 1051 | |||
| 1052 | for (i = 0; i < ARRAY_SIZE(gpio_keys_button); i++) | ||
| 1053 | if (!strcmp(gpio_keys_button[i].desc, "on_off button")) | ||
| 1054 | gpio_keys_button[i].active_low = 1; | ||
| 1055 | } | ||
| 1056 | |||
| 1057 | enable_irq_wake(IRQ_WAKEUP0); | ||
| 1058 | |||
| 1059 | pxa3xx_set_nand_info(&raumfeld_nand_info); | ||
| 1060 | pxa3xx_set_i2c_power_info(NULL); | ||
| 1061 | pxa_set_ohci_info(&raumfeld_ohci_info); | ||
| 1062 | pxa_set_mci_info(&raumfeld_mci_platform_data); | ||
| 1063 | pxa_set_i2c_info(NULL); | ||
| 1064 | pxa_set_ffuart_info(NULL); | ||
| 1065 | |||
| 1066 | ret = gpio_request(GPIO_W2W_RESET, "Wi2Wi reset"); | ||
| 1067 | if (ret < 0) | ||
| 1068 | pr_warn("Unable to request GPIO_W2W_RESET\n"); | ||
| 1069 | else | ||
| 1070 | gpio_direction_output(GPIO_W2W_RESET, 0); | ||
| 1071 | |||
| 1072 | ret = gpio_request(GPIO_W2W_PDN, "Wi2Wi powerup"); | ||
| 1073 | if (ret < 0) | ||
| 1074 | pr_warn("Unable to request GPIO_W2W_PDN\n"); | ||
| 1075 | else | ||
| 1076 | gpio_direction_output(GPIO_W2W_PDN, 0); | ||
| 1077 | |||
| 1078 | /* this can be used to switch off the device */ | ||
| 1079 | ret = gpio_request(GPIO_SHUTDOWN_SUPPLY, "supply shutdown"); | ||
| 1080 | if (ret < 0) | ||
| 1081 | pr_warn("Unable to request GPIO_SHUTDOWN_SUPPLY\n"); | ||
| 1082 | else | ||
| 1083 | gpio_direction_output(GPIO_SHUTDOWN_SUPPLY, 0); | ||
| 1084 | |||
| 1085 | gpiod_add_lookup_table(&raumfeld_spi_gpiod_table); | ||
| 1086 | platform_add_devices(ARRAY_AND_SIZE(raumfeld_common_devices)); | ||
| 1087 | i2c_register_board_info(1, &raumfeld_pwri2c_board_info, 1); | ||
| 1088 | } | ||
| 1089 | |||
| 1090 | static void __init __maybe_unused raumfeld_controller_init(void) | ||
| 1091 | { | ||
| 1092 | int ret; | ||
| 1093 | |||
| 1094 | pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_controller_pin_config)); | ||
| 1095 | |||
| 1096 | gpiod_add_lookup_table(&raumfeld_rotary_gpios_table); | ||
| 1097 | device_add_properties(&rotary_encoder_device.dev, | ||
| 1098 | raumfeld_rotary_properties); | ||
| 1099 | platform_device_register(&rotary_encoder_device); | ||
| 1100 | |||
| 1101 | spi_register_board_info(ARRAY_AND_SIZE(controller_spi_devices)); | ||
| 1102 | |||
| 1103 | gpiod_add_lookup_table(&raumfeld_controller_gpios_table); | ||
| 1104 | i2c_register_board_info(0, &raumfeld_controller_i2c_board_info, 1); | ||
| 1105 | |||
| 1106 | ret = gpio_request(GPIO_SHUTDOWN_BATT, "battery shutdown"); | ||
| 1107 | if (ret < 0) | ||
| 1108 | pr_warn("Unable to request GPIO_SHUTDOWN_BATT\n"); | ||
| 1109 | else | ||
| 1110 | gpio_direction_output(GPIO_SHUTDOWN_BATT, 0); | ||
| 1111 | |||
| 1112 | raumfeld_common_init(); | ||
| 1113 | raumfeld_power_init(); | ||
| 1114 | raumfeld_lcd_init(); | ||
| 1115 | raumfeld_w1_init(); | ||
| 1116 | } | ||
| 1117 | |||
| 1118 | static void __init __maybe_unused raumfeld_connector_init(void) | ||
| 1119 | { | ||
| 1120 | pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_connector_pin_config)); | ||
| 1121 | spi_register_board_info(ARRAY_AND_SIZE(connector_spi_devices)); | ||
| 1122 | i2c_register_board_info(0, &raumfeld_connector_i2c_board_info, 1); | ||
| 1123 | |||
| 1124 | platform_device_register(&smc91x_device); | ||
| 1125 | |||
| 1126 | raumfeld_audio_init(); | ||
| 1127 | raumfeld_common_init(); | ||
| 1128 | } | ||
| 1129 | |||
| 1130 | static void __init __maybe_unused raumfeld_speaker_init(void) | ||
| 1131 | { | ||
| 1132 | pxa3xx_mfp_config(ARRAY_AND_SIZE(raumfeld_speaker_pin_config)); | ||
| 1133 | spi_register_board_info(ARRAY_AND_SIZE(speaker_spi_devices)); | ||
| 1134 | i2c_register_board_info(0, &raumfeld_connector_i2c_board_info, 1); | ||
| 1135 | |||
| 1136 | platform_device_register(&smc91x_device); | ||
| 1137 | |||
| 1138 | gpiod_add_lookup_table(&raumfeld_rotary_gpios_table); | ||
| 1139 | device_add_properties(&rotary_encoder_device.dev, | ||
| 1140 | raumfeld_rotary_properties); | ||
| 1141 | platform_device_register(&rotary_encoder_device); | ||
| 1142 | |||
| 1143 | raumfeld_audio_init(); | ||
| 1144 | raumfeld_common_init(); | ||
| 1145 | } | ||
| 1146 | |||
| 1147 | /* physical memory regions */ | ||
| 1148 | #define RAUMFELD_SDRAM_BASE 0xa0000000 /* SDRAM region */ | ||
| 1149 | |||
| 1150 | #ifdef CONFIG_MACH_RAUMFELD_RC | ||
| 1151 | MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") | ||
| 1152 | .atag_offset = 0x100, | ||
| 1153 | .init_machine = raumfeld_controller_init, | ||
| 1154 | .map_io = pxa3xx_map_io, | ||
| 1155 | .nr_irqs = PXA_NR_IRQS, | ||
| 1156 | .init_irq = pxa3xx_init_irq, | ||
| 1157 | .handle_irq = pxa3xx_handle_irq, | ||
| 1158 | .init_time = pxa_timer_init, | ||
| 1159 | .restart = pxa_restart, | ||
| 1160 | MACHINE_END | ||
| 1161 | #endif | ||
| 1162 | |||
| 1163 | #ifdef CONFIG_MACH_RAUMFELD_CONNECTOR | ||
| 1164 | MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") | ||
| 1165 | .atag_offset = 0x100, | ||
| 1166 | .init_machine = raumfeld_connector_init, | ||
| 1167 | .map_io = pxa3xx_map_io, | ||
| 1168 | .nr_irqs = PXA_NR_IRQS, | ||
| 1169 | .init_irq = pxa3xx_init_irq, | ||
| 1170 | .handle_irq = pxa3xx_handle_irq, | ||
| 1171 | .init_time = pxa_timer_init, | ||
| 1172 | .restart = pxa_restart, | ||
| 1173 | MACHINE_END | ||
| 1174 | #endif | ||
| 1175 | |||
| 1176 | #ifdef CONFIG_MACH_RAUMFELD_SPEAKER | ||
| 1177 | MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") | ||
| 1178 | .atag_offset = 0x100, | ||
| 1179 | .init_machine = raumfeld_speaker_init, | ||
| 1180 | .map_io = pxa3xx_map_io, | ||
| 1181 | .nr_irqs = PXA_NR_IRQS, | ||
| 1182 | .init_irq = pxa3xx_init_irq, | ||
| 1183 | .handle_irq = pxa3xx_handle_irq, | ||
| 1184 | .init_time = pxa_timer_init, | ||
| 1185 | .restart = pxa_restart, | ||
| 1186 | MACHINE_END | ||
| 1187 | #endif | ||
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 306818e2cf54..8dac824a85df 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
| @@ -572,7 +572,7 @@ static struct spi_board_info spitz_spi_devices[] = { | |||
| 572 | }, | 572 | }, |
| 573 | }; | 573 | }; |
| 574 | 574 | ||
| 575 | static struct pxa2xx_spi_master spitz_spi_info = { | 575 | static struct pxa2xx_spi_controller spitz_spi_info = { |
| 576 | .num_chipselect = 3, | 576 | .num_chipselect = 3, |
| 577 | }; | 577 | }; |
| 578 | 578 | ||
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c index e0d6c872270a..c28d19b126a7 100644 --- a/arch/arm/mach-pxa/stargate2.c +++ b/arch/arm/mach-pxa/stargate2.c | |||
| @@ -337,15 +337,15 @@ static struct platform_device stargate2_flash_device = { | |||
| 337 | .num_resources = 1, | 337 | .num_resources = 1, |
| 338 | }; | 338 | }; |
| 339 | 339 | ||
| 340 | static struct pxa2xx_spi_master pxa_ssp_master_0_info = { | 340 | static struct pxa2xx_spi_controller pxa_ssp_master_0_info = { |
| 341 | .num_chipselect = 1, | 341 | .num_chipselect = 1, |
| 342 | }; | 342 | }; |
| 343 | 343 | ||
| 344 | static struct pxa2xx_spi_master pxa_ssp_master_1_info = { | 344 | static struct pxa2xx_spi_controller pxa_ssp_master_1_info = { |
| 345 | .num_chipselect = 1, | 345 | .num_chipselect = 1, |
| 346 | }; | 346 | }; |
| 347 | 347 | ||
| 348 | static struct pxa2xx_spi_master pxa_ssp_master_2_info = { | 348 | static struct pxa2xx_spi_controller pxa_ssp_master_2_info = { |
| 349 | .num_chipselect = 1, | 349 | .num_chipselect = 1, |
| 350 | }; | 350 | }; |
| 351 | 351 | ||
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index e8a93c088c35..7439798d58e4 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
| @@ -813,7 +813,7 @@ static struct platform_device tosa_bt_device = { | |||
| 813 | .dev.platform_data = &tosa_bt_data, | 813 | .dev.platform_data = &tosa_bt_data, |
| 814 | }; | 814 | }; |
| 815 | 815 | ||
| 816 | static struct pxa2xx_spi_master pxa_ssp_master_info = { | 816 | static struct pxa2xx_spi_controller pxa_ssp_master_info = { |
| 817 | .num_chipselect = 1, | 817 | .num_chipselect = 1, |
| 818 | }; | 818 | }; |
| 819 | 819 | ||
diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c index e2353e75bb28..ad082e11e2a4 100644 --- a/arch/arm/mach-pxa/z2.c +++ b/arch/arm/mach-pxa/z2.c | |||
| @@ -607,12 +607,12 @@ static struct spi_board_info spi_board_info[] __initdata = { | |||
| 607 | }, | 607 | }, |
| 608 | }; | 608 | }; |
| 609 | 609 | ||
| 610 | static struct pxa2xx_spi_master pxa_ssp1_master_info = { | 610 | static struct pxa2xx_spi_controller pxa_ssp1_master_info = { |
| 611 | .num_chipselect = 1, | 611 | .num_chipselect = 1, |
| 612 | .enable_dma = 1, | 612 | .enable_dma = 1, |
| 613 | }; | 613 | }; |
| 614 | 614 | ||
| 615 | static struct pxa2xx_spi_master pxa_ssp2_master_info = { | 615 | static struct pxa2xx_spi_controller pxa_ssp2_master_info = { |
| 616 | .num_chipselect = 1, | 616 | .num_chipselect = 1, |
| 617 | }; | 617 | }; |
| 618 | 618 | ||
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c index c411f79d4cb5..3fd1119c14d5 100644 --- a/arch/arm/mach-pxa/zeus.c +++ b/arch/arm/mach-pxa/zeus.c | |||
| @@ -391,7 +391,7 @@ static struct platform_device zeus_sram_device = { | |||
| 391 | }; | 391 | }; |
| 392 | 392 | ||
| 393 | /* SPI interface on SSP3 */ | 393 | /* SPI interface on SSP3 */ |
| 394 | static struct pxa2xx_spi_master pxa2xx_spi_ssp3_master_info = { | 394 | static struct pxa2xx_spi_controller pxa2xx_spi_ssp3_master_info = { |
| 395 | .num_chipselect = 1, | 395 | .num_chipselect = 1, |
| 396 | .enable_dma = 1, | 396 | .enable_dma = 1, |
| 397 | }; | 397 | }; |
| @@ -426,7 +426,7 @@ static struct gpiod_lookup_table can_regulator_gpiod_table = { | |||
| 426 | .dev_id = "reg-fixed-voltage.0", | 426 | .dev_id = "reg-fixed-voltage.0", |
| 427 | .table = { | 427 | .table = { |
| 428 | GPIO_LOOKUP("gpio-pxa", ZEUS_CAN_SHDN_GPIO, | 428 | GPIO_LOOKUP("gpio-pxa", ZEUS_CAN_SHDN_GPIO, |
| 429 | NULL, GPIO_ACTIVE_HIGH), | 429 | NULL, GPIO_ACTIVE_LOW), |
| 430 | { }, | 430 | { }, |
| 431 | }, | 431 | }, |
| 432 | }; | 432 | }; |
| @@ -547,7 +547,6 @@ static struct regulator_init_data zeus_ohci_regulator_data = { | |||
| 547 | static struct fixed_voltage_config zeus_ohci_regulator_config = { | 547 | static struct fixed_voltage_config zeus_ohci_regulator_config = { |
| 548 | .supply_name = "vbus2", | 548 | .supply_name = "vbus2", |
| 549 | .microvolts = 5000000, /* 5.0V */ | 549 | .microvolts = 5000000, /* 5.0V */ |
| 550 | .enable_high = 1, | ||
| 551 | .startup_delay = 0, | 550 | .startup_delay = 0, |
| 552 | .init_data = &zeus_ohci_regulator_data, | 551 | .init_data = &zeus_ohci_regulator_data, |
| 553 | }; | 552 | }; |
diff --git a/arch/arm/mach-qcom/platsmp.c b/arch/arm/mach-qcom/platsmp.c index 5494c9e0c909..99a6a5e809e0 100644 --- a/arch/arm/mach-qcom/platsmp.c +++ b/arch/arm/mach-qcom/platsmp.c | |||
| @@ -46,8 +46,6 @@ | |||
| 46 | 46 | ||
| 47 | extern void secondary_startup_arm(void); | 47 | extern void secondary_startup_arm(void); |
| 48 | 48 | ||
| 49 | static DEFINE_SPINLOCK(boot_lock); | ||
| 50 | |||
| 51 | #ifdef CONFIG_HOTPLUG_CPU | 49 | #ifdef CONFIG_HOTPLUG_CPU |
| 52 | static void qcom_cpu_die(unsigned int cpu) | 50 | static void qcom_cpu_die(unsigned int cpu) |
| 53 | { | 51 | { |
| @@ -55,15 +53,6 @@ static void qcom_cpu_die(unsigned int cpu) | |||
| 55 | } | 53 | } |
| 56 | #endif | 54 | #endif |
| 57 | 55 | ||
| 58 | static void qcom_secondary_init(unsigned int cpu) | ||
| 59 | { | ||
| 60 | /* | ||
| 61 | * Synchronise with the boot thread. | ||
| 62 | */ | ||
| 63 | spin_lock(&boot_lock); | ||
| 64 | spin_unlock(&boot_lock); | ||
| 65 | } | ||
| 66 | |||
| 67 | static int scss_release_secondary(unsigned int cpu) | 56 | static int scss_release_secondary(unsigned int cpu) |
| 68 | { | 57 | { |
| 69 | struct device_node *node; | 58 | struct device_node *node; |
| @@ -281,24 +270,12 @@ static int qcom_boot_secondary(unsigned int cpu, int (*func)(unsigned int)) | |||
| 281 | } | 270 | } |
| 282 | 271 | ||
| 283 | /* | 272 | /* |
| 284 | * set synchronisation state between this boot processor | ||
| 285 | * and the secondary one | ||
| 286 | */ | ||
| 287 | spin_lock(&boot_lock); | ||
| 288 | |||
| 289 | /* | ||
| 290 | * Send the secondary CPU a soft interrupt, thereby causing | 273 | * Send the secondary CPU a soft interrupt, thereby causing |
| 291 | * the boot monitor to read the system wide flags register, | 274 | * the boot monitor to read the system wide flags register, |
| 292 | * and branch to the address found there. | 275 | * and branch to the address found there. |
| 293 | */ | 276 | */ |
| 294 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); | 277 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
| 295 | 278 | ||
| 296 | /* | ||
| 297 | * now the secondary core is starting up let it run its | ||
| 298 | * calibrations, then wait for it to finish | ||
| 299 | */ | ||
| 300 | spin_unlock(&boot_lock); | ||
| 301 | |||
| 302 | return ret; | 279 | return ret; |
| 303 | } | 280 | } |
| 304 | 281 | ||
| @@ -334,7 +311,6 @@ static void __init qcom_smp_prepare_cpus(unsigned int max_cpus) | |||
| 334 | 311 | ||
| 335 | static const struct smp_operations smp_msm8660_ops __initconst = { | 312 | static const struct smp_operations smp_msm8660_ops __initconst = { |
| 336 | .smp_prepare_cpus = qcom_smp_prepare_cpus, | 313 | .smp_prepare_cpus = qcom_smp_prepare_cpus, |
| 337 | .smp_secondary_init = qcom_secondary_init, | ||
| 338 | .smp_boot_secondary = msm8660_boot_secondary, | 314 | .smp_boot_secondary = msm8660_boot_secondary, |
| 339 | #ifdef CONFIG_HOTPLUG_CPU | 315 | #ifdef CONFIG_HOTPLUG_CPU |
| 340 | .cpu_die = qcom_cpu_die, | 316 | .cpu_die = qcom_cpu_die, |
| @@ -344,7 +320,6 @@ CPU_METHOD_OF_DECLARE(qcom_smp, "qcom,gcc-msm8660", &smp_msm8660_ops); | |||
| 344 | 320 | ||
| 345 | static const struct smp_operations qcom_smp_kpssv1_ops __initconst = { | 321 | static const struct smp_operations qcom_smp_kpssv1_ops __initconst = { |
| 346 | .smp_prepare_cpus = qcom_smp_prepare_cpus, | 322 | .smp_prepare_cpus = qcom_smp_prepare_cpus, |
| 347 | .smp_secondary_init = qcom_secondary_init, | ||
| 348 | .smp_boot_secondary = kpssv1_boot_secondary, | 323 | .smp_boot_secondary = kpssv1_boot_secondary, |
| 349 | #ifdef CONFIG_HOTPLUG_CPU | 324 | #ifdef CONFIG_HOTPLUG_CPU |
| 350 | .cpu_die = qcom_cpu_die, | 325 | .cpu_die = qcom_cpu_die, |
| @@ -354,7 +329,6 @@ CPU_METHOD_OF_DECLARE(qcom_smp_kpssv1, "qcom,kpss-acc-v1", &qcom_smp_kpssv1_ops) | |||
| 354 | 329 | ||
| 355 | static const struct smp_operations qcom_smp_kpssv2_ops __initconst = { | 330 | static const struct smp_operations qcom_smp_kpssv2_ops __initconst = { |
| 356 | .smp_prepare_cpus = qcom_smp_prepare_cpus, | 331 | .smp_prepare_cpus = qcom_smp_prepare_cpus, |
| 357 | .smp_secondary_init = qcom_secondary_init, | ||
| 358 | .smp_boot_secondary = kpssv2_boot_secondary, | 332 | .smp_boot_secondary = kpssv2_boot_secondary, |
| 359 | #ifdef CONFIG_HOTPLUG_CPU | 333 | #ifdef CONFIG_HOTPLUG_CPU |
| 360 | .cpu_die = qcom_cpu_die, | 334 | .cpu_die = qcom_cpu_die, |
diff --git a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c index 058ce73137e8..5d819b6ea428 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c +++ b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c | |||
| @@ -65,16 +65,16 @@ static int osiris_dvs_notify(struct notifier_block *nb, | |||
| 65 | 65 | ||
| 66 | switch (val) { | 66 | switch (val) { |
| 67 | case CPUFREQ_PRECHANGE: | 67 | case CPUFREQ_PRECHANGE: |
| 68 | if (old_dvs & !new_dvs || | 68 | if ((old_dvs && !new_dvs) || |
| 69 | cur_dvs & !new_dvs) { | 69 | (cur_dvs && !new_dvs)) { |
| 70 | pr_debug("%s: exiting dvs\n", __func__); | 70 | pr_debug("%s: exiting dvs\n", __func__); |
| 71 | cur_dvs = false; | 71 | cur_dvs = false; |
| 72 | gpio_set_value(OSIRIS_GPIO_DVS, 1); | 72 | gpio_set_value(OSIRIS_GPIO_DVS, 1); |
| 73 | } | 73 | } |
| 74 | break; | 74 | break; |
| 75 | case CPUFREQ_POSTCHANGE: | 75 | case CPUFREQ_POSTCHANGE: |
| 76 | if (!old_dvs & new_dvs || | 76 | if ((!old_dvs && new_dvs) || |
| 77 | !cur_dvs & new_dvs) { | 77 | (!cur_dvs && new_dvs)) { |
| 78 | pr_debug("entering dvs\n"); | 78 | pr_debug("entering dvs\n"); |
| 79 | cur_dvs = true; | 79 | cur_dvs = true; |
| 80 | gpio_set_value(OSIRIS_GPIO_DVS, 0); | 80 | gpio_set_value(OSIRIS_GPIO_DVS, 0); |
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index dfa42496ec27..d09c3f236186 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c | |||
| @@ -469,7 +469,6 @@ static struct regulator_consumer_supply assabet_cf_vcc_consumers[] = { | |||
| 469 | static struct fixed_voltage_config assabet_cf_vcc_pdata __initdata = { | 469 | static struct fixed_voltage_config assabet_cf_vcc_pdata __initdata = { |
| 470 | .supply_name = "cf-power", | 470 | .supply_name = "cf-power", |
| 471 | .microvolts = 3300000, | 471 | .microvolts = 3300000, |
| 472 | .enable_high = 1, | ||
| 473 | }; | 472 | }; |
| 474 | 473 | ||
| 475 | static struct gpiod_lookup_table assabet_cf_vcc_gpio_table = { | 474 | static struct gpiod_lookup_table assabet_cf_vcc_gpio_table = { |
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c index 406487e76a5c..c7fb9a73e4c5 100644 --- a/arch/arm/mach-sa1100/simpad.c +++ b/arch/arm/mach-sa1100/simpad.c | |||
| @@ -18,7 +18,6 @@ | |||
| 18 | #include <linux/mtd/partitions.h> | 18 | #include <linux/mtd/partitions.h> |
| 19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
| 20 | #include <linux/gpio/driver.h> | 20 | #include <linux/gpio/driver.h> |
| 21 | #include <linux/gpio/machine.h> | ||
| 22 | 21 | ||
| 23 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
| 24 | #include <asm/setup.h> | 23 | #include <asm/setup.h> |
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c index 8e50daa99151..dc526ef2e9b3 100644 --- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | struct regulator_quirk { | 40 | struct regulator_quirk { |
| 41 | struct list_head list; | 41 | struct list_head list; |
| 42 | const struct of_device_id *id; | 42 | const struct of_device_id *id; |
| 43 | struct device_node *np; | ||
| 43 | struct of_phandle_args irq_args; | 44 | struct of_phandle_args irq_args; |
| 44 | struct i2c_msg i2c_msg; | 45 | struct i2c_msg i2c_msg; |
| 45 | bool shared; /* IRQ line is shared */ | 46 | bool shared; /* IRQ line is shared */ |
| @@ -101,6 +102,9 @@ static int regulator_quirk_notify(struct notifier_block *nb, | |||
| 101 | if (!pos->shared) | 102 | if (!pos->shared) |
| 102 | continue; | 103 | continue; |
| 103 | 104 | ||
| 105 | if (pos->np->parent != client->dev.parent->of_node) | ||
| 106 | continue; | ||
| 107 | |||
| 104 | dev_info(&client->dev, "clearing %s@0x%02x interrupts\n", | 108 | dev_info(&client->dev, "clearing %s@0x%02x interrupts\n", |
| 105 | pos->id->compatible, pos->i2c_msg.addr); | 109 | pos->id->compatible, pos->i2c_msg.addr); |
| 106 | 110 | ||
| @@ -165,6 +169,7 @@ static int __init rcar_gen2_regulator_quirk(void) | |||
| 165 | memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); | 169 | memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); |
| 166 | 170 | ||
| 167 | quirk->id = id; | 171 | quirk->id = id; |
| 172 | quirk->np = np; | ||
| 168 | quirk->i2c_msg.addr = addr; | 173 | quirk->i2c_msg.addr = addr; |
| 169 | 174 | ||
| 170 | ret = of_irq_parse_one(np, 0, argsa); | 175 | ret = of_irq_parse_one(np, 0, argsa); |
diff --git a/arch/arm/mach-socfpga/socfpga.c b/arch/arm/mach-socfpga/socfpga.c index 5fb6f79059a8..816da0eb6616 100644 --- a/arch/arm/mach-socfpga/socfpga.c +++ b/arch/arm/mach-socfpga/socfpga.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/of_irq.h> | 19 | #include <linux/of_irq.h> |
| 20 | #include <linux/of_platform.h> | 20 | #include <linux/of_platform.h> |
| 21 | #include <linux/reboot.h> | 21 | #include <linux/reboot.h> |
| 22 | #include <linux/reset/socfpga.h> | ||
| 22 | 23 | ||
| 23 | #include <asm/hardware/cache-l2x0.h> | 24 | #include <asm/hardware/cache-l2x0.h> |
| 24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
| @@ -64,6 +65,7 @@ static void __init socfpga_init_irq(void) | |||
| 64 | 65 | ||
| 65 | if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM)) | 66 | if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM)) |
| 66 | socfpga_init_ocram_ecc(); | 67 | socfpga_init_ocram_ecc(); |
| 68 | socfpga_reset_init(); | ||
| 67 | } | 69 | } |
| 68 | 70 | ||
| 69 | static void __init socfpga_arria10_init_irq(void) | 71 | static void __init socfpga_arria10_init_irq(void) |
| @@ -74,6 +76,7 @@ static void __init socfpga_arria10_init_irq(void) | |||
| 74 | socfpga_init_arria10_l2_ecc(); | 76 | socfpga_init_arria10_l2_ecc(); |
| 75 | if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM)) | 77 | if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM)) |
| 76 | socfpga_init_arria10_ocram_ecc(); | 78 | socfpga_init_arria10_ocram_ecc(); |
| 79 | socfpga_reset_init(); | ||
| 77 | } | 80 | } |
| 78 | 81 | ||
| 79 | static void socfpga_cyclone5_restart(enum reboot_mode mode, const char *cmd) | 82 | static void socfpga_cyclone5_restart(enum reboot_mode mode, const char *cmd) |
diff --git a/arch/arm/mach-spear/generic.h b/arch/arm/mach-spear/generic.h index 909b97c0b237..25b4c5e66e39 100644 --- a/arch/arm/mach-spear/generic.h +++ b/arch/arm/mach-spear/generic.h | |||
| @@ -20,6 +20,8 @@ | |||
| 20 | 20 | ||
| 21 | #include <asm/mach/time.h> | 21 | #include <asm/mach/time.h> |
| 22 | 22 | ||
| 23 | extern volatile int spear_pen_release; | ||
| 24 | |||
| 23 | extern void spear13xx_timer_init(void); | 25 | extern void spear13xx_timer_init(void); |
| 24 | extern void spear3xx_timer_init(void); | 26 | extern void spear3xx_timer_init(void); |
| 25 | extern struct pl022_ssp_controller pl022_plat_data; | 27 | extern struct pl022_ssp_controller pl022_plat_data; |
diff --git a/arch/arm/mach-spear/headsmp.S b/arch/arm/mach-spear/headsmp.S index c52192dc3d9f..6e250b6c0aa2 100644 --- a/arch/arm/mach-spear/headsmp.S +++ b/arch/arm/mach-spear/headsmp.S | |||
| @@ -43,5 +43,5 @@ pen: ldr r7, [r6] | |||
| 43 | 43 | ||
| 44 | .align | 44 | .align |
| 45 | 1: .long . | 45 | 1: .long . |
| 46 | .long pen_release | 46 | .long spear_pen_release |
| 47 | ENDPROC(spear13xx_secondary_startup) | 47 | ENDPROC(spear13xx_secondary_startup) |
diff --git a/arch/arm/mach-spear/hotplug.c b/arch/arm/mach-spear/hotplug.c index 12edd1cf8a12..0dd84f609627 100644 --- a/arch/arm/mach-spear/hotplug.c +++ b/arch/arm/mach-spear/hotplug.c | |||
| @@ -16,6 +16,8 @@ | |||
| 16 | #include <asm/cp15.h> | 16 | #include <asm/cp15.h> |
| 17 | #include <asm/smp_plat.h> | 17 | #include <asm/smp_plat.h> |
| 18 | 18 | ||
| 19 | #include "generic.h" | ||
| 20 | |||
| 19 | static inline void cpu_enter_lowpower(void) | 21 | static inline void cpu_enter_lowpower(void) |
| 20 | { | 22 | { |
| 21 | unsigned int v; | 23 | unsigned int v; |
| @@ -57,7 +59,7 @@ static inline void spear13xx_do_lowpower(unsigned int cpu, int *spurious) | |||
| 57 | for (;;) { | 59 | for (;;) { |
| 58 | wfi(); | 60 | wfi(); |
| 59 | 61 | ||
| 60 | if (pen_release == cpu) { | 62 | if (spear_pen_release == cpu) { |
| 61 | /* | 63 | /* |
| 62 | * OK, proper wakeup, we're done | 64 | * OK, proper wakeup, we're done |
| 63 | */ | 65 | */ |
diff --git a/arch/arm/mach-spear/platsmp.c b/arch/arm/mach-spear/platsmp.c index 39038a03836a..b1ff4bb86f6d 100644 --- a/arch/arm/mach-spear/platsmp.c +++ b/arch/arm/mach-spear/platsmp.c | |||
| @@ -20,16 +20,21 @@ | |||
| 20 | #include <mach/spear.h> | 20 | #include <mach/spear.h> |
| 21 | #include "generic.h" | 21 | #include "generic.h" |
| 22 | 22 | ||
| 23 | /* XXX spear_pen_release is cargo culted code - DO NOT COPY XXX */ | ||
| 24 | volatile int spear_pen_release = -1; | ||
| 25 | |||
| 23 | /* | 26 | /* |
| 24 | * Write pen_release in a way that is guaranteed to be visible to all | 27 | * XXX CARGO CULTED CODE - DO NOT COPY XXX |
| 25 | * observers, irrespective of whether they're taking part in coherency | 28 | * |
| 29 | * Write spear_pen_release in a way that is guaranteed to be visible to | ||
| 30 | * all observers, irrespective of whether they're taking part in coherency | ||
| 26 | * or not. This is necessary for the hotplug code to work reliably. | 31 | * or not. This is necessary for the hotplug code to work reliably. |
| 27 | */ | 32 | */ |
| 28 | static void write_pen_release(int val) | 33 | static void spear_write_pen_release(int val) |
| 29 | { | 34 | { |
| 30 | pen_release = val; | 35 | spear_pen_release = val; |
| 31 | smp_wmb(); | 36 | smp_wmb(); |
| 32 | sync_cache_w(&pen_release); | 37 | sync_cache_w(&spear_pen_release); |
| 33 | } | 38 | } |
| 34 | 39 | ||
| 35 | static DEFINE_SPINLOCK(boot_lock); | 40 | static DEFINE_SPINLOCK(boot_lock); |
| @@ -42,7 +47,7 @@ static void spear13xx_secondary_init(unsigned int cpu) | |||
| 42 | * let the primary processor know we're out of the | 47 | * let the primary processor know we're out of the |
| 43 | * pen, then head off into the C entry point | 48 | * pen, then head off into the C entry point |
| 44 | */ | 49 | */ |
| 45 | write_pen_release(-1); | 50 | spear_write_pen_release(-1); |
| 46 | 51 | ||
| 47 | /* | 52 | /* |
| 48 | * Synchronise with the boot thread. | 53 | * Synchronise with the boot thread. |
| @@ -64,17 +69,17 @@ static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 64 | /* | 69 | /* |
| 65 | * The secondary processor is waiting to be released from | 70 | * The secondary processor is waiting to be released from |
| 66 | * the holding pen - release it, then wait for it to flag | 71 | * the holding pen - release it, then wait for it to flag |
| 67 | * that it has been released by resetting pen_release. | 72 | * that it has been released by resetting spear_pen_release. |
| 68 | * | 73 | * |
| 69 | * Note that "pen_release" is the hardware CPU ID, whereas | 74 | * Note that "spear_pen_release" is the hardware CPU ID, whereas |
| 70 | * "cpu" is Linux's internal ID. | 75 | * "cpu" is Linux's internal ID. |
| 71 | */ | 76 | */ |
| 72 | write_pen_release(cpu); | 77 | spear_write_pen_release(cpu); |
| 73 | 78 | ||
| 74 | timeout = jiffies + (1 * HZ); | 79 | timeout = jiffies + (1 * HZ); |
| 75 | while (time_before(jiffies, timeout)) { | 80 | while (time_before(jiffies, timeout)) { |
| 76 | smp_rmb(); | 81 | smp_rmb(); |
| 77 | if (pen_release == -1) | 82 | if (spear_pen_release == -1) |
| 78 | break; | 83 | break; |
| 79 | 84 | ||
| 80 | udelay(10); | 85 | udelay(10); |
| @@ -86,7 +91,7 @@ static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
| 86 | */ | 91 | */ |
| 87 | spin_unlock(&boot_lock); | 92 | spin_unlock(&boot_lock); |
| 88 | 93 | ||
| 89 | return pen_release != -1 ? -ENOSYS : 0; | 94 | return spear_pen_release != -1 ? -ENOSYS : 0; |
| 90 | } | 95 | } |
| 91 | 96 | ||
| 92 | /* | 97 | /* |
diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c index 8a7f301839c2..933b6930f024 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/clocksource.h> | 14 | #include <linux/clocksource.h> |
| 15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
| 16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
| 17 | #include <linux/reset/sunxi.h> | ||
| 17 | 18 | ||
| 18 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
| 19 | #include <asm/secure_cntvoff.h> | 20 | #include <asm/secure_cntvoff.h> |
| @@ -37,7 +38,6 @@ static const char * const sun6i_board_dt_compat[] = { | |||
| 37 | NULL, | 38 | NULL, |
| 38 | }; | 39 | }; |
| 39 | 40 | ||
| 40 | extern void __init sun6i_reset_init(void); | ||
| 41 | static void __init sun6i_timer_init(void) | 41 | static void __init sun6i_timer_init(void) |
| 42 | { | 42 | { |
| 43 | of_clk_init(NULL); | 43 | of_clk_init(NULL); |
diff --git a/arch/arm/mach-tango/pm.c b/arch/arm/mach-tango/pm.c index 028e50c6383f..a32c3b631484 100644 --- a/arch/arm/mach-tango/pm.c +++ b/arch/arm/mach-tango/pm.c | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | #include <linux/suspend.h> | 3 | #include <linux/suspend.h> |
| 4 | #include <asm/suspend.h> | 4 | #include <asm/suspend.h> |
| 5 | #include "smc.h" | 5 | #include "smc.h" |
| 6 | #include "pm.h" | ||
| 6 | 7 | ||
| 7 | static int tango_pm_powerdown(unsigned long arg) | 8 | static int tango_pm_powerdown(unsigned long arg) |
| 8 | { | 9 | { |
| @@ -24,10 +25,7 @@ static const struct platform_suspend_ops tango_pm_ops = { | |||
| 24 | .valid = suspend_valid_only_mem, | 25 | .valid = suspend_valid_only_mem, |
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 27 | static int __init tango_pm_init(void) | 28 | void __init tango_pm_init(void) |
| 28 | { | 29 | { |
| 29 | suspend_set_ops(&tango_pm_ops); | 30 | suspend_set_ops(&tango_pm_ops); |
| 30 | return 0; | ||
| 31 | } | 31 | } |
| 32 | |||
| 33 | late_initcall(tango_pm_init); | ||
diff --git a/arch/arm/mach-tango/pm.h b/arch/arm/mach-tango/pm.h new file mode 100644 index 000000000000..35ea705a0ee2 --- /dev/null +++ b/arch/arm/mach-tango/pm.h | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
| 2 | |||
| 3 | #ifdef CONFIG_SUSPEND | ||
| 4 | void __init tango_pm_init(void); | ||
| 5 | #else | ||
| 6 | #define tango_pm_init NULL | ||
| 7 | #endif | ||
diff --git a/arch/arm/mach-tango/setup.c b/arch/arm/mach-tango/setup.c index 677dd7b5efd9..824f90737b04 100644 --- a/arch/arm/mach-tango/setup.c +++ b/arch/arm/mach-tango/setup.c | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | #include <asm/mach/arch.h> | 2 | #include <asm/mach/arch.h> |
| 3 | #include <asm/hardware/cache-l2x0.h> | 3 | #include <asm/hardware/cache-l2x0.h> |
| 4 | #include "smc.h" | 4 | #include "smc.h" |
| 5 | #include "pm.h" | ||
| 5 | 6 | ||
| 6 | static void tango_l2c_write(unsigned long val, unsigned int reg) | 7 | static void tango_l2c_write(unsigned long val, unsigned int reg) |
| 7 | { | 8 | { |
| @@ -15,4 +16,5 @@ DT_MACHINE_START(TANGO_DT, "Sigma Tango DT") | |||
| 15 | .dt_compat = tango_dt_compat, | 16 | .dt_compat = tango_dt_compat, |
| 16 | .l2c_aux_mask = ~0, | 17 | .l2c_aux_mask = ~0, |
| 17 | .l2c_write_sec = tango_l2c_write, | 18 | .l2c_write_sec = tango_l2c_write, |
| 19 | .init_late = tango_pm_init, | ||
| 18 | MACHINE_END | 20 | MACHINE_END |
diff --git a/arch/arm/mach-tegra/iomap.h b/arch/arm/mach-tegra/iomap.h index 9e5b2f869fc8..9bc291e76887 100644 --- a/arch/arm/mach-tegra/iomap.h +++ b/arch/arm/mach-tegra/iomap.h | |||
| @@ -79,15 +79,24 @@ | |||
| 79 | #define TEGRA_PMC_BASE 0x7000E400 | 79 | #define TEGRA_PMC_BASE 0x7000E400 |
| 80 | #define TEGRA_PMC_SIZE SZ_256 | 80 | #define TEGRA_PMC_SIZE SZ_256 |
| 81 | 81 | ||
| 82 | #define TEGRA_MC_BASE 0x7000F000 | ||
| 83 | #define TEGRA_MC_SIZE SZ_1K | ||
| 84 | |||
| 82 | #define TEGRA_EMC_BASE 0x7000F400 | 85 | #define TEGRA_EMC_BASE 0x7000F400 |
| 83 | #define TEGRA_EMC_SIZE SZ_1K | 86 | #define TEGRA_EMC_SIZE SZ_1K |
| 84 | 87 | ||
| 88 | #define TEGRA114_MC_BASE 0x70019000 | ||
| 89 | #define TEGRA114_MC_SIZE SZ_4K | ||
| 90 | |||
| 85 | #define TEGRA_EMC0_BASE 0x7001A000 | 91 | #define TEGRA_EMC0_BASE 0x7001A000 |
| 86 | #define TEGRA_EMC0_SIZE SZ_2K | 92 | #define TEGRA_EMC0_SIZE SZ_2K |
| 87 | 93 | ||
| 88 | #define TEGRA_EMC1_BASE 0x7001A800 | 94 | #define TEGRA_EMC1_BASE 0x7001A800 |
| 89 | #define TEGRA_EMC1_SIZE SZ_2K | 95 | #define TEGRA_EMC1_SIZE SZ_2K |
| 90 | 96 | ||
| 97 | #define TEGRA124_MC_BASE 0x70019000 | ||
| 98 | #define TEGRA124_MC_SIZE SZ_4K | ||
| 99 | |||
| 91 | #define TEGRA124_EMC_BASE 0x7001B000 | 100 | #define TEGRA124_EMC_BASE 0x7001B000 |
| 92 | #define TEGRA124_EMC_SIZE SZ_2K | 101 | #define TEGRA124_EMC_SIZE SZ_2K |
| 93 | 102 | ||
diff --git a/arch/arm/mach-tegra/reset-handler.S b/arch/arm/mach-tegra/reset-handler.S index 805f306fa6f7..e22ccf87eded 100644 --- a/arch/arm/mach-tegra/reset-handler.S +++ b/arch/arm/mach-tegra/reset-handler.S | |||
| @@ -172,7 +172,7 @@ after_errata: | |||
| 172 | mov32 r5, TEGRA_IRAM_BASE + TEGRA_IRAM_RESET_HANDLER_OFFSET | 172 | mov32 r5, TEGRA_IRAM_BASE + TEGRA_IRAM_RESET_HANDLER_OFFSET |
| 173 | mov r0, #CPU_NOT_RESETTABLE | 173 | mov r0, #CPU_NOT_RESETTABLE |
| 174 | cmp r10, #0 | 174 | cmp r10, #0 |
| 175 | strneb r0, [r5, #__tegra20_cpu1_resettable_status_offset] | 175 | strbne r0, [r5, #__tegra20_cpu1_resettable_status_offset] |
| 176 | 1: | 176 | 1: |
| 177 | #endif | 177 | #endif |
| 178 | 178 | ||
diff --git a/arch/arm/mach-tegra/sleep-tegra20.S b/arch/arm/mach-tegra/sleep-tegra20.S index 5c8e638ee51a..dedeebfccc55 100644 --- a/arch/arm/mach-tegra/sleep-tegra20.S +++ b/arch/arm/mach-tegra/sleep-tegra20.S | |||
| @@ -32,7 +32,6 @@ | |||
| 32 | 32 | ||
| 33 | #define EMC_CFG 0xc | 33 | #define EMC_CFG 0xc |
| 34 | #define EMC_ADR_CFG 0x10 | 34 | #define EMC_ADR_CFG 0x10 |
| 35 | #define EMC_REFRESH 0x70 | ||
| 36 | #define EMC_NOP 0xdc | 35 | #define EMC_NOP 0xdc |
| 37 | #define EMC_SELF_REF 0xe0 | 36 | #define EMC_SELF_REF 0xe0 |
| 38 | #define EMC_REQ_CTRL 0x2b0 | 37 | #define EMC_REQ_CTRL 0x2b0 |
| @@ -397,7 +396,6 @@ padload_done: | |||
| 397 | mov r1, #1 | 396 | mov r1, #1 |
| 398 | str r1, [r0, #EMC_NOP] | 397 | str r1, [r0, #EMC_NOP] |
| 399 | str r1, [r0, #EMC_NOP] | 398 | str r1, [r0, #EMC_NOP] |
| 400 | str r1, [r0, #EMC_REFRESH] | ||
| 401 | 399 | ||
| 402 | emc_device_mask r1, r0 | 400 | emc_device_mask r1, r0 |
| 403 | 401 | ||
diff --git a/arch/arm/mach-tegra/sleep-tegra30.S b/arch/arm/mach-tegra/sleep-tegra30.S index dd4a67dabd91..d0b4c486ddbf 100644 --- a/arch/arm/mach-tegra/sleep-tegra30.S +++ b/arch/arm/mach-tegra/sleep-tegra30.S | |||
| @@ -29,7 +29,6 @@ | |||
| 29 | #define EMC_CFG 0xc | 29 | #define EMC_CFG 0xc |
| 30 | #define EMC_ADR_CFG 0x10 | 30 | #define EMC_ADR_CFG 0x10 |
| 31 | #define EMC_TIMING_CONTROL 0x28 | 31 | #define EMC_TIMING_CONTROL 0x28 |
| 32 | #define EMC_REFRESH 0x70 | ||
| 33 | #define EMC_NOP 0xdc | 32 | #define EMC_NOP 0xdc |
| 34 | #define EMC_SELF_REF 0xe0 | 33 | #define EMC_SELF_REF 0xe0 |
| 35 | #define EMC_MRW 0xe8 | 34 | #define EMC_MRW 0xe8 |
| @@ -45,6 +44,8 @@ | |||
| 45 | #define EMC_XM2VTTGENPADCTRL 0x310 | 44 | #define EMC_XM2VTTGENPADCTRL 0x310 |
| 46 | #define EMC_XM2VTTGENPADCTRL2 0x314 | 45 | #define EMC_XM2VTTGENPADCTRL2 0x314 |
| 47 | 46 | ||
| 47 | #define MC_EMEM_ARB_CFG 0x90 | ||
| 48 | |||
| 48 | #define PMC_CTRL 0x0 | 49 | #define PMC_CTRL 0x0 |
| 49 | #define PMC_CTRL_SIDE_EFFECT_LP0 (1 << 14) /* enter LP0 when CPU pwr gated */ | 50 | #define PMC_CTRL_SIDE_EFFECT_LP0 (1 << 14) /* enter LP0 when CPU pwr gated */ |
| 50 | 51 | ||
| @@ -419,6 +420,22 @@ _pll_m_c_x_done: | |||
| 419 | movweq r0, #:lower16:TEGRA124_EMC_BASE | 420 | movweq r0, #:lower16:TEGRA124_EMC_BASE |
| 420 | movteq r0, #:upper16:TEGRA124_EMC_BASE | 421 | movteq r0, #:upper16:TEGRA124_EMC_BASE |
| 421 | 422 | ||
| 423 | cmp r10, #TEGRA30 | ||
| 424 | moveq r2, #0x20 | ||
| 425 | movweq r4, #:lower16:TEGRA_MC_BASE | ||
| 426 | movteq r4, #:upper16:TEGRA_MC_BASE | ||
| 427 | cmp r10, #TEGRA114 | ||
| 428 | moveq r2, #0x34 | ||
| 429 | movweq r4, #:lower16:TEGRA114_MC_BASE | ||
| 430 | movteq r4, #:upper16:TEGRA114_MC_BASE | ||
| 431 | cmp r10, #TEGRA124 | ||
| 432 | moveq r2, #0x20 | ||
| 433 | movweq r4, #:lower16:TEGRA124_MC_BASE | ||
| 434 | movteq r4, #:upper16:TEGRA124_MC_BASE | ||
| 435 | |||
| 436 | ldr r1, [r5, r2] @ restore MC_EMEM_ARB_CFG | ||
| 437 | str r1, [r4, #MC_EMEM_ARB_CFG] | ||
| 438 | |||
| 422 | exit_self_refresh: | 439 | exit_self_refresh: |
| 423 | ldr r1, [r5, #0xC] @ restore EMC_XM2VTTGENPADCTRL | 440 | ldr r1, [r5, #0xC] @ restore EMC_XM2VTTGENPADCTRL |
| 424 | str r1, [r0, #EMC_XM2VTTGENPADCTRL] | 441 | str r1, [r0, #EMC_XM2VTTGENPADCTRL] |
| @@ -459,7 +476,6 @@ emc_wait_auto_cal_onetime: | |||
| 459 | cmp r10, #TEGRA30 | 476 | cmp r10, #TEGRA30 |
| 460 | streq r1, [r0, #EMC_NOP] | 477 | streq r1, [r0, #EMC_NOP] |
| 461 | streq r1, [r0, #EMC_NOP] | 478 | streq r1, [r0, #EMC_NOP] |
| 462 | streq r1, [r0, #EMC_REFRESH] | ||
| 463 | 479 | ||
| 464 | emc_device_mask r1, r0 | 480 | emc_device_mask r1, r0 |
| 465 | 481 | ||
| @@ -521,6 +537,8 @@ zcal_done: | |||
| 521 | ldr r1, [r5, #0x0] @ restore EMC_CFG | 537 | ldr r1, [r5, #0x0] @ restore EMC_CFG |
| 522 | str r1, [r0, #EMC_CFG] | 538 | str r1, [r0, #EMC_CFG] |
| 523 | 539 | ||
| 540 | emc_timing_update r1, r0 | ||
| 541 | |||
| 524 | /* Tegra114 had dual EMC channel, now config the other one */ | 542 | /* Tegra114 had dual EMC channel, now config the other one */ |
| 525 | cmp r10, #TEGRA114 | 543 | cmp r10, #TEGRA114 |
| 526 | bne __no_dual_emc_chanl | 544 | bne __no_dual_emc_chanl |
| @@ -546,6 +564,7 @@ tegra30_sdram_pad_address: | |||
| 546 | .word TEGRA_PMC_BASE + PMC_IO_DPD_STATUS @0x14 | 564 | .word TEGRA_PMC_BASE + PMC_IO_DPD_STATUS @0x14 |
| 547 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_CLK_SOURCE_MSELECT @0x18 | 565 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_CLK_SOURCE_MSELECT @0x18 |
| 548 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_SCLK_BURST @0x1c | 566 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_SCLK_BURST @0x1c |
| 567 | .word TEGRA_MC_BASE + MC_EMEM_ARB_CFG @0x20 | ||
| 549 | tegra30_sdram_pad_address_end: | 568 | tegra30_sdram_pad_address_end: |
| 550 | 569 | ||
| 551 | tegra114_sdram_pad_address: | 570 | tegra114_sdram_pad_address: |
| @@ -562,6 +581,7 @@ tegra114_sdram_pad_address: | |||
| 562 | .word TEGRA_EMC1_BASE + EMC_AUTO_CAL_INTERVAL @0x28 | 581 | .word TEGRA_EMC1_BASE + EMC_AUTO_CAL_INTERVAL @0x28 |
| 563 | .word TEGRA_EMC1_BASE + EMC_XM2VTTGENPADCTRL @0x2c | 582 | .word TEGRA_EMC1_BASE + EMC_XM2VTTGENPADCTRL @0x2c |
| 564 | .word TEGRA_EMC1_BASE + EMC_XM2VTTGENPADCTRL2 @0x30 | 583 | .word TEGRA_EMC1_BASE + EMC_XM2VTTGENPADCTRL2 @0x30 |
| 584 | .word TEGRA114_MC_BASE + MC_EMEM_ARB_CFG @0x34 | ||
| 565 | tegra114_sdram_pad_adress_end: | 585 | tegra114_sdram_pad_adress_end: |
| 566 | 586 | ||
| 567 | tegra124_sdram_pad_address: | 587 | tegra124_sdram_pad_address: |
| @@ -573,6 +593,7 @@ tegra124_sdram_pad_address: | |||
| 573 | .word TEGRA_PMC_BASE + PMC_IO_DPD_STATUS @0x14 | 593 | .word TEGRA_PMC_BASE + PMC_IO_DPD_STATUS @0x14 |
| 574 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_CLK_SOURCE_MSELECT @0x18 | 594 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_CLK_SOURCE_MSELECT @0x18 |
| 575 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_SCLK_BURST @0x1c | 595 | .word TEGRA_CLK_RESET_BASE + CLK_RESET_SCLK_BURST @0x1c |
| 596 | .word TEGRA124_MC_BASE + MC_EMEM_ARB_CFG @0x20 | ||
| 576 | tegra124_sdram_pad_address_end: | 597 | tegra124_sdram_pad_address_end: |
| 577 | 598 | ||
| 578 | tegra30_sdram_pad_size: | 599 | tegra30_sdram_pad_size: |
diff --git a/arch/arm/mm/cache-l2x0-pmu.c b/arch/arm/mm/cache-l2x0-pmu.c index afe5b4c7b164..99bcd074916a 100644 --- a/arch/arm/mm/cache-l2x0-pmu.c +++ b/arch/arm/mm/cache-l2x0-pmu.c | |||
| @@ -314,14 +314,6 @@ static int l2x0_pmu_event_init(struct perf_event *event) | |||
| 314 | event->attach_state & PERF_ATTACH_TASK) | 314 | event->attach_state & PERF_ATTACH_TASK) |
| 315 | return -EINVAL; | 315 | return -EINVAL; |
| 316 | 316 | ||
| 317 | if (event->attr.exclude_user || | ||
| 318 | event->attr.exclude_kernel || | ||
| 319 | event->attr.exclude_hv || | ||
| 320 | event->attr.exclude_idle || | ||
| 321 | event->attr.exclude_host || | ||
| 322 | event->attr.exclude_guest) | ||
| 323 | return -EINVAL; | ||
| 324 | |||
| 325 | if (event->cpu < 0) | 317 | if (event->cpu < 0) |
| 326 | return -EINVAL; | 318 | return -EINVAL; |
| 327 | 319 | ||
| @@ -544,6 +536,7 @@ static __init int l2x0_pmu_init(void) | |||
| 544 | .del = l2x0_pmu_event_del, | 536 | .del = l2x0_pmu_event_del, |
| 545 | .event_init = l2x0_pmu_event_init, | 537 | .event_init = l2x0_pmu_event_init, |
| 546 | .attr_groups = l2x0_pmu_attr_groups, | 538 | .attr_groups = l2x0_pmu_attr_groups, |
| 539 | .capabilities = PERF_PMU_CAP_NO_EXCLUDE, | ||
| 547 | }; | 540 | }; |
| 548 | 541 | ||
| 549 | l2x0_pmu_reset(); | 542 | l2x0_pmu_reset(); |
diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S index 24659952c278..be68d62566c7 100644 --- a/arch/arm/mm/cache-v6.S +++ b/arch/arm/mm/cache-v6.S | |||
| @@ -215,8 +215,8 @@ v6_dma_inv_range: | |||
| 215 | #endif | 215 | #endif |
| 216 | tst r1, #D_CACHE_LINE_SIZE - 1 | 216 | tst r1, #D_CACHE_LINE_SIZE - 1 |
| 217 | #ifdef CONFIG_DMA_CACHE_RWFO | 217 | #ifdef CONFIG_DMA_CACHE_RWFO |
| 218 | ldrneb r2, [r1, #-1] @ read for ownership | 218 | ldrbne r2, [r1, #-1] @ read for ownership |
| 219 | strneb r2, [r1, #-1] @ write for ownership | 219 | strbne r2, [r1, #-1] @ write for ownership |
| 220 | #endif | 220 | #endif |
| 221 | bic r1, r1, #D_CACHE_LINE_SIZE - 1 | 221 | bic r1, r1, #D_CACHE_LINE_SIZE - 1 |
| 222 | #ifdef HARVARD_CACHE | 222 | #ifdef HARVARD_CACHE |
| @@ -284,8 +284,8 @@ ENTRY(v6_dma_flush_range) | |||
| 284 | add r0, r0, #D_CACHE_LINE_SIZE | 284 | add r0, r0, #D_CACHE_LINE_SIZE |
| 285 | cmp r0, r1 | 285 | cmp r0, r1 |
| 286 | #ifdef CONFIG_DMA_CACHE_RWFO | 286 | #ifdef CONFIG_DMA_CACHE_RWFO |
| 287 | ldrlob r2, [r0] @ read for ownership | 287 | ldrblo r2, [r0] @ read for ownership |
| 288 | strlob r2, [r0] @ write for ownership | 288 | strblo r2, [r0] @ write for ownership |
| 289 | #endif | 289 | #endif |
| 290 | blo 1b | 290 | blo 1b |
| 291 | mov r0, #0 | 291 | mov r0, #0 |
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c index b03202cddddb..f74cdce6d4da 100644 --- a/arch/arm/mm/copypage-v4mc.c +++ b/arch/arm/mm/copypage-v4mc.c | |||
| @@ -45,6 +45,7 @@ static void mc_copy_user_page(void *from, void *to) | |||
| 45 | int tmp; | 45 | int tmp; |
| 46 | 46 | ||
| 47 | asm volatile ("\ | 47 | asm volatile ("\ |
| 48 | .syntax unified\n\ | ||
| 48 | ldmia %0!, {r2, r3, ip, lr} @ 4\n\ | 49 | ldmia %0!, {r2, r3, ip, lr} @ 4\n\ |
| 49 | 1: mcr p15, 0, %1, c7, c6, 1 @ 1 invalidate D line\n\ | 50 | 1: mcr p15, 0, %1, c7, c6, 1 @ 1 invalidate D line\n\ |
| 50 | stmia %1!, {r2, r3, ip, lr} @ 4\n\ | 51 | stmia %1!, {r2, r3, ip, lr} @ 4\n\ |
| @@ -56,7 +57,7 @@ static void mc_copy_user_page(void *from, void *to) | |||
| 56 | ldmia %0!, {r2, r3, ip, lr} @ 4\n\ | 57 | ldmia %0!, {r2, r3, ip, lr} @ 4\n\ |
| 57 | subs %2, %2, #1 @ 1\n\ | 58 | subs %2, %2, #1 @ 1\n\ |
| 58 | stmia %1!, {r2, r3, ip, lr} @ 4\n\ | 59 | stmia %1!, {r2, r3, ip, lr} @ 4\n\ |
| 59 | ldmneia %0!, {r2, r3, ip, lr} @ 4\n\ | 60 | ldmiane %0!, {r2, r3, ip, lr} @ 4\n\ |
| 60 | bne 1b @ " | 61 | bne 1b @ " |
| 61 | : "+&r" (from), "+&r" (to), "=&r" (tmp) | 62 | : "+&r" (from), "+&r" (to), "=&r" (tmp) |
| 62 | : "2" (PAGE_SIZE / 64) | 63 | : "2" (PAGE_SIZE / 64) |
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c index cd3e165afeed..6d336740aae4 100644 --- a/arch/arm/mm/copypage-v4wb.c +++ b/arch/arm/mm/copypage-v4wb.c | |||
| @@ -27,6 +27,7 @@ static void v4wb_copy_user_page(void *kto, const void *kfrom) | |||
| 27 | int tmp; | 27 | int tmp; |
| 28 | 28 | ||
| 29 | asm volatile ("\ | 29 | asm volatile ("\ |
| 30 | .syntax unified\n\ | ||
| 30 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ | 31 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ |
| 31 | 1: mcr p15, 0, %0, c7, c6, 1 @ 1 invalidate D line\n\ | 32 | 1: mcr p15, 0, %0, c7, c6, 1 @ 1 invalidate D line\n\ |
| 32 | stmia %0!, {r3, r4, ip, lr} @ 4\n\ | 33 | stmia %0!, {r3, r4, ip, lr} @ 4\n\ |
| @@ -38,7 +39,7 @@ static void v4wb_copy_user_page(void *kto, const void *kfrom) | |||
| 38 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ | 39 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ |
| 39 | subs %2, %2, #1 @ 1\n\ | 40 | subs %2, %2, #1 @ 1\n\ |
| 40 | stmia %0!, {r3, r4, ip, lr} @ 4\n\ | 41 | stmia %0!, {r3, r4, ip, lr} @ 4\n\ |
| 41 | ldmneia %1!, {r3, r4, ip, lr} @ 4\n\ | 42 | ldmiane %1!, {r3, r4, ip, lr} @ 4\n\ |
| 42 | bne 1b @ 1\n\ | 43 | bne 1b @ 1\n\ |
| 43 | mcr p15, 0, %1, c7, c10, 4 @ 1 drain WB" | 44 | mcr p15, 0, %1, c7, c10, 4 @ 1 drain WB" |
| 44 | : "+&r" (kto), "+&r" (kfrom), "=&r" (tmp) | 45 | : "+&r" (kto), "+&r" (kfrom), "=&r" (tmp) |
diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c index 8614572e1296..3851bb396442 100644 --- a/arch/arm/mm/copypage-v4wt.c +++ b/arch/arm/mm/copypage-v4wt.c | |||
| @@ -25,6 +25,7 @@ static void v4wt_copy_user_page(void *kto, const void *kfrom) | |||
| 25 | int tmp; | 25 | int tmp; |
| 26 | 26 | ||
| 27 | asm volatile ("\ | 27 | asm volatile ("\ |
| 28 | .syntax unified\n\ | ||
| 28 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ | 29 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ |
| 29 | 1: stmia %0!, {r3, r4, ip, lr} @ 4\n\ | 30 | 1: stmia %0!, {r3, r4, ip, lr} @ 4\n\ |
| 30 | ldmia %1!, {r3, r4, ip, lr} @ 4+1\n\ | 31 | ldmia %1!, {r3, r4, ip, lr} @ 4+1\n\ |
| @@ -34,7 +35,7 @@ static void v4wt_copy_user_page(void *kto, const void *kfrom) | |||
| 34 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ | 35 | ldmia %1!, {r3, r4, ip, lr} @ 4\n\ |
| 35 | subs %2, %2, #1 @ 1\n\ | 36 | subs %2, %2, #1 @ 1\n\ |
| 36 | stmia %0!, {r3, r4, ip, lr} @ 4\n\ | 37 | stmia %0!, {r3, r4, ip, lr} @ 4\n\ |
| 37 | ldmneia %1!, {r3, r4, ip, lr} @ 4\n\ | 38 | ldmiane %1!, {r3, r4, ip, lr} @ 4\n\ |
| 38 | bne 1b @ 1\n\ | 39 | bne 1b @ 1\n\ |
| 39 | mcr p15, 0, %2, c7, c7, 0 @ flush ID cache" | 40 | mcr p15, 0, %2, c7, c7, 0 @ flush ID cache" |
| 40 | : "+&r" (kto), "+&r" (kfrom), "=&r" (tmp) | 41 | : "+&r" (kto), "+&r" (kfrom), "=&r" (tmp) |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index f1e2922e447c..43f46aa7ef33 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
| @@ -188,6 +188,7 @@ const struct dma_map_ops arm_dma_ops = { | |||
| 188 | .unmap_page = arm_dma_unmap_page, | 188 | .unmap_page = arm_dma_unmap_page, |
| 189 | .map_sg = arm_dma_map_sg, | 189 | .map_sg = arm_dma_map_sg, |
| 190 | .unmap_sg = arm_dma_unmap_sg, | 190 | .unmap_sg = arm_dma_unmap_sg, |
| 191 | .map_resource = dma_direct_map_resource, | ||
| 191 | .sync_single_for_cpu = arm_dma_sync_single_for_cpu, | 192 | .sync_single_for_cpu = arm_dma_sync_single_for_cpu, |
| 192 | .sync_single_for_device = arm_dma_sync_single_for_device, | 193 | .sync_single_for_device = arm_dma_sync_single_for_device, |
| 193 | .sync_sg_for_cpu = arm_dma_sync_sg_for_cpu, | 194 | .sync_sg_for_cpu = arm_dma_sync_sg_for_cpu, |
| @@ -211,6 +212,7 @@ const struct dma_map_ops arm_coherent_dma_ops = { | |||
| 211 | .get_sgtable = arm_dma_get_sgtable, | 212 | .get_sgtable = arm_dma_get_sgtable, |
| 212 | .map_page = arm_coherent_dma_map_page, | 213 | .map_page = arm_coherent_dma_map_page, |
| 213 | .map_sg = arm_dma_map_sg, | 214 | .map_sg = arm_dma_map_sg, |
| 215 | .map_resource = dma_direct_map_resource, | ||
| 214 | .dma_supported = arm_dma_supported, | 216 | .dma_supported = arm_dma_supported, |
| 215 | }; | 217 | }; |
| 216 | EXPORT_SYMBOL(arm_coherent_dma_ops); | 218 | EXPORT_SYMBOL(arm_coherent_dma_ops); |
| @@ -2277,7 +2279,7 @@ EXPORT_SYMBOL_GPL(arm_iommu_attach_device); | |||
| 2277 | * @dev: valid struct device pointer | 2279 | * @dev: valid struct device pointer |
| 2278 | * | 2280 | * |
| 2279 | * Detaches the provided device from a previously attached map. | 2281 | * Detaches the provided device from a previously attached map. |
| 2280 | * This voids the dma operations (dma_map_ops pointer) | 2282 | * This overwrites the dma_ops pointer with appropriate non-IOMMU ops. |
| 2281 | */ | 2283 | */ |
| 2282 | void arm_iommu_detach_device(struct device *dev) | 2284 | void arm_iommu_detach_device(struct device *dev) |
| 2283 | { | 2285 | { |
| @@ -2390,4 +2392,6 @@ void arch_teardown_dma_ops(struct device *dev) | |||
| 2390 | return; | 2392 | return; |
| 2391 | 2393 | ||
| 2392 | arm_teardown_iommu_dma_ops(dev); | 2394 | arm_teardown_iommu_dma_ops(dev); |
| 2395 | /* Let arch_setup_dma_ops() start again from scratch upon re-probe */ | ||
| 2396 | set_dma_ops(dev, NULL); | ||
| 2393 | } | 2397 | } |
diff --git a/arch/arm/mm/idmap.c b/arch/arm/mm/idmap.c index 1d1edd064199..a033f6134a64 100644 --- a/arch/arm/mm/idmap.c +++ b/arch/arm/mm/idmap.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | #include <asm/cputype.h> | 7 | #include <asm/cputype.h> |
| 8 | #include <asm/idmap.h> | 8 | #include <asm/idmap.h> |
| 9 | #include <asm/hwcap.h> | ||
| 9 | #include <asm/pgalloc.h> | 10 | #include <asm/pgalloc.h> |
| 10 | #include <asm/pgtable.h> | 11 | #include <asm/pgtable.h> |
| 11 | #include <asm/sections.h> | 12 | #include <asm/sections.h> |
| @@ -110,7 +111,8 @@ static int __init init_static_idmap(void) | |||
| 110 | __idmap_text_end, 0); | 111 | __idmap_text_end, 0); |
| 111 | 112 | ||
| 112 | /* Flush L1 for the hardware to see this page table content */ | 113 | /* Flush L1 for the hardware to see this page table content */ |
| 113 | flush_cache_louis(); | 114 | if (!(elf_hwcap & HWCAP_LPAE)) |
| 115 | flush_cache_louis(); | ||
| 114 | 116 | ||
| 115 | return 0; | 117 | return 0; |
| 116 | } | 118 | } |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 478ea8b7db87..c2daabbe0af0 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
| @@ -205,7 +205,11 @@ phys_addr_t __init arm_memblock_steal(phys_addr_t size, phys_addr_t align) | |||
| 205 | 205 | ||
| 206 | BUG_ON(!arm_memblock_steal_permitted); | 206 | BUG_ON(!arm_memblock_steal_permitted); |
| 207 | 207 | ||
| 208 | phys = memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ANYWHERE); | 208 | phys = memblock_phys_alloc(size, align); |
| 209 | if (!phys) | ||
| 210 | panic("Failed to steal %pa bytes at %pS\n", | ||
| 211 | &size, (void *)_RET_IP_); | ||
| 212 | |||
| 209 | memblock_free(phys, size); | 213 | memblock_free(phys, size); |
| 210 | memblock_remove(phys, size); | 214 | memblock_remove(phys, size); |
| 211 | 215 | ||
| @@ -278,15 +282,12 @@ void __init arm_memblock_init(const struct machine_desc *mdesc) | |||
| 278 | 282 | ||
| 279 | void __init bootmem_init(void) | 283 | void __init bootmem_init(void) |
| 280 | { | 284 | { |
| 281 | unsigned long min, max_low, max_high; | ||
| 282 | |||
| 283 | memblock_allow_resize(); | 285 | memblock_allow_resize(); |
| 284 | max_low = max_high = 0; | ||
| 285 | 286 | ||
| 286 | find_limits(&min, &max_low, &max_high); | 287 | find_limits(&min_low_pfn, &max_low_pfn, &max_pfn); |
| 287 | 288 | ||
| 288 | early_memtest((phys_addr_t)min << PAGE_SHIFT, | 289 | early_memtest((phys_addr_t)min_low_pfn << PAGE_SHIFT, |
| 289 | (phys_addr_t)max_low << PAGE_SHIFT); | 290 | (phys_addr_t)max_low_pfn << PAGE_SHIFT); |
| 290 | 291 | ||
| 291 | /* | 292 | /* |
| 292 | * Sparsemem tries to allocate bootmem in memory_present(), | 293 | * Sparsemem tries to allocate bootmem in memory_present(), |
| @@ -304,16 +305,7 @@ void __init bootmem_init(void) | |||
| 304 | * the sparse mem_map arrays initialized by sparse_init() | 305 | * the sparse mem_map arrays initialized by sparse_init() |
| 305 | * for memmap_init_zone(), otherwise all PFNs are invalid. | 306 | * for memmap_init_zone(), otherwise all PFNs are invalid. |
| 306 | */ | 307 | */ |
| 307 | zone_sizes_init(min, max_low, max_high); | 308 | zone_sizes_init(min_low_pfn, max_low_pfn, max_pfn); |
| 308 | |||
| 309 | /* | ||
| 310 | * This doesn't seem to be used by the Linux memory manager any | ||
| 311 | * more, but is used by ll_rw_block. If we can get rid of it, we | ||
| 312 | * also get rid of some of the stuff above as well. | ||
| 313 | */ | ||
| 314 | min_low_pfn = min; | ||
| 315 | max_low_pfn = max_low; | ||
| 316 | max_pfn = max_high; | ||
| 317 | } | 309 | } |
| 318 | 310 | ||
| 319 | /* | 311 | /* |
| @@ -494,55 +486,6 @@ void __init mem_init(void) | |||
| 494 | 486 | ||
| 495 | mem_init_print_info(NULL); | 487 | mem_init_print_info(NULL); |
| 496 | 488 | ||
| 497 | #define MLK(b, t) b, t, ((t) - (b)) >> 10 | ||
| 498 | #define MLM(b, t) b, t, ((t) - (b)) >> 20 | ||
| 499 | #define MLK_ROUNDUP(b, t) b, t, DIV_ROUND_UP(((t) - (b)), SZ_1K) | ||
| 500 | |||
| 501 | pr_notice("Virtual kernel memory layout:\n" | ||
| 502 | " vector : 0x%08lx - 0x%08lx (%4ld kB)\n" | ||
| 503 | #ifdef CONFIG_HAVE_TCM | ||
| 504 | " DTCM : 0x%08lx - 0x%08lx (%4ld kB)\n" | ||
| 505 | " ITCM : 0x%08lx - 0x%08lx (%4ld kB)\n" | ||
| 506 | #endif | ||
| 507 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | ||
| 508 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" | ||
| 509 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n" | ||
| 510 | #ifdef CONFIG_HIGHMEM | ||
| 511 | " pkmap : 0x%08lx - 0x%08lx (%4ld MB)\n" | ||
| 512 | #endif | ||
| 513 | #ifdef CONFIG_MODULES | ||
| 514 | " modules : 0x%08lx - 0x%08lx (%4ld MB)\n" | ||
| 515 | #endif | ||
| 516 | " .text : 0x%p" " - 0x%p" " (%4td kB)\n" | ||
| 517 | " .init : 0x%p" " - 0x%p" " (%4td kB)\n" | ||
| 518 | " .data : 0x%p" " - 0x%p" " (%4td kB)\n" | ||
| 519 | " .bss : 0x%p" " - 0x%p" " (%4td kB)\n", | ||
| 520 | |||
| 521 | MLK(VECTORS_BASE, VECTORS_BASE + PAGE_SIZE), | ||
| 522 | #ifdef CONFIG_HAVE_TCM | ||
| 523 | MLK(DTCM_OFFSET, (unsigned long) dtcm_end), | ||
| 524 | MLK(ITCM_OFFSET, (unsigned long) itcm_end), | ||
| 525 | #endif | ||
| 526 | MLK(FIXADDR_START, FIXADDR_END), | ||
| 527 | MLM(VMALLOC_START, VMALLOC_END), | ||
| 528 | MLM(PAGE_OFFSET, (unsigned long)high_memory), | ||
| 529 | #ifdef CONFIG_HIGHMEM | ||
| 530 | MLM(PKMAP_BASE, (PKMAP_BASE) + (LAST_PKMAP) * | ||
| 531 | (PAGE_SIZE)), | ||
| 532 | #endif | ||
| 533 | #ifdef CONFIG_MODULES | ||
| 534 | MLM(MODULES_VADDR, MODULES_END), | ||
| 535 | #endif | ||
| 536 | |||
| 537 | MLK_ROUNDUP(_text, _etext), | ||
| 538 | MLK_ROUNDUP(__init_begin, __init_end), | ||
| 539 | MLK_ROUNDUP(_sdata, _edata), | ||
| 540 | MLK_ROUNDUP(__bss_start, __bss_stop)); | ||
| 541 | |||
| 542 | #undef MLK | ||
| 543 | #undef MLM | ||
| 544 | #undef MLK_ROUNDUP | ||
| 545 | |||
| 546 | /* | 489 | /* |
| 547 | * Check boundaries twice: Some fundamental inconsistencies can | 490 | * Check boundaries twice: Some fundamental inconsistencies can |
| 548 | * be detected at build time already. | 491 | * be detected at build time already. |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index f5cc1ccfea3d..f3ce34113f89 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
| @@ -719,16 +719,15 @@ EXPORT_SYMBOL(phys_mem_access_prot); | |||
| 719 | 719 | ||
| 720 | #define vectors_base() (vectors_high() ? 0xffff0000 : 0) | 720 | #define vectors_base() (vectors_high() ? 0xffff0000 : 0) |
| 721 | 721 | ||
| 722 | static void __init *early_alloc_aligned(unsigned long sz, unsigned long align) | ||
| 723 | { | ||
| 724 | void *ptr = __va(memblock_phys_alloc(sz, align)); | ||
| 725 | memset(ptr, 0, sz); | ||
| 726 | return ptr; | ||
| 727 | } | ||
| 728 | |||
| 729 | static void __init *early_alloc(unsigned long sz) | 722 | static void __init *early_alloc(unsigned long sz) |
| 730 | { | 723 | { |
| 731 | return early_alloc_aligned(sz, sz); | 724 | void *ptr = memblock_alloc(sz, sz); |
| 725 | |||
| 726 | if (!ptr) | ||
| 727 | panic("%s: Failed to allocate %lu bytes align=0x%lx\n", | ||
| 728 | __func__, sz, sz); | ||
| 729 | |||
| 730 | return ptr; | ||
| 732 | } | 731 | } |
| 733 | 732 | ||
| 734 | static void *__init late_alloc(unsigned long sz) | 733 | static void *__init late_alloc(unsigned long sz) |
| @@ -1000,7 +999,10 @@ void __init iotable_init(struct map_desc *io_desc, int nr) | |||
| 1000 | if (!nr) | 999 | if (!nr) |
| 1001 | return; | 1000 | return; |
| 1002 | 1001 | ||
| 1003 | svm = early_alloc_aligned(sizeof(*svm) * nr, __alignof__(*svm)); | 1002 | svm = memblock_alloc(sizeof(*svm) * nr, __alignof__(*svm)); |
| 1003 | if (!svm) | ||
| 1004 | panic("%s: Failed to allocate %zu bytes align=0x%zx\n", | ||
| 1005 | __func__, sizeof(*svm) * nr, __alignof__(*svm)); | ||
| 1004 | 1006 | ||
| 1005 | for (md = io_desc; nr; md++, nr--) { | 1007 | for (md = io_desc; nr; md++, nr--) { |
| 1006 | create_mapping(md); | 1008 | create_mapping(md); |
| @@ -1022,7 +1024,10 @@ void __init vm_reserve_area_early(unsigned long addr, unsigned long size, | |||
| 1022 | struct vm_struct *vm; | 1024 | struct vm_struct *vm; |
| 1023 | struct static_vm *svm; | 1025 | struct static_vm *svm; |
| 1024 | 1026 | ||
| 1025 | svm = early_alloc_aligned(sizeof(*svm), __alignof__(*svm)); | 1027 | svm = memblock_alloc(sizeof(*svm), __alignof__(*svm)); |
| 1028 | if (!svm) | ||
| 1029 | panic("%s: Failed to allocate %zu bytes align=0x%zx\n", | ||
| 1030 | __func__, sizeof(*svm), __alignof__(*svm)); | ||
| 1026 | 1031 | ||
| 1027 | vm = &svm->vm; | 1032 | vm = &svm->vm; |
| 1028 | vm->addr = (void *)addr; | 1033 | vm->addr = (void *)addr; |
diff --git a/arch/arm/mm/pmsa-v8.c b/arch/arm/mm/pmsa-v8.c index 617a83def88a..0d7d5fb59247 100644 --- a/arch/arm/mm/pmsa-v8.c +++ b/arch/arm/mm/pmsa-v8.c | |||
| @@ -165,7 +165,7 @@ static int __init pmsav8_setup_ram(unsigned int number, phys_addr_t start,phys_a | |||
| 165 | return -EINVAL; | 165 | return -EINVAL; |
| 166 | 166 | ||
| 167 | bar = start; | 167 | bar = start; |
| 168 | lar = (end - 1) & ~(PMSAv8_MINALIGN - 1);; | 168 | lar = (end - 1) & ~(PMSAv8_MINALIGN - 1); |
| 169 | 169 | ||
| 170 | bar |= PMSAv8_AP_PL1RW_PL0RW | PMSAv8_RGN_SHARED; | 170 | bar |= PMSAv8_AP_PL1RW_PL0RW | PMSAv8_RGN_SHARED; |
| 171 | lar |= PMSAv8_LAR_IDX(PMSAv8_RGN_NORMAL) | PMSAv8_LAR_EN; | 171 | lar |= PMSAv8_LAR_IDX(PMSAv8_RGN_NORMAL) | PMSAv8_LAR_EN; |
| @@ -181,7 +181,7 @@ static int __init pmsav8_setup_io(unsigned int number, phys_addr_t start,phys_ad | |||
| 181 | return -EINVAL; | 181 | return -EINVAL; |
| 182 | 182 | ||
| 183 | bar = start; | 183 | bar = start; |
| 184 | lar = (end - 1) & ~(PMSAv8_MINALIGN - 1);; | 184 | lar = (end - 1) & ~(PMSAv8_MINALIGN - 1); |
| 185 | 185 | ||
| 186 | bar |= PMSAv8_AP_PL1RW_PL0RW | PMSAv8_RGN_SHARED | PMSAv8_BAR_XN; | 186 | bar |= PMSAv8_AP_PL1RW_PL0RW | PMSAv8_RGN_SHARED | PMSAv8_BAR_XN; |
| 187 | lar |= PMSAv8_LAR_IDX(PMSAv8_RGN_DEVICE_nGnRnE) | PMSAv8_LAR_EN; | 187 | lar |= PMSAv8_LAR_IDX(PMSAv8_RGN_DEVICE_nGnRnE) | PMSAv8_LAR_EN; |
diff --git a/arch/arm/mm/proc-v7m.S b/arch/arm/mm/proc-v7m.S index 47a5acc64433..acd5a66dfc23 100644 --- a/arch/arm/mm/proc-v7m.S +++ b/arch/arm/mm/proc-v7m.S | |||
| @@ -139,6 +139,9 @@ __v7m_setup_cont: | |||
| 139 | cpsie i | 139 | cpsie i |
| 140 | svc #0 | 140 | svc #0 |
| 141 | 1: cpsid i | 141 | 1: cpsid i |
| 142 | ldr r0, =exc_ret | ||
| 143 | orr lr, lr, #EXC_RET_THREADMODE_PROCESSSTACK | ||
| 144 | str lr, [r0] | ||
| 142 | ldmia sp, {r0-r3, r12} | 145 | ldmia sp, {r0-r3, r12} |
| 143 | str r5, [r12, #11 * 4] @ restore the original SVC vector entry | 146 | str r5, [r12, #11 * 4] @ restore the original SVC vector entry |
| 144 | mov lr, r6 @ restore LR | 147 | mov lr, r6 @ restore LR |
| @@ -149,10 +152,10 @@ __v7m_setup_cont: | |||
| 149 | 152 | ||
| 150 | @ Configure caches (if implemented) | 153 | @ Configure caches (if implemented) |
| 151 | teq r8, #0 | 154 | teq r8, #0 |
| 152 | stmneia sp, {r0-r6, lr} @ v7m_invalidate_l1 touches r0-r6 | 155 | stmiane sp, {r0-r6, lr} @ v7m_invalidate_l1 touches r0-r6 |
| 153 | blne v7m_invalidate_l1 | 156 | blne v7m_invalidate_l1 |
| 154 | teq r8, #0 @ re-evalutae condition | 157 | teq r8, #0 @ re-evalutae condition |
| 155 | ldmneia sp, {r0-r6, lr} | 158 | ldmiane sp, {r0-r6, lr} |
| 156 | 159 | ||
| 157 | @ Configure the System Control Register to ensure 8-byte stack alignment | 160 | @ Configure the System Control Register to ensure 8-byte stack alignment |
| 158 | @ Note the STKALIGN bit is either RW or RAO. | 161 | @ Note the STKALIGN bit is either RW or RAO. |
diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c index 25b3ee85066e..c8bfbbfdfcc3 100644 --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c | |||
| @@ -1083,12 +1083,17 @@ static inline void emit_ldx_r(const s8 dst[], const s8 src, | |||
| 1083 | 1083 | ||
| 1084 | /* Arithmatic Operation */ | 1084 | /* Arithmatic Operation */ |
| 1085 | static inline void emit_ar_r(const u8 rd, const u8 rt, const u8 rm, | 1085 | static inline void emit_ar_r(const u8 rd, const u8 rt, const u8 rm, |
| 1086 | const u8 rn, struct jit_ctx *ctx, u8 op) { | 1086 | const u8 rn, struct jit_ctx *ctx, u8 op, |
| 1087 | bool is_jmp64) { | ||
| 1087 | switch (op) { | 1088 | switch (op) { |
| 1088 | case BPF_JSET: | 1089 | case BPF_JSET: |
| 1089 | emit(ARM_AND_R(ARM_IP, rt, rn), ctx); | 1090 | if (is_jmp64) { |
| 1090 | emit(ARM_AND_R(ARM_LR, rd, rm), ctx); | 1091 | emit(ARM_AND_R(ARM_IP, rt, rn), ctx); |
| 1091 | emit(ARM_ORRS_R(ARM_IP, ARM_LR, ARM_IP), ctx); | 1092 | emit(ARM_AND_R(ARM_LR, rd, rm), ctx); |
| 1093 | emit(ARM_ORRS_R(ARM_IP, ARM_LR, ARM_IP), ctx); | ||
| 1094 | } else { | ||
| 1095 | emit(ARM_ANDS_R(ARM_IP, rt, rn), ctx); | ||
| 1096 | } | ||
| 1092 | break; | 1097 | break; |
| 1093 | case BPF_JEQ: | 1098 | case BPF_JEQ: |
| 1094 | case BPF_JNE: | 1099 | case BPF_JNE: |
| @@ -1096,18 +1101,25 @@ static inline void emit_ar_r(const u8 rd, const u8 rt, const u8 rm, | |||
| 1096 | case BPF_JGE: | 1101 | case BPF_JGE: |
| 1097 | case BPF_JLE: | 1102 | case BPF_JLE: |
| 1098 | case BPF_JLT: | 1103 | case BPF_JLT: |
| 1099 | emit(ARM_CMP_R(rd, rm), ctx); | 1104 | if (is_jmp64) { |
| 1100 | _emit(ARM_COND_EQ, ARM_CMP_R(rt, rn), ctx); | 1105 | emit(ARM_CMP_R(rd, rm), ctx); |
| 1106 | /* Only compare low halve if high halve are equal. */ | ||
| 1107 | _emit(ARM_COND_EQ, ARM_CMP_R(rt, rn), ctx); | ||
| 1108 | } else { | ||
| 1109 | emit(ARM_CMP_R(rt, rn), ctx); | ||
| 1110 | } | ||
| 1101 | break; | 1111 | break; |
| 1102 | case BPF_JSLE: | 1112 | case BPF_JSLE: |
| 1103 | case BPF_JSGT: | 1113 | case BPF_JSGT: |
| 1104 | emit(ARM_CMP_R(rn, rt), ctx); | 1114 | emit(ARM_CMP_R(rn, rt), ctx); |
| 1105 | emit(ARM_SBCS_R(ARM_IP, rm, rd), ctx); | 1115 | if (is_jmp64) |
| 1116 | emit(ARM_SBCS_R(ARM_IP, rm, rd), ctx); | ||
| 1106 | break; | 1117 | break; |
| 1107 | case BPF_JSLT: | 1118 | case BPF_JSLT: |
| 1108 | case BPF_JSGE: | 1119 | case BPF_JSGE: |
| 1109 | emit(ARM_CMP_R(rt, rn), ctx); | 1120 | emit(ARM_CMP_R(rt, rn), ctx); |
| 1110 | emit(ARM_SBCS_R(ARM_IP, rd, rm), ctx); | 1121 | if (is_jmp64) |
| 1122 | emit(ARM_SBCS_R(ARM_IP, rd, rm), ctx); | ||
| 1111 | break; | 1123 | break; |
| 1112 | } | 1124 | } |
| 1113 | } | 1125 | } |
| @@ -1615,6 +1627,17 @@ exit: | |||
| 1615 | case BPF_JMP | BPF_JLT | BPF_X: | 1627 | case BPF_JMP | BPF_JLT | BPF_X: |
| 1616 | case BPF_JMP | BPF_JSLT | BPF_X: | 1628 | case BPF_JMP | BPF_JSLT | BPF_X: |
| 1617 | case BPF_JMP | BPF_JSLE | BPF_X: | 1629 | case BPF_JMP | BPF_JSLE | BPF_X: |
| 1630 | case BPF_JMP32 | BPF_JEQ | BPF_X: | ||
| 1631 | case BPF_JMP32 | BPF_JGT | BPF_X: | ||
| 1632 | case BPF_JMP32 | BPF_JGE | BPF_X: | ||
| 1633 | case BPF_JMP32 | BPF_JNE | BPF_X: | ||
| 1634 | case BPF_JMP32 | BPF_JSGT | BPF_X: | ||
| 1635 | case BPF_JMP32 | BPF_JSGE | BPF_X: | ||
| 1636 | case BPF_JMP32 | BPF_JSET | BPF_X: | ||
| 1637 | case BPF_JMP32 | BPF_JLE | BPF_X: | ||
| 1638 | case BPF_JMP32 | BPF_JLT | BPF_X: | ||
| 1639 | case BPF_JMP32 | BPF_JSLT | BPF_X: | ||
| 1640 | case BPF_JMP32 | BPF_JSLE | BPF_X: | ||
| 1618 | /* Setup source registers */ | 1641 | /* Setup source registers */ |
| 1619 | rm = arm_bpf_get_reg32(src_hi, tmp2[0], ctx); | 1642 | rm = arm_bpf_get_reg32(src_hi, tmp2[0], ctx); |
| 1620 | rn = arm_bpf_get_reg32(src_lo, tmp2[1], ctx); | 1643 | rn = arm_bpf_get_reg32(src_lo, tmp2[1], ctx); |
| @@ -1641,6 +1664,17 @@ exit: | |||
| 1641 | case BPF_JMP | BPF_JLE | BPF_K: | 1664 | case BPF_JMP | BPF_JLE | BPF_K: |
| 1642 | case BPF_JMP | BPF_JSLT | BPF_K: | 1665 | case BPF_JMP | BPF_JSLT | BPF_K: |
| 1643 | case BPF_JMP | BPF_JSLE | BPF_K: | 1666 | case BPF_JMP | BPF_JSLE | BPF_K: |
| 1667 | case BPF_JMP32 | BPF_JEQ | BPF_K: | ||
| 1668 | case BPF_JMP32 | BPF_JGT | BPF_K: | ||
| 1669 | case BPF_JMP32 | BPF_JGE | BPF_K: | ||
| 1670 | case BPF_JMP32 | BPF_JNE | BPF_K: | ||
| 1671 | case BPF_JMP32 | BPF_JSGT | BPF_K: | ||
| 1672 | case BPF_JMP32 | BPF_JSGE | BPF_K: | ||
| 1673 | case BPF_JMP32 | BPF_JSET | BPF_K: | ||
| 1674 | case BPF_JMP32 | BPF_JLT | BPF_K: | ||
| 1675 | case BPF_JMP32 | BPF_JLE | BPF_K: | ||
| 1676 | case BPF_JMP32 | BPF_JSLT | BPF_K: | ||
| 1677 | case BPF_JMP32 | BPF_JSLE | BPF_K: | ||
| 1644 | if (off == 0) | 1678 | if (off == 0) |
| 1645 | break; | 1679 | break; |
| 1646 | rm = tmp2[0]; | 1680 | rm = tmp2[0]; |
| @@ -1652,7 +1686,8 @@ go_jmp: | |||
| 1652 | rd = arm_bpf_get_reg64(dst, tmp, ctx); | 1686 | rd = arm_bpf_get_reg64(dst, tmp, ctx); |
| 1653 | 1687 | ||
| 1654 | /* Check for the condition */ | 1688 | /* Check for the condition */ |
| 1655 | emit_ar_r(rd[0], rd[1], rm, rn, ctx, BPF_OP(code)); | 1689 | emit_ar_r(rd[0], rd[1], rm, rn, ctx, BPF_OP(code), |
| 1690 | BPF_CLASS(code) == BPF_JMP); | ||
| 1656 | 1691 | ||
| 1657 | /* Setup JUMP instruction */ | 1692 | /* Setup JUMP instruction */ |
| 1658 | jmp_offset = bpf2a32_offset(i+off, i, ctx); | 1693 | jmp_offset = bpf2a32_offset(i+off, i, ctx); |
diff --git a/arch/arm/net/bpf_jit_32.h b/arch/arm/net/bpf_jit_32.h index f4e58bcdaa43..13a05f759552 100644 --- a/arch/arm/net/bpf_jit_32.h +++ b/arch/arm/net/bpf_jit_32.h | |||
| @@ -62,6 +62,7 @@ | |||
| 62 | #define ARM_INST_ADDS_I 0x02900000 | 62 | #define ARM_INST_ADDS_I 0x02900000 |
| 63 | 63 | ||
| 64 | #define ARM_INST_AND_R 0x00000000 | 64 | #define ARM_INST_AND_R 0x00000000 |
| 65 | #define ARM_INST_ANDS_R 0x00100000 | ||
| 65 | #define ARM_INST_AND_I 0x02000000 | 66 | #define ARM_INST_AND_I 0x02000000 |
| 66 | 67 | ||
| 67 | #define ARM_INST_BIC_R 0x01c00000 | 68 | #define ARM_INST_BIC_R 0x01c00000 |
| @@ -172,6 +173,7 @@ | |||
| 172 | #define ARM_ADC_I(rd, rn, imm) _AL3_I(ARM_INST_ADC, rd, rn, imm) | 173 | #define ARM_ADC_I(rd, rn, imm) _AL3_I(ARM_INST_ADC, rd, rn, imm) |
| 173 | 174 | ||
| 174 | #define ARM_AND_R(rd, rn, rm) _AL3_R(ARM_INST_AND, rd, rn, rm) | 175 | #define ARM_AND_R(rd, rn, rm) _AL3_R(ARM_INST_AND, rd, rn, rm) |
| 176 | #define ARM_ANDS_R(rd, rn, rm) _AL3_R(ARM_INST_ANDS, rd, rn, rm) | ||
| 175 | #define ARM_AND_I(rd, rn, imm) _AL3_I(ARM_INST_AND, rd, rn, imm) | 177 | #define ARM_AND_I(rd, rn, imm) _AL3_I(ARM_INST_AND, rd, rn, imm) |
| 176 | 178 | ||
| 177 | #define ARM_BIC_R(rd, rn, rm) _AL3_R(ARM_INST_BIC, rd, rn, rm) | 179 | #define ARM_BIC_R(rd, rn, rm) _AL3_R(ARM_INST_BIC, rd, rn, rm) |
diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c index a2399fd66e97..a6c81ce00f52 100644 --- a/arch/arm/plat-orion/common.c +++ b/arch/arm/plat-orion/common.c | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | #include <linux/clkdev.h> | 18 | #include <linux/clkdev.h> |
| 19 | #include <linux/mv643xx_eth.h> | 19 | #include <linux/mv643xx_eth.h> |
| 20 | #include <linux/mv643xx_i2c.h> | 20 | #include <linux/mv643xx_i2c.h> |
| 21 | #include <net/dsa.h> | 21 | #include <linux/platform_data/dsa.h> |
| 22 | #include <linux/platform_data/dma-mv_xor.h> | 22 | #include <linux/platform_data/dma-mv_xor.h> |
| 23 | #include <linux/platform_data/usb-ehci-orion.h> | 23 | #include <linux/platform_data/usb-ehci-orion.h> |
| 24 | #include <plat/common.h> | 24 | #include <plat/common.h> |
diff --git a/arch/arm/plat-pxa/ssp.c b/arch/arm/plat-pxa/ssp.c index ed36dcab80f1..f51919974183 100644 --- a/arch/arm/plat-pxa/ssp.c +++ b/arch/arm/plat-pxa/ssp.c | |||
| @@ -190,8 +190,6 @@ static int pxa_ssp_remove(struct platform_device *pdev) | |||
| 190 | if (ssp == NULL) | 190 | if (ssp == NULL) |
| 191 | return -ENODEV; | 191 | return -ENODEV; |
| 192 | 192 | ||
| 193 | iounmap(ssp->mmio_base); | ||
| 194 | |||
| 195 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 193 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 196 | release_mem_region(res->start, resource_size(res)); | 194 | release_mem_region(res->start, resource_size(res)); |
| 197 | 195 | ||
| @@ -201,7 +199,6 @@ static int pxa_ssp_remove(struct platform_device *pdev) | |||
| 201 | list_del(&ssp->node); | 199 | list_del(&ssp->node); |
| 202 | mutex_unlock(&ssp_lock); | 200 | mutex_unlock(&ssp_lock); |
| 203 | 201 | ||
| 204 | kfree(ssp); | ||
| 205 | return 0; | 202 | return 0; |
| 206 | } | 203 | } |
| 207 | 204 | ||
diff --git a/arch/arm/probes/kprobes/opt-arm.c b/arch/arm/probes/kprobes/opt-arm.c index 2c118a6ab358..0dc23fc227ed 100644 --- a/arch/arm/probes/kprobes/opt-arm.c +++ b/arch/arm/probes/kprobes/opt-arm.c | |||
| @@ -247,7 +247,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *or | |||
| 247 | } | 247 | } |
| 248 | 248 | ||
| 249 | /* Copy arch-dep-instance from template. */ | 249 | /* Copy arch-dep-instance from template. */ |
| 250 | memcpy(code, (unsigned char *)optprobe_template_entry, | 250 | memcpy(code, (unsigned long *)&optprobe_template_entry, |
| 251 | TMPL_END_IDX * sizeof(kprobe_opcode_t)); | 251 | TMPL_END_IDX * sizeof(kprobe_opcode_t)); |
| 252 | 252 | ||
| 253 | /* Adjust buffer according to instruction. */ | 253 | /* Adjust buffer according to instruction. */ |
diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl index 8edf93b4490f..9016f4081bb9 100644 --- a/arch/arm/tools/syscall.tbl +++ b/arch/arm/tools/syscall.tbl | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | 10 common unlink sys_unlink | 24 | 10 common unlink sys_unlink |
| 25 | 11 common execve sys_execve | 25 | 11 common execve sys_execve |
| 26 | 12 common chdir sys_chdir | 26 | 12 common chdir sys_chdir |
| 27 | 13 oabi time sys_time | 27 | 13 oabi time sys_time32 |
| 28 | 14 common mknod sys_mknod | 28 | 14 common mknod sys_mknod |
| 29 | 15 common chmod sys_chmod | 29 | 15 common chmod sys_chmod |
| 30 | 16 common lchown sys_lchown16 | 30 | 16 common lchown sys_lchown16 |
| @@ -36,12 +36,12 @@ | |||
| 36 | 22 oabi umount sys_oldumount | 36 | 22 oabi umount sys_oldumount |
| 37 | 23 common setuid sys_setuid16 | 37 | 23 common setuid sys_setuid16 |
| 38 | 24 common getuid sys_getuid16 | 38 | 24 common getuid sys_getuid16 |
| 39 | 25 oabi stime sys_stime | 39 | 25 oabi stime sys_stime32 |
| 40 | 26 common ptrace sys_ptrace | 40 | 26 common ptrace sys_ptrace |
| 41 | 27 oabi alarm sys_alarm | 41 | 27 oabi alarm sys_alarm |
| 42 | # 28 was sys_fstat | 42 | # 28 was sys_fstat |
| 43 | 29 common pause sys_pause | 43 | 29 common pause sys_pause |
| 44 | 30 oabi utime sys_utime | 44 | 30 oabi utime sys_utime32 |
| 45 | # 31 was sys_stty | 45 | # 31 was sys_stty |
| 46 | # 32 was sys_gtty | 46 | # 32 was sys_gtty |
| 47 | 33 common access sys_access | 47 | 33 common access sys_access |
| @@ -137,7 +137,7 @@ | |||
| 137 | 121 common setdomainname sys_setdomainname | 137 | 121 common setdomainname sys_setdomainname |
| 138 | 122 common uname sys_newuname | 138 | 122 common uname sys_newuname |
| 139 | # 123 was sys_modify_ldt | 139 | # 123 was sys_modify_ldt |
| 140 | 124 common adjtimex sys_adjtimex | 140 | 124 common adjtimex sys_adjtimex_time32 |
| 141 | 125 common mprotect sys_mprotect | 141 | 125 common mprotect sys_mprotect |
| 142 | 126 common sigprocmask sys_sigprocmask | 142 | 126 common sigprocmask sys_sigprocmask |
| 143 | # 127 was sys_create_module | 143 | # 127 was sys_create_module |
| @@ -174,8 +174,8 @@ | |||
| 174 | 158 common sched_yield sys_sched_yield | 174 | 158 common sched_yield sys_sched_yield |
| 175 | 159 common sched_get_priority_max sys_sched_get_priority_max | 175 | 159 common sched_get_priority_max sys_sched_get_priority_max |
| 176 | 160 common sched_get_priority_min sys_sched_get_priority_min | 176 | 160 common sched_get_priority_min sys_sched_get_priority_min |
| 177 | 161 common sched_rr_get_interval sys_sched_rr_get_interval | 177 | 161 common sched_rr_get_interval sys_sched_rr_get_interval_time32 |
| 178 | 162 common nanosleep sys_nanosleep | 178 | 162 common nanosleep sys_nanosleep_time32 |
| 179 | 163 common mremap sys_mremap | 179 | 163 common mremap sys_mremap |
| 180 | 164 common setresuid sys_setresuid16 | 180 | 164 common setresuid sys_setresuid16 |
| 181 | 165 common getresuid sys_getresuid16 | 181 | 165 common getresuid sys_getresuid16 |
| @@ -190,7 +190,7 @@ | |||
| 190 | 174 common rt_sigaction sys_rt_sigaction | 190 | 174 common rt_sigaction sys_rt_sigaction |
| 191 | 175 common rt_sigprocmask sys_rt_sigprocmask | 191 | 175 common rt_sigprocmask sys_rt_sigprocmask |
| 192 | 176 common rt_sigpending sys_rt_sigpending | 192 | 176 common rt_sigpending sys_rt_sigpending |
| 193 | 177 common rt_sigtimedwait sys_rt_sigtimedwait | 193 | 177 common rt_sigtimedwait sys_rt_sigtimedwait_time32 |
| 194 | 178 common rt_sigqueueinfo sys_rt_sigqueueinfo | 194 | 178 common rt_sigqueueinfo sys_rt_sigqueueinfo |
| 195 | 179 common rt_sigsuspend sys_rt_sigsuspend | 195 | 179 common rt_sigsuspend sys_rt_sigsuspend |
| 196 | 180 common pread64 sys_pread64 sys_oabi_pread64 | 196 | 180 common pread64 sys_pread64 sys_oabi_pread64 |
| @@ -254,12 +254,12 @@ | |||
| 254 | 237 common fremovexattr sys_fremovexattr | 254 | 237 common fremovexattr sys_fremovexattr |
| 255 | 238 common tkill sys_tkill | 255 | 238 common tkill sys_tkill |
| 256 | 239 common sendfile64 sys_sendfile64 | 256 | 239 common sendfile64 sys_sendfile64 |
| 257 | 240 common futex sys_futex | 257 | 240 common futex sys_futex_time32 |
| 258 | 241 common sched_setaffinity sys_sched_setaffinity | 258 | 241 common sched_setaffinity sys_sched_setaffinity |
| 259 | 242 common sched_getaffinity sys_sched_getaffinity | 259 | 242 common sched_getaffinity sys_sched_getaffinity |
| 260 | 243 common io_setup sys_io_setup | 260 | 243 common io_setup sys_io_setup |
| 261 | 244 common io_destroy sys_io_destroy | 261 | 244 common io_destroy sys_io_destroy |
| 262 | 245 common io_getevents sys_io_getevents | 262 | 245 common io_getevents sys_io_getevents_time32 |
| 263 | 246 common io_submit sys_io_submit | 263 | 246 common io_submit sys_io_submit |
| 264 | 247 common io_cancel sys_io_cancel | 264 | 247 common io_cancel sys_io_cancel |
| 265 | 248 common exit_group sys_exit_group | 265 | 248 common exit_group sys_exit_group |
| @@ -272,26 +272,26 @@ | |||
| 272 | # 255 for get_thread_area | 272 | # 255 for get_thread_area |
| 273 | 256 common set_tid_address sys_set_tid_address | 273 | 256 common set_tid_address sys_set_tid_address |
| 274 | 257 common timer_create sys_timer_create | 274 | 257 common timer_create sys_timer_create |
| 275 | 258 common timer_settime sys_timer_settime | 275 | 258 common timer_settime sys_timer_settime32 |
| 276 | 259 common timer_gettime sys_timer_gettime | 276 | 259 common timer_gettime sys_timer_gettime32 |
| 277 | 260 common timer_getoverrun sys_timer_getoverrun | 277 | 260 common timer_getoverrun sys_timer_getoverrun |
| 278 | 261 common timer_delete sys_timer_delete | 278 | 261 common timer_delete sys_timer_delete |
| 279 | 262 common clock_settime sys_clock_settime | 279 | 262 common clock_settime sys_clock_settime32 |
| 280 | 263 common clock_gettime sys_clock_gettime | 280 | 263 common clock_gettime sys_clock_gettime32 |
| 281 | 264 common clock_getres sys_clock_getres | 281 | 264 common clock_getres sys_clock_getres_time32 |
| 282 | 265 common clock_nanosleep sys_clock_nanosleep | 282 | 265 common clock_nanosleep sys_clock_nanosleep_time32 |
| 283 | 266 common statfs64 sys_statfs64_wrapper | 283 | 266 common statfs64 sys_statfs64_wrapper |
| 284 | 267 common fstatfs64 sys_fstatfs64_wrapper | 284 | 267 common fstatfs64 sys_fstatfs64_wrapper |
| 285 | 268 common tgkill sys_tgkill | 285 | 268 common tgkill sys_tgkill |
| 286 | 269 common utimes sys_utimes | 286 | 269 common utimes sys_utimes_time32 |
| 287 | 270 common arm_fadvise64_64 sys_arm_fadvise64_64 | 287 | 270 common arm_fadvise64_64 sys_arm_fadvise64_64 |
| 288 | 271 common pciconfig_iobase sys_pciconfig_iobase | 288 | 271 common pciconfig_iobase sys_pciconfig_iobase |
| 289 | 272 common pciconfig_read sys_pciconfig_read | 289 | 272 common pciconfig_read sys_pciconfig_read |
| 290 | 273 common pciconfig_write sys_pciconfig_write | 290 | 273 common pciconfig_write sys_pciconfig_write |
| 291 | 274 common mq_open sys_mq_open | 291 | 274 common mq_open sys_mq_open |
| 292 | 275 common mq_unlink sys_mq_unlink | 292 | 275 common mq_unlink sys_mq_unlink |
| 293 | 276 common mq_timedsend sys_mq_timedsend | 293 | 276 common mq_timedsend sys_mq_timedsend_time32 |
| 294 | 277 common mq_timedreceive sys_mq_timedreceive | 294 | 277 common mq_timedreceive sys_mq_timedreceive_time32 |
| 295 | 278 common mq_notify sys_mq_notify | 295 | 278 common mq_notify sys_mq_notify |
| 296 | 279 common mq_getsetattr sys_mq_getsetattr | 296 | 279 common mq_getsetattr sys_mq_getsetattr |
| 297 | 280 common waitid sys_waitid | 297 | 280 common waitid sys_waitid |
| @@ -314,19 +314,19 @@ | |||
| 314 | 297 common recvmsg sys_recvmsg | 314 | 297 common recvmsg sys_recvmsg |
| 315 | 298 common semop sys_semop sys_oabi_semop | 315 | 298 common semop sys_semop sys_oabi_semop |
| 316 | 299 common semget sys_semget | 316 | 299 common semget sys_semget |
| 317 | 300 common semctl sys_semctl | 317 | 300 common semctl sys_old_semctl |
| 318 | 301 common msgsnd sys_msgsnd | 318 | 301 common msgsnd sys_msgsnd |
| 319 | 302 common msgrcv sys_msgrcv | 319 | 302 common msgrcv sys_msgrcv |
| 320 | 303 common msgget sys_msgget | 320 | 303 common msgget sys_msgget |
| 321 | 304 common msgctl sys_msgctl | 321 | 304 common msgctl sys_old_msgctl |
| 322 | 305 common shmat sys_shmat | 322 | 305 common shmat sys_shmat |
| 323 | 306 common shmdt sys_shmdt | 323 | 306 common shmdt sys_shmdt |
| 324 | 307 common shmget sys_shmget | 324 | 307 common shmget sys_shmget |
| 325 | 308 common shmctl sys_shmctl | 325 | 308 common shmctl sys_old_shmctl |
| 326 | 309 common add_key sys_add_key | 326 | 309 common add_key sys_add_key |
| 327 | 310 common request_key sys_request_key | 327 | 310 common request_key sys_request_key |
| 328 | 311 common keyctl sys_keyctl | 328 | 311 common keyctl sys_keyctl |
| 329 | 312 common semtimedop sys_semtimedop sys_oabi_semtimedop | 329 | 312 common semtimedop sys_semtimedop_time32 sys_oabi_semtimedop |
| 330 | 313 common vserver | 330 | 313 common vserver |
| 331 | 314 common ioprio_set sys_ioprio_set | 331 | 314 common ioprio_set sys_ioprio_set |
| 332 | 315 common ioprio_get sys_ioprio_get | 332 | 315 common ioprio_get sys_ioprio_get |
| @@ -340,7 +340,7 @@ | |||
| 340 | 323 common mkdirat sys_mkdirat | 340 | 323 common mkdirat sys_mkdirat |
| 341 | 324 common mknodat sys_mknodat | 341 | 324 common mknodat sys_mknodat |
| 342 | 325 common fchownat sys_fchownat | 342 | 325 common fchownat sys_fchownat |
| 343 | 326 common futimesat sys_futimesat | 343 | 326 common futimesat sys_futimesat_time32 |
| 344 | 327 common fstatat64 sys_fstatat64 sys_oabi_fstatat64 | 344 | 327 common fstatat64 sys_fstatat64 sys_oabi_fstatat64 |
| 345 | 328 common unlinkat sys_unlinkat | 345 | 328 common unlinkat sys_unlinkat |
| 346 | 329 common renameat sys_renameat | 346 | 329 common renameat sys_renameat |
| @@ -349,8 +349,8 @@ | |||
| 349 | 332 common readlinkat sys_readlinkat | 349 | 332 common readlinkat sys_readlinkat |
| 350 | 333 common fchmodat sys_fchmodat | 350 | 333 common fchmodat sys_fchmodat |
| 351 | 334 common faccessat sys_faccessat | 351 | 334 common faccessat sys_faccessat |
| 352 | 335 common pselect6 sys_pselect6 | 352 | 335 common pselect6 sys_pselect6_time32 |
| 353 | 336 common ppoll sys_ppoll | 353 | 336 common ppoll sys_ppoll_time32 |
| 354 | 337 common unshare sys_unshare | 354 | 337 common unshare sys_unshare |
| 355 | 338 common set_robust_list sys_set_robust_list | 355 | 338 common set_robust_list sys_set_robust_list |
| 356 | 339 common get_robust_list sys_get_robust_list | 356 | 339 common get_robust_list sys_get_robust_list |
| @@ -362,13 +362,13 @@ | |||
| 362 | 345 common getcpu sys_getcpu | 362 | 345 common getcpu sys_getcpu |
| 363 | 346 common epoll_pwait sys_epoll_pwait | 363 | 346 common epoll_pwait sys_epoll_pwait |
| 364 | 347 common kexec_load sys_kexec_load | 364 | 347 common kexec_load sys_kexec_load |
| 365 | 348 common utimensat sys_utimensat | 365 | 348 common utimensat sys_utimensat_time32 |
| 366 | 349 common signalfd sys_signalfd | 366 | 349 common signalfd sys_signalfd |
| 367 | 350 common timerfd_create sys_timerfd_create | 367 | 350 common timerfd_create sys_timerfd_create |
| 368 | 351 common eventfd sys_eventfd | 368 | 351 common eventfd sys_eventfd |
| 369 | 352 common fallocate sys_fallocate | 369 | 352 common fallocate sys_fallocate |
| 370 | 353 common timerfd_settime sys_timerfd_settime | 370 | 353 common timerfd_settime sys_timerfd_settime32 |
| 371 | 354 common timerfd_gettime sys_timerfd_gettime | 371 | 354 common timerfd_gettime sys_timerfd_gettime32 |
| 372 | 355 common signalfd4 sys_signalfd4 | 372 | 355 common signalfd4 sys_signalfd4 |
| 373 | 356 common eventfd2 sys_eventfd2 | 373 | 356 common eventfd2 sys_eventfd2 |
| 374 | 357 common epoll_create1 sys_epoll_create1 | 374 | 357 common epoll_create1 sys_epoll_create1 |
| @@ -379,14 +379,14 @@ | |||
| 379 | 362 common pwritev sys_pwritev | 379 | 362 common pwritev sys_pwritev |
| 380 | 363 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo | 380 | 363 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo |
| 381 | 364 common perf_event_open sys_perf_event_open | 381 | 364 common perf_event_open sys_perf_event_open |
| 382 | 365 common recvmmsg sys_recvmmsg | 382 | 365 common recvmmsg sys_recvmmsg_time32 |
| 383 | 366 common accept4 sys_accept4 | 383 | 366 common accept4 sys_accept4 |
| 384 | 367 common fanotify_init sys_fanotify_init | 384 | 367 common fanotify_init sys_fanotify_init |
| 385 | 368 common fanotify_mark sys_fanotify_mark | 385 | 368 common fanotify_mark sys_fanotify_mark |
| 386 | 369 common prlimit64 sys_prlimit64 | 386 | 369 common prlimit64 sys_prlimit64 |
| 387 | 370 common name_to_handle_at sys_name_to_handle_at | 387 | 370 common name_to_handle_at sys_name_to_handle_at |
| 388 | 371 common open_by_handle_at sys_open_by_handle_at | 388 | 371 common open_by_handle_at sys_open_by_handle_at |
| 389 | 372 common clock_adjtime sys_clock_adjtime | 389 | 372 common clock_adjtime sys_clock_adjtime32 |
| 390 | 373 common syncfs sys_syncfs | 390 | 373 common syncfs sys_syncfs |
| 391 | 374 common sendmmsg sys_sendmmsg | 391 | 374 common sendmmsg sys_sendmmsg |
| 392 | 375 common setns sys_setns | 392 | 375 common setns sys_setns |
| @@ -413,4 +413,27 @@ | |||
| 413 | 396 common pkey_free sys_pkey_free | 413 | 396 common pkey_free sys_pkey_free |
| 414 | 397 common statx sys_statx | 414 | 397 common statx sys_statx |
| 415 | 398 common rseq sys_rseq | 415 | 398 common rseq sys_rseq |
| 416 | 399 common io_pgetevents sys_io_pgetevents | 416 | 399 common io_pgetevents sys_io_pgetevents_time32 |
| 417 | 400 common migrate_pages sys_migrate_pages | ||
| 418 | 401 common kexec_file_load sys_kexec_file_load | ||
| 419 | # 402 is unused | ||
| 420 | 403 common clock_gettime64 sys_clock_gettime | ||
| 421 | 404 common clock_settime64 sys_clock_settime | ||
| 422 | 405 common clock_adjtime64 sys_clock_adjtime | ||
| 423 | 406 common clock_getres_time64 sys_clock_getres | ||
| 424 | 407 common clock_nanosleep_time64 sys_clock_nanosleep | ||
| 425 | 408 common timer_gettime64 sys_timer_gettime | ||
| 426 | 409 common timer_settime64 sys_timer_settime | ||
| 427 | 410 common timerfd_gettime64 sys_timerfd_gettime | ||
| 428 | 411 common timerfd_settime64 sys_timerfd_settime | ||
| 429 | 412 common utimensat_time64 sys_utimensat | ||
| 430 | 413 common pselect6_time64 sys_pselect6 | ||
| 431 | 414 common ppoll_time64 sys_ppoll | ||
| 432 | 416 common io_pgetevents_time64 sys_io_pgetevents | ||
| 433 | 417 common recvmmsg_time64 sys_recvmmsg | ||
| 434 | 418 common mq_timedsend_time64 sys_mq_timedsend | ||
| 435 | 419 common mq_timedreceive_time64 sys_mq_timedreceive | ||
| 436 | 420 common semtimedop_time64 sys_semtimedop | ||
| 437 | 421 common rt_sigtimedwait_time64 sys_rt_sigtimedwait | ||
| 438 | 422 common futex_time64 sys_futex | ||
| 439 | 423 common sched_rr_get_interval_time64 sys_sched_rr_get_interval | ||
diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S index b0b80c0f09f3..b11bba542fac 100644 --- a/arch/arm/xen/hypercall.S +++ b/arch/arm/xen/hypercall.S | |||
| @@ -113,8 +113,7 @@ ENTRY(privcmd_call) | |||
| 113 | 113 | ||
| 114 | /* | 114 | /* |
| 115 | * Disable userspace access from kernel. This is fine to do it | 115 | * Disable userspace access from kernel. This is fine to do it |
| 116 | * unconditionally as no set_fs(KERNEL_DS)/set_fs(get_ds()) is | 116 | * unconditionally as no set_fs(KERNEL_DS) is called before. |
| 117 | * called before. | ||
| 118 | */ | 117 | */ |
| 119 | uaccess_disable r4 | 118 | uaccess_disable r4 |
| 120 | 119 | ||
diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c index cb44aa290e73..e1d44b903dfc 100644 --- a/arch/arm/xen/mm.c +++ b/arch/arm/xen/mm.c | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | #include <linux/of_address.h> | 7 | #include <linux/of_address.h> |
| 8 | #include <linux/slab.h> | 8 | #include <linux/slab.h> |
| 9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
| 10 | #include <linux/dma-mapping.h> | ||
| 11 | #include <linux/vmalloc.h> | 10 | #include <linux/vmalloc.h> |
| 12 | #include <linux/swiotlb.h> | 11 | #include <linux/swiotlb.h> |
| 13 | 12 | ||
