Ux500 Device Tree changes for the v4.2 series:

Define CPU topology, connect that with CoreSight blocks,
 add sensor information to DT boards.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVUyYjAAoJEEEQszewGV1zZGIP/jiHCMNtMgFOjPxfDI3lwvpl
 p9b6YUeEVknUk0yObYmHcqt6vg71zhiAUndJV5P/dN7jN2n8Cr7JIs52uVkpGuhh
 2CkQgXTMlCpR6LnFWgUT1OMRKg6EBP/JFOJdHbFq+HD6QsBAD9oKULt9VPValtrM
 2VkktKaetXHJND7nwdC8MTKe+4oOs/YpOy+yKVYb/iWNMrTCPCFLBI5BRKLUaPdd
 A0EtGARSkCGU9QZkGvuyhI4UY1KWi4JjKfD9GNmka3FTq8y5MGjdgn1VEw9whZcW
 wtJFiTuZ9CM+Jm+WyJx6bdZwlIjMKMrGaaMDeRnoh9UQml4+DDyJJWgbeAT8rhQS
 XP5NG4I9X1RSqen1XUikPPBl2V5u1baIfaP4noLxuu4yVYfUTuC76T+k+FCAPxQu
 Ymw/RWWmPwodXrN7OBlpPW7rTUk269LVCrWpIFQkhkDnrmYH4Rs8CAv4boDd3yj1
 P4ew49Cu0Y489vR8DBndbUlXjL/ssD2Uh4DZp8fzURTfnu2P6Yzk9Q98At87uqqp
 Hz/OfLBcnX5N7myu+fMkKBf7Ju3Nz/Ho1hA/q8rsPXfazvQcYm5gL9vI1wljRn0B
 b8++F+scoiM0iEY/OpjWX8box9w+gE7lq/14QqRVpRmCNyC1JtlQT7AoXCSDMkic
 EJn4vhHoLu4Bhl9/ypND
 =+QE+
 -----END PGP SIGNATURE-----

Merge tag 'ux500-v4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/dt

Merge "Ux500 Device Tree changes for the v4.2 series" form Linus Walleij:

Define CPU topology, connect that with CoreSight blocks,
add sensor information to DT boards.

* tag 'ux500-v4.2-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
  ARM: ux500: add the sensors to the STUIB board
  ARM: ux500: assign the sensor trigger IRQs
  ARM: ux500: fix lsm303dlh magnetometer compat string
  ARM: ux500: add CoreSight blocks to DTS file
  ARM: ux500: define CPU topology
This commit is contained in:
Arnd Bergmann 2015-05-13 13:37:26 +02:00
commit 9d8a71ff5c
4 changed files with 230 additions and 4 deletions

View File

@ -22,6 +22,160 @@
interrupt-parent = <&intc>; interrupt-parent = <&intc>;
ranges; ranges;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu-map {
cluster0 {
core0 {
cpu = <&CPU0>;
};
core1 {
cpu = <&CPU1>;
};
};
};
CPU0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a9";
reg = <0>;
};
CPU1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a9";
reg = <1>;
};
};
ptm@801ae000 {
compatible = "arm,coresight-etm3x", "arm,primecell";
reg = <0x801ae000 0x1000>;
clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
clock-names = "apb_pclk", "atclk";
cpu = <&CPU0>;
port {
ptm0_out_port: endpoint {
remote-endpoint = <&funnel_in_port0>;
};
};
};
ptm@801af000 {
compatible = "arm,coresight-etm3x", "arm,primecell";
reg = <0x801af000 0x1000>;
clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
clock-names = "apb_pclk", "atclk";
cpu = <&CPU1>;
port {
ptm1_out_port: endpoint {
remote-endpoint = <&funnel_in_port1>;
};
};
};
funnel@801a6000 {
compatible = "arm,coresight-funnel", "arm,primecell";
reg = <0x801a6000 0x1000>;
clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
clock-names = "apb_pclk", "atclk";
ports {
#address-cells = <1>;
#size-cells = <0>;
/* funnel output ports */
port@0 {
reg = <0>;
funnel_out_port: endpoint {
remote-endpoint =
<&replicator_in_port0>;
};
};
/* funnel input ports */
port@1 {
reg = <0>;
funnel_in_port0: endpoint {
slave-mode;
remote-endpoint = <&ptm0_out_port>;
};
};
port@2 {
reg = <1>;
funnel_in_port1: endpoint {
slave-mode;
remote-endpoint = <&ptm1_out_port>;
};
};
};
};
replicator {
compatible = "arm,coresight-replicator";
clocks = <&prcmu_clk PRCMU_APEATCLK>;
clock-names = "atclk";
ports {
#address-cells = <1>;
#size-cells = <0>;
/* replicator output ports */
port@0 {
reg = <0>;
replicator_out_port0: endpoint {
remote-endpoint = <&tpiu_in_port>;
};
};
port@1 {
reg = <1>;
replicator_out_port1: endpoint {
remote-endpoint = <&etb_in_port>;
};
};
/* replicator input port */
port@2 {
reg = <0>;
replicator_in_port0: endpoint {
slave-mode;
remote-endpoint = <&funnel_out_port>;
};
};
};
};
tpiu@80190000 {
compatible = "arm,coresight-tpiu", "arm,primecell";
reg = <0x80190000 0x1000>;
clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
clock-names = "apb_pclk", "atclk";
port {
tpiu_in_port: endpoint {
slave-mode;
remote-endpoint = <&replicator_out_port0>;
};
};
};
etb@801a4000 {
compatible = "arm,coresight-etb10", "arm,primecell";
reg = <0x801a4000 0x1000>;
clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
clock-names = "apb_pclk", "atclk";
port {
etb_in_port: endpoint {
slave-mode;
remote-endpoint = <&replicator_out_port1>;
};
};
};
intc: interrupt-controller@a0411000 { intc: interrupt-controller@a0411000 {
compatible = "arm,cortex-a9-gic"; compatible = "arm,cortex-a9-gic";
#interrupt-cells = <3>; #interrupt-cells = <3>;

View File

@ -77,6 +77,34 @@
}; };
}; };
/* Sensors mounted on this board variant */
i2c@80128000 {
lis331dl@1c {
/* Accelerometer */
compatible = "st,lis331dl-accel";
st,drdy-int-pin = <1>;
reg = <0x1c>;
vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default";
pinctrl-0 = <&accel_stuib_mode>;
interrupt-parent = <&gpio2>;
interrupts = <18 IRQ_TYPE_EDGE_RISING>,
<19 IRQ_TYPE_EDGE_RISING>;
};
ak8974@0f {
/* Magnetometer */
compatible = "asahi-kasei,ak8974";
reg = <0x0f>;
vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default";
pinctrl-0 = <&magneto_stuib_mode>;
interrupt-parent = <&gpio1>;
interrupts = <0 IRQ_TYPE_EDGE_RISING>;
};
};
i2c@80110000 { i2c@80110000 {
bu21013_tp@5c { bu21013_tp@5c {
compatible = "rohm,bu21013_tp"; compatible = "rohm,bu21013_tp";
@ -116,6 +144,28 @@
}; };
}; };
}; };
accelerometer {
accel_stuib_mode: accel_stuib {
/* Accelerometer interrupt lines 1 & 2 */
stuib_cfg {
pins = "GPIO82_C1", "GPIO83_D3";
ste,config = <&gpio_in_pu>;
};
};
};
magnetometer {
magneto_stuib_mode: magneto_stuib {
/* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */
stuib_cfg1 {
pins = "GPIO31_V3";
ste,config = <&gpio_in_pu>;
};
stuib_cfg2 {
pins = "GPIO32_V2";
ste,config = <&gpio_in_pd>;
};
};
};
}; };
}; };
}; };

View File

@ -99,10 +99,13 @@
vddio-supply = <&db8500_vsmps2_reg>; vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&accel_tvk_mode>; pinctrl-0 = <&accel_tvk_mode>;
interrupt-parent = <&gpio2>;
interrupts = <18 IRQ_TYPE_EDGE_RISING>,
<19 IRQ_TYPE_EDGE_RISING>;
}; };
lsm303dlm@1e { lsm303dlh@1e {
/* Magnetometer */ /* Magnetometer */
compatible = "st,lsm303dlm-magn"; compatible = "st,lsm303dlh-magn";
reg = <0x1e>; reg = <0x1e>;
vdd-supply = <&ab8500_ldo_aux1_reg>; vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>; vddio-supply = <&db8500_vsmps2_reg>;

View File

@ -262,15 +262,19 @@
vddio-supply = <&db8500_vsmps2_reg>; vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&accel_snowball_mode>; pinctrl-0 = <&accel_snowball_mode>;
interrupt-parent = <&gpio5>;
interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
<4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
}; };
lsm303dlm@1e { lsm303dlh@1e {
/* Magnetometer */ /* Magnetometer */
compatible = "st,lsm303dlm-magn"; compatible = "st,lsm303dlh-magn";
reg = <0x1e>; reg = <0x1e>;
vdd-supply = <&ab8500_ldo_aux1_reg>; vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>; vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&magneto_snowball_mode>; pinctrl-0 = <&magneto_snowball_mode>;
gpios = <&gpio5 5 0x4>; /* DRDY line */
}; };
l3g4200d@68 { l3g4200d@68 {
/* Gyroscope */ /* Gyroscope */
@ -279,6 +283,11 @@
reg = <0x68>; reg = <0x68>;
vdd-supply = <&ab8500_ldo_aux1_reg>; vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&db8500_vsmps2_reg>; vddio-supply = <&db8500_vsmps2_reg>;
pinctrl-names = "default";
pinctrl-0 = <&gyro_snowball_mode>;
gpios = <&gpio5 6 0x4>; /* DRDY line */
interrupt-parent = <&gpio5>;
interrupts = <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
}; };
lsp001wm@5c { lsp001wm@5c {
/* Barometer/pressure sensor */ /* Barometer/pressure sensor */
@ -489,6 +498,16 @@
}; };
}; };
}; };
gyro {
gyro_snowball_mode: gyro_snowball {
snowball_cfg1 {
pins =
"GPIO166_A22", /* DRDY */
"GPIO169_D22"; /* INT */
ste,config = <&gpio_in_pu>;
};
};
};
magnetometer { magnetometer {
magneto_snowball_mode: magneto_snowball { magneto_snowball_mode: magneto_snowball {
snowball_cfg1 { snowball_cfg1 {