[PATCH v2 4/6] arm64: dts: axiado: Add initial support for AX3000 SoC and eval board
Harshit Shah
hshah at axiado.com
Thu Jun 19 15:41:27 PDT 2025
Hi Krzysztof,
Thank you very much for the reviews.
On 6/15/2025 11:09 PM, Krzysztof Kozlowski wrote:
> On 16/06/2025 06:31, Harshit Shah wrote:
> + serial0 = &uart0;
> + serial1 = &uart1;
> + serial2 = &uart2;
> + serial3 = &uart3;
> None of these are properties of SoC, but board. Move respective aliases
> to the board files.
Make sense. I will move it to the board file. Also I will only keep that
we use in the board file.
>> +
>> + timer:timer {
> Missing space before node name, but anyway label is unused.
Noted.
>> + compatible = "arm,armv8-timer";
>> + interrupt-parent = <&gic500>;
>> + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
>> + arm,cpu-registers-not-fw-configured;
>> + };
>> +
>> + clocks {
> Keep proper sorting of nodes, see DTS coding style.
Ah, we missed that. thank you. I will keep the nodes as per the
alphabetical order.
=====
cpus
clocks
soc {
gic
gpios
i3cs
uarts
}
timer
=====
>> + refclk: refclk {
>> + compatible = "fixed-clock";
>> + #clock-cells = <0>;
>> + clock-frequency = <125000000>;
>> + };
>> +
>> + ref_clk: ref_clk {
> This makes no sense. You have refclk and ref_clk. These ARE THE SAME.
> Please use name for all fixed clocks which matches current format
> recommendation: 'clock-<freq>' (see also the pattern in the binding for
> any other options).
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/clock/fixed-clock.yaml?h=v6.11-rc1
Thank you for the document, we will follow this document and will remove
redundant nodes.
>> + compatible = "fixed-clock";
>> + #clock-cells = <0>;
>> + clock-frequency = <1>;
>> + };
>> +
>> + spi_clk: spi_clk {
>> + compatible = "fixed-clock";
>> + #clock-cells = <0>;
>> + clock-frequency = <25000000>;
>> + };
>> +
>> + apb_pclk: apb_pclk {
> No underscores in node names, but all these look incorrect - don't you
> have clock controller?
Noted, we will remove the "_" from the nodes. We do have clock
controller however that is being accessed by other CPU before Linux will
come-up.
So, the purpose of this clock nodes is to calculate the frequencies for
other peripherals. (We will update the nodes with clock-<freq>)
>> + compatible = "fixed-clock";
>> + #clock-cells = <0>;
>> + clock-frequency = <25000000>;
>> + };
>> + };
>> +
>> + soc {
>> + compatible = "simple-bus";
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + interrupt-parent = <&gic500>;
>> + ranges;
>> +
>> + gic500: interrupt-controller at 80300000 {
>> + compatible = "arm,gic-v3";
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + ranges;
>> + #interrupt-cells = <3>;
>> + interrupt-controller;
>> + #redistributor-regions = <1>;
>> + reg = <0x00 0x80300000 0x00 0x10000>,
>> + <0x00 0x80380000 0x00 0x80000>;
> DTS coding style, incorrect order.
Thank you, we are following this reference:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml?h=v6.11-rc1#n242
gic500: interrupt-controller at 80300000 {
compatible = "arm,gic-v3";
#interrupt-cells = <3>;
#address-cells = <2>;
#size-cells = <2>;
ranges;
interrupt-controller;
#redistributor-regions = <1>;
reg = <0x00 0x80300000 0x00 0x10000>,
<0x00 0x80380000 0x00 0x80000>;
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
};
>
>> + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
>> +
>> + };
>> +
>> + uart0: serial at 80520000 {
>> + compatible = "xlnx,zynqmp-uart", "cdns,uart-r1p12";
>> + interrupt-parent = <&gic500>;
>> + interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
>> + reg = <0x00 0x80520000 0x00 0x100>;
> DTS coding style.
Got it. Will move "reg = " in the second line.
>
>> +
>> +
>> + /* GPIO Controller banks 0 - 7 */
>> + gpio0: gpio-controller at 80500000 {
>> + compatible = "cdns,gpio-r1p02";
>> + clocks = <&refclk>;
>> + gpio-controller;
>> + #gpio-cells = <2>;
>> + interrupt-parent = <&gic500>;
>> + interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
>> + reg = <0x00 0x80500000 0x00 0x400>;
> DTS coding style.
Noted, will update on this and other nodes.
>
>
>
>
>> +
>> + status = "disabled";
>> + };
>> +
>> + i3c16: i3c at 80620400 {
>> + compatible = "cdns,i3c-master";
>> + clocks = <&refclk &clk_xin>;
>> + clock-names = "pclk", "sysclk";
>> + interrupt-parent = <&gic500>;
>> + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
>> + i2c-scl-hz = <100000>;
>> + i3c-scl-hz = <400000>;
>> + reg = <0x00 0x80620400 0x00 0x400>;
>> + #address-cells = <3>;
>> + #size-cells = <0>;
>> + status = "disabled";
>> + };
>> +
> Drop stray blank lines.
Okay, make sense.
>
>> + };
>> +};
>> diff --git a/arch/arm64/boot/dts/axiado/ax3000_evk.dts b/arch/arm64/boot/dts/axiado/ax3000_evk.dts
>>
>> +
>> + chosen {
>> + bootargs = "console=ttyPS3,115200 earlyprintk nr_cpus=4 earlycon";
> Drop bootargs. Not needed and not suitable for mainline. earlycon (not
> earlyprintk!) is debugging tool, not wide mainline usage.
Make sense. I will remove the bootargs.
> Best regards,
> Krzysztof
Regards,
Harshit.
More information about the linux-arm-kernel
mailing list