Skip to content

Commit 7dc8f80

Browse files
committed
Merge tag 'linux-can-next-for-6.14-20250110' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
Marc Kleine-Budde says: ==================== pull-request: can-next 2025-01-10 Pierre-Henry Moussay adds PIC64GX compatibility to the DT bindings for Microchip's mpfs-can IP core. The next 3 patches are by Sean Nyekjaer and target the tcan4x5x driver. First the DT bindings is converted to DT schema, then nWKRQ voltage selection is added to the driver. Dario Binacchi's patch for the sun4i_can makes the driver more consistent by adding a likely() to the driver. Another patch by Sean Nyekjaer for the tcan4x5x driver gets rid of a false error message. Charan Pedumuru converts the atmel-can DT bindings to DT schema. The next 2 patches are by Oliver Hartkopp. The first one maps Oliver's former mail addresses to a dedicated CAN mail address. The second one assigns net/sched/em_canid.c additionally to the CAN maintainers. Ariel Otilibili's patch removes dead code from the CAN dev helper. The next 3 patches are by Sean Nyekjaer and add HW standby support to the tcan4x5x driver. A patch by Dario Binacchi fixes the DT bindings for the st,stm32-bxcan driver. The last 4 patches are by Jimmy Assarsson and target the kvaser_usb and the kvaser_pciefd driver: error statistics are improved and CAN_CTRLMODE_BERR_REPORTING is added. * tag 'linux-can-next-for-6.14-20250110' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next: can: kvaser_pciefd: Add support for CAN_CTRLMODE_BERR_REPORTING can: kvaser_pciefd: Update stats and state even if alloc_can_err_skb() fails can: kvaser_usb: Add support for CAN_CTRLMODE_BERR_REPORTING can: kvaser_usb: Update stats and state even if alloc_can_err_skb() fails dt-bindings: can: st,stm32-bxcan: fix st,gcan property type can: m_can: call deinit/init callback when going into suspend/resume can: tcan4x5x: add deinit callback to set standby mode can: m_can: add deinit callback can: dev: can_get_state_str(): Remove dead code MAINTAINERS: assign em_canid.c additionally to CAN maintainers mailmap: add an entry for Oliver Hartkopp dt-bindings: net: can: atmel: Convert to json schema can: tcan4x5x: get rid of false clock errors can: sun4i_can: continue to use likely() to check skb can: tcan4x5x: add option for selecting nWKRQ voltage dt-bindings: can: tcan4x5x: Document the ti,nwkrq-voltage-vio option dt-bindings: can: convert tcan4x5x.txt to DT schema dt-bindings: can: mpfs: add PIC64GX CAN compatibility ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 21520e7 + c1a6911 commit 7dc8f80

File tree

18 files changed

+432
-213
lines changed

18 files changed

+432
-213
lines changed

.mailmap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,8 @@ Oleksij Rempel <[email protected]> <[email protected]>
529529
530530
Oleksij Rempel <[email protected]>
531531
532+
533+
532534
533535
534536
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/can/atmel,at91sam9263-can.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Microchip AT91 CAN Controller
8+
9+
maintainers:
10+
- Nicolas Ferre <[email protected]>
11+
12+
allOf:
13+
- $ref: can-controller.yaml#
14+
15+
properties:
16+
compatible:
17+
oneOf:
18+
- enum:
19+
- atmel,at91sam9263-can
20+
- atmel,at91sam9x5-can
21+
- items:
22+
- enum:
23+
- microchip,sam9x60-can
24+
- const: atmel,at91sam9x5-can
25+
26+
reg:
27+
maxItems: 1
28+
29+
interrupts:
30+
maxItems: 1
31+
32+
clocks:
33+
maxItems: 1
34+
35+
clock-names:
36+
items:
37+
- const: can_clk
38+
39+
required:
40+
- compatible
41+
- reg
42+
- interrupts
43+
- clocks
44+
- clock-names
45+
46+
unevaluatedProperties: false
47+
48+
examples:
49+
- |
50+
#include <dt-bindings/interrupt-controller/irq.h>
51+
#include <dt-bindings/clock/at91.h>
52+
can@f000c000 {
53+
compatible = "atmel,at91sam9263-can";
54+
reg = <0xf000c000 0x300>;
55+
interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
56+
clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
57+
clock-names = "can_clk";
58+
};

Documentation/devicetree/bindings/net/can/atmel-can.txt

Lines changed: 0 additions & 15 deletions
This file was deleted.

Documentation/devicetree/bindings/net/can/microchip,mpfs-can.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ allOf:
1515

1616
properties:
1717
compatible:
18-
const: microchip,mpfs-can
18+
oneOf:
19+
- items:
20+
- const: microchip,pic64gx-can
21+
- const: microchip,mpfs-can
22+
- const: microchip,mpfs-can
1923

2024
reg:
2125
maxItems: 1

Documentation/devicetree/bindings/net/can/st,stm32-bxcan.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ properties:
6363
maxItems: 1
6464

6565
st,gcan:
66-
$ref: /schemas/types.yaml#/definitions/phandle-array
66+
$ref: /schemas/types.yaml#/definitions/phandle
6767
description:
6868
The phandle to the gcan node which allows to access the 512-bytes
6969
SRAM memory shared by the two bxCAN cells (CAN1 primary and CAN2

Documentation/devicetree/bindings/net/can/tcan4x5x.txt

Lines changed: 0 additions & 48 deletions
This file was deleted.
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/can/ti,tcan4x5x.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Texas Instruments TCAN4x5x CAN Controller
8+
9+
maintainers:
10+
- Marc Kleine-Budde <[email protected]>
11+
12+
properties:
13+
compatible:
14+
oneOf:
15+
- items:
16+
- enum:
17+
- ti,tcan4552
18+
- ti,tcan4553
19+
- const: ti,tcan4x5x
20+
- const: ti,tcan4x5x
21+
22+
reg:
23+
maxItems: 1
24+
25+
interrupts:
26+
maxItems: 1
27+
description: The GPIO parent interrupt.
28+
29+
clocks:
30+
maxItems: 1
31+
32+
clock-names:
33+
items:
34+
- const: cclk
35+
36+
reset-gpios:
37+
description: Hardwired output GPIO. If not defined then software reset.
38+
maxItems: 1
39+
40+
device-state-gpios:
41+
description:
42+
Input GPIO that indicates if the device is in a sleep state or if the
43+
device is active. Not available with tcan4552/4553.
44+
maxItems: 1
45+
46+
device-wake-gpios:
47+
description:
48+
Wake up GPIO to wake up the TCAN device.
49+
Not available with tcan4552/4553.
50+
maxItems: 1
51+
52+
bosch,mram-cfg:
53+
description: |
54+
Message RAM configuration data.
55+
Multiple M_CAN instances can share the same Message RAM
56+
and each element(e.g Rx FIFO or Tx Buffer and etc) number
57+
in Message RAM is also configurable, so this property is
58+
telling driver how the shared or private Message RAM are
59+
used by this M_CAN controller.
60+
61+
The format should be as follows:
62+
<offset sidf_elems xidf_elems rxf0_elems rxf1_elems rxb_elems txe_elems txb_elems>
63+
The 'offset' is an address offset of the Message RAM where
64+
the following elements start from. This is usually set to
65+
0x0 if you're using a private Message RAM. The remain cells
66+
are used to specify how many elements are used for each FIFO/Buffer.
67+
68+
M_CAN includes the following elements according to user manual:
69+
11-bit Filter 0-128 elements / 0-128 words
70+
29-bit Filter 0-64 elements / 0-128 words
71+
Rx FIFO 0 0-64 elements / 0-1152 words
72+
Rx FIFO 1 0-64 elements / 0-1152 words
73+
Rx Buffers 0-64 elements / 0-1152 words
74+
Tx Event FIFO 0-32 elements / 0-64 words
75+
Tx Buffers 0-32 elements / 0-576 words
76+
77+
Please refer to 2.4.1 Message RAM Configuration in Bosch
78+
M_CAN user manual for details.
79+
$ref: /schemas/types.yaml#/definitions/int32-array
80+
items:
81+
- description: The 'offset' is an address offset of the Message RAM where
82+
the following elements start from. This is usually set to 0x0 if
83+
you're using a private Message RAM.
84+
default: 0
85+
- description: 11-bit Filter 0-128 elements / 0-128 words
86+
minimum: 0
87+
maximum: 128
88+
- description: 29-bit Filter 0-64 elements / 0-128 words
89+
minimum: 0
90+
maximum: 64
91+
- description: Rx FIFO 0 0-64 elements / 0-1152 words
92+
minimum: 0
93+
maximum: 64
94+
- description: Rx FIFO 1 0-64 elements / 0-1152 words
95+
minimum: 0
96+
maximum: 64
97+
- description: Rx Buffers 0-64 elements / 0-1152 words
98+
minimum: 0
99+
maximum: 64
100+
- description: Tx Event FIFO 0-32 elements / 0-64 words
101+
minimum: 0
102+
maximum: 32
103+
- description: Tx Buffers 0-32 elements / 0-576 words
104+
minimum: 0
105+
maximum: 32
106+
minItems: 1
107+
108+
spi-max-frequency:
109+
description:
110+
Must be half or less of "clocks" frequency.
111+
maximum: 18000000
112+
113+
ti,nwkrq-voltage-vio:
114+
type: boolean
115+
description:
116+
nWKRQ Pin GPO buffer voltage configuration.
117+
Set nWKRQ to use VIO voltage rail.
118+
When not set nWKRQ will use internal voltage rail.
119+
120+
wakeup-source:
121+
$ref: /schemas/types.yaml#/definitions/flag
122+
description:
123+
Enable CAN remote wakeup.
124+
125+
allOf:
126+
- $ref: can-controller.yaml#
127+
- $ref: /schemas/spi/spi-peripheral-props.yaml#
128+
- if:
129+
properties:
130+
compatible:
131+
contains:
132+
enum:
133+
- ti,tcan4552
134+
- ti,tcan4553
135+
then:
136+
properties:
137+
device-state-gpios: false
138+
device-wake-gpios: false
139+
140+
required:
141+
- compatible
142+
- reg
143+
- interrupts
144+
- clocks
145+
- clock-names
146+
- bosch,mram-cfg
147+
148+
unevaluatedProperties: false
149+
150+
examples:
151+
- |
152+
#include <dt-bindings/gpio/gpio.h>
153+
#include <dt-bindings/interrupt-controller/irq.h>
154+
155+
spi {
156+
#address-cells = <1>;
157+
#size-cells = <0>;
158+
159+
can@0 {
160+
compatible = "ti,tcan4x5x";
161+
reg = <0>;
162+
clocks = <&can0_osc>;
163+
clock-names = "cclk";
164+
pinctrl-names = "default";
165+
pinctrl-0 = <&can0_pins>;
166+
spi-max-frequency = <10000000>;
167+
bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
168+
interrupt-parent = <&gpio1>;
169+
interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
170+
device-state-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
171+
device-wake-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
172+
reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
173+
ti,nwkrq-voltage-vio;
174+
wakeup-source;
175+
};
176+
};
177+
- |
178+
#include <dt-bindings/gpio/gpio.h>
179+
#include <dt-bindings/interrupt-controller/irq.h>
180+
181+
spi {
182+
#address-cells = <1>;
183+
#size-cells = <0>;
184+
185+
can@0 {
186+
compatible = "ti,tcan4552", "ti,tcan4x5x";
187+
reg = <0>;
188+
clocks = <&can0_osc>;
189+
clock-names = "cclk";
190+
pinctrl-names = "default";
191+
pinctrl-0 = <&can0_pins>;
192+
spi-max-frequency = <10000000>;
193+
bosch,mram-cfg = <0x0 0 0 16 0 0 1 1>;
194+
interrupt-parent = <&gpio1>;
195+
interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
196+
reset-gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
197+
wakeup-source;
198+
};
199+
};

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5115,6 +5115,7 @@ F: include/uapi/linux/can/gw.h
51155115
F: include/uapi/linux/can/isotp.h
51165116
F: include/uapi/linux/can/raw.h
51175117
F: net/can/
5118+
F: net/sched/em_canid.c
51185119

51195120
CAN-J1939 NETWORK LAYER
51205121
M: Robin van der Gracht <[email protected]>

drivers/net/can/dev/dev.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,6 @@ const char *can_get_state_str(const enum can_state state)
8585
default:
8686
return "<unknown>";
8787
}
88-
89-
return "<unknown>";
9088
}
9189
EXPORT_SYMBOL_GPL(can_get_state_str);
9290

0 commit comments

Comments
 (0)