linux/drivers/rtc/rtc-da9052.c
<<
val645/spa v 645/form v 645a val64 href="../linux+v3.9.6/drivers/rtc/rtc-da9052.c"> val645img src="../.static/gfx/right.png" alt=">>"> v5/spa v v5spa class="lxr_search"> val ="+search" method="post" onsubmit="return do_search(this);"> val645input typ> hidden" nam> navtarget" tion> "> val645input typ> text" nam> search" id search"> val645butt/optyp> submit">Search val64Prefsv 645/a> v5/spa val64 45/div val64 45form ac > ="ajax+*" method="post" onsubmit="return false;"> v5input typ> hidden" nam> ajax_lookup" id ajax_lookup" tion> "> al64 45/form v al64 45div class="headingbott/m">
v 5div id file_contents"
 L1">4 415/a>5spa  class="comment">/*5/spa  v
 L2">4 425/a>5spa  class="comment"> * Real time clock driver for DA90525/spa  v
 L3">4 435/a>5spa  class="comment"> *5/spa  v
 L4">4 445/a>5spa  class="comment"> * Copyright(c) 2012 Dialog Semiconductor Ltd.5/spa  v
 L5">4 455/a>5spa  class="comment"> *5/spa  v
 L6">4 465/a>5spa  class="comment"> * Author: Dajun Dajun Chen <dajun.chen@diasemi.com>5/spa  v
 L7">4 475/a>5spa  class="comment"> *5/spa  v
 L8">4 485/a>5spa  class="comment"> * This program is free software; you ca  redistribute it and/or modify5/spa  v
 L9">4 495/a>5spa  class="comment"> * it under the terms of the GNU General Public License as published by5/spa  v
 L10">4 on va>5spa  class="comment"> * the Free Software Founda >
 ; either vers
 L11">4 115/a>5spa  class="comment"> * (at your 	  >
 ) any later vers
 L12">4 125/a>5spa  class="comment"> *5/spa  v
 L13">4 135/a>5spa  class="comment"> */5/spa  v
 L14">4 145/a>v
 L15">4 155/a>#include <linux/module.h5/a>>v
 L16">4 165/a>#include <linux/platform_device.h5/a>>v
 L17">4 175/a>#include <linux/rtc.h5/a>>v
 L18">4 185/a>v
 L19">4 195/a>#include <linux/mfd/da9052/da9052.h5/a>>v
 L20">4 205/a>#include <linux/mfd/da9052/reg.h5/a>>v
 L21">4 215/a>v
 L22">4 225/a>#define45a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=fmt" class="sref">fmt5/a>,4...) \v
 L23">4 235/a>                5a href="+code=dev_err" class="sref">dev_err5/a>(5a href="+code=da9052" class="sref">da90525/a>->5a href="+code=dev" class="sref">dev5/a>,45spa  class="string">"%s: "5/spa  45a href="+code=fmt" class="sref">fmt5/a>,45a href="+code=__func__" class="sref">__func__5/a>,4##__VA_ARGS__)v
 L24">4 245/a>v
 L25">4 255/a>struct 5a href="+code=da9052_rtc" class="sref">da9052_rtc5/a> {v
 L26">4 265/a>        struct 5a href="+code=rtc_device" class="sref">rtc_device5/a> *5a href="+code=rtc" class="sref">rtc5/a>;v
 L27">4 275/a>        struct 5a href="+code=da9052" class="sref">da90525/a> *5a href="+code=da9052" class="sref">da90525/a>;v
 L28">4 285/a>        int 5a href="+code=irq" class="sref">irq5/a>;v
 L29">4 295/a>};v
 L30">4 305/a>v
 L31">4 315/a>static int 5a href="+code=da9052_rtc_enable_alarm" class="sref">da9052_rtc_enable_alarm5/a>(struct 5a href="+code=da9052" class="sref">da90525/a> *5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=bool" class="sref">bool5/a> 5a href="+code=enable" class="sref">enable5/a>)v
 L32">4 325/a>{v
 L33">4 335/a>        int 5a href="+code=ret" class="sref">ret5/a>;v
 L34">4 345/a>        if (5a href="+code=enable" class="sref">enable5/a>) {v
 L35">4 355/a>                5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_reg_upda e" class="sref">da9052_reg_upda e5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_Y_REG" class="sref">DA9052_ALARM_Y_REG5/a>,v
 L36">4 365/a>                                        5a href="+code=DA9052_ALARM_Y_ALARM_ON" class="sref">DA9052_ALARM_Y_ALARM_ON5/a>,v
 L37">4 375/a>                                        5a href="+code=DA9052_ALARM_Y_ALARM_ON" class="sref">DA9052_ALARM_Y_ALARM_ON5/a>);v
 L38">4 385/a>                if (5a href="+code=ret" class="sref">ret5/a> != 0)v
 L39">4 395/a>                        5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to enable ALM: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L40">4 405/a>        } else {v
 L41">4 415/a>                5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_reg_upda e" class="sref">da9052_reg_upda e5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_Y_REG" class="sref">DA9052_ALARM_Y_REG5/a>,v
 L42">4 425/a>                                        5a href="+code=DA9052_ALARM_Y_ALARM_ON" class="sref">DA9052_ALARM_Y_ALARM_ON5/a>, 0);v
 L43">4 435/a>                if (5a href="+code=ret" class="sref">ret5/a> != 0)v
 L44">4 445/a>                        5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Write error: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L45">4 455/a>        }v
 L46">4 465/a>        return 5a href="+code=ret" class="sref">ret5/a>;v
 L47">4 475/a>}v
 L48">4 485/a>v
 L49">4 495/a>static 5a href="+code=irqreturn_t" class="sref">irqreturn_t5/a> 5a href="+code=da9052_rtc_irq" class="sref">da9052_rtc_irq5/a>(int 5a href="+code=irq" class="sref">irq5/a>, void *5a href="+code=data" class="sref">data5/a>)v
 L50">4 505/a>{v
 L51">4 515/a>        struct 5a href="+code=da9052_rtc" class="sref">da9052_rtc5/a> *5a href="+code=rtc" class="sref">rtc5/a> = 5a href="+code=data" class="sref">data5/a>;v
 L52">4 525/a>        int 5a href="+code=ret" class="sref">ret5/a>;v
 L53">4 535/a>v
 L54">4 545/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_reg_read" class="sref">da9052_reg_read5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_MI_REG" class="sref">DA9052_ALARM_MI_REG5/a>);v
 L55">4 555/a>        if (5a href="+code=ret" class="sref">ret5/a> < 0) {v
 L56">4 565/a>                5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Read error: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L57">4 575/a>                return 5a href="+code=IRQ_NONE" class="sref">IRQ_NONE5/a>;v
 L58">4 585/a>        }v
 L59">4 595/a>v
 L60">4 605/a>        if (5a href="+code=ret" class="sref">ret5/a> &45a href="+code=DA9052_ALARMMI_ALARMTYPE" class="sref">DA9052_ALARMMI_ALARMTYPE5/a>) {v
 L61">4 615/a>                5a href="+code=da9052_rtc_enable_alarm" class="sref">da9052_rtc_enable_alarm5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,40);v
 L62">4 625/a>                5a href="+code=rtc_upda e_irq" class="sref">rtc_upda e_irq5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=rtc" class="sref">rtc5/a>, 1,45a href="+code=RTC_IRQF" class="sref">RTC_IRQF5/a> |45a href="+code=RTC_AF" class="sref">RTC_AF5/a>);v
 L63">4 635/a>        } elsev
 L64">4 645/a>                5a href="+code=rtc_upda e_irq" class="sref">rtc_upda e_irq5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=rtc" class="sref">rtc5/a>, 1,45a href="+code=RTC_IRQF" class="sref">RTC_IRQF5/a> |45a href="+code=RTC_PF" class="sref">RTC_PF5/a>);v
 L65">4 655/a>v
 L66">4 665/a>        return 5a href="+code=IRQ_HANDLED" class="sref">IRQ_HANDLED5/a>;v
 L67">4 675/a>}v
 L68">4 685/a>v
 L69">4 695/a>static int 5a href="+code=da9052_read_alarm" class="sref">da9052_read_alarm5/a>(struct 5a href="+code=da9052" class="sref">da90525/a> *5a href="+code=da9052" class="sref">da90525/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="+code=rtc_tm" class="sref">rtc_tm5/a>)v
 L70">4 705/a>{v
 L71">4 715/a>        int 5a href="+code=ret" class="sref">ret5/a>;v
 L72">4 725/a>        5a href="+code=uint8_t" class="sref">uint8_t5/a> 5a href="+code=v" class="sref">v5/a>[5];v
 L73">4 735/a>v
 L74">4 745/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_group_read" class="sref">da9052_group_read5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_MI_REG" class="sref">DA9052_ALARM_MI_REG5/a>, 5,45a href="+code=v" class="sref">v5/a>);v
 L75">4 755/a>        if (5a href="+code=ret" class="sref">ret5/a> != 0) {v
 L76">4 765/a>                5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to group read ALM: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L77">4 775/a>                return 5a href="+code=ret" class="sref">ret5/a>;v
 L78">4 785/a>        }v
 L79">4 795/a>v
 L80">4 805/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_year" class="sref">tm_year5/a> = (5a href="+code=v" class="sref">v5/a>[4] &45a href="+code=DA9052_RTC_YEAR" class="sref">DA9052_RTC_YEAR5/a>) + 100;v
 L81">4 815/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_mon" class="sref">tm_mon5/a>  = (5a href="+code=v" class="sref">v5/a>[3] &45a href="+code=DA9052_RTC_MONTH" class="sref">DA9052_RTC_MONTH5/a>) - 1;v
 L82">4 825/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_mday" class="sref">tm_mday5/a> = 5a href="+code=v" class="sref">v5/a>[2] &45a href="+code=DA9052_RTC_DAY" class="sref">DA9052_RTC_DAY5/a>;v
 L83">4 835/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_hour" class="sref">tm_hour5/a> = 5a href="+code=v" class="sref">v5/a>[1] &45a href="+code=DA9052_RTC_HOUR" class="sref">DA9052_RTC_HOUR5/a>;v
 L84">4 845/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_min" class="sref">tm_min5/a>  = 5a href="+code=v" class="sref">v5/a>[0] &45a href="+code=DA9052_RTC_MIN" class="sref">DA9052_RTC_MIN5/a>;v
 L85">4 855/a>v
 L86">4 865/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=rtc_valid_tm" class="sref">rtc_valid_tm5/a>(5a href="+code=rtc_tm" class="sref">rtc_tm5/a>);v
 L87">4 875/a>        if (5a href="+code=ret" class="sref">ret5/a> != 0)v
 L88">4 885/a>                return 5a href="+code=ret" class="sref">ret5/a>;v
 L89">4 895/a>        return 5a href="+code=ret" class="sref">ret5/a>;v
 L90">4 905/a>}v
 L91">4 915/a>v
 L92">4 925/a>static int 5a href="+code=da9052_set_alarm" class="sref">da9052_set_alarm5/a>(struct 5a href="+code=da9052" class="sref">da90525/a> *5a href="+code=da9052" class="sref">da90525/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="+code=rtc_tm" class="sref">rtc_tm5/a>)v
 L93">4 935/a>{v
 L94">4 945/a>        int 5a href="+code=ret" class="sref">ret5/a>;v
 L95">4 955/a>        5a href="+code=uint8_t" class="sref">uint8_t5/a> 5a href="+code=v" class="sref">v5/a>[3];v
 L96">4 965/a>v
 L97">4 975/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_year" class="sref">tm_year5/a> -= 100;v
 L98">4 985/a>        5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_mon" class="sref">tm_mon5/a> += 1;v
 L99">4 995/a>v
 L100">41005/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_reg_upda e" class="sref">da9052_reg_upda e5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_MI_REG" class="sref">DA9052_ALARM_MI_REG5/a>,v
 L101">41015/a>                                5a href="+code=DA9052_RTC_MIN" class="sref">DA9052_RTC_MIN5/a>,45a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_min" class="sref">tm_min5/a>);v
 L102">41025/a>        if (5a href="+code=ret" class="sref">ret5/a> != 0) {v
 L103">41035/a>                5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to write ALRM MIN: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L104">41045/a>                return 5a href="+code=ret" class="sref">ret5/a>;v
 L105">41055/a>        }v
 L106">41065/a>v
 L107">41075/a>        5a href="+code=v" class="sref">v5/a>[0] = 5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_hour" class="sref">tm_hour5/a>;v
 L108">41085/a>        5a href="+code=v" class="sref">v5/a>[1] = 5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_mday" class="sref">tm_mday5/a>;v
 L109">41095/a>        5a href="+code=v" class="sref">v5/a>[2] = 5a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_mon" class="sref">tm_mon5/a>;v
 L110">41105/a>v
 L111">41115/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_group_write" class="sref">da9052_group_write5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_H_REG" class="sref">DA9052_ALARM_H_REG5/a>, 3,45a href="+code=v" class="sref">v5/a>);v
 L112">41125/a>        if (5a href="+code=ret" class="sref">ret5/a> < 0)v
 L113">41135/a>                return 5a href="+code=ret" class="sref">ret5/a>;v
 L114">41145/a>v
 L115">41155/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_reg_upda e" class="sref">da9052_reg_upda e5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_Y_REG" class="sref">DA9052_ALARM_Y_REG5/a>,v
 L116">41165/a>                                5a href="+code=DA9052_RTC_YEAR" class="sref">DA9052_RTC_YEAR5/a>,45a href="+code=rtc_tm" class="sref">rtc_tm5/a>->5a href="+code=tm_year" class="sref">tm_year5/a>);v
 L117">41175/a>        if (5a href="+code=ret" class="sref">ret5/a> != 0)v
 L118">41185/a>                5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to write ALRM YEAR: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L119">41195/a>v
 L120">41205/a>        return 5a href="+code=ret" class="sref">ret5/a>;v
 L121">41215/a>}v
 L122">41225/a>v
 L123">41235/a>static int 5a href="+code=da9052_rtc_get_alarm_status" class="sref">da9052_rtc_get_alarm_status5/a>(struct 5a href="+code=da9052" class="sref">da90525/a> *5a href="+code=da9052" class="sref">da90525/a>)v
 L124">41245/a>{v
 L125">41255/a>        int 5a href="+code=ret" class="sref">ret5/a>;v
 L126">41265/a>v
 L127">41275/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_reg_read" class="sref">da9052_reg_read5/a>(5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_Y_REG" class="sref">DA9052_ALARM_Y_REG5/a>);v
 L128">41285/a>        if (5a href="+code=ret" class="sref">ret5/a> < 0) {v
 L129">41295/a>                5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to read ALM: %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L130">41305/a>                return 5a href="+code=ret" class="sref">ret5/a>;v
 L131">41315/a>        }v
 L132">41325/a>        5a href="+code=ret" class="sref">ret5/a> &= 5a href="+code=DA9052_ALARM_Y_ALARM_ON" class="sref">DA9052_ALARM_Y_ALARM_ON5/a>;v
 L133">41335/a>        return (5a href="+code=ret" class="sref">ret5/a> > 0) ? 1 : 0;v
 L134">41345/a>}v
 L135">41355/a>v
 L136">41365/a>static int 5a href="+code=da9052_rtc_read_time" class="sref">da9052_rtc_read_time5/a>(struct 5a href="+code=device" class="sref">device5/a> *5a href="+code=dev" class="sref">dev5/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="+code=rtc_tm" class="sref">rtc_tm5/a>)v
 L137">41375/a>{v
 L138">41385/a>        struct 5a href="+code=da9052_rtc" class="sref">da9052_rtc5/a> *5a href="+code=rtc" class="sref">rtc5/a> = 5a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata5/a>(5a href="+code=dev" class="sref">dev5/a>);v
 L139">41395/a>        5a href="+code=uint8_t" class="sref">uint8_t5/a> 5a href="+code=v" class="sref">v5/a>[6];v
 L140">41405/a>        int 5a href="+code=ret" class="sref">ret5/a>;v
 L141">41415/a>v
 L142">41425/a>        5a href="+code=ret" class="sref">ret5/a> = 5a href="+code=da9052_group_read" class="sref">da9052_group_read5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,45a href="+code=DA9052_COUNT_S_REG" class="sref">DA9052_COUNT_S_REG5/a>,46,45a href="+code=v" class="sref">v5/a>);v
 L143">41435/a>        if (5a href="+code=ret" class="sref">ret5/a> < 0) {v
 L144">41445/a>                5a href="+code=rtc_err" class="sref">rtc_err5/a>(5a href="+code=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to read RTC time : %d\n"5/spa  ,45a href="+code=ret" class="sref">ret5/a>);v
 L1da905rs/rtc/rtc-da9052.c#L143" id
 L143" class="line" nam>
 L143">41435/a>        if (5a hre1" namrtc-da9052.c#L131" id
 L131" class="line" nam>
 L131">41315/a>        }vret5/a>;1v41355/a>v

 L135">41355/a>vtm_mon5/a> += 1;vDA9052_RTC_YEA55/a>) + 100;v
 L81">4 815/a>        5a href="+code=1rqreturn_1t" class="sref">irqretur1n_t5/14f="+code=v" class="sref">v5/ef">tm_mon5/a>;vDA9052_RTC_MOR5/a>) + 100;v
 L82">4 825/a>        5a href="+code=1rtc-da90512.c#L51" id
 L51" class=1"line15ref="+code=tm_year" class="sref">tm_year5/a> = (5a href="+code=v" class="sref">v5/>[2] &45a href="+code=DA9052_RTC_DAY" class="sref">DA9052_RTC_DAY5NTH5/a>) - 1;v
 L83">4 835/a>        5a href="+code=1"+code=da19052_rtc" class="sref">d1a905215ref="+code=tm_mon" class="sref">tm_mon5/a>  = (5a href="+code=v" class="sref">v5/a>[1] &45a href="+code=DA9052_RTC_HOUR" class="sref">DA9052_RTC_HOU/a>;v
 L84">4 845/a>        5a href="+code=1ode=ret" 1class="sref">ret5/a>;vtm_min5/a>  = 5a href="+code=v" class="sref">v5/a>[0] &45a href="+code=DA9052_RTC_MIN" class="sref">DA9052_RTC_MIN5R5/a>;v
 L85">4 855/a>vtm_hour5/a> = 5a href="+code=v" class="sref">v5/ase525/a>,45spa  cl5/ase5=DA9052_RTC_MIN" class="sref">DA9052_RTC_MIN5/a>;v4 855/a>vret5/a> = 5a hr1ef="+15am>
 L15">4 155/a>#include <ret5/a> <1; 0) 15de=da9052_reg_upda e" class="sref">da9052_reg_upda e5/a>(5a href="+coderass="sref">rtc_tm5/a>);v
 L87">4 875/a>        if (5a href="+c1="+code=r1tc_err" class="sref">rtc1_err51a>(5a href="+cs/rtc/rtc-da9052.c#L103" id
 L103" class="line" nam>
 L103">41035/a>                5a hr5a href="1+code=IRQ_NONE" class="s1ref">1RQ_NONE5/a>;vrtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,45spa  class="string">"Failed to read RTC time : %d\n"5/spa  ,45a href="+code=ret" href="drive fclass
 L1da905rs/rtc/rtc-da9052.c#L143" iders/rtc/r1tc-da9052.c#L59" id
 L591" cla15;v
 L89">4 895/a>        return 5a href=1tc-da90521.c#L60" id
 L60" class="1line"15f="+code=v" c>
 L135">41355/a>vret5/a> &am1p;45a16 nam>
 L111">41115/a>        5a href="+cod="+code=d1a9052_rtc_enable_alarm" 1class1"sref">da9052_c/rtc-d
 L81">4 815/a>        5a href="+code=1="+code=r1tc_upda e_irq" class="sr1ef">r1c_upda>
 L135">41355/a>v
 L74">4 745/a>        5a href="+code=1="+code=r1tc_upda e_irq" class="sr1ef">r1c_updartc_read_time5/a>(struct 5a href="+co*5a vice" class="sref">device5/a> *5a vice"+code=dev" class="sref">dev5/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="+code=rtc_tm" class="sref">rtc_tm5/a>)v
 L137">41375/a>{v
 >
 L103">41035/a>                5a hr"+code=IR1Q_HANDLED" class="sref">1IRQ_H1NDLED5/a>;vrtc5/a> = 5a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata5/a>( L81">4 815/a>        5a href="+code=1=a href="12.c#L68" id
 L68" class=1"line16de=da9052_reg_read" class="sa>[6];v
 L140">41405/a>        int 5a href="tc-da90521.c#L69" id
 L69" class="1line"1nam>
 L69">4 695/a>static int 5a href="+co1de=da90521_read_alarm" class="sref1">da916f="+code=v" class="sref">v5/ef"">dev_get_drvdata5/a>(5a href="+code=dev" class="sref">dev5/a>);v
 L139">41395/a>        5a href="+codrtc-da90512.c#L71" id
 L71" class=1"line17 nam>
 L111">41115/a>        5a href="+codode=ret" 1class="sref">ret5/a>;vv5/ase525/a>,45spa  cl5/ase5=DA9>
 L139">41395/a>        5a href="+codr"+code=r1class="sref">uint8_t5/a>1 5a h1ef="+code=v" class="sref">v5/m5/a>->5a href="+code=tm_mday" class="s id
 L87" class="e" namde=v" class="sref">v5/a[0] &45a href="+code=DA9>
 L139">41395/a>        5a href="+codrc-da90521.c#L74" id
 L74" class="1line"17ref="+code=tm_hour" class="sm5/a>->5a href="+code=tm_mon" class="sr id
 L87" class="e" namde=v" class="sref">v5/a08" id
 L108" class="line" nam>
 L108">41085/a>        5a href="+codret" clas1s="sref">ret5/a> = 5a hr1ef="+1ode=da9052_group_read" class="sref">DA9052_RTC_DAY5NTHtm_mday" class="s id
 L87" class="e" namde=v" class="sref">v5/a[9" id
 L109" class="line" nam>
 L109">41095/a>        5a href="+codode=ret" 1class="sref">ret5/a> != 10) {v17de=da9052_reg_upda e" class=s="sref">DA9052_RTC_MOR5/tm_mday" class="s id
 L87" class="e" namde=v" class="sref">v5/a[L99" id
 L99" class="line" na>
 L82">4 825/a>        5a href="+code=1="+code=r1tc_err" class="sref">rtc1_err517de=rtc_valid_tm" class="sref="sref">DA9052_RTC_YEA55/tm_mday" class="s id
 L87" class="e" namde=v" class="sref">v5/a52.c#L98" id
 L98" class="line" am>
 L81">4 815/a>        5a href="+code=15a href="1+code=ret" class="sref">1ret5/17nam>

 L135">41355/a>v
c/rtc-da9052.c#L89" idde=da9052" class="sref">da90525/a>,45a href="+code=DA9052_ALARM_H_REG" 90525/a>,45a href="+code=DA9052_COUNT_S_REG" class="sref">DA9052_COUNT_S_REG5/a>,46,45a href="+code=v" class="sref">v5/a>);v
 L143">41435/a>        if (5a href="tc-da90521.c#L80" id
 L80" class="1line"1nam>
 >
 L135">41355/a>vrtc_tm5/a>-&1gt;5a18 nam>
 L111">41115/a>        5a href="+codrtc_tm" c1lass="sref">rtc_tm5/a>-&1gt;5a18>da9052_rtc_enable_alarm5/a>(struct 5a hre=da9052" class="sref">da90525/a> hre=da9052" c"+code=dev" class="sref">dev5/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="+code=rtc_tm" class="sref"wkal class="sref">da9ref"wkal ce=rtc_time" class="sral class="sref">da9al ce=rt>
 L137">41375/a>{vrtc_tm5/a>-&1gt;5a18nam>
 L33">4 335/a>        int 5a href="+c1rtc_tm" c1lass="sref">rtc_tm5/a>-&1gt;5a1href="+code=tmtc-da9052.c#L141" id
 L141" class="line" nam>
 L141">41415/a>vrtc_tm5/a>-&1gt;5a1href="+code=tm+code=rtc_tm" class="sref">rtc_tm5/a>)vda9al ce=rtde=v" class="sref">v5rtc_tm5/a>)v
 L141">41415/a>vrtc5/a> = 5a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata5/a>(5a href="+code=dev" class="sref">dev5/a>);v
 L139">41395/a>        5a href="+codret" clas1s="sref">ret5/a> = 5a hr1ef="+18 nam>
 L127">41275/a>        5a href="+codode=ret" 1class="sref">ret5/a> != 10)vda9052_reg_read5/a>(5a href="+code=da9052" clasa9052" class="sref">da90525/a> *5a href="+cod2_ALARM_H_REG" 90525/a>,45a href="+code=DA9052_COUNT_S_REG" class="sref">DA9052_COUNT_S_REG5/a>,46,45a href= id
 L87" class="e" nam>>
 L139">41395/a>        5a href="+codrc-da9052.cc#L19" id
 L19" class="li cla18am>
 L69">4 695/a>static int 5a href="+co1"+code=re1t" class="sref">ret5/a>;1v41375/a>{v
 L131">41315/a>        }v
 L92">4 925/a>static int 5a href="+co1de=da90521_set_alarm" class="sref"1>da9019f="+code=v" class="sref">v5/al class="sref">da9al ce=rtde=v" class="sref">vf="+cof">rtc5/a>->5f="+cof/a>(5a href="+code=da9052" claruct 5a href="+code=da9052" class="sref">da90525/a> *5a href="+cod2_ALARM_H_REG" 90525/a>,45a href="+code=DA9052_COUNT_S_REG" class="sref">DA9052_COUNT_S_REG>>
 L139">41395/a>        5a href="+codrtc-da90512.c#L94" id
 L94" class=1"line19am>
 L74">4 745/a>        5a href="+code=1ode=ret" 1class="sref">ret5/a>;v4 815/a>        5a href="+code=1uint8_t" 1class="sref">uint8_t5/a>1 5a h1ef="+c>
 L135">41355/a>v
 L97">4 975/a>        5a href="+code=1rtc_tm" c1lass="sref">rtc_tm5/a>-&1gt;5a1href="rtc_read_time5/a>(struct 5a href="+co*5a 52" class="sref">da90525/a> hre*5a href="+code=da9052" class="sref">5/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="+code=rtc_tm" class="sref"wkal class="sref">da9ref"wkal ce=rtc_time" class="sral class="sref">da9al ce=rt>
 L137">41375/a>{vrtc_tm5/a>-&1gt;5a1href=" L33">4 335/a>        int 5a href="+c1tc-da90521.c#L100" id
 L100" class1="lin19f="drivers/rtsc-da9052.c#L141" id
 L141" class="line" nam>
 L141">41415/a>vret5/a> = 5a h2ef="+2ode=da9052_reg+code=rtc_tm" class="sref">rtc_tm5/a>)vda9al ce=rtde=v" class="sref">v5rtc_tm5/a>)v
 L141">41415/a>v *5a href="+code=rtc" class="sref">rtc5/a> = 5a href="+code=data" class="sref">data5/a>;vdev5/a>);v
 L139">41395/a>        5a href="+co2+code=ret2 class="sref">ret5/a> !=20) {v20 nam>
 L123">41235/a>static int 5a href="2ef="+code2rtc_err" class="sref">rt2_err520ref="+code=tm_hour" class="sref">da9052_reg_read5/a>(5a href="+code=da9052" clacode=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,40);v
 L62">4 625/a>                5a href2n 5a href2"+code=ret" class="sref"2ret5/2>;v
 L113">41135/a>                retu2ivers/rtc2rtc-da9052.c#L106" id
 L206" c20       if (5a hre1" namrtc-da9052.c#L131" id
 L131" class="line" nam>
 L131">41315/a>        }v
 L107">41075/a>        5a href="+co2e=v" clas2="sref">v5/a>[0] = 5a hr2f="+c2de=rtc_tm" class="sref">rtc_tref">da9052_reg_read5/a>(5a href="+code=da9052" cla9052" class="sref">da90525/a> *5a href="+cod2_ALARM_H_REG" 90525/a>,45a href="+code=DA9052_COUNT_S_REG" class="sref">DA9052_COUNT_S_REG5/a>,46,45a href= id
 L87" class="e" nam>>
 L139">41395/a>        5a href="+co2e=v" clas2="sref">v5/a>[1] = 5a hr2f="+c2041135/a>                retu2i9v" clas2=c#L100" id
 L100" class2f="+c20>(5a href="+code=da90amrtc-da9052.c#L131" id
 L131" class="line" nam>
 L131">41315/a>        }v
 L111">41115/a>        5a href="+co2e=ret" cl2ss="sref">ret5/a> = 5a h2ef="+2ode=da9052_group_write" class="sref">da9052_group_write5/a>(5a href="+code=da90acode=rtc" class="sref">rtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,40);v>
 L139">41395/a>        5a href="+co2+code=ret2 class="sref">ret5/a> &l2; 0)v21 nam>
 L123">41235/a>static int 5a href="2n 5a href2"+code=ret" class="sref"2ret5/21) ? 1 : 0;v
 L131">41315/a>        }v
 L135">41355/a>vret5/a> = 5a h2ef="+21 nam>
 L136">41365/a>static int 5a href="2         2 5a href="+code=DA9052_R2C_YEA219052_rtc_read_time5/a>(struct 5a href="+coa> *5airqef="+co="sref">rtc5/a>->5a hrea> *5airqef="+co"+code=da9052" class="sref">5/a>,4struct 5a href="+code=rtc_time" class="sref">rtc_time5/a> *5a href="unsignedad_time5/a>(struct 5f="+cof">rtc5/a>->5f="+cof/a>(>
 L113">41135/a>                retu2+code=ret2 class="sref">ret5/a> !=20)v
 L138">41385/a>        struct 5a hr2ef="+code2rtc_err" class="sref">rt2_err521tc5/a> *5a href="+code=rtc" class="sref">rtc5/a> = 5a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata5/a>(5a href="+code=dev" class="sref">dev5/a>);v
 L139">41395/a>        5a href=a hr2e9v" clas22.c#L120" id
 L120" clas2="lin2" nam>
 L120">41205/a>        return 5a hr2f="+code=2et" class="sref">ret5/a>2vrtc5/a>->5a href="+code=da9052" class="sref">da90525/a>,40);v(struct 5f="+cof">rtc5/a>->5f="+cof/a>(>>
 L139">41395/a>        5a href=a hr2c/rtc-da9252.c#L122" id
 L122" cla2s="li2e" nam>
 L122">41225/a>v
 L123">41235/a>static int 5a href="2code=da9022_rtc_get_alarm_status" 2lass=2sref">da9052_constg+code=rtc_tm" class="sref"c_get_ope=da9052" class=ref"c_get_ope="dria9052.c#L121" ide=da90acodope=da9052" class=de=da90acodope/a>(5a >
 L138">41385/a>        struct 5a hr2c/rtc-da9252.c#L125" id
 L125" cla2s="li22;v*5a href="+coef="dr5/a>(5a href="+code=da90acodde=device" class="sref">device5/a> *5a href="+co>
 L116">41165/a>                    2+code=ret2 class="sref">ret5/a>;v<2 href2"drivers/rtc/r.a9052.c#L131" i*5a vice" class="sref">*5a vice"+co ef="dr5/a>(5a href="+code=da90acod*5a vice" class="sref">device5/a> *5a vice"+co>
 L116">41165/a>                    2+        22.c#L127" id
 L127" clas2="lin226vrtc5/a> *5a href="+cof="dr5/a>(5a href="+code=da90acodde=de52" class="sref">da90525/a> hre=da9052" c"+co>
 L116">41165/a>                    2+code=ret2ss="sref">ret5/a> = 5a h2ef="+2ode=da9052_reg.a9052.c#L131" i*5a 52" class="sref">da9*5a href="+coef="dr5/a>(5a href="+code=da90acod*5a 52" class="sref">da90525/a> hre*5a href="+co>
 L116">41165/a>                    2+f="+code2 class="sref">ret5/a> &l2; 0) 2v *5airqef="+co="sref">rtc5/a>a> *5airqef="+co"+cor5/a>(5a href="+code=da90acoda> *5airqef="+co="sref">rtc5/a>->5a hrea> *5airqef="+co"+co>
 L116">41165/a>                    2+9v" clas2rtc_err" class="sref">rt2_err52a>(5a }>
 L139">41395/a>        5a href=a hr2n 5a href2"+code=ret" class="sref"2ret5/23 nam>
 L111">41115/a>        5a href="+co2ivers/rtc2rtc-da9052.c#L132" id
 L232" c23>da9052_rtc_enable_alarm5/a>(struct 5a hreprobo="sref">rtc5/a>->5a hreprobo"+code=da9052" class="sref"platfo*5a>5/a>,4struct 5a hrefplatfo*5a>5/a>,get_drvdata" class="spid
 L139" class="lpine" nam
 L111">41115/a>        5a href="+co2irtc-da902ss="sref">ret5/a> &=25a hr23nam>
 L33">4 335/a>        int 5a href="+c2ef="+code2ret" class="sref">ret5/a2 >20) ? 1 : 0;vrtc5/a> = 5a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata5/a>( L81">4 815/a>        5a href="+code=2c/rtc-da9252.c#L135" id
 L135" cla2s="li23drivers/rtc/rtc-da9052.c#L95" id
 L95" class="line" nam>
 L95">4 955/a>        5a href="+code=2/rtc-da9022.c#L136" id
 L136" clas2="lin2" nam>
 L136">41365/a>static int 5a href="2code=da9022_rtc_read_time" class="2ref">23de=rtc_valid_tm" class="sref"ef">dev_get_drvdata5/a>(5a href="+code=dev" cm_kzallo5/a> = 5a href="+ cm_kzallo5"+cod;vrtc_time5/a> *5a href="+izeofde=da9052" class="sref">da905rtc5/a> = 5a href="+code=dev_get_)amme5/a>(struct 5GFP_KERNEL/a> = 5a href="GFP_KERNEL/a>(>>
 L139">41395/a>        5a href=a hr2c/rtc-da9252.c#L138" id
 L138" cla2s="li23ref="drivers/rtc/!tm" class="sref"ef">dev_get_drvdata5/a>(m
 L111">41115/a>        5a href="+co2if="+code2a9052_rtc" class="sref">2a905223;vdev_get_drvdaENOMEMam>
 L95">4 955/a>        5a href="+code=2/9v" clas2 class="sref">uint8_t5/a2 5a h23 nam>
 L120">41205/a>        return 5a hr2+code=ret2 class="sref">ret5/a>;v<2 href24ref="+code=tm_year" class="sref25/a>,40);vdev5/a>);vrtc_time5/a> *5a href.a9052.c#L131" iparenL95" class="lineparenL/a>(>>
 L139">41395/a>        5a href=a hr2/rtc-da9022.c#L142" id
 L142" clas2="lin24de=da9052_group_write" classplatfo*5asss="sref">dev5/a>);v/rtc-da9052.c#L139" pid
 L139" class="lpine" natm_year" class="sref">dev_get_drvdata5/a>(m>
 L139">41395/a>        5a href=a hr2/rtc-da902ss="sref">ret5/a> = 5a h2ef="+2ode=da9052_group_read" class="ef25/a>,40);v,46,45a href="+code=IRQss="li25/a>,40);v
 L95">4 955/a>        5a href="+code=2+code=ret2 class="sref">ret5/a> &l2; 0) 24ref="+code=tm_hour" class="sref">da9052_reg_read5/a>(5a href="+code=da9052" claequest_irq25/a>,40);vda90525/a>,40);v(struct 5"ef25/a>,40);v4 955/a>        5a href="+code=2+/rtc-da92rtc_err" class="sref">rt2_err52a>(5a href="+code=rtc"""""""""""""""""le_alarm5/a>(struct 5a hreirq25/a>,40);vdev_get_drvdata5/a>(m>
 L139">41395/a>        5a href=a hr2/rtc-da902ass="line" nam>
 L143">42435/a2        if (5as/rtc/rtc-da9052.c#L103" id
 L103" class="line" nam>
 L103">41035/a>                5a h2"+code=re2t" class="sref">ret5/a>;2vda90525/a>,45spa  class="string">"Failed to read RTC time : %d\n"5/spa  ,45a href="+code=ret"irqtc/gief=_rton fclass
 L1da905rs/rtc/rtc-da9052.c#L143" i2rtc-da90522.c#L48" id
 L48" class=2"line24;v
 L78">4 785/a>        }v
 L79">4 795/a>virqretur2n_t5/24 nam>
 L120">41205/a>        return 5a hr2rtc-da90522.c#L51" id
 L51" class=2"line25ref="+code=tm_year" class="sref25/a>,45spa  class="string">"Failed t"ef">dev_get_drvdata5/a>(5a href="+code=devode=>5/a>,_c/giefe->5a href="+code=>5/a>,_c/giefe-/rtc-da9052.c#L139" pid
 L139" class="lpine" naivers/rtc/rtc-da9052 cla L139" class="l claquot;5;vrtc_time5/a> *5a href=
 L120">41205/a>        return 5a hr2rrtc-da9029052_rtc" class="sref">d2a905225class="sref">DA9052_RTC_MIN5/a>,45a hhhhhhhh;v(c-da9052.c#L145" THIS_MODULE=da9052" class=THIS_MODULE" nam>
 L1da905rs/rtc/rtc-da9052.c#L143" i2ode=ret" 2class="sref">ret5/a>;vda90525/a>,45spa  class="string">"Failed tref">dev_get_drvdata5/a>(mm
 L111">41115/a>        5a href="+co2tc-da90522.c#L54" id
 L54" class="2line"25ref="+code=tmivers/rtc/rtc-da9052.c#L78" idPTR_ER.c#L84" id
 L84"PTR_ER.052" class="sref">da90525/a>,45spa  class="string">"Failed tref">dev_get_drvdata5/a>(m>
 L1da905rs/rtc/rtc-da9052.c#L143" i2o/rtc-da92s="sref">ret5/a> = 5a hr2ef="+25am>
 L15">4 155/a>#include <ret5/a> <2; 0) 25de=da9052_regc/rtc-d
 L81">4 815/a>        5a href="+code=2="+code=r2tc_err" class="sref">rtc2_err52a>(5a  L79">4 795/a>v25nam>

 L135">41355/a>v(struct 5a hre=dmove" class="sref">device5/a> *5move"+code=da9052" class="sref"platfo*5a>5/a>,4struct 5a hrefplatfo*5a>5/a>,get_drvdata" class="spid
 L139" class="lpine" nam
 L111">41115/a>        5a href="+co2tc-da90522.c#L60" id
 L60" class="2line"25f="+c>
 L103">41035/a>                5a h2ode=ret" 2class="sref">ret5/a> &am2p;45a26de=da9052_reg+code=rtc_tm" class="ssref">rtc5/a> = 5a href="+code=dev_get_drvdata" class="sref">dev_get_drvdata5/a>(5a href="+code=devpid
 L139" class="lpine" naivers/rtc/rtc-da9052.f">rtc_time5/a> *5a href.a9052.c#L131" iplatfo*5a>f">dev5/a>);v/rtc L81">4 815/a>        5a href="+code=2="+code=d2a9052_rtc_enable_alarm" 2class26am>
 L92">4 925/a>static int 5a href="+co2="+code=r2tc_upda e_irq" class="sr2ef">r26de=da9052_group_read" class="f">>5/a>,_unc/giefe->5a href="+code=>5/a>,_unc/giefe-052" class="sref">da90525/a>,45spa  class="string">"Failed tref">dev_get_drvdata5/a>(m>
 L1da905rs/rtc/rtc-da9052.c#L143" i2oc-da90522rtc/rtc-da9052.c#L64" id2
 L6426ref="+code=tm_hour" class="splatfo*5asss="sref">dev5/a>);v/rtc-da9052.c#L139" pid
 L139" class="lpine" natm_year" class="sNULL/a> = 5a href="NULL/a>(m>
 L1da905rs/rtc/rtc-da9052.c#L143" i2o/rtc-da92tc_upda e_irq" class="sr2ef">r26am>
 L15">4 155/a>#include <4 815/a>        5a href="+code=2"+code=IR2Q_HANDLED" class="sref">2IRQ_H26>(5a  L79">4 795/a>v

 L135">41355/a>v55/a>dev5/a>);v="dria9052.c#L121" ide=da90acodlatfo*5a>55/a>dev5/a>de=da90acodlatfo*                2+code=ret2 class="sref">ret5e" nam>
 2_read_alarm" class="sref2">da926f="+code=v" c.a9052.c#L131" iprobo="sref">rtc5/a>probo"+codr5/a>(5a href="+code=da90acodprobo="sref">rtc5/a>->5a hreprobo"+co=
 L120">41205/a>        return 5a hr2rtc-da90522.c#L71" id
 L71" class=2"line270="+code=v" c.a9052.c#L131" i=dmove" class="sref">*5move"+cor5/a>(5a href="+code=da90acoddemove" class="sref">device5/a> *5move"+co=
 L120">41205/a>        return 5a hr2r"+code=d2class="sref">ret5/a>;v55/a>dev5/a>datfo*                2+code=ret2 class="sref">ret5r"+code=r2class="sref">uint8_t5/a>2 5a h2ef="+code=v" c+code=tm.a9052.c#L131" i cla L139" class="l claquot dr5/aspa  ,45a href="+code=ret""sref"-assrivers/rtc/rtcL95">4 955/a>        5a href="+code=2rc-da90522.c#L74" id
 L74" class="2line"27ref="+code=tmivers/rt.a9052.c#L131" iowno*5a>55/a>dev5/a>owno*"+codr5/a>(5a href="+coTHIS_MODULE=da9052" class=THIS_MODULE" nacL95">4 955/a>        5a href="+code=2r/rtc-da92s="sref">ret5/a> = 5a hr2ef="+2ode=da9052_gro}cL95">4 955/a>        5a href="+code=2rc-da90522class="sref">ret5/a> != 20) {v27de=da}>
 L139">41395/a>        5a href=a hr2="+code=r2tc_err" class="sref">rtc2_err527 nam>
 L107">41075/a>        5a href="+co25a href="2+code=ret" class="sref">2ret5/27nam>
a>(5a href="+comodule_platfo*5a>55/a>dev5/a>);v55/a>/rtc-da9052.c#L139" de=da90acodlatfo*5a>55/a>dev5/a>de=da90acodlatfo*    m>
 L1da905rs/rtc/rtc-da9052.c#L143" i2ers/rtc/r2tc-da9052.c#L79" id
 L792" cla27am>
 L69">4 695/a>static int 5a href="+co2tc-da90522.c#L80" id
 L80" class="2line"2nam>
 da9052.c#L139" MODULE_AUTHO.c#L84" id
 L84"MODULE_AUTHO./rtc-dspa  ,45a href="+code=ret"David Dajun Chenne" ndchen@diasemi.coming"rivers/rtc/rtm>
 L1da905rs/rtc/rtc-da9052.c#L143" i2rtc_tm" c2lass="sref">rtc_tm5/a>-&2gt;5a28 nam>da9052.c#L139" MODULE_DESCRIPTwtc-da9052.c#L133"7">41075/a>       tya>       tya> class="2line"2n6(5 href="+code=2="+code=r2tc_err" class="sr ialog 955/a> PMICtc/rtc-da9052.c#L143" i2rtc_tm" c2lass="sref">rtc_tm5>;vda9052_rtc_enable_a2arm5/2>(struPTwtc-da9052.c#L133"7"LICENS nacL95">4 955/aL133"7"LICENS "2n6(5 href="+code=2="+code=r2tcGPLtc/rtc-da9052.c#L143" i2rtc_tm" c2lass="sref">rtc_tm5t5/a>2 5a5a18nam>
 L33">4 335/a> 2     2int 5ac#L84" id
 L84"MODULE_ALIAS/rtc-dspa  ,45a href="+LIAS"2n6(5 href="+code=2="+code=r2tc#L139" d:>4 955/a>        5a hre.c#L143" i2rtc_tm" c2lass="sref">rtc_tm5ass="2lin5a1href="+code=tmtc-da9022.c#L241" id


The original LXR software by the L143" i2rhttp://source9" ge.net/projects/lxnc>LXR 905munity = 5a this experimental tm" tc/rby L143" i2rmailto:lxn@odeux.no">lxn@odeux.noa>f"> lxn.odeux.no kindly ho5/adrby L143" i2rhttp://www.redpill-odepro.no">Redpill Ldepro AS"2n6, prosemassof Ldeuxsref"ult"+c and oper/rtc/s serref"s sinceL1415.