mirror of
https://github.com/Fishwaldo/build.git
synced 2025-06-21 05:38:47 +00:00
Merge pull request #885 from helios-4/helios4
Helios4 - Improvement and cleanup
This commit is contained in:
commit
5fce9a3fcb
18 changed files with 741 additions and 222 deletions
|
@ -3279,7 +3279,7 @@ CONFIG_REGULATOR_GPIO=m
|
|||
# CONFIG_REGULATOR_MAX8973 is not set
|
||||
# CONFIG_REGULATOR_MT6311 is not set
|
||||
# CONFIG_REGULATOR_PFUZE100 is not set
|
||||
CONFIG_REGULATOR_PWM=m
|
||||
# CONFIG_REGULATOR_PWM is not set
|
||||
# CONFIG_REGULATOR_TPS51632 is not set
|
||||
# CONFIG_REGULATOR_TPS62360 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
|
@ -3377,14 +3377,14 @@ CONFIG_LCD_LMS501KF03=m
|
|||
CONFIG_LCD_HX8357=m
|
||||
CONFIG_BACKLIGHT_CLASS_DEVICE=m
|
||||
CONFIG_BACKLIGHT_GENERIC=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
# CONFIG_BACKLIGHT_PWM is not set
|
||||
CONFIG_BACKLIGHT_PM8941_WLED=m
|
||||
CONFIG_BACKLIGHT_ADP8860=m
|
||||
CONFIG_BACKLIGHT_ADP8870=m
|
||||
CONFIG_BACKLIGHT_88PM860X=m
|
||||
CONFIG_BACKLIGHT_LM3630A=m
|
||||
# CONFIG_BACKLIGHT_LM3630A is not set
|
||||
CONFIG_BACKLIGHT_LM3639=m
|
||||
CONFIG_BACKLIGHT_LP855X=m
|
||||
# CONFIG_BACKLIGHT_LP855X is not set
|
||||
CONFIG_BACKLIGHT_GPIO=m
|
||||
CONFIG_BACKLIGHT_LV5207LP=m
|
||||
CONFIG_BACKLIGHT_BD6107=m
|
||||
|
@ -3856,7 +3856,7 @@ CONFIG_LEDS_GPIO=m
|
|||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_PCA963X is not set
|
||||
# CONFIG_LEDS_DAC124S085 is not set
|
||||
CONFIG_LEDS_PWM=m
|
||||
# CONFIG_LEDS_PWM is not set
|
||||
CONFIG_LEDS_REGULATOR=m
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
# CONFIG_LEDS_LT3593 is not set
|
||||
|
@ -4228,7 +4228,7 @@ CONFIG_COMMON_CLK_SCPI=m
|
|||
# CONFIG_COMMON_CLK_SI570 is not set
|
||||
# CONFIG_COMMON_CLK_CDCE925 is not set
|
||||
# CONFIG_CLK_QORIQ is not set
|
||||
CONFIG_COMMON_CLK_PWM=m
|
||||
# CONFIG_COMMON_CLK_PWM is not set
|
||||
# CONFIG_COMMON_CLK_PXA is not set
|
||||
# CONFIG_COMMON_CLK_CDCE706 is not set
|
||||
CONFIG_MVEBU_CLK_COMMON=y
|
||||
|
@ -4539,8 +4539,8 @@ CONFIG_IIO_SYSFS_TRIGGER=m
|
|||
# CONFIG_VME_BUS is not set
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_SYSFS=y
|
||||
CONFIG_PWM_FSL_FTM=m
|
||||
CONFIG_PWM_PCA9685=m
|
||||
# CONFIG_PWM_FSL_FTM is not set
|
||||
# CONFIG_PWM_PCA9685 is not set
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARMADA_370_XP_IRQ=y
|
||||
|
|
|
@ -142,6 +142,7 @@ CONFIG_CPUSETS=y
|
|||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_CGROUP_PERF=y
|
||||
# CONFIG_CGROUP_DEBUG is not set
|
||||
CONFIG_SOCK_CGROUP_DATA=y
|
||||
# CONFIG_CHECKPOINT_RESTORE is not set
|
||||
CONFIG_NAMESPACES=y
|
||||
|
@ -175,6 +176,7 @@ CONFIG_SYSFS_SYSCALL=y
|
|||
# CONFIG_SYSCTL_SYSCALL is not set
|
||||
CONFIG_POSIX_TIMERS=y
|
||||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
|
||||
CONFIG_KALLSYMS_BASE_RELATIVE=y
|
||||
CONFIG_PRINTK=y
|
||||
|
@ -204,6 +206,7 @@ CONFIG_PERF_USE_VMALLOC=y
|
|||
# Kernel Performance Events And Counters
|
||||
#
|
||||
CONFIG_PERF_EVENTS=y
|
||||
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
|
||||
|
@ -516,6 +519,7 @@ CONFIG_PCI_SYSCALL=y
|
|||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCI_IOV is not set
|
||||
|
@ -615,6 +619,7 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
|||
# CONFIG_CLEANCACHE is not set
|
||||
CONFIG_FRONTSWAP=y
|
||||
CONFIG_CMA=y
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
CONFIG_CMA_AREAS=7
|
||||
CONFIG_ZSWAP=y
|
||||
|
@ -1231,6 +1236,11 @@ CONFIG_INET_DCCP_DIAG=m
|
|||
CONFIG_IP_DCCP_CCID3=y
|
||||
# CONFIG_IP_DCCP_CCID3_DEBUG is not set
|
||||
CONFIG_IP_DCCP_TFRC_LIB=y
|
||||
|
||||
#
|
||||
# DCCP Kernel Hacking
|
||||
#
|
||||
# CONFIG_IP_DCCP_DEBUG is not set
|
||||
CONFIG_IP_SCTP=m
|
||||
# CONFIG_SCTP_DBG_OBJCNT is not set
|
||||
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
|
||||
|
@ -1430,6 +1440,7 @@ CONFIG_BT_HS=y
|
|||
CONFIG_BT_LE=y
|
||||
CONFIG_BT_6LOWPAN=m
|
||||
CONFIG_BT_LEDS=y
|
||||
# CONFIG_BT_SELFTEST is not set
|
||||
# CONFIG_BT_DEBUGFS is not set
|
||||
|
||||
#
|
||||
|
@ -1543,6 +1554,9 @@ CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
|
|||
CONFIG_WANT_DEV_COREDUMP=y
|
||||
CONFIG_ALLOW_DEV_COREDUMP=y
|
||||
CONFIG_DEV_COREDUMP=y
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
# CONFIG_DEBUG_DEVRES is not set
|
||||
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
|
||||
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
# CONFIG_GENERIC_CPU_DEVICES is not set
|
||||
|
@ -1608,7 +1622,7 @@ CONFIG_MTD_BLOCK=y
|
|||
# RAM/ROM/Flash chip drivers
|
||||
#
|
||||
CONFIG_MTD_CFI=y
|
||||
# CONFIG_MTD_JEDECPROBE is not set
|
||||
CONFIG_MTD_JEDECPROBE=m
|
||||
CONFIG_MTD_GEN_PROBE=y
|
||||
# CONFIG_MTD_CFI_ADV_OPTIONS is not set
|
||||
CONFIG_MTD_MAP_BANK_WIDTH_1=y
|
||||
|
@ -1634,9 +1648,8 @@ CONFIG_MTD_CFI_UTIL=y
|
|||
#
|
||||
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
|
||||
# CONFIG_MTD_PHYSMAP is not set
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
|
||||
# CONFIG_MTD_PHYSMAP_OF_GEMINI is not set
|
||||
# CONFIG_MTD_PHYSMAP_OF is not set
|
||||
# CONFIG_MTD_IMPA7 is not set
|
||||
# CONFIG_MTD_INTEL_VR_NOR is not set
|
||||
# CONFIG_MTD_PLATRAM is not set
|
||||
|
||||
|
@ -1675,6 +1688,7 @@ CONFIG_OF=y
|
|||
# CONFIG_OF_UNITTEST is not set
|
||||
CONFIG_OF_FLATTREE=y
|
||||
CONFIG_OF_EARLY_FLATTREE=y
|
||||
CONFIG_OF_DYNAMIC=y
|
||||
CONFIG_OF_ADDRESS=y
|
||||
CONFIG_OF_ADDRESS_PCI=y
|
||||
CONFIG_OF_IRQ=y
|
||||
|
@ -1683,7 +1697,8 @@ CONFIG_OF_MDIO=y
|
|||
CONFIG_OF_PCI=y
|
||||
CONFIG_OF_PCI_IRQ=y
|
||||
CONFIG_OF_RESERVED_MEM=y
|
||||
# CONFIG_OF_OVERLAY is not set
|
||||
CONFIG_OF_RESOLVE=y
|
||||
CONFIG_OF_OVERLAY=y
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
# CONFIG_PARPORT is not set
|
||||
CONFIG_BLK_DEV=y
|
||||
|
@ -2568,12 +2583,20 @@ CONFIG_CONSOLE_TRANSLATIONS=y
|
|||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_VT_CONSOLE_SLEEP=y
|
||||
CONFIG_HW_CONSOLE=y
|
||||
# CONFIG_VT_HW_CONSOLE_BINDING is not set
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
CONFIG_LEGACY_PTY_COUNT=256
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
CONFIG_SERIAL_NONSTANDARD=y
|
||||
# CONFIG_ROCKETPORT is not set
|
||||
# CONFIG_CYCLADES is not set
|
||||
# CONFIG_MOXA_INTELLIO is not set
|
||||
# CONFIG_MOXA_SMARTIO is not set
|
||||
# CONFIG_SYNCLINKMP is not set
|
||||
# CONFIG_SYNCLINK_GT is not set
|
||||
# CONFIG_NOZOMI is not set
|
||||
# CONFIG_ISI is not set
|
||||
# CONFIG_N_HDLC is not set
|
||||
# CONFIG_N_GSM is not set
|
||||
# CONFIG_TRACE_SINK is not set
|
||||
CONFIG_DEVMEM=y
|
||||
|
@ -2592,8 +2615,12 @@ CONFIG_SERIAL_8250_PCI=y
|
|||
# CONFIG_SERIAL_8250_EXAR is not set
|
||||
CONFIG_SERIAL_8250_NR_UARTS=4
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
||||
# CONFIG_SERIAL_8250_EXTENDED is not set
|
||||
CONFIG_SERIAL_8250_ASPEED_VUART=m
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
# CONFIG_SERIAL_8250_ASPEED_VUART is not set
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DETECT_IRQ=y
|
||||
CONFIG_SERIAL_8250_RSA=y
|
||||
CONFIG_SERIAL_8250_FSL=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
# CONFIG_SERIAL_8250_EM is not set
|
||||
|
@ -2605,11 +2632,13 @@ CONFIG_SERIAL_OF_PLATFORM=y
|
|||
# Non-8250 serial port support
|
||||
#
|
||||
# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
|
||||
# CONFIG_SERIAL_KGDB_NMI is not set
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
# CONFIG_SERIAL_MAX310X is not set
|
||||
# CONFIG_SERIAL_UARTLITE is not set
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
CONFIG_CONSOLE_POLL=y
|
||||
# CONFIG_SERIAL_JSM is not set
|
||||
# CONFIG_SERIAL_SCCNXP is not set
|
||||
# CONFIG_SERIAL_SC16IS7XX is not set
|
||||
|
@ -2706,6 +2735,7 @@ CONFIG_I2C_MV64XXX=y
|
|||
# CONFIG_I2C_DEBUG_ALGO is not set
|
||||
# CONFIG_I2C_DEBUG_BUS is not set
|
||||
CONFIG_SPI=y
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
CONFIG_SPI_MASTER=y
|
||||
|
||||
#
|
||||
|
@ -2767,6 +2797,7 @@ CONFIG_PINCTRL=y
|
|||
#
|
||||
CONFIG_PINMUX=y
|
||||
CONFIG_PINCONF=y
|
||||
# CONFIG_DEBUG_PINCTRL is not set
|
||||
# CONFIG_PINCTRL_AMD is not set
|
||||
# CONFIG_PINCTRL_MCP23S08 is not set
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
|
@ -2782,7 +2813,9 @@ CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
|
|||
CONFIG_GPIOLIB=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
|
||||
#
|
||||
# Memory mapped GPIO drivers
|
||||
|
@ -2791,12 +2824,12 @@ CONFIG_GPIO_SYSFS=y
|
|||
# CONFIG_GPIO_ALTERA is not set
|
||||
# CONFIG_GPIO_DWAPB is not set
|
||||
# CONFIG_GPIO_FTGPIO010 is not set
|
||||
# CONFIG_GPIO_GENERIC_PLATFORM is not set
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
# CONFIG_GPIO_GRGPIO is not set
|
||||
# CONFIG_GPIO_MOCKUP is not set
|
||||
# CONFIG_GPIO_MPC8XXX is not set
|
||||
CONFIG_GPIO_MVEBU=y
|
||||
# CONFIG_GPIO_SYSCON is not set
|
||||
CONFIG_GPIO_SYSCON=y
|
||||
# CONFIG_GPIO_XILINX is not set
|
||||
# CONFIG_GPIO_ZEVIO is not set
|
||||
|
||||
|
@ -2877,7 +2910,7 @@ CONFIG_HWMON=y
|
|||
# CONFIG_SENSORS_GL520SM is not set
|
||||
# CONFIG_SENSORS_G760A is not set
|
||||
# CONFIG_SENSORS_G762 is not set
|
||||
CONFIG_SENSORS_GPIO_FAN=y
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
# CONFIG_SENSORS_HIH6130 is not set
|
||||
# CONFIG_SENSORS_IT87 is not set
|
||||
# CONFIG_SENSORS_JC42 is not set
|
||||
|
@ -2908,7 +2941,7 @@ CONFIG_SENSORS_MAX31790=m
|
|||
# CONFIG_SENSORS_LM63 is not set
|
||||
# CONFIG_SENSORS_LM70 is not set
|
||||
# CONFIG_SENSORS_LM73 is not set
|
||||
# CONFIG_SENSORS_LM75 is not set
|
||||
CONFIG_SENSORS_LM75=m
|
||||
# CONFIG_SENSORS_LM77 is not set
|
||||
# CONFIG_SENSORS_LM78 is not set
|
||||
# CONFIG_SENSORS_LM80 is not set
|
||||
|
@ -2930,6 +2963,7 @@ CONFIG_SENSORS_MAX31790=m
|
|||
# CONFIG_SENSORS_NCT7904 is not set
|
||||
# CONFIG_SENSORS_PCF8591 is not set
|
||||
# CONFIG_PMBUS is not set
|
||||
CONFIG_SENSORS_PWM_FAN=m
|
||||
# CONFIG_SENSORS_SHT15 is not set
|
||||
# CONFIG_SENSORS_SHT21 is not set
|
||||
# CONFIG_SENSORS_SHT3x is not set
|
||||
|
@ -2978,7 +3012,7 @@ CONFIG_THERMAL=y
|
|||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
# CONFIG_THERMAL_WRITABLE_TRIPS is not set
|
||||
CONFIG_THERMAL_WRITABLE_TRIPS=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
|
||||
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
|
||||
|
@ -3000,7 +3034,7 @@ CONFIG_ARMADA_THERMAL=y
|
|||
#
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
# CONFIG_WATCHDOG_NOWAYOUT is not set
|
||||
CONFIG_WATCHDOG_NOWAYOUT=y
|
||||
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
|
||||
# CONFIG_WATCHDOG_SYSFS is not set
|
||||
|
||||
|
@ -3181,7 +3215,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
|||
# CONFIG_REGULATOR_DA9210 is not set
|
||||
# CONFIG_REGULATOR_DA9211 is not set
|
||||
# CONFIG_REGULATOR_FAN53555 is not set
|
||||
# CONFIG_REGULATOR_GPIO is not set
|
||||
CONFIG_REGULATOR_GPIO=m
|
||||
# CONFIG_REGULATOR_ISL9305 is not set
|
||||
# CONFIG_REGULATOR_ISL6271A is not set
|
||||
# CONFIG_REGULATOR_LP3971 is not set
|
||||
|
@ -3200,6 +3234,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
|||
# CONFIG_REGULATOR_PV88060 is not set
|
||||
# CONFIG_REGULATOR_PV88080 is not set
|
||||
# CONFIG_REGULATOR_PV88090 is not set
|
||||
# CONFIG_REGULATOR_PWM is not set
|
||||
# CONFIG_REGULATOR_TPS51632 is not set
|
||||
# CONFIG_REGULATOR_TPS62360 is not set
|
||||
# CONFIG_REGULATOR_TPS65023 is not set
|
||||
|
@ -3391,7 +3426,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
|||
# Miscellaneous USB options
|
||||
#
|
||||
CONFIG_USB_DEFAULT_PERSIST=y
|
||||
# CONFIG_USB_DYNAMIC_MINORS is not set
|
||||
CONFIG_USB_DYNAMIC_MINORS=y
|
||||
# CONFIG_USB_OTG is not set
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
CONFIG_USB_LEDS_TRIGGER_USBPORT=y
|
||||
|
@ -3452,7 +3487,7 @@ CONFIG_USB_STORAGE=y
|
|||
# CONFIG_USB_STORAGE_KARMA is not set
|
||||
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
|
||||
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
|
||||
# CONFIG_USB_UAS is not set
|
||||
CONFIG_USB_UAS=m
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
|
@ -3565,9 +3600,9 @@ CONFIG_USB_ATM=m
|
|||
#
|
||||
# USB Physical Layer drivers
|
||||
#
|
||||
# CONFIG_USB_PHY is not set
|
||||
CONFIG_USB_PHY=y
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
# CONFIG_USB_GPIO_VBUS is not set
|
||||
CONFIG_USB_GPIO_VBUS=y
|
||||
# CONFIG_USB_ISP1301 is not set
|
||||
# CONFIG_USB_ULPI is not set
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
@ -3628,7 +3663,7 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
|
|||
# CONFIG_LEDS_LM3530 is not set
|
||||
# CONFIG_LEDS_LM3642 is not set
|
||||
# CONFIG_LEDS_PCA9532 is not set
|
||||
# CONFIG_LEDS_GPIO is not set
|
||||
CONFIG_LEDS_GPIO=y
|
||||
# CONFIG_LEDS_LP3944 is not set
|
||||
# CONFIG_LEDS_LP3952 is not set
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
|
@ -3639,6 +3674,7 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
|
|||
# CONFIG_LEDS_PCA955X is not set
|
||||
# CONFIG_LEDS_PCA963X is not set
|
||||
# CONFIG_LEDS_DAC124S085 is not set
|
||||
# CONFIG_LEDS_PWM is not set
|
||||
# CONFIG_LEDS_REGULATOR is not set
|
||||
# CONFIG_LEDS_BD2802 is not set
|
||||
# CONFIG_LEDS_LT3593 is not set
|
||||
|
@ -3661,21 +3697,21 @@ CONFIG_LEDS_USER=m
|
|||
#
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
|
||||
CONFIG_LEDS_TRIGGER_ONESHOT=m
|
||||
CONFIG_LEDS_TRIGGER_DISK=y
|
||||
# CONFIG_LEDS_TRIGGER_MTD is not set
|
||||
CONFIG_LEDS_TRIGGER_MTD=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
# CONFIG_LEDS_TRIGGER_CPU is not set
|
||||
# CONFIG_LEDS_TRIGGER_GPIO is not set
|
||||
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
|
||||
CONFIG_LEDS_TRIGGER_CPU=y
|
||||
CONFIG_LEDS_TRIGGER_GPIO=m
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
|
||||
|
||||
#
|
||||
# iptables trigger is under Netfilter config (LED target)
|
||||
#
|
||||
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
|
||||
# CONFIG_LEDS_TRIGGER_CAMERA is not set
|
||||
# CONFIG_LEDS_TRIGGER_PANIC is not set
|
||||
CONFIG_LEDS_TRIGGER_TRANSIENT=m
|
||||
CONFIG_LEDS_TRIGGER_CAMERA=m
|
||||
CONFIG_LEDS_TRIGGER_PANIC=y
|
||||
# CONFIG_ACCESSIBILITY is not set
|
||||
# CONFIG_INFINIBAND is not set
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
|
@ -3899,6 +3935,7 @@ CONFIG_COMMON_CLK=y
|
|||
# CONFIG_COMMON_CLK_CS2000_CP is not set
|
||||
CONFIG_CLK_QORIQ=y
|
||||
# CONFIG_COMMON_CLK_NXP is not set
|
||||
# CONFIG_COMMON_CLK_PWM is not set
|
||||
# CONFIG_COMMON_CLK_PXA is not set
|
||||
# CONFIG_COMMON_CLK_PIC32 is not set
|
||||
# CONFIG_COMMON_CLK_VC5 is not set
|
||||
|
@ -3964,13 +4001,25 @@ CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
|
|||
# CONFIG_SUNXI_SRAM is not set
|
||||
# CONFIG_SOC_TI is not set
|
||||
# CONFIG_PM_DEVFREQ is not set
|
||||
# CONFIG_EXTCON is not set
|
||||
CONFIG_EXTCON=y
|
||||
|
||||
#
|
||||
# Extcon Device Drivers
|
||||
#
|
||||
# CONFIG_EXTCON_GPIO is not set
|
||||
# CONFIG_EXTCON_MAX3355 is not set
|
||||
# CONFIG_EXTCON_RT8973A is not set
|
||||
# CONFIG_EXTCON_SM5502 is not set
|
||||
CONFIG_EXTCON_USB_GPIO=m
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_MVEBU_DEVBUS=y
|
||||
# CONFIG_IIO is not set
|
||||
# CONFIG_NTB is not set
|
||||
# CONFIG_VME_BUS is not set
|
||||
# CONFIG_PWM is not set
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_SYSFS=y
|
||||
# CONFIG_PWM_FSL_FTM is not set
|
||||
# CONFIG_PWM_PCA9685 is not set
|
||||
CONFIG_IRQCHIP=y
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_ARM_GIC_MAX_NR=1
|
||||
|
@ -4234,6 +4283,7 @@ CONFIG_NFSD_V4=y
|
|||
# CONFIG_NFSD_SCSILAYOUT is not set
|
||||
# CONFIG_NFSD_FLEXFILELAYOUT is not set
|
||||
# CONFIG_NFSD_V4_SECURITY_LABEL is not set
|
||||
# CONFIG_NFSD_FAULT_INJECTION is not set
|
||||
CONFIG_GRACE_PERIOD=y
|
||||
CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
|
@ -4329,64 +4379,113 @@ CONFIG_NLS_UTF8=y
|
|||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=2
|
||||
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
|
||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
|
||||
#
|
||||
# Compile-time checks and compiler options
|
||||
#
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
CONFIG_ENABLE_WARN_DEPRECATED=y
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_READABLE_ASM is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
# CONFIG_PAGE_OWNER is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
# CONFIG_DEBUG_SECTION_MISMATCH is not set
|
||||
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_DEBUG_KERNEL is not set
|
||||
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
|
||||
CONFIG_MAGIC_SYSRQ_SERIAL=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
|
||||
#
|
||||
# Memory Debugging
|
||||
#
|
||||
CONFIG_PAGE_EXTENSION=y
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
# CONFIG_DEBUG_RODATA_TEST is not set
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
CONFIG_HAVE_DEBUG_KMEMLEAK=y
|
||||
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
|
||||
# CONFIG_DEBUG_VIRTUAL is not set
|
||||
CONFIG_DEBUG_MEMORY_INIT=y
|
||||
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||
# CONFIG_DEBUG_HIGHMEM is not set
|
||||
# CONFIG_DEBUG_SHIRQ is not set
|
||||
|
||||
#
|
||||
# Debug Lockups and Hangs
|
||||
#
|
||||
# CONFIG_SOFTLOCKUP_DETECTOR is not set
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_WQ_WATCHDOG is not set
|
||||
# CONFIG_PANIC_ON_OOPS is not set
|
||||
CONFIG_PANIC_ON_OOPS_VALUE=0
|
||||
CONFIG_PANIC_TIMEOUT=0
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
CONFIG_SCHED_INFO=y
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_SCHED_STACK_END_CHECK is not set
|
||||
# CONFIG_DEBUG_TIMEKEEPING is not set
|
||||
|
||||
#
|
||||
# Lock Debugging (spinlocks, mutexes, etc...)
|
||||
#
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_DEBUG_SPINLOCK is not set
|
||||
# CONFIG_DEBUG_MUTEXES is not set
|
||||
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
|
||||
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||
# CONFIG_PROVE_LOCKING is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
|
||||
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
|
||||
# CONFIG_LOCK_TORTURE_TEST is not set
|
||||
# CONFIG_WW_MUTEX_SELFTEST is not set
|
||||
# CONFIG_STACKTRACE is not set
|
||||
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
|
||||
# CONFIG_DEBUG_KOBJECT is not set
|
||||
CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_DEBUG_LIST is not set
|
||||
# CONFIG_DEBUG_PI_LIST is not set
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||
|
||||
#
|
||||
# RCU Debugging
|
||||
#
|
||||
# CONFIG_PROVE_RCU is not set
|
||||
# CONFIG_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_PERF_TEST is not set
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
CONFIG_RCU_CPU_STALL_TIMEOUT=21
|
||||
CONFIG_RCU_TRACE=y
|
||||
# CONFIG_RCU_EQS_DEBUG is not set
|
||||
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
|
||||
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
|
||||
CONFIG_HAVE_C_RECORDMCOUNT=y
|
||||
CONFIG_TRACE_CLOCK=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_DMA_API_DEBUG is not set
|
||||
|
@ -4397,6 +4496,10 @@ CONFIG_TRACING_SUPPORT=y
|
|||
# CONFIG_LKDTM is not set
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
# CONFIG_TEST_SORT is not set
|
||||
# CONFIG_BACKTRACE_SELF_TEST is not set
|
||||
# CONFIG_RBTREE_TEST is not set
|
||||
# CONFIG_INTERVAL_TREE_TEST is not set
|
||||
# CONFIG_PERCPU_TEST is not set
|
||||
# CONFIG_ATOMIC64_SELFTEST is not set
|
||||
# CONFIG_ASYNC_RAID6_TEST is not set
|
||||
CONFIG_TEST_HEXDUMP=m
|
||||
|
@ -4423,11 +4526,28 @@ CONFIG_HAVE_ARCH_KGDB=y
|
|||
# CONFIG_UBSAN is not set
|
||||
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
|
||||
# CONFIG_STRICT_DEVMEM is not set
|
||||
# CONFIG_ARM_PTDUMP is not set
|
||||
CONFIG_ARM_UNWIND=y
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
|
||||
# CONFIG_DEBUG_UART_8250 is not set
|
||||
CONFIG_DEBUG_LL=y
|
||||
# CONFIG_DEBUG_MVEBU_UART0 is not set
|
||||
CONFIG_DEBUG_MVEBU_UART0_ALTERNATE=y
|
||||
# CONFIG_DEBUG_MVEBU_UART1_ALTERNATE is not set
|
||||
# CONFIG_DEBUG_ICEDCC is not set
|
||||
# CONFIG_DEBUG_SEMIHOSTING is not set
|
||||
# CONFIG_DEBUG_LL_UART_8250 is not set
|
||||
# CONFIG_DEBUG_LL_UART_PL01X is not set
|
||||
CONFIG_DEBUG_LL_INCLUDE="debug/8250.S"
|
||||
CONFIG_DEBUG_UART_8250=y
|
||||
CONFIG_DEBUG_UART_PHYS=0xf1012000
|
||||
CONFIG_DEBUG_UART_VIRT=0xfec12000
|
||||
CONFIG_DEBUG_UART_8250_SHIFT=2
|
||||
# CONFIG_DEBUG_UART_8250_WORD is not set
|
||||
# CONFIG_DEBUG_UART_8250_PALMCHIP is not set
|
||||
# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set
|
||||
CONFIG_DEBUG_UNCOMPRESS=y
|
||||
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_CORESIGHT is not set
|
||||
|
||||
|
|
|
@ -19,14 +19,14 @@ esac
|
|||
family_tweaks_s()
|
||||
{
|
||||
chroot $SDCARD /bin/bash -c "apt-get -y -qq install fancontrol >/dev/null 2>&1"
|
||||
cp -R $SRC/packages/bsp/helios4/90-helios4-hwmon.rules $SDCARD/etc/udev/rules.d/
|
||||
case $BRANCH in
|
||||
default)
|
||||
cp -R $SRC/packages/bsp/helios4/fancontrol_gpio-fan.conf $SDCARD/etc/fancontrol
|
||||
cp -R $SRC/packages/bsp/helios4/fancontrol_pwm-fan-mvebu-default.conf $SDCARD/etc/fancontrol
|
||||
;;
|
||||
|
||||
next)
|
||||
cp -R $SRC/packages/bsp/helios4/fancontrol_pwm-fan.conf $SDCARD/etc/fancontrol
|
||||
patch $SDCARD/usr/sbin/fancontrol < $SRC/packages/bsp/helios4/fancontrol.patch
|
||||
cp -R $SRC/packages/bsp/helios4/fancontrol_pwm-fan-mvebu-next.conf $SDCARD/etc/fancontrol
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
24
packages/bsp/helios4/90-helios4-hwmon.rules
Executable file
24
packages/bsp/helios4/90-helios4-hwmon.rules
Executable file
|
@ -0,0 +1,24 @@
|
|||
# Helios4 persistent hwmon
|
||||
|
||||
ACTION=="remove", GOTO="helios4_hwmon_end"
|
||||
|
||||
#
|
||||
KERNELS=="j10-pwm", SUBSYSTEMS=="platform", ENV{_HELIOS4_FAN_}="j10", ENV{_IS_HELIOS4_FAN_}="1", ENV{IS_HELIOS4_HWMON}="1"
|
||||
KERNELS=="j17-pwm", SUBSYSTEMS=="platform", ENV{_HELIOS4_FAN_}="j17", ENV{_IS_HELIOS4_FAN_}="1", ENV{IS_HELIOS4_HWMON}="1"
|
||||
KERNELS=="0-004c", SUBSYSTEMS=="i2c", DRIVERS=="lm75", ENV{IS_HELIOS4_HWMON}="1"
|
||||
|
||||
SUBSYSTEM!="hwmon", GOTO="helios4_hwmon_end"
|
||||
|
||||
ENV{HWMON_PATH}="/sys%p"
|
||||
#
|
||||
ATTR{name}=="f1072004mdiomii00", ENV{IS_HELIOS4_HWMON}="1", ENV{HELIOS4_SYMLINK}="/dev/thermal-eth"
|
||||
ATTR{name}=="armada_thermal", ENV{IS_HELIOS4_HWMON}="1", ENV{HELIOS4_SYMLINK}="/dev/thermal-cpu"
|
||||
#
|
||||
ENV{IS_HELIOS4_HWMON}=="1", ATTR{name}=="lm75", ENV{HELIOS4_SYMLINK}="/dev/thermal-board"
|
||||
ENV{_IS_HELIOS4_FAN_}=="1", ENV{HELIOS4_SYMLINK}="/dev/fan-$env{_HELIOS4_FAN_}"
|
||||
|
||||
#
|
||||
ENV{IS_HELIOS4_HWMON}=="1", RUN+="/bin/ln -sf $env{HWMON_PATH} $env{HELIOS4_SYMLINK}"
|
||||
|
||||
LABEL="helios4_hwmon_end"
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
@@ -157,9 +157,9 @@
|
||||
|
||||
function DevicePath()
|
||||
{
|
||||
- if [ -h "$1/device" ]
|
||||
+ if [ -h "$1" ]
|
||||
then
|
||||
- readlink -f "$1/device" | sed -e 's/^\/sys\///'
|
||||
+ readlink -f "$1" | sed -e 's/^\/sys\///;s/\/hwmon\/.*//'
|
||||
fi
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# Helios4 GPIO Fan Control Configuration
|
||||
# This is a temporary configuration while relying on gpio-fan driver.
|
||||
# Only low or full speed is supported.
|
||||
# Temp source : lm75 sensor
|
||||
INTERVAL=10
|
||||
DEVPATH=hwmon0=devices/platform/j10-pwm hwmon1=devices/platform/j17-pwm hwmon2=devices/platform/soc/soc:internal-regs/f1011000.i2c/i2c-0/0-004c
|
||||
DEVNAME=hwmon0=gpio_fan hwmon1=gpio_fan hwmon2=lm75
|
||||
FCTEMPS=hwmon0/pwm1=hwmon2/temp1_input hwmon1/pwm1=hwmon2/temp1_input
|
||||
MINTEMP=hwmon0/pwm1=45 hwmon1/pwm1=45
|
||||
MAXTEMP=hwmon0/pwm1=65 hwmon1/pwm1=65
|
||||
MINSTART=hwmon0/pwm1=1 hwmon1/pwm1=1
|
||||
MINSTOP=hwmon0/pwm1=0 hwmon1/pwm1=0
|
11
packages/bsp/helios4/fancontrol_pwm-fan-mvebu-default.conf
Normal file
11
packages/bsp/helios4/fancontrol_pwm-fan-mvebu-default.conf
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Helios4 PWM Fan Control Configuration
|
||||
# Temp source : /dev/thermal-board
|
||||
INTERVAL=10
|
||||
FCTEMPS=/dev/fan-j10/pwm1=/dev/thermal-board/temp1_input /dev/fan-j17/pwm1=/dev/thermal-board/temp1_input
|
||||
MINTEMP=/dev/fan-j10/pwm1=45 /dev/fan-j17/pwm1=45
|
||||
MAXTEMP=/dev/fan-j10/pwm1=70 /dev/fan-j17/pwm1=70
|
||||
MINSTART=/dev/fan-j10/pwm1=50 /dev/fan-j17/pwm1=50
|
||||
MINSTOP=/dev/fan-j10/pwm1=50 /dev/fan-j17/pwm1=50
|
||||
MINPWM=/dev/fan-j10/pwm1=50 /dev/fan-j17/pwm1=50
|
||||
|
||||
|
10
packages/bsp/helios4/fancontrol_pwm-fan-mvebu-next.conf
Normal file
10
packages/bsp/helios4/fancontrol_pwm-fan-mvebu-next.conf
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Helios4 PWM Fan Control Configuration
|
||||
# Temp source : /dev/thermal-cpu
|
||||
INTERVAL=10
|
||||
FCTEMPS=/dev/fan-j10/pwm1=/dev/thermal-cpu/temp1_input /dev/fan-j17/pwm1=/dev/thermal-cpu/temp1_input
|
||||
MINTEMP=/dev/fan-j10/pwm1=55 /dev/fan-j17/pwm1=55
|
||||
MAXTEMP=/dev/fan-j10/pwm1=95 /dev/fan-j17/pwm1=95
|
||||
MINSTART=/dev/fan-j10/pwm1=50 /dev/fan-j17/pwm1=50
|
||||
MINSTOP=/dev/fan-j10/pwm1=50 /dev/fan-j17/pwm1=50
|
||||
MINPWM=/dev/fan-j10/pwm1=50 /dev/fan-j17/pwm1=50
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# Helios4 PWM Fan Control Configuration
|
||||
# Temp source : armada_thermal sensor
|
||||
INTERVAL=10
|
||||
DEVPATH=hwmon1=devices/virtual hwmon2=devices/platform/j10-pwm hwmon3=devices/platform/j17-pwm hwmon4=devices/platform/soc/soc:internal-regs/f1011000.i2c/i2c-0/0-004c
|
||||
DEVNAME=hwmon1=armada_thermal hwmon2=pwmfan hwmon3=pwmfan hwmon4=lm75
|
||||
FCTEMPS=hwmon2/pwm1=hwmon1/temp1_input hwmon3/pwm1=hwmon1/temp1_input
|
||||
MINTEMP=hwmon2/pwm1=55 hwmon3/pwm1=55
|
||||
MAXTEMP=hwmon2/pwm1=95 hwmon3/pwm1=95
|
||||
MINSTART=hwmon2/pwm1=100 hwmon3/pwm1=100
|
||||
MINSTOP=hwmon2/pwm1=50 hwmon3/pwm1=50
|
||||
|
|
@ -0,0 +1,523 @@
|
|||
arch/arm/boot/dts/armada-38x.dtsi | 16 +-
|
||||
drivers/gpio/gpio-mvebu.c | 369 +++++++++++++++++++++++++++--
|
||||
2 files changed, 367 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
|
||||
index e4e1546..5894e45 100644
|
||||
--- a/arch/arm/boot/dts/armada-38x.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-38x.dtsi
|
||||
@@ -339,31 +339,39 @@
|
||||
};
|
||||
|
||||
gpio0: gpio@18100 {
|
||||
- compatible = "marvell,orion-gpio";
|
||||
- reg = <0x18100 0x40>;
|
||||
+ compatible = "marvell,armada-370-gpio",
|
||||
+ "marvell,orion-gpio";
|
||||
+ reg = <0x18100 0x40>, <0x181c0 0x08>;
|
||||
+ reg-names = "gpio", "pwm";
|
||||
ngpios = <32>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
+ #pwm-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&coreclk 0>;
|
||||
};
|
||||
|
||||
gpio1: gpio@18140 {
|
||||
- compatible = "marvell,orion-gpio";
|
||||
- reg = <0x18140 0x40>;
|
||||
+ compatible = "marvell,armada-370-gpio",
|
||||
+ "marvell,orion-gpio";
|
||||
+ reg = <0x18140 0x40>, <0x181c8 0x08>;
|
||||
+ reg-names = "gpio", "pwm";
|
||||
ngpios = <28>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
+ #pwm-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&coreclk 0>;
|
||||
};
|
||||
|
||||
system-controller@18200 {
|
||||
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
|
||||
index ffea532..9fe65f7 100644
|
||||
--- a/drivers/gpio/gpio-mvebu.c
|
||||
+++ b/drivers/gpio/gpio-mvebu.c
|
||||
@@ -42,29 +42,43 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_device.h>
|
||||
+#include <linux/pwm.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/pinctrl/consumer.h>
|
||||
#include <linux/irqchip/chained_irq.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
||||
+#include "gpiolib.h"
|
||||
|
||||
/*
|
||||
* GPIO unit register offsets.
|
||||
*/
|
||||
-#define GPIO_OUT_OFF 0x0000
|
||||
-#define GPIO_IO_CONF_OFF 0x0004
|
||||
-#define GPIO_BLINK_EN_OFF 0x0008
|
||||
-#define GPIO_IN_POL_OFF 0x000c
|
||||
-#define GPIO_DATA_IN_OFF 0x0010
|
||||
-#define GPIO_EDGE_CAUSE_OFF 0x0014
|
||||
-#define GPIO_EDGE_MASK_OFF 0x0018
|
||||
-#define GPIO_LEVEL_MASK_OFF 0x001c
|
||||
+#define GPIO_OUT_OFF 0x0000
|
||||
+#define GPIO_IO_CONF_OFF 0x0004
|
||||
+#define GPIO_BLINK_EN_OFF 0x0008
|
||||
+#define GPIO_IN_POL_OFF 0x000c
|
||||
+#define GPIO_DATA_IN_OFF 0x0010
|
||||
+#define GPIO_EDGE_CAUSE_OFF 0x0014
|
||||
+#define GPIO_EDGE_MASK_OFF 0x0018
|
||||
+#define GPIO_LEVEL_MASK_OFF 0x001c
|
||||
+#define GPIO_BLINK_CNT_SELECT_OFF 0x0020
|
||||
+
|
||||
+/*
|
||||
+ * PWM register offsets.
|
||||
+ */
|
||||
+#define PWM_BLINK_ON_DURATION_OFF 0x0
|
||||
+#define PWM_BLINK_OFF_DURATION_OFF 0x4
|
||||
+
|
||||
|
||||
/* The MV78200 has per-CPU registers for edge mask and level mask */
|
||||
#define GPIO_EDGE_MASK_MV78200_OFF(cpu) ((cpu) ? 0x30 : 0x18)
|
||||
#define GPIO_LEVEL_MASK_MV78200_OFF(cpu) ((cpu) ? 0x34 : 0x1C)
|
||||
|
||||
-/* The Armada XP has per-CPU registers for interrupt cause, interrupt
|
||||
+/*
|
||||
+ * The Armada XP has per-CPU registers for interrupt cause, interrupt
|
||||
* mask and interrupt level mask. Those are relative to the
|
||||
- * percpu_membase. */
|
||||
+ * percpu_membase.
|
||||
+ */
|
||||
#define GPIO_EDGE_CAUSE_ARMADAXP_OFF(cpu) ((cpu) * 0x4)
|
||||
#define GPIO_EDGE_MASK_ARMADAXP_OFF(cpu) (0x10 + (cpu) * 0x4)
|
||||
#define GPIO_LEVEL_MASK_ARMADAXP_OFF(cpu) (0x20 + (cpu) * 0x4)
|
||||
@@ -75,6 +89,41 @@
|
||||
|
||||
#define MVEBU_MAX_GPIO_PER_BANK 32
|
||||
|
||||
+enum mvebu_pwm_ctrl {
|
||||
+ MVEBU_PWM_CTRL_SET_A = 0,
|
||||
+ MVEBU_PWM_CTRL_SET_B,
|
||||
+ MVEBU_PWM_CTRL_MAX
|
||||
+};
|
||||
+
|
||||
+struct mvebu_pwmchip {
|
||||
+ void __iomem *membase;
|
||||
+ unsigned long clk_rate;
|
||||
+ spinlock_t lock;
|
||||
+ bool in_use;
|
||||
+
|
||||
+ /* Used to preserve GPIO/PWM registers across suspend/resume */
|
||||
+ u32 blink_on_duration;
|
||||
+ u32 blink_off_duration;
|
||||
+};
|
||||
+
|
||||
+struct mvebu_pwm_chip_drv {
|
||||
+ enum mvebu_pwm_ctrl ctrl;
|
||||
+ struct gpio_desc *gpiod;
|
||||
+ bool master;
|
||||
+};
|
||||
+
|
||||
+struct mvebu_pwm {
|
||||
+ struct pwm_chip chip;
|
||||
+ struct mvebu_gpio_chip *mvchip;
|
||||
+ struct mvebu_pwmchip controller;
|
||||
+ enum mvebu_pwm_ctrl default_counter;
|
||||
+
|
||||
+ /* Used to preserve GPIO/PWM registers across suspend/resume */
|
||||
+ u32 blink_select;
|
||||
+};
|
||||
+
|
||||
+static struct mvebu_pwmchip *mvebu_pwm_list[MVEBU_PWM_CTRL_MAX];
|
||||
+
|
||||
struct mvebu_gpio_chip {
|
||||
struct gpio_chip chip;
|
||||
spinlock_t lock;
|
||||
@@ -84,6 +133,10 @@ struct mvebu_gpio_chip {
|
||||
struct irq_domain *domain;
|
||||
int soc_variant;
|
||||
|
||||
+ /* Used for PWM support */
|
||||
+ struct clk *clk;
|
||||
+ struct mvebu_pwm *mvpwm;
|
||||
+
|
||||
/* Used to preserve GPIO registers across suspend/resume */
|
||||
u32 out_reg;
|
||||
u32 io_conf_reg;
|
||||
@@ -102,6 +155,11 @@ static inline void __iomem *mvebu_gpioreg_out(struct mvebu_gpio_chip *mvchip)
|
||||
return mvchip->membase + GPIO_OUT_OFF;
|
||||
}
|
||||
|
||||
+static void __iomem *mvebu_gpioreg_blink_select(struct mvebu_gpio_chip *mvchip)
|
||||
+{
|
||||
+ return mvchip->membase + GPIO_BLINK_CNT_SELECT_OFF;
|
||||
+}
|
||||
+
|
||||
static inline void __iomem *mvebu_gpioreg_blink(struct mvebu_gpio_chip *mvchip)
|
||||
{
|
||||
return mvchip->membase + GPIO_BLINK_EN_OFF;
|
||||
@@ -182,6 +240,20 @@ static void __iomem *mvebu_gpioreg_level_mask(struct mvebu_gpio_chip *mvchip)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Functions returning addresses of individual registers for a given
|
||||
+ * PWM controller.
|
||||
+ */
|
||||
+static void __iomem *mvebu_pwmreg_blink_on_duration(struct mvebu_pwmchip *mvpwm)
|
||||
+{
|
||||
+ return mvpwm->membase + PWM_BLINK_ON_DURATION_OFF;
|
||||
+}
|
||||
+
|
||||
+static void __iomem *mvebu_pwmreg_blink_off_duration(struct mvebu_pwmchip *mvpwm)
|
||||
+{
|
||||
+ return mvpwm->membase + PWM_BLINK_OFF_DURATION_OFF;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Functions implementing the gpio_chip methods
|
||||
*/
|
||||
|
||||
@@ -489,6 +561,262 @@ static void mvebu_gpio_irq_handler(struct irq_desc *desc)
|
||||
chained_irq_exit(chip, desc);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Functions implementing the pwm_chip methods
|
||||
+ */
|
||||
+static struct mvebu_pwm *to_mvebu_pwm(struct pwm_chip *chip)
|
||||
+{
|
||||
+ return container_of(chip, struct mvebu_pwm, chip);
|
||||
+}
|
||||
+
|
||||
+static int mvebu_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
+{
|
||||
+ struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
|
||||
+ struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
|
||||
+ struct gpio_desc *desc;
|
||||
+ enum mvebu_pwm_ctrl id;
|
||||
+ int ret = 0;
|
||||
+ struct mvebu_pwm_chip_drv *chip_data;
|
||||
+ u32 u;
|
||||
+
|
||||
+ spin_lock(&mvpwm->controller.lock);
|
||||
+
|
||||
+ mvchip->blink_en_reg = readl_relaxed(mvebu_gpioreg_blink(mvchip));
|
||||
+ if (pwm->chip_data || (mvchip->blink_en_reg & BIT(pwm->hwpwm)))
|
||||
+ return -EBUSY;
|
||||
+
|
||||
+ desc = gpio_to_desc(mvchip->chip.base + pwm->hwpwm);
|
||||
+ if (!desc) {
|
||||
+ ret = -ENODEV;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ ret = gpiod_request(desc, "mvebu-pwm");
|
||||
+ if (ret)
|
||||
+ goto out;
|
||||
+
|
||||
+ ret = gpiod_direction_output(desc, 0);
|
||||
+ if (ret) {
|
||||
+ gpiod_free(desc);
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ chip_data = kzalloc(sizeof(struct mvebu_pwm_chip_drv), GFP_KERNEL);
|
||||
+ if (!chip_data) {
|
||||
+ gpiod_free(desc);
|
||||
+ ret = -ENOMEM;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ for (id = MVEBU_PWM_CTRL_SET_A;id < MVEBU_PWM_CTRL_MAX; id++) {
|
||||
+ if (!mvebu_pwm_list[id]->in_use) {
|
||||
+ chip_data->ctrl = id;
|
||||
+ chip_data->master = true;
|
||||
+ mvebu_pwm_list[id]->in_use = true;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!chip_data->master)
|
||||
+ chip_data->ctrl = mvpwm->default_counter;
|
||||
+
|
||||
+ u = readl_relaxed(mvebu_gpioreg_blink_select(mvchip));
|
||||
+ if (id)
|
||||
+ u |= (1 << pwm->hwpwm);
|
||||
+ else
|
||||
+ u &= ~(1 << pwm->hwpwm);
|
||||
+ writel_relaxed(u, mvebu_gpioreg_blink_select(mvchip));
|
||||
+
|
||||
+ chip_data->gpiod = desc;
|
||||
+ pwm->chip_data = chip_data;
|
||||
+ mvpwm->blink_select = u;
|
||||
+out:
|
||||
+ spin_unlock(&mvpwm->controller.lock);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static void mvebu_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
+{
|
||||
+ struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
|
||||
+ struct mvebu_pwm_chip_drv *chip_data = (struct mvebu_pwm_chip_drv*) pwm->chip_data;
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ spin_lock_irqsave(&mvpwm->controller.lock, flags);
|
||||
+ if (chip_data->master)
|
||||
+ mvebu_pwm_list[chip_data->ctrl]->in_use = false;
|
||||
+
|
||||
+ gpiod_free(chip_data->gpiod);
|
||||
+ kfree(chip_data);
|
||||
+ pwm->chip_data = NULL;
|
||||
+ spin_unlock_irqrestore(&mvpwm->controller.lock, flags);
|
||||
+}
|
||||
+
|
||||
+static int mvebu_pwm_config(struct pwm_chip *chip, struct pwm_device *pwmd,
|
||||
+ int duty_ns, int period_ns)
|
||||
+{
|
||||
+ struct mvebu_pwm_chip_drv *chip_data = (struct mvebu_pwm_chip_drv*) pwmd->chip_data;
|
||||
+ struct mvebu_pwmchip *controller = mvebu_pwm_list[chip_data->ctrl];
|
||||
+ unsigned int on, off;
|
||||
+ unsigned long long val;
|
||||
+ unsigned long flags;
|
||||
+
|
||||
+ val = (unsigned long long) controller->clk_rate * duty_ns;
|
||||
+ do_div(val, NSEC_PER_SEC);
|
||||
+ if (val > UINT_MAX)
|
||||
+ return -EINVAL;
|
||||
+ if (val)
|
||||
+ on = val;
|
||||
+ else
|
||||
+ on = 1;
|
||||
+
|
||||
+ val = (unsigned long long) controller->clk_rate * (period_ns - duty_ns);
|
||||
+ do_div(val, NSEC_PER_SEC);
|
||||
+ if (val > UINT_MAX)
|
||||
+ return -EINVAL;
|
||||
+ if (val)
|
||||
+ off = val;
|
||||
+ else
|
||||
+ off = 1;
|
||||
+
|
||||
+ spin_lock_irqsave(&controller->lock, flags);
|
||||
+ writel_relaxed(on, mvebu_pwmreg_blink_on_duration(controller));
|
||||
+ writel_relaxed(off, mvebu_pwmreg_blink_off_duration(controller));
|
||||
+ spin_unlock_irqrestore(&controller->lock, flags);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int mvebu_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
+{
|
||||
+ struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
|
||||
+ struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
|
||||
+
|
||||
+ mvebu_gpio_blink(&mvchip->chip, pwm->hwpwm, 1);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void mvebu_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
+{
|
||||
+ struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
|
||||
+ struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
|
||||
+
|
||||
+ mvebu_gpio_blink(&mvchip->chip, pwm->hwpwm, 0);
|
||||
+}
|
||||
+
|
||||
+static const struct pwm_ops mvebu_pwm_ops = {
|
||||
+ .request = mvebu_pwm_request,
|
||||
+ .free = mvebu_pwm_free,
|
||||
+ .config = mvebu_pwm_config,
|
||||
+ .enable = mvebu_pwm_enable,
|
||||
+ .disable = mvebu_pwm_disable,
|
||||
+ .owner = THIS_MODULE,
|
||||
+};
|
||||
+
|
||||
+static void mvebu_pwm_suspend(struct mvebu_gpio_chip *mvchip)
|
||||
+{
|
||||
+ struct mvebu_pwm *mvpwm = mvchip->mvpwm;
|
||||
+
|
||||
+ mvpwm->blink_select =
|
||||
+ readl_relaxed(mvebu_gpioreg_blink_select(mvchip));
|
||||
+ mvpwm->controller.blink_on_duration =
|
||||
+ readl_relaxed(mvebu_pwmreg_blink_on_duration(&mvpwm->controller));
|
||||
+ mvpwm->controller.blink_off_duration =
|
||||
+ readl_relaxed(mvebu_pwmreg_blink_off_duration(&mvpwm->controller));
|
||||
+}
|
||||
+
|
||||
+static void mvebu_pwm_resume(struct mvebu_gpio_chip *mvchip)
|
||||
+{
|
||||
+ struct mvebu_pwm *mvpwm = mvchip->mvpwm;
|
||||
+
|
||||
+ writel_relaxed(mvpwm->blink_select,
|
||||
+ mvebu_gpioreg_blink_select(mvchip));
|
||||
+ writel_relaxed(mvpwm->controller.blink_on_duration,
|
||||
+ mvebu_pwmreg_blink_on_duration(&mvpwm->controller));
|
||||
+ writel_relaxed(mvpwm->controller.blink_off_duration,
|
||||
+ mvebu_pwmreg_blink_off_duration(&mvpwm->controller));
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Armada 370/XP has simple PWM support for gpio lines. Other SoCs
|
||||
+ * don't have this hardware. So if we don't have the necessary
|
||||
+ * resource, it is not an error.
|
||||
+ */
|
||||
+static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
+ struct mvebu_gpio_chip *mvchip,
|
||||
+ int id)
|
||||
+{
|
||||
+ struct device *dev = &pdev->dev;
|
||||
+ struct mvebu_pwm *mvpwm;
|
||||
+ struct resource *res;
|
||||
+ u32 set;
|
||||
+ enum mvebu_pwm_ctrl ctrl_set;
|
||||
+
|
||||
+ if (!of_device_is_compatible(mvchip->chip.of_node,
|
||||
+ "marvell,armada-370-gpio"))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (IS_ERR(mvchip->clk))
|
||||
+ return PTR_ERR(mvchip->clk);
|
||||
+
|
||||
+ /*
|
||||
+ * There are only two sets of PWM configuration registers for
|
||||
+ * all the GPIO lines on those SoCs which this driver reserves
|
||||
+ * for the first two GPIO chips. So if the resource is missing
|
||||
+ * we can't treat it as an error.
|
||||
+ */
|
||||
+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pwm");
|
||||
+ if (!res)
|
||||
+ return 0;
|
||||
+
|
||||
+ /*
|
||||
+ * Use set A for lines of GPIO chip with id 0, B for GPIO chip
|
||||
+ * with id 1. Don't allow further GPIO chips to be used for PWM.
|
||||
+ */
|
||||
+ if (id == 0) {
|
||||
+ set = 0;
|
||||
+ ctrl_set = MVEBU_PWM_CTRL_SET_A;
|
||||
+ } else if (id == 1) {
|
||||
+ set = U32_MAX;
|
||||
+ ctrl_set = MVEBU_PWM_CTRL_SET_B;
|
||||
+ } else {
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ writel_relaxed(set, mvebu_gpioreg_blink_select(mvchip));
|
||||
+
|
||||
+ mvpwm = devm_kzalloc(dev, sizeof(struct mvebu_pwm), GFP_KERNEL);
|
||||
+ if (!mvpwm)
|
||||
+ return -ENOMEM;
|
||||
+ mvchip->mvpwm = mvpwm;
|
||||
+ mvpwm->mvchip = mvchip;
|
||||
+
|
||||
+ mvpwm->controller.membase = devm_ioremap_resource(dev, res);
|
||||
+ if (IS_ERR(mvpwm->controller.membase))
|
||||
+ return PTR_ERR(mvpwm->controller.membase);
|
||||
+
|
||||
+ mvpwm->controller.clk_rate = clk_get_rate(mvchip->clk);
|
||||
+ if (!mvpwm->controller.clk_rate)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ mvpwm->chip.dev = dev;
|
||||
+ mvpwm->chip.ops = &mvebu_pwm_ops;
|
||||
+ mvpwm->chip.npwm = mvchip->chip.ngpio;
|
||||
+
|
||||
+ /*
|
||||
+ * There may already be some PWM allocated, so we can't force
|
||||
+ * mvpwm->chip.base to a fixed point like mvchip->chip.base.
|
||||
+ * So, we let pwmchip_add() do the numbering and take the next free
|
||||
+ * region.
|
||||
+ */
|
||||
+ mvpwm->chip.base = -1;
|
||||
+
|
||||
+ spin_lock_init(&mvpwm->controller.lock);
|
||||
+ mvpwm->default_counter = ctrl_set;
|
||||
+ mvebu_pwm_list[ctrl_set] = &mvpwm->controller;
|
||||
+
|
||||
+ return pwmchip_add(&mvpwm->chip);
|
||||
+}
|
||||
+
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
#include <linux/seq_file.h>
|
||||
|
||||
@@ -561,6 +889,10 @@ static const struct of_device_id mvebu_gpio_of_match[] = {
|
||||
.data = (void *) MVEBU_GPIO_SOC_VARIANT_ARMADAXP,
|
||||
},
|
||||
{
|
||||
+ .compatible = "marvell,armada-370-gpio",
|
||||
+ .data = (void *) MVEBU_GPIO_SOC_VARIANT_ORION,
|
||||
+ },
|
||||
+ {
|
||||
/* sentinel */
|
||||
},
|
||||
};
|
||||
@@ -607,6 +939,9 @@ static int mvebu_gpio_suspend(struct platform_device *pdev, pm_message_t state)
|
||||
BUG();
|
||||
}
|
||||
|
||||
+ if (IS_ENABLED(CONFIG_PWM))
|
||||
+ mvebu_pwm_suspend(mvchip);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -650,6 +985,9 @@ static int mvebu_gpio_resume(struct platform_device *pdev)
|
||||
BUG();
|
||||
}
|
||||
|
||||
+ if (IS_ENABLED(CONFIG_PWM))
|
||||
+ mvebu_pwm_resume(mvchip);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -661,7 +999,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
struct resource *res;
|
||||
struct irq_chip_generic *gc;
|
||||
struct irq_chip_type *ct;
|
||||
- struct clk *clk;
|
||||
unsigned int ngpios;
|
||||
unsigned int gpio_base = -1;
|
||||
int soc_variant;
|
||||
@@ -695,10 +1032,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
return id;
|
||||
}
|
||||
|
||||
- clk = devm_clk_get(&pdev->dev, NULL);
|
||||
+ mvchip->clk = devm_clk_get(&pdev->dev, NULL);
|
||||
/* Not all SoCs require a clock.*/
|
||||
- if (!IS_ERR(clk))
|
||||
- clk_prepare_enable(clk);
|
||||
+ if (!IS_ERR(mvchip->clk))
|
||||
+ clk_prepare_enable(mvchip->clk);
|
||||
|
||||
mvchip->soc_variant = soc_variant;
|
||||
mvchip->chip.label = dev_name(&pdev->dev);
|
||||
@@ -835,6 +1172,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
goto err_generic_chip;
|
||||
}
|
||||
|
||||
+ /* Armada 370/XP has simple PWM support for GPIO lines */
|
||||
+ if (IS_ENABLED(CONFIG_PWM))
|
||||
+ return mvebu_pwm_probe(pdev, mvchip, id);
|
||||
+
|
||||
return 0;
|
||||
|
||||
err_generic_chip:
|
|
@ -1,25 +0,0 @@
|
|||
From 9ee6345ef82f7af5f98e17a40e667f8ad6b2fa1b Mon Sep 17 00:00:00 2001
|
||||
From: aprayoga <adit.prayoga@gmail.com>
|
||||
Date: Sun, 3 Sep 2017 18:10:12 +0800
|
||||
Subject: Enable ATA port LED trigger
|
||||
|
||||
---
|
||||
arch/arm/configs/mvebu_v7_defconfig | 1 +
|
||||
arch/arm/mach-mvebu/Kconfig | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
|
||||
index 053ea9d..aa1f389 100644
|
||||
--- a/arch/arm/mach-mvebu/Kconfig
|
||||
+++ b/arch/arm/mach-mvebu/Kconfig
|
||||
@@ -52,6 +52,7 @@ config MACH_ARMADA_375
|
||||
|
||||
config MACH_ARMADA_38X
|
||||
bool "Marvell Armada 380/385 boards" if ARCH_MULTI_V7
|
||||
+ select ARCH_WANT_LIBATA_LEDS
|
||||
select ARM_ERRATA_720789
|
||||
select ARM_ERRATA_753970
|
||||
select ARM_GIC
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -1,27 +1,9 @@
|
|||
From 9fe4b82ed5e62ac82df8294e9e02b4ffab23bb47 Mon Sep 17 00:00:00 2001
|
||||
From: Aditya Prayoga <adit.prayoga@gmail.com>
|
||||
Date: Sun, 19 Mar 2017 17:27:01 +0800
|
||||
Subject: Initial device tree
|
||||
|
||||
- Tested using clearfrog u-boot
|
||||
- Increase SD Card clock to 50 MHz from default 25 MHz
|
||||
- All 7 LED declared as led-gpio
|
||||
- LED1 (system) default to hearbeat
|
||||
- LED7 (USB) triggered by USB Host activity
|
||||
- SPI NOR flash declared as MTD
|
||||
- Enable IO expander interrupt
|
||||
- Allocate GPIOs for fans
|
||||
---
|
||||
arch/arm/boot/dts/armada-388-helios4.dts | 333 +++++++++++++++++++++
|
||||
1 file changed, 329 insertions(+)
|
||||
create mode 100644 arch/arm/boot/dts/armada-388-helios4.dts
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
new file mode 100644
|
||||
index 0000000..19a0256
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -0,0 +1,318 @@
|
||||
@@ -0,0 +1,314 @@
|
||||
+/*
|
||||
+ * Device Tree file for Helios4
|
||||
+ * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
|
||||
|
@ -142,17 +124,13 @@ index 0000000..19a0256
|
|||
+ };
|
||||
+
|
||||
+ fan1: j10-pwm {
|
||||
+ compatible = "gpio-fan";
|
||||
+ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
+ gpio-fan,speed-map = < 0 0
|
||||
+ 3800 1>;
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ fan2: j17-pwm {
|
||||
+ compatible = "gpio-fan";
|
||||
+ gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
|
||||
+ gpio-fan,speed-map = < 0 0
|
||||
+ 3800 1>;
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ usb2_phy: usb2-phy {
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
From 9ee6345ef82f7af5f98e17a40e667f8ad6b2fa1b Mon Sep 17 00:00:00 2001
|
||||
From: aprayoga <adit.prayoga@gmail.com>
|
||||
Date: Sun, 3 Sep 2017 18:10:12 +0800
|
||||
Subject: Enable ATA port LED trigger
|
||||
|
||||
---
|
||||
arch/arm/configs/mvebu_v7_defconfig | 1 +
|
||||
arch/arm/mach-mvebu/Kconfig | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/configs/mvebu_v7_defconfig b/arch/arm/configs/mvebu_v7_defconfig
|
||||
index cf363ab..19449d3 100644
|
||||
--- a/arch/arm/configs/mvebu_v7_defconfig
|
||||
+++ b/arch/arm/configs/mvebu_v7_defconfig
|
||||
@@ -61,6 +61,7 @@ CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_ATA=y
|
||||
+CONFIG_ATA_LEDS=y
|
||||
CONFIG_SATA_AHCI=y
|
||||
CONFIG_AHCI_MVEBU=y
|
||||
CONFIG_SATA_MV=y
|
||||
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
|
||||
index 053ea9d..aa1f389 100644
|
||||
--- a/arch/arm/mach-mvebu/Kconfig
|
||||
+++ b/arch/arm/mach-mvebu/Kconfig
|
||||
@@ -57,6 +57,7 @@ config MACH_ARMADA_375
|
||||
config MACH_ARMADA_38X
|
||||
bool "Marvell Armada 380/385 boards"
|
||||
depends on ARCH_MULTI_V7
|
||||
+ select ARCH_WANT_LIBATA_LEDS
|
||||
select ARM_ERRATA_720789
|
||||
select ARM_ERRATA_753970
|
||||
select ARM_GIC
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -1,7 +1,3 @@
|
|||
arch/arm/boot/dts/Makefile | 1 +
|
||||
arch/arm/boot/dts/armada-388-helios4.dts | 309 +++++++++++++++++++++
|
||||
2 files changed, 310 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 4b17f35..c6b6038 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
|
@ -14,12 +10,13 @@ index 4b17f35..c6b6038 100644
|
|||
armada-388-db.dtb \
|
||||
armada-388-gp.dtb \
|
||||
armada-388-rd.dtb
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
new file mode 100644
|
||||
index 0000000..93d0132
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -0,0 +1,309 @@
|
||||
@@ -0,0 +1,295 @@
|
||||
+/*
|
||||
+ * Device Tree file for Helios4
|
||||
+ * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
|
||||
|
@ -199,11 +196,6 @@ index 0000000..93d0132
|
|||
+ status = "okay";
|
||||
+ vmmc = <®_3p3v>;
|
||||
+ wp-inverted;
|
||||
+ max-frequency = <50000000>;
|
||||
+ cap-sd-highspeed;
|
||||
+ sd-uhs-sdr12;
|
||||
+ sd-uhs-sdr25;
|
||||
+ sd-uhs-sdr50;
|
||||
+ };
|
||||
+
|
||||
+ usb@58000 {
|
||||
|
@ -320,12 +312,3 @@ index 0000000..93d0132
|
|||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&spi1 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ spi-flash@0 {
|
||||
+ spi-max-frequency = <104000000>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+};
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
index 93d0132..47699bd 100644
|
||||
--- a/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -298,12 +298,3 @@
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
};
|
||||
-
|
||||
-&spi1 {
|
||||
- status = "okay";
|
||||
-
|
||||
- spi-flash@0 {
|
||||
- spi-max-frequency = <104000000>;
|
||||
- status = "okay";
|
||||
- };
|
||||
-};
|
|
@ -1,16 +0,0 @@
|
|||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
index 47699bd..4a5e8fc 100644
|
||||
--- a/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -177,11 +177,6 @@
|
||||
status = "okay";
|
||||
vmmc = <®_3p3v>;
|
||||
wp-inverted;
|
||||
- max-frequency = <50000000>;
|
||||
- cap-sd-highspeed;
|
||||
- sd-uhs-sdr12;
|
||||
- sd-uhs-sdr25;
|
||||
- sd-uhs-sdr50;
|
||||
};
|
||||
|
||||
usb@58000 {
|
Loading…
Add table
Add a link
Reference in a new issue