Device Tree additions for LPC18xx platform

- CREG clock controller
  - Real Time Clock (RTC)
  - Analog peripherals (ADC/DAC)
  - Warning fixes for the new dtc compiler
 
 With the CREG clock controller in place it is now possible
 to enable the internal RTC on LPC18xx/43xx platforms. The
 analog peripherals (ADC/DAC) has also been added here and
 enabled on both the EA4357 dev kit and Hitex eval board.
 
 In addition to the new entries there are a fixes for the
 DT warnings generated by the new dtc.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQEcBAABCAAGBQJXAs9CAAoJEF5zSH4+/j/a6ZoIAKxH1719KAQ7QBAvegmeQxvJ
 qV9cp+zcg2mqbB8QtL1Bl0BH1E/BhjtI9lRia5tNe68z/reGePb7CSxC4aK5FfWs
 BEIk8Io3VWCjq+ZMc88VHSa2uJo/v4mxV5Lc3LquiJYtBZnnvf0u8f1pAE9lR021
 KgdkO0qWPeJUOEOghSZ4jwWTZBBtkxa+5WqOLwvM8lokFIHey0GBTcAIb77gOIqD
 27oU0YCo83xCOLUBlUZMHpLiYjQZtSfROJdysEYu1rn5hrL16G3Bj0TkdWMyw5Wf
 r5HC+qBBc2qqVK/CRZnYQFAOZlGUjrbMHdrjpzkILWYbsbV29XCymn4p/QDO6bo=
 =Y9wO
 -----END PGP SIGNATURE-----

Merge tag 'lpc18xx_dts_for_4.7' of https://github.com/manabian/linux-lpc into next/dt

Device Tree additions for LPC18xx platform
 - CREG clock controller
 - Real Time Clock (RTC)
 - Analog peripherals (ADC/DAC)
 - Warning fixes for the new dtc compiler

With the CREG clock controller in place it is now possible
to enable the internal RTC on LPC18xx/43xx platforms. The
analog peripherals (ADC/DAC) has also been added here and
enabled on both the EA4357 dev kit and Hitex eval board.

In addition to the new entries there are a fixes for the
DT warnings generated by the new dtc.

* tag 'lpc18xx_dts_for_4.7' of https://github.com/manabian/linux-lpc:
  dt-bindings: phy-lpc18xx-usb-otg: remove unit address from binding
  ARM: dts: lpc4350-hitex-eval: fix unit name warnings from dtc
  ARM: dts: lpc4357-ea4357: fix unit name warnings from dtc
  ARM: dts: lpc18xx: remove unit addresses from creg childs
  ARM: dts: armv7-m: add unit name to interrupt-controller
  ARM: dts: lpc4350-hitex-eval: add adc1
  ARM: dts: lpc4357-ea4357: add dac
  ARM: dts: lpc4357-ea4357: add adc0
  ARM: dts: lpc18xx: add dac node
  ARM: dts: lpc18xx: add adc nodes
  ARM: dts: lpc18xx: add rtc node
  ARM: dts: lpc18xx: add creg-clk node

Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2016-04-13 14:29:51 -07:00
commit 60cf1d9957
5 changed files with 101 additions and 20 deletions

View File

@ -18,7 +18,7 @@ creg: syscon@40043000 {
compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
reg = <0x40043000 0x1000>;
usb0_otg_phy: phy@004 {
usb0_otg_phy: phy {
compatible = "nxp,lpc1850-usb-otg-phy";
clocks = <&ccu1 CLK_USB0>;
#phy-cells = <0>;

View File

@ -1,7 +1,7 @@
#include "skeleton.dtsi"
/ {
nvic: nv-interrupt-controller {
nvic: interrupt-controller@e000e100 {
compatible = "arm,armv7m-nvic";
interrupt-controller;
#interrupt-cells = <1>;

View File

@ -195,13 +195,19 @@ creg: syscon@40043000 {
clocks = <&ccu1 CLK_CPU_CREG>;
resets = <&rgu 5>;
usb0_otg_phy: phy@004 {
creg_clk: clock-controller {
compatible = "nxp,lpc1850-creg-clk";
clocks = <&xtal32>;
#clock-cells = <1>;
};
usb0_otg_phy: phy {
compatible = "nxp,lpc1850-usb-otg-phy";
clocks = <&ccu1 CLK_USB0>;
#phy-cells = <0>;
};
dmamux: dma-mux@11c {
dmamux: dma-mux {
compatible = "nxp,lpc1850-dmamux";
#dma-cells = <3>;
dma-requests = <64>;
@ -209,11 +215,19 @@ dmamux: dma-mux@11c {
};
};
rtc: rtc@40046000 {
compatible = "nxp,lpc1850-rtc", "nxp,lpc1788-rtc";
reg = <0x40046000 0x1000>;
interrupts = <47>;
clocks = <&creg_clk 0>, <&ccu1 CLK_CPU_BUS>;
clock-names = "rtc", "reg";
};
cgu: clock-controller@40050000 {
compatible = "nxp,lpc1850-cgu";
reg = <0x40050000 0x1000>;
#clock-cells = <1>;
clocks = <&xtal>, <&xtal32>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>;
clocks = <&xtal>, <&creg_clk 1>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>;
};
ccu1: clock-controller@40051000 {
@ -430,6 +444,15 @@ i2c1: i2c@400e0000 {
status = "disabled";
};
dac: dac@400e1000 {
compatible = "nxp,lpc1850-dac";
reg = <0x400e1000 0x1000>;
interrupts = <0>;
clocks = <&ccu1 CLK_APB3_DAC>;
resets = <&rgu 42>;
status = "disabled";
};
can0: can@400e2000 {
compatible = "bosch,c_can";
reg = <0x400e2000 0x1000>;
@ -439,6 +462,24 @@ can0: can@400e2000 {
status = "disabled";
};
adc0: adc@400e3000 {
compatible = "nxp,lpc1850-adc";
reg = <0x400e3000 0x1000>;
interrupts = <17>;
clocks = <&ccu1 CLK_APB3_ADC0>;
resets = <&rgu 40>;
status = "disabled";
};
adc1: adc@400e4000 {
compatible = "nxp,lpc1850-adc";
reg = <0x400e4000 0x1000>;
interrupts = <21>;
clocks = <&ccu1 CLK_APB3_ADC1>;
resets = <&rgu 41>;
status = "disabled";
};
gpio: gpio@400f4000 {
compatible = "nxp,lpc1850-gpio";
reg = <0x400f4000 0x4000>;

View File

@ -45,50 +45,50 @@ pca_buttons {
poll-interval = <100>;
autorepeat;
button@0 {
button0 {
label = "joy:right";
linux,code = <KEY_RIGHT>;
gpios = <&pca_gpio 8 GPIO_ACTIVE_LOW>;
};
button@1 {
button1 {
label = "joy:up";
linux,code = <KEY_UP>;
gpios = <&pca_gpio 9 GPIO_ACTIVE_LOW>;
};
button@2 {
button2 {
label = "joy:enter";
linux,code = <KEY_ENTER>;
gpios = <&pca_gpio 10 GPIO_ACTIVE_LOW>;
};
button@3 {
button3 {
label = "joy:left";
linux,code = <KEY_LEFT>;
gpios = <&pca_gpio 11 GPIO_ACTIVE_LOW>;
};
button@4 {
button4 {
label = "joy:down";
linux,code = <KEY_DOWN>;
gpios = <&pca_gpio 12 GPIO_ACTIVE_LOW>;
};
button@5 {
button5 {
label = "user:sw3";
linux,code = <KEY_F1>;
gpios = <&pca_gpio 13 GPIO_ACTIVE_LOW>;
};
button@6 {
button6 {
label = "user:sw4";
linux,code = <KEY_F2>;
gpios = <&pca_gpio 14 GPIO_ACTIVE_LOW>;
};
button@7 {
button7 {
label = "user:sw5";
linux,code = <KEY_F3>;
gpios = <&pca_gpio 15 GPIO_ACTIVE_LOW>;
@ -119,9 +119,25 @@ led3 {
gpios = <&pca_gpio 3 GPIO_ACTIVE_LOW>;
};
};
vcc: vcc_fixed {
compatible = "regulator-fixed";
regulator-name = "3v3io";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&pinctrl {
adc1_pins: adc1-pins {
adc1_pins_cfg {
pins = "pf_9";
function = "adc";
input-disable;
bias-disable;
};
};
emc_pins: emc-pins {
emc_addr0_23_cfg {
pins = "p2_9", "p2_10", "p2_11", "p2_12",
@ -325,6 +341,13 @@ uart0_tx_cfg {
};
};
&adc1 {
status = "okay";
vref-supply = <&vcc>;
pinctrl-names = "default";
pinctrl-0 = <&adc1_pins>;
};
&emc {
status = "okay";
pinctrl-names = "default";
@ -430,7 +453,7 @@ &spifi {
pinctrl-names = "default";
pinctrl-0 = <&spifi_pins>;
flash@0 {
flash {
compatible = "jedec,spi-nor";
spi-rx-bus-width = <4>;
#address-cells = <1>;

View File

@ -38,6 +38,13 @@ memory {
reg = <0x28000000 0x2000000>; /* 32 MB */
};
vcc: vcc_fixed {
compatible = "regulator-fixed";
regulator-name = "3v3-supply";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
/* vmmc is controlled by sdmmc host internally */
vmmc: vmmc_fixed {
compatible = "regulator-fixed";
@ -55,31 +62,31 @@ gpio_joystick {
poll-interval = <100>;
autorepeat;
button@0 {
button0 {
label = "joy_enter";
linux,code = <KEY_ENTER>;
gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
};
button@1 {
button1 {
label = "joy_left";
linux,code = <KEY_LEFT>;
gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>;
};
button@2 {
button2 {
label = "joy_up";
linux,code = <KEY_UP>;
gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>;
};
button@3 {
button3 {
label = "joy_right";
linux,code = <KEY_RIGHT>;
gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>;
};
button@4 {
button4 {
label = "joy_down";
linux,code = <KEY_DOWN>;
gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>;
@ -461,6 +468,11 @@ usb0_pwr_fault {
};
};
&adc0 {
status = "okay";
vref-supply = <&vcc>;
};
&i2c0 {
status = "okay";
pinctrl-names = "default";
@ -483,6 +495,11 @@ eeprom@57 {
};
};
&dac {
status = "okay";
vref-supply = <&vcc>;
};
&emc {
status = "okay";
pinctrl-names = "default";
@ -567,7 +584,7 @@ &spifi {
pinctrl-names = "default";
pinctrl-0 = <&spifi_pins>;
flash@0 {
flash {
compatible = "jedec,spi-nor";
spi-cpol;
spi-cpha;