Commit Graph

1318669 Commits

Author SHA1 Message Date
Meenakshi Aggarwal
1c8bcc7da5 LF-14497: Increasing retry count to 1000
Sometimes retries exceed 500 and cause V2X suspend/resume
to fail occasionally

Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta@nxp.com>
2025-02-27 12:03:03 +01:00
Clark Wang
38dacdf87e LF-14660-5 arm64: dts: imx943-evk-sgmii: add new dts to support SGMII ports
Add a new imx943-evk-sgmii.dts to support 1G/2.5G SGMII ports on imx943-evk
board. The default dts is used to support MII.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 18:11:08 +08:00
Clark Wang
ad9c6a67ba LF-14660-4 arm64: configs: imx_v8_defconfig: built in MAXLINEAR phy driver
To support GPY215C on imx943 evk board, built in this driver by default.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 18:08:25 +08:00
Clark Wang
0b911020de LF-14660-3 net: pcs: xpcs: add iMX94 PCS and PHY support
The PCS/PHY used by mx94 is similar to mx95, but there are the following
differences:
1) Only supports 1G SGMII and 2.5G SGMII
2) There are two lanes supported, both supporting up to 2.5G SGMII

Since two lanes need to be configured separately, unlike iMX95 only has
one lane, after configuring one lane, if need to configure another lane,
need to unlock the hardware lock used to configure the first lane before
configuring the second lane normally.
Therefore, the locking and unlocking process of xpcs phy hardware lock
is optimized.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 18:08:25 +08:00
Clark Wang
7d3fbbe3fa LF-14660-2 net: pcs: xpcs: prepare to add support for iMX94 PCS and PHY
Although the iMX943's XPCS and PHY versions are different from mx95,
their XPCS/PHY IDs are exactly the same as mx95.
So, the two versions cannot be distinguished by ID.
Therefore, pass in version when calling xpcs_create_mdiodev_with_phy()
to distinguish them.

Since the PCS and PHY of iMX943 support two lanes, portid needs to be
configured in PHY when configuring different lanes.
Therefore, portid is also passed to the xpcs_create_mdiodev_with_phy()
function for corresponding configuration.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 18:08:24 +08:00
Clark Wang
df9ce920bb LF-14660-1 net: enetc: add xpcs port init API
Add xpcs port init API to init the different lane of xpcs and serdes.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 18:08:24 +08:00
Wei Fang
4d8442c8d7 LF-14260-31 arm64: dts: imx943-evk: add NETC Switch support
Add NETC Switch support, both swp0 and swp1 work at MII mode, and
swp2 works at RGMII mode. Also enable NETC Timer instance 0 to
support PTP for switch.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Frank Li <frank.li@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:23 +08:00
Wei Fang
5d10d19281 LF-14260-30 arm64: imx_v8_defconfig: enable NETC Switch driver
Enable DSA and NETC_SWITCH.
Enable redirect and generic actions for NETC Switch.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:22 +08:00
Wei Fang
6972f34e92 LF-14260-29 net: dsa: netc: add initial PM support
Currently, suspend/resume of NETC Switch is not fully supported. This is
just a temporary patch to solve the call trace and crash problems caused
by Switch during system suspend/resume. There is no reason to block the
system suspend/resume process due to the switch problem. So this is a
quick fix and full support will be added in the future.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:22 +08:00
Wei Fang
659c1df634 LF-14260-28 net: dsa: netc: add debugfs interface to dump drop counters
The statistics of each user port can be obtained through ethtool,
but the statistics of the CPU port cannot be obtained by ethtoll.
Besides, ethtool obtains many statistical values, but only a few
key statistical values are needed in the actual debugging process.
To facilitate debugging, the debugfs interface is added to obtain
key statistical information of the specified port.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:21 +08:00
Wei Fang
808d607786 LF-14260-27 net: dsa: netc: add ethtool statistic support
Add ethtool statistic support

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:14 +08:00
Wei Fang
50cd5ba06f LF-14260-26 net: dsa: netc: add PTP support
The switch supports both one-step and two-step timestamp. For ingress
PTP packets, the filtering rules are set to redirect them to the CPU
port via the ingress port filter table. And the capture timestamp is
recorded in the switch tag (To_Host tag, subType=1).

For egress PTP packets, the switch tag(To_Port tag) is used to specify
whether to perform one-step timestamping (subType=1)or two-step
timestamping (subType=2). If two-step timestamping is performed, the
switch automatically generates a response packet to record the transmit
timestamp in the switch tag (To_Host tag, subType=2) and sends this
response packet to the CPU port.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:12 +08:00
Wei Fang
486c1749a2 LF-14260-25 net: dsa: netc: add debugfs interfaces for debugging
Some functions of NETC Switch are configured through registers, and some
functions are configured through various tables. To facilitate debugging,
we added the debugfs interfaces to dump relevant registers and tables
information.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:10 +08:00
Wei Fang
85bb3bf5f1 LF-14260-24 net: enetc: add interface to show the IPFT flower
Add a generic debugfs interface to netc-lib to show the information
about the IPFT flower, which will be used by both ENETC driver and
NETC Switch driver.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:09 +08:00
Wei Fang
fd220ad26d LF-14260-23 net: dsa: netc: add FLOW_ACTION_POLICE support
In the previous patch, FLOW_ACTION_POLICE needs to be used with
FLOW_ACTION_TRAP or FLOW_ACTION_REDIRECT. In some scenarios, only rate
limit may be required, so the support of FLOW_ACTION_POLICE is added
separately.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:09 +08:00
Wei Fang
724c92b472 LF-14260-22 net: enetc: add stream police related interfaces
Since both ENETC and Switch support ingress port filter table (IPFT),
and the IPFT can be used for stream police. So add the related APIs
to netc-lib, so that these generic APIs can be used by enetc driver
and switch driver.

Example command for configruing POLICE:

tc qdisc add dev swp0 clsact

tc filter add dev swp0 ingress flower skip_sw dst_mac \
52:8e:e6:f1:9d:f1 action police mtu 2000 rate 100mbit burst 100k \
conform-exceed drop

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:08 +08:00
Wei Fang
d234ecc1a1 LF-14260-21 net: dsa: netc: add trap and redirect support
For FLOW_ACTION_TRAP, the matched frames received will be redirected to
the CPU port.

For FLOW_ACTION_REDIRECT, the matched frames received will be redirected
to a specified switch port.

In addition, it also supports POLICE action with TRAP or REDIRECT action.

Example command for configuring REDIRECT:

tc qdisc add dev swp0 clsact

tc filter add dev swp0 ingress flower skip_sw dst_mac 66:9E:7D:89:9A:03 \
action mirred egress redirect dev swp1

Example command for configuring TRAP:

tc qdisc add dev swp0 clsact

tc filter add dev swp0 ingress chain 21000 protocol 802.1Q flower \
skip_sw dst_mac 16:80:31:29:90:18 vlan_ethtype ipv4 vlan_id 100 \
vlan_prio 0 action trap

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:06 +08:00
Wei Fang
9f7f5bd169 LF-14260-20 net: enetc: add netc_ipft_keye_construct() to netc-lib
Both ENETC and Switch support ingress port filter table, so add
a common interface netc_ipft_keye_construct() to the netc-lib,
which converts flow_rule to ipft_keye_data.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:05 +08:00
Wei Fang
bdcb598c24 LF-14260-19 net: dsa: netc: add PSFP support
The NETC switch supports per stream filtering and policing (PSFP), and
this feature is implemented based on IEEE 802.1Qci.
Currently, the stream identification only supports two methods: DMAC +
VLAN and SMAC + VLAN. This is not a hardware limitation, but the current
driver uses a relatively simple method to implement this feature. In the
future, the ingress port filter table will be introduced to support more
accurate stream identification.

Example for PSFP with hardware offload:

tc qdisc add dev swp1 ingress
tc filter add dev swp1 parent ffff: protocol 802.1Q chain 1 flower \
skip_sw src_mac 00:04:9f:08:dc:5b vlan_ethtype ipv4 vlan_id 100 \
vlan_prio 6 action gate index 1 base-time 100000 sched-entry open \
800000 1 -1 sched-entry close 800000 -1 -1 action police mtu 2000 \
rate 20mbit burst 100k conform-exceed drop

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:04 +08:00
Wei Fang
8f35c00520 LF-14260-18 net: dsa: netc: add Time-Aware Scheduler support
The NETC Switch supports time based transmission mechanism, which is
implemented based on IEEE 802.1Qbv. Each traffic class has a gate, which
controls if the traffic class is open or closed. Only frames in traffic
classes with open gate are eligible for transmission. The gate state in
each traffic class is controlled by the gate control list. A gate control
list consists of an ordered list of gate control  entries, where each
entry specifies an 8 bit gate state vector where each bit (one per gate),
indicates whether the gate is open or closed. The gate control entry also
specifies the time duration for the states.

Example for TAPRIO with hardware offload:

tc qdisc replace dev swp0 parent root handle 200 taprio num_tc 8 \
map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
base-time 100000 sched-entry S ff 80000 sched-entry S 00 80000 \
max-sdu 1000 1000 1000 1000 1000 1000 1000 1000 flags 0x2

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:02 +08:00
Wei Fang
897db7d4b4 LF-14260-17 ptp: netc: get current time from TMR_CUR_TIME registers
TMR_CUR_TIME registers are used to get the current time, the time is
calculated by adding TMROFF_H/L with TMR_CNT_H/L register. Currently,
the TMROFF_H/L register is not used and its default value is 0, so
the value read from TMR_CNT registers is the same as TMR_CUR_TIME_H/L.
However, in order to prevent the potential issue caused by the use of
the TMROFF_H/L register in the future, it is best to use TMR_CUR_TIME
registers to obtain the current time from now on.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:58:02 +08:00
Wei Fang
f3635c70e3 LF-14260-16 net: dsa: netc: add MAC Merge layer support
The NETC switch supports IEEE 802.1Qbu preemption. A physical port which
supports preemption contains 2 MACs (MAC 0 and 1). When frame preemption
is enabled, MAC 0 handles express traffic, and MAC 1 handles preemptible
traffic. The two MACs are merged on one port as defined in 802.3 Clause
99.

Example command for configuring 802.1Qbu:

tc qdisc add dev swp0 parent root handle 100: mqprio num_tc 8 \
map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
fp P P P P E E E E hw 1

ethtool --set-mm swp0 verify-enabled off tx-enabled on \
pmac-enabled on

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:55 +08:00
Wei Fang
9bcce08f6a LF-14260-15 net: dsa: netc: add support for CBS offload
The Credit-based Shaper (CBS) is implemented as per IEEE 802.1Qav, which
is needed for applications requiring bandwidth allocation. The CBS acts
independently, per traffic class, to control the bandwidth distribution
between normal traffic and time-sensitive traffic with respect to the
total link bandwidth available. In order for the CBS algorithm to operate
as intended, it is necessary for all traffic classes that support the
algorithm to be numerically higher than any traffic classes that support
the strict priority algorithm.

The switch has 8 traffic classes, CBS should be enabled on numerically
highest traffic class(es).so a maximum of 7 traffic classes is supported
with CBS enabled. However, only traffic class 6 and 7 support to enable
CBD in the current, other low-priority traffic classes do not support it.

Example command for configuring CBS offload (port speed is 100Mbps):

tc qdisc add dev swp0 parent root handle 100: mqprio num_tc 8 \
map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 hw 1

tc qdisc replace dev swp0 parent 100:8 cbs idleslope 10800 \
sendslope -89200 hicredit 12 locredit -113 offload 1

tc qdisc replace dev swp0 parent 100:7 cbs idleslope 20700 \
sendslope -79300 hicredit 153 locredit -1389 offload 1

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:54 +08:00
Wei Fang
33e634ac93 LF-14260-14 net: dsa: netc: add support for mqprio offload
NETC switch supports maximum 8 TCs, to simplify the implementation,
only one TXQ per TC is supported. In addition, the preemptible_tcs
field in struct tc_mqprio_qopt_offload is not supported at preset,
it will be supported in a subsequent patch.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:52 +08:00
Wei Fang
7946e38e2c LF-14260-13 net: dsa: netc: add buffer pool support
The buffer pool is a quantity of memory available for buffering a group
of flows (e.g. frames having the same priority, frames received from the
same port), while waiting to be transmitted on a port. The buffer pool
tracks internal memory consumption with upper bound limits and optionally
a non-shared portion when associated with a shared buffer pool. Currently
the shared buffer pool has not been associated with the buffer pool. We
will add the shared buffer pool support in the future. In addition, the
flow control feature of the switch is also implemented through the buffer
pool.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:51 +08:00
Wei Fang
5b5e66e993 LF-14260-12 net: dsa: netc: add basic switch functions support
Add basic switch functions support, such as FDB table, VLAN filter and
table and so on.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:49 +08:00
Wei Fang
756a6d001e LF-14260-11 net: dsa: netc: add phylink MAC operations
Add phylink MAC operations for switch port.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:48 +08:00
Wei Fang
2349f9607f LF-14260-10 net: dsa: netc: introduce NXP NETC Switch driver for i.MX94
NETC provides full 802.1Q Ethernet switch functionality, advanced QoS
with 8 traffic classes and 4 drop resilience levels, and a full range
of TSN standards capabilities. The current patch only introduces the
NETC Switch driver and provides only the probe/remove interfaces. The
complete functionality will be supported by subsequent patches.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:45 +08:00
Wei Fang
cdd82c7c71 LF-14260-9 net: dsa: add NETC switch tag support i.MX94
The NXP switch tag is a proprietary header added to frames after the
source MAC address. The switch tag has 3 types, and different types
have multiple subtypes, the details are as follows.

- Forward NXP switch tag (Type=0) – Represents forwarded frames.
  - SubType=0 - Normal frame processing.

- To_Port NXP switch tag (Type=1) – Represents frames that are to be
  sent to a specific switch port.
  - SubType=0 - No request to perform timestamping.
  - SubType=1 - Request to perform one-step timestamping.
  - SubType=2 - Request to perform two-step timestamping.

- To_Host NXP switch tag (Type=2) – Represents frames redirected or
  copied to the switch management port.
  - SubType=0 - Received frames redirected or copied to the switch
    management port.
  - SubType=1 - Received frames redirected or copied to the switch
    management port with captured timestamp at the switch port where
    the frame was received.
  - SubType=2 - Transmit timestamp response (two-step timestamping).

Therefore, the length of different type switch tag is different, the
minimum length is 6 bytes, the maximum length is 14 bytes.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:43 +08:00
Wei Fang
790131e9f0 LF-14260-8 net: enetc: add frame modification data table support
Add frame modification data table support.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:42 +08:00
Wei Fang
0aecf7a641 LF-14260-7 net: enetc: add buffer pool table support
Add buffer pool table and shared buffer pool table support.

The Buffer Pool table contains buffer pool configuration and operational
information. Each entry corresponds to a buffer pool.

The Shared Buffer Pool table contains shared buffer pool configuration
and operational information. Each entry corresponds to a shared buffer
pool.

A buffer pool is a quantity of memory available for buffering a group
of flows (e.g. frames having the same priority, frames received from
the same port), while waiting to be transmitted on a port. A buffer
pool tracks internal memory consumption with upper bound limits and
optionally a non-shared portion when associated with a shared buffer
pool.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:40 +08:00
Wei Fang
e75208f8fd LF-14260-6 net: enetc: add Frame Modification Table support
Ingress and egress frame modification actions are specified in this
table if Frame Modification entry ID (FM_EID) is used as an index.
This table is implemented as a linear array of words, accessed using
an index (0, 1, 2, ..., n) that uniquely identifies a word within the
array.  For this table, each table entry occupies one word (one to one
corresponding between words and entries).

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:39 +08:00
Wei Fang
43e66f0dbf LF-14260-5 net: enetc: add Egress Count Table support
Egress related statistics are maintained in this table. The Egress
Count table is implemented as a linear array of entries accessed
using an index (0, 1, 2, ..., n) that uniquely identifies an entry
within the array. Egress Counter Entry ID (EC_EID) is used as an
index to an entry in this table. The EC_EID is specified in the
Egress Treatment table. Egress Count table entries are always
present and enabled.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:38 +08:00
Wei Fang
200dffffe2 LF-14260-4 net: enetc: add Egress Sequence Recovery Table support
The Egress Sequence Recovery table contains one entry per FRER recovery
function (implemented as per 802.1CB), and each entry contains a number
of configuration elements, whose value is set when the table entries are
configured, and operational elements, which are managed by the hardware
and can be queried by software. Whether or not a FRER recovery function
is to be performed is specified in the Egress Treatment table, and if so
then the Egress Treatment table also provides an index into a Egress
Sequence Recovery table.
The Egress Sequence Recovery table is implemented as a linear array of
entries accessed using an index (0,1, 2, ..., n) that uniquely identifies
an entry within the array.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:37 +08:00
Wei Fang
dba0aee3ac LF-14260-3 net: enetc: add Egress Treatment Table support
Each entry in the Egress Treatment table contains the egress packet
processing actions to be applied to a grouping or scope of packets
exiting on a particular egress port of the switch. A scope of packets,
for example, could be the packets exiting a particular VLAN, matching
a particular 802.1Q bridge forwarding entry or belonging to a stream
identified at ingress. The Egress Treatment table is implemented as a
linear array of entries accessed using an index (0,1, 2, ..., n) that
uniquely identifies an entry within the array.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:36 +08:00
Wei Fang
499bca6554 LF-14260-2 net: enetc: add VLAN filter table support
The VLAN filter table contains configuration and control information for
each VLAN configured on the switch. Each VLAN entry includes the VLAN
port membership, which FID to use in the FDB lookup, which spanning tree
group to use, the egress frame modification actions to apply to a frame
exiting form this VLAN, and various configuration and control parameters
for this VLAN.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:35 +08:00
Wei Fang
1bf6775ea2 LF-14260-1 net: enetc: add FDB table support
The FDB table is used for MAC learning lookups and MAC forwarding lookups.
Each table entry includes information such as a FID and MAC address that
may be unicast or multicast and a forwarding destination field containing
a port bitmap identifying the associated port(s) with the MAC address.
FDB table entries can be static or dynamic. Static entries are added from
software whereby dynamic entries are added either by software or by the
hardware as MAC addresses are learned in the datapath.

Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Clark Wang <xiaoning.wang@nxp.com>
2025-02-27 17:57:33 +08:00
Haibo Chen
b9beff0c32 LF-14560 can: flexcan: disable transceiver during system PM
During system PM, if no wakeup requirement, disable transceiver,
this can save power.

Reviewed-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2025-02-27 11:32:37 +08:00
Clark Wang
1d34b97c2c LF-14663-3 arm64: dts: imx943: enable netc_timer1
Enable netc_timer1 to make NETC default synchronous clock work.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 10:17:07 +08:00
Clark Wang
95b1dda89b LF-14663-2 net: enetc: add ptp timer selection support
imx95 has only one timer, so a fixed timer configuration is used in
the driver.
On imx94, there are a total of 3 timers. Therefore, it is necessary
to determine which timer to use based on the configuration of dts.

Add nxp,ptp-timer property to decide which timer to use.
If this property does not exist, the default configuration will be
used. The default configuration may be not usable if the timer is
not enabled in dts.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 10:17:07 +08:00
Clark Wang
9935e74c19 LF-14663-1 ptp: ptp_netc: update the parameters used by netc_timer_get_phc_index()
Synchronize parameters used by netc_timer_get_phc_index() with upstream
versions.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 10:17:07 +08:00
Clark Wang
4488550dc4 LF-14658-2 arm64: configs: imx_v8_defconfig: built in DP83848 phy driver
To support DP83848 on imx943 evk board, built in this driver by default.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 10:17:07 +08:00
Clark Wang
321d1e97da LF-14658-1 net: phy: dp83848: add RMII mode switch support
Add the config set RMII mode when the interface is returned RMII mode.

Signed-off-by: Clark Wang <xiaoning.wang@nxp.com>
Reviewed-by: Wei Fang <wei.fang@nxp.com>
2025-02-27 10:17:07 +08:00
Laurentiu Palcu
92024228f5 LF-14747 arm64: dts: imx943-evk: Have the display in main DTB
As IT6263 is the default bridge for i.MX943, remove the overlay dtb and
add the display and it6263 nodes to the main dtbs.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Acked-by: Liu Ying <victor.liu@nxp.com>
2025-02-26 13:30:13 +02:00
Ranjani Vaidyanathan
c36a117e41 LF-14711-2 pinctrl:imx Add support for vendor defined pinctrl config
iMX94 has special muxing options for certain pins. Add new vendor
defined pinctrl type to SCMI pinctrl driver to handle these pins.
The MUX value field in the IOMUX table is extended to 16 bits where
the lower 8 bits represent the current IOMUX value and the upper
8 bits represent the new extended mux added in iMX94.

Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
2025-02-25 12:17:53 -06:00
Ranjani Vaidyanathan
4933bdce97 LF-14711-1 arm64: dts: freescale Add support for vendor defined
pinctrl config

iMX94 has special muxing options for certain pins.
The MUX value field in the IOMUX table is extended to 16 bits where
the lower 8 bits represent the current IOMUX value and the upper
8 bits represent the new extended mux added in iMX94.

Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
2025-02-25 12:17:53 -06:00
Laurentiu Palcu
41e3d8285b LF-14601-15 arm64: configs: imx_v8_defconfig: enable DCIF and FSL_LDB
Add the i.MX943 DCIF driver to the config and also enable the upstream
FSL_LDB driver.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Reviewed-by: Frank Li <frank.li@nxp.com>
Acked-by: Liu Ying <victor.liu@nxp.com>
2025-02-25 12:27:59 +02:00
Laurentiu Palcu
2408892cfc LF-14601-14 arm64: dts: imx93: Use the new downstream compatible for LDB
In order to use the upstream LDB driver for our new platforms (i.MX94),
yet not break the old i.MX93 boards, the downstream i.MX93 LDB driver
compatible has been renamed. Change it.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Reviewed-by: Frank Li <frank.li@nxp.com>
Reviewed-by: Liu Ying <victor.liu@nxp.com>
2025-02-25 12:27:59 +02:00
Laurentiu Palcu
139c4c65de LF-14601-13 drm/imx: imx93-ldb: Change compatible string for i.MX93
Since there is an upstream LDB driver that's compatible with i.MX93,
let's rename the downstream driver compatible in order to be able to use
both drivers for different platforms until we phase out the downstream
one.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Reviewed-by: Frank Li <frank.li@nxp.com>
Reviewed-by: Liu Ying <victor.liu@nxp.com>
2025-02-25 12:27:59 +02:00
Laurentiu Palcu
99b4cc1afe LF-14601-12 dt-bindings: display: imx: ldb: Change imx93 compatible string
There is an upstream driver now with the same "fsl,imx93-ldb"
compatible. Rename the downstream driver compatible to be able to use
both drivers with our platforms.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Reviewed-by: Frank Li <frank.li@nxp.com>
Reviewed-by: Liu Ying <victor.liu@nxp.com>
2025-02-25 12:27:59 +02:00