goldfish:config pl031.

Signed-off-by: yangguangcai <yangguangcai@xiaomi.com>
This commit is contained in:
yangguangcai
2023-07-11 18:25:36 +08:00
committed by GUIDINGLI
parent f858026819
commit e9b77833e3
3 changed files with 57 additions and 0 deletions
+10
View File
@@ -5,4 +5,14 @@
if ARCH_CHIP_GOLDFISH
config GOLDFISH_RTC_PL031_BASE
hex "GOLDFISH RTC PL031 BASE"
default 0x09010000
depends on RTC_PL031
config GOLDFISH_RTC_PL031_IRQ
hex "GOLDFISH RTC PL031 IRQ"
default 0x22
depends on RTC_PL031
endif # ARCH_CHIP_GOLDFISH
+4
View File
@@ -23,6 +23,10 @@ include common/Make.defs
# qemu-specific C source files
CHIP_CSRCS = goldfish_boot.c goldfish_serial.c goldfish_timer.c
ifeq ($(CONFIG_RTC_PL031),y)
CHIP_CSRCS += goldfish_rtc.c
endif
ifeq ($(CONFIG_ARCH_EARLY_PRINT),y)
CHIP_ASRCS = goldfish_lowputc.S
endif
+43
View File
@@ -0,0 +1,43 @@
/***************************************************************************
* arch/arm64/src/goldfish/goldfish_rtc.c
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
***************************************************************************/
/***************************************************************************
* Included Files
***************************************************************************/
#include <nuttx/arch.h>
#include <nuttx/timers/pl031.h>
#include <nuttx/timers/rtc.h>
#include <nuttx/timers/arch_rtc.h>
/***************************************************************************
* Public Functions
***************************************************************************/
int up_rtc_initialize(void)
{
FAR struct rtc_lowerhalf_s *rtc_lowerhalf =
pl031_initialize(CONFIG_GOLDFISH_RTC_PL031_BASE,
CONFIG_GOLDFISH_RTC_PL031_IRQ);
up_rtc_set_lowerhalf(rtc_lowerhalf, true);
return rtc_initialize(0, rtc_lowerhalf);
}