Lines Matching refs:data
56 struct rtd119x_rtc *data = dev_get_drvdata(dev);
59 val = readl_relaxed(data->base + RTD_RTCCR);
61 writel_relaxed(val, data->base + RTD_RTCCR);
64 writel(val, data->base + RTD_RTCCR);
69 struct rtd119x_rtc *data = dev_get_drvdata(dev);
72 val = readl_relaxed(data->base + RTD_RTCEN);
76 writel_relaxed(0x5a, data->base + RTD_RTCEN);
78 writel_relaxed(0, data->base + RTD_RTCEN);
84 struct rtd119x_rtc *data = dev_get_drvdata(dev);
91 tm->tm_sec = (readl_relaxed(data->base + RTD_RTCSEC) & RTD_RTCSEC_RTCSEC_MASK) >> 1;
92 tm->tm_min = readl_relaxed(data->base + RTD_RTCMIN) & RTD_RTCMIN_RTCMIN_MASK;
93 tm->tm_hour = readl_relaxed(data->base + RTD_RTCHR) & RTD_RTCHR_RTCHR_MASK;
94 day = readl_relaxed(data->base + RTD_RTCDATE1) & RTD_RTCDATE1_RTCDATE1_MASK;
95 day |= (readl_relaxed(data->base + RTD_RTCDATE2) & RTD_RTCDATE2_RTCDATE2_MASK) << 8;
96 sec = (readl_relaxed(data->base + RTD_RTCSEC) & RTD_RTCSEC_RTCSEC_MASK) >> 1;
108 year = data->base_year;
128 struct rtd119x_rtc *data = dev_get_drvdata(dev);
132 if (1900 + tm->tm_year < data->base_year)
136 for (i = data->base_year; i < 1900 + tm->tm_year; i++)
145 writel_relaxed((tm->tm_sec << 1) & RTD_RTCSEC_RTCSEC_MASK, data->base + RTD_RTCSEC);
146 writel_relaxed(tm->tm_min & RTD_RTCMIN_RTCMIN_MASK, data->base + RTD_RTCMIN);
147 writel_relaxed(tm->tm_hour & RTD_RTCHR_RTCHR_MASK, data->base + RTD_RTCHR);
148 writel_relaxed(day & RTD_RTCDATE1_RTCDATE1_MASK, data->base + RTD_RTCDATE1);
149 writel_relaxed((day >> 8) & RTD_RTCDATE2_RTCDATE2_MASK, data->base + RTD_RTCDATE2);
168 struct rtd119x_rtc *data;
172 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
173 if (!data)
176 platform_set_drvdata(pdev, data);
177 data->base_year = 2014;
179 data->base = devm_platform_ioremap_resource(pdev, 0);
180 if (IS_ERR(data->base))
181 return PTR_ERR(data->base);
183 data->clk = of_clk_get(pdev->dev.of_node, 0);
184 if (IS_ERR(data->clk))
185 return PTR_ERR(data->clk);
187 ret = clk_prepare_enable(data->clk);
189 clk_put(data->clk);
193 val = readl_relaxed(data->base + RTD_RTCACR);
195 writel_relaxed(RTD_RTCACR_RTCPWR, data->base + RTD_RTCACR);
199 writel_relaxed(0, data->base + RTD_RTCMIN);
200 writel_relaxed(0, data->base + RTD_RTCHR);
201 writel_relaxed(0, data->base + RTD_RTCDATE1);
202 writel_relaxed(0, data->base + RTD_RTCDATE2);
207 data->rtcdev = devm_rtc_device_register(&pdev->dev, "rtc",
209 if (IS_ERR(data->rtcdev)) {
211 clk_disable_unprepare(data->clk);
212 clk_put(data->clk);
213 return PTR_ERR(data->rtcdev);
221 struct rtd119x_rtc *data = platform_get_drvdata(pdev);
225 clk_disable_unprepare(data->clk);
226 clk_put(data->clk);