[PATCH net-next v5 11/11] net: ti: prueth: Adds PTP OC Support for AM335x and AM437x
Parvathi Pudi
parvathi at couthit.com
Wed Apr 16 05:03:50 PDT 2025
Hi,
> On Mon, Apr 14, 2025 at 07:37:51PM +0530, Parvathi Pudi wrote:
>> From: Roger Quadros <rogerq at ti.com>
>>
>> PRU-ICSS IEP module, which is capable of timestamping RX and
>> TX packets at HW level, is used for time synchronization by PTP4L.
>>
>> This change includes interaction between firmware/driver and user
>> application (ptp4l) with required packet timestamps.
>>
>> RX SOF timestamp comes along with packet and firmware will rise
>> interrupt with TX SOF timestamp after pushing the packet on to the wire.
>>
>> IEP driver available in upstream linux as part of ICSSG assumes 64-bit
>> timestamp value from firmware.
>>
>> Enhanced the IEP driver to support the legacy 32-bit timestamp
>> conversion to 64-bit timestamp by using 2 fields as below:
>> - 32-bit HW timestamp from SOF event in ns
>> - Seconds value maintained in driver.
>>
>> Currently ordinary clock (OC) configuration has been validated with
>> Linux ptp4l.
>>
>> Signed-off-by: Roger Quadros <rogerq at ti.com>
>> Signed-off-by: Andrew F. Davis <afd at ti.com>
>> Signed-off-by: Basharath Hussain Khaja <basharath at couthit.com>
>> Signed-off-by: Parvathi Pudi <parvathi at couthit.com>
>
> ...
>
>> diff --git a/drivers/net/ethernet/ti/icssg/icss_iep.h
>> b/drivers/net/ethernet/ti/icssg/icss_iep.h
>> index 0bdca0155abd..437153350197 100644
>> --- a/drivers/net/ethernet/ti/icssg/icss_iep.h
>> +++ b/drivers/net/ethernet/ti/icssg/icss_iep.h
>> @@ -47,6 +47,11 @@ enum {
>> ICSS_IEP_MAX_REGS,
>> };
>>
>> +enum iep_revision {
>> + IEP_REV_V1_0 = 0,
>> + IEP_REV_V2_1
>> +};
>> +
>> /**
>> * struct icss_iep_plat_data - Plat data to handle SoC variants
>> * @config: Regmap configuration data
>> @@ -57,11 +62,13 @@ struct icss_iep_plat_data {
>> const struct regmap_config *config;
>> u32 reg_offs[ICSS_IEP_MAX_REGS];
>> u32 flags;
>> + enum iep_revision iep_rev;
>> };
>
> Please add iep_rev to the Kernel doc for struct icss_iep_plat_data.
>
> Flagged by ./scripts/kernel-doc -none
>
Sure, we will update the documentation in the next version.
> ...
>
>> diff --git a/drivers/net/ethernet/ti/icssm/icssm_prueth.h
>> b/drivers/net/ethernet/ti/icssm/icssm_prueth.h
>
> ...
>
>> @@ -337,6 +343,7 @@ enum pruss_device {
>> struct prueth_private_data {
>> enum pruss_device driver_data;
>> const struct prueth_firmware fw_pru[PRUSS_NUM_PRUS];
>> + enum fw_revision fw_rev;
>> bool support_lre;
>> bool support_switch;
>> };
>
> And, likewise, please add fw_rev to the Kernel doc for struct
> prueth_private_data.
>
Sure, we will add fw_rev to the Kernel doc in the next version.
Thanks and Regards,
Parvathi.
More information about the linux-arm-kernel
mailing list