Merge remote-tracking branch 'stable/linux-4.1.y' into rpi-4.1.y rpi-bootloader-1.20160202-1
authorpopcornmix <popcornmix@gmail.com>
Mon, 1 Feb 2016 13:42:12 +0000 (13:42 +0000)
committerpopcornmix <popcornmix@gmail.com>
Mon, 1 Feb 2016 13:42:12 +0000 (13:42 +0000)
693 files changed:
Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 [new file with mode: 0644]
Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt [new file with mode: 0644]
Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt [new file with mode: 0644]
Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt [new file with mode: 0644]
Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt [new file with mode: 0644]
Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt [new file with mode: 0644]
Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt
Documentation/devicetree/bindings/vendor-prefixes.txt
Documentation/video4linux/bcm2835-v4l2.txt [new file with mode: 0644]
Documentation/w1/slaves/w1_therm
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/Makefile
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/bcm2708-rpi-b-plus.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm2708-rpi-b.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm2708-rpi-cm.dts [new file with mode: 0755]
arch/arm/boot/dts/bcm2708-rpi-cm.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm2708.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm2708_common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm2709-rpi-2-b.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm2709.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
arch/arm/boot/dts/bcm2835-rpi-b.dts
arch/arm/boot/dts/bcm2835-rpi.dtsi
arch/arm/boot/dts/bcm2835.dtsi
arch/arm/boot/dts/overlays/Makefile [new file with mode: 0644]
arch/arm/boot/dts/overlays/README [new file with mode: 0644]
arch/arm/boot/dts/overlays/ads7846-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/at86rf233-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/dht11-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/enc28j60-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/gpio-ir-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/hy28a-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/hy28b-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/mcp2515-can0-overlay.dts [new file with mode: 0755]
arch/arm/boot/dts/overlays/mcp2515-can1-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/mmc-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/mz61581-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/piscreen-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/piscreen2r-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/pitft28-capacitive-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/pitft28-resistive-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/pps-gpio-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/pwm-2chan-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/pwm-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/raspidac3-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/rpi-backlight-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/rpi-dac-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/rpi-display-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/rpi-ft5406-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/rpi-proto-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/rpi-sense-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/sdhost-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/sdio-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/smi-dev-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/smi-nand-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/smi-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/spi-bcm2708-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/spi-bcm2835-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/spi-dma-overlay.dts [new file with mode: 0755]
arch/arm/boot/dts/overlays/tinylcd35-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/uart1-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/vc4-kms-v3d-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/vga666-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/w1-gpio-overlay.dts [new file with mode: 0644]
arch/arm/boot/dts/overlays/w1-gpio-pullup-overlay.dts [new file with mode: 0644]
arch/arm/configs/bcm2709_defconfig [new file with mode: 0644]
arch/arm/configs/bcm2835_defconfig
arch/arm/configs/bcmrpi_defconfig [new file with mode: 0644]
arch/arm/include/asm/entry-macro-multi.S
arch/arm/include/asm/irqflags.h
arch/arm/include/asm/string.h
arch/arm/include/asm/uaccess.h
arch/arm/kernel/fiqasm.S
arch/arm/kernel/head.S
arch/arm/kernel/process.c
arch/arm/lib/Makefile
arch/arm/lib/arm-mem.h [new file with mode: 0644]
arch/arm/lib/copy_from_user.S
arch/arm/lib/exports_rpi.c [new file with mode: 0644]
arch/arm/lib/memcmp_rpi.S [new file with mode: 0644]
arch/arm/lib/memcpy_rpi.S [new file with mode: 0644]
arch/arm/lib/memcpymove.h [new file with mode: 0644]
arch/arm/lib/memmove_rpi.S [new file with mode: 0644]
arch/arm/lib/memset_rpi.S [new file with mode: 0644]
arch/arm/lib/uaccess_with_memcpy.c
arch/arm/mach-bcm/Kconfig
arch/arm/mach-bcm/board_bcm2835.c
arch/arm/mach-bcm2708/Kconfig [new file with mode: 0644]
arch/arm/mach-bcm2708/Makefile [new file with mode: 0644]
arch/arm/mach-bcm2708/Makefile.boot [new file with mode: 0644]
arch/arm/mach-bcm2708/armctrl.c [new file with mode: 0644]
arch/arm/mach-bcm2708/armctrl.h [new file with mode: 0644]
arch/arm/mach-bcm2708/bcm2708.c [new file with mode: 0644]
arch/arm/mach-bcm2708/bcm2708.h [new file with mode: 0644]
arch/arm/mach-bcm2708/bcm2708_gpio.c [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/arm_control.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/clkdev.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/debug-macro.S [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/entry-macro.S [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/frc.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/gpio.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/hardware.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/io.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/irqs.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/memory.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/platform.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/system.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/timex.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/uncompress.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/vc_sm_defs.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/vc_sm_knl.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/vc_vchi_sm.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/vmalloc.h [new file with mode: 0644]
arch/arm/mach-bcm2708/include/mach/vmcs_sm_ioctl.h [new file with mode: 0644]
arch/arm/mach-bcm2709/Kconfig [new file with mode: 0644]
arch/arm/mach-bcm2709/Makefile [new file with mode: 0644]
arch/arm/mach-bcm2709/Makefile.boot [new file with mode: 0644]
arch/arm/mach-bcm2709/armctrl.c [new file with mode: 0644]
arch/arm/mach-bcm2709/armctrl.h [new file with mode: 0644]
arch/arm/mach-bcm2709/bcm2708_gpio.c [new file with mode: 0644]
arch/arm/mach-bcm2709/bcm2709.c [new file with mode: 0644]
arch/arm/mach-bcm2709/bcm2709.h [new file with mode: 0644]
arch/arm/mach-bcm2709/delay.S [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/arm_control.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/barriers.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/clkdev.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/debug-macro.S [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/entry-macro.S [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/frc.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/gpio.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/hardware.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/io.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/irqs.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/memory.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/platform.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/system.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/timex.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/uncompress.h [new file with mode: 0644]
arch/arm/mach-bcm2709/include/mach/vc_support.h [new file with mode: 0755]
arch/arm/mach-bcm2709/include/mach/vmalloc.h [new file with mode: 0644]
arch/arm/mach-bcm2709/vc_support.c [new file with mode: 0644]
arch/arm/mm/Kconfig
arch/arm/mm/proc-v6.S
arch/arm/mm/proc-v7.S
arch/arm/tools/mach-types
drivers/char/Kconfig
drivers/char/Makefile
drivers/char/broadcom/Kconfig [new file with mode: 0644]
drivers/char/broadcom/Makefile [new file with mode: 0644]
drivers/char/broadcom/bcm2835-gpiomem.c [new file with mode: 0644]
drivers/char/broadcom/bcm2835_smi_dev.c [new file with mode: 0644]
drivers/char/broadcom/vc_cma/Makefile [new file with mode: 0644]
drivers/char/broadcom/vc_cma/vc_cma.c [new file with mode: 0644]
drivers/char/broadcom/vc_mem.c [new file with mode: 0644]
drivers/char/broadcom/vc_sm/Makefile [new file with mode: 0644]
drivers/char/broadcom/vc_sm/vc_vchi_sm.c [new file with mode: 0644]
drivers/char/broadcom/vc_sm/vmcs_sm.c [new file with mode: 0644]
drivers/char/broadcom/vcio.c [new file with mode: 0644]
drivers/char/hw_random/Kconfig
drivers/char/hw_random/Makefile
drivers/char/hw_random/bcm2708-rng.c [new file with mode: 0755]
drivers/clk/Makefile
drivers/clk/bcm/Makefile
drivers/clk/bcm/clk-bcm2835.c [new file with mode: 0644]
drivers/clk/clk-bcm2835.c [deleted file]
drivers/clk/clk-hifiberry-dacpro.c [new file with mode: 0644]
drivers/clocksource/arm_arch_timer.c
drivers/cpufreq/Kconfig.arm
drivers/cpufreq/Makefile
drivers/cpufreq/bcm2835-cpufreq.c [new file with mode: 0644]
drivers/dma/Kconfig
drivers/dma/Makefile
drivers/dma/bcm2708-dmaengine.c [new file with mode: 0644]
drivers/firmware/Kconfig
drivers/firmware/Makefile
drivers/firmware/raspberrypi.c [new file with mode: 0644]
drivers/gpu/drm/Kconfig
drivers/gpu/drm/Makefile
drivers/gpu/drm/drm_atomic_helper.c
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_crtc_helper.c
drivers/gpu/drm/drm_fb_cma_helper.c
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/drm_gem_cma_helper.c
drivers/gpu/drm/drm_of.c
drivers/gpu/drm/drm_probe_helper.c
drivers/gpu/drm/vc4/Kconfig [new file with mode: 0644]
drivers/gpu/drm/vc4/Makefile [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_bo.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_crtc.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_debugfs.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_drv.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_drv.h [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_gem.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_hdmi.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_hvs.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_irq.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_kms.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_packet.h [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_plane.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_qpu_defines.h [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_regs.h [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_render_cl.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_trace.h [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_trace_points.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_v3d.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_validate.c [new file with mode: 0644]
drivers/gpu/drm/vc4/vc4_validate_shaders.c [new file with mode: 0644]
drivers/hid/usbhid/hid-core.c
drivers/i2c/busses/Kconfig
drivers/i2c/busses/Makefile
drivers/i2c/busses/i2c-bcm2708.c [new file with mode: 0644]
drivers/input/joystick/Kconfig
drivers/input/joystick/Makefile
drivers/input/joystick/rpisense-js.c [new file with mode: 0644]
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/Makefile
drivers/input/touchscreen/ft6236.c [new file with mode: 0644]
drivers/input/touchscreen/rpi-ft5406.c [new file with mode: 0644]
drivers/irqchip/irq-bcm2835.c
drivers/leds/leds-gpio.c
drivers/leds/trigger/Kconfig
drivers/leds/trigger/Makefile
drivers/leds/trigger/ledtrig-input.c [new file with mode: 0644]
drivers/mailbox/Kconfig
drivers/mailbox/Makefile
drivers/mailbox/bcm2835-mailbox.c [new file with mode: 0644]
drivers/mailbox/mailbox.c
drivers/media/platform/Kconfig
drivers/media/platform/Makefile
drivers/media/platform/bcm2835/Kconfig [new file with mode: 0644]
drivers/media/platform/bcm2835/Makefile [new file with mode: 0644]
drivers/media/platform/bcm2835/bcm2835-camera.c [new file with mode: 0644]
drivers/media/platform/bcm2835/bcm2835-camera.h [new file with mode: 0644]
drivers/media/platform/bcm2835/controls.c [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-common.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-encodings.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-msg-common.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-msg-format.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-msg-port.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-msg.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-parameters.h [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-vchiq.c [new file with mode: 0644]
drivers/media/platform/bcm2835/mmal-vchiq.h [new file with mode: 0644]
drivers/media/usb/dvb-usb-v2/rtl28xxu.c
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/mfd/rpisense-core.c [new file with mode: 0644]
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/misc/bcm2835_smi.c [new file with mode: 0644]
drivers/misc/vc04_services/Kconfig [new file with mode: 0644]
drivers/misc/vc04_services/Makefile [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/connections/connection.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/message_drivers/message.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/vchi.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/vchi_cfg.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/vchi_common.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchi/vchi_mh.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_debugfs.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_killable.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h [new file with mode: 0644]
drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c [new file with mode: 0644]
drivers/mmc/card/block.c
drivers/mmc/core/quirks.c
drivers/mmc/host/Kconfig
drivers/mmc/host/Makefile
drivers/mmc/host/bcm2835-mmc.c [new file with mode: 0644]
drivers/mmc/host/bcm2835-sdhost.c [new file with mode: 0644]
drivers/mmc/host/omap_hsmmc.c
drivers/mmc/host/sh_mobile_sdhi.c
drivers/mmc/host/tmio_mmc_pio.c
drivers/mtd/nand/Kconfig
drivers/mtd/nand/Makefile
drivers/mtd/nand/bcm2835_smi_nand.c [new file with mode: 0644]
drivers/net/ethernet/microchip/enc28j60.c
drivers/net/usb/smsc95xx.c
drivers/net/wireless/Kconfig
drivers/net/wireless/Makefile
drivers/net/wireless/mediatek/Kconfig [new file with mode: 0644]
drivers/net/wireless/mediatek/Makefile [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/Kconfig [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/Makefile [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/core.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/debugfs.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/dma.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/dma.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/eeprom.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/eeprom.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/init.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/initvals.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/initvals_phy.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/mac.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/mac.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/main.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/mcu.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/mcu.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/mt7601u.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/phy.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/regs.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/trace.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/trace.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/tx.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/usb.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/usb.h [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/util.c [new file with mode: 0644]
drivers/net/wireless/mediatek/mt7601u/util.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/Kconfig [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/Makefile [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/clean [new file with mode: 0755]
drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_ap.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_cmd.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_debug.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_io.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_iol.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_mlme.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_mp.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_p2p.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_recv.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_rf.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_security.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_sreset.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_tdls.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/core/rtw_xmit.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/HalPwrSeqCmd.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/dm.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/dm.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/hal_com.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/hal_intf.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/ifcfg-wlan0 [new file with mode: 0755]
drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/HalPwrSeqCmd.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/autoconf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/basic_types.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/byteorder/generic.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/byteorder/swab.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/circ_buf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/cmd_osdep.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/drv_conf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/drv_types.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/drv_types_ce.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/drv_types_linux.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/drv_types_sdio.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/drv_types_xp.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/ethernet.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/h2clbk.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/hal_com.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/hal_intf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/ieee80211.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/if_ether.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/ip.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/linux/wireless.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/mlme_osdep.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/nic_spec.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/osdep_intf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/osdep_service.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/pci_hal.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/pci_ops.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/pci_osintf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/recv_osdep.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_android.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_ap.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_cmd.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_debug.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_efuse.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_event.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_ht.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_io.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_iol.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_led.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_mlme.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_mp.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_p2p.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_qos.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_recv.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_rf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_security.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_sreset.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_tdls.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_version.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/rtw_xmit.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/sta_info.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/usb_hal.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/usb_ops.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/usb_ops_linux.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/usb_osintf.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/wifi.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/include/xmit_osdep.h [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/pci_ops_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c [new file with mode: 0644]
drivers/net/wireless/rtl8192cu/runwpa [new file with mode: 0755]
drivers/net/wireless/rtl8192cu/wlan0dhcp [new file with mode: 0755]
drivers/of/fdt.c
drivers/pinctrl/Makefile
drivers/pinctrl/bcm/pinctrl-bcm2835.c
drivers/power/reset/gpio-poweroff.c
drivers/pwm/Kconfig
drivers/rtc/rtc-ds1307.c
drivers/spi/Kconfig
drivers/spi/Makefile
drivers/spi/spi-bcm2708.c [new file with mode: 0644]
drivers/spi/spi-bcm2835.c
drivers/spi/spidev.c
drivers/staging/fbtft/fbtft-core.c
drivers/staging/media/lirc/Kconfig
drivers/staging/media/lirc/Makefile
drivers/staging/media/lirc/lirc_rpi.c [new file with mode: 0644]
drivers/thermal/Kconfig
drivers/thermal/Makefile
drivers/thermal/bcm2835-thermal.c [new file with mode: 0644]
drivers/tty/serial/8250/8250_core.c
drivers/tty/serial/amba-pl011.c
drivers/usb/Makefile
drivers/usb/core/generic.c
drivers/usb/core/hub.c
drivers/usb/core/message.c
drivers/usb/core/otg_whitelist.h
drivers/usb/gadget/file_storage.c [new file with mode: 0644]
drivers/usb/host/Kconfig
drivers/usb/host/Makefile
drivers/usb/host/dwc_common_port/Makefile [new file with mode: 0644]
drivers/usb/host/dwc_common_port/Makefile.fbsd [new file with mode: 0644]
drivers/usb/host/dwc_common_port/Makefile.linux [new file with mode: 0644]
drivers/usb/host/dwc_common_port/changes.txt [new file with mode: 0644]
drivers/usb/host/dwc_common_port/doc/doxygen.cfg [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_cc.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_cc.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_common_fbsd.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_common_linux.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_common_nbsd.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_crypto.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_crypto.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_dh.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_dh.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_list.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_mem.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_modpow.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_modpow.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_notifier.c [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_notifier.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/dwc_os.h [new file with mode: 0644]
drivers/usb/host/dwc_common_port/usb.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/Makefile [new file with mode: 0644]
drivers/usb/host/dwc_otg/doc/doxygen.cfg [new file with mode: 0644]
drivers/usb/host/dwc_otg/dummy_audio.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_cfi_common.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_adp.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_adp.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_attr.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_attr.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_cfi.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_cfi.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_cil.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_cil.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_core_if.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_dbg.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_driver.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_driver.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_fiq_stub.S [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_os_dep.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_pcd.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_pcd.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c [new file with mode: 0644]
drivers/usb/host/dwc_otg/dwc_otg_regs.h [new file with mode: 0644]
drivers/usb/host/dwc_otg/test/Makefile [new file with mode: 0644]
drivers/usb/host/dwc_otg/test/dwc_otg_test.pm [new file with mode: 0644]
drivers/usb/host/dwc_otg/test/test_mod_param.pl [new file with mode: 0644]
drivers/usb/host/dwc_otg/test/test_sysfs.pl [new file with mode: 0644]
drivers/video/backlight/Kconfig
drivers/video/backlight/Makefile
drivers/video/backlight/rpi_backlight.c [new file with mode: 0644]
drivers/video/fbdev/Kconfig
drivers/video/fbdev/Makefile
drivers/video/fbdev/bcm2708_fb.c [new file with mode: 0644]
drivers/video/fbdev/core/cfbimgblt.c
drivers/video/fbdev/core/fbmem.c
drivers/video/fbdev/rpisense-fb.c [new file with mode: 0644]
drivers/video/logo/logo_linux_clut224.ppm
drivers/w1/masters/w1-gpio.c
drivers/w1/slaves/w1_therm.c
drivers/w1/w1.h
drivers/w1/w1_int.c
drivers/w1/w1_io.c
drivers/watchdog/Kconfig
drivers/watchdog/Makefile
drivers/watchdog/bcm2708_wdog.c [new file with mode: 0644]
include/drm/drmP.h
include/drm/drm_crtc.h
include/dt-bindings/clock/bcm2835.h [new file with mode: 0644]
include/linux/broadcom/bcm2835_smi.h [new file with mode: 0644]
include/linux/broadcom/vc_cma.h [new file with mode: 0644]
include/linux/broadcom/vc_mem.h [new file with mode: 0644]
include/linux/leds.h
include/linux/mfd/rpisense/core.h [new file with mode: 0644]
include/linux/mfd/rpisense/framebuffer.h [new file with mode: 0644]
include/linux/mfd/rpisense/joystick.h [new file with mode: 0644]
include/linux/mmc/host.h
include/linux/platform_data/bcm2708.h [new file with mode: 0644]
include/linux/platform_data/dma-bcm2708.h [new file with mode: 0644]
include/linux/vmstat.h
include/linux/w1-gpio.h
include/soc/bcm2835/raspberrypi-firmware.h [new file with mode: 0644]
include/uapi/drm/Kbuild
include/uapi/drm/vc4_drm.h [new file with mode: 0644]
include/uapi/linux/fb.h
kernel/cgroup.c
mm/memcontrol.c
mm/page_alloc.c
scripts/dtc/checks.c
scripts/dtc/data.c
scripts/dtc/dtc-lexer.l
scripts/dtc/dtc-lexer.lex.c_shipped
scripts/dtc/dtc-parser.tab.c_shipped
scripts/dtc/dtc-parser.tab.h_shipped
scripts/dtc/dtc-parser.y
scripts/dtc/dtc.c
scripts/dtc/dtc.h
scripts/dtc/flattree.c
scripts/dtc/fstree.c
scripts/dtc/livetree.c
scripts/dtc/srcpos.c
scripts/dtc/srcpos.h
scripts/dtc/treesource.c
scripts/dtc/util.c
scripts/dtc/util.h
scripts/dtc/version_gen.h
scripts/knlinfo [new file with mode: 0755]
scripts/mkknlimg [new file with mode: 0755]
sound/arm/Kconfig
sound/arm/Makefile
sound/arm/bcm2835-ctl.c [new file with mode: 0755]
sound/arm/bcm2835-pcm.c [new file with mode: 0755]
sound/arm/bcm2835-vchiq.c [new file with mode: 0755]
sound/arm/bcm2835.c [new file with mode: 0644]
sound/arm/bcm2835.h [new file with mode: 0755]
sound/arm/vc_vchi_audioserv_defs.h [new file with mode: 0644]
sound/soc/bcm/Kconfig
sound/soc/bcm/Makefile
sound/soc/bcm/bcm2708-i2s.c [new file with mode: 0644]
sound/soc/bcm/bcm2708-i2s.h [new file with mode: 0644]
sound/soc/bcm/bcm2835-i2s.c
sound/soc/bcm/hifiberry_amp.c [new file with mode: 0644]
sound/soc/bcm/hifiberry_dac.c [new file with mode: 0644]
sound/soc/bcm/hifiberry_dacplus.c [new file with mode: 0644]
sound/soc/bcm/hifiberry_digi.c [new file with mode: 0644]
sound/soc/bcm/iqaudio-dac.c [new file with mode: 0644]
sound/soc/bcm/raspidac3.c [new file with mode: 0644]
sound/soc/bcm/rpi-dac.c [new file with mode: 0644]
sound/soc/bcm/rpi-proto.c [new file with mode: 0644]
sound/soc/codecs/Kconfig
sound/soc/codecs/Makefile
sound/soc/codecs/pcm1794a.c [new file with mode: 0644]
sound/soc/codecs/pcm5102a.c [new file with mode: 0644]
sound/soc/codecs/pcm512x.c
sound/soc/codecs/tas5713.c [new file with mode: 0644]
sound/soc/codecs/tas5713.h [new file with mode: 0644]
sound/soc/codecs/tpa6130a2.c
sound/soc/codecs/wm8804.c

diff --git a/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00 b/Documentation/ABI/stable/sysfs-driver-w1_ds28ea00
new file mode 100644 (file)
index 0000000..e928def
--- /dev/null
@@ -0,0 +1,6 @@
+What:          /sys/bus/w1/devices/.../w1_seq
+Date:          Apr 2015
+Contact:       Matt Campbell <mattrcampbell@gmail.com>
+Description:   Support for the DS28EA00 chain sequence function
+               see Documentation/w1/slaves/w1_therm for detailed information
+Users:         any user space application which wants to communicate with DS28EA00
diff --git a/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt b/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt
new file mode 100644 (file)
index 0000000..e56a1df
--- /dev/null
@@ -0,0 +1,45 @@
+Broadcom BCM2835 CPRMAN clocks
+
+This binding uses the common clock binding:
+    Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+The CPRMAN clock controller generates clocks in the audio power domain
+of the BCM2835.  There is a level of PLLs deriving from an external
+oscillator, a level of PLL dividers that produce channels off of the
+few PLLs, and a level of mostly-generic clock generators sourcing from
+the PLL channels.  Most other hardware components source from the
+clock generators, but a few (like the ARM or HDMI) will source from
+the PLL dividers directly.
+
+Required properties:
+- compatible:  Should be "brcm,bcm2835-cprman"
+- #clock-cells:        Should be <1>. The permitted clock-specifier values can be
+                 found in include/dt-bindings/clock/bcm2835.h
+- reg:         Specifies base physical address and size of the registers
+- clocks:      The external oscillator clock phandle
+
+Example:
+
+       clk_osc: clock@3 {
+               compatible = "fixed-clock";
+               reg = <3>;
+               #clock-cells = <0>;
+               clock-output-names = "osc";
+               clock-frequency = <19200000>;
+       };
+
+       clocks: cprman@7e101000 {
+               compatible = "brcm,bcm2835-cprman";
+               #clock-cells = <1>;
+               reg = <0x7e101000 0x2000>;
+               clocks = <&clk_osc>;
+       };
+
+       i2c0: i2c@7e205000 {
+               compatible = "brcm,bcm2835-i2c";
+               reg = <0x7e205000 0x1000>;
+               interrupts = <2 21>;
+               clocks = <&clocks BCM2835_CLOCK_VPU>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
index 1396078..2db8294 100644 (file)
@@ -48,8 +48,8 @@ Example:
 
 bcm2835_i2s: i2s@7e203000 {
        compatible = "brcm,bcm2835-i2s";
-       reg = < 0x7e203000 0x20>,
-             < 0x7e101098 0x02>;
+       reg = < 0x7e203000 0x24>,
+             < 0x7e101098 0x08>;
 
        dmas = <&dma 2>,
               <&dma 3>;
diff --git a/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt b/Documentation/devicetree/bindings/input/touchscreen/focaltech-ft6236.txt
new file mode 100644 (file)
index 0000000..777521d
--- /dev/null
@@ -0,0 +1,35 @@
+* FocalTech FT6236 I2C touchscreen controller
+
+Required properties:
+ - compatible            : "focaltech,ft6236"
+ - reg                   : I2C slave address of the chip (0x38)
+ - interrupt-parent      : a phandle pointing to the interrupt controller
+                           serving the interrupt for this chip
+ - interrupts            : interrupt specification for the touch controller
+                           interrupt
+ - reset-gpios           : GPIO specification for the RSTN input
+ - touchscreen-size-x    : horizontal resolution of touchscreen (in pixels)
+ - touchscreen-size-y    : vertical resolution of touchscreen (in pixels)
+
+Optional properties:
+ - touchscreen-fuzz-x    : horizontal noise value of the absolute input
+                           device (in pixels)
+ - touchscreen-fuzz-y    : vertical noise value of the absolute input
+                           device (in pixels)
+ - touchscreen-inverted-x : X axis is inverted (boolean)
+ - touchscreen-inverted-y : Y axis is inverted (boolean)
+ - touchscreen-swapped-x-y: X and Y axis are swapped (boolean)
+                           Swapping is done after inverting the axis
+
+Example:
+
+       ft6x06@38 {
+               compatible = "focaltech,ft6236";
+               reg = <0x38>;
+               interrupt-parent = <&gpio>;
+               interrupts = <23 2>;
+               touchscreen-size-x = <320>;
+               touchscreen-size-y = <480>;
+               touchscreen-inverted-x;
+               touchscreen-swapped-x-y;
+       };
diff --git a/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt b/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt
new file mode 100644 (file)
index 0000000..68cc8eb
--- /dev/null
@@ -0,0 +1,17 @@
+* Broadcom BCM2835 SMI character device driver.
+
+SMI or secondary memory interface is a peripheral specific to certain Broadcom
+SOCs, and is helpful for talking to things like parallel-interface displays
+and NAND flashes (in fact, most things with a parallel register interface).
+
+This driver adds a character device which provides a user-space interface to
+an instance of the SMI driver.
+
+Required properties:
+- compatible: "brcm,bcm2835-smi-dev"
+- smi_handle: a phandle to the smi node.
+
+Optional properties:
+- None.
+
+
diff --git a/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt b/Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt
new file mode 100644 (file)
index 0000000..b76dc69
--- /dev/null
@@ -0,0 +1,48 @@
+* Broadcom BCM2835 SMI driver.
+
+SMI or secondary memory interface is a peripheral specific to certain Broadcom
+SOCs, and is helpful for talking to things like parallel-interface displays
+and NAND flashes (in fact, most things with a parallel register interface).
+
+Required properties:
+- compatible: "brcm,bcm2835-smi"
+- reg: Should contain location and length of SMI registers and SMI clkman regs
+- interrupts: *the* SMI interrupt.
+- pinctrl-names: should be "default".
+- pinctrl-0: the phandle of the gpio pin node.
+- brcm,smi-clock-source: the clock source for clkman
+- brcm,smi-clock-divisor: the integer clock divisor for clkman
+- dmas: the dma controller phandle and the DREQ number (4 on a 2835)
+- dma-names: the name used by the driver to request its channel.
+  Should be "rx-tx".
+
+Optional properties:
+- None.
+
+Examples:
+
+8 data pin configuration:
+
+smi: smi@7e600000 {
+       compatible = "brcm,bcm2835-smi";
+       reg = <0x7e600000 0x44>, <0x7e1010b0 0x8>;
+       interrupts = <2 16>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&smi_pins>;
+       brcm,smi-clock-source = <6>;
+       brcm,smi-clock-divisor = <4>;
+       dmas = <&dma 4>;
+       dma-names = "rx-tx";
+
+       status = "okay";
+};
+
+smi_pins: smi_pins {
+       brcm,pins = <2 3 4 5 6 7 8 9 10 11 12 13 14 15>;
+       /* Alt 1: SMI */
+       brcm,function = <5 5 5 5 5 5 5 5 5 5 5 5 5 5>;
+       /* /CS, /WE and /OE are pulled high, as they are
+          generally active low signals */
+       brcm,pull = <2 2 2 2 2 2 0 0 0 0 0 0 0 0>;
+};
+
diff --git a/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt b/Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt
new file mode 100644 (file)
index 0000000..159544d
--- /dev/null
@@ -0,0 +1,42 @@
+* BCM2835 SMI NAND flash
+
+This driver is a shim between the BCM2835 SMI driver (SMI is a peripheral for
+talking to parallel register interfaces) and Linux's MTD layer.
+
+Required properties:
+- compatible: "brcm,bcm2835-smi-nand"
+- status: "okay"
+
+Optional properties:
+- partition@n, where n is an integer from a consecutive sequence starting at 0
+       - Difficult to store partition table on NAND device - normally put it
+       in the source code, kernel bootparams, or device tree (the best way!)
+       - Sub-properties:
+               - label: the partition name, as shown by mtdinfo /dev/mtd*
+               - reg: the size and offset of this partition.
+               - (optional) read-only: an empty property flagging as read only
+
+Example:
+
+nand: flash@0 {
+       compatible = "brcm,bcm2835-smi-nand";
+       status = "okay";
+
+       partition@0 {
+               label = "stage2";
+               // 128k
+               reg = <0 0x20000>;
+               read-only;
+       };
+       partition@1 {
+               label = "firmware";
+               // 16M
+               reg = <0x20000 0x1000000>;
+               read-only;
+       };
+       partition@2 {
+               label = "root";
+               // 2G
+               reg = <0x1020000 0x80000000>;
+       };
+};
\ No newline at end of file
index 65783de..a89fe42 100644 (file)
@@ -16,8 +16,8 @@ Example:
 
 bcm2835_i2s: i2s@7e203000 {
        compatible = "brcm,bcm2835-i2s";
-       reg = <0x7e203000 0x20>,
-             <0x7e101098 0x02>;
+       reg = <0x7e203000 0x24>,
+             <0x7e101098 0x08>;
 
        dmas = <&dma 2>,
               <&dma 3>;
index 8033919..08490ef 100644 (file)
@@ -76,6 +76,7 @@ everspin      Everspin Technologies, Inc.
 excito Excito
 fcs    Fairchild Semiconductor
 firefly        Firefly
+focaltech      FocalTech Systems Co.,Ltd
 fsl    Freescale Semiconductor
 GEFanuc        GE Fanuc Intelligent Platforms Embedded Systems, Inc.
 gef    GE Fanuc Intelligent Platforms Embedded Systems, Inc.
diff --git a/Documentation/video4linux/bcm2835-v4l2.txt b/Documentation/video4linux/bcm2835-v4l2.txt
new file mode 100644 (file)
index 0000000..c585a8f
--- /dev/null
@@ -0,0 +1,60 @@
+
+BCM2835 (aka Raspberry Pi) V4L2 driver
+======================================
+
+1. Copyright
+============
+
+Copyright © 2013 Raspberry Pi (Trading) Ltd.
+
+2. License
+==========
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+3. Quick Start
+==============
+
+You need a version 1.0 or later of v4l2-ctl, available from:
+       git://git.linuxtv.org/v4l-utils.git
+
+$ sudo modprobe bcm2835-v4l2
+
+Turn on the overlay:
+
+$ v4l2-ctl --overlay=1
+
+Turn off the overlay:
+
+$ v4l2-ctl --overlay=0
+
+Set the capture format for video:
+
+$ v4l2-ctl  --set-fmt-video=width=1920,height=1088,pixelformat=4
+
+(Note: 1088 not 1080).
+
+Capture:
+
+$ v4l2-ctl --stream-mmap=3 --stream-count=100 --stream-to=somefile.h264
+
+Stills capture:
+
+$ v4l2-ctl  --set-fmt-video=width=2592,height=1944,pixelformat=3
+$ v4l2-ctl --stream-mmap=3 --stream-count=1 --stream-to=somefile.jpg
+
+List of available formats:
+
+$ v4l2-ctl --list-formats
index cc62a95..13411fe 100644 (file)
@@ -11,12 +11,14 @@ Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
 Description
 -----------
 
-w1_therm provides basic temperature conversion for ds18*20 devices.
+w1_therm provides basic temperature conversion for ds18*20 devices, and the
+ds28ea00 device.
 supported family codes:
 W1_THERM_DS18S20       0x10
 W1_THERM_DS1822                0x22
 W1_THERM_DS18B20       0x28
 W1_THERM_DS1825                0x3B
+W1_THERM_DS28EA00      0x42
 
 Support is provided through the sysfs w1_slave file.  Each open and
 read sequence will initiate a temperature conversion then provide two
@@ -48,3 +50,10 @@ resistor).  The DS18b20 temperature sensor specification lists a
 maximum current draw of 1.5mA and that a 5k pullup resistor is not
 sufficient.  The strong pullup is designed to provide the additional
 current required.
+
+The DS28EA00 provides an additional two pins for implementing a sequence
+detection algorithm.  This feature allows you to determine the physical
+location of the chip in the 1-wire bus without needing pre-existing
+knowledge of the bus ordering.  Support is provided through the sysfs
+w1_seq file.  The file will contain a single line with an integer value
+representing the device index in the bus starting at 0.
index 19f4cc6..3ec1319 100644 (file)
@@ -314,6 +314,42 @@ choice
        default ARCH_VERSATILE if !MMU
        default ARCH_MULTIPLATFORM if MMU
 
+config ARCH_BCM2708
+       bool "Broadcom BCM2708 family"
+       select CPU_V6
+       select ARM_AMBA
+       select HAVE_SCHED_CLOCK
+       select NEED_MACH_GPIO_H
+       select NEED_MACH_MEMORY_H
+       select COMMON_CLK
+       select ARCH_HAS_CPUFREQ
+       select GENERIC_CLOCKEVENTS
+       select ARM_ERRATA_411920
+       select MACH_BCM2708
+       select VC4
+       select FIQ
+       help
+         This enables support for Broadcom BCM2708 boards.
+
+config ARCH_BCM2709
+       bool "Broadcom BCM2709 family"
+       select ARCH_HAS_BARRIERS if SMP
+       select CPU_V7
+       select HAVE_SMP
+       select ARM_AMBA
+       select MIGHT_HAVE_CACHE_L2X0
+       select HAVE_SCHED_CLOCK
+       select NEED_MACH_MEMORY_H
+       select NEED_MACH_IO_H
+       select COMMON_CLK
+       select ARCH_HAS_CPUFREQ
+       select GENERIC_CLOCKEVENTS
+       select MACH_BCM2709
+       select VC4
+       select FIQ
+       help
+         This enables support for Broadcom BCM2709 boards.
+
 config ARCH_MULTIPLATFORM
        bool "Allow multiple platforms to be selected"
        depends on MMU
@@ -824,6 +860,9 @@ config ARCH_VIRT
 # Kconfigs may be included either alphabetically (according to the
 # plat- suffix) or along side the corresponding mach-* source.
 #
+source "arch/arm/mach-bcm2708/Kconfig"
+source "arch/arm/mach-bcm2709/Kconfig"
+
 source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/mach-alpine/Kconfig"
index 0c12ffb..18db6c4 100644 (file)
@@ -1197,6 +1197,14 @@ choice
                  options; the platform specific options are deprecated
                  and will be soon removed.
 
+       config DEBUG_BCM2708_UART0
+               bool "Broadcom BCM2708 UART0 (PL011)"
+               depends on MACH_BCM2708
+               help
+                 Say Y here if you want the debug print routines to direct
+                 their output to UART 0. The port must have been initialised
+                 by the boot-loader before use.
+
 endchoice
 
 config DEBUG_AT91_UART
index 47f10e7..afd559d 100644 (file)
@@ -150,6 +150,8 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
 
 # Machine directory name.  This list is sorted alphanumerically
 # by CONFIG_* macro name.
+machine-$(CONFIG_ARCH_BCM2708)         += bcm2708
+machine-$(CONFIG_ARCH_BCM2709)         += bcm2709
 machine-$(CONFIG_ARCH_ALPINE)          += alpine
 machine-$(CONFIG_ARCH_AT91)            += at91
 machine-$(CONFIG_ARCH_AXXIA)           += axxia
index 992736b..faf293f 100644 (file)
@@ -1,5 +1,24 @@
 ifeq ($(CONFIG_OF),y)
 
+dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b.dtb
+dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b-plus.dtb
+dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-cm.dtb
+dtb-$(CONFIG_BCM2709_DT) += bcm2709-rpi-2-b.dtb
+
+# Raspberry Pi
+ifeq ($(CONFIG_BCM2708_DT),y)
+   RPI_DT_OVERLAYS=y
+endif
+ifeq ($(CONFIG_BCM2709_DT),y)
+   RPI_DT_OVERLAYS=y
+endif
+ifeq ($(CONFIG_ARCH_BCM2835),y)
+   RPI_DT_OVERLAYS=y
+endif
+ifeq ($(RPI_DT_OVERLAYS),y)
+    dts-dirs += overlays
+endif
+
 dtb-$(CONFIG_ARCH_ALPINE) += \
        alpine-db.dtb
 dtb-$(CONFIG_MACH_ASM9260) += \
@@ -660,7 +679,17 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
        mt6592-evb.dtb \
        mt8127-moose.dtb \
        mt8135-evbp1.dtb
+
+targets += dtbs dtbs_install
+targets += $(dtb-y)
+
 endif
 
 always         := $(dtb-y)
+subdir-y       := $(dts-dirs)
 clean-files    := *.dtb
+
+# Enable fixups to support overlays on BCM2708 platforms
+ifeq ($(RPI_DT_OVERLAYS),y)
+       DTC_FLAGS ?= -@
+endif
diff --git a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
new file mode 100644 (file)
index 0000000..bb8c075
--- /dev/null
@@ -0,0 +1,139 @@
+/dts-v1/;
+
+/include/ "bcm2708.dtsi"
+
+/ {
+       compatible = "brcm,bcm2708";
+       model = "Raspberry Pi Model B+";
+};
+
+&gpio {
+       sdhost_pins: sdhost_pins {
+               brcm,pins = <48 49 50 51 52 53>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       spi0_pins: spi0_pins {
+               brcm,pins = <7 8 9 10 11>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       i2c0_pins: i2c0 {
+               brcm,pins = <0 1>;
+               brcm,function = <4>;
+       };
+
+       i2c1_pins: i2c1 {
+               brcm,pins = <2 3>;
+               brcm,function = <4>;
+       };
+
+       i2s_pins: i2s {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <4>; /* alt0 */
+       };
+};
+
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_pins>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&fb {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+
+       spidev@0{
+               compatible = "spidev";
+               reg = <0>;      /* CE0 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+
+       spidev@1{
+               compatible = "spidev";
+               reg = <1>;      /* CE1 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+};
+
+&i2s {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&random {
+       status = "okay";
+};
+
+&leds {
+       act_led: act {
+               label = "led0";
+               linux,default-trigger = "mmc0";
+               gpios = <&gpio 47 0>;
+       };
+
+       pwr_led: pwr {
+               label = "led1";
+               linux,default-trigger = "input";
+               gpios = <&gpio 35 0>;
+       };
+};
+
+/ {
+       __overrides__ {
+               uart0 = <&uart0>,"status";
+               uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
+               i2s = <&i2s>,"status";
+               spi = <&spi0>,"status";
+               i2c0 = <&i2c0>,"status";
+               i2c1 = <&i2c1>,"status";
+               i2c2_iknowwhatimdoing = <&i2c2>,"status";
+               i2c0_baudrate = <&i2c0>,"clock-frequency:0";
+               i2c1_baudrate = <&i2c1>,"clock-frequency:0";
+               i2c2_baudrate = <&i2c2>,"clock-frequency:0";
+               core_freq = <&clk_core>,"clock-frequency:0";
+
+               act_led_gpio = <&act_led>,"gpios:4";
+               act_led_activelow = <&act_led>,"gpios:8";
+               act_led_trigger = <&act_led>,"linux,default-trigger";
+
+               pwr_led_gpio = <&pwr_led>,"gpios:4";
+               pwr_led_activelow = <&pwr_led>,"gpios:8";
+               pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
+
+               audio = <&audio>,"status";
+               watchdog = <&watchdog>,"status";
+               random = <&random>,"status";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2708-rpi-b.dts b/arch/arm/boot/dts/bcm2708-rpi-b.dts
new file mode 100644 (file)
index 0000000..8030401
--- /dev/null
@@ -0,0 +1,129 @@
+/dts-v1/;
+
+/include/ "bcm2708.dtsi"
+
+/ {
+       compatible = "brcm,bcm2708";
+       model = "Raspberry Pi Model B";
+};
+
+&gpio {
+       sdhost_pins: sdhost_pins {
+               brcm,pins = <48 49 50 51 52 53>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       spi0_pins: spi0_pins {
+               brcm,pins = <7 8 9 10 11>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       i2c0_pins: i2c0 {
+               brcm,pins = <0 1>;
+               brcm,function = <4>;
+       };
+
+       i2c1_pins: i2c1 {
+               brcm,pins = <2 3>;
+               brcm,function = <4>;
+       };
+
+       i2s_pins: i2s {
+               brcm,pins = <28 29 30 31>;
+               brcm,function = <6>; /* alt2 */
+       };
+};
+
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_pins>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&fb {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+
+       spidev@0{
+               compatible = "spidev";
+               reg = <0>;      /* CE0 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+
+       spidev@1{
+               compatible = "spidev";
+               reg = <1>;      /* CE1 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+};
+
+&i2s {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&random {
+       status = "okay";
+};
+
+&leds {
+       act_led: act {
+               label = "led0";
+               linux,default-trigger = "mmc0";
+               gpios = <&gpio 16 1>;
+       };
+};
+
+/ {
+       __overrides__ {
+               uart0 = <&uart0>,"status";
+               uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
+               i2s = <&i2s>,"status";
+               spi = <&spi0>,"status";
+               i2c0 = <&i2c0>,"status";
+               i2c1 = <&i2c1>,"status";
+               i2c2_iknowwhatimdoing = <&i2c2>,"status";
+               i2c0_baudrate = <&i2c0>,"clock-frequency:0";
+               i2c1_baudrate = <&i2c1>,"clock-frequency:0";
+               i2c2_baudrate = <&i2c2>,"clock-frequency:0";
+               core_freq = <&clk_core>,"clock-frequency:0";
+
+               act_led_gpio = <&act_led>,"gpios:4";
+               act_led_activelow = <&act_led>,"gpios:8";
+               act_led_trigger = <&act_led>,"linux,default-trigger";
+
+               audio = <&audio>,"status";
+               watchdog = <&watchdog>,"status";
+               random = <&random>,"status";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2708-rpi-cm.dts b/arch/arm/boot/dts/bcm2708-rpi-cm.dts
new file mode 100755 (executable)
index 0000000..ec4bfef
--- /dev/null
@@ -0,0 +1,96 @@
+/dts-v1/;
+
+/include/ "bcm2708-rpi-cm.dtsi"
+
+/ {
+       model = "Raspberry Pi Compute Module";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&gpio {
+       spi0_pins: spi0_pins {
+               brcm,pins = <7 8 9 10 11>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       i2c0_pins: i2c0 {
+               brcm,pins = <0 1>;
+               brcm,function = <4>;
+       };
+
+       i2c1_pins: i2c1 {
+               brcm,pins = <2 3>;
+               brcm,function = <4>;
+       };
+
+       i2s_pins: i2s {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <4>; /* alt0 */
+       };
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+
+       spidev@0{
+               compatible = "spidev";
+               reg = <0>;      /* CE0 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+
+       spidev@1{
+               compatible = "spidev";
+               reg = <1>;      /* CE1 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+};
+
+&i2s {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&random {
+       status = "okay";
+};
+
+/ {
+       __overrides__ {
+               uart0 = <&uart0>,"status";
+               uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
+               i2s = <&i2s>,"status";
+               spi = <&spi0>,"status";
+               i2c0 = <&i2c0>,"status";
+               i2c1 = <&i2c1>,"status";
+               i2c2_iknowwhatimdoing = <&i2c2>,"status";
+               i2c0_baudrate = <&i2c0>,"clock-frequency:0";
+               i2c1_baudrate = <&i2c1>,"clock-frequency:0";
+               i2c2_baudrate = <&i2c2>,"clock-frequency:0";
+               core_freq = <&clk_core>,"clock-frequency:0";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
new file mode 100644 (file)
index 0000000..91ec483
--- /dev/null
@@ -0,0 +1,40 @@
+/include/ "bcm2708.dtsi"
+
+&gpio {
+       sdhost_pins: sdhost_pins {
+               brcm,pins = <48 49 50 51 52 53>;
+               brcm,function = <4>; /* alt0 */
+       };
+};
+
+&leds {
+       act_led: act {
+               label = "led0";
+               linux,default-trigger = "mmc0";
+               gpios = <&gpio 47 0>;
+       };
+};
+
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_pins>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+};
+
+&fb {
+       status = "okay";
+};
+
+/ {
+       __overrides__ {
+               act_led_gpio = <&act_led>,"gpios:4";
+               act_led_activelow = <&act_led>,"gpios:8";
+               act_led_trigger = <&act_led>,"linux,default-trigger";
+
+               audio = <&audio>,"status";
+               watchdog = <&watchdog>,"status";
+               random = <&random>,"status";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi
new file mode 100644 (file)
index 0000000..3bed0a6
--- /dev/null
@@ -0,0 +1,25 @@
+/include/ "bcm2708_common.dtsi"
+
+/ {
+       compatible = "brcm,bcm2708";
+       model = "BCM2708";
+
+       chosen {
+               /* No padding required - the boot loader can do that. */
+               bootargs = "";
+       };
+
+       soc {
+               ranges = <0x7e000000 0x20000000 0x01000000>;
+
+               arm-pmu {
+                       compatible = "arm,arm1176-pmu";
+               };
+
+               gpiomem {
+                       compatible = "brcm,bcm2835-gpiomem";
+                       reg = <0x7e200000 0x1000>;
+                       status = "okay";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2708_common.dtsi b/arch/arm/boot/dts/bcm2708_common.dtsi
new file mode 100644 (file)
index 0000000..0425419
--- /dev/null
@@ -0,0 +1,347 @@
+/include/ "skeleton.dtsi"
+
+/ {
+       interrupt-parent = <&intc>;
+
+       aliases {
+               audio = &audio;
+               sound = &sound;
+               soc = &soc;
+               dma = &dma;
+               intc = &intc;
+               watchdog = &watchdog;
+               random = &random;
+               mailbox = &mailbox;
+               gpio = &gpio;
+               uart0 = &uart0;
+               sdhost = &sdhost;
+               i2s  = &i2s;
+               spi0 = &spi0;
+               i2c0 = &i2c0;
+               uart1 = &uart1;
+               mmc = &mmc;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               usb = &usb;
+               leds = &leds;
+               fb = &fb;
+               vchiq = &vchiq;
+               thermal = &thermal;
+               clocks = &clocks;
+       };
+
+       /* Onboard audio */
+       audio: audio {
+               compatible = "brcm,bcm2835-audio";
+               brcm,pwm-channels = <8>;
+               status = "disabled";
+       };
+
+       /* External sound card */
+       sound: sound {
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               dma: dma@7e007000 {
+                       compatible = "brcm,bcm2835-dma";
+                       reg = <0x7e007000 0xf00>;
+                       interrupts = <1 16>,
+                                    <1 17>,
+                                    <1 18>,
+                                    <1 19>,
+                                    <1 20>,
+                                    <1 21>,
+                                    <1 22>,
+                                    <1 23>,
+                                    <1 24>,
+                                    <1 25>,
+                                    <1 26>,
+                                    <1 27>;
+
+                       #dma-cells = <1>;
+                       brcm,dma-channel-mask = <0x0f35>;
+               };
+
+               intc: interrupt-controller {
+                       compatible = "brcm,bcm2708-armctrl-ic";
+                       reg = <0x7e00b200 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               mailbox: mailbox@7e00b800 {
+                       compatible = "brcm,bcm2835-mbox";
+                       reg = <0x7e00b880 0x40>;
+                       interrupts = <0 1>;
+                       #mbox-cells = <0>;
+               };
+
+               watchdog: watchdog@7e100000 {
+                       compatible = "brcm,bcm2835-pm-wdt";
+                       reg = <0x7e100000 0x28>;
+                       status = "disabled";
+               };
+
+               cprman: cprman@7e101000 {
+                       compatible = "brcm,bcm2835-cprman";
+                       #clock-cells = <1>;
+                       reg = <0x7e101000 0x2000>;
+
+                       /* CPRMAN derives everything from the platform's
+                        * oscillator.
+                        */
+                       clocks = <&clk_osc>;
+                       status = "disabled";
+               };
+
+               random: rng@7e104000 {
+                       compatible = "brcm,bcm2835-rng";
+                       reg = <0x7e104000 0x10>;
+                       status = "disabled";
+               };
+
+               gpio: gpio@7e200000 {
+                       compatible = "brcm,bcm2835-gpio";
+                       reg = <0x7e200000 0xb4>;
+                       interrupts = <2 17>, <2 18>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               uart0: uart@7e201000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x7e201000 0x1000>;
+                       interrupts = <2 25>;
+                       clocks = <&clk_uart0 &clk_apb_p>;
+                       clock-names = "uartclk","apb_pclk";
+                       arm,primecell-periphid = <0x00241011>; // For an explanation, see
+                       // https://github.com/raspberrypi/linux/commit/13731d862cf5219216533a3b0de052cee4cc5038
+                       status = "disabled";
+               };
+
+               sdhost: sdhost@7e202000 {
+                       compatible = "brcm,bcm2835-sdhost";
+                       reg = <0x7e202000 0x100>;
+                       interrupts = <2 24>;
+                       clocks = <&clk_core>;
+                       dmas = <&dma 13>,
+                              <&dma 13>;
+                       dma-names = "tx", "rx";
+                       brcm,pio-limit = <1>;
+                       status = "disabled";
+               };
+
+               i2s: i2s@7e203000 {
+                       compatible = "brcm,bcm2708-i2s";
+                       reg = <0x7e203000 0x24>,
+                             <0x7e101098 0x08>;
+
+                       //dmas = <&dma 2>,
+                       //       <&dma 3>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               spi0: spi@7e204000 {
+                       compatible = "brcm,bcm2835-spi";
+                       reg = <0x7e204000 0x1000>;
+                       interrupts = <2 22>;
+                       clocks = <&clk_core>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+                       /* the dma channels */
+                       dmas = <&dma 6>, <&dma 7>;
+                       dma-names = "tx", "rx";
+                       /* the chipselects used - <0> means native GPIO
+                        * add more gpios if necessary as <&gpio 6 1>
+                        * (but do not forget to make them output!)
+                        */
+                       cs-gpios = <0>, <0>;
+               };
+
+               i2c0: i2c@7e205000 {
+                       compatible = "brcm,bcm2708-i2c";
+                       reg = <0x7e205000 0x1000>;
+                       interrupts = <2 21>;
+                       clocks = <&clk_core>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               pwm: pwm@7e20c000 {
+                       compatible = "brcm,bcm2835-pwm";
+                       reg = <0x7e20c000 0x28>;
+                       clocks = <&clk_pwm>;
+                       #pwm-cells = <2>;
+                       status = "disabled";
+               };
+
+               uart1: uart@7e215040 {
+                       compatible = "brcm,bcm2835-aux-uart", "ns16550";
+                       reg = <0x7e215040 0x40>;
+                       interrupts = <1 29>;
+                       clocks = <&clk_uart1>;
+                       reg-shift = <2>;
+                       no-loopback-test;
+                       status = "disabled";
+               };
+
+               mmc: mmc@7e300000 {
+                       compatible = "brcm,bcm2835-mmc";
+                       reg = <0x7e300000 0x100>;
+                       interrupts = <2 30>;
+                       clocks = <&clk_mmc>;
+                       dmas = <&dma 11>,
+                              <&dma 11>;
+                       dma-names = "tx", "rx";
+                       status = "disabled";
+               };
+
+               i2c1: i2c@7e804000 {
+                       compatible = "brcm,bcm2708-i2c";
+                       reg = <0x7e804000 0x1000>;
+                       interrupts = <2 21>;
+                       clocks = <&clk_core>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@7e805000 {
+                       // Beware - this is shared with the HDMI module.
+                       // Careless use may break (really) your display.
+                       // Caveat emptor.
+                       compatible = "brcm,bcm2708-i2c";
+                       reg = <0x7e805000 0x1000>;
+                       interrupts = <2 21>;
+                       clocks = <&clk_core>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               smi: smi@7e600000 {
+                       compatible = "brcm,bcm2835-smi";
+                       reg = <0x7e600000 0x44>, <0x7e1010b0 0x8>;
+                       interrupts = <2 16>;
+                       brcm,smi-clock-source = <6>;
+                       brcm,smi-clock-divisor = <4>;
+                       dmas = <&dma 4>;
+                       dma-names = "rx-tx";
+                       status = "disabled";
+               };
+
+               usb: usb@7e980000 {
+                       compatible = "brcm,bcm2708-usb";
+                       reg = <0x7e980000 0x10000>,
+                             <0x7e006000 0x1000>;
+                       interrupts = <2 0>,
+                                    <1 9>;
+               };
+
+               firmware: firmware {
+                       compatible = "raspberrypi,bcm2835-firmware";
+                       mboxes = <&mailbox>;
+               };
+
+               leds: leds {
+                       compatible = "gpio-leds";
+               };
+
+               fb: fb {
+                       compatible = "brcm,bcm2708-fb";
+                       firmware = <&firmware>;
+                       status = "disabled";
+               };
+
+               vchiq: vchiq {
+                       compatible = "brcm,bcm2835-vchiq";
+                       reg = <0x7e00b840 0xf>;
+                       interrupts = <0 2>;
+                       cache-line-size = <32>;
+                       firmware = <&firmware>;
+               };
+
+               thermal: thermal {
+                       compatible = "brcm,bcm2835-thermal";
+                       firmware = <&firmware>;
+               };
+       };
+
+       clocks: clocks {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               clk_core: clock@0 {
+                       compatible = "fixed-clock";
+                       reg = <0>;
+                       #clock-cells = <0>;
+                       clock-output-names = "core";
+                       clock-frequency = <250000000>;
+               };
+
+               clk_mmc: clock@1 {
+                       compatible = "fixed-clock";
+                       reg = <1>;
+                       #clock-cells = <0>;
+                       clock-output-names = "mmc";
+                       clock-frequency = <250000000>;
+               };
+
+               clk_uart0: clock@2 {
+                       compatible = "fixed-clock";
+                       reg = <2>;
+                       #clock-cells = <0>;
+                       clock-output-names = "uart0_pclk";
+                       clock-frequency = <3000000>;
+               };
+
+               clk_apb_p: clock@3 {
+                       compatible = "fixed-clock";
+                       reg = <3>;
+                       #clock-cells = <0>;
+                       clock-output-names = "apb_pclk";
+                       clock-frequency = <126000000>;
+               };
+
+               clk_pwm: clock@4 {
+                       compatible = "fixed-clock";
+                       reg = <4>;
+                       #clock-cells = <0>;
+                       clock-output-names = "pwm";
+                       clock-frequency = <100000000>;
+               };
+
+               clk_uart1: clock@5 {
+                       compatible = "fixed-factor-clock";
+                       reg = <5>;
+                       clocks = <&clk_core>;
+                       #clock-cells = <0>;
+                       clock-div = <1>;
+                       clock-mult = <2>;
+               };
+
+               clk_osc: clock@6 {
+                       compatible = "fixed-clock";
+                       reg = <6>;
+                       #clock-cells = <0>;
+                       clock-output-names = "osc";
+                       clock-frequency = <19200000>;
+               };
+       };
+
+       __overrides__ {
+               cache_line_size = <&vchiq>, "cache-line-size:0";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
new file mode 100644 (file)
index 0000000..747f859
--- /dev/null
@@ -0,0 +1,139 @@
+/dts-v1/;
+
+/include/ "bcm2709.dtsi"
+
+/ {
+       compatible = "brcm,bcm2709";
+       model = "Raspberry Pi 2 Model B";
+};
+
+&gpio {
+       sdhost_pins: sdhost_pins {
+               brcm,pins = <48 49 50 51 52 53>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       spi0_pins: spi0_pins {
+               brcm,pins = <7 8 9 10 11>;
+               brcm,function = <4>; /* alt0 */
+       };
+
+       i2c0_pins: i2c0 {
+               brcm,pins = <0 1>;
+               brcm,function = <4>;
+       };
+
+       i2c1_pins: i2c1 {
+               brcm,pins = <2 3>;
+               brcm,function = <4>;
+       };
+
+       i2s_pins: i2s {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <4>; /* alt0 */
+       };
+};
+
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_pins>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&fb {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+
+       spidev@0{
+               compatible = "spidev";
+               reg = <0>;      /* CE0 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+
+       spidev@1{
+               compatible = "spidev";
+               reg = <1>;      /* CE1 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <100000>;
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+};
+
+&i2s {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&random {
+       status = "okay";
+};
+
+&leds {
+       act_led: act {
+               label = "led0";
+               linux,default-trigger = "mmc0";
+               gpios = <&gpio 47 0>;
+       };
+
+       pwr_led: pwr {
+               label = "led1";
+               linux,default-trigger = "input";
+               gpios = <&gpio 35 0>;
+       };
+};
+
+/ {
+       __overrides__ {
+               uart0 = <&uart0>,"status";
+               uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
+               i2s = <&i2s>,"status";
+               spi = <&spi0>,"status";
+               i2c0 = <&i2c0>,"status";
+               i2c1 = <&i2c1>,"status";
+               i2c2_iknowwhatimdoing = <&i2c2>,"status";
+               i2c0_baudrate = <&i2c0>,"clock-frequency:0";
+               i2c1_baudrate = <&i2c1>,"clock-frequency:0";
+               i2c2_baudrate = <&i2c2>,"clock-frequency:0";
+               core_freq = <&clk_core>,"clock-frequency:0";
+
+               act_led_gpio = <&act_led>,"gpios:4";
+               act_led_activelow = <&act_led>,"gpios:8";
+               act_led_trigger = <&act_led>,"linux,default-trigger";
+
+               pwr_led_gpio = <&pwr_led>,"gpios:4";
+               pwr_led_activelow = <&pwr_led>,"gpios:8";
+               pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
+
+               audio = <&audio>,"status";
+               watchdog = <&watchdog>,"status";
+               random = <&random>,"status";
+       };
+};
diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi
new file mode 100644 (file)
index 0000000..811d825
--- /dev/null
@@ -0,0 +1,76 @@
+/include/ "bcm2708_common.dtsi"
+
+/ {
+       compatible = "brcm,bcm2709";
+       model = "BCM2709";
+
+       chosen {
+               /* No padding required - the boot loader can do that. */
+               bootargs = "";
+       };
+
+       soc {
+               ranges = <0x7e000000 0x3f000000 0x01000000>;
+
+               arm-pmu {
+                       compatible = "arm,cortex-a7-pmu";
+                       interrupts = <3 9>;
+               };
+
+               gpiomem {
+                       compatible = "brcm,bcm2835-gpiomem";
+                       reg = <0x7e200000 0x1000>;
+                       status = "okay";
+               };
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               clock-frequency = <19200000>;
+               interrupts = <3 0>, // PHYS_SECURE_PPI
+                            <3 1>, // PHYS_NONSECURE_PPI
+                            <3 3>, // VIRT_PPI
+                            <3 2>; // HYP_PPI
+               always-on;
+       };
+
+       cpus: cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               v7_cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0xf00>;
+                       clock-frequency = <800000000>;
+               };
+
+               v7_cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0xf01>;
+                       clock-frequency = <800000000>;
+               };
+
+               v7_cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0xf02>;
+                       clock-frequency = <800000000>;
+               };
+
+               v7_cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0xf03>;
+                       clock-frequency = <800000000>;
+               };
+       };
+
+       __overrides__ {
+               arm_freq = <&v7_cpu0>, "clock-frequency:0",
+                      <&v7_cpu1>, "clock-frequency:0",
+                      <&v7_cpu2>, "clock-frequency:0",
+                      <&v7_cpu3>, "clock-frequency:0";
+       };
+};
index e479515..b0fb0e8 100644 (file)
@@ -4,27 +4,40 @@
 / {
        compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
        model = "Raspberry Pi Model B+";
+};
+
+&gpio {
+       i2s_pins: i2s {
+               brcm,pins = <18 19 20 21>;
+               brcm,function = <4>; /* alt0 */
+       };
+};
 
-       leds {
-               act {
-                       gpios = <&gpio 47 0>;
-               };
+&i2s {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&act_led {
+       gpios = <&gpio 47 0>;
+};
 
-               pwr {
-                       label = "PWR";
-                       gpios = <&gpio 35 0>;
-                       default-state = "keep";
-                       linux,default-trigger = "default-on";
-               };
+&leds {
+       pwr_led: pwr {
+               label = "led1";
+               linux,default-trigger = "input";
+               gpios = <&gpio 35 0>;
        };
 };
 
-&gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+/ {
+       __overrides__ {
+               act_led_gpio = <&act_led>,"gpios:4";
+               act_led_activelow = <&act_led>,"gpios:8";
 
-       /* I2S interface */
-       i2s_alt0: i2s_alt0 {
-               brcm,pins = <18 19 20 21>;
-               brcm,function = <4>; /* alt0 */
+               pwr_led_gpio = <&pwr_led>,"gpios:4";
+               pwr_led_activelow = <&pwr_led>,"gpios:8";
+               pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
        };
 };
index bafa46f..b867224 100644 (file)
@@ -5,19 +5,28 @@
        compatible = "raspberrypi,model-b", "brcm,bcm2835";
        model = "Raspberry Pi Model B";
 
-       leds {
-               act {
-                       gpios = <&gpio 16 1>;
-               };
-       };
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
-
-       /* I2S interface */
-       i2s_alt2: i2s_alt2 {
+       i2s_pins: i2s {
                brcm,pins = <28 29 30 31>;
-               brcm,function = <6>; /* alt2 */
+               brcm,function = <4>; /* alt0 */
+       };
+};
+
+&i2s {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s_pins>;
+};
+
+&act_led {
+       gpios = <&gpio 16 1>;
+};
+
+/ {
+       __overrides__ {
+               act_led_gpio = <&act_led>,"gpios:4";
+               act_led_activelow = <&act_led>,"gpios:8";
        };
 };
index c706448..6c3daaf 100644 (file)
 /include/ "bcm2835.dtsi"
 
 / {
+       /* This is left here in case u-boot needs it */
        memory {
                reg = <0 0x10000000>;
        };
 
-       leds {
+       aliases {
+               soc = &soc;
+               spi0 = &spi0;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2s  = &i2s;
+               gpio = &gpio;
+               intc = &intc;
+               leds = &leds;
+               sound = &sound;
+       };
+
+       leds: leds {
                compatible = "gpio-leds";
 
-               act {
-                       label = "ACT";
-                       default-state = "keep";
-                       linux,default-trigger = "heartbeat";
+               act_led: act {
+                       label = "led0";
+                       linux,default-trigger = "mmc0";
+               };
+       };
+
+       soc {
+               firmware: firmware {
+                       compatible = "raspberrypi,bcm2835-firmware";
+                       mboxes = <&mailbox>;
+               };
+
+               fb: fb {
+                       compatible = "brcm,bcm2708-fb";
+                       firmware = <&firmware>;
+               };
+
+               thermal: thermal {
+                       compatible = "brcm,bcm2835-thermal";
+                       firmware = <&firmware>;
+               };
+
+               vchiq: vchiq {
+                       compatible = "brcm,bcm2835-vchiq";
+                       reg = <0x7e00b840 0xf>;
+                       interrupts = <0 2>;
+                       cache-line-size = <32>;
+                       firmware = <&firmware>;
                };
        };
+
+       /* Onboard audio */
+       audio: audio {
+               compatible = "brcm,bcm2835-audio";
+               brcm,pwm-channels = <8>;
+               status = "disabled";
+       };
+
+       /* External sound card */
+       sound: sound {
+       };
 };
 
 &gpio {
-       pinctrl-names = "default";
+       spi0_pins: spi0_pins {
+               brcm,pins = <7 8 9 10 11>;
+               brcm,function = <4>; /* alt0 */
+       };
 
-       gpioout: gpioout {
-               brcm,pins = <6>;
-               brcm,function = <1>; /* GPIO out */
+       i2c0_pins: i2c0 {
+               brcm,pins = <0 1>;
+               brcm,function = <4>;
        };
 
-       alt0: alt0 {
-               brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
-               brcm,function = <4>; /* alt0 */
+       i2c1_pins: i2c1 {
+               brcm,pins = <2 3>;
+               brcm,function = <4>;
+       };
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+
+       spidev@0{
+               compatible = "spidev";
+               reg = <0>;      /* CE0 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
        };
 
-       alt3: alt3 {
-               brcm,pins = <48 49 50 51 52 53>;
-               brcm,function = <7>; /* alt3 */
+       spidev@1{
+               compatible = "spidev";
+               reg = <1>;      /* CE1 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+               spi-max-frequency = <500000>;
        };
 };
 
 &i2c0 {
-       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
        clock-frequency = <100000>;
 };
 
 &i2c1 {
-       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
        clock-frequency = <100000>;
 };
 
-&sdhci {
+&mmc {
        status = "okay";
        bus-width = <4>;
 };
+
+/ {
+       __overrides__ {
+               i2s = <&i2s>,"status";
+               spi = <&spi0>,"status";
+               i2c0 = <&i2c0>,"status";
+               i2c1 = <&i2c1>,"status";
+               i2c0_baudrate = <&i2c0>,"clock-frequency:0";
+               i2c1_baudrate = <&i2c1>,"clock-frequency:0";
+               act_led_trigger = <&act_led>,"linux,default-trigger";
+               audio = <&audio>,"status";
+       };
+};
index 3342cb1..8a5d6ec 100644 (file)
@@ -6,14 +6,15 @@
        interrupt-parent = <&intc>;
 
        chosen {
-               bootargs = "earlyprintk console=ttyAMA0";
+               bootargs = "";
        };
 
-       soc {
+       soc: soc {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x7e000000 0x20000000 0x02000000>;
+               dma-ranges = <0x40000000 0x00000000 0x20000000>;
 
                timer@7e003000 {
                        compatible = "brcm,bcm2835-system-timer";
                        #interrupt-cells = <2>;
                };
 
-               watchdog@7e100000 {
+               watchdog: watchdog@7e100000 {
                        compatible = "brcm,bcm2835-pm-wdt";
                        reg = <0x7e100000 0x28>;
                };
 
-               rng@7e104000 {
+               random: rng@7e104000 {
                        compatible = "brcm,bcm2835-rng";
                        reg = <0x7e104000 0x10>;
                };
 
+               mailbox: mailbox@7e00b800 {
+                       compatible = "brcm,bcm2835-mbox";
+                       reg = <0x7e00b880 0x40>;
+                       interrupts = <0 1>;
+                       #mbox-cells = <0>;
+               };
+
                gpio: gpio@7e200000 {
                        compatible = "brcm,bcm2835-gpio";
                        reg = <0x7e200000 0xb4>;
@@ -83,7 +91,7 @@
                        #interrupt-cells = <2>;
                };
 
-               uart@7e201000 {
+               uart0: uart@7e201000 {
                        compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
                        reg = <0x7e201000 0x1000>;
                        interrupts = <2 25>;
 
                i2s: i2s@7e203000 {
                        compatible = "brcm,bcm2835-i2s";
-                       reg = <0x7e203000 0x20>,
-                             <0x7e101098 0x02>;
+                       reg = <0x7e203000 0x24>,
+                             <0x7e101098 0x08>;
 
                        dmas = <&dma 2>,
                               <&dma 3>;
                        status = "disabled";
                };
 
-               spi: spi@7e204000 {
+               spi0: spi@7e204000 {
                        compatible = "brcm,bcm2835-spi";
                        reg = <0x7e204000 0x1000>;
                        interrupts = <2 22>;
                        status = "disabled";
                };
 
-               sdhci: sdhci@7e300000 {
-                       compatible = "brcm,bcm2835-sdhci";
+               mmc: mmc@7e300000 {
+                       compatible = "brcm,bcm2835-mmc";
                        reg = <0x7e300000 0x100>;
                        interrupts = <2 30>;
                        clocks = <&clk_mmc>;
+                       dmas = <&dma 11>,
+                              <&dma 11>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
-               usb@7e980000 {
-                       compatible = "brcm,bcm2835-usb";
-                       reg = <0x7e980000 0x10000>;
-                       interrupts = <1 9>;
+               usb: usb@7e980000 {
+                       compatible = "brcm,bcm2708-usb";
+                       reg = <0x7e980000 0x10000>,
+                             <0x7e006000 0x1000>;
+                       interrupts = <2 0>,
+                                    <1 9>;
                };
 
                arm-pmu {
                        reg = <0>;
                        #clock-cells = <0>;
                        clock-output-names = "mmc";
-                       clock-frequency = <100000000>;
+                       clock-frequency = <250000000>;
                };
 
                clk_i2c: clock@1 {
diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
new file mode 100644 (file)
index 0000000..75692d0
--- /dev/null
@@ -0,0 +1,78 @@
+ifeq ($(CONFIG_OF),y)
+
+# Overlays for the Raspberry Pi platform
+
+ifeq ($(CONFIG_BCM2708_DT),y)
+   RPI_DT_OVERLAYS=y
+endif
+ifeq ($(CONFIG_BCM2709_DT),y)
+   RPI_DT_OVERLAYS=y
+endif
+ifeq ($(CONFIG_ARCH_BCM2835),y)
+   RPI_DT_OVERLAYS=y
+endif
+
+dtb-$(RPI_DT_OVERLAYS) += ads7846-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += at86rf233-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += dht11-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += enc28j60-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += gpio-ir-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += gpio-poweroff-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += hifiberry-amp-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += hifiberry-dac-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += hifiberry-dacplus-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += hifiberry-digi-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += hy28a-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += hy28b-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += i2c-rtc-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += i2c-gpio-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += i2s-mmap-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += iqaudio-dac-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += iqaudio-dacplus-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += lirc-rpi-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += mcp2515-can0-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += mcp2515-can1-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += mmc-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += piscreen2r-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += pitft28-capacitive-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += pwm-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += pwm-2chan-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += raspidac3-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += rpi-backlight-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += rpi-display-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += rpi-proto-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += rpi-sense-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += sdio-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += smi-dev-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += smi-nand-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += smi-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += spi-bcm2708-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += spi-bcm2835-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += spi-dma-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += vc4-kms-v3d-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += vga666-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += w1-gpio-overlay.dtb
+dtb-$(RPI_DT_OVERLAYS) += w1-gpio-pullup-overlay.dtb
+
+targets += dtbs dtbs_install
+targets += $(dtb-y)
+
+endif
+
+always         := $(dtb-y)
+clean-files    := *.dtb
+
+# Enable fixups to support overlays on BCM2708 platforms
+ifeq ($(RPI_DT_OVERLAYS),y)
+       DTC_FLAGS ?= -@
+endif
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
new file mode 100644 (file)
index 0000000..0cf7997
--- /dev/null
@@ -0,0 +1,755 @@
+Introduction
+============
+
+This directory contains Device Tree overlays. Device Tree makes it possible
+to support many hardware configurations with a single kernel and without the
+need to explicitly load or blacklist kernel modules. Note that this isn't a
+"pure" Device Tree configuration (c.f. MACH_BCM2835) - some on-board devices
+are still configured by the board support code, but the intention is to
+eventually reach that goal.
+
+On Raspberry Pi, Device Tree usage is controlled from /boot/config.txt. By
+default, the Raspberry Pi kernel boots with device tree enabled. You can
+completely disable DT usage (for now) by adding:
+
+    device_tree=
+
+to your config.txt, which should cause your Pi to revert to the old way of
+doing things after a reboot.
+
+In /boot you will find a .dtb for each base platform. This describes the
+hardware that is part of the Raspberry Pi board. The loader (start.elf and its
+siblings) selects the .dtb file appropriate for the platform by name, and reads
+it into memory. At this point, all of the optional interfaces (i2c, i2s, spi)
+are disabled, but they can be enabled using Device Tree parameters:
+
+    dtparam=i2c=on,i2s=on,spi=on
+
+However, this shouldn't be necessary in many use cases because loading an
+overlay that requires one of those interfaces will cause it to be enabled
+automatically, and it is advisable to only enable interfaces if they are
+needed.
+
+Configuring additional, optional hardware is done using Device Tree overlays
+(see below).
+
+raspi-config
+============
+
+The Advanced Options section of the raspi-config utility can enable and disable
+Device Tree use, as well as toggling the I2C and SPI interfaces. Note that it
+is possible to both enable an interface and blacklist the driver, if for some
+reason you should want to defer the loading.
+
+Modules
+=======
+
+As well as describing the hardware, Device Tree also gives enough information
+to allow suitable driver modules to be located and loaded, with the corollary
+that unneeded modules are not loaded. As a result it should be possible to
+remove lines from /etc/modules, and /etc/modprobe.d/raspi-blacklist.conf can
+have its contents deleted (or commented out).
+
+Using Overlays
+==============
+
+Overlays are loaded using the "dtoverlay" directive. As an example, consider
+the popular lirc-rpi module, the Linux Infrared Remote Control driver. In the
+pre-DT world this would be loaded from /etc/modules, with an explicit
+"modprobe lirc-rpi" command, or programmatically by lircd. With DT enabled,
+this becomes a line in config.txt:
+
+    dtoverlay=lirc-rpi
+
+This causes the file /boot/overlays/lirc-rpi-overlay.dtb to be loaded. By
+default it will use GPIOs 17 (out) and 18 (in), but this can be modified using
+DT parameters:
+
+    dtoverlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=13
+
+Parameters always have default values, although in some cases (e.g. "w1-gpio")
+it is necessary to provided multiple overlays in order to get the desired
+behaviour. See the list of overlays below for a description of the parameters
+and their defaults.
+
+The Overlay and Parameter Reference
+===================================
+
+N.B. When editing this file, please preserve the indentation levels to make it
+simple to parse programmatically. NO HARD TABS.
+
+
+Name:   <The base DTB>
+Info:   Configures the base Raspberry Pi hardware
+Load:   <loaded automatically>
+Params:
+        audio                    Set to "on" to enable the onboard ALSA audio
+                                 interface (default "off")
+
+        i2c_arm                  Set to "on" to enable the ARM's i2c interface
+                                 (default "off")
+
+        i2c_vc                   Set to "on" to enable the i2c interface
+                                 usually reserved for the VideoCore processor
+                                 (default "off")
+
+        i2c                      An alias for i2c_arm
+
+        i2c_arm_baudrate         Set the baudrate of the ARM's i2c interface
+                                 (default "100000")
+
+        i2c_vc_baudrate          Set the baudrate of the VideoCore i2c interface
+                                 (default "100000")
+
+        i2c_baudrate             An alias for i2c_arm_baudrate
+
+        i2s                      Set to "on" to enable the i2s interface
+                                 (default "off")
+
+        spi                      Set to "on" to enable the spi interfaces
+                                 (default "off")
+
+        random                   Set to "on" to enable the hardware random
+                                 number generator (default "on")
+
+        uart0                    Set to "off" to disable uart0 (default "on")
+
+        watchdog                 Set to "on" to enable the hardware watchdog
+                                 (default "off")
+
+        act_led_trigger          Choose which activity the LED tracks.
+                                 Use "heartbeat" for a nice load indicator.
+                                 (default "mmc")
+
+        act_led_activelow        Set to "on" to invert the sense of the LED
+                                 (default "off")
+
+        act_led_gpio             Set which GPIO to use for the activity LED
+                                 (in case you want to connect it to an external
+                                 device)
+                                 (default "16" on a non-Plus board, "47" on a
+                                 Plus or Pi 2)
+
+        pwr_led_trigger
+        pwr_led_activelow
+        pwr_led_gpio
+                                 As for act_led_*, but using the PWR LED.
+                                 Not available on Model A/B boards.
+
+        N.B. It is recommended to only enable those interfaces that are needed.
+        Leaving all interfaces enabled can lead to unwanted behaviour (i2c_vc
+        interfering with Pi Camera, I2S and SPI hogging GPIO pins, etc.)
+        Note also that i2c, i2c_arm and i2c_vc are aliases for the physical
+        interfaces i2c0 and i2c1. Use of the numeric variants is still possible
+        but deprecated because the ARM/VC assignments differ between board
+        revisions. The same board-specific mapping applies to i2c_baudrate,
+        and the other i2c baudrate parameters.
+
+
+Name:   ads7846
+Info:   ADS7846 Touch controller
+Load:   dtoverlay=ads7846,<param>=<val>
+Params: cs                       SPI bus Chip Select (default 1)
+        speed                    SPI bus speed (default 2MHz, max 3.25MHz)
+        penirq                   GPIO used for PENIRQ. REQUIRED
+        penirq_pull              Set GPIO pull (default 0=none, 2=pullup)
+        swapxy                   Swap x and y axis
+        xmin                     Minimum value on the X axis (default 0)
+        ymin                     Minimum value on the Y axis (default 0)
+        xmax                     Maximum value on the X axis (default 4095)
+        ymax                     Maximum value on the Y axis (default 4095)
+        pmin                     Minimum reported pressure value (default 0)
+        pmax                     Maximum reported pressure value (default 65535)
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+                                 (default 400)
+
+        penirq is required and usually xohms (60-100) has to be set as well.
+        Apart from that, pmax (255) and swapxy are also common.
+        The rest of the calibration can be done with xinput-calibrator.
+        See: github.com/notro/fbtft/wiki/FBTFT-on-Raspian
+        Device Tree binding document:
+        www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt
+
+
+Name:   at86rf233
+Info:   Configures the Atmel AT86RF233 802.15.4 low-power WPAN transceiver,
+        connected to spi0.0
+Load:   dtoverlay=at86rf233,<param>=<val>
+Params: interrupt                GPIO used for INT (default 23)
+        reset                    GPIO used for Reset (default 24)
+        sleep                    GPIO used for Sleep (default 25)
+        speed                    SPI bus speed in Hz (default 6000000)
+        trim                     Fine tuning of the internal capacitance
+                                 arrays (0=+0pF, 15=+4.5pF, default 15)
+
+
+Name:   bmp085_i2c-sensor
+Info:   Configures the BMP085/BMP180 digital barometric pressure and temperature
+        sensors from Bosch Sensortec
+Load:   dtoverlay=bmp085_i2c-sensor
+Params: <None>
+
+
+Name:   dht11
+Info:   Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors
+        Also sometimes found with the part number(s) AM230x.
+Load:   dtoverlay=dht11,<param>=<val>
+Params: gpiopin                  GPIO connected to the sensor's DATA output.
+                                 (default 4)
+
+
+[ The ds1307-rtc overlay has been deleted. See i2c-rtc. ]
+
+
+Name:   enc28j60
+Info:   Overlay for the Microchip ENC28J60 Ethernet Controller (SPI)
+Load:   dtoverlay=enc28j60,<param>=<val>
+Params: int_pin                  GPIO used for INT (default 25)
+
+        speed                    SPI bus speed (default 12000000)
+
+
+Name:   gpio-ir
+Info:   Use GPIO pin as rc-core style infrared receiver input. The rc-core-
+        based gpio_ir_recv driver maps received keys directly to a
+        /dev/input/event* device, all decoding is done by the kernel - LIRC is
+        not required! The key mapping and other decoding parameters can be
+        configured by "ir-keytable" tool.
+Load:   dtoverlay=gpio-ir,<param>=<val>
+Params: gpio_pin                 Input pin number. Default is 18.
+
+        gpio_pull                Desired pull-up/down state (off, down, up)
+                                 Default is "down".
+
+        rc-map-name              Default rc keymap (can also be changed by
+                                 ir-keytable), defaults to "rc-rc6-mce"
+
+
+Name:   gpio-poweroff
+Info:   Drives a GPIO high or low on reboot
+Load:   dtoverlay=gpio-poweroff,<param>=<val>
+Params: gpiopin                  GPIO for signalling (default 26)
+
+        active_low               Set if the power control device requires a
+                                 high->low transition to trigger a power-down.
+                                 Note that this will require the support of a
+                                 custom dt-blob.bin to prevent a power-down
+                                 during the boot process, and that a reboot
+                                 will also cause the pin to go low.
+
+
+Name:   hifiberry-amp
+Info:   Configures the HifiBerry Amp and Amp+ audio cards
+Load:   dtoverlay=hifiberry-amp
+Params: <None>
+
+
+Name:   hifiberry-dac
+Info:   Configures the HifiBerry DAC audio card
+Load:   dtoverlay=hifiberry-dac
+Params: <None>
+
+
+Name:   hifiberry-dacplus
+Info:   Configures the HifiBerry DAC+ audio card
+Load:   dtoverlay=hifiberry-dacplus
+Params: <None>
+
+
+Name:   hifiberry-digi
+Info:   Configures the HifiBerry Digi audio card
+Load:   dtoverlay=hifiberry-digi
+Params: <None>
+
+
+Name:   hy28a
+Info:   HY28A - 2.8" TFT LCD Display Module by HAOYU Electronics
+        Default values match Texy's display shield
+Load:   dtoverlay=hy28a,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+
+        resetgpio                GPIO used to reset controller
+
+        ledgpio                  GPIO used to control backlight
+
+
+Name:   hy28b
+Info:   HY28B - 2.8" TFT LCD Display Module by HAOYU Electronics
+        Default values match Texy's display shield
+Load:   dtoverlay=hy28b,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+
+        resetgpio                GPIO used to reset controller
+
+        ledgpio                  GPIO used to control backlight
+
+
+Name:   i2c-gpio
+Info:   Adds support for software i2c controller on gpio pins
+Load:   dtoverlay=i2c-gpio,<param>=<val>
+Params: i2c_gpio_sda             GPIO used for I2C data (default "23")
+
+        i2c_gpio_scl             GPIO used for I2C clock (default "24")
+
+        i2c_gpio_delay_us        Clock delay in microseconds
+                                 (default "2" = ~100kHz)
+
+
+Name:   i2c-rtc
+Info:   Adds support for a number of I2C Real Time Clock devices
+Load:   dtoverlay=i2c-rtc,<param>=<val>
+Params: ds1307                   Select the DS1307 device
+
+        ds3231                   Select the DS3231 device
+
+        mcp7941x                 Select the MCP7941x device
+
+        pcf2127                  Select the PCF2127 device
+
+        pcf8523                  Select the PCF8523 device
+
+        pcf8563                  Select the PCF8563 device
+
+
+Name:   i2s-mmap
+Info:   Enables mmap support in the bcm2708-i2s driver
+Load:   dtoverlay=i2s-mmap
+Params: <None>
+
+
+Name:   iqaudio-dac
+Info:   Configures the IQaudio DAC audio card
+Load:   dtoverlay=iqaudio-dac
+Params: <None>
+
+
+Name:   iqaudio-dacplus
+Info:   Configures the IQaudio DAC+ audio card
+Load:   dtoverlay=iqaudio-dacplus
+Params: <None>
+
+
+Name:   lirc-rpi
+Info:   Configures lirc-rpi (Linux Infrared Remote Control for Raspberry Pi)
+        Consult the module documentation for more details.
+Load:   dtoverlay=lirc-rpi,<param>=<val>
+Params: gpio_out_pin             GPIO for output (default "17")
+
+        gpio_in_pin              GPIO for input (default "18")
+
+        gpio_in_pull             Pull up/down/off on the input pin
+                                 (default "down")
+
+        sense                    Override the IR receive auto-detection logic:
+                                   "0" = force active-high
+                                   "1" = force active-low
+                                   "-1" = use auto-detection
+                                 (default "-1")
+
+        softcarrier              Turn the software carrier "on" or "off"
+                                 (default "on")
+
+        invert                   "on" = invert the output pin (default "off")
+
+        debug                    "on" = enable additional debug messages
+                                 (default "off")
+
+
+Name:   mcp2515-can0
+Info:   Configures the MCP2515 CAN controller on spi0.0
+Load:   dtoverlay=mcp2515-can0,<param>=<val>
+Params: oscillator               Clock frequency for the CAN controller (Hz)
+
+        spimaxfrequency          Maximum SPI frequence (Hz)
+
+        interrupt                GPIO for interrupt signal
+
+
+Name:   mcp2515-can1
+Info:   Configures the MCP2515 CAN controller on spi0.1
+Load:   dtoverlay=mcp2515-can1,<param>=<val>
+Params: oscillator               Clock frequency for the CAN controller (Hz)
+
+        spimaxfrequency          Maximum SPI frequence (Hz)
+
+        interrupt                GPIO for interrupt signal
+
+
+Name:   mmc
+Info:   Selects the bcm2835-mmc SD/MMC driver, optionally with overclock
+Load:   dtoverlay=mmc,<param>=<val>
+Params: overclock_50             Clock (in MHz) to use when the MMC framework
+                                 requests 50MHz
+        force_pio                Disable DMA support
+
+
+Name:   mz61581
+Info:   MZ61581 display by Tontec
+Load:   dtoverlay=mz61581,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        txbuflen                 Transmit buffer length (default 32768)
+
+        debug                    Debug output level {0-7}
+
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+
+
+[ The pcf2127-rtc overlay has been deleted. See i2c-rtc. ]
+
+
+[ The pcf8523-rtc overlay has been deleted. See i2c-rtc. ]
+
+
+[ The pcf8563-rtc overlay has been deleted. See i2c-rtc. ]
+
+
+Name:   piscreen
+Info:   PiScreen display by OzzMaker.com
+Load:   dtoverlay=piscreen,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+
+
+Name:   piscreen2r
+Info:   PiScreen 2 with resistive TP display by OzzMaker.com
+Load:   dtoverlay=piscreen2r,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+
+
+Name:   pitft28-capacitive
+Info:   Adafruit PiTFT 2.8" capacitive touch screen
+Load:   dtoverlay=pitft28-capacitive,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        touch-sizex              Touchscreen size x (default 240)
+
+        touch-sizey              Touchscreen size y (default 320)
+
+        touch-invx               Touchscreen inverted x axis
+
+        touch-invy               Touchscreen inverted y axis
+
+        touch-swapxy             Touchscreen swapped x y axis
+
+
+Name:   pitft28-resistive
+Info:   Adafruit PiTFT 2.8" resistive touch screen
+Load:   dtoverlay=pitft28-resistive,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+
+Name:   pps-gpio
+Info:   Configures the pps-gpio (pulse-per-second time signal via GPIO).
+Load:   dtoverlay=pps-gpio,<param>=<val>
+Params: gpiopin                  Input GPIO (default "18")
+
+
+Name:   pwm
+Info:   Configures a single PWM channel
+        Legal pin,function combinations for each channel:
+          PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
+          PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
+        N.B.:
+          1) Pin 18 is the only one available on all platforms, and
+             it is the one used by the I2S audio interface.
+             Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
+          2) The onboard analogue audio output uses both PWM channels.
+          3) So be careful mixing audio and PWM.
+          4) Currently the clock must have been enabled and configured
+             by other means.
+Load:   dtoverlay=pwm,<param>=<val>
+Params: pin                      Output pin (default 18) - see table
+        func                     Pin function (default 2 = Alt5) - see above
+        clock                    PWM clock frequency (informational)
+
+
+Name:   pwm-2chan
+Info:   Configures both PWM channels
+        Legal pin,function combinations for each channel:
+          PWM0: 12,4(Alt0) 18,2(Alt5) 40,4(Alt0)            52,5(Alt1)
+          PWM1: 13,4(Alt0) 19,2(Alt5) 41,4(Alt0) 45,4(Alt0) 53,5(Alt1)
+        N.B.:
+          1) Pin 18 is the only one available on all platforms, and
+             it is the one used by the I2S audio interface.
+             Pins 12 and 13 might be better choices on an A+, B+ or Pi2.
+          2) The onboard analogue audio output uses both PWM channels.
+          3) So be careful mixing audio and PWM.
+          4) Currently the clock must have been enabled and configured
+             by other means.
+Load:   dtoverlay=pwm-2chan,<param>=<val>
+Params: pin                      Output pin (default 18) - see table
+        pin2                     Output pin for other channel (default 19)
+        func                     Pin function (default 2 = Alt5) - see above
+        func2                    Function for pin2 (default 2 = Alt5)
+        clock                    PWM clock frequency (informational)
+
+
+Name:   raspidac3
+Info:   Configures the RaspiDAV Rev.3x audio card
+Load:   dtoverlay=raspidac3
+Params: <None>
+
+
+Name:   rpi-backlight
+Info:   Raspberry Pi official display backlight driver
+Load:   dtoverlay=rpi-backlight
+Params: <None>
+
+
+Name:   rpi-dac
+Info:   Configures the RPi DAC audio card
+Load:   dtoverlay=rpi-dac
+Params: <None>
+
+
+Name:   rpi-display
+Info:   RPi-Display - 2.8" Touch Display by Watterott
+Load:   dtoverlay=rpi-display,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        xohms                    Touchpanel sensitivity (X-plate resistance)
+
+
+Name:   rpi-ft5406
+Info:   Official Raspberry Pi display touchscreen
+Load:   dtoverlay=rpi-ft5406
+Params: <None>
+
+
+Name:   rpi-proto
+Info:   Configures the RPi Proto audio card
+Load:   dtoverlay=rpi-proto
+Params: <None>
+
+
+Name:   rpi-sense
+Info:   Raspberry Pi Sense HAT
+Load:   dtoverlay=rpi-sense
+Params: <None>
+
+
+Name:   sdhost
+Info:   Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock
+Load:   dtoverlay=sdhost,<param>=<val>
+Params: overclock_50             Clock (in MHz) to use when the MMC framework
+                                 requests 50MHz
+
+        force_pio                Disable DMA support (default off)
+
+        pio_limit                Number of blocks above which to use DMA
+                                 (default 1)
+
+        debug                    Enable debug output (default off)
+
+
+Name:   sdio
+Info:   Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock,
+        and enables SDIO via GPIOs 22-27.
+Load:   dtoverlay=sdio,<param>=<val>
+Params: overclock_50             SD Clock (in MHz) to use when the MMC framework
+                                 requests 50MHz
+
+        sdio_overclock           SDIO Clock (in MHz) to use when the MMC
+                                 framework requests 50MHz
+
+        force_pio                Disable DMA support (default off)
+
+        pio_limit                Number of blocks above which to use DMA
+                                 (default 1)
+
+        debug                    Enable debug output (default off)
+
+        poll_once                Disable SDIO-device polling every second
+                                 (default on: polling once at boot-time)
+
+        bus_width                Set the SDIO host bus width (default 4 bits)
+
+
+Name:   smi
+Info:   Enables the Secondary Memory Interface peripheral. Uses GPIOs 2-25!
+Load:   dtoverlay=smi
+Params: <None>
+
+
+Name:   smi-dev
+Info:   Enables the userspace interface for the SMI driver
+Load:   dtoverlay=smi-dev
+Params: <None>
+
+
+Name:   smi-nand
+Info:   Enables access to NAND flash via the SMI interface
+Load:   dtoverlay=smi-nand
+Params: <None>
+
+
+Name:   spi-bcm2708
+Info:   Selects the bcm2708-spi SPI driver
+Load:   dtoverlay=spi-bcm2708
+Params: <None>
+
+
+Name:   spi-bcm2835
+Info:   Selects the bcm2835-spi SPI driver
+Load:   dtoverlay=spi-bcm2835
+Params: <None>
+
+
+Name:   spi-dma
+Info:   enables dma modes for spi-bcm2835
+Load:   dtoverlay=spi-dma
+Params: <None>
+
+
+Name:   tinylcd35
+Info:   3.5" Color TFT Display by www.tinylcd.com
+        Options: Touch, RTC, keypad
+Load:   dtoverlay=tinylcd35,<param>=<val>
+Params: speed                    Display SPI bus speed
+
+        rotate                   Display rotation {0,90,180,270}
+
+        fps                      Delay between frame updates
+
+        debug                    Debug output level {0-7}
+
+        touch                    Enable touch panel
+
+        touchgpio                Touch controller IRQ GPIO
+
+        xohms                    Touchpanel: Resistance of X-plate in ohms
+
+        rtc-pcf                  PCF8563 Real Time Clock
+
+        rtc-ds                   DS1307 Real Time Clock
+
+        keypad                   Enable keypad
+
+        Examples:
+            Display with touchpanel, PCF8563 RTC and keypad:
+                dtoverlay=tinylcd35,touch,rtc-pcf,keypad
+            Old touch display:
+                dtoverlay=tinylcd35,touch,touchgpio=3
+
+
+Name:   uart1
+Info:   Enable uart1 in place of uart0
+Load:   dtoverlay=uart1,<param>=<val>
+Params: txd1_pin                 GPIO pin for TXD1 (14, 32 or 40 - default 14)
+
+        rxd1_pin                 GPIO pin for RXD1 (15, 33 or 41 - default 15)
+
+
+Name:   vc4-kms-v3d
+Info:   Enable Eric Anholt's DRM VC4 HDMI/HVS/V3D driver. Running startx or
+        booting to GUI while this overlay is in use will cause interesting
+        lockups.
+Load:   dtoverlay=vc4-kms-v3d
+Params: <None>
+
+
+Name:   vga666
+Info:   Overlay for the Fen Logic VGA666 board
+        This uses GPIOs 2-21 (so no I2C), and activates the output 2-3 seconds
+        after the kernel has started.
+Load:   dtoverlay=vga666
+Params: <None>
+
+
+Name:   w1-gpio
+Info:   Configures the w1-gpio Onewire interface module.
+        Use this overlay if you *don't* need a GPIO to drive an external pullup.
+Load:   dtoverlay=w1-gpio,<param>=<val>
+Params: gpiopin                  GPIO for I/O (default "4")
+
+        pullup                   Non-zero, "on", or "y" to enable the parasitic
+                                 power (2-wire, power-on-data) feature
+
+
+Name:   w1-gpio-pullup
+Info:   Configures the w1-gpio Onewire interface module.
+        Use this overlay if you *do* need a GPIO to drive an external pullup.
+Load:   dtoverlay=w1-gpio-pullup,<param>=<val>
+Params: gpiopin                  GPIO for I/O (default "4")
+
+        pullup                   Non-zero, "on", or "y" to enable the parasitic
+                                 power (2-wire, power-on-data) feature
+
+        extpullup                GPIO for external pullup (default "5")
+
+
+Troubleshooting
+===============
+
+If you are experiencing problems that you think are DT-related, enable DT
+diagnostic output by adding this to /boot/config.txt:
+
+    dtdebug=on
+
+and rebooting. Then run:
+
+    sudo vcdbg log msg
+
+and look for relevant messages.
+
+Further reading
+===============
+
+This is only meant to be a quick introduction to the subject of Device Tree on
+Raspberry Pi. There is a more complete explanation here:
+
+http://www.raspberrypi.org/documentation/configuration/device-tree.md
diff --git a/arch/arm/boot/dts/overlays/ads7846-overlay.dts b/arch/arm/boot/dts/overlays/ads7846-overlay.dts
new file mode 100644 (file)
index 0000000..6a92cd1
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Generic Device Tree overlay for the ADS7846 touch controller
+ *
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
+
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
+                       status = "okay";
+
+                       spidev@0{
+                               status = "disabled";
+                       };
+
+                       spidev@1{
+                               status = "disabled";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       ads7846_pins: ads7846_pins {
+                               brcm,pins = <255>; /* illegal default value */
+                               brcm,function = <0>; /* in */
+                               brcm,pull = <0>; /* none */
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&spi0>;
+               __overlay__ {
+                       /* needed to avoid dtc warning */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ads7846: ads7846@1 {
+                               compatible = "ti,ads7846";
+                               reg = <1>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&ads7846_pins>;
+
+                               spi-max-frequency = <2000000>;
+                               interrupts = <255 2>; /* high-to-low edge triggered */
+                               interrupt-parent = <&gpio>;
+                               pendown-gpio = <&gpio 255 0>;
+
+                               /* driver defaults */
+                               ti,x-min = /bits/ 16 <0>;
+                               ti,y-min = /bits/ 16 <0>;
+                               ti,x-max = /bits/ 16 <0x0FFF>;
+                               ti,y-max = /bits/ 16 <0x0FFF>;
+                               ti,pressure-min = /bits/ 16 <0>;
+                               ti,pressure-max = /bits/ 16 <0xFFFF>;
+                               ti,x-plate-ohms = /bits/ 16 <400>;
+                       };
+               };
+       };
+       __overrides__ {
+               cs =     <&ads7846>,"reg:0";
+               speed =  <&ads7846>,"spi-max-frequency:0";
+               penirq = <&ads7846_pins>,"brcm,pins:0", /* REQUIRED */
+                        <&ads7846>,"interrupts:0",
+                        <&ads7846>,"pendown-gpio:4";
+               penirq_pull = <&ads7846_pins>,"brcm,pull:0";
+               swapxy = <&ads7846>,"ti,swap-xy?";
+               xmin =   <&ads7846>,"ti,x-min;0";
+               ymin =   <&ads7846>,"ti,y-min;0";
+               xmax =   <&ads7846>,"ti,x-max;0";
+               ymax =   <&ads7846>,"ti,y-max;0";
+               pmin =   <&ads7846>,"ti,pressure-min;0";
+               pmax =   <&ads7846>,"ti,pressure-max;0";
+               xohms =  <&ads7846>,"ti,x-plate-ohms;0";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/at86rf233-overlay.dts b/arch/arm/boot/dts/overlays/at86rf233-overlay.dts
new file mode 100644 (file)
index 0000000..0460269
--- /dev/null
@@ -0,0 +1,54 @@
+/dts-v1/;
+/plugin/;
+
+/* Overlay for Atmel AT86RF233 IEEE 802.15.4 WPAN transceiver on spi0.0 */
+
+/ {
+       compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
+
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "okay";
+
+                       spidev@0{
+                               status = "disabled";
+                       };
+
+                       lowpan0: at86rf233@0 {
+                               compatible = "atmel,at86rf233";
+                               reg = <0>;
+                               interrupt-parent = <&gpio>;
+                               interrupts = <23 4>; /* active high */
+                               reset-gpio = <&gpio 24 1>;
+                               sleep-gpio = <&gpio 25 1>;
+                               spi-max-frequency = <6000000>;
+                               xtal-trim = /bits/ 8 <0xf>;
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       lowpan0_pins: lowpan0_pins {
+                               brcm,pins = <23 24 25>;
+                               brcm,function = <0 1 1>; /* in out out */
+                       };
+               };
+       };
+
+       __overrides__ {
+               interrupt = <&lowpan0>, "interrupts:0",
+                       <&lowpan0_pins>, "brcm,pins:0";
+               reset     = <&lowpan0>, "reset-gpio:4",
+                       <&lowpan0_pins>, "brcm,pins:4";
+               sleep     = <&lowpan0>, "sleep-gpio:4",
+                       <&lowpan0_pins>, "brcm,pins:8";
+               speed     = <&lowpan0>, "spi-max-frequency:0";
+               trim      = <&lowpan0>, "xtal-trim.0";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts b/arch/arm/boot/dts/overlays/bmp085_i2c-sensor-overlay.dts
new file mode 100644 (file)
index 0000000..782b171
--- /dev/null
@@ -0,0 +1,23 @@
+// Definitions for BMP085/BMP180 digital barometric pressure and temperature sensors from Bosch Sensortec
+/dts-v1/;
+/plugin/;
+
+/ {
+        compatible = "brcm,bcm2708";
+
+        fragment@0 {
+                target = <&i2c_arm>;
+                __overlay__ {
+                        #address-cells = <1>;
+                        #size-cells = <0>;
+                        status = "okay";
+
+                        bmp085@77 {
+                                compatible = "bosch,bmp085";
+                                reg = <0x77>;
+                                default-oversampling = <3>;
+                                status = "okay";
+                        };
+                };
+        };
+};
diff --git a/arch/arm/boot/dts/overlays/dht11-overlay.dts b/arch/arm/boot/dts/overlays/dht11-overlay.dts
new file mode 100644 (file)
index 0000000..9bf67fd
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Overlay for the DHT11/21/22 humidity/temperature sensor modules.
+ */
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target-path = "/";
+               __overlay__ {
+
+                       dht11: dht11@0 {
+                               compatible = "dht11";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dht11_pins>;
+                               gpios = <&gpio 4 0>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       dht11_pins: dht11_pins {
+                               brcm,pins = <4>;
+                               brcm,function = <0>; // in
+                               brcm,pull = <0>; // off
+                       };
+               };
+       };
+
+       __overrides__ {
+               gpiopin = <&dht11_pins>,"brcm,pins:0",
+                       <&dht11>,"gpios:4";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/enc28j60-overlay.dts b/arch/arm/boot/dts/overlays/enc28j60-overlay.dts
new file mode 100644 (file)
index 0000000..8fae869
--- /dev/null
@@ -0,0 +1,50 @@
+// Overlay for the Microchip ENC28J60 Ethernet Controller
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
+                       /* needed to avoid dtc warning */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       status = "okay";
+
+                       spidev@0{
+                               status = "disabled";
+                       };
+
+                       eth1: enc28j60@0{
+                               compatible = "microchip,enc28j60";
+                               reg = <0>; /* CE0 */
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&eth1_pins>;
+                               interrupt-parent = <&gpio>;
+                               interrupts = <25 0x2>; /* falling edge */
+                               spi-max-frequency = <12000000>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       eth1_pins: eth1_pins {
+                               brcm,pins = <25>;
+                               brcm,function = <0>; /* in */
+                               brcm,pull = <0>; /* none */
+                       };
+               };
+       };
+
+       __overrides__ {
+               int_pin = <&eth1>, "interrupts:0",
+                         <&eth1_pins>, "brcm,pins:0";
+               speed   = <&eth1>, "spi-max-frequency:0";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts b/arch/arm/boot/dts/overlays/gpio-ir-overlay.dts
new file mode 100644 (file)
index 0000000..a2d6bc7
--- /dev/null
@@ -0,0 +1,45 @@
+// Definitions for ir-gpio module
+/dts-v1/;
+/plugin/;
+
+/ {
+        compatible = "brcm,bcm2708";
+
+        fragment@0 {
+                target-path = "/";
+                __overlay__ {
+                        gpio_ir: ir-receiver {
+                                compatible = "gpio-ir-receiver";
+
+                                // pin number, high or low
+                                gpios = <&gpio 18 1>;
+
+                                // parameter for keymap name
+                                linux,rc-map-name = "rc-rc6-mce";
+
+                                status = "okay";
+                        };
+                };
+        };
+
+        fragment@1 {
+                target = <&gpio>;
+                __overlay__ {
+                        gpio_ir_pins: gpio_ir_pins {
+                                brcm,pins = <18>;                       // pin 18
+                                brcm,function = <0>;                    // in
+                                brcm,pull = <1>;                        // down
+                        };
+                };
+        };
+
+        __overrides__ {
+                // parameters
+                gpio_pin =      <&gpio_ir>,"gpios:4",
+                                        <&gpio_ir_pins>,"brcm,pins:0",
+                                        <&gpio_ir_pins>,"brcm,pull:0";  // pin number
+                gpio_pull = <&gpio_ir_pins>,"brcm,pull:0";              // pull-up/down state
+
+                rc-map-name = <&gpio_ir>,"linux,rc-map-name";           // default rc map
+        };
+};
diff --git a/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts b/arch/arm/boot/dts/overlays/gpio-poweroff-overlay.dts
new file mode 100644 (file)
index 0000000..ff8cb36
--- /dev/null
@@ -0,0 +1,34 @@
+// Definitions for gpio-poweroff module
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target-path = "/";
+               __overlay__ {
+                       power_ctrl: power_ctrl {
+                               compatible = "gpio-poweroff";
+                               gpios = <&gpio 26 0>;
+                               force;
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       power_ctrl_pins: power_ctrl_pins {
+                               brcm,pins = <26>;
+                               brcm,function = <1>; // out
+                       };
+               };
+       };
+
+       __overrides__ {
+               gpiopin =       <&power_ctrl>,"gpios:4",
+                               <&power_ctrl_pins>,"brcm,pins:0";
+               active_low =    <&power_ctrl>,"gpios:8";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dts
new file mode 100644 (file)
index 0000000..2c81448
--- /dev/null
@@ -0,0 +1,39 @@
+// Definitions for HiFiBerry Amp/Amp+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "hifiberry,hifiberry-amp";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+               };
+       };
+
+       fragment@1 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       tas5713@1b {
+                               #sound-dai-cells = <0>;
+                               compatible = "ti,tas5713";
+                               reg = <0x1b>;
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-dac-overlay.dts
new file mode 100644 (file)
index 0000000..5e7633a
--- /dev/null
@@ -0,0 +1,34 @@
+// Definitions for HiFiBerry DAC
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "hifiberry,hifiberry-dac";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+               };
+       };
+
+       fragment@1 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target-path = "/";
+               __overlay__ {
+                       pcm5102a-codec {
+                               #sound-dai-cells = <0>;
+                               compatible = "ti,pcm5102a";
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-dacplus-overlay.dts
new file mode 100644 (file)
index 0000000..f923a48
--- /dev/null
@@ -0,0 +1,50 @@
+// Definitions for HiFiBerry DAC+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target-path = "/clocks";
+               __overlay__ {
+                       dacpro_osc: dacpro_osc {
+                               compatible = "hifiberry,dacpro-clk";
+                               #clock-cells = <0>;
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "hifiberry,hifiberry-dacplus";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@3 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       pcm5122@4d {
+                               #sound-dai-cells = <0>;
+                               compatible = "ti,pcm5122";
+                               reg = <0x4d>;
+                               clocks = <&dacpro_osc>;
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts b/arch/arm/boot/dts/overlays/hifiberry-digi-overlay.dts
new file mode 100644 (file)
index 0000000..d0e0d8a
--- /dev/null
@@ -0,0 +1,39 @@
+// Definitions for HiFiBerry Digi
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "hifiberry,hifiberry-digi";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+               };
+       };
+
+       fragment@1 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       wm8804@3b {
+                               #sound-dai-cells = <0>;
+                               compatible = "wlf,wm8804";
+                               reg = <0x3b>;
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/hy28a-overlay.dts b/arch/arm/boot/dts/overlays/hy28a-overlay.dts
new file mode 100644 (file)
index 0000000..3cd3083
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * Device Tree overlay for HY28A display
+ *
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
+
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
+                       status = "okay";
+
+                       spidev@0{
+                               status = "disabled";
+                       };
+
+                       spidev@1{
+                               status = "disabled";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       hy28a_pins: hy28a_pins {
+                               brcm,pins = <17 25 18>;
+                               brcm,function = <0 1 1>; /* in out out */
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&spi0>;
+               __overlay__ {
+                       /* needed to avoid dtc warning */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       hy28a: hy28a@0{
+                               compatible = "ilitek,ili9320";
+                               reg = <0>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hy28a_pins>;
+
+                               spi-max-frequency = <32000000>;
+                               spi-cpol;
+                               spi-cpha;
+                               rotate = <270>;
+                               bgr;
+                               fps = <50>;
+                               buswidth = <8>;
+                               startbyte = <0x70>;
+                               reset-gpios = <&gpio 25 0>;
+                               led-gpios = <&gpio 18 1>;
+                               debug = <0>;
+                       };
+
+                       hy28a_ts: hy28a-ts@1 {
+                               compatible = "ti,ads7846";
+                               reg = <1>;
+
+                               spi-max-frequency = <2000000>;
+                               interrupts = <17 2>; /* high-to-low edge triggered */
+                               interrupt-parent = <&gpio>;
+                               pendown-gpio = <&gpio 17 0>;
+                               ti,x-plate-ohms = /bits/ 16 <100>;
+                               ti,pressure-max = /bits/ 16 <255>;
+                       };
+               };
+       };
+       __overrides__ {
+               speed =         <&hy28a>,"spi-max-frequency:0";
+               rotate =        <&hy28a>,"rotate:0";
+               fps =           <&hy28a>,"fps:0";
+               debug =         <&hy28a>,"debug:0";
+               xohms =         <&hy28a_ts>,"ti,x-plate-ohms;0";
+               resetgpio =     <&hy28a>,"reset-gpios:4",
+                               <&hy28a_pins>, "brcm,pins:1";
+               ledgpio =       <&hy28a>,"led-gpios:4",
+                               <&hy28a_pins>, "brcm,pins:2";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/hy28b-overlay.dts b/arch/arm/boot/dts/overlays/hy28b-overlay.dts
new file mode 100644 (file)
index 0000000..f774c4a
--- /dev/null
@@ -0,0 +1,142 @@
+/*
+ * Device Tree overlay for HY28b display shield by Texy
+ *
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
+
+       fragment@0 {
+               target = <&spi0>;
+               __overlay__ {
+                       status = "okay";
+
+                       spidev@0{
+                               status = "disabled";
+                       };
+
+                       spidev@1{
+                               status = "disabled";
+                       };
+               };
+       };
+
+       fragment@1 {
+               target = <&gpio>;
+               __overlay__ {
+                       hy28b_pins: hy28b_pins {
+                               brcm,pins = <17 25 18>;
+                               brcm,function = <0 1 1>; /* in out out */
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&spi0>;
+               __overlay__ {
+                       /* needed to avoid dtc warning */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       hy28b: hy28b@0{
+                               compatible = "ilitek,ili9325";
+                               reg = <0>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&hy28b_pins>;
+
+                               spi-max-frequency = <48000000>;
+                               spi-cpol;
+                               spi-cpha;
+                               rotate = <270>;
+                               bgr;
+                               fps = <50>;
+                               buswidth = <8>;
+                               startbyte = <0x70>;
+                               reset-gpios = <&gpio 25 0>;
+                               led-gpios = <&gpio 18 1>;
+
+                               gamma = "04 1F 4 7 7 0 7 7 6 0\n0F 00 1 7 4 0 0 0 6 7";
+
+                               init = <0x10000e7 0x0010
+                                       0x1000000 0x0001
+                                       0x1000001 0x0100
+                                       0x1000002 0x0700
+                                       0x1000003 0x1030
+                                       0x1000004 0x0000
+                                       0x1000008 0x0207
+                                       0x1000009 0x0000
+                                       0x100000a 0x0000
+                                       0x100000c 0x0001
+                                       0x100000d 0x0000
+                                       0x100000f 0x0000
+                                       0x1000010 0x0000
+                                       0x1000011 0x0007
+                                       0x1000012 0x0000
+                                       0x1000013 0x0000
+                                       0x2000032
+                                       0x1000010 0x1590
+                                       0x1000011 0x0227
+                                       0x2000032
+                                       0x1000012 0x009c
+                                       0x2000032
+                                       0x1000013 0x1900
+                                       0x1000029 0x0023
+                                       0x100002b 0x000e
+                                       0x2000032
+                                       0x1000020 0x0000
+                                       0x1000021 0x0000
+                                       0x2000032
+                                       0x1000050 0x0000
+                                       0x1000051 0x00ef
+                                       0x1000052 0x0000
+                                       0x1000053 0x013f
+                                       0x1000060 0xa700
+                                       0x1000061 0x0001
+                                       0x100006a 0x0000
+                                       0x1000080 0x0000
+                                       0x1000081 0x0000
+                                       0x1000082 0x0000
+                                       0x1000083 0x0000
+                                       0x1000084 0x0000
+                                       0x1000085 0x0000
+                                       0x1000090 0x0010
+                                       0x1000092 0x0000
+                                       0x1000093 0x0003
+                                       0x1000095 0x0110
+                                       0x1000097 0x0000
+                                       0x1000098 0x0000
+                                       0x1000007 0x0133
+                                       0x1000020 0x0000
+                                       0x1000021 0x0000
+                                       0x2000064>;
+                               debug = <0>;
+                       };
+
+                       hy28b_ts: hy28b-ts@1 {
+                               compatible = "ti,ads7846";
+                               reg = <1>;
+
+                               spi-max-frequency = <2000000>;
+                               interrupts = <17 2>; /* high-to-low edge triggered */
+                               interrupt-parent = <&gpio>;
+                               pendown-gpio = <&gpio 17 0>;
+                               ti,x-plate-ohms = /bits/ 16 <100>;
+                               ti,pressure-max = /bits/ 16 <255>;
+                       };
+               };
+       };
+       __overrides__ {
+               speed =         <&hy28b>,"spi-max-frequency:0";
+               rotate =        <&hy28b>,"rotate:0";
+               fps =           <&hy28b>,"fps:0";
+               debug =         <&hy28b>,"debug:0";
+               xohms =         <&hy28b_ts>,"ti,x-plate-ohms;0";
+               resetgpio =     <&hy28b>,"reset-gpios:4",
+                               <&hy28b_pins>, "brcm,pins:1";
+               ledgpio =       <&hy28b>,"led-gpios:4",
+                               <&hy28b_pins>, "brcm,pins:2";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts b/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
new file mode 100644 (file)
index 0000000..2a2dc98
--- /dev/null
@@ -0,0 +1,28 @@
+// Overlay for i2c_gpio bitbanging host bus.
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target-path = "/";
+               __overlay__ {
+                       i2c_gpio: i2c@0 {
+                               compatible = "i2c-gpio";
+                               gpios = <&gpio 23 0 /* sda */
+                                        &gpio 24 0 /* scl */
+                                       >;
+                               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+       };
+       __overrides__ {
+               i2c_gpio_sda = <&i2c_gpio>,"gpios:4";
+               i2c_gpio_scl = <&i2c_gpio>,"gpios:16";
+               i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0";
+       };
+};
+
diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-overlay.dts
new file mode 100644 (file)
index 0000000..fed4bd8
--- /dev/null
@@ -0,0 +1,55 @@
+// Definitions for several I2C based Real Time Clocks
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&i2c_arm>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       ds1307: ds1307@68 {
+                               compatible = "maxim,ds1307";
+                               reg = <0x68>;
+                               status = "disable";
+                       };
+                       mcp7941x: mcp7941x@6f {
+                               compatible = "microchip,mcp7941x";
+                               reg = <0x6f>;
+                               status = "disable";
+                       };
+                       ds3231: ds3231@68 {
+                               compatible = "maxim,ds3231";
+                               reg = <0x68>;
+                               status = "disable";
+                       };
+                       pcf2127: pcf2127@51 {
+                               compatible = "nxp,pcf2127";
+                               reg = <0x51>;
+                               status = "disable";
+                       };
+                       pcf8523: pcf8523@68 {
+                               compatible = "nxp,pcf8523";
+                               reg = <0x68>;
+                               status = "disable";
+                       };
+                       pcf8563: pcf8563@51 {
+                               compatible = "nxp,pcf8563";
+                               reg = <0x51>;
+                               status = "disable";
+                       };
+               };
+       };
+       __overrides__ {
+               ds1307 = <&ds1307>,"status";
+               ds3231 = <&ds3231>,"status";
+               mcp7941x = <&mcp7941x>,"status";
+               pcf2127 = <&pcf2127>,"status";
+               pcf8523 = <&pcf8523>,"status";
+               pcf8563 = <&pcf8563>,"status";
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts b/arch/arm/boot/dts/overlays/i2s-mmap-overlay.dts
new file mode 100644 (file)
index 0000000..a11160a
--- /dev/null
@@ -0,0 +1,13 @@
+/dts-v1/;
+/plugin/;
+
+/{
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&i2s>;
+               __overlay__ {
+                       brcm,enable-mmap;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts b/arch/arm/boot/dts/overlays/iqaudio-dac-overlay.dts
new file mode 100644 (file)
index 0000000..ea8173e
--- /dev/null
@@ -0,0 +1,39 @@
+// Definitions for IQaudIO DAC
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "iqaudio,iqaudio-dac";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+               };
+       };
+
+       fragment@1 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       pcm5122@4c {
+                               #sound-dai-cells = <0>;
+                               compatible = "ti,pcm5122";
+                               reg = <0x4c>;
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts b/arch/arm/boot/dts/overlays/iqaudio-dacplus-overlay.dts
new file mode 100644 (file)
index 0000000..735d8ab
--- /dev/null
@@ -0,0 +1,39 @@
+// Definitions for IQaudIO DAC+
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "iqaudio,iqaudio-dac";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+               };
+       };
+
+       fragment@1 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@2 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       pcm5122@4c {
+                               #sound-dai-cells = <0>;
+                               compatible = "ti,pcm5122";
+                               reg = <0x4c>;
+                               status = "okay";
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts b/arch/arm/boot/dts/overlays/lirc-rpi-overlay.dts
new file mode 100644 (file)
index 0000000..7d5d82b
--- /dev/null
@@ -0,0 +1,57 @@
+// Definitions for lirc-rpi module
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target-path = "/";
+               __overlay__ {
+                       lirc_rpi: lirc_rpi {
+                               compatible = "rpi,lirc-rpi";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&lirc_pins>;
+                               status = "okay";
+
+                               // Override autodetection of IR receiver circuit
+                               // (0 =&