diff mbox series

[2/2] rtc: s5m: Drop S5M8763 support

Message ID 20230131183008.4451-3-virag.david003@gmail.com (mailing list archive)
State Accepted
Commit a3165abaa9bda3e729b434a3e684fcfa205f252a
Headers show
Series Remove SEC S5M MFDs with no compatibles | expand

Commit Message

David Virag Jan. 31, 2023, 6:30 p.m. UTC
The S5M8763 MFD has no device tree compatible, and since board file
support for it was removed, there's no way to use this MFD. After
removing the remaining code for it from the MFD driver, also remove
support for it in the s5m RTC driver, and all remaining references to
it.

Signed-off-by: David Virag <virag.david003@gmail.com>
---
 drivers/rtc/rtc-s5m.c            | 82 ++------------------------------
 include/linux/mfd/samsung/core.h |  1 -
 include/linux/mfd/samsung/irq.h  | 50 -------------------
 3 files changed, 3 insertions(+), 130 deletions(-)

Comments

Krzysztof Kozlowski Feb. 2, 2023, 11:28 a.m. UTC | #1
On 31/01/2023 19:30, David Virag wrote:
> The S5M8763 MFD has no device tree compatible, and since board file
> support for it was removed, there's no way to use this MFD. After
> removing the remaining code for it from the MFD driver, also remove
> support for it in the s5m RTC driver, and all remaining references to
> it.
> 
> Signed-off-by: David Virag <virag.david003@gmail.com>


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


Best regards,
Krzysztof
Lee Jones Feb. 23, 2023, 2:15 p.m. UTC | #2
On Tue, 31 Jan 2023, David Virag wrote:

> The S5M8763 MFD has no device tree compatible, and since board file
> support for it was removed, there's no way to use this MFD. After
> removing the remaining code for it from the MFD driver, also remove
> support for it in the s5m RTC driver, and all remaining references to
> it.
> 
> Signed-off-by: David Virag <virag.david003@gmail.com>
> ---
>  drivers/rtc/rtc-s5m.c            | 82 ++------------------------------

>  include/linux/mfd/samsung/core.h |  1 -
>  include/linux/mfd/samsung/irq.h  | 50 -------------------

Acked-by: Lee Jones <lee@kernel.org>

>  3 files changed, 3 insertions(+), 130 deletions(-)
Lee Jones Feb. 23, 2023, 2:18 p.m. UTC | #3
On Thu, 23 Feb 2023, Lee Jones wrote:

> On Tue, 31 Jan 2023, David Virag wrote:
> 
> > The S5M8763 MFD has no device tree compatible, and since board file
> > support for it was removed, there's no way to use this MFD. After
> > removing the remaining code for it from the MFD driver, also remove
> > support for it in the s5m RTC driver, and all remaining references to
> > it.
> > 
> > Signed-off-by: David Virag <virag.david003@gmail.com>
> > ---
> >  drivers/rtc/rtc-s5m.c            | 82 ++------------------------------
> 
> >  include/linux/mfd/samsung/core.h |  1 -
> >  include/linux/mfd/samsung/irq.h  | 50 -------------------
> 
> Acked-by: Lee Jones <lee@kernel.org>

Actually, looks like this should probably go in via MFD, so I need an
RTC Ack.

> >  3 files changed, 3 insertions(+), 130 deletions(-)
Alexandre Belloni Feb. 23, 2023, 3:03 p.m. UTC | #4
On 23/02/2023 14:18:10+0000, Lee Jones wrote:
> On Thu, 23 Feb 2023, Lee Jones wrote:
> 
> > On Tue, 31 Jan 2023, David Virag wrote:
> > 
> > > The S5M8763 MFD has no device tree compatible, and since board file
> > > support for it was removed, there's no way to use this MFD. After
> > > removing the remaining code for it from the MFD driver, also remove
> > > support for it in the s5m RTC driver, and all remaining references to
> > > it.
> > > 
> > > Signed-off-by: David Virag <virag.david003@gmail.com>
> > > ---
> > >  drivers/rtc/rtc-s5m.c            | 82 ++------------------------------
> > 
> > >  include/linux/mfd/samsung/core.h |  1 -
> > >  include/linux/mfd/samsung/irq.h  | 50 -------------------
> > 
> > Acked-by: Lee Jones <lee@kernel.org>
> 
> Actually, looks like this should probably go in via MFD, so I need an
> RTC Ack.

There were comments on 1/2 so I was expecting a v2.
David Virag Feb. 23, 2023, 3:11 p.m. UTC | #5
On Thu, 2023-02-23 at 16:03 +0100, Alexandre Belloni wrote:
> On 23/02/2023 14:18:10+0000, Lee Jones wrote:
> > On Thu, 23 Feb 2023, Lee Jones wrote:
> > 
> > > On Tue, 31 Jan 2023, David Virag wrote:
> > > 
> > > > The S5M8763 MFD has no device tree compatible, and since board
> > > > file
> > > > support for it was removed, there's no way to use this MFD.
> > > > After
> > > > removing the remaining code for it from the MFD driver, also
> > > > remove
> > > > support for it in the s5m RTC driver, and all remaining
> > > > references to
> > > > it.
> > > > 
> > > > Signed-off-by: David Virag <virag.david003@gmail.com>
> > > > ---
> > > >  drivers/rtc/rtc-s5m.c            | 82 ++----------------------
> > > > --------
> > > 
> > > >  include/linux/mfd/samsung/core.h |  1 -
> > > >  include/linux/mfd/samsung/irq.h  | 50 -------------------
> > > 
> > > Acked-by: Lee Jones <lee@kernel.org>
> > 
> > Actually, looks like this should probably go in via MFD, so I need
> > an
> > RTC Ack.
> 
> There were comments on 1/2 so I was expecting a v2.
> 
> 

Krzysztof commented there about the removal of an enum value that's
actually removed in 2/2 since it would break the RTC driver if it was
removed in 1/2. He realised that and corrected himself. No need for v2
AFAIK, unless something else is found.

The patch should definitely go via one tree (or by waiting for it to be
merged upstream, I guess) since the order has to be kept.

Best regards,
David
Krzysztof Kozlowski Feb. 23, 2023, 3:22 p.m. UTC | #6
On 23/02/2023 16:11, David Virag wrote:
> On Thu, 2023-02-23 at 16:03 +0100, Alexandre Belloni wrote:
>> On 23/02/2023 14:18:10+0000, Lee Jones wrote:
>>> On Thu, 23 Feb 2023, Lee Jones wrote:
>>>
>>>> On Tue, 31 Jan 2023, David Virag wrote:
>>>>
>>>>> The S5M8763 MFD has no device tree compatible, and since board
>>>>> file
>>>>> support for it was removed, there's no way to use this MFD.
>>>>> After
>>>>> removing the remaining code for it from the MFD driver, also
>>>>> remove
>>>>> support for it in the s5m RTC driver, and all remaining
>>>>> references to
>>>>> it.
>>>>>
>>>>> Signed-off-by: David Virag <virag.david003@gmail.com>
>>>>> ---
>>>>>  drivers/rtc/rtc-s5m.c            | 82 ++----------------------
>>>>> --------
>>>>
>>>>>  include/linux/mfd/samsung/core.h |  1 -
>>>>>  include/linux/mfd/samsung/irq.h  | 50 -------------------
>>>>
>>>> Acked-by: Lee Jones <lee@kernel.org>
>>>
>>> Actually, looks like this should probably go in via MFD, so I need
>>> an
>>> RTC Ack.
>>
>> There were comments on 1/2 so I was expecting a v2.
>>
>>
> 
> Krzysztof commented there about the removal of an enum value that's
> actually removed in 2/2 since it would break the RTC driver if it was
> removed in 1/2. He realised that and corrected himself. No need for v2
> AFAIK, unless something else is found.

Yep. I also gave review tags for both of these.

Best regards,
Krzysztof
Alexandre Belloni March 6, 2023, 8:58 p.m. UTC | #7
On 31/01/2023 19:30:07+0100, David Virag wrote:
> The S5M8763 MFD has no device tree compatible, and since board file
> support for it was removed, there's no way to use this MFD. After
> removing the remaining code for it from the MFD driver, also remove
> support for it in the s5m RTC driver, and all remaining references to
> it.
> 
> Signed-off-by: David Virag <virag.david003@gmail.com>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
>  drivers/rtc/rtc-s5m.c            | 82 ++------------------------------
>  include/linux/mfd/samsung/core.h |  1 -
>  include/linux/mfd/samsung/irq.h  | 50 -------------------
>  3 files changed, 3 insertions(+), 130 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c
> index 4243fe6d3842..dad294a0ce2a 100644
> --- a/drivers/rtc/rtc-s5m.c
> +++ b/drivers/rtc/rtc-s5m.c
> @@ -85,7 +85,7 @@ struct s5m_rtc_reg_config {
>  	unsigned int write_alarm_udr_mask;
>  };
>  
> -/* Register map for S5M8763 and S5M8767 */
> +/* Register map for S5M8767 */
>  static const struct s5m_rtc_reg_config s5m_rtc_regs = {
>  	.regs_count		= 8,
>  	.time			= S5M_RTC_SEC,
> @@ -236,7 +236,6 @@ static int s5m_check_peding_alarm_interrupt(struct s5m_rtc_info *info,
>  
>  	switch (info->device_type) {
>  	case S5M8767X:
> -	case S5M8763X:
>  		ret = regmap_read(info->regmap, S5M_RTC_STATUS, &val);
>  		val &= S5M_ALARM0_STATUS;
>  		break;
> @@ -299,7 +298,6 @@ static int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
>  
>  	data |= info->regs->write_alarm_udr_mask;
>  	switch (info->device_type) {
> -	case S5M8763X:
>  	case S5M8767X:
>  		data &= ~S5M_RTC_TIME_EN_MASK;
>  		break;
> @@ -329,38 +327,6 @@ static int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
>  	return ret;
>  }
>  
> -static void s5m8763_data_to_tm(u8 *data, struct rtc_time *tm)
> -{
> -	tm->tm_sec = bcd2bin(data[RTC_SEC]);
> -	tm->tm_min = bcd2bin(data[RTC_MIN]);
> -
> -	if (data[RTC_HOUR] & HOUR_12) {
> -		tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x1f);
> -		if (data[RTC_HOUR] & HOUR_PM)
> -			tm->tm_hour += 12;
> -	} else {
> -		tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x3f);
> -	}
> -
> -	tm->tm_wday = data[RTC_WEEKDAY] & 0x07;
> -	tm->tm_mday = bcd2bin(data[RTC_DATE]);
> -	tm->tm_mon = bcd2bin(data[RTC_MONTH]);
> -	tm->tm_year = bcd2bin(data[RTC_YEAR1]) + bcd2bin(data[RTC_YEAR2]) * 100;
> -	tm->tm_year -= 1900;
> -}
> -
> -static void s5m8763_tm_to_data(struct rtc_time *tm, u8 *data)
> -{
> -	data[RTC_SEC] = bin2bcd(tm->tm_sec);
> -	data[RTC_MIN] = bin2bcd(tm->tm_min);
> -	data[RTC_HOUR] = bin2bcd(tm->tm_hour);
> -	data[RTC_WEEKDAY] = tm->tm_wday;
> -	data[RTC_DATE] = bin2bcd(tm->tm_mday);
> -	data[RTC_MONTH] = bin2bcd(tm->tm_mon);
> -	data[RTC_YEAR1] = bin2bcd(tm->tm_year % 100);
> -	data[RTC_YEAR2] = bin2bcd((tm->tm_year + 1900) / 100);
> -}
> -
>  static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  {
>  	struct s5m_rtc_info *info = dev_get_drvdata(dev);
> @@ -385,10 +351,6 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
>  		return ret;
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
> -		s5m8763_data_to_tm(data, tm);
> -		break;
> -
>  	case S5M8767X:
>  	case S2MPS15X:
>  	case S2MPS14X:
> @@ -412,9 +374,6 @@ static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)
>  	int ret = 0;
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
> -		s5m8763_tm_to_data(tm, data);
> -		break;
>  	case S5M8767X:
>  	case S2MPS15X:
>  	case S2MPS14X:
> @@ -444,7 +403,6 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  {
>  	struct s5m_rtc_info *info = dev_get_drvdata(dev);
>  	u8 data[RTC_MAX_NUM_TIME_REGS];
> -	unsigned int val;
>  	int ret, i;
>  
>  	ret = regmap_bulk_read(info->regmap, info->regs->alarm0, data,
> @@ -453,15 +411,6 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  		return ret;
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
> -		s5m8763_data_to_tm(data, &alrm->time);
> -		ret = regmap_read(info->regmap, S5M_ALARM0_CONF, &val);
> -		if (ret < 0)
> -			return ret;
> -
> -		alrm->enabled = !!val;
> -		break;
> -
>  	case S5M8767X:
>  	case S2MPS15X:
>  	case S2MPS14X:
> @@ -500,10 +449,6 @@ static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)
>  	dev_dbg(info->dev, "%s: %ptR(%d)\n", __func__, &tm, tm.tm_wday);
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
> -		ret = regmap_write(info->regmap, S5M_ALARM0_CONF, 0);
> -		break;
> -
>  	case S5M8767X:
>  	case S2MPS15X:
>  	case S2MPS14X:
> @@ -531,7 +476,6 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
>  {
>  	int ret;
>  	u8 data[RTC_MAX_NUM_TIME_REGS];
> -	u8 alarm0_conf;
>  	struct rtc_time tm;
>  
>  	ret = regmap_bulk_read(info->regmap, info->regs->alarm0, data,
> @@ -543,11 +487,6 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
>  	dev_dbg(info->dev, "%s: %ptR(%d)\n", __func__, &tm, tm.tm_wday);
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
> -		alarm0_conf = 0x77;
> -		ret = regmap_write(info->regmap, S5M_ALARM0_CONF, alarm0_conf);
> -		break;
> -
>  	case S5M8767X:
>  	case S2MPS15X:
>  	case S2MPS14X:
> @@ -585,10 +524,6 @@ static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
>  	int ret;
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
> -		s5m8763_tm_to_data(&alrm->time, data);
> -		break;
> -
>  	case S5M8767X:
>  	case S2MPS15X:
>  	case S2MPS14X:
> @@ -655,7 +590,6 @@ static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
>  	int ret;
>  
>  	switch (info->device_type) {
> -	case S5M8763X:
>  	case S5M8767X:
>  		/* UDR update time. Default of 7.32 ms is too long. */
>  		ret = regmap_update_bits(info->regmap, S5M_RTC_UDR_CON,
> @@ -729,11 +663,6 @@ static int s5m_rtc_probe(struct platform_device *pdev)
>  		info->regs = &s2mps13_rtc_regs;
>  		alarm_irq = S2MPS14_IRQ_RTCA0;
>  		break;
> -	case S5M8763X:
> -		regmap_cfg = &s5m_rtc_regmap_config;
> -		info->regs = &s5m_rtc_regs;
> -		alarm_irq = S5M8763_IRQ_ALARM0;
> -		break;
>  	case S5M8767X:
>  		regmap_cfg = &s5m_rtc_regmap_config;
>  		info->regs = &s5m_rtc_regs;
> @@ -786,13 +715,8 @@ static int s5m_rtc_probe(struct platform_device *pdev)
>  
>  	info->rtc_dev->ops = &s5m_rtc_ops;
>  
> -	if (info->device_type == S5M8763X) {
> -		info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_0000;
> -		info->rtc_dev->range_max = RTC_TIMESTAMP_END_9999;
> -	} else {
> -		info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000;
> -		info->rtc_dev->range_max = RTC_TIMESTAMP_END_2099;
> -	}
> +	info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000;
> +	info->rtc_dev->range_max = RTC_TIMESTAMP_END_2099;
>  
>  	if (!info->irq) {
>  		clear_bit(RTC_FEATURE_ALARM, info->rtc_dev->features);
> diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
> index 07aae649a86f..a212b9f72bc9 100644
> --- a/include/linux/mfd/samsung/core.h
> +++ b/include/linux/mfd/samsung/core.h
> @@ -36,7 +36,6 @@
>  struct gpio_desc;
>  
>  enum sec_device_type {
> -	S5M8763X,
>  	S5M8767X,
>  	S2MPA01,
>  	S2MPS11X,
> diff --git a/include/linux/mfd/samsung/irq.h b/include/linux/mfd/samsung/irq.h
> index 6cfe4201a106..3fd2775eb9bb 100644
> --- a/include/linux/mfd/samsung/irq.h
> +++ b/include/linux/mfd/samsung/irq.h
> @@ -194,54 +194,4 @@ enum s5m8767_irq {
>  #define S5M8767_IRQ_RTC1S_MASK		(1 << 4)
>  #define S5M8767_IRQ_WTSR_MASK		(1 << 5)
>  
> -enum s5m8763_irq {
> -	S5M8763_IRQ_DCINF,
> -	S5M8763_IRQ_DCINR,
> -	S5M8763_IRQ_JIGF,
> -	S5M8763_IRQ_JIGR,
> -	S5M8763_IRQ_PWRONF,
> -	S5M8763_IRQ_PWRONR,
> -
> -	S5M8763_IRQ_WTSREVNT,
> -	S5M8763_IRQ_SMPLEVNT,
> -	S5M8763_IRQ_ALARM1,
> -	S5M8763_IRQ_ALARM0,
> -
> -	S5M8763_IRQ_ONKEY1S,
> -	S5M8763_IRQ_TOPOFFR,
> -	S5M8763_IRQ_DCINOVPR,
> -	S5M8763_IRQ_CHGRSTF,
> -	S5M8763_IRQ_DONER,
> -	S5M8763_IRQ_CHGFAULT,
> -
> -	S5M8763_IRQ_LOBAT1,
> -	S5M8763_IRQ_LOBAT2,
> -
> -	S5M8763_IRQ_NR,
> -};
> -
> -#define S5M8763_IRQ_DCINF_MASK		(1 << 2)
> -#define S5M8763_IRQ_DCINR_MASK		(1 << 3)
> -#define S5M8763_IRQ_JIGF_MASK		(1 << 4)
> -#define S5M8763_IRQ_JIGR_MASK		(1 << 5)
> -#define S5M8763_IRQ_PWRONF_MASK		(1 << 6)
> -#define S5M8763_IRQ_PWRONR_MASK		(1 << 7)
> -
> -#define S5M8763_IRQ_WTSREVNT_MASK	(1 << 0)
> -#define S5M8763_IRQ_SMPLEVNT_MASK	(1 << 1)
> -#define S5M8763_IRQ_ALARM1_MASK		(1 << 2)
> -#define S5M8763_IRQ_ALARM0_MASK		(1 << 3)
> -
> -#define S5M8763_IRQ_ONKEY1S_MASK	(1 << 0)
> -#define S5M8763_IRQ_TOPOFFR_MASK	(1 << 2)
> -#define S5M8763_IRQ_DCINOVPR_MASK	(1 << 3)
> -#define S5M8763_IRQ_CHGRSTF_MASK	(1 << 4)
> -#define S5M8763_IRQ_DONER_MASK		(1 << 5)
> -#define S5M8763_IRQ_CHGFAULT_MASK	(1 << 7)
> -
> -#define S5M8763_IRQ_LOBAT1_MASK		(1 << 0)
> -#define S5M8763_IRQ_LOBAT2_MASK		(1 << 1)
> -
> -#define S5M8763_ENRAMP                  (1 << 4)
> -
>  #endif /*  __LINUX_MFD_SEC_IRQ_H */
> -- 
> 2.39.0
>
Lee Jones March 16, 2023, 3:12 p.m. UTC | #8
On Tue, 31 Jan 2023, David Virag wrote:

> The S5M8763 MFD has no device tree compatible, and since board file
> support for it was removed, there's no way to use this MFD. After
> removing the remaining code for it from the MFD driver, also remove
> support for it in the s5m RTC driver, and all remaining references to
> it.
>
> Signed-off-by: David Virag <virag.david003@gmail.com>
> ---
>  drivers/rtc/rtc-s5m.c            | 82 ++------------------------------
>  include/linux/mfd/samsung/core.h |  1 -
>  include/linux/mfd/samsung/irq.h  | 50 -------------------
>  3 files changed, 3 insertions(+), 130 deletions(-)

Applied, thanks

--
Lee Jones [李琼斯]
diff mbox series

Patch

diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c
index 4243fe6d3842..dad294a0ce2a 100644
--- a/drivers/rtc/rtc-s5m.c
+++ b/drivers/rtc/rtc-s5m.c
@@ -85,7 +85,7 @@  struct s5m_rtc_reg_config {
 	unsigned int write_alarm_udr_mask;
 };
 
-/* Register map for S5M8763 and S5M8767 */
+/* Register map for S5M8767 */
 static const struct s5m_rtc_reg_config s5m_rtc_regs = {
 	.regs_count		= 8,
 	.time			= S5M_RTC_SEC,
@@ -236,7 +236,6 @@  static int s5m_check_peding_alarm_interrupt(struct s5m_rtc_info *info,
 
 	switch (info->device_type) {
 	case S5M8767X:
-	case S5M8763X:
 		ret = regmap_read(info->regmap, S5M_RTC_STATUS, &val);
 		val &= S5M_ALARM0_STATUS;
 		break;
@@ -299,7 +298,6 @@  static int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
 
 	data |= info->regs->write_alarm_udr_mask;
 	switch (info->device_type) {
-	case S5M8763X:
 	case S5M8767X:
 		data &= ~S5M_RTC_TIME_EN_MASK;
 		break;
@@ -329,38 +327,6 @@  static int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)
 	return ret;
 }
 
-static void s5m8763_data_to_tm(u8 *data, struct rtc_time *tm)
-{
-	tm->tm_sec = bcd2bin(data[RTC_SEC]);
-	tm->tm_min = bcd2bin(data[RTC_MIN]);
-
-	if (data[RTC_HOUR] & HOUR_12) {
-		tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x1f);
-		if (data[RTC_HOUR] & HOUR_PM)
-			tm->tm_hour += 12;
-	} else {
-		tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x3f);
-	}
-
-	tm->tm_wday = data[RTC_WEEKDAY] & 0x07;
-	tm->tm_mday = bcd2bin(data[RTC_DATE]);
-	tm->tm_mon = bcd2bin(data[RTC_MONTH]);
-	tm->tm_year = bcd2bin(data[RTC_YEAR1]) + bcd2bin(data[RTC_YEAR2]) * 100;
-	tm->tm_year -= 1900;
-}
-
-static void s5m8763_tm_to_data(struct rtc_time *tm, u8 *data)
-{
-	data[RTC_SEC] = bin2bcd(tm->tm_sec);
-	data[RTC_MIN] = bin2bcd(tm->tm_min);
-	data[RTC_HOUR] = bin2bcd(tm->tm_hour);
-	data[RTC_WEEKDAY] = tm->tm_wday;
-	data[RTC_DATE] = bin2bcd(tm->tm_mday);
-	data[RTC_MONTH] = bin2bcd(tm->tm_mon);
-	data[RTC_YEAR1] = bin2bcd(tm->tm_year % 100);
-	data[RTC_YEAR2] = bin2bcd((tm->tm_year + 1900) / 100);
-}
-
 static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
 	struct s5m_rtc_info *info = dev_get_drvdata(dev);
@@ -385,10 +351,6 @@  static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)
 		return ret;
 
 	switch (info->device_type) {
-	case S5M8763X:
-		s5m8763_data_to_tm(data, tm);
-		break;
-
 	case S5M8767X:
 	case S2MPS15X:
 	case S2MPS14X:
@@ -412,9 +374,6 @@  static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)
 	int ret = 0;
 
 	switch (info->device_type) {
-	case S5M8763X:
-		s5m8763_tm_to_data(tm, data);
-		break;
 	case S5M8767X:
 	case S2MPS15X:
 	case S2MPS14X:
@@ -444,7 +403,6 @@  static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 {
 	struct s5m_rtc_info *info = dev_get_drvdata(dev);
 	u8 data[RTC_MAX_NUM_TIME_REGS];
-	unsigned int val;
 	int ret, i;
 
 	ret = regmap_bulk_read(info->regmap, info->regs->alarm0, data,
@@ -453,15 +411,6 @@  static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 		return ret;
 
 	switch (info->device_type) {
-	case S5M8763X:
-		s5m8763_data_to_tm(data, &alrm->time);
-		ret = regmap_read(info->regmap, S5M_ALARM0_CONF, &val);
-		if (ret < 0)
-			return ret;
-
-		alrm->enabled = !!val;
-		break;
-
 	case S5M8767X:
 	case S2MPS15X:
 	case S2MPS14X:
@@ -500,10 +449,6 @@  static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)
 	dev_dbg(info->dev, "%s: %ptR(%d)\n", __func__, &tm, tm.tm_wday);
 
 	switch (info->device_type) {
-	case S5M8763X:
-		ret = regmap_write(info->regmap, S5M_ALARM0_CONF, 0);
-		break;
-
 	case S5M8767X:
 	case S2MPS15X:
 	case S2MPS14X:
@@ -531,7 +476,6 @@  static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
 {
 	int ret;
 	u8 data[RTC_MAX_NUM_TIME_REGS];
-	u8 alarm0_conf;
 	struct rtc_time tm;
 
 	ret = regmap_bulk_read(info->regmap, info->regs->alarm0, data,
@@ -543,11 +487,6 @@  static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)
 	dev_dbg(info->dev, "%s: %ptR(%d)\n", __func__, &tm, tm.tm_wday);
 
 	switch (info->device_type) {
-	case S5M8763X:
-		alarm0_conf = 0x77;
-		ret = regmap_write(info->regmap, S5M_ALARM0_CONF, alarm0_conf);
-		break;
-
 	case S5M8767X:
 	case S2MPS15X:
 	case S2MPS14X:
@@ -585,10 +524,6 @@  static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
 	int ret;
 
 	switch (info->device_type) {
-	case S5M8763X:
-		s5m8763_tm_to_data(&alrm->time, data);
-		break;
-
 	case S5M8767X:
 	case S2MPS15X:
 	case S2MPS14X:
@@ -655,7 +590,6 @@  static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)
 	int ret;
 
 	switch (info->device_type) {
-	case S5M8763X:
 	case S5M8767X:
 		/* UDR update time. Default of 7.32 ms is too long. */
 		ret = regmap_update_bits(info->regmap, S5M_RTC_UDR_CON,
@@ -729,11 +663,6 @@  static int s5m_rtc_probe(struct platform_device *pdev)
 		info->regs = &s2mps13_rtc_regs;
 		alarm_irq = S2MPS14_IRQ_RTCA0;
 		break;
-	case S5M8763X:
-		regmap_cfg = &s5m_rtc_regmap_config;
-		info->regs = &s5m_rtc_regs;
-		alarm_irq = S5M8763_IRQ_ALARM0;
-		break;
 	case S5M8767X:
 		regmap_cfg = &s5m_rtc_regmap_config;
 		info->regs = &s5m_rtc_regs;
@@ -786,13 +715,8 @@  static int s5m_rtc_probe(struct platform_device *pdev)
 
 	info->rtc_dev->ops = &s5m_rtc_ops;
 
-	if (info->device_type == S5M8763X) {
-		info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_0000;
-		info->rtc_dev->range_max = RTC_TIMESTAMP_END_9999;
-	} else {
-		info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000;
-		info->rtc_dev->range_max = RTC_TIMESTAMP_END_2099;
-	}
+	info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000;
+	info->rtc_dev->range_max = RTC_TIMESTAMP_END_2099;
 
 	if (!info->irq) {
 		clear_bit(RTC_FEATURE_ALARM, info->rtc_dev->features);
diff --git a/include/linux/mfd/samsung/core.h b/include/linux/mfd/samsung/core.h
index 07aae649a86f..a212b9f72bc9 100644
--- a/include/linux/mfd/samsung/core.h
+++ b/include/linux/mfd/samsung/core.h
@@ -36,7 +36,6 @@ 
 struct gpio_desc;
 
 enum sec_device_type {
-	S5M8763X,
 	S5M8767X,
 	S2MPA01,
 	S2MPS11X,
diff --git a/include/linux/mfd/samsung/irq.h b/include/linux/mfd/samsung/irq.h
index 6cfe4201a106..3fd2775eb9bb 100644
--- a/include/linux/mfd/samsung/irq.h
+++ b/include/linux/mfd/samsung/irq.h
@@ -194,54 +194,4 @@  enum s5m8767_irq {
 #define S5M8767_IRQ_RTC1S_MASK		(1 << 4)
 #define S5M8767_IRQ_WTSR_MASK		(1 << 5)
 
-enum s5m8763_irq {
-	S5M8763_IRQ_DCINF,
-	S5M8763_IRQ_DCINR,
-	S5M8763_IRQ_JIGF,
-	S5M8763_IRQ_JIGR,
-	S5M8763_IRQ_PWRONF,
-	S5M8763_IRQ_PWRONR,
-
-	S5M8763_IRQ_WTSREVNT,
-	S5M8763_IRQ_SMPLEVNT,
-	S5M8763_IRQ_ALARM1,
-	S5M8763_IRQ_ALARM0,
-
-	S5M8763_IRQ_ONKEY1S,
-	S5M8763_IRQ_TOPOFFR,
-	S5M8763_IRQ_DCINOVPR,
-	S5M8763_IRQ_CHGRSTF,
-	S5M8763_IRQ_DONER,
-	S5M8763_IRQ_CHGFAULT,
-
-	S5M8763_IRQ_LOBAT1,
-	S5M8763_IRQ_LOBAT2,
-
-	S5M8763_IRQ_NR,
-};
-
-#define S5M8763_IRQ_DCINF_MASK		(1 << 2)
-#define S5M8763_IRQ_DCINR_MASK		(1 << 3)
-#define S5M8763_IRQ_JIGF_MASK		(1 << 4)
-#define S5M8763_IRQ_JIGR_MASK		(1 << 5)
-#define S5M8763_IRQ_PWRONF_MASK		(1 << 6)
-#define S5M8763_IRQ_PWRONR_MASK		(1 << 7)
-
-#define S5M8763_IRQ_WTSREVNT_MASK	(1 << 0)
-#define S5M8763_IRQ_SMPLEVNT_MASK	(1 << 1)
-#define S5M8763_IRQ_ALARM1_MASK		(1 << 2)
-#define S5M8763_IRQ_ALARM0_MASK		(1 << 3)
-
-#define S5M8763_IRQ_ONKEY1S_MASK	(1 << 0)
-#define S5M8763_IRQ_TOPOFFR_MASK	(1 << 2)
-#define S5M8763_IRQ_DCINOVPR_MASK	(1 << 3)
-#define S5M8763_IRQ_CHGRSTF_MASK	(1 << 4)
-#define S5M8763_IRQ_DONER_MASK		(1 << 5)
-#define S5M8763_IRQ_CHGFAULT_MASK	(1 << 7)
-
-#define S5M8763_IRQ_LOBAT1_MASK		(1 << 0)
-#define S5M8763_IRQ_LOBAT2_MASK		(1 << 1)
-
-#define S5M8763_ENRAMP                  (1 << 4)
-
 #endif /*  __LINUX_MFD_SEC_IRQ_H */