Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 621bdecc authored by Richard Cochran's avatar Richard Cochran Committed by David S. Miller
Browse files

dp83640: let the periodic pin from the module parameter be a default.



This patch changes the driver use the new pin configuration method when
programming the periodic output signal.

Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent faa89716
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -298,7 +298,7 @@ static u64 phy2txts(struct phy_txts *p)
	return ns;
}

static void periodic_output(struct dp83640_clock *clock,
static int periodic_output(struct dp83640_clock *clock,
			   struct ptp_clock_request *clkreq, bool on)
{
	struct dp83640_private *dp83640 = clock->chosen;
@@ -306,7 +306,14 @@ static void periodic_output(struct dp83640_clock *clock,
	u32 sec, nsec, pwidth;
	u16 gpio, ptp_trig, trigger, val;

	gpio = on ? gpio_tab[PEROUT_GPIO] : 0;
	if (on) {
		gpio = 1 + ptp_find_pin(clock->ptp_clock, PTP_PF_PEROUT, 0);
		if (gpio < 1)
			return -EINVAL;
	} else {
		gpio = 0;
	}

	trigger = PER_TRIGGER;

	ptp_trig = TRIG_WR |
@@ -323,7 +330,7 @@ static void periodic_output(struct dp83640_clock *clock,
		ext_write(0, phydev, PAGE5, PTP_TRIG, ptp_trig);
		ext_write(0, phydev, PAGE4, PTP_CTL, val);
		mutex_unlock(&clock->extreg_lock);
		return;
		return 0;
	}

	sec = clkreq->perout.start.sec;
@@ -352,6 +359,7 @@ static void periodic_output(struct dp83640_clock *clock,
	ext_write(0, phydev, PAGE4, PTP_CTL, val);

	mutex_unlock(&clock->extreg_lock);
	return 0;
}

/* ptp clock methods */
@@ -484,8 +492,7 @@ static int ptp_dp83640_enable(struct ptp_clock_info *ptp,
	case PTP_CLK_REQ_PEROUT:
		if (rq->perout.index != 0)
			return -EINVAL;
		periodic_output(clock, rq, on);
		return 0;
		return periodic_output(clock, rq, on);

	default:
		break;