arm-trusted-firmware/plat/hisilicon/hikey/include/hi6553.h

82 lines
3.6 KiB
C
Raw Normal View History

/*
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __HI6553_H__
#define __HI6553_H__
#include <hi6220.h>
#include <mmio.h>
#define HI6553_DISABLE6_XO_CLK (PMUSSI_BASE + (0x036 << 2))
#define DISABLE6_XO_CLK_BB (1 << 0)
#define DISABLE6_XO_CLK_CONN (1 << 1)
#define DISABLE6_XO_CLK_NFC (1 << 2)
#define DISABLE6_XO_CLK_RF1 (1 << 3)
#define DISABLE6_XO_CLK_RF2 (1 << 4)
#define HI6553_VERSION_REG (PMUSSI_BASE + (0x000 << 2))
hikey: Disable VBUS_DET interrupt for PMIC After disconnect Jumper pin 1-2 in J15 header, the signal VBUS_DET is to be pulled down to low level. This will assert the interrupt signal in PMIC and trigger IRQ in GIC; the asserted signal from VBUS_DET is level triggered and kernel reports the warning for unhooked interrupt handling; and VBUS_DET stays with low level, this triggers IRQ storm in kernel. This patch is to disable interrupt for VBUS_DET in PMIC, this can dismiss the verbose log and IRQ storm after kernel booting. [ 40.835279] irq 57: nobody cared (try booting with the "irqpoll" option) [ 40.842075] CPU: 0 PID: 980 Comm: irq/57-hi655x-p Not tainted 4.4.77-568944-g576a0114dec8-dirty #667 [ 40.851303] Hardware name: HiKey Development Board (DT) [ 40.856580] Call trace: [ 40.859060] [<ffffff800808c4cc>] dump_backtrace+0x0/0x1e0 [ 40.864516] [<ffffff800808c8ac>] show_stack+0x20/0x28 [ 40.869622] [<ffffff80084b9688>] dump_stack+0xa8/0xe0 [ 40.874729] [<ffffff800812dd5c>] __report_bad_irq+0x40/0xec [ 40.880360] [<ffffff800812e0bc>] note_interrupt+0x1e4/0x2d8 [ 40.885992] [<ffffff800812b11c>] handle_irq_event_percpu+0xd8/0x268 [ 40.892324] [<ffffff800812b2f8>] handle_irq_event+0x4c/0x7c [ 40.897955] [<ffffff800812ecbc>] handle_level_irq+0xcc/0x178 [ 40.903672] [<ffffff800812a778>] generic_handle_irq+0x34/0x4c [ 40.909481] [<ffffff80085074c8>] pl061_irq_handler+0xa8/0x124 [ 40.915286] [<ffffff800812a778>] generic_handle_irq+0x34/0x4c [ 40.921092] [<ffffff800812a820>] __handle_domain_irq+0x90/0xf8 [ 40.926985] [<ffffff8008082620>] gic_handle_irq+0x58/0xa8 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com> Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-07-26 07:36:01 +01:00
#define HI6553_IRQ2_MASK (PMUSSI_BASE + (0x008 << 2))
#define HI6553_ENABLE2_LDO1_8 (PMUSSI_BASE + (0x029 << 2))
#define HI6553_DISABLE2_LDO1_8 (PMUSSI_BASE + (0x02a << 2))
#define HI6553_ONOFF_STATUS2_LDO1_8 (PMUSSI_BASE + (0x02b << 2))
#define HI6553_ENABLE3_LDO9_16 (PMUSSI_BASE + (0x02c << 2))
#define HI6553_DISABLE3_LDO9_16 (PMUSSI_BASE + (0x02d << 2))
#define HI6553_ONOFF_STATUS3_LDO9_16 (PMUSSI_BASE + (0x02e << 2))
#define HI6553_ENABLE4_LDO17_22 (PMUSSI_BASE + (0x02f << 2))
#define HI6553_DISABLE4_LDO17_22 (PMUSSI_BASE + (0x030 << 2))
#define HI6553_ONOFF_STATUS4_LDO17_22 (PMUSSI_BASE + (0x031 << 2))
#define HI6553_PERI_EN_MARK (PMUSSI_BASE + (0x040 << 2))
#define HI6553_BUCK2_REG1 (PMUSSI_BASE + (0x04a << 2))
#define HI6553_BUCK2_REG5 (PMUSSI_BASE + (0x04e << 2))
#define HI6553_BUCK2_REG6 (PMUSSI_BASE + (0x04f << 2))
#define HI6553_BUCK3_REG3 (PMUSSI_BASE + (0x054 << 2))
#define HI6553_BUCK3_REG5 (PMUSSI_BASE + (0x056 << 2))
#define HI6553_BUCK3_REG6 (PMUSSI_BASE + (0x057 << 2))
#define HI6553_BUCK4_REG2 (PMUSSI_BASE + (0x05b << 2))
#define HI6553_BUCK4_REG5 (PMUSSI_BASE + (0x05e << 2))
#define HI6553_BUCK4_REG6 (PMUSSI_BASE + (0x05f << 2))
#define HI6553_CLK_TOP0 (PMUSSI_BASE + (0x063 << 2))
#define HI6553_CLK_TOP3 (PMUSSI_BASE + (0x066 << 2))
#define HI6553_CLK_TOP4 (PMUSSI_BASE + (0x067 << 2))
#define HI6553_VSET_BUCK2_ADJ (PMUSSI_BASE + (0x06d << 2))
#define HI6553_VSET_BUCK3_ADJ (PMUSSI_BASE + (0x06e << 2))
#define HI6553_LDO7_REG_ADJ (PMUSSI_BASE + (0x078 << 2))
#define HI6553_LDO10_REG_ADJ (PMUSSI_BASE + (0x07b << 2))
#define HI6553_LDO15_REG_ADJ (PMUSSI_BASE + (0x080 << 2))
#define HI6553_LDO19_REG_ADJ (PMUSSI_BASE + (0x084 << 2))
#define HI6553_LDO20_REG_ADJ (PMUSSI_BASE + (0x085 << 2))
#define HI6553_LDO21_REG_ADJ (PMUSSI_BASE + (0x086 << 2))
#define HI6553_LDO22_REG_ADJ (PMUSSI_BASE + (0x087 << 2))
#define HI6553_DR_LED_CTRL (PMUSSI_BASE + (0x098 << 2))
#define HI6553_DR_OUT_CTRL (PMUSSI_BASE + (0x099 << 2))
#define HI6553_DR3_ISET (PMUSSI_BASE + (0x09a << 2))
#define HI6553_DR3_START_DEL (PMUSSI_BASE + (0x09b << 2))
#define HI6553_DR4_ISET (PMUSSI_BASE + (0x09c << 2))
#define HI6553_DR4_START_DEL (PMUSSI_BASE + (0x09d << 2))
#define HI6553_DR345_TIM_CONF0 (PMUSSI_BASE + (0x0a0 << 2))
#define HI6553_NP_REG_ADJ1 (PMUSSI_BASE + (0x0be << 2))
#define HI6553_NP_REG_CHG (PMUSSI_BASE + (0x0c0 << 2))
#define HI6553_BUCK01_CTRL2 (PMUSSI_BASE + (0x0d9 << 2))
#define HI6553_BUCK0_CTRL1 (PMUSSI_BASE + (0x0dd << 2))
#define HI6553_BUCK0_CTRL5 (PMUSSI_BASE + (0x0e1 << 2))
#define HI6553_BUCK0_CTRL7 (PMUSSI_BASE + (0x0e3 << 2))
#define HI6553_BUCK1_CTRL1 (PMUSSI_BASE + (0x0e8 << 2))
#define HI6553_BUCK1_CTRL5 (PMUSSI_BASE + (0x0ec << 2))
#define HI6553_BUCK1_CTRL7 (PMUSSI_BASE + (0x0ef << 2))
#define HI6553_CLK19M2_600_586_EN (PMUSSI_BASE + (0x0fe << 2))
#define LED_START_DELAY_TIME 0x00
#define LED_ELEC_VALUE 0x07
#define LED_LIGHT_TIME 0xf0
#define LED_GREEN_ENABLE (1 << 1)
#define LED_OUT_CTRL 0x00
#define PMU_HI6552_V300 0x30
#define PMU_HI6552_V310 0x31
#endif /* __HI6553_H__ */