summaryrefslogtreecommitdiffstats
path: root/kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
diff options
context:
space:
mode:
authorYunhong Jiang <yunhong.jiang@intel.com>2015-08-04 12:17:53 -0700
committerYunhong Jiang <yunhong.jiang@intel.com>2015-08-04 15:44:42 -0700
commit9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 (patch)
tree1c9cafbcd35f783a87880a10f85d1a060db1a563 /kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
parent98260f3884f4a202f9ca5eabed40b1354c489b29 (diff)
Add the rt linux 4.1.3-rt3 as base
Import the rt linux 4.1.3-rt3 as OPNFV kvm base. It's from git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt and the base is: commit 0917f823c59692d751951bf5ea699a2d1e2f26a2 Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat Jul 25 12:13:34 2015 +0200 Prepare v4.1.3-rt3 Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> We lose all the git history this way and it's not good. We should apply another opnfv project repo in future. Change-Id: I87543d81c9df70d99c5001fbdf646b202c19f423 Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Diffstat (limited to 'kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts')
-rw-r--r--kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts217
1 files changed, 217 insertions, 0 deletions
diff --git a/kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
new file mode 100644
index 000000000..4260c2b47
--- /dev/null
+++ b/kernel/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -0,0 +1,217 @@
+/*
+ * Copyright 2012 Stefan Roese
+ * Stefan Roese <sr@denx.de>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this file; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun4i-a10.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/sun4i-a10.h>
+
+/ {
+ model = "Cubietech Cubieboard";
+ compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10";
+
+ soc@01c00000 {
+ emac: ethernet@01c0b000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&emac_pins_a>;
+ phy = <&phy1>;
+ status = "okay";
+ };
+
+ mdio@01c0b080 {
+ status = "okay";
+
+ phy1: ethernet-phy@1 {
+ reg = <1>;
+ };
+ };
+
+ mmc0: mmc@01c0f000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
+ vmmc-supply = <&reg_vcc3v3>;
+ bus-width = <4>;
+ cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+ cd-inverted;
+ status = "okay";
+ };
+
+ usbphy: phy@01c13400 {
+ usb1_vbus-supply = <&reg_usb1_vbus>;
+ usb2_vbus-supply = <&reg_usb2_vbus>;
+ status = "okay";
+ };
+
+ ehci0: usb@01c14000 {
+ status = "okay";
+ };
+
+ ohci0: usb@01c14400 {
+ status = "okay";
+ };
+
+ ahci: sata@01c18000 {
+ target-supply = <&reg_ahci_5v>;
+ status = "okay";
+ };
+
+ ehci1: usb@01c1c000 {
+ status = "okay";
+ };
+
+ ohci1: usb@01c1c400 {
+ status = "okay";
+ };
+
+ pinctrl@01c20800 {
+ led_pins_cubieboard: led_pins@0 {
+ allwinner,pins = "PH20", "PH21";
+ allwinner,function = "gpio_out";
+ allwinner,drive = <SUN4I_PINCTRL_20_MA>;
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+ };
+ };
+
+ ir0: ir@01c21800 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir0_pins_a>;
+ status = "okay";
+ };
+
+ uart0: serial@01c28000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins_a>;
+ status = "okay";
+ };
+
+ i2c0: i2c@01c2ac00 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins_a>;
+ status = "okay";
+
+ axp209: pmic@34 {
+ reg = <0x34>;
+ interrupts = <0>;
+ };
+ };
+
+ i2c1: i2c@01c2b000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins_a>;
+ status = "okay";
+ };
+
+ spi0: spi@01c05000 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi0_pins_a>;
+ status = "okay";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins_cubieboard>;
+
+ blue {
+ label = "cubieboard:blue:usr";
+ gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; /* LED1 */
+ };
+
+ green {
+ label = "cubieboard:green:usr";
+ gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; /* LED2 */
+ linux,default-trigger = "heartbeat";
+ };
+ };
+
+ reg_ahci_5v: ahci-5v {
+ status = "okay";
+ };
+
+ reg_usb1_vbus: usb1-vbus {
+ status = "okay";
+ };
+
+ reg_usb2_vbus: usb2-vbus {
+ status = "okay";
+ };
+};
+
+#include "axp209.dtsi"
+
+&cpu0 {
+ cpu-supply = <&reg_dcdc2>;
+};
+
+&reg_dcdc2 {
+ regulator-always-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1450000>;
+ regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc3 {
+ regulator-always-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-name = "vdd-int-dll";
+};
+
+&reg_ldo1 {
+ regulator-name = "vdd-rtc";
+};
+
+&reg_ldo2 {
+ regulator-always-on;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-name = "avcc";
+};
ht .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
heat_template_version: pike

description: >
  Utility stack to convert an array of services into a set of combined
  role configs.

parameters:
  Services:
    default: []
    description: |
        List nested stack service templates.
    type: comma_delimited_list
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  DefaultPasswords:
    default: {}
    description: Mapping of service -> default password. Used to help
                 pass top level passwords managed by Heat into services.
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    description: Parameters specific to the role
    default: {}
    type: json

resources:

  ServiceChain:
    type: OS::Heat::ResourceChain
    properties:
      resources: {get_param: Services}
      concurrent: true
      resource_properties:
        ServiceData: {get_param: ServiceData}
        ServiceNetMap: {get_param: ServiceNetMap}
        EndpointMap: {get_param: EndpointMap}
        DefaultPasswords: {get_param: DefaultPasswords}
        RoleName: {get_param: RoleName}
        RoleParameters: {get_param: RoleParameters}

  LoggingConfiguration:
    type: OS::TripleO::LoggingConfiguration

  ServiceServerMetadataHook:
    type: OS::TripleO::ServiceServerMetadataHook
    properties:
      RoleData: {get_attr: [ServiceChain, role_data]}

  PuppetStepConfig:
    type: OS::Heat::Value
    properties:
      type: string
      value:
        yaql:
          expression:
            # select 'step_config' only from services that do not have a docker_config
            coalesce($.data.service_names, []).zip(coalesce($.data.step_config, []), coalesce($.data.docker_config, [])).where($[2] = null).where($[1] != null).select($[1]).join("\n")
          data:
            service_names: {get_attr: [ServiceChain, role_data, service_name]}
            step_config: {get_attr: [ServiceChain, role_data, step_config]}
            docker_config: {get_attr: [ServiceChain, role_data, docker_config]}

  DockerConfig:
    type: OS::Heat::Value
    properties:
      type: json
      value:
        yaql:
          expression:
            # select 'docker_config' only from services that have it
            coalesce($.data.service_names, []).zip(coalesce($.data.docker_config, [])).where($[1] != null).select($[1]).reduce($1.mergeWith($2), {})
          data:
            service_names: {get_attr: [ServiceChain, role_data, service_names]}
            docker_config: {get_attr: [ServiceChain, role_data, docker_config]}

  LoggingSourcesConfig:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        # Transform the individual logging_source configuration from
        # each service in the chain into a global list, adding some
        # default configuration at the same time.
        yaql:
          expression: >
            let(
            default_format => coalesce($.data.default_format, ''),
            pos_file_path => coalesce($.data.pos_file_path, ''),
            sources => coalesce($.data.sources, {}).flatten()
            ) ->
            $sources.where($ != null).select({
            'type' => 'tail',
            'tag' => $.tag,
            'path' => $.path,
            'format' => $.get('format', $default_format),
            'pos_file' => $.get('pos_file', $pos_file_path + '/' + $.tag + '.pos')
            })
          data:
            sources:
              - {get_attr: [LoggingConfiguration, LoggingDefaultSources]}
              - yaql:
                  expression: list(coalesce($.data.role_data, []).where($ != null).select($.get('logging_source')).where($ != null))
                  data: {role_data: {get_attr: [ServiceChain, role_data]}}

              - {get_attr: [LoggingConfiguration, LoggingExtraSources]}
            default_format: {get_attr: [LoggingConfiguration, LoggingDefaultFormat]}
            pos_file_path: {get_attr: [LoggingConfiguration, LoggingPosFilePath]}

  LoggingGroupsConfig:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        # Build a list of unique groups to which we should add the
        # fluentd user.
        yaql:
          expression: >
            set((coalesce($.data.default, []) + coalesce($.data.extra, []) + coalesce($.data.role_data, []).where($ != null).select($.get('logging_groups'))).flatten()).where($)
          data:
            default: {get_attr: [LoggingConfiguration, LoggingDefaultGroups]}
            extra: {get_attr: [LoggingConfiguration, LoggingExtraGroups]}
            role_data: {get_attr: [ServiceChain, role_data]}

  MonitoringSubscriptionsConfig:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        yaql:
          expression: list(coalesce($.data.role_data, []).where($ != null).select($.get('monitoring_subscription')).where($ != null))
          data: {role_data: {get_attr: [ServiceChain, role_data]}}

  ServiceNames:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        filter:
          - [null]
          - {get_attr: [ServiceChain, role_data, service_name]}

  GlobalConfigSettings:
    type: OS::Heat::Value
    properties:
      type: json
      value:
        map_merge:
          yaql:
            expression: list(coalesce($.data.role_data, []).where($ != null).select($.get('global_config_settings')).where($ != null))
            data: {role_data: {get_attr: [ServiceChain, role_data]}}

  ServiceConfigSettings:
    type: OS::Heat::Value
    properties:
      type: json
      value:
        yaql:
          expression: coalesce($.data.role_data, []).where($ != null).select($.get('service_config_settings')).where($ != null).reduce($1.mergeWith($2), {})
          data: {role_data: {get_attr: [ServiceChain, role_data]}}

  ServiceWorkflowTasks:
    type: OS::Heat::Value
    properties:
      type: json
      value:
        yaql:
          expression: coalesce($.data.role_data, []).where($ != null).select($.get('service_workflow_tasks')).where($ != null).reduce($1.mergeWith($2), {})
          data: {role_data: {get_attr: [ServiceChain, role_data]}}

  UpgradeTasks:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        yaql:
          # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
          expression: coalesce($.data, []).where($ != null).select($.get('upgrade_tasks')).where($ != null).flatten().distinct()
          data: {get_attr: [ServiceChain, role_data]}

  UpdateTasks:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        yaql:
          # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
          expression: coalesce($.data, []).where($ != null).select($.get('update_tasks')).where($ != null).flatten().distinct()
          data: {get_attr: [ServiceChain, role_data]}

  UpgradeBatchTasks:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        yaql:
          expression: coalesce($.data, []).where($ != null).select($.get('upgrade_batch_tasks')).where($ != null).flatten().distinct()
          data: {get_attr: [ServiceChain, role_data]}

  PuppetConfig:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        yaql:
          expression: coalesce($.data, []).where($ != null).select($.get('puppet_config')).where($ != null).distinct()
          data: {get_attr: [ServiceChain, role_data]}

  KollaConfig:
    type: OS::Heat::Value
    properties:
      type: json
      value:
        yaql:
          expression: coalesce($.data.role_data, []).where($ != null).select($.get('kolla_config')).where($ != null).reduce($1.mergeWith($2), {})
          data: {role_data: {get_attr: [ServiceChain, role_data]}}

  DockerPuppetTasks:
    type: OS::Heat::Value
    properties:
      type: json
      value:
        yaql:
          expression: dict(coalesce($.data, []).where($ != null).select($.get('docker_puppet_tasks')).where($ != null).selectMany($.items()).groupBy($[0], $[1]))
          data: {get_attr: [ServiceChain, role_data]}

  HostPrepTasks:
    type: OS::Heat::Value
    properties:
      type: comma_delimited_list
      value:
        yaql:
          # Note we use distinct() here to filter any identical tasks
          expression: coalesce($.data, []).where($ != null).select($.get('host_prep_tasks')).where($ != null).flatten().distinct()
          data: {get_attr: [ServiceChain, role_data]}

outputs:
  role_data:
    description: Combined Role data for this set of services.
    value:
      service_names: {get_attr: [ServiceNames, value]}
      monitoring_subscriptions: {get_attr: [MonitoringSubscriptionsConfig, value]}
      logging_sources: {get_attr: [LoggingSourcesConfig, value]}
      logging_groups: {get_attr: [LoggingGroupsConfig, value]}
      config_settings: {map_merge: {get_attr: [ServiceChain, role_data, config_settings]}}
      global_config_settings: {get_attr: [GlobalConfigSettings, value]}
      service_config_settings: {get_attr: [ServiceConfigSettings, value]}
      service_workflow_tasks: {get_attr: [ServiceWorkflowTasks, value]}
      step_config: {get_attr: [PuppetStepConfig, value]}
      upgrade_tasks: {get_attr: [UpgradeTasks, value]}
      update_tasks: {get_attr: [UpdateTasks, value]}
      upgrade_batch_tasks: {get_attr: [UpgradeBatchTasks, value]}
      service_metadata_settings: {get_attr: [ServiceServerMetadataHook, metadata]}

      # Keys to support docker/services
      puppet_config: {get_attr: [PuppetConfig, value]}
      kolla_config: {get_attr: [KollaConfig, value]}
      docker_config: {get_attr: [DockerConfig, value]}
      docker_puppet_tasks: {get_attr: [DockerPuppetTasks, value]}
      host_prep_tasks: {get_attr: [HostPrepTasks, value]}